orochasamuel / fiscalbr-net

Para facilitar seu dia a dia como desenvolvedor \o/
MIT License
91 stars 48 forks source link

REGISTRO C500 - Desatualizado #49

Closed hbdbim closed 2 years ago

hbdbim commented 2 years ago

Registro C500 esta desatualizado com a norma técnica (Nota Técnica 2021.001 ).

Mando um Pull Request ou já esta sendo finalizado ?

orochasamuel commented 2 years ago

Fala @hbdbim blz?

Acredito que não tenha ninguém atuando nessa demanda. Sinta-se a vontade para enviar um PR, será de grande ajuda.

Vida longa e próspera 🖖

hbdbim commented 2 years ago

Oque eu coloco na versão do atributo ?


//<summary>
Código do modelo do documento fiscal referenciado 
</summary>
SpedCampos(34, "COD_MOD_DOC_REF", "C", 2, 0, false, 2)]
orochasamuel commented 2 years ago

@hbdbim é o último parâmetro do atributo, onde está o "2" após o false.

hbdbim commented 2 years ago

@hbdbim é o último parâmetro do atributo, onde está o "2" após o false.

Sim, quero saber oque coloco ? Pq eu não entendi direito como esta sendo versionado.

orochasamuel commented 2 years ago

@hbdbim

image

