private void ProcessarDadosGeraisPorEmpresa()
        {
            this.UpdateStatusAsynchronousExecution("Gerando Registro 0140");
            // GetEmpresasFiliais(UndTrabalho.CodigoEmpresa);
            List <Registro0140> lreg0140 = DadosGeraisService.GetRegistro0140(UndTrabalho.CodigoEmpresa).ToList(); // Verificar

            foreach (Registro0140 reg0140 in lreg0140)
            {
                DadosArquivoPisCofinsService.PersistirRegistro(reg0140);

                foreach (validacao validaProd in contribuintes.Where(c => c.codEmp == reg0140.COD_EST))
                {
                    Registro0150 reg0150 = validaProd.registro as Registro0150;

                    this.UpdateStatusAsynchronousExecution("Gerando Registro 0150");
                    DadosArquivoPisCofinsService.PersistirRegistro(reg0150);
                }

                foreach (validacao validaUM in unidades.Where(c => c.codEmp == reg0140.COD_EST))
                {
                    Registro0190 reg0190 = validaUM.registro as Registro0190;

                    this.UpdateStatusAsynchronousExecution("Gerando Registro 0190");
                    DadosArquivoPisCofinsService.PersistirRegistro(reg0190);
                }

                foreach (validacao validaProd in produtos.Where(c => c.codEmp == reg0140.COD_EST))
                {
                    Registro0200 reg0200 = validaProd.registro as Registro0200;

                    this.UpdateStatusAsynchronousExecution("Gerando Registro 0200");
                    DadosArquivoPisCofinsService.PersistirRegistro(reg0200);
                }


                this.UpdateStatusAsynchronousExecution("Gerando Registro 0400");
                foreach (Registro0400 reg0400 in DadosGeraisService.GetRegistro0400(reg0140.COD_EST))
                {
                    DadosArquivoPisCofinsService.PersistirRegistro(reg0400);
                }
                this.UpdateStatusAsynchronousExecution("Gerando Registro 0500");
                foreach (Registro0500 reg0500 in DadosGeraisService.GetRegistro0500(reg0140.COD_EST))
                {
                    DadosArquivoPisCofinsService.PersistirRegistro(reg0500);
                }
            }
        }
        private void ProcessarProduto(string codigoProduto)
        {
            if (String.IsNullOrWhiteSpace(codigoProduto))
            {
                return;
            }

            IEnumerable <Registro0220> lreg220;

            if (!dadosArquivoContmaticService.RegistroJaExistente("0200", codigoProduto))
            {
                // Apenas persiste uma unidade se a mesma ainda não tiver sido processada
                this.UpdateStatusAsynchronousExecution("Gerando Registro 0200");
                Registro0200 reg0200 = produtosService.GetRegistro0200(codigoProduto);
                if (reg0200 != null)
                {
                    dadosArquivoContmaticService.PersistirRegistro(reg0200);
                    this.ProcessarUnidade(reg0200.UNID_INV);

                    lreg220 = produtosService.GetRegistros0220(reg0200.COD_ITEM);
                    foreach (Registro0220 item in lreg220)
                    {
                        this.UpdateStatusAsynchronousExecution("Gerando Registros 0220");
                        //item.FAT_CONV
                        if (!dadosArquivoContmaticService.RegistroJaExistente("0190", item.UNID_CONV))
                        {
                            // Apenas persiste uma unidade se a mesma ainda não tiver sido processada
                            this.UpdateStatusAsynchronousExecution("Gerando Registro 0190");
                            Registro0190 reg0190 = unidadesService.GetRegistro0190(item.UNID_CONV);
                            if (reg0190 != null)
                            {
                                dadosArquivoContmaticService.PersistirRegistro(reg0190);
                            }
                        }
                        dadosArquivoContmaticService.PersistirRegistro(item);
                    }
                }
            }
        }
        private void ProcessarProduto(string codigoProduto, string codEmp)
        {
            if (String.IsNullOrWhiteSpace(codigoProduto))
            {
                return;
            }

            Registro0200 reg0200 = ProdutosService.GetRegistro0200(codigoProduto, codEmp);

            if (reg0200 != null)
            {
                //if (!DadosArquivoPisCofinsService.RegistroJaExistente("0200", codigoProduto))
                if (produtos.Where(c => c.codEmp == codEmp && c.registro.ToString() == reg0200.ToString()).Count() == 0)
                {
                    // Apenas persiste uma unidade se a mesma ainda não tiver sido processada
                    //this.UpdateStatusAsynchronousExecution("Gerando Registro 0200");
                    //DadosArquivoPisCofinsService.PersistirRegistro(reg0200);
                    produtos.Add(new validacao {
                        codEmp = codEmp, registro = reg0200
                    });
                    this.ProcessarUnidade(reg0200.UNID_INV, codEmp);
                }
            }
        }
