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); } }
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); } }
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); }
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); }