Exemplo n.º 1
0
 public static void GerarArquivo(string Cd_empresa,
                                 DateTime Dt_ini,
                                 DateTime Dt_fin,
                                 Finalidades Finalidade,
                                 string Path,
                                 bool St_tipo10,
                                 bool St_tipo11,
                                 bool St_tipo50,
                                 bool St_tipo51,
                                 bool St_tipo53,
                                 bool St_tipo54,
                                 bool St_tipo60M,
                                 bool St_tipo60A,
                                 bool St_tipo60D,
                                 bool St_tipo60I,
                                 bool St_tipo60R,
                                 bool St_tipo70,
                                 bool St_tipo71,
                                 bool St_tipo74,
                                 bool St_tipo75,
                                 bool St_tipo90,
                                 Utils.ThreadEspera tEspera)
 {
     try
     {
         if (Path.Trim().Substring(Path.Trim().Length - 1, 1) != System.IO.Path.DirectorySeparatorChar.ToString())
         {
             Path = Path.Trim() + System.IO.Path.DirectorySeparatorChar.ToString();
         }
         using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Path.Trim() + Cd_empresa.Trim() + Dt_ini.Month.ToString().PadLeft(2, '0') + Dt_ini.Year.ToString() + ".txt", false, System.Text.Encoding.Default))
         {
             sw.Write(GerarArquivo(Cd_empresa,
                                   Dt_ini,
                                   Dt_fin,
                                   Finalidade,
                                   St_tipo10,
                                   St_tipo11,
                                   St_tipo50,
                                   St_tipo51,
                                   St_tipo53,
                                   St_tipo54,
                                   St_tipo60M,
                                   St_tipo60A,
                                   St_tipo60D,
                                   St_tipo60I,
                                   St_tipo60R,
                                   St_tipo70,
                                   St_tipo71,
                                   St_tipo74,
                                   St_tipo75,
                                   St_tipo90,
                                   tEspera));
             sw.Close();
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Erro: " + ex.Message);
     }
 }