Пример #4
0
        public void GerarBloco0()
        {
            Empresa = new EmpresaDAL(Session).SelectId(IdEmpresa);
            ContadorDTO Contador = new NHibernateDAL <ContadorDTO>(Session).SelectId <ContadorDTO>(IdContador);

            consultaSql = "from ViewSpedNfeEmitenteDTO emitente where Id in (Select cab.Fornecedor.Id from NfeCabecalhoDTO as cab where cab.DataHoraEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal) + ")";
            IList <ViewSpedNfeEmitenteDTO> ListaEmitente = new NHibernateDAL <ViewSpedNfeEmitenteDTO>(Session).SelectListaSql <ViewSpedNfeEmitenteDTO>(consultaSql);

            consultaSql = "from ViewSpedNfeDestinatarioDTO destinatario where Id in (Select cab.Cliente.Id from NfeCabecalhoDTO as cab where cab.DataHoraEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal) + ")";
            IList <ViewSpedNfeDestinatarioDTO> ListaDestinatario = new NHibernateDAL <ViewSpedNfeDestinatarioDTO>(Session).SelectListaSql <ViewSpedNfeDestinatarioDTO>(consultaSql);

            consultaSql = "from ViewSpedNfeItemDTO item where Id in (Select det.Produto.Id from NfeDetalheDTO as det inner join det.NfeCabecalho as cab where cab.DataHoraEmissao BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal) + ")";
            IList <ViewSpedNfeItemDTO> ListaProduto = new NHibernateDAL <ViewSpedNfeItemDTO>(Session).SelectListaSql <ViewSpedNfeItemDTO>(consultaSql);

            IList <TributOperacaoFiscalDTO> ListaOperacaoFiscal = new NHibernateDAL <TributOperacaoFiscalDTO>(Session).Select(new TributOperacaoFiscalDTO());

            var bloco0 = sped.getBloco0();

            // Registro 0000: ABERTURA DO ARQUIVO DIGITAL E IDENTIFICAÇÃO DA ENTIDADE
            sped.getBloco0().getRegistro0000().setDtIni(System.DateTime.Parse(DataInicial));
            sped.getBloco0().getRegistro0000().setDtFin(System.DateTime.Parse(DataFinal));
            sped.getBloco0().getRegistro0000().setCodVer(VersaoLeiaute.ToString());
            //sped.getBloco0().getRegistro0000().setCodFin(FinalidadeArquivo.ToString());
            //sped.getBloco0().getRegistro0000().setIndPerfil(PerfilApresentacao.ToString());
            sped.getBloco0().getRegistro0000().setNome(Empresa.RazaoSocial);
            sped.getBloco0().getRegistro0000().setCnpj(Empresa.Cnpj);
            sped.getBloco0().getRegistro0000().setCpf("");
            sped.getBloco0().getRegistro0000().setIe(Empresa.InscricaoEstadual);
            sped.getBloco0().getRegistro0000().setCodMun(Empresa.CodigoIbgeCidade.Value);
            sped.getBloco0().getRegistro0000().setIm(Empresa.InscricaoMunicipal);
            sped.getBloco0().getRegistro0000().setSuframa(Empresa.Suframa);
            sped.getBloco0().getRegistro0000().setIndAtiv("1");
            sped.getBloco0().getRegistro0000().setUf(Empresa.EnderecoPrincipal.Uf);

            // REGISTRO 0001: ABERTURA DO BLOCO 0
            sped.getBloco0().getRegistro0001().setIndMov(0);

            // REGISTRO 0035: IDENTIFICAÇÃO DE SOCIEDADE EM CONTA DE PARTICIPAÇÃO – SCP
            //{ Não Implementado }

            // REGISTRO 0100: DADOS DO CONTABILISTA
            sped.getBloco0().getRegistro0100().setNome(Contador.Nome);
            sped.getBloco0().getRegistro0100().setCpf(Contador.Cpf);
            sped.getBloco0().getRegistro0100().setCpf(Contador.Cnpj);
            sped.getBloco0().getRegistro0100().setCrc(Contador.InscricaoCrc);
            sped.getBloco0().getRegistro0100().setCep(Contador.Cep);
            sped.getBloco0().getRegistro0100().setEndereco(Contador.Logradouro);
            sped.getBloco0().getRegistro0100().setNum(Contador.Numero);
            sped.getBloco0().getRegistro0100().setCompl(Contador.Complemento);
            sped.getBloco0().getRegistro0100().setBairro(Contador.Bairro);
            sped.getBloco0().getRegistro0100().setFone(Contador.Fone);
            sped.getBloco0().getRegistro0100().setFax(Contador.Fax);
            sped.getBloco0().getRegistro0100().setEmail(Contador.Email);
            sped.getBloco0().getRegistro0100().setCodMun(Contador.MunicipioIbge.Value);

            // REGISTRO  0110:  REGIMES  DE  APURAÇÃO  DA  CONTRIBUIÇÃO  SOCIAL  E  DE APROPRIAÇÃO DE CRÉDITO
            sped.getBloco0().getRegistro0110().setCodIncTrib("1");
            sped.getBloco0().getRegistro0110().setIndAproCred("1");
            sped.getBloco0().getRegistro0110().setCodTipoCont("1");

            // REGISTRO  0111:  TABELA  DE  RECEITA  BRUTA  MENSAL  PARA  FINS  DE  RATEIO  DE CRÉDITOS COMUNS
            // REGISTRO  0120:  IDENTIFICAÇÃO  DE  PERÍODOS  DISPENSADOS  DA  ESCRITURAÇÃO FISCAL DIGITAL DAS CONTRIBUIÇÕES – EFD-CONTRIBUIÇÕES
            // { Não Implementados }

            // REGISTRO 0140: TABELA DE CADASTRO DE ESTABELECIMENTO
            sped.getBloco0().getRegistro0140().setCodEst("MATRIZ");
            sped.getBloco0().getRegistro0140().setNome(Empresa.RazaoSocial);
            sped.getBloco0().getRegistro0140().setCnpj(Empresa.Cnpj);
            sped.getBloco0().getRegistro0140().setUf(Empresa.EnderecoPrincipal.Uf);
            sped.getBloco0().getRegistro0140().setIe(Empresa.InscricaoEstadual);
            sped.getBloco0().getRegistro0140().setCodMun(Empresa.CodigoIbgeCidade.Value);
            sped.getBloco0().getRegistro0140().setIm(Empresa.InscricaoMunicipal);
            sped.getBloco0().getRegistro0140().setSuframa(Empresa.Suframa);

            // REGISTRO 0145: REGIME DE APURAÇÃO DA CONTRIBUIÇÃO PREVIDENCIÁRIA SOBRE A RECEITA BRUTA
            // { Não Implementado }

            // REGISTRO 0150: TABELA DE CADASTRO DO PARTICIPANTE
            Registro0150 registro0150;

            foreach (ViewSpedNfeEmitenteDTO Emitente in ListaEmitente)
            {
                registro0150 = new Registro0150();

                registro0150.setCodPart("F" + Emitente.Id);
                registro0150.setNome(Emitente.RazaoSocial);
                registro0150.setCodPais("01058");
                if (Emitente.CpfCnpj.Length == 11)
                {
                    registro0150.setCpf(Emitente.CpfCnpj);
                }
                else if (Emitente.CpfCnpj.Length == 14)
                {
                    registro0150.setCnpj(Emitente.CpfCnpj);
                }
                registro0150.setIe(Emitente.InscricaoEstadual);
                registro0150.setCodMun(Emitente.CodigoMunicipio);
                registro0150.setSuframa(Emitente.Suframa);
                registro0150.setEndereco(Emitente.Logradouro);
                registro0150.setNum(Emitente.Numero);
                registro0150.setCompl(Emitente.Complemento);
                registro0150.setBairro(Emitente.Bairro);

                sped.getBloco0().getRegistro0140().getRegistro0150List().Add(registro0150);
            }

            foreach (ViewSpedNfeDestinatarioDTO Destinatario in ListaDestinatario)
            {
                registro0150 = new Registro0150();

                registro0150.setCodPart("F" + Destinatario.Id);
                registro0150.setNome(Destinatario.RazaoSocial);
                registro0150.setCodPais("01058");
                if (Destinatario.CpfCnpj.Length == 11)
                {
                    registro0150.setCpf(Destinatario.CpfCnpj);
                }
                else if (Destinatario.CpfCnpj.Length == 14)
                {
                    registro0150.setCnpj(Destinatario.CpfCnpj);
                }
                registro0150.setIe(Destinatario.InscricaoEstadual);
                registro0150.setCodMun(Destinatario.CodigoMunicipio);
                registro0150.setSuframa(Destinatario.Suframa);
                registro0150.setEndereco(Destinatario.Logradouro);
                registro0150.setNum(Destinatario.Numero);
                registro0150.setCompl(Destinatario.Complemento);
                registro0150.setBairro(Destinatario.Bairro);

                sped.getBloco0().getRegistro0140().getRegistro0150List().Add(registro0150);
            }


            //REGISTRO 0200: TABELA DE IDENTIFICAÇÃO DO ITEM (PRODUTO E SERVIÇOS)
            Registro0200             registro0200;
            ArrayList                ListaSiglaUnidade = new ArrayList();
            List <UnidadeProdutoDTO> ListaUnidade      = new List <UnidadeProdutoDTO>();

            foreach (ViewSpedNfeItemDTO Produto in ListaProduto)
            {
                registro0200 = new Registro0200();

                registro0200.setCodItem(Produto.Id.ToString());
                registro0200.setDescrItem(Produto.Nome);
                registro0200.setCodBarra(Produto.Gtin);
                //TEM QUE PREENCHER PARA INFORMAR NO 0205
                registro0200.setCodAntItem("");
                registro0200.setUnidInv(Produto.IdUnidadeProduto.ToString());
                registro0200.setTipoItem(Produto.TipoItemSped);
                registro0200.setCodNcm(Produto.Ncm);
                registro0200.setExIpi(Produto.ExTipi);
                registro0200.setCodGen(Produto.Ncm.Substring(0, 2));
                registro0200.setCodLst(Produto.CodigoLst);
                registro0200.setAliqIcms(Produto.AliquotaIcmsPaf);

                if (ListaSiglaUnidade.IndexOf(Produto.IdUnidadeProduto) == -1)
                {
                    ListaSiglaUnidade.Add(Convert.ToString(Produto.IdUnidadeProduto));
                    UnidadeProdutoDTO Unidade = new UnidadeProdutoDTO();
                    Unidade.Id    = Produto.IdUnidadeProduto;
                    Unidade.Sigla = Produto.Sigla;
                    ListaUnidade.Add(Unidade);
                }

                consultaSql = "from ProdutoAlteracaoItemDTO item where item.DataInicial BETWEEN " + Biblioteca.QuotedStr(DataInicial) + " and " + Biblioteca.QuotedStr(DataFinal);
                IList <ProdutoAlteracaoItemDTO> ListaProdutoAlterado = new NHibernateDAL <ProdutoAlteracaoItemDTO>(Session).SelectListaSql <ProdutoAlteracaoItemDTO>(consultaSql);

                // REGISTRO 0205: ALTERAÇÃO DO ITEM
                Registro0205 registro0205;
                foreach (ProdutoAlteracaoItemDTO ProdutoAlterado in ListaProdutoAlterado)
                {
                    registro0205 = new Registro0205();

                    registro0205.setDescrAntItem(ProdutoAlterado.Nome);
                    registro0205.setDtIni(ProdutoAlterado.DataInicial.Value);
                    registro0205.setDtFin(ProdutoAlterado.DataFinal.Value);
                    registro0205.setCodAntItem(ProdutoAlterado.Codigo);

                    registro0200.getRegistro0205List().Add(registro0205);
                }

                sped.getBloco0().getRegistro0140().getRegistro0200List().Add(registro0200);
            }


            // REGISTRO 0190: IDENTIFICAÇÃO DAS UNIDADES DE MEDIDA
            Registro0190 registro0190;

            foreach (UnidadeProdutoDTO Unidade in ListaUnidade)
            {
                registro0190 = new Registro0190();

                registro0190.setUnid(Unidade.Id.ToString());
                registro0190.setDescr(Unidade.Sigla);

                sped.getBloco0().getRegistro0140().getRegistro0190List().Add(registro0190);
            }


            // REGISTRO 0206: CÓDIGO DE PRODUTO CONFORME TABELA PUBLICADA PELA ANP (COMBUSTÍVEIS)
            // { Não Implementado }

            // REGISTRO 0208: CÓDIGO DE GRUPOS POR MARCA COMERCIAL– REFRI (BEBIDAS FRIAS).
            // { Não Implementado }


            // REGISTRO 0400: TABELA DE NATUREZA DA OPERAÇÃO/PRESTAÇÃO
            Registro0400 registro0400;

            foreach (TributOperacaoFiscalDTO OperacaoFiscal in ListaOperacaoFiscal)
            {
                registro0400 = new Registro0400();

                registro0400.setCodNat(OperacaoFiscal.Id.ToString());
                registro0400.setDescrNat(OperacaoFiscal.DescricaoNaNf);
            }

            // REGISTRO 0450: TABELA DE INFORMAÇÃO COMPLEMENTAR DO DOCUMENTO FISCAL
            //{ Não Implementado }

            // REGISTRO 0500: PLANO DE CONTAS CONTÁBEIS
            //{ Não Implementado }

            // REGISTRO 0600: CENTRO DE CUSTOS
            //{ Não Implementado }
        }
