<?php

abstract class Type_DsimDnaoServer extends EnumBasic{
  const Tp_Nao  = 'N' ;
  const Tp_Sim  = 'S' ;

  protected static $nickname = array(
    self::Tp_Sim  => 'Sim',
    self::Tp_Nao  => 'Não'
  );
}

abstract class Type_PedidoStatus extends EnumBasic{
  const TpPSt_Digitacao    = 0;
  const TpPSt_Aberto       = 1;
  const TpPSt_Baixado      = 2;
  const TpPSt_Cancelado    = 3;
  const TpPSt_Faturado     = 4;

  protected static $nickname = array(
    self::TpPSt_Digitacao    => 'Digitacao',
    self::TpPSt_Aberto       => 'Aberto',
    self::TpPSt_Baixado      => 'Baixado',
    self::TpPSt_Cancelado    => 'Cancelado',
    self::TpPSt_Faturado     => 'Faturado'
  );
}

abstract class Type_CadastroStatus extends EnumBasic{
  const TpCadSt_Indefinido = 0;
  const TpCadSt_Ativo      = 1;
  const TpCadSt_Inativo    = 2;

  protected static $nickname = array(
    self::TpCadSt_Indefinido  => 'Indefinido',
    self::TpCadSt_Ativo       => 'Ativo',
    self::TpCadSt_Inativo     => 'Inativo'
  );
}

//Campo utiliza da proccess_control_item
abstract class Type_UtilizaProccessVenda extends EnumBasic{
    const TpUtPv_Sim            = 0;
    const TpUtPv_Nao            = 1;
    const TpUtPv_Obrigatorio    = 2;

    protected static $nickname = array(
        self::TpUtPv_Sim            => 'Sim',
        self::TpUtPv_Nao            => 'Não',
        self::TpUtPv_Obrigatorio    => 'Obrigatório'
    );
}

abstract class Type_StatusProcVenda extends EnumBasic{
    const TpStProcVend_Iniciado       = 0;
    const TpStProcVend_Finalizado     = 1;
    const TpStProcVend_EmErro         = 2;

    protected static $nickname = array(
        self::TpStProcVend_Iniciado         => 'Iniciado',
        self::TpStProcVend_Finalizado       => 'Finalizado',
        self::TpStProcVend_EmErro           => 'Em Erro'
    );
}

abstract class Type_ContrlProcVenda extends EnumBasic{
    const TpStContrlProcVenda_ProdInicial               = 0;
    const TpStContrlProcVenda_LiberaoFinanceira         = 1;
    const TpStContrlProcVenda_LiberacaoSeparacao        = 2;
    const TpStContrlProcVenda_LiberacaoConferencia      = 3;
    const TpStContrlProcVenda_LiberacaoBaixa            = 4;
    const TpStContrlProcVenda_LiberacaoFaturamento      = 5;
    const TpStContrlProcVenda_LiberacaoControleEntrega  = 6;
    const TpStContrlProcVenda_PedidoCancelado           = 7;
    const TpStContrlProcVenda_ConferenciaEntrega        = 8;

    protected static $nickname = array(
        self::TpStContrlProcVenda_ProdInicial                   => 'Processo Inicial',
        self::TpStContrlProcVenda_LiberaoFinanceira             => 'Liberação Financeira',
        self::TpStContrlProcVenda_LiberacaoSeparacao            => 'Liberação Separação',
        self::TpStContrlProcVenda_LiberacaoConferencia          => 'Liberação Conferencia',
        self::TpStContrlProcVenda_LiberacaoBaixa                => 'Liberação Baixa',
        self::TpStContrlProcVenda_LiberacaoFaturamento          => 'Liberação Faturamento',
        self::TpStContrlProcVenda_LiberacaoControleEntrega      => 'Liberação Controle Entrega',
        self::TpStContrlProcVenda_PedidoCancelado               => 'Pedido Cancelado',
        self::TpStContrlProcVenda_ConferenciaEntrega            => 'Conferência de Entrega',
    );
}


abstract class Type_PedLogType extends EnumBasic{
    const TpPedLgTp_Pedido       = 0;
    const TpPedLgTp_Entrega      = 1;
    const TpPedLgTp_Situacao     = 2;
    const TpPedLgTp_ProcessoVenda= 3;

    protected static $nickname = array(
        self::TpPedLgTp_Pedido       => 'Pedido',
        self::TpPedLgTp_Entrega      => 'Entrega',
        self::TpPedLgTp_Situacao     => 'Situacao',
        self::TpPedLgTp_ProcessoVenda=> 'Processo Venda'
    );
}


abstract class Type_LibFinanceira extends EnumBasic{
  const TpLibFinan_SemLiberacao          = 0;
  const TpLibFinan_Liberado              = 1;
  const TpLibFinan_LiberacaoRecusada     = 2;

  protected static $nickname = array(
    self::TpLibFinan_SemLiberacao       => 'Sem Liberação',
    self::TpLibFinan_Liberado           => 'Liberado',
    self::TpLibFinan_LiberacaoRecusada  => 'Liberação recusada'
  );
}

abstract class Type_TNFEXmlTipo extends EnumBasic{
    const Tp_NfeXmlTp_EmissaoPropriaNormal  = 0 ;

    protected static $nickname = array(
        self::NfeXmlTp_EmissaoPropriaNormal  => 'Emissão propria normal'
    );
}

abstract class TNotaFiscalModelo extends EnumBasic{
    const Tp_NFMod_Nota_Fiscal_Eletronica  = 24 ;

    protected static $nickname = array(
        self::Tp_NFMod_Nota_Fiscal_Eletronica  => 'Nf mod nota fiscal eletronica'
    );
}