Exemplo n.º 2
0
        private void GerarArquivo()
        {
            //validar empresa
            if (CD_Empresa.Text.Trim().Equals(string.Empty))
            {
                MessageBox.Show("Obrigatório informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                CD_Empresa.Focus();
                return;
            }
            //validar path
            if (path_arquivo.Text.Trim().Equals(string.Empty))
            {
                MessageBox.Show("Obrigatório informar path para salvar o arquivo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                path_arquivo.Focus();
                return;
            }
            //Verificar se existe NFe sem enviar para receita no periodo
            if (new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento().BuscarEscalar(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + CD_Empresa.Text.Trim() + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "case when a.tp_movimento = 'E' then convert(datetime, floor(convert(decimal(30,10), a.dt_saient))) else convert(datetime, floor(convert(decimal(30,10), a.dt_emissao))) end",
                    vOperador = "between",
                    vVL_Busca = "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("yyyyMMdd") + "' and '" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()))).ToString("yyyyMMdd") + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.tp_nota",
                    vOperador = "=",
                    vVL_Busca = "'P'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "isnull(a.st_transmitido_nfe, 'N')",
                    vOperador = "<>",
                    vVL_Busca = "'S'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_modelo",
                    vOperador = "=",
                    vVL_Busca = "'55'"
                }
            }, "1") != null)
            {
                MessageBox.Show("Existe NFe não enviada para a receita no periodo.\r\n" +
                                "Obrigatorio excluir as mesmas e inutilizar os numeros para depois gerar o sintegra.",
                                "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento().BuscarEscalar(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + CD_Empresa.Text.Trim() + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "case when a.tp_movimento = 'E' then convert(datetime, floor(convert(decimal(30,10), a.dt_saient))) else convert(datetime, floor(convert(decimal(30,10), a.dt_emissao))) end",
                    vOperador = "between",
                    vVL_Busca = "'" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1).ToString("yyyyMMdd") + "' and '" + new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()))).ToString("yyyyMMdd") + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.tp_nota",
                    vOperador = "=",
                    vVL_Busca = "'P'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "isnull(a.st_transmitido_nfe, 'N')",
                    vOperador = "=",
                    vVL_Busca = "'S'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_modelo",
                    vOperador = "=",
                    vVL_Busca = "'55'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_eventoNFe x " +
                                "inner join tb_fat_evento y " +
                                "on x.cd_evento = y.cd_evento " +
                                "where x.cd_empresa = a.cd_empresa " +
                                "and x.nr_lanctofiscal = a.nr_lanctofiscal " +
                                "and y.tp_evento = 'CA' " +
                                "and isnulL(x.st_registro, 'A') <> 'T')"
                }
            }, "1") != null)
            {
                MessageBox.Show("Existe NFe com evento de cancelamento não transmitido para a receita.\r\n" +
                                "Obrigatorio enviar o evento para a receita ou excluir o mesmo para depois gerar o sintegra.",
                                "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            try
            {
                Finalidades finalidade = Finalidades.NORMAL;
                if (cbFinalidade.Text.Trim().ToUpper().Equals("RETIFICAÇÃO TOTAL"))
                {
                    finalidade = Finalidades.RETIFICACAO_TOTAL;
                }
                else if (cbFinalidade.Text.Trim().ToUpper().Equals("RETIFICAÇÃO ADITIVA"))
                {
                    finalidade = Finalidades.RETIFICACAO_ADITIVA;
                }
                else if (cbFinalidade.Text.Trim().ToUpper().Equals("RETIFICAÇÃO CORRETIVA"))
                {
                    finalidade = Finalidades.RETIFICACAO_CORRETIVA;
                }
                else if (cbFinalidade.Text.Trim().ToUpper().Equals("DESFAZIMENTO"))
                {
                    finalidade = Finalidades.DESFAZIMENTO;
                }

                Utils.ThreadEspera tEspera = new Utils.ThreadEspera("Inicio processo gerar sintegra.");
                try
                {
                    CamadaNegocio.Fiscal.Sintegra.TCN_Sintegra.GerarArquivo(CD_Empresa.Text,
                                                                            new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), 1),
                                                                            new DateTime(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()), DateTime.DaysInMonth(int.Parse(cbAno.Text), int.Parse(cbMes.SelectedValue.ToString()))),
                                                                            finalidade,
                                                                            path_arquivo.Text,
                                                                            cbTipo10.Checked,
                                                                            cbTipo11.Checked,
                                                                            cbTipo50.Checked,
                                                                            cbTipo51.Checked,
                                                                            cbTipo53.Checked,
                                                                            cbTipo54.Checked,
                                                                            cbTipo60M.Checked,
                                                                            cbTipo60A.Checked,
                                                                            cbTipo60D.Checked,
                                                                            cbTipo60I.Checked,
                                                                            cbTipo60R.Checked,
                                                                            cbTipo70.Checked,
                                                                            cbTipo71.Checked,
                                                                            cbTipo74.Checked,
                                                                            cbTipo75.Checked,
                                                                            cbTipo90.Checked,
                                                                            tEspera);
                }
                finally
                {
                    tEspera.Fechar();
                    tEspera = null;
                }
                MessageBox.Show("Arquivo gerado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro gerar arquivo: " + ex.Message);
            }
        }