Пример #5
0
        private void CriaBloco0()
        {
            string[] strUNID = { "PC", "UN", "LT", "PC", "MT" };
            int      int0150;
            int      int0175;
            int      int0300;
            int      int0190;
            int      int0500;
            int      int0600;

            // Alimenta o componente com informações para gerar todos os registros do
            // Bloco 0.
            cbConcomitante.Enabled = false;
            btnB_0.Enabled         = false;
            btnB_C.Enabled         = true;

            // Definindo
            ACBrSPEDFiscal1.DT_INI = Convert.ToDateTime("01/11/2011");
            ACBrSPEDFiscal1.DT_FIN = Convert.ToDateTime("30/11/2011");

            if (cbConcomitante.Checked)
            {
                ACBrSPEDFiscal1.LinhasBuffer = Convert.ToInt32(edBufLinhas.Text);

                //ACBrSPEDFiscal1.IniciaGeracao;
                LoadToMemo();
            }

            var bloco0 = ACBrSPEDFiscal1.Bloco_0;

            // Dados da Empresa
            var registro0000 = bloco0.Registro0000;

            registro0000.COD_VER    = VersaoLeiaute.Versao103;
            registro0000.COD_FIN    = CodFinalidade.Original;
            registro0000.NOME       = "RAZÃO SOCIAL DA EMPRESA EMITENTE";
            registro0000.CNPJ       = "11111111111180";
            registro0000.CPF        = "";
            registro0000.UF         = "RS";
            registro0000.IE         = "1111111119";
            registro0000.COD_MUN    = 4314902;
            registro0000.IM         = "";
            registro0000.SUFRAMA    = "";
            registro0000.IND_PERFIL = Perfil.PerfilA;
            registro0000.IND_ATIV   = Atividade.Outros;

            var registro0001 = bloco0.Registro0001;

            registro0001.IND_MOV = IndicadorMovimento.ComDados;

            // FILHO - Dados complementares da Empresa
            var registro0005 = registro0001.Registro0005;

            registro0005.FANTASIA = "NOME FANTASSIA";
            registro0005.CEP      = "29900000";
            registro0005.ENDERECO = "ENDEREÇO DA EMPRESA";
            registro0005.NUM      = "S/N";
            registro0005.COMPL    = "";
            registro0005.BAIRRO   = "BAIRRO";
            registro0005.FONE     = "";
            registro0005.FAX      = "";
            registro0005.EMAIL    = "*****@*****.**";

            //registro0001.Registro0015.Add(new Registro0015() { IE_ST = "254504230", UF_ST = "SC" });

            // FILHO - Dados do contador.
            var registro0100 = registro0001.Registro0100;

            registro0100.NOME = "SO CONFIE NO CONTADOR I";
            registro0100.CPF  = "12345678909";

            // Deve ser uma informação valida
            registro0100.CRC      = "65924";
            registro0100.CNPJ     = "";
            registro0100.CEP      = "92420020";
            registro0100.ENDERECO = "R. NOME DA RUA";
            registro0100.NUM      = "450";
            registro0100.COMPL    = "";
            registro0100.BAIRRO   = "BAIRRO CONTADORES";
            registro0100.FONE     = "";
            registro0100.FAX      = "";
            registro0100.EMAIL    = "*****@*****.**";
            registro0100.COD_MUN  = 3200607;

            // Check(Reg0001.Registro0190.LocalizaRegistro(UNID), '(0-0190) UNIDADE MEDIDA: A unidade de medida "%s" foi duplicada na lista de registros 0190!', [UNID]);
            // FILHO
            for (int0150 = 1; int0150 <= 10; int0150++)
            {
                // 10 Clientes
                var registro0150 = new Registro0150();
                registro0150.COD_PART = (int0150).ToString();
                registro0150.NOME     = "CLIENTE DE TESTES " + (int0150).ToString();
                registro0150.COD_PAIS = "1058";
                registro0150.CNPJ     = "11111111111180";
                registro0150.CPF      = "12345678909";
                registro0150.IE       = "";
                registro0150.COD_MUN  = 43140070 + int0150;
                registro0150.SUFRAMA  = "";
                registro0150.ENDERECO = "ENDERECO CLIENTE" + (int0150).ToString();
                registro0150.NUM      = "";
                registro0150.COMPL    = "COMPLEMENTO" + (int0150).ToString();
                registro0150.BAIRRO   = "BAIRRO CLIENTE" + (int0150).ToString();

                // FILHO - 1 Alteração para cada cliente de 2 a 3
                if ((int0150 == 2) || (int0150 == 3))
                {
                    var registro0175 = new Registro0175();
                    registro0175.DT_ALT   = bloco0.DT_INI.AddDays(1);
                    registro0175.NR_CAMPO = "1";
                    registro0175.CONT_ANT = "CAMPO ANTERIOR " + '1';

                    registro0150.Registro0175.Add(registro0175);
                }

                registro0001.Registro0150.Add(registro0150);
            }

            // FILHO
            // 4 Unidades de medida
            // Const strUNID, esta declarada no inicio deste evento.
            for (int0190 = strUNID.GetLowerBound(0); int0190 <= strUNID.GetUpperBound(0); int0190++)
            {
                //@ Unsupported property or method(B): 'LocalizaRegistro'
                //if(!registro0001.Registro0190.LocalizaRegistro(strUNID[int0190])
                {
                    var registro0190 = new Registro0190();
                    registro0190.UNID  = strUNID[int0190];
                    registro0190.DESCR = "Descricao " + strUNID[int0190];

                    registro0001.Registro0190.Add(registro0190);
                }
            }

            var registro0200 = new Registro0200();

            registro0200.COD_ITEM   = "000001";
            registro0200.DESCR_ITEM = "PRODUTO 1";
            registro0200.COD_BARRA  = "";
            registro0200.UNID_INV   = "UN";
            registro0200.TIPO_ITEM  = TipoItem.MercadoriaRevenda;
            registro0200.COD_NCM    = "30049026";
            registro0200.COD_GEN    = "30";
            registro0200.ALIQ_ICMS  = 17.00M;
            registro0001.Registro0200.Add(registro0200);

            // REGISTRO 0206: CÓDIGO DE PRODUTO CONFORME TABELA PUBLICADA PELA ANP (COMBUSTÍVEIS)
            // With Registro0206New do
            // begin
            // COD_COMB := '910101001';
            // end;

            // FILHO
            for (int0300 = 1; int0300 <= 10; int0300++)
            {
                // 10 Bens Imobilizados

                var registro0300 = new Registro0300();
                registro0300.COD_IND_BEM = string.Format("{0:000000}", int0300);
                registro0300.IDENT_MERC  = 1;
                registro0300.DESCR_ITEM  = "DESCRIÇÃO DO ITEM";
                registro0300.COD_PRNC    = "";
                registro0300.COD_CTA     = "";
                registro0300.NR_PARC     = 10;

                // FILHO
                var registro0305 = new Registro0305();
                registro0305.COD_CCUS  = "1";
                registro0305.VIDA_UTIL = 60;
                registro0300.Registro0305.Add(registro0305);

                registro0001.Registro0300.Add(registro0300);
            }

            var registro0400 = new Registro0400();

            registro0400.COD_NAT   = "12020";
            registro0400.DESCR_NAT = "DESCRIÇÃO DA NATUREZA DE OPERAÇÃO 12020";
            registro0001.Registro0400.Add(registro0400);

            var registro0450 = new Registro0450();

            registro0450.COD_INF = "000001";
            registro0450.TXT     = "INFORMAÇÃO COMPLEMENTAR DO DOCUMENTO FISCAL";
            registro0001.Registro0450.Add(registro0450);

            var registro0460 = new Registro0460();

            registro0460.COD_OBS = "000001";
            registro0460.TXT     = "TEXTO DE OBSERVAÇÃO DO DOCUMENTO FISCAL ";
            registro0001.Registro0460.Add(registro0460);

            for (int0500 = 1; int0500 <= 10; int0500++)
            {
                var registro0500 = new Registro0500();
                registro0500.DT_ALT     = Convert.ToDateTime("30/11/2011");
                registro0500.COD_NAT_CC = "01";
                registro0500.IND_CTA    = "A";
                registro0500.NIVEL      = "1";
                registro0500.COD_CTA    = int0500.ToString();
                registro0500.NOME_CTA   = string.Format("CONTA CONTÁBIL {0}", int0500);

                registro0001.Registro0500.Add(registro0500);
            }

            for (int0600 = 1; int0600 <= 10; int0600++)
            {
                var registro0600 = new Registro0600();
                registro0600.DT_ALT   = Convert.ToDateTime("30/11/2011");
                registro0600.COD_CCUS = (int0600).ToString();
                registro0600.CCUS     = string.Format("CENTRO DE CUSTOS {0}", int0600);

                registro0001.Registro0600.Add(registro0600);
            }

            if (cbConcomitante.Checked)
            {
                //@ Unsupported property or method(C): 'WriteBloco_0'
                //ACBrSPEDFiscal1.WriteBloco_0;
                LoadToMemo();
            }
        }
