static void Main() { // Seleciona o certificado Global.Certificado = CertificadoHelper.SelecionaCertificado(); if (Global.Certificado != null) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var main = new Main(); Application.Run(main); } }
public void pesquisaEstoque(string unidNeg, DateTime dataEstoque, string path, string serie) { try { string[] lines = System.IO.File.ReadAllLines(path); int cont = 1; DadosPaf df = new DadosPaf(); IList <EstoqueMensagemDadosEstoqueProduto> listProd = new List <EstoqueMensagemDadosEstoqueProduto>(); foreach (string linha in lines) { if (cont == 1) { df.estabCli = linha.Trim(); } else if (cont == 2) { df.iestadualCli = linha.Trim(); } else if (cont == 3) { df.cnpjCli = linha.Trim(); } else if (cont == 4) { df.nomeCli = linha.Trim(); } else if (cont == 5) { df.numCredenCli = linha.Trim(); } else if (cont == 6) { df.nomComercial = linha.Trim(); } else if (cont == 7) { df.versaoPafEcf = linha.Trim(); } else if (cont == 8) { df.cnpjDesenv = linha.Trim(); } else if (cont == 9) { df.nomDesenv = linha.Trim(); } else if (cont == 10) { df.nFabEcf = linha.Trim(); } else if (cont == 11) { df.nTipoEcf = linha.Trim(); } else if (cont == 12) { df.marcaEcf = linha.Trim(); } else if (cont == 13) { df.modeloEcf = linha.Trim(); } else if (cont == 14) { df.versaoSofwEcf = linha.Trim(); } else if (cont == 15) { df.caixa = linha.Trim(); } else if (cont == 16) { df.dataRedz = Convert.ToDateTime(linha.Trim()); } else if (cont >= 17) { char[] delimiterChars = { ';' }; string[] words = linha.Trim().Split(delimiterChars); EstoqueMensagemDadosEstoqueProduto prod = new EstoqueMensagemDadosEstoqueProduto(); int conta = 1; foreach (string s in words) { if (conta == 1) { prod.Descricao = s.Trim(); } else if (conta == 2) { prod.CodigoProprio = s.Trim(); // prod.Tipo = (EstoqueMensagemDadosEstoqueProdutoCodigoTipo)Enum.Parse(typeof(EstoqueMensagemDadosEstoqueProdutoCodigoTipo), "Proprio"); } else if (conta == 3) { prod.ValorUnitario = s.Trim(); } else if (conta == 4) { prod.Quantidade = Convert.ToInt64(s.Trim()).ToString(); } else if (conta == 5) { prod.Unidade = s.Trim(); } else if (conta == 6) { prod.SituacaoTributaria = (EstoqueMensagemDadosEstoqueProdutoSituacaoTributaria)Enum.Parse(typeof(EstoqueMensagemDadosEstoqueProdutoSituacaoTributaria), s.Trim()); } else if (conta == 7) { if (!(s.Trim().Equals("") || s.Trim().Equals("0000"))) { prod.Aliquota = s.Trim(); } else { prod.Aliquota = ""; } } else if (conta == 8) { prod.IsArredondado = s.Trim().Equals("T"); } else if (conta == 10) { prod.SituacaoEstoque = (EstoqueMensagemDadosEstoqueProdutoSituacaoEstoque)Enum.Parse(typeof(EstoqueMensagemDadosEstoqueProdutoSituacaoEstoque), s.Trim()); } else if (conta == 11) { prod.CodigoNCMSH = s.Trim(); } else if (conta == 12) { prod.CodigoGTIN = s.Trim(); } else if (conta == 13) { prod.CodigoCEST = s.Trim(); } conta++; } prod.Ippt = (EstoqueMensagemDadosEstoqueProdutoIppt)Enum.Parse(typeof(EstoqueMensagemDadosEstoqueProdutoIppt), "Proprio"); listProd.Add(prod); } cont++; } Estoque est = new Estoque(); est.Versao = "1.0"; EstoqueMensagemEstabelecimento estE = new EstoqueMensagemEstabelecimento(); // estE.Cnpj = df.cnpjCli; estE.Ie = df.iestadualCli; // estE.NomeEmpresarial = df.nomeCli; EstoqueMensagemPafEcf estP = new EstoqueMensagemPafEcf(); //estP.CnpjDesenvolvedor = df.cnpjDesenv; //estP.NomeComercial = df.nomComercial; //estP.NomeEmpresarialDesenvolvedor = df.nomDesenv; //estP.Codigo= df.numCredenCli; //estP.Versao = df.versaoPafEcf; estP.NumeroCredenciamento = df.numCredenCli; EstoqueMensagem estM = new EstoqueMensagem(); estM.Estabelecimento = estE; estM.PafEcf = estP; EstoqueMensagemDadosEstoque estDad = new EstoqueMensagemDadosEstoque(); DateTime dataIni = dataEstoque.AddMonths(-1); //estDad.DataReferenciaInicial = dataIni.ToString("dd/MM/yyyy"); estDad.DataReferencia = dataEstoque; estDad.Produtos = listProd.ToArray(); estM.DadosEstoque = estDad; est.Mensagem = estM; XmlDocument xmlNFE = Serializar.Serializa <Estoque>(est); ConfigHelper config = new ConfigHelper(); string pathfile = config.local_salvar_arquivos + unidNeg + @"\" + "estoquePaf" + @"\" + df.nFabEcf + @"\" + df.dataRedz.ToString("ddMMyyyy"); if (!Directory.Exists(pathfile)) { Directory.CreateDirectory(pathfile); } pathfile = pathfile + @"\env_estoquePaf.xml"; CarregaConfiguracoesGP carg = new CarregaConfiguracoesGP(); DataTable datCert = carg.BuscaConfig(85475, unidNeg); if (datCert.Rows.Count > 0) { DataRow row = datCert.Rows[0]; string serialNumber = row["DADO_ALPHA"].ToString().Trim(); if (serialNumber.Contains("SERIALNUMBER=")) { serialNumber = serialNumber.Replace("SERIALNUMBER=", string.Empty); } var certificado = CertificadoHelper.Consultar(StoreName.My, StoreLocation.CurrentUser, serialNumber, CertificadoHelper.TipoConsultaCertificado.PorNroSerie); if (certificado == null) { MessageBox.Show("Certificado " + row["DADO_ALPHA"].ToString().Trim() + " não localizado na maquina, impossivel assinar.", "Erro Certificado", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { XmlElement xmlAssinatura = AssinarXML.AssinarXmlNfe(xmlNFE, "Estoque", certificado); XmlNode nodeEvento = xmlNFE.GetElementsByTagName("Estoque")[0]; if (nodeEvento != null) { nodeEvento.AppendChild(xmlAssinatura); } } } else { MessageBox.Show("Não foi possivel assinar o arquivo, deve informar o certificado na config 85475.", "Erro Certificado", MessageBoxButtons.OK, MessageBoxIcon.Error); } xmlNFE.Save(pathfile); GPPAFTRARQ arq = new GPPAFTRARQ(); DataTable dt = arq.retornaEstoque(unidNeg, "0", serie, df.dataRedz, df.nFabEcf); if (dt.Rows.Count <= 0) { arq.insereArquivo(unidNeg, "0", serie, "E", pathfile, df.dataRedz, df.nFabEcf); } estoquesPendentes(unidNeg, serie, false); MessageBox.Show("Arquivo gerado com sucesso mas não transmitido! \n" + pathfile, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); System.Diagnostics.Process.Start(pathfile); } catch (Exception ex) { LogHelper.GravarLog("Erro Estoque Paf " + ex); throw ex; } }
static void Main(string[] args) { try { int operacao = 0; if (args.Count() > 0) { // Creating a Global culture specific to our application. System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("pt-BR"); // Creating the DateTime Information specific to our application. System.Globalization.DateTimeFormatInfo dateTimeInfo = new System.Globalization.DateTimeFormatInfo(); // Defining various date and time formats. dateTimeInfo.DateSeparator = "/"; dateTimeInfo.LongDatePattern = "dd/MM/yyyy"; dateTimeInfo.ShortDatePattern = "dd/MMM/yy"; dateTimeInfo.LongTimePattern = "hh:mm:ss tt"; dateTimeInfo.ShortTimePattern = "hh:mm tt"; // Setting application wide date time format. cultureInfo.DateTimeFormat = dateTimeInfo; // Assigning our custom Culture to the application. Thread.CurrentThread.CurrentCulture = cultureInfo; operacao = Int32.Parse(args[0].ToString()); switch (operacao) { case 1: string path = args[1].ToString(); string serie = args[2].ToString(); string unidNeg = args[3].ToString(); GeraReducaoZ ger = new GeraReducaoZ(); ger.gerarArquivos(serie, unidNeg, path); break; case 2: string path2 = args[1].ToString(); string serie2 = args[2].ToString(); string unidNeg2 = args[3].ToString(); GeraReducaoZ ger2 = new GeraReducaoZ(); ger2.reducoesPendentes(serie2, unidNeg2, path2); break; case 3: string path3 = args[1].ToString(); DateTime dtGer = Convert.ToDateTime(args[2].ToString()); string unidNeg3 = args[3].ToString(); string serie3 = args[4].ToString(); EstoquePaf est = new EstoquePaf(); est.pesquisaEstoque(unidNeg3, dtGer, path3, serie3); break; case 4: string serie5 = args[1].ToString(); string unidNeg5 = args[2].ToString(); EstoquePaf ger5 = new EstoquePaf(); ger5.estoquesPendentes(serie5, unidNeg5, true); break; case 5: string serialNumber = args[1].ToString(); var certificado = CertificadoHelper.Consultar(StoreName.My, StoreLocation.LocalMachine, serialNumber, CertificadoHelper.TipoConsultaCertificado.PorNroSerie); if (certificado == null) { LogHelper.GravarLog("Certificado nao encontrado"); } else { LogHelper.GravarLog("Certificado encontrado"); } break; case 99: testaConexao(); break; default: LogHelper.GravarLog("Operacao nao programada..."); break; } } else { LogHelper.GravarLog("Nao foi passado nenhum argumento..."); } } catch (Exception ex) { LogHelper.GravarLog("ERRO na operacao:" + ex.Message); } }
public void gerarArquivos(string serie, string unidNeg, string caminho) { try { string[] lines = System.IO.File.ReadAllLines(caminho); int cont = 1; GPPAFTRARQ gpArq = new GPPAFTRARQ(); DadosPaf df = new DadosPaf(); foreach (string linha in lines) { if (cont == 1) { df.estabCli = linha.Trim(); } else if (cont == 2) { df.iestadualCli = linha.Trim(); } else if (cont == 3) { df.cnpjCli = linha.Trim(); } else if (cont == 4) { df.nomeCli = linha.Trim(); } else if (cont == 5) { df.numCredenCli = linha.Trim(); } else if (cont == 6) { df.nomComercial = linha.Trim(); } else if (cont == 7) { df.versaoPafEcf = linha.Trim(); } else if (cont == 8) { df.cnpjDesenv = linha.Trim(); } else if (cont == 9) { df.nomDesenv = linha.Trim(); } else if (cont == 10) { df.nFabEcf = linha.Trim(); } else if (cont == 11) { df.nTipoEcf = linha.Trim(); } else if (cont == 12) { df.marcaEcf = linha.Trim(); } else if (cont == 13) { df.modeloEcf = linha.Trim(); } else if (cont == 14) { df.versaoSofwEcf = linha.Trim(); } else if (cont == 15) { df.caixa = linha.Trim(); } else if (cont == 16) { df.dataRedz = Convert.ToDateTime(linha.Trim()); } cont++; } ReducaoZ redZ = new ReducaoZ(); redZ.Versao = "1.0"; ReducaoZMensagem redMensagem = new ReducaoZMensagem(); ReducaoZMensagemEstabelecimento redMen = new ReducaoZMensagemEstabelecimento(); redMen.Ie = df.iestadualCli; redMen.NomeEmpresarial = df.nomeCli; redMen.Cnpj = df.cnpjCli; ReducaoZMensagemPafEcf redPaf = new ReducaoZMensagemPafEcf(); redPaf.CnpjDesenvolvedor = df.cnpjDesenv; redPaf.NomeComercial = df.nomComercial; redPaf.NomeEmpresarialDesenvolvedor = df.nomDesenv; redPaf.NumeroCredenciamento = df.numCredenCli; redPaf.Versao = df.versaoPafEcf; ReducaoZMensagemEcf redEcf = new ReducaoZMensagemEcf(); redEcf.Marca = df.marcaEcf; redEcf.Modelo = df.modeloEcf; redEcf.NumeroFabricacao = df.nFabEcf; redEcf.Tipo = df.nTipoEcf; redEcf.Versao = df.versaoSofwEcf; ReducaoZMensagemEcfDadosReducaoZ redDados = buscaMensagemEcf(df.dataRedz, serie, unidNeg); DataTable dt = gpArq.retornaReducao(unidNeg, redDados.COO, serie); bool arquivoGerado = false; if (dt.Rows.Count > 0) { DataRow linha = dt.Rows[0]; if (System.IO.File.Exists(linha["PATH_FILE"].ToString())) { arquivoGerado = true; string situacao = linha["SITUACAO"].ToString().Equals("T") ? "Transmitido" : "Pendente de Transmissão"; MessageBox.Show("Arquivo de redução Z já foi gerado para esta data. \n" + "Situação: " + situacao); } else { arquivoGerado = false; } } if (dt.Rows.Count <= 0 || !arquivoGerado) { IList <ReducaoZMensagemEcfDadosReducaoZTotalizadorParcial> listTotali = retTotalizadores(serie, unidNeg, df.dataRedz, redDados.CRZ, redDados.COO); redDados.TotalizadoresParciais = listTotali.ToArray(); redEcf.DadosReducaoZ = redDados; redMensagem.Ecf = redEcf; redMensagem.Estabelecimento = redMen; redMensagem.PafEcf = redPaf; redZ.Mensagem = redMensagem; XmlDocument xmlNFE = Serializar.Serializa <ReducaoZ>(redZ); ConfigHelper config = new ConfigHelper(); string pathfile = config.local_salvar_arquivos + unidNeg + @"\" + "reducoesZ" + @"\" + df.nFabEcf + @"\" + df.dataRedz.ToString("ddMMyyyy"); if (!Directory.Exists(pathfile)) { Directory.CreateDirectory(pathfile); } pathfile = pathfile + @"\reducaoZ.xml"; CarregaConfiguracoesGP carg = new CarregaConfiguracoesGP(); DataTable datCert = carg.BuscaConfig(85475, unidNeg); if (datCert.Rows.Count > 0) { DataRow row = datCert.Rows[0]; string serialNumber = row["DADO_ALPHA"].ToString().Trim(); if (serialNumber.Contains("SERIALNUMBER=")) { serialNumber = serialNumber.Replace("SERIALNUMBER=", string.Empty); } var certificado = CertificadoHelper.Consultar(StoreName.My, StoreLocation.CurrentUser, serialNumber, CertificadoHelper.TipoConsultaCertificado.PorNroSerie); if (certificado == null) { MessageBox.Show("Certificado " + row["DADO_ALPHA"].ToString().Trim() + " não localizado na maquina, impossivel assinar.", "Erro Certificado", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { XmlElement xmlAssinatura = AssinarXML.AssinarXmlNfe(xmlNFE, "ReducaoZ", certificado); XmlNode nodeEvento = xmlNFE.GetElementsByTagName("ReducaoZ")[0]; if (nodeEvento != null) { nodeEvento.AppendChild(xmlAssinatura); } } } else { MessageBox.Show("Não foi possivel assinar o arquivo, deve informar o certificado na config 85475.", "Erro Certificado", MessageBoxButtons.OK, MessageBoxIcon.Error); } xmlNFE.Save(pathfile); if (dt.Rows.Count <= 0) { gpArq.insereArquivo(unidNeg, redDados.COO, serie, "R", pathfile, df.dataRedz, df.nFabEcf); } int qtdePend = gpArq.retornaQtdeRedPendente(unidNeg, serie, "R"); string mensag = @" “HÁ (0) ARQUIVOS COM INFORMAÇÕES DA REDUÇÃO Z DO PAF-ECF PENDENTES DE TRANSMISSÃO AO FISCO. O CONTRIBUINTE PODE TRANSMITIR OS ARQUIVOS PELO MENU FISCAL POR MEIO DO COMANDO ‘Envio ao FISCO-REDUÇÃO Z’."; if (qtdePend > 0) { mensag = @"HÁ " + qtdePend + " ARQUIVOS COM INFORMAÇÕES DA REDUÇÃO Z DO PAF-ECF PENDENTES DE TRANSMISSÃO AO FISCO. " + "O CONTRIBUINTE PODE TRANSMITIR OS ARQUIVOS PELO MENU FISCAL POR MEIO DO COMANDO ‘Envio ao FISCO-REDUÇÃO Z’."; if (qtdePend >= 5 && qtdePend <= 8) { mensag = mensag + "\n" + " VERIFIQUE COM O FORNECEDOR DO PROGRAMA A SOLUÇÃO DA PENDÊNCIA."; } else if (qtdePend == 9) { mensag = mensag + "\n" + @"A PARTIR DA 10ª TRANSMISSÃO PENDENTE, O SEU PROGRAMA SERÁ BLOQUEADO E SOMENTE SERÁ LIBERADO APÓS TODAS AS TRANSMISSÕES SEREM REALIZADAS. VERIFIQUE URGENTEMENTE COM O FORNECEDOR DO PROGRAMA A SOLUÇÃO DA PENDÊNCIA"; } MessageBox.Show("Arquivo gerado com sucesso mas não transmitido! \n" + pathfile, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show(mensag, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show("Arquivo gerado com sucesso mas não transmitido! \n" + pathfile, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } System.Diagnostics.Process.Start(pathfile); } } catch (Exception ex) { MessageBox.Show("Arquivo não pode ser gerado, favor verifique o log...", "Erro Gerar ReduçãoZ", MessageBoxButtons.OK, MessageBoxIcon.Error); LogHelper.GravarLog("ERRO geraçao do arquivo RedZ= \n" + ex.Message); LogHelper.GravarLog("ERRO geraçao do arquivo RedZ= \n" + ex); } }