Exemplo n.º 3
0
        private static string GerarArquivo(string Cd_empresa,
                                           DateTime Dt_ini,
                                           DateTime Dt_fin,
                                           Finalidades Finalidade,
                                           bool St_tipo10,
                                           bool St_tipo11,
                                           bool St_tipo50,
                                           bool St_tipo51,
                                           bool St_tipo53,
                                           bool St_tipo54,
                                           bool St_tipo60M,
                                           bool St_tipo60A,
                                           bool St_tipo60D,
                                           bool St_tipo60I,
                                           bool St_tipo60R,
                                           bool St_tipo70,
                                           bool St_tipo71,
                                           bool St_tipo74,
                                           bool St_tipo75,
                                           bool St_tipo90,
                                           Utils.ThreadEspera tEspera)
        {
            Count50  = 0;
            Count51  = 0;
            Count53  = 0;
            Count54  = 0;
            Count60M = 0;
            Count60A = 0;
            Count60D = 0;
            Count60I = 0;
            Count60R = 0;
            Count70  = 0;
            Count71  = 0;
            Count74  = 0;
            Count75  = 0;
            string retorno = string.Empty;

            //Gerar arquivo 10_11
            if (St_tipo10 && St_tipo11)
            {
                tEspera.Msg("Gerando registro 10 e 11...");
                retorno += TCN_Tipo10_11.CriarRegistroTipo10_11(Cd_empresa, Dt_ini, Dt_fin, Finalidade);
            }

            //Gerar registro 50
            if (St_tipo50)
            {
                tEspera.Msg("Gerando registro 50...");
                string ret_50 = string.Empty;
                Count50  = TCN_Tipo50.CriarRegistroTipo50(Cd_empresa, Dt_ini, Dt_fin, ref ret_50);
                retorno += ret_50;
            }
            //Gerar registro 51
            if (St_tipo51)
            {
                tEspera.Msg("Gerando registro 51...");
                string ret_51 = string.Empty;
                Count51  = TCN_Tipo51.CriarRegistroTipo51(Cd_empresa, Dt_ini, Dt_fin, ref ret_51);
                retorno += ret_51;
            }
            //Gerar registro 53
            if (St_tipo53)
            {
                tEspera.Msg("Gerando registro 53...");
                string ret_53 = string.Empty;
                Count53  = TCN_Tipo53.CriarRegistroTipo53(Cd_empresa, Dt_ini, Dt_fin, ref ret_53);
                retorno += ret_53;
            }
            //Gerar registro 54
            if (St_tipo54)
            {
                tEspera.Msg("Gerando registro 54...");
                string ret_54 = string.Empty;
                Count54  = TCN_Tipo54.CriarRegistroTipo54(Cd_empresa, Dt_ini, Dt_fin, ref ret_54);
                retorno += ret_54;
            }
            //Gerar registro 60M
            if (St_tipo60M)
            {
                tEspera.Msg("Gerando registro 60(M,A,D,I)...");
                string ret_60M = string.Empty;
                Count60M = TCN_Tipo60M.CriarRegistroTipo60M(Cd_empresa, Dt_ini, Dt_fin, St_tipo60D, St_tipo60I, ref ret_60M);
                retorno += ret_60M;
            }
            //Gerar registro 60R
            if (St_tipo60R)
            {
                tEspera.Msg("Gerando registro 60R...");
                string ret_60R = string.Empty;
                Count60R = TCN_Tipo60R.CriarRegistroTipo60R(Cd_empresa, Dt_ini, Dt_fin, ref ret_60R);
                retorno += ret_60R;
            }
            //Gerar registro 70
            if (St_tipo70)
            {
                tEspera.Msg("Gerando registro 70...");
                string ret_70 = string.Empty;
                Count70  = TCN_Tipo70.CriarRegistroTipo70(Cd_empresa, Dt_ini, Dt_fin, ref ret_70);
                retorno += ret_70;
            }
            //Gerar registro 71
            if (St_tipo71)
            {
                tEspera.Msg("Gerando registro 71...");
                string ret_71 = string.Empty;
                Count71  = TCN_Tipo71.CriarRegistroTipo71(Cd_empresa, Dt_ini, Dt_fin, ref ret_71);
                retorno += ret_71;
            }
            //Gerar registro 74
            if (St_tipo74)
            {
                tEspera.Msg("Gerando registro 74...");
                string ret_74 = string.Empty;
                Count74  = TCN_Tipo74.CriarRegistroTipo74(Cd_empresa, Dt_fin, ref ret_74);
                retorno += ret_74;
            }
            //Gerar registro 75
            if (St_tipo75)
            {
                tEspera.Msg("Gerando registro 75...");
                string   ret_75        = string.Empty;
                DateTime?dt_inventario = null;
                if (St_tipo74)
                {
                    dt_inventario = Dt_fin;
                }
                Count75  = TCN_Tipo75.CriarRegistroTipo75(Cd_empresa, Dt_ini, Dt_fin, dt_inventario, ref ret_75);
                retorno += ret_75;
            }
            //Gerar registro 90
            if (St_tipo90)
            {
                tEspera.Msg("Gerando registro 90...");
                retorno += TCN_Tipo90.MontarRegistro90(Cd_empresa,
                                                       Count50,
                                                       Count51,
                                                       Count53,
                                                       Count54,
                                                       Count60M,
                                                       Count60A,
                                                       Count60D,
                                                       Count60I,
                                                       Count60R,
                                                       Count70,
                                                       Count71,
                                                       Count74,
                                                       Count75);
            }
            return(retorno);
        }