Пример #6
0
        //  Bloco 0
        public static void GerarBloco0()
        {
            EmpresaVO  Empresa  = new EmpresaController().PegaEmpresa(FCaixa.Configuracao.IdEmpresa);
            ContadorVO Contador = new ContadorController().PegaContador();
            List <UnidadeProdutoVO> ListaUnidade = new UnidadeController().UnidadeSPED(DataInicial, DataFinal);
            List <ProdutoVO>        ListaProduto = new ProdutoController().ConsultaProdutoSPED(DataInicial, DataFinal, PerfilApresentacao);
            List <ClienteVO>        ListaCliente = new ClienteController().ConsultaClienteSPED(DataInicial, DataFinal);

            if ((ListaUnidade == null) || (ListaProduto == null))
            {
                MessageBox.Show("Não há venda no período selecionado" + "\r" + "e ou a data informada é inválida", "Informação do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            var Bloco0 = FDataModule.ACBrSpedFiscal.Bloco_0;

            //  Registro0000 - Dados da Empresa
            var Registro0000 = Bloco0.Registro0000;

            switch (VersaoLeiaute)
            {
            case 0:
                Registro0000.COD_VER = ACBrFramework.Sped.VersaoLeiaute.Versao100; break;

            case 1:
                Registro0000.COD_VER = ACBrFramework.Sped.VersaoLeiaute.Versao101; break;

            case 2:
                Registro0000.COD_VER = ACBrFramework.Sped.VersaoLeiaute.Versao102; break;

            case 3:
                Registro0000.COD_VER = ACBrFramework.Sped.VersaoLeiaute.Versao103; break;
            }

            switch (FinalidadeArquivo)
            {
            case 0:
                Registro0000.COD_FIN = ACBrFramework.Sped.CodFinalidade.Original; break;

            case 1:
                Registro0000.COD_FIN = ACBrFramework.Sped.CodFinalidade.Substituto; break;
            }

            switch (PerfilApresentacao)
            {
            case 0:
                Registro0000.IND_PERFIL = ACBrFramework.Sped.Perfil.PerfilA; break;

            case 1:
                Registro0000.IND_PERFIL = ACBrFramework.Sped.Perfil.PerfilB; break;

            case 2:
                Registro0000.IND_PERFIL = ACBrFramework.Sped.Perfil.PerfilC; break;
            }

            Registro0000.NOME    = Empresa.RazaoSocial;
            Registro0000.CNPJ    = Empresa.Cnpj;
            Registro0000.CPF     = "";
            Registro0000.UF      = Empresa.Uf;
            Registro0000.IE      = Empresa.InscricaoEstadual;
            Registro0000.COD_MUN = Empresa.CodigoIbgeCidade;
            Registro0000.IM      = Empresa.InscricaoMunicipal;
            Registro0000.SUFRAMA = Empresa.Suframa;

            //  0 - Industrial ou equiparado a industrial;
            //  1 - Outros.
            Registro0000.IND_ATIV = ACBrFramework.Sped.Atividade.Outros;


            //  Registro0001
            var Registro0001 = Bloco0.Registro0001;

            //  Indicador de movimento:
            Registro0001.IND_MOV = ACBrFramework.Sped.IndicadorMovimento.ComDados;

            //Registro0005 - FILHO - Dados complementares da Empresa
            var Registro0005 = Registro0001.Registro0005;

            Registro0005.FANTASIA = Empresa.NomeFantasia;
            Registro0005.CEP      = Empresa.Cep;
            Registro0005.ENDERECO = Empresa.Logradouro;
            Registro0005.NUM      = Empresa.Numero;
            Registro0005.COMPL    = Empresa.Complemento;
            Registro0005.BAIRRO   = Empresa.Bairro;
            Registro0005.FONE     = Empresa.Fone;
            Registro0005.FAX      = Empresa.Fax;
            Registro0005.EMAIL    = Empresa.Email;

            //Registro0100 -  FILHO - Dados do contador.
            var Registro0100 = Registro0001.Registro0100;

            Registro0100.NOME     = Contador.Nome;
            Registro0100.CPF      = Contador.CPF;
            Registro0100.CRC      = Contador.CRC;
            Registro0100.CNPJ     = Contador.CNPJ;
            Registro0100.CEP      = Contador.CEP;
            Registro0100.ENDERECO = Contador.Logradouro;
            Registro0100.NUM      = Convert.ToString(Contador.Numero);
            Registro0100.COMPL    = Contador.Complemento;
            Registro0100.BAIRRO   = Contador.Bairro;
            Registro0100.FONE     = Contador.Fone;
            Registro0100.FAX      = Contador.Fax;
            Registro0100.EMAIL    = Contador.Email;
            Registro0100.COD_MUN  = Contador.CodigoMunicipio;

            //  Lista de cliente da nfe
            //Registro0150
            if (ListaCliente != null)
            {
                for (int i = 0; i <= ListaCliente.Count - 1; i++)
                {
                    var Registro0150 = new Registro0150();
                    Registro0150.COD_PART = Convert.ToString(ListaCliente[i].Id);
                    Registro0150.NOME     = ListaCliente[i].Nome;
                    Registro0150.COD_PAIS = "01058";
                    if (ListaCliente[i].TipoPessoa == "F")
                    {
                        Registro0150.CPF = ListaCliente[i].CpfOuCnpj;
                    }
                    else
                    {
                        Registro0150.CNPJ = ListaCliente[i].CpfOuCnpj;
                    }
                    Registro0150.IE       = ListaCliente[i].InscricaoEstadual;
                    Registro0150.COD_MUN  = ListaCliente[i].CodigoIbgeCidade.Value;
                    Registro0150.SUFRAMA  = "";
                    Registro0150.ENDERECO = ListaCliente[i].Logradouro;
                    Registro0150.NUM      = ListaCliente[i].Numero;
                    Registro0150.COMPL    = ListaCliente[i].Complemento;
                    Registro0150.BAIRRO   = ListaCliente[i].Bairro;

                    Registro0001.Registro0150.Add(Registro0150);
                }
            }

            //  FILHO - Identificação das unidades de medida
            //Registro0190
            for (int i = 0; i <= ListaUnidade.Count - 1; i++)
            {
                var Registro0190 = new Registro0190();
                Registro0190.UNID  = Convert.ToString(ListaUnidade[i].Id);
                Registro0190.DESCR = ListaUnidade[i].Nome;
                Registro0001.Registro0190.Add(Registro0190);
            }

            //  FILHO - Tabela de Identificação do Item (Produtos e Serviços)
            //Registro0200
            for (int i = 0; i <= ListaProduto.Count - 1; i++)
            {
                var Registro0200 = new Registro0200();
                Registro0200.COD_ITEM     = Convert.ToString(ListaProduto[i].Id);
                Registro0200.DESCR_ITEM   = ListaProduto[i].Nome;
                Registro0200.COD_BARRA    = ListaProduto[i].GTIN;
                Registro0200.COD_ANT_ITEM = "";
                Registro0200.UNID_INV     = Convert.ToString(ListaProduto[i].IdUnidade);

                switch (Convert.ToInt32(ListaProduto[i].TipoItemSped))
                {
                case 0:
                    Registro0200.TIPO_ITEM = TipoItem.MercadoriaRevenda; break;

                case 1:
                    Registro0200.TIPO_ITEM = TipoItem.MateriaPrima; break;

                case 2:
                    Registro0200.TIPO_ITEM = TipoItem.Embalagem; break;

                case 3:
                    Registro0200.TIPO_ITEM = TipoItem.ProdutoProcesso; break;

                case 4:
                    Registro0200.TIPO_ITEM = TipoItem.ProdutoAcabado; break;

                case 5:
                    Registro0200.TIPO_ITEM = TipoItem.Subproduto; break;

                case 6:
                    Registro0200.TIPO_ITEM = TipoItem.ProdutoIntermediario; break;

                case 7:
                    Registro0200.TIPO_ITEM = TipoItem.MaterialConsumo; break;

                case 8:
                    Registro0200.TIPO_ITEM = TipoItem.AtivoImobilizado; break;

                case 9:
                    Registro0200.TIPO_ITEM = TipoItem.Servicos; break;

                case 10:
                    Registro0200.TIPO_ITEM = TipoItem.OutrosInsumos; break;

                case 99:
                    Registro0200.TIPO_ITEM = TipoItem.Outras; break;
                }

                Registro0200.COD_NCM   = ListaProduto[i].NCM;
                Registro0200.EX_IPI    = "";
                Registro0200.COD_GEN   = ListaProduto[i].NCM.Substring(2, 1);
                Registro0200.COD_LST   = "";
                Registro0200.ALIQ_ICMS = ListaProduto[i].AliquotaICMS;

                Registro0001.Registro0200.Add(Registro0200);
            }
        }