示例#1
0
        public void GerarBlocoC()
        {
            consultaSql = "from EcfNotaFiscalCabecalhoDTO where DataEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
            IList <EcfNotaFiscalCabecalhoDTO> ListaNF2Cabecalho = new NHibernateDAL <EcfNotaFiscalCabecalhoDTO>(Session).SelectListaSql <EcfNotaFiscalCabecalhoDTO>(consultaSql);

            consultaSql = "from EcfNotaFiscalCabecalhoDTO where Cancelada='S' and DataEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
            IList <EcfNotaFiscalCabecalhoDTO> ListaNF2CabecalhoCanceladas = new NHibernateDAL <EcfNotaFiscalCabecalhoDTO>(Session).SelectListaSql <EcfNotaFiscalCabecalhoDTO>(consultaSql);

            consultaSql = "from NfeCabecalhoDTO where DataHoraEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
            IList <NfeCabecalhoDTO> ListaNFeCabecalho = new NHibernateDAL <NfeCabecalhoDTO>(Session).SelectListaSql <NfeCabecalhoDTO>(consultaSql);

            var BlocoC = sped.getBlocoC();

            // REGISTRO C001: ABERTURA DO BLOCO C
            sped.getBlocoC().getRegistroC001().setIndMov(0);

            // REGISTRO C010: IDENTIFICAÇÃO DO ESTABELECIMENTO
            sped.getBlocoC().getRegistroC010().setCnpj(Empresa.Cnpj);
            sped.getBlocoC().getRegistroC010().setIndEscri("2");       // 1 – Apuração com base nos registros de consolidaçãodas operações por NF-e (C180 e C190) e por ECF (C490);
                                                                       // 2 – Apuração com base no registro individualizado de NF-e (C100 e C170) e de ECF (C400)

            if (ListaNFeCabecalho != null)
            {
                RegistroC100 registroC100;
                foreach (NfeCabecalhoDTO NFeCabecalho in ListaNFeCabecalho)
                {
                    registroC100 = new RegistroC100();

                    registroC100.setIndOper(NFeCabecalho.TipoOperacao.Value.ToString());
                    registroC100.setIndEmit("0"); // 0 - Emissao Propria
                    if (NFeCabecalho.Cliente != null)
                    {
                        registroC100.setCodPart("C" + NFeCabecalho.Cliente.Id.ToString());
                    }
                    else if (NFeCabecalho.Fornecedor != null)
                    {
                        registroC100.setCodPart("F" + NFeCabecalho.Fornecedor.Id.ToString());
                    }
                    registroC100.setCodMod(NFeCabecalho.CodigoModelo);

                    /*
                     * 4.1.2- Tabela Situação do Documento
                     * Código Descrição
                     * 00 Documento regular
                     * 01 Documento regular extemporâneo
                     * 02 Documento cancelado
                     * 03 Documento cancelado extemporâneo
                     * 04 NFe denegada
                     * 05 Nfe – Numeração inutilizada
                     * 06 Documento Fiscal Complementar
                     * 07 Documento Fiscal Complementar extemporâneo.
                     * 08 Documento Fiscal emitido com base em Regime Especial ou Norma Específica
                     */
                    if (NFeCabecalho.StatusNota.Equals("5"))
                    {
                        registroC100.setCodSit("00");
                    }
                    else if (NFeCabecalho.StatusNota.Equals("6"))
                    {
                        registroC100.setCodSit("02");
                    }
                    registroC100.setSer(NFeCabecalho.Serie);
                    registroC100.setNumDoc(NFeCabecalho.Numero);
                    registroC100.setChvNfe(NFeCabecalho.ChaveAcesso);
                    registroC100.setDtDoc(NFeCabecalho.DataHoraEmissao.Value);
                    registroC100.setDtES(NFeCabecalho.DataHoraEntradaSaida.Value);
                    registroC100.setVlDoc(NFeCabecalho.ValorTotal.Value);
                    registroC100.setIndPgto(NFeCabecalho.IndicadorFormaPagamento.Value.ToString());
                    registroC100.setVlDesc(NFeCabecalho.ValorDesconto.Value);
                    registroC100.setVlAbatNt(0);
                    registroC100.setVlMerc(NFeCabecalho.ValorTotalProdutos.Value);

                    NfeTransporteDTO Transporte = new NHibernateDAL <NfeTransporteDTO>(Session).SelectId <NfeTransporteDTO>(1);

                    if (Transporte != null)
                    {
                        registroC100.setIndFrt(Transporte.ModalidadeFrete.Value.ToString());
                    }

                    registroC100.setVlFrt(NFeCabecalho.ValorFrete.Value);
                    registroC100.setVlSeg(NFeCabecalho.ValorSeguro.Value);
                    registroC100.setVlOutDa(NFeCabecalho.ValorDespesasAcessorias.Value);
                    registroC100.setVlBcIcms(NFeCabecalho.BaseCalculoIcms.Value);
                    registroC100.setVlIcms(NFeCabecalho.ValorIcms.Value);
                    registroC100.setVlBcIcmsSt(NFeCabecalho.BaseCalculoIcmsSt.Value);
                    registroC100.setVlIcmsSt(NFeCabecalho.ValorIcmsSt.Value);
                    registroC100.setVlIpi(NFeCabecalho.ValorIpi.Value);
                    registroC100.setVlPis(NFeCabecalho.ValorPis.Value);
                    registroC100.setVlPisSt(0);
                    registroC100.setVlCofins(NFeCabecalho.ValorCofins.Value);
                    registroC100.setVlCofinsSt(0);

                    // REGISTRO C110: COMPLEMENTO  DO  DOCUMENTO  -  INFORMAÇÃO  COMPLEMENTAR  DA NOTA FISCAL (CÓDIGOS 01, 1B, 04 e 55)
                    //{ Não Implementado }

                    // REGISTRO C111: PROCESSO REFERENCIADO
                    //{ Não Implementado }

                    // REGISTRO  C120:  COMPLEMENTO  DO  DOCUMENTO  -  OPERAÇÕES DE  IMPORTAÇÃO (CÓDIGO 01)
                    //{ Não Implementado }


                    // REGISTRO  C170:  COMPLEMENTO  DO  DOCUMENTO  -  ITENS  DO  DOCUMENTO (CÓDIGOS 01, 1B, 04 e 55)
                    consultaSql = "from ViewSpedNfeDetalheDTO where IdNfeCabecalho = " + NFeCabecalho.Id;
                    IList <ViewSpedNfeDetalheDTO> ListaNFeDetalhe = new NHibernateDAL <ViewSpedNfeDetalheDTO>(Session).SelectListaSql <ViewSpedNfeDetalheDTO>(consultaSql);
                    RegistroC170 registroC170;
                    if (ListaNFeDetalhe != null)
                    {
                        foreach (ViewSpedNfeDetalheDTO NFeDetalhe in ListaNFeDetalhe)
                        {
                            registroC170 = new RegistroC170();

                            registroC170.setNumItem(NFeDetalhe.NumeroItem.ToString());
                            registroC170.setCodItem(NFeDetalhe.Gtin);
                            registroC170.setDescrCompl(NFeDetalhe.NomeProduto);
                            registroC170.setQtd(NFeDetalhe.QuantidadeComercial);
                            registroC170.setUnid(Convert.ToString(NFeDetalhe.IdUnidadeProduto));
                            registroC170.setVlItem(NFeDetalhe.ValorTotal);
                            registroC170.setVlDesc(NFeDetalhe.ValorDesconto);
                            registroC170.setIndMov(0);
                            registroC170.setCstIcms(NFeDetalhe.CstIcms);
                            registroC170.setCfop(Convert.ToString(NFeDetalhe.Cfop));
                            registroC170.setCodNat(Convert.ToString(NFeDetalhe.IdTributOperacaoFiscal));
                            registroC170.setVlBcIcms(NFeDetalhe.BaseCalculoIcms);
                            registroC170.setAliqIcms(NFeDetalhe.AliquotaIcms);
                            registroC170.setVlIcms(NFeDetalhe.ValorIcms);
                            registroC170.setVlBcIcmsSt(NFeDetalhe.ValorBaseCalculoIcmsSt);
                            registroC170.setAliqSt(NFeDetalhe.AliquotaIcmsSt);
                            registroC170.setVlIcmsSt(NFeDetalhe.ValorIcmsSt);
                            registroC170.setIndApur(0);
                            registroC170.setCstIpi(NFeDetalhe.CstIpi);
                            registroC170.setCodEnq(NFeDetalhe.EnquadramentoIpi);
                            registroC170.setVlBcIpi(NFeDetalhe.ValorBaseCalculoIpi);
                            registroC170.setAliqIpi(NFeDetalhe.AliquotaIpi);
                            registroC170.setVlIpi(NFeDetalhe.ValorIpi);
                            registroC170.setCstPis(NFeDetalhe.CstPis);
                            registroC170.setVlBcPis(NFeDetalhe.ValorBaseCalculoPis);
                            registroC170.setAliqPisPerc(NFeDetalhe.AliquotaPisPercentual);
                            registroC170.setQuantBcPis(NFeDetalhe.QuantidadeVendidaPis);
                            registroC170.setAliqPisR(NFeDetalhe.AliquotaPisReais);
                            registroC170.setVlPis(NFeDetalhe.ValorPis);
                            registroC170.setCstCofins(NFeDetalhe.CstCofins);
                            registroC170.setVlBcCofins(NFeDetalhe.BaseCalculoCofins);
                            registroC170.setAliqCofinsPerc(NFeDetalhe.AliquotaCofinsPercentual);
                            registroC170.setQuantBcCofins(NFeDetalhe.QuantidadeVendidaCofins);
                            registroC170.setAliqCofinsR(NFeDetalhe.AliquotaCofinsReais);
                            registroC170.setVlCofins(NFeDetalhe.ValorCofins);
                            registroC170.setCodCta("");

                            registroC100.getRegistroC170List().Add(registroC170);
                        }
                    }

                    // REGISTRO C175: REGISTRO ANALÍTICO DO DOCUMENTO (CÓDIGO 65)
                    // { Será analisado após a implementação da NFC-e }

                    // REGISTRO C180: CONSOLIDAÇÃO  DE  NOTAS  FISCAIS  ELETRÔNICAS  EMITIDAS PELA PESSOA JURÍDICA (CÓDIGOS 55 e 65) – OPERAÇÕES DE VENDAS
                    // REGISTRO C181: DETALHAMENTO DA CONSOLIDAÇÃO – OPERAÇÕES DE VENDAS – PIS/PASEP
                    // REGISTRO C185: DETALHAMENTO DA CONSOLIDAÇÃO – OPERAÇÕES DE VENDAS – COFINS
                    // REGISTRO C188: PROCESSO REFERENCIADO
                    // { Não Implementados }

                    // REGISTRO C190: CONSOLIDAÇÃO DE NOTAS FISCAIS ELETRÔNICAS (CÓDIGO 55) – OPERAÇÕES  DE  AQUISIÇÃO  COM  DIREITO  A  CRÉDITO,  E  OPERAÇÕES  DE DEVOLUÇÃO DE COMPRAS E VENDAS.
                    // REGISTRO C191:  DETALHAMENTO  DA  CONSOLIDAÇÃO  –  OPERAÇÕES  DE AQUISIÇÃO  COM  DIREITO  A  CRÉDITO,  E  OPERAÇÕES  DE  DEVOLUÇÃO  DE COMPRAS E VENDAS – PIS/PASEP
                    // REGISTRO C195:  DETALHAMENTO  DA  CONSOLIDAÇÃO  -  OPERAÇÕES  DE AQUISIÇÃO  COM  DIREITO  A  CRÉDITO,  E  OPERAÇÕES  DE  DEVOLUÇÃO  DE COMPRAS E VENDAS – COFINS
                    // REGISTRO C198: PROCESSO REFERENCIADO
                    // REGISTRO C199: COMPLEMENTO DO DOCUMENTO - OPERAÇÕESDE IMPORTAÇÃO (CÓDIGO 55)
                    // { Não Implementados }
                }
            }


            // REGISTRO  C380:  NOTA  FISCAL  DE  VENDA  A  CONSUMIDOR  (CÓDIGO  02)  - CONSOLIDAÇÃO DE DOCUMENTOS EMITIDOS.
            consultaSql = "from ViewSpedC300DTO where DataEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
            IList <ViewSpedC300DTO> ListaC300 = new NHibernateDAL <ViewSpedC300DTO>(Session).SelectListaSql <ViewSpedC300DTO>(consultaSql);

            if (ListaC300 != null)
            {
                RegistroC380 registroC380;
                foreach (ViewSpedC300DTO C380 in ListaC300)
                {
                    registroC380 = new RegistroC380();
                    registroC380.setCodMod("2");
                    registroC380.setNumDocIni(C380.Id.ToString()); // Como pegar o número inicial?
                    registroC380.setNumDocFin(C380.Id.ToString()); // Como pegar o número Final?
                    registroC380.setDtDocIni(C380.DataEmissao);    // Como pegar a data inicial?
                    registroC380.setDtDocFin(C380.DataEmissao);    // Como pegar a data Final?
                    registroC380.setVlDoc(C380.SomaTotalNf);
                    registroC380.setvlDocCanc(C380.SomaTotalNf);   // Como pegar os valores cancelados?

                    // REGISTRO C381: DETALHAMENTO DA CONSOLIDAÇÃO – PIS/P ASEP
                    // REGISTRO C385: DETALHAMENTO DA CONSOLIDAÇÃO – COFINS
                    // { Exercício: implementar }

                    // REGISTRO C395: NOTAS FISCAIS DE VENDA A CONSUMIDOR(CÓDIGOS 02, 2D, 2E e 59) – AQUISIÇÕES/ENTRADAS COM CRÉDITO.
                    // REGISTRO C396:  ITENS  DO  DOCUMENTO  (CÓDIGOS  02,  2D,  2E  e  59)  – AQUISIÇÕES/ENTRADAS COM CRÉDITO
                    // { Não Implementados }
                }
            }


            IList <EcfImpressoraDTO> ListaImpressora = new NHibernateDAL <EcfImpressoraDTO>(Session).Select(new EcfImpressoraDTO());

            if (ListaImpressora != null)
            {
                RegistroC400 registroC400;
                foreach (EcfImpressoraDTO Impressora in ListaImpressora)
                {
                    // REGISTRO C400: EQUIPAMENTO ECF (CÓDIGO 02, 2D e 60).
                    registroC400 = new RegistroC400();

                    registroC400.setCodMod(Impressora.ModeloDocumentoFiscal);
                    registroC400.setEcfMod(Impressora.Modelo);
                    registroC400.setEcfFab(Impressora.Serie);
                    registroC400.setEcfCx(Impressora.Numero.ToString());

                    // verifica se existe movimento no periodo para aquele ECF
                    consultaSql = "from EcfR02DTO where IdImpressora=" + Impressora.Id + " and DataEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
                    IList <EcfR02DTO> ListaR02 = new NHibernateDAL <EcfR02DTO>(Session).SelectListaSql <EcfR02DTO>(consultaSql);
                    if (ListaR02 != null)
                    {
                        // REGISTRO C405: REDUÇÃO Z (CÓDIGO 02, 2D e 60).
                        RegistroC405 registroC405;
                        foreach (EcfR02DTO R02 in ListaR02)
                        {
                            registroC405 = new RegistroC405();

                            registroC405.setDtDoc(R02.DataMovimento.Value);
                            registroC405.setCro(R02.Cro.Value);
                            registroC405.setCrz(R02.Crz.Value);
                            registroC405.setNumCooFin(R02.Coo.Value);
                            registroC405.setGtFin(R02.GrandeTotal.Value);
                            registroC405.setVlBrt(R02.VendaBruta.Value);

                            // REGISTRO C481: RESUMO DIÁRIO DE DOCUMENTOS EMITIDOSPOR ECF – PIS/PASEP (CÓDIGOS 02 e 2D).
                            // REGISTRO C485: RESUMO DIÁRIO DE DOCUMENTOS EMITIDOSPOR ECF – COFINS (CÓDIGOS 02 e 2D)
                            // {Exercício: Implementar}


                            registroC400.getRegistroC405List().Add(registroC405);
                        }

                        // REGISTRO C489: PROCESSO REFERENCIADO
                        // { Não Implementado }

                        // REGISTRO C490: CONSOLIDAÇÃO DE DOCUMENTOS EMITIDOS  POR ECF (CÓDIGOS 02, 2D, 59 e 60)
                        // REGISTRO C491:  DETALHAMENTO  DA CONSOLIDAÇÃO DE DOCUMENTOS EMITIDOS POR ECF (CÓDIGOS 02, 2D e 59) – PIS/PASEP
                        // REGISTRO C495:  DETALHAMENTO  DA CONSOLIDAÇÃO DE DOCUMENTOS EMITIDOS POR ECF (CÓDIGOS 02, 2D e 59) – COFINS
                        // REGISTRO C499: PROCESSO REFERENCIADO
                        // { Não Implementados }
                    }

                    // REGISTRO C495: RESUMO MENSAL DE ITENS DO ECF POR ESTABELECIMENTO (CÓDIGO 02 e 2D).
                    // Implementado a critério do Participante do T2Ti ERP
                }
            }

            // REGISTRO C500:  NOTA  FISCAL/CONTA  DE  ENERGIA  ELÉTRICA  (CÓDIGO  06),  NOTA FISCAL/CONTA  DE  FORNECIMENTO  D'ÁGUA  CANALIZADA  (CÓDIGO  29)  E  NOTA  FISCAL CONSUMO  FORNECIMENTO  DE  GÁS  (CÓDIGO  28)  E  NF-e  (CÓDIGO  55)–  DOCUMENTOS  DE ENTRADA/AQUISIÇÃO COM CRÉDITO
            // REGISTRO C501: COMPLEMENTO DA OPERAÇÃO (CÓDIGOS 06,28 e 29) – PIS/PASEP
            // REGISTRO C505: COMPLEMENTO DA OPERAÇÃO (CÓDIGOS 06,28 e 29) – COFINS
            // REGISTRO C509: PROCESSO REFERENCIADO
            // REGISTRO C600:  CONSOLIDAÇÃO  DIÁRIA  DE  NOTAS  FISCAIS/CONTAS  EMITIDAS  DE ENERGIA  ELÉTRICA  (CÓDIGO  06),  NOTA  FISCAL/CONTA  DE  FORNECIMENTO  D'ÁGUA CANALIZADA (CÓDIGO 29) E NOTA FISCAL/CONTA DE FORNECIMENTO DE GÁS (CÓDIGO 28) (EMPRESAS OBRIGADAS OU NÃO OBRIGADAS AO CONVENIO ICMS 115/03) – DOCUMENTOS DE SAÍDA
            // REGISTRO C601: COMPLEMENTO DA CONSOLIDAÇÃO DIÁRIA (CÓDIGOS 06, 28 e 29) – DOCUMENTOS DE SAÍDAS - PIS/PASEP
            // REGISTRO C605: COMPLEMENTO DA CONSOLIDAÇÃO DIÁRIA (CÓDIGOS 06, 28 e 29) – DOCUMENTOS DE SAÍDAS – COFINS
            // REGISTRO C609: PROCESSO REFERENCIADO
            // { Não Implementados }

            // REGISTRO C800: CUPOM FISCAL ELETRÔNICO (CÓDIGO 59)
            // REGISTRO C810:  DETALHAMENTO  DO  CUPOM  FISCAL  ELETRÔNICO  (CÓDIGO  59)  – PIS/PASEP E COFINS
            // REGISTRO C820:  DETALHAMENTO  DO  CUPOM  FISCAL  ELETRÔNICO  (CÓDIGO  59)  – PIS/PASEP E COFINS APURADO POR UNIDADE DE MEDIDA DEPRODUTO
            // REGISTRO C830: PROCESSO RERENCIADO
            // REGISTRO C860: IDENTIFICAÇÃO DO EQUIPAMENTO SAT-CF-E
            // REGISTRO C870:  RESUMO  DIÁRIO  DE  DOCUMENTOS  EMITIDOS POR  EQUIPAMENTO SAT-CF-E (CÓDIGO 59) – PIS/PASEP E COFINS
            // REGISTRO C880:  RESUMO  DIÁRIO  DE  DOCUMENTOS  EMITIDOS POR  EQUIPAMENTO SAT-CF-E (CÓDIGO 59) – PIS/PASEP E COFINS APURADO POR UNIDADE DE MEDIDA DE PRODUTO
            // REGISTRO C890: PROCESSO REFERENCIADO
            // (* Serão analisados após implementação do SAT *)
        }
示例#2
0
        private void CriaBlocoC()
        {
            int INotas;
            int IItens;
            int NNotas;
            int BNotas;

            // Alimenta o componente com informações para gerar todos os registros do
            // Bloco C.
            btnB_C.Enabled = false;
            btnB_D.Enabled = true;
            NNotas         = Convert.ToInt32(edNotas.Text);
            BNotas         = Convert.ToInt32(edBufNotas.Text);

            ProgressBar1.Visible = cbConcomitante.Checked;
            ProgressBar1.Maximum = NNotas;
            ProgressBar1.Value   = 0;

            var blocoC       = ACBrSPEDFiscal1.Bloco_C;
            var registroC001 = blocoC.RegistroC001;

            registroC001.IND_MOV = IndicadorMovimento.ComDados;

            for (INotas = 1; INotas <= NNotas; INotas++)
            {
                var registroC100 = new RegistroC100();
                registroC100.IND_OPER      = TipoOperacao.EntradaAquisicao;
                registroC100.IND_EMIT      = Emitente.EmissaoPropria;
                registroC100.COD_PART      = "001";
                registroC100.COD_MOD       = "";
                registroC100.COD_SIT       = SituacaoDocto.Regular;
                registroC100.SER           = "";
                registroC100.NUM_DOC       = string.Format("11{0:000000}", INotas);
                registroC100.CHV_NFE       = "";
                registroC100.DT_DOC        = blocoC.DT_INI.AddDays(INotas);
                registroC100.DT_E_S        = blocoC.DT_INI.AddDays(INotas);
                registroC100.VL_DOC        = 0;
                registroC100.IND_PGTO      = TipoPagamento.SemPagamento;
                registroC100.VL_DESC       = 0;
                registroC100.VL_ABAT_NT    = 0;
                registroC100.VL_MERC       = 0;
                registroC100.IND_FRT       = TipoFrete.SemCobrancaFrete;
                registroC100.VL_SEG        = 0;
                registroC100.VL_OUT_DA     = 0;
                registroC100.VL_BC_ICMS    = 0;
                registroC100.VL_ICMS       = 0;
                registroC100.VL_BC_ICMS_ST = 0;
                registroC100.VL_ICMS_ST    = 0;
                registroC100.VL_IPI        = 0;
                registroC100.VL_PIS        = 0;
                registroC100.VL_COFINS     = 0;
                registroC100.VL_PIS_ST     = 0;
                registroC100.VL_COFINS_ST  = 0;
                registroC001.RegistroC100.Add(registroC100);

                // Gera registros específicos para notas emitidas por terceiros
                if (registroC100.IND_EMIT == Emitente.Terceiros)
                {
                    var registroC110 = new RegistroC110();
                    registroC110.COD_INF   = "000001";
                    registroC110.TXT_COMPL = "";
                    registroC100.RegistroC110.Add(registroC110);
                }

                // Gera o registro de importação apenas para notas de entrada
                if (registroC100.IND_OPER == TipoOperacao.EntradaAquisicao)
                {
                    var registroC120 = new RegistroC120();
                    registroC120.COD_DOC_IMP  = DoctoImporta.SimplificadaImport;
                    registroC120.NUM_DOC__IMP = "1024879531";
                    registroC120.PIS_IMP      = 0.00M;
                    registroC120.COFINS_IMP   = 0.00M;
                    registroC120.NUM_ACDRAW   = "";

                    registroC100.RegistroC120.Add(registroC120);
                }

                // Gera registros específicos para notas emitidas por terceiros e de prestação
                if ((registroC100.IND_EMIT == Emitente.Terceiros) && (registroC100.IND_OPER == TipoOperacao.SaidaPrestacao))
                {
                    var registroC130 = new RegistroC130();
                    registroC130.VL_SERV_NT  = 10.12M;
                    registroC130.VL_BC_ISSQN = 10.12M;
                    registroC130.VL_ISSQN    = 10.12M;
                    registroC130.VL_BC_IRRF  = 10.12M;
                    registroC130.VL_IRRF     = 10.12M;
                    registroC130.VL_BC_PREV  = 10.12M;
                    registroC130.VL_PREV     = 10.12M;

                    registroC100.RegistroC130.Add(registroC130);
                }

                // REGISTRO C170: ITENS DO DOCUMENTO (CÓDIGO 01, 1B, 04 e 55).
                for (IItens = 1; IItens <= 10; IItens++)
                {
                    var registroC170 = new RegistroC170();

                    // Inicio Adicionar os Itens:
                    registroC170.NUM_ITEM         = string.Format("{0:000}", IItens);
                    registroC170.COD_ITEM         = string.Format("{0:000000}", registroC170.NUM_ITEM);
                    registroC170.DESCR_COMPL      = string.Format("11{0:000000} ITEM {1}", INotas, registroC170.COD_ITEM);
                    registroC170.QTD              = 1;
                    registroC170.UNID             = "UN";
                    registroC170.VL_ITEM          = 0;
                    registroC170.VL_DESC          = 0;
                    registroC170.IND_MOV          = MovimentacaoFisica.Nao;
                    registroC170.CST_ICMS         = "001";
                    registroC170.CFOP             = "1252";
                    registroC170.COD_NAT          = "64";
                    registroC170.VL_BC_ICMS       = 0;
                    registroC170.ALIQ_ICMS        = 0;
                    registroC170.VL_ICMS          = 0;
                    registroC170.VL_BC_ICMS_ST    = 0;
                    registroC170.ALIQ_ST          = 0;
                    registroC170.VL_ICMS_ST       = 0;
                    registroC170.IND_APUR         = ApuracaoIPI.Mensal;
                    registroC170.CST_IPI          = ipiEntradaIsenta;
                    registroC170.COD_ENQ          = "";
                    registroC170.VL_BC_IPI        = 0;
                    registroC170.ALIQ_IPI         = 0;
                    registroC170.VL_IPI           = 0;
                    registroC170.CST_PIS          = pisOutrasOperacoes;
                    registroC170.VL_BC_PIS        = 0;
                    registroC170.ALIQ_PIS_PERC    = 0;
                    registroC170.QUANT_BC_PIS     = 0;
                    registroC170.ALIQ_PIS_R       = 0;
                    registroC170.VL_PIS           = 0;
                    registroC170.CST_COFINS       = cofinsOutrasOperacoes;
                    registroC170.VL_BC_COFINS     = 0;
                    registroC170.ALIQ_COFINS_PERC = 0;
                    registroC170.QUANT_BC_COFINS  = 0;
                    registroC170.ALIQ_COFINS_R    = 0;
                    registroC170.VL_COFINS        = 0;
                    registroC170.COD_CTA          = "000";

                    registroC100.RegistroC170.Add(registroC170);
                }

                // REGISTRO C170: ITENS DO DOCUMENTO (CÓDIGO 01, 1B, 04 e 55).
                for (IItens = 1; IItens <= 10; IItens++)
                {
                    var registroC190 = new RegistroC190();
                    registroC190.CST_ICMS      = "040";
                    registroC190.CFOP          = "1252";
                    registroC190.ALIQ_ICMS     = 0;
                    registroC190.VL_OPR        = 0;
                    registroC190.VL_BC_ICMS    = 0;
                    registroC190.VL_ICMS       = 0;
                    registroC190.VL_BC_ICMS_ST = 0;
                    registroC190.VL_ICMS_ST    = 0;
                    registroC190.VL_RED_BC     = 0;
                    registroC190.VL_IPI        = 0;
                    registroC190.COD_OBS       = "000";

                    registroC100.RegistroC190.Add(registroC190);
                }
            }

            var registroC400 = new RegistroC400();

            registroC400.COD_MOD = "2D";
            registroC400.ECF_MOD = "DARUMA FS600";
            registroC400.ECF_FAB = "21098765432123456789";
            registroC400.ECF_CX  = "001";

            registroC001.RegistroC400.Add(registroC400);

            var registroC405 = new RegistroC405();

            registroC405.DT_DOC      = blocoC.DT_FIN;
            registroC405.CRO         = 1;
            registroC405.CRZ         = 1;
            registroC405.NUM_COO_FIN = 1;
            registroC405.GT_FIN      = 105.00M;
            registroC405.VL_BRT      = 105.00M;
            registroC400.RegistroC405.Add(registroC405);

            var registroC410 = new RegistroC410();

            registroC410.VL_PIS    = 0.00M;
            registroC410.VL_COFINS = 0.00M;
            registroC405.RegistroC410.Add(registroC410);

            var registroC420 = new RegistroC420();

            registroC420.COD_TOT_PAR  = "T1700";
            registroC420.VLR_ACUM_TOT = 100.00M;
            registroC420.NR_TOT       = 1;
            registroC420.DESCR_NR_TOT = "TOTALIZADOR T1700";
            registroC405.RegistroC420.Add(registroC420);

            //Gera este registro somente para empresas do pergil B de apresentação
            if (ACBrSPEDFiscal1.Bloco_0.Registro0000.IND_PERFIL == Perfil.PerfilB)
            {
                var registroC425 = new RegistroC425();
                registroC425.COD_ITEM  = "000001";
                registroC425.QTD       = 1;
                registroC425.UNID      = "PC";
                registroC425.VL_ITEM   = 100.00M;
                registroC425.VL_PIS    = 0.00M;
                registroC425.VL_COFINS = 0.00M;
                registroC420.RegistroC425.Add(registroC425);
            }

            if (ACBrSPEDFiscal1.Bloco_0.Registro0000.IND_PERFIL != Perfil.PerfilB)
            {
                var registroC460 = new RegistroC460();
                registroC460.COD_MOD   = "2D";
                registroC460.COD_SIT   = SituacaoDocto.Regular;
                registroC460.NUM_DOC   = "000001";
                registroC460.DT_DOC    = Convert.ToDateTime("30/11/2011");
                registroC460.VL_DOC    = 100.00M;
                registroC460.VL_PIS    = 0.00M;
                registroC460.VL_COFINS = 0.00M;
                registroC460.CPF_CNPJ  = "33333333333";
                registroC460.NOM_ADQ   = "TESTE";
                registroC405.RegistroC460.Add(registroC460);

                var registroC470 = new RegistroC470();
                registroC470.COD_ITEM  = "000001";
                registroC470.QTD       = 1;
                registroC470.QTD_CANC  = 0;
                registroC470.UNID      = "UN";
                registroC470.VL_ITEM   = 100.00m;
                registroC470.CST_ICMS  = "000";
                registroC470.CFOP      = "5102";
                registroC470.ALIQ_ICMS = 17.00m;
                registroC470.VL_PIS    = 0.00m;
                registroC470.VL_COFINS = 0.00m;
                registroC460.RegistroC470.Add(registroC470);
            }

            var registroC490 = new RegistroC490();

            registroC490.CST_ICMS   = "000";
            registroC490.CFOP       = "5102";
            registroC490.ALIQ_ICMS  = 17.00M;
            registroC490.VL_OPR     = 100.00M;
            registroC490.VL_BC_ICMS = 100.00M;
            registroC490.VL_ICMS    = 17.00M;
            registroC490.COD_OBS    = "000001";
            registroC405.RegistroC490.Add(registroC490);

            //Só envia este registro se o contribuinte for da BA
            if (ACBrSPEDFiscal1.Bloco_0.Registro0000.UF == "BA")
            {
                var registroC495 = new RegistroC495();

                registroC495.ALIQ_ICMS  = 17.00M;
                registroC495.COD_ITEM   = "000001";
                registroC495.QTD        = 1.00M;
                registroC495.QTD_CANC   = 0.00M;
                registroC495.UNID       = "UN";
                registroC495.VL_ITEM    = 100.00M;
                registroC495.VL_DESC    = 0.00M;
                registroC495.VL_CANC    = 0.00M;
                registroC495.VL_ACMO    = 0.00M;
                registroC495.VL_BC_ICMS = 100.00M;
                registroC495.VL_ICMS    = 17.00M;
                registroC495.VL_ISEN    = 0.00M;
                registroC495.VL_ICMS_ST = 0.00M;
            }
        }