Você vai preencher 16 no campos novos.


            /// <summary>
            ///     Indicador do tipo de operação
            /// </summary>
            /// <remarks>
            ///     0 - Entrada
            ///     <para />
            ///     1 - Saída
            /// </remarks>
            [SpedCampos(2, "IND_OPER", "C", 1, 0, true, 2)]
            public IndTipoOperacaoProduto IndOper { get; set; }

            /// <summary>
            ///     Indicador do emitente do documento fiscal
            /// </summary>
            /// <remarks>
            ///     0 - Emissão própria
            ///     <para />
            ///     1 - Terceiros
            /// </remarks>
            [SpedCampos(3, "IND_EMIT", "C", 1, 0, true, 2)]
            public IndEmitente IndEmit { get; set; }

            /// <summary>
            ///     Código do participante
            /// </summary>
            /// <remarks>
            ///     - do adquirente, no caso das saídas
            ///     <para />
            ///     - do fornecedor no caso de entradas
            /// </remarks>
            [SpedCampos(4, "COD_PART", "C", 60, 0, true, 2)]
            public string CodPart { get; set; }

            /// <summary>
            ///     Código do modelo do documento fiscal
            /// </summary>
            [SpedCampos(5, "COD_MOD", "C", 2, 0, true, 2)]
            public string CodMod { get; set; }

            /// <summary>
            ///     Código da situação do documento fiscal
            /// </summary>
            [SpedCampos(6, "COD_SIT", "N", 2, 0, true, 2)]
            public IndCodSitDoc CodSit { get; set; }

            /// <summary>
            ///     Série do documento fiscal
            /// </summary>
            [SpedCampos(7, "SER", "C", 4, 0, false, 2)]
            public string Ser { get; set; }

            /// <summary>
            ///     Subsérie do documento fiscal
            /// </summary>
            [SpedCampos(8, "SUB", "N", 3, 0, false, 2)]
            public string Sub { get; set; }

            /// <summary>
            ///     Código de classe de consumo de energia elétrica ou gás
            /// </summary>
            /// <remarks>
            ///     01 - Comercial
            ///     <para />
            ///     02 - Consumo Próprio
            ///     <para />
            ///     03 - Iluminação Pública
            ///     <para />
            ///     04 - Industrial
            ///     <para />
            ///     05 - Poder Público
            ///     <para />
            ///     06 - Residencial
            ///     <para />
            ///     07 - Rural
            ///     <para />
            ///     08 - Serviço Público
            ///     <para />
            ///     - Código de classe de consumo de fornecimento d'água
            /// </remarks>
            [SpedCampos(9, "COD_CONS", "C", 2, 0, true, 2)]
            public int CodCons { get; set; }

            /// <summary>
            ///     Número do documento fiscal
            /// </summary>
            [SpedCampos(10, "NUM_DOC", "N", 9, 0, true, 2)]
            public long NumDoc { get; set; }

            /// <summary>
            ///     Data da emissão do documento fiscal
            /// </summary>
            [SpedCampos(11, "DT_DOC", "N", 8, 0, true, 2)]
            public DateTime DtDoc { get; set; }

            /// <summary>
            ///     Data da entrada ou da saída
            /// </summary>
            [SpedCampos(12, "DT_E_S", "N", 8, 0, true, 2)]
            public DateTime DtEs { get; set; }

            /// <summary>
            ///     Valor total do documento fiscal
            /// </summary>
            [SpedCampos(13, "VL_DOC", "N", 0, 2, true, 2)]
            public decimal VlDoc { get; set; }

            /// <summary>
            ///     Valor total do desconto
            /// </summary>
            [SpedCampos(14, "VL_DESC", "N", 0, 2, false, 2)]
            public decimal VlDesc { get; set; }

            /// <summary>
            ///     Valor total fornecido/consumido
            /// </summary>
            [SpedCampos(15, "VL_FORN", "N", 0, 2, true, 2)]
            public decimal VlForn { get; set; }

            /// <summary>
            ///     Valor total dos serviços não-tributados pelo ICMS
            /// </summary>
            [SpedCampos(16, "VL_SERV_NT", "N", 0, 2, false, 2)]
            public decimal VlServNt { get; set; }

            /// <summary>
            ///     Valor total cobrado em nome de terceiros
            /// </summary>
            [SpedCampos(17, "VL_TERC", "N", 0, 2, false, 2)]
            public decimal VlTerc { get; set; }

            /// <summary>
            ///     Valor total das despesas acessórias indicadas no documento fiscal
            /// </summary>
            [SpedCampos(18, "VL_DA", "N", 0, 2, false, 2)]
            public decimal VlDa { get; set; }

            /// <summary>
            ///     Valor acumulado da base de cálculo do ICMS
            /// </summary>
            [SpedCampos(19, "VL_BC_ICMS", "N", 0, 2, false, 2)]
            public decimal VlBcIcms { get; set; }

            /// <summary>
            ///     Valor acumulado do ICMS
            /// </summary>
            [SpedCampos(20, "VL_ICMS", "N", 0, 2, false, 2)]
            public decimal VlIcms { get; set; }

            /// <summary>
            ///     Valor acumulado da base de cálculo do ICMS substituição tributária
            /// </summary>
            [SpedCampos(21, "VL_BC_ICMS_ST", "N", 0, 2, false, 2)]
            public decimal VlBcIcmsSt { get; set; }

            /// <summary>
            ///     Valor acumulado do ICMS retido por substituição tributária
            /// </summary>
            [SpedCampos(22, "VL_ICMS_ST", "N", 0, 2, false, 2)]
            public decimal VlIcmsSt { get; set; }

            /// <summary>
            ///     Código da informação complementar do documento fiscal
            /// </summary>
            [SpedCampos(23, "COD_INF", "C", 6, 0, false, 2)]
            public string CodInf { get; set; }

            /// <summary>
            ///     Valor do PIS
            /// </summary>
            [SpedCampos(24, "VL_PIS", "N", 0, 2, false, 2)]
            public decimal? VlPis { get; set; }

            /// <summary>
            ///     Valor da COFINS
            /// </summary>
            [SpedCampos(25, "VL_COFINS", "N", 0, 2, false, 2)]
            public decimal? VlCofins { get; set; }

            /// <summary>
            ///     Código do tipo de ligação
            /// </summary>
            /// <remarks>
            ///     1 - Monofásico
            ///     <para />
            ///     2 - Bifásico
            ///     <para />
            ///     3 - Trifásico
            /// </remarks>
            [SpedCampos(26, "TP_LIGACAO", "C", 1, 0, false, 3)]
            public int? TpLigacao { get; set; }

            /// <summary>
            ///     Código do grupo de tensão
            /// </summary>
            /// <remarks>
            ///     01 - A1 - Alta tensão (230kV ou mais)
            ///     <para />
            ///     02 - A2 - Alta tensão (88 a 138kV)
            ///     <para />
            ///     03 - A3 - Alta tensão (69kV)
            ///     <para />
            ///     04 - A3a - Alta tensão (30kV a 44kV)
            ///     <para />
            ///     05 - A4 - Alta tensão (2,3kV a 25kV)
            ///     <para />
            ///     06 - AS - Alta tensão subterrâneo
            ///     07 - B1 - Residencial
            ///     08 - B1 - Residencial baixa renda
            ///     09 - B2 - Rural
            ///     10 - B2 - Cooperativa de eletrificação rural
            ///     11 - B2 - Serviço público de irrigação
            ///     12 - B3 - Demais classes
            ///     13 - B4a - Iluminação pública - rede de distribuição
            ///     14 - B4b - Iluminação pública - bulbo de lâmpada
            /// </remarks>
            [SpedCampos(27, "COD_GRUPO_TENSAO", "C", 2, 0, false, 3)]
            public int? CodGrupoTensao { get; set; }

            /// <summary>
            ///     Chave da Nota Fiscal de Energia Elétrica Eletrônica
            /// </summary>
            [SpedCampos(28, "CHV_DOCe", "C", 44, 0, false, 14)]
            public string ChvDoce { get; set; }

            /// <summary>
            ///     Finalidade da emissão do documento eletrônico
            /// </summary>
            /// <remarks>
            ///     1 – Normal
            ///     2 – Substituição
            ///     3 – Normal com ajuste
            /// </remarks>
            [SpedCampos(29, "FIN_DOCe", "C", 1, 0, false, 14)]
            public string FinDoce { get; set; }

            /// <summary>
            ///     Chave da nota referenciada, substituída.
            /// </summary>
            [SpedCampos(30, "CHV_DOCe_REF ", "C", 44, 0, false, 14)]
            public string ChvDoceRef { get; set; }

            /// <summary>
            ///     Indicador do Destinatário/Acessante
            /// </summary>
            /// <remarks>
            ///     1 – Contribuinte do ICMS;
            ///     2 – Contribuinte Isento de Inscrição no Cadastro de Contribuintes do ICMS;
            ///     9 – Não Contribuinte
            /// </remarks>
            [SpedCampos(31, "IND_DEST", "C", 1, 0, false, 14)]
            public string IndDest { get; set; }

            /// <summary>
            ///     Código do município do destinatário conforme a tabela do IBGE.
            /// </summary>
            [SpedCampos(32, "COD_MUN_DEST", "C", 7, 0, false, 14)]
            public string CodMunDest { get; set; }

            /// <summary>
            ///     Código da conta analíica contábil debitada/creditada
            /// </summary>
            [SpedCampos(33, "COD_CTA", "C", 99, 0, false, 14)]
            public string CodCta { get; set; }

Os campos 2 a 25 foram incluídos na versão 2 do layout = `[SpedCampos([...], true/false, 2)]

Os campos 26 e 27 foram incluídos na versão 3 do layout = `[SpedCampos([...], true/false, 3)]

Os campos 28 a 33 foram incluídos na versão 14 do layout = `[SpedCampos([...], true/false, 14)]

Os campos 34 a 40 foram incluídos na versão 16 do layout = `[SpedCampos([...], true/false, 16)]

EDIT Do 34 ao 40 que faltam ser mapeados.

Vida longa e próspera 🖖

hbdbim commented 2 years ago

Massa, ja to finalizando aqui, fiz um Test tmb pra ja deixar testável.