public void Gerar_Dados_NFe(IList <int> ilNotas_Fiscais) { CompSoft.Tools.frmWait f = new CompSoft.Tools.frmWait("Aguarde, carregado dados para exportação."); //-- Adicionar todos as NF selecionados em clausula IN do SQL sNotasFiscais = this.Criar_IN_NF(ilNotas_Fiscais); //-- Encontra as empresas que estão na NF. this.Empresas_NF(); //-- Buscar todas as NF´s this.Gera_Dados_Capa_NFPaulista(); //-- Buscar todos os Itens das NF´s this.Gera_Dados_Itens_NFPaulista(); f.Close(); f.Dispose(); //-- Cria NF-Paulista if (nfp.Criar_NFPaulista()) { MsgBox.Show("Nota Fiscal Paulista gerada e enviada com sucesso." , "Envio com sucesso" , System.Windows.Forms.MessageBoxButtons.OK , System.Windows.Forms.MessageBoxIcon.Information); } else { MsgBox.Show("Erro ao gerar ou enviar Nota Fiscal Paulista, consulte o log de envio para verificar os possiveis problemas." , "Atenção" , System.Windows.Forms.MessageBoxButtons.OK , System.Windows.Forms.MessageBoxIcon.Error); } }
/// <summary> /// Envia nota fiscal atravéz do WebService /// </summary> /// <param name="ilNotas_Fiscais">IList<Dados_Arquivos_NFe> com todas as notas para exportação.</param> /// <param name="sFolder">string com a Path completa para envio da NF-e.</param> public void Enviar_NFe(IList <CompSoft.NFe.Dados_Arquivo_NFe> ilNotas_Fiscais, string sFolder) { CompSoft.Tools.frmWait f = new CompSoft.Tools.frmWait("Aguarde, buscando informações no banco de dados."); f.Show(); //-- Busca dados para geração da NF-e ERP.NFe.GerarDadosNFe dados_NFe = new ERP.NFe.GerarDadosNFe(); dados_NFe.Gerar_Dados_NFe(ilNotas_Fiscais); f.Mensagem = "Aguarde, gerando arquivos XML da NF-e."; //-- Gera NF-e em uma pasta especifica para envio ao cliente. ERP.NFe.XML_NFe nfe = new ERP.NFe.XML_NFe(sFolder, dados_NFe.DataSet_NFe, ilNotas_Fiscais); nfe.Gerar_XML_NFe(); f.Progresso = true; f.Maximo_Progresso = ilNotas_Fiscais.Count; f.Mensagem = "Aguarde, o sistema está assinando, transfêrindo e imprimindo o DANFE das notas fiscais autorizadas."; //-- Instancia classe de tratamento do WebService NF-e //-- Verifica se o WebService está ativo. NFeWebService wb_Nfe = new NFeWebService(); if (wb_Nfe.Status_WebService(ilNotas_Fiscais[0])) { //-- Assina o XML. foreach (Dados_Arquivo_NFe daNFe in ilNotas_Fiscais) { //-- Assina NF-e CompSoft.NFe.AssinaXML assinar = new CompSoft.NFe.AssinaXML(); assinar.AssinarArquivoXML(daNFe.Arquivo_XML, "infNFe", this.Retorna_SerialNumber(daNFe.Empresa)); //-- Envia o Lote da NF-e. this.SalvaXML_DB(daNFe, false); XmlDocument doc = wb_Nfe.Enviar_LoteNFe(daNFe); int iAguardar = this.Trata_Arquivo_Retorno_NFe(doc, daNFe); //-- Faz o tratamento dos dados e envia para o banco de dados. //-- Aguarda 3 vezes o tempo necessário para garentir a recepção do retorno dos dados. System.Threading.Thread.Sleep(5000); //-- Captura o resultado de processamento. this.Resultado_Processamento_NFe(daNFe); //-- avança um na barra de progresso. f.Atual_Progresso++; } } else { MsgBox.Show("O WebService está fora do ar, tente novamente mais tarde." , "Atenção" , System.Windows.Forms.MessageBoxButtons.OK , System.Windows.Forms.MessageBoxIcon.Error); } f.Close(); f.Dispose(); }
private void f0047_FormClosing(object sender, FormClosingEventArgs e) { CompSoft.Tools.frmWait f = new CompSoft.Tools.frmWait("Aguarde, atualizando ambiente."); Funcoes func; func.AlimentaPropriedades_Sist(); f.Close(); f.Dispose(); }
public void Cancelar_NFe(IList <Dados_Arquivo_NFe> ilNotas) { CompSoft.Tools.frmWait f = new CompSoft.Tools.frmWait("Aguarde, cancelando NF-e no SEFAZ.", true, ilNotas.Count); foreach (Dados_Arquivo_NFe daNFe in ilNotas) { //-- Busca informações no WebService CompSoft.NFe.TrataWebService.NFeWebService wb_NFe = new CompSoft.NFe.TrataWebService.NFeWebService(); XmlDocument doc = wb_NFe.Cancelar_NFe(daNFe); StringBuilder sb = new StringBuilder(300); //-- Verifica se a mensagem é de confirmação do cancelamento da NF-e if (Convert.ToInt32(doc.GetElementsByTagName("cStat")[0].InnerText) == 101) { sb.Append("update notas_fiscais_lotes set "); sb.AppendFormat(" codigo_mensagem_retorno_nfe = {0}", doc.GetElementsByTagName("cStat")[0].InnerText); sb.AppendFormat(" , protocolo_cancelamento_nfe = '{0}'", doc.GetElementsByTagName("nProt")[0].InnerText); sb.AppendFormat(" , data_cancelamento_Nfe = '{0}'", doc.GetElementsByTagName("dhRecbto")[0].InnerText.Replace("T", " ").Replace("-", "").Substring(0, 17)); sb.AppendFormat(" where nota_fiscal_lote = {0}", daNFe.Cod_Nota_Fiscal_Lote); SQL.ExecuteNonQuery(sb.ToString()); sb.Clear(); sb.AppendFormat("update notas_fiscais set cancelada = 1 where nota_fiscal = {0}", daNFe.Nota_Fiscal); SQL.ExecuteNonQuery(sb.ToString()); ERP.NFe.Enviar_XML_Email envMail_Nfe; envMail_Nfe.Cancelar_NF(daNFe, doc.GetElementsByTagName("nProt")[0].InnerText); } else { int iStatusExiste = Convert.ToInt32(SQL.ExecuteScalar(string.Format("SELECT COUNT(*) FROM MENSAGENS_RETORNO_NFE WHERE CODIGO_MENSAGEM_RETORNO = {0}", doc.GetElementsByTagName("cStat")[1].InnerText))); if (iStatusExiste == 0) { string sQuery = string.Format(@"insert MENSAGENS_RETORNO_NFE values({0}, '{1}')" , doc.GetElementsByTagName("cStat")[1].InnerText , doc.GetElementsByTagName("xMotivo")[1].InnerText.Replace("'", " ")); SQL.ExecuteNonQuery(sQuery); } sb.Append("update notas_fiscais_lotes set "); sb.AppendFormat(" codigo_mensagem_retorno_nfe = {0}", doc.GetElementsByTagName("cStat")[1].InnerText); sb.AppendFormat(" where nota_fiscal_lote = {0}", daNFe.Cod_Nota_Fiscal_Lote); SQL.ExecuteNonQuery(sb.ToString()); } f.Atual_Progresso++; } f.Close(); f.Dispose(); }
private void Localizar_Registros() { CompSoft.Tools.frmWait f = new CompSoft.Tools.frmWait("Aguarde, pesquisando dados..."); StringBuilder sb = new StringBuilder(); sb.AppendLine("select "); sb.AppendLine(" 0 as 'sel'"); sb.AppendLine(" , case pe.gera_nf"); sb.AppendLine(" when 1 then 'Nota Fiscal'"); sb.AppendLine(" else 'Cupom'"); sb.AppendLine(" end as 'Tipo_Documento'"); sb.AppendLine(" , e.Razao_Social as 'Razao_Social_Cendente'"); sb.AppendLine(" , cl.Razao_Social as 'Razao_Social_Cliente'"); sb.AppendLine(" , nf.Numero_Nota"); sb.AppendLine(" , nf.Data_Emissao"); sb.AppendLine(" , nfd.Numero_Parcela"); sb.AppendLine(" , nfd.Valor_Duplicata"); sb.AppendLine(" , nfd.Data_Vencimento"); sb.AppendLine(" , nfd.Nota_Fiscal_Duplicata"); sb.AppendLine(" , coalesce(b.Boleto_Impresso, 0) as 'Boleto_Impresso'"); sb.AppendLine(" , coalesce(b.ArquivoRemessao_Enviado, 0) as 'ArquivoRemessao_Enviado'"); sb.AppendLine(" from notas_fiscais nf"); sb.AppendLine(" inner join notas_fiscais_duplicatas nfd on nf.nota_fiscal = nfd.nota_fiscal"); sb.AppendLine(" inner join clientes cl on cl.cliente = nf.cliente"); sb.AppendLine(" inner join empresas e on e.empresa = nf.empresa"); sb.AppendLine(" inner join pedidos pe on pe.pedido = nf.pedido"); sb.AppendLine(" inner join contas_correntes cc on cc.empresa = e.empresa"); sb.AppendLine(" left outer join Boletos_gerados b on b.Nota_Fiscal_Duplicata = nfd.Nota_Fiscal_Duplicata"); sb.AppendLine(" where nf.Cancelada = 0 and (coalesce(b.Boleto_Impresso, 0) = 0 or coalesce(b.ArquivoRemessao_Enviado, 0) = 0)"); if (this.chkAtivarEmpresa.Checked && this.cboEmpresa.SelectedIndex >= 0) { sb.AppendFormat(" AND e.empresa = {0}\r\n", this.cboEmpresa.SelectedValue); } if (this.chkAtivarDataEmissao.Checked) { sb.AppendFormat(" AND nfd.data_vencimento between '{0}' and '{1}'\r\n" , this.prdDataEmissao.Data_Inicial_SQL , this.prdDataEmissao.Data_Termino_SQL); } if (!string.IsNullOrEmpty(this.txtNumeroNF.Text)) { sb.AppendFormat(" AND nf.numero_nota = {0}\r\n", this.txtNumeroNF.Text); } if (!string.IsNullOrEmpty(this.txtNumeroPedido.Text)) { sb.AppendFormat(" AND pe.pedido = {0}\r\n", this.txtNumeroPedido.Text); } DataTable dt = SQL.Select(sb.ToString(), "x", false); dt.Columns["sel"].ReadOnly = false; if (this.grdNotasFiscais.DataSource != null) { this.grdNotasFiscais.BindingSource.DataSource = dt; } else { BindingSource bs = new BindingSource(dt, null); this.grdNotasFiscais.DataSource = bs; } f.Close(); f.Dispose(); }