Exemplo n.º 4
0
        public static Linha CriarRegistroTipo10_11(string Cd_empresa,
                                                   DateTime Dt_ini,
                                                   DateTime Dt_fin,
                                                   Finalidades Finalidade)
        {
            Tipo10_11 tp_registro = new TCD_Tipo10_11().Select(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + Cd_empresa.Trim() + "'"
                }
            }, 0, string.Empty);

            if (tp_registro == null)
            {
                throw new Exception("Não existe dados da empresa " + Cd_empresa.Trim() + " para montar registro 10 e 11");
            }
            tp_registro.Data_final   = Dt_fin;
            tp_registro.Data_inicial = Dt_ini;
            tp_registro.Finalidade   = Finalidade;
            #region "Registro 10"
            //Tipo do Registro
            Linha ln = "10";
            //CNPJ do estabelecimento informante
            ln += tp_registro.Cnpj.Trim().SoNumero().FormatStringEsquerda(14, '0');
            //Inscricao estadual do estabelecimento informante
            ln += tp_registro.Insc_estadual.Trim().FormatStringDireita(14, ' ');
            //Razao social do contribuinte
            ln += tp_registro.Nome_contribuinte.Trim().FormatStringDireita(35, ' ');
            //Municipio do contribuinte
            ln += tp_registro.Municipio_contribuinte.Trim().FormatStringDireita(30, ' ');
            //Unidade da federacao do contribuinte
            ln += tp_registro.Uf.Trim().FormatStringDireita(2, ' ');
            //Telefone do contribuinte
            ln += tp_registro.Fone.SoNumero().FormatStringEsquerda(10, '0');
            //Data inicial do periodo referente as informacoes prestadas
            ln += tp_registro.Data_inicial.Value.ToString("yyyyMMdd");
            //Data final do periodo referente as informacoes prestadas
            ln += tp_registro.Data_final.Value.ToString("yyyyMMdd");
            //Codigo do convenio utilizado no arquivo magnetico
            ln += tp_registro.Codigo_convenio == IdentificacaoEstruturas.ICMS_CONVENIO_5795_30_02 ? "1" :
                  tp_registro.Codigo_convenio == IdentificacaoEstruturas.ICMS_CONVENIO_5795_142_02 ? "2" :
                  tp_registro.Codigo_convenio == IdentificacaoEstruturas.ICMS_CONVENIO_5795_76_03 ? "3" : string.Empty;
            //Codigo de identificacao da natureza das operacoes informadas
            ln += tp_registro.Codigo_identificacao == IdentificacaoNaturezaOperacoes.COM_SUBSTITUICAO_TRIBUTARIA ? "1" :
                  tp_registro.Codigo_identificacao == IdentificacaoNaturezaOperacoes.SEM_SUBSTITUICAO_TRIBUTARIA ? "2" :
                  tp_registro.Codigo_identificacao == IdentificacaoNaturezaOperacoes.TOTALIDADE_OPERACOES ? "3" : string.Empty;
            //Codigo finalidade do arquivo
            ln += tp_registro.Finalidade == Finalidades.NORMAL ? "1" :
                  tp_registro.Finalidade == Finalidades.RETIFICACAO_TOTAL ? "2" :
                  tp_registro.Finalidade == Finalidades.RETIFICACAO_ADITIVA ? "3" :
                  tp_registro.Finalidade == Finalidades.RETIFICACAO_CORRETIVA ? "4" :
                  tp_registro.Finalidade == Finalidades.DESFAZIMENTO ? "5" : string.Empty;
            ln += "\r\n";
            #endregion

            #region "Registro 11"
            //Tipo do Registro
            ln += "11";
            //Logradouro da Empresa
            ln += tp_registro.Logradouro.Trim().FormatStringDireita(34, ' ');
            //Numero endereco da empresa
            ln += tp_registro.Numero.Trim().SoNumero().FormatStringEsquerda(5, '0');
            //Complemento
            ln += tp_registro.Complemento.Trim().FormatStringDireita(22, ' ');
            //Bairro
            ln += tp_registro.Bairro.Trim().FormatStringDireita(15, ' ');
            //CEP
            ln += tp_registro.Cep.Trim().SoNumero().FormatStringEsquerda(8, '0');
            //Nome Contato
            ln += tp_registro.Contato.Trim().FormatStringDireita(28, ' ');
            //Telefone
            ln += tp_registro.Fone.Trim().SoNumero().FormatStringEsquerda(12, '0');
            ln += "\r\n";
            #endregion

            return(ln);
        }