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; } }
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 *) }
public static void GerarBlocoC() { NotaFiscalController NotaFiscalController = new NotaFiscalController(); SpedFiscalController SpedFiscalController = new SpedFiscalController(); RegistroRController RegistroRController = new RegistroRController(); var BlocoC = FDataModule.ACBrSpedFiscal.Bloco_C; var RegistroC001 = BlocoC.RegistroC001; RegistroC001.IND_MOV = IndicadorMovimento.ComDados; List <NotaFiscalCabecalhoVO> ListaNF2Cabecalho = NotaFiscalController.ConsultaNFCabecalhoSPED(DataInicial, DataFinal); List <NotaFiscalCabecalhoVO> ListaNF2CabecalhoCanceladas = NotaFiscalController.ConsultaNFCabecalhoCanceladasSPED(DataInicial, DataFinal); List <SpedFiscalC370VO> ListaC370; List <SpedFiscalC390VO> ListaC390; List <SpedFiscalC321VO> ListaC321; List <SpedFiscalC425VO> ListaC425; List <SpedFiscalC490VO> ListaC490; List <R02VO> ListaR02; List <R03VO> ListaR03; List <R04VO> ListaR04; List <R05VO> ListaR05; //TODO: Implemente a busca por NF-e na sua retaguarda List <Object> ListaNFeCabecalho = new List <Object>(); List <Object> ListaCupomNFe; List <Object> ListaNFeAnalitico; // / /////////// // Perfil A // // / /////////// if (PerfilApresentacao == 0) { if (ListaNFeCabecalho != null) { for (int i = 0; i <= ListaNFeCabecalho.Count - 1; i++) { // c100 //TODO: Implemente a busca por NF-e na sua retaguarda var RegistroC100 = new RegistroC100(); RegistroC100.IND_OPER = TipoOperacao.SaidaPrestacao; RegistroC100.IND_EMIT = Emitente.EmissaoPropria; RegistroC100.COD_PART = "1"; RegistroC100.COD_MOD = "1"; RegistroC100.COD_SIT = SituacaoDocto.Regular; RegistroC100.SER = "1"; RegistroC100.NUM_DOC = "1"; RegistroC100.CHV_NFE = "1"; RegistroC100.DT_DOC = DateTime.Now; RegistroC100.DT_E_S = DateTime.Now; RegistroC100.VL_DOC = 1; RegistroC100.IND_PGTO = TipoPagamento.SemPagamento; RegistroC100.VL_DESC = 0; RegistroC100.VL_ABAT_NT = 0; RegistroC100.VL_MERC = 1; RegistroC100.IND_FRT = TipoFrete.SemCobrancaFrete; RegistroC100.VL_FRT = 0; RegistroC100.VL_SEG = 0; RegistroC100.VL_OUT_DA = 0; RegistroC100.VL_BC_ICMS = 1; 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); // C114 // TODO Implemente a busca por NF-e na sua retaguarda ListaCupomNFe = new List <Object>(); if (ListaCupomNFe != null) { for (int j = 0; j <= ListaCupomNFe.Count - 1; j++) { var RegistroC114 = new RegistroC114(); RegistroC114.COD_MOD = "1"; RegistroC114.ECF_FAB = "1"; RegistroC114.ECF_CX = "1"; RegistroC114.NUM_DOC = "1"; RegistroC114.DT_DOC = DateTime.Now; //RegistroC001.RegistroC100[i].RegistroC110[i].RegistroC114.Add(RegistroC114); } } // C190 // TODO Implemente a busca por NF-e na sua retaguarda ListaCupomNFe = new List <Object>(); ListaNFeAnalitico = new List <Object>(); if (ListaNFeAnalitico != null) { for (int j = 0; j <= ListaNFeAnalitico.Count - 1; j++) { var RegistroC190 = new RegistroC190(); RegistroC190.CST_ICMS = "1"; RegistroC190.CFOP = "1"; RegistroC190.ALIQ_ICMS = 0; RegistroC190.VL_OPR = 1; 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 = ""; RegistroC100.RegistroC190.Add(RegistroC190); } } } } if (ListaNF2Cabecalho != null) { for (int i = 0; i <= ListaNF2Cabecalho.Count - 1; i++) { var RegistroC350 = new RegistroC350(); RegistroC350.SER = ListaNF2Cabecalho[i].Serie; RegistroC350.SUB_SER = ListaNF2Cabecalho[i].Subserie; RegistroC350.NUM_DOC = ListaNF2Cabecalho[i].Numero; RegistroC350.DT_DOC = Convert.ToDateTime(ListaNF2Cabecalho[i].DataEmissao); RegistroC350.CNPJ_CPF = ListaNF2Cabecalho[i].CpfCnpjCliente; RegistroC350.VL_MERC = ListaNF2Cabecalho[i].TotalProdutos; RegistroC350.VL_DOC = ListaNF2Cabecalho[i].TotalNf; RegistroC350.VL_DESC = ListaNF2Cabecalho[i].Desconto; RegistroC350.VL_PIS = ListaNF2Cabecalho[i].Pis; RegistroC350.VL_COFINS = ListaNF2Cabecalho[i].Cofins; RegistroC350.COD_CTA = ""; RegistroC001.RegistroC350.Add(RegistroC350); // C370 ListaC370 = SpedFiscalController.TabelaC370(ListaNF2Cabecalho[i].Id); if (ListaC370 != null) { for (int j = 0; j <= ListaC370.Count - 1; j++) { var RegistroC370 = new RegistroC370(); RegistroC370.NUM_ITEM = Convert.ToString(ListaC370[j].Item); RegistroC370.COD_ITEM = Convert.ToString(ListaC370[j].IdProduto); RegistroC370.QTD = ListaC370[j].Quantidade; RegistroC370.UNID = Convert.ToString(ListaC370[j].IdUnidade); RegistroC370.VL_ITEM = ListaC370[j].Valor; RegistroC370.VL_DESC = ListaC370[j].Desconto; RegistroC001.RegistroC350[i].RegistroC370.Add(RegistroC370); } } // C390 ListaC390 = SpedFiscalController.TabelaC390(ListaNF2Cabecalho[i].Id); if (ListaC390 != null) { for (int l = 0; l <= ListaC390.Count - 1; l++) { var RegistroC390 = new RegistroC390(); RegistroC390.CST_ICMS = ListaC390[l].CST; RegistroC390.CFOP = Convert.ToString(ListaC390[l].CFOP); RegistroC390.ALIQ_ICMS = ListaC390[l].TaxaICMS; RegistroC390.VL_OPR = ListaC390[l].SomaValor; RegistroC390.VL_BC_ICMS = ListaC390[l].SomaBaseICMS; RegistroC390.VL_ICMS = ListaC390[l].SomaICMS; RegistroC390.VL_RED_BC = ListaC390[l].SomaICMSOutras; RegistroC001.RegistroC350[i].RegistroC390.Add(RegistroC390); } } } } } // / /////////// // Perfil B // // / /////////// if (PerfilApresentacao == 1) { if (ListaNF2Cabecalho != null) { for (int i = 0; i <= ListaNF2Cabecalho.Count - 1; i++) { // C300 var RegistroC300 = new RegistroC300(); RegistroC300.COD_MOD = "02"; RegistroC300.SER = ListaNF2Cabecalho[i].Serie; RegistroC300.SUB = ListaNF2Cabecalho[i].Subserie; RegistroC300.DT_DOC = Convert.ToDateTime(ListaNF2Cabecalho[i].DataEmissao); RegistroC300.VL_DOC = ListaNF2Cabecalho[i].TotalNf; RegistroC300.VL_PIS = ListaNF2Cabecalho[i].Pis; RegistroC300.VL_COFINS = ListaNF2Cabecalho[i].Cofins; RegistroC300.COD_CTA = ""; RegistroC001.RegistroC300.Add(RegistroC300); } } if (ListaNF2CabecalhoCanceladas != null) { for (int i = 0; i <= ListaNF2CabecalhoCanceladas.Count - 1; i++) { // C310 var RegistroC310 = new RegistroC310(); RegistroC310.NUM_DOC_CANC = ListaNF2CabecalhoCanceladas[i].Numero; RegistroC001.RegistroC300[i].RegistroC310.Add(RegistroC310); } } // C320 ---> igual ao C390 ListaC390 = SpedFiscalController.TabelaC390(ListaNF2Cabecalho[0].Id); if (ListaC390 != null) { for (int l = 0; l <= ListaC390.Count - 1; l++) { var RegistroC320 = new RegistroC320(); RegistroC320.CST_ICMS = ListaC390[l].CST; RegistroC320.CFOP = Convert.ToString(ListaC390[l].CFOP); RegistroC320.ALIQ_ICMS = ListaC390[l].TaxaICMS; RegistroC320.VL_OPR = ListaC390[l].SomaValor; RegistroC320.VL_BC_ICMS = ListaC390[l].SomaBaseICMS; RegistroC320.VL_ICMS = ListaC390[l].SomaICMS; RegistroC320.VL_RED_BC = ListaC390[l].SomaICMSOutras; RegistroC001.RegistroC300[0].RegistroC320.Add(RegistroC320); } } // C321 ListaC321 = SpedFiscalController.TabelaC321(DataInicial, DataFinal); if (ListaC321 != null) { for (int i = 0; i <= ListaC321.Count - 1; i++) { var RegistroC321 = new RegistroC321(); RegistroC321.COD_ITEM = Convert.ToString(ListaC321[i].IdProduto); RegistroC321.QTD = ListaC321[i].SomaQuantidade; RegistroC321.UNID = ListaC321[i].DescricaoUnidade; RegistroC321.VL_ITEM = ListaC321[i].SomaValor; RegistroC321.VL_DESC = ListaC321[i].SomaDesconto; RegistroC321.VL_BC_ICMS = ListaC321[i].SomaBaseICMS; RegistroC321.VL_ICMS = ListaC321[i].SomaICMS; RegistroC321.VL_PIS = ListaC321[i].SomaPIS; RegistroC321.VL_COFINS = ListaC321[i].SomaCOFINS; RegistroC001.RegistroC300[0].RegistroC320[0].RegistroC321.Add(RegistroC321); } } } // if PerfilApresentacao = 1 then // / ////////////////// // Ambos os Perfis // // / ////////////////// List <ImpressoraVO> ListaImpressora = new ImpressoraController().TabelaImpressora(); if (ListaImpressora != null) { for (int i = 0; i <= ListaImpressora.Count - 1; i++) { // verifica se existe movimento no periodo para aquele ECF ListaR02 = RegistroRController.TabelaR02(DataInicial, DataFinal, ListaImpressora[i].Id); if (ListaR02 != null) { var RegistroC400 = new RegistroC400(); RegistroC400.COD_MOD = ListaImpressora[i].ModeloDocumentoFiscal; RegistroC400.ECF_MOD = ListaImpressora[i].Modelo; RegistroC400.ECF_FAB = ListaImpressora[i].Serie; RegistroC400.ECF_CX = Convert.ToString(ListaImpressora[i].Numero); RegistroC001.RegistroC400.Add(RegistroC400); // C405 for (int j = 0; j <= ListaR02.Count - 1; j++) { var RegistroC405 = new RegistroC405(); RegistroC405.DT_DOC = Convert.ToDateTime(ListaR02[j].DataMovimento); RegistroC405.CRO = ListaR02[j].CRO; RegistroC405.CRZ = ListaR02[j].CRZ; RegistroC405.NUM_COO_FIN = ListaR02[j].COO; RegistroC405.GT_FIN = ListaR02[j].GrandeTotal; RegistroC405.VL_BRT = ListaR02[j].VendaBruta; RegistroC400.RegistroC405.Add(RegistroC405); // C420 ListaR03 = RegistroRController.TabelaR03(ListaR02[j].Id); if (ListaR03 != null) { for (int k = 0; k <= ListaR03.Count - 1; k++) { var RegistroC420 = new RegistroC420(); if (ListaR03[k].TotalizadorParcial.Length == 8) { RegistroC420.COD_TOT_PAR = ListaR03[k].TotalizadorParcial.Substring(ListaR03[k].TotalizadorParcial.Length, 2); } else { RegistroC420.COD_TOT_PAR = ListaR03[k].TotalizadorParcial; } RegistroC420.VLR_ACUM_TOT = ListaR03[k].ValorAcumulado; if (RegistroC420.COD_TOT_PAR.Trim().Length == 7) { RegistroC420.NR_TOT = Convert.ToInt32(RegistroC420.COD_TOT_PAR.Substring(2, 1)); } else { RegistroC420.NR_TOT = 0; } RegistroC405.RegistroC420.Add(RegistroC420); if (PerfilApresentacao == 1) { // C425 ListaC425 = SpedFiscalController.TabelaC425(ListaR02[j].DataMovimento.ToString("yyyy-mm-dd"), ListaR02[j].DataMovimento.ToString("yyyy-mm-dd"), ListaR03[k].TotalizadorParcial); if (ListaC425 != null) { for (int l = 0; l <= ListaC425.Count - 1; l++) { var RegistroC425 = new RegistroC425(); RegistroC425.COD_ITEM = Convert.ToString(ListaC425[l].IdProduto); RegistroC425.UNID = Convert.ToString(ListaC425[l].IdUnidade); RegistroC425.QTD = ListaC425[l].SomaQuantidade; RegistroC425.VL_ITEM = ListaC425[l].SomaValor; RegistroC425.VL_PIS = ListaC425[l].SomaPIS; RegistroC425.VL_COFINS = ListaC425[l].SomaCOFINS; RegistroC420.RegistroC425.Add(RegistroC425); } } } } } // se tiver o perfil A, gera o C460 com C470 if (PerfilApresentacao == 0) { // C460 ListaR04 = RegistroRController.TabelaR04(ListaR02[j].DataMovimento.ToString("yyyy-mm-dd"), ListaR02[j].DataMovimento.ToString("yyyy-mm-dd"), ListaImpressora[i].Id); if (ListaR04 != null) { for (int l = 0; l <= ListaR04.Count - 1; l++) { var RegistroC460 = new RegistroC460(); RegistroC460.COD_MOD = "2D"; if (ListaR04[l].Cancelado == "S") { RegistroC460.COD_SIT = SituacaoDocto.Cancelado; } else { RegistroC460.COD_SIT = SituacaoDocto.Regular; } if (RegistroC460.COD_SIT == SituacaoDocto.Regular) { RegistroC460.DT_DOC = ListaR04[l].DataEmissao; RegistroC460.VL_DOC = ListaR04[l].ValorLiquido; RegistroC460.VL_PIS = ListaR04[l].PIS; RegistroC460.VL_PIS = ListaR04[l].COFINS; RegistroC460.CPF_CNPJ = ListaR04[l].CPFCNPJ; RegistroC460.NOM_ADQ = ListaR04[l].Cliente; } RegistroC460.NUM_DOC = Convert.ToString(ListaR04[l].COO); RegistroC405.RegistroC460.Add(RegistroC460); if (RegistroC460.COD_SIT == SituacaoDocto.Regular) { // C470 ListaR05 = RegistroRController.TabelaR05(ListaR04[l].Id, "Sped"); if (ListaR05 != null) { for (int m = 0; m <= ListaR05.Count - 1; m++) { var RegistroC470 = new RegistroC470(); RegistroC470.COD_ITEM = Convert.ToString(ListaR05[m].IdProduto); RegistroC470.QTD = ListaR05[m].Quantidade; RegistroC470.QTD_CANC = ListaR05[m].QuantidadeCancelada; RegistroC470.UNID = Convert.ToString(ListaR05[m].IdUnidade); RegistroC470.VL_ITEM = ListaR05[m].TotalItem; RegistroC470.CST_ICMS = ListaR05[m].CST; RegistroC470.CFOP = Convert.ToString(ListaR05[m].CFOP); RegistroC470.ALIQ_ICMS = ListaR05[m].AliquotaICMS; RegistroC470.VL_PIS = ListaR05[m].PIS; RegistroC470.VL_COFINS = ListaR05[m].COFINS; RegistroC460.RegistroC470.Add(RegistroC470); } } } } } } // C490 ListaC490 = SpedFiscalController.TabelaC490(RegistroC405.DT_DOC.ToString("yyyy-mm-dd"), DataFinal); if (ListaC490 != null) { for (int g = 0; g <= ListaC490.Count - 1; g++) { var RegistroC490 = new RegistroC490(); RegistroC490.CST_ICMS = ListaC490[g].CST; RegistroC490.CFOP = Convert.ToString(ListaC490[g].CFOP); RegistroC490.ALIQ_ICMS = ListaC490[g].TaxaICMS; RegistroC490.VL_OPR = ListaC490[g].SomaValor; RegistroC490.VL_BC_ICMS = ListaC490[g].SomaBaseICMS; RegistroC490.VL_ICMS = ListaC490[g].SomaICMS; RegistroC405.RegistroC490.Add(RegistroC490); } } } } } } }