private void BtnEnviar_Click(object sender, EventArgs e) { if (int.Parse(LstFilial.SelectedValue.ToString()) == 0) { MessageBox.Show("Atenção: Selecione o Local Origem", "Selecionar", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (MessageBox.Show("Confirma o Sincronismo das Notas ?", "Confirmação", MessageBoxButtons.YesNo) == DialogResult.Yes) { SqlConnection ServidorOrigem; Filiais FilialOrigem = new Filiais(); FilialOrigem.Controle = Controle; FilialOrigem.LerDados(int.Parse(LstFilial.SelectedValue.ToString())); try { if (FrmPrincipal.VersaoDistribuidor) { ServidorOrigem = new SqlConnection("Data Source=" + FilialOrigem.ServidorRemoto + FilialOrigem.Porta + "; Initial Catalog=BD_ERP_SGE; User ID=Distribuidor; Password=systalimpo; MultipleActiveResultSets=True;"); } else { ServidorOrigem = new SqlConnection("Data Source=" + FilialOrigem.ServidorRemoto + FilialOrigem.Porta + "; Initial Catalog=BD_ERP_SGE; User ID=talimpo; Password=systalimpo; MultipleActiveResultSets=True;"); } ServidorOrigem.Open(); } catch { MessageBox.Show("Atenção: Ocorreu um erro ao conectar ao servidor origem, tente novamente", "Conclusão", MessageBoxButtons.OK, MessageBoxIcon.Information); BtnEnviar.Enabled = true; return; } Funcoes ControleOrigem = new Funcoes(); ControleOrigem.Conexao = ServidorOrigem; Controles.Verificar VerifCad = new Verificar(); VerifCad.Controle = Controle; // BtnEnviar.Enabled = false; ProcBar.Value = 0; Application.DoEvents(); NotaFiscal Nota = new NotaFiscal(); Nota.Controle = Controle; NotaFiscalItens ItensNota = new NotaFiscalItens(); ItensNota.Controle = Controle; try { DataSet ConsNota = new DataSet(); ConsNota = ControleOrigem.ConsultaTabela("SELECT T2.CNPJ,T1.* FROM NOTAFISCAL T1 LEFT JOIN PESSOAS T2 ON (T2.ID_PESSOA=T1.ID_PESSOA) WHERE T1.NFE=1 AND T1.Status<>0 AND T1.DTEMISSAO >= Convert(DateTime,'" + Dt1.Value.Date.ToString() + "',103) AND T1.DTEMISSAO <= Convert(DateTime,'" + Dt2.Value.Date.ToString() + "',103)"); int IdPessoa = 0; int IdNota = 0; Produtos CadPrd = new Produtos(); CadPrd.Controle = Controle; DataSet ConsItens = new DataSet(); if (ConsNota.Tables[0].Rows.Count > 0) { ProcBar.Maximum = ConsNota.Tables[0].Rows.Count; ProcBar.Value = 0; for (int I = 0; I <= ConsNota.Tables[0].Rows.Count - 1; I++) { IdPessoa = VerifCad.Verificar_ExisteCadastro("ID_PESSOA", "SELECT ID_PESSOA FROM Pessoas WHERE Cnpj='" + ConsNota.Tables[0].Rows[I]["CNPJ"].ToString().Trim() + "'"); if (IdPessoa == 0) { MessageBox.Show("Atenção: Destinatario da Nota:" + ConsNota.Tables[0].Rows[I]["NumNota"].ToString().Trim() + " de CNPJ/CPF:" + ConsNota.Tables[0].Rows[I]["CNPJ"].ToString().Trim() + " não localizada no Servidor, Favor verificar a nota no servidor Origem ", "Conclusão", MessageBoxButtons.OK, MessageBoxIcon.Information); ProcBar.Value = ProcBar.Value + 1; continue; } IdNota = VerifCad.Verificar_ExisteCadastro("ID_NOTA", "SELECT ID_NOTA FROM NOTAFISCAL WHERE NUMNOTA=" + ConsNota.Tables[0].Rows[I]["NUMNOTA"].ToString() + " AND ID_FILIAL=" + ConsNota.Tables[0].Rows[I]["Id_Filial"].ToString() + " AND NFE=" + ConsNota.Tables[0].Rows[I]["NFE"].ToString()); Nota.LerDados(IdNota); if (Nota.Status == 0) { Nota.Data = DateTime.Parse(ConsNota.Tables[0].Rows[I]["DATA"].ToString()); Nota.IdFilial = int.Parse(ConsNota.Tables[0].Rows[I]["Id_Filial"].ToString()); Nota.IdPessoa = IdPessoa; Nota.IdCfop = int.Parse(ConsNota.Tables[0].Rows[I]["Id_Cfop"].ToString()); Nota.IdTransportadora = int.Parse(ConsNota.Tables[0].Rows[I]["Id_Transportadora"].ToString()); Nota.Frete = int.Parse(ConsNota.Tables[0].Rows[I]["Frete"].ToString()); Nota.EntSaida = int.Parse(ConsNota.Tables[0].Rows[I]["EntSaida"].ToString()); Nota.DtEmissao = DateTime.Parse(ConsNota.Tables[0].Rows[I]["DTEMISSAO"].ToString()); Nota.NumFormulario = int.Parse(ConsNota.Tables[0].Rows[I]["NumFormulario"].ToString()); Nota.NumNota = int.Parse(ConsNota.Tables[0].Rows[I]["NumNota"].ToString()); Nota.ProtocoloNfe = ConsNota.Tables[0].Rows[I]["ProtocoloNFE"].ToString().Trim(); Nota.ChaveNfe = ConsNota.Tables[0].Rows[I]["ChaveNFE"].ToString().Trim(); Nota.ReciboNfe = ConsNota.Tables[0].Rows[I]["ReciboNfe"].ToString().Trim(); Nota.VlrProdutos = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrProdutos"].ToString()); Nota.VlrNota = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrNota"].ToString()); Nota.VlrDesconto = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrDesconto"].ToString()); Nota.BIcms = decimal.Parse(ConsNota.Tables[0].Rows[I]["BIcms"].ToString()); Nota.VlrIcms = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrIcms"].ToString()); Nota.BIcmsSub = decimal.Parse(ConsNota.Tables[0].Rows[I]["BIcmsSub"].ToString()); Nota.VlrIcmsSub = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrIcmsSub"].ToString()); Nota.VlrFrete = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrFrete"].ToString()); Nota.VlrSeguro = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrSeguro"].ToString()); Nota.VlrOutraDesp = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrOutraDesp"].ToString()); Nota.VlrIpi = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrIpi"].ToString()); Nota.Observacao = ConsNota.Tables[0].Rows[I]["Observacao"].ToString().Trim(); Nota.Status = int.Parse(ConsNota.Tables[0].Rows[I]["Status"].ToString()); Nota.NFE = int.Parse(ConsNota.Tables[0].Rows[I]["NFE"].ToString()); Nota.QtdeVolume = int.Parse(ConsNota.Tables[0].Rows[I]["QtdeVolume"].ToString()); Nota.Especie = ConsNota.Tables[0].Rows[I]["Especie"].ToString(); Nota.Marca = ConsNota.Tables[0].Rows[I]["Marca"].ToString(); Nota.PesoBruto = decimal.Parse(ConsNota.Tables[0].Rows[I]["PesoBruto"].ToString()); Nota.PesoLiquido = decimal.Parse(ConsNota.Tables[0].Rows[I]["PesoLiquido"].ToString()); Nota.NmPessoa = ConsNota.Tables[0].Rows[I]["RazaoSocial"].ToString(); Nota.CnpjCpf = ConsNota.Tables[0].Rows[I]["CnpjCpf"].ToString(); Nota.InscUf = ConsNota.Tables[0].Rows[I]["Insc_UF"].ToString(); Nota.Cep = ConsNota.Tables[0].Rows[I]["Cep"].ToString(); Nota.Endereco = ConsNota.Tables[0].Rows[I]["Endereco"].ToString(); Nota.Numero = ConsNota.Tables[0].Rows[I]["Numero"].ToString(); Nota.Bairro = ConsNota.Tables[0].Rows[I]["Bairro"].ToString(); Nota.Compl = ConsNota.Tables[0].Rows[I]["Complemento"].ToString(); Nota.Cidade = ConsNota.Tables[0].Rows[I]["Cidade"].ToString(); Nota.IdUf = int.Parse(ConsNota.Tables[0].Rows[I]["ID_Uf"].ToString()); Nota.Telefone = ConsNota.Tables[0].Rows[I]["Telefone"].ToString(); Nota.VlrAcrescimo = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrAcrescimo"].ToString()); Nota.ProtocoloNfe = ConsNota.Tables[0].Rows[I]["ProtocoloNFE"].ToString(); Nota.ChaveNfe = ConsNota.Tables[0].Rows[I]["ChaveNfe"].ToString(); Nota.ReciboNfe = ConsNota.Tables[0].Rows[I]["ReciboNfe"].ToString(); Nota.VlrAcrescimo = decimal.Parse(ConsNota.Tables[0].Rows[I]["VlrAcrescimo"].ToString()); Nota.Consumidor = int.Parse(ConsNota.Tables[0].Rows[I]["Consumidor"].ToString()); Nota.Atendimento = int.Parse(ConsNota.Tables[0].Rows[I]["Atendimento"].ToString()); Nota.DestOperacao = int.Parse(ConsNota.Tables[0].Rows[I]["DestOperacao"].ToString()); Nota.Finalidade = int.Parse(ConsNota.Tables[0].Rows[I]["Finalidade"].ToString()); Nota.ChaveNfeDev = ConsNota.Tables[0].Rows[I]["ChaveNfeDev"].ToString(); Nota.NatOp = int.Parse(ConsNota.Tables[0].Rows[I]["NatOp"].ToString()); Nota.GravarDados(); Controle.ExecutaSQL("UPDATE NotaFiscal Set Protocolonfe='" + ConsNota.Tables[0].Rows[I]["ProtocoloNFE"].ToString() + "',ChaveNfe='" + ConsNota.Tables[0].Rows[I]["ChaveNfe"].ToString() + "',ReciboNfe='" + ConsNota.Tables[0].Rows[I]["ReciboNfe"].ToString() + "' Where Id_Nota=" + Nota.IdNota.ToString()); if (int.Parse(ConsNota.Tables[0].Rows[I]["Status"].ToString()) == 2) { Controle.ExecutaSQL("UPDATE NotaFiscal Set Status=2,DataCancel=convert(DateTime,'" + ConsNota.Tables[0].Rows[I]["DATACANCEL"].ToString() + "',103),ProtocoloCanc='" + ConsNota.Tables[0].Rows[I]["ProtocoloCanc"].ToString() + "' Where Id_Nota=" + Nota.IdNota.ToString()); } // Incluindo os Itens ConsItens = ControleOrigem.ConsultaTabela("SELECT T2.REFERENCIA,T1.* FROM NOTAFISCALITENS T1 LEFT JOIN PRODUTOS T2 ON (T2.ID_PRODUTO=T1.ID_PRODUTO) WHERE T1.ID_NOTA=" + ConsNota.Tables[0].Rows[I]["ID_Nota"].ToString()); if (ConsItens.Tables[0].Rows.Count > 0) { FrmPrincipal.BSta_BarProcesso.Maximum = ConsItens.Tables[0].Rows.Count; for (int B = 0; B <= ConsItens.Tables[0].Rows.Count - 1; B++) { CadPrd.LerDados(ConsItens.Tables[0].Rows[B]["Referencia"].ToString().Trim()); if (CadPrd.IdProduto > 0) { ItensNota.LerDados(0); ItensNota.IdNota = Nota.IdNota; ItensNota.IdProduto = CadPrd.IdProduto; ItensNota.Qtde = decimal.Parse(ConsItens.Tables[0].Rows[B]["Qtde"].ToString()); ItensNota.VlrUnitario = decimal.Parse(ConsItens.Tables[0].Rows[B]["VlrUnitario"].ToString()); ItensNota.VlrTotal = decimal.Parse(ConsItens.Tables[0].Rows[B]["VlrTotal"].ToString()); ItensNota.PIpi = decimal.Parse(ConsItens.Tables[0].Rows[B]["PIPI"].ToString()); ItensNota.VlrIpi = decimal.Parse(ConsItens.Tables[0].Rows[B]["VlrIpi"].ToString()); ItensNota.VlrIcms = decimal.Parse(ConsItens.Tables[0].Rows[B]["VlrIcms"].ToString()); ItensNota.PIcms = decimal.Parse(ConsItens.Tables[0].Rows[B]["PIcms"].ToString()); ItensNota.PIcmsSub = decimal.Parse(ConsItens.Tables[0].Rows[B]["PIcmsSub"].ToString()); ItensNota.VlrIcmsSub = decimal.Parse(ConsItens.Tables[0].Rows[B]["VlrIcmsSub"].ToString()); ItensNota.PercRed = decimal.Parse(ConsItens.Tables[0].Rows[B]["PercRed"].ToString()); ItensNota.SitTributaria = int.Parse(ConsItens.Tables[0].Rows[B]["SitTributaria"].ToString()); ItensNota.IdCfop = int.Parse(ConsItens.Tables[0].Rows[B]["Id_Cfop"].ToString()); ItensNota.IdReducao = int.Parse(ConsItens.Tables[0].Rows[B]["Id_Reducao"].ToString()); ValidarCST(Nota, ItensNota); ItensNota.GravarDados(); } else { MessageBox.Show("Atenção: Produto:" + ConsItens.Tables[0].Rows[B]["Referencia"].ToString().Trim() + " não localizada no Servidor, Favor verificar a nota no servidor Origem ", "Conclusão", MessageBoxButtons.OK, MessageBoxIcon.Information); Nota.Status = 0; Nota.GravarDados(); BtnEnviar.Enabled = true; return; } FrmPrincipal.BSta_BarProcesso.Maximum = FrmPrincipal.BSta_BarProcesso.Maximum + 1; } } Nota.GravarDados(); } else { Nota.GravarDados(); if (int.Parse(ConsNota.Tables[0].Rows[I]["Status"].ToString()) == 1) { Controle.ExecutaSQL("UPDATE NotaFiscal Set Protocolonfe='" + ConsNota.Tables[0].Rows[I]["ProtocoloNFE"].ToString() + "',ChaveNfe='" + ConsNota.Tables[0].Rows[I]["ChaveNfe"].ToString() + "',ReciboNfe='" + ConsNota.Tables[0].Rows[I]["ReciboNfe"].ToString() + "' Where Id_Nota=" + IdNota.ToString()); } if (int.Parse(ConsNota.Tables[0].Rows[I]["Status"].ToString()) == 2) { Controle.ExecutaSQL("UPDATE NotaFiscal Set Status=2,DataCancel=convert(DateTime,'" + ConsNota.Tables[0].Rows[I]["DATACANCEL"].ToString() + "',103),ProtocoloCanc='" + ConsNota.Tables[0].Rows[I]["ProtocoloCanc"].ToString() + "' Where Id_Nota=" + IdNota.ToString()); } } ProcBar.Value = ProcBar.Value + 1; Application.DoEvents(); } } MessageBox.Show("Processo concluido", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); BtnEnviar.Enabled = true; return; } catch (Exception erro) { MessageBox.Show("Erro: " + erro.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); BtnEnviar.Enabled = true; return; } } }
private void BtnConfirmar_Click(object sender, EventArgs e) { if (int.Parse(LstFilial.SelectedValue.ToString()) == 0) { MessageBox.Show("Atenção: Selecione o Local Origem", "Selecionar", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string CodGrupo = "0"; for (int I = 0; I <= CkListGrupos.Items.Count - 1; I++) { if (CkListGrupos.GetItemChecked(I)) { DataRowView item = (DataRowView)CkListGrupos.Items[I]; if (CodGrupo == "0") { CodGrupo = item.Row[0].ToString(); } else { CodGrupo = CodGrupo + "," + item.Row[0].ToString(); } } } if (CodGrupo == "0") { MessageBox.Show("Atenção: Selecione o Grupo", "Selecionar", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (MessageBox.Show("Confirma o processo dos Itens ?", "Confirmação", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (RelFiscal) { ProcRelFiscal(); return; } BtnConfirmar.Enabled = false; ProcBar.Value = 0; Produtos CadPrd = new Produtos(); CadPrd.Controle = Controle; GrupoPrd.Controle = Controle; SqlConnection ServidorOrigem; Filiais FilialOrigem = new Filiais(); FilialOrigem.Controle = Controle; FilialOrigem.LerDados(int.Parse(LstFilial.SelectedValue.ToString())); try { if (FrmPrincipal.VersaoDistribuidor) { ServidorOrigem = new SqlConnection("Data Source=" + FilialOrigem.ServidorRemoto + FilialOrigem.Porta + "; Initial Catalog=BD_ERP_SGE; User ID=Distribuidor; Password=systalimpo; MultipleActiveResultSets=True;"); } else { ServidorOrigem = new SqlConnection("Data Source=" + FilialOrigem.ServidorRemoto + FilialOrigem.Porta + "; Initial Catalog=BD_ERP_SGE; User ID=talimpo; Password=systalimpo; MultipleActiveResultSets=True;"); } ServidorOrigem.Open(); } catch { MessageBox.Show("Atenção: Ocorreu um erro ao conectar ao servidor origem, tente novamente", "Conclusão", MessageBoxButtons.OK, MessageBoxIcon.Information); BtnConfirmar.Enabled = true; return; } Funcoes ControleOrigem = new Funcoes(); ControleOrigem.Conexao = ServidorOrigem; try { DataSet TabItens = new DataSet(); TabItens = ControleOrigem.ConsultaTabela("WITH RESULTADO AS" + " (select t3.Referencia,SUM(T1.qtde) as Qtde from NotaFiscalItens t1" + " left join NotaFiscal t2 on (t2.Id_Nota=t1.Id_Nota)" + " left join Produtos t3 on (t3.Id_Produto=t1.Id_Produto)" + " left join GrupoProduto t4 on (t4.Id_Grupo=t3.Id_Grupo)" + " where t2.Status=1 and t2.EntSaida=0" + " and t2.Id_Filial=" + LstFilial.SelectedValue.ToString() + " and t4.Id_Grupo in (" + CodGrupo + ")" + " and T2.DTEMISSAO >= Convert(DateTime,'" + Dt1.Value.Date.ToString() + "',103) AND T2.DTEMISSAO <= Convert(DateTime,'" + Dt2.Value.Date.ToString() + "',103)" + " Group By t3.Referencia " + "UNION ALL" + " select t3.Referencia,SUM(T1.qtde) as Qtde from CupomFIscalItens t1" + " left join CupomFiscal t2 on (t2.Id_Lanc=t1.Id_Lanc)" + " left join Produtos t3 on (t3.Id_Produto=t1.Id_Produto)" + " left join GrupoProduto t4 on (t4.Id_Grupo=t3.Id_Grupo)" + " where t2.Status=1" + " and t4.Id_Grupo in (" + CodGrupo + ")" + " and T2.DATA >= Convert(DateTime,'" + Dt1.Value.Date.ToString() + "',103) AND T2.DATA <= Convert(DateTime,'" + Dt2.Value.Date.ToString() + "',103)" + " Group By t3.Referencia)" + " SELECT REFERENCIA,SUM(QTDE) AS QTDE FROM RESULTADO GROUP BY REFERENCIA"); if (TabItens.Tables[0].Rows.Count > 0) { ProcBar.Value = 0; ProcBar.Maximum = TabItens.Tables[0].Rows.Count; Controle.ExecutaSQL("DELETE FROM NOTAFISCALITENS WHERE ID_NOTA=" + IdNota.ToString()); bool FindLinha; for (int I = 0; I <= TabItens.Tables[0].Rows.Count - 1; I++) { CadPrd.LerDados(TabItens.Tables[0].Rows[I]["REFERENCIA"].ToString()); if (CadPrd.IdProduto == 0) { MessageBox.Show("Atenção: Referencia: " + TabItens.Tables[0].Rows[I]["REFERENCIA"].ToString() + ", não Localizada no Servidor:", "Conclusão", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Itens.LerDados(0); Itens.IdNota = IdNota; Itens.IdCfop = IdCfop; Itens.IdProduto = CadPrd.IdProduto; Itens.SitTributaria = CadPrd.SitTributaria;; Itens.PIcms = CadPrd.IcmsIss; Itens.PercRed = CadPrd.Reducao; Itens.Qtde = decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString()); Itens.VlrUnitario = CadPrd.UltPrcCompra; if (IdCfop != 45) { if (CadPrd.IdGrupo == 53) { if (CadPessoa.PDescNFGrpTalimpo > 0) { Itens.VlrUnitario = Math.Round(CadPrd.PrcAtacado * (1 - (CadPessoa.PDescNFGrpTalimpo / 100)), 2); } } else { if (CadPessoa.PDescNFGrpOutros > 0) { Itens.VlrUnitario = Math.Round(CadPrd.PrcAtacado * (1 - (CadPessoa.PDescNFGrpOutros / 100)), 2); } } } Itens.GravarDados(); } ProcBar.Value = ProcBar.Value + 1; } } MessageBox.Show("Importação concluida", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); Close(); } catch { MessageBox.Show("Atenção: Ocorreu um erro na importação dos Itens", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); Controle.ExecutaSQL("DELETE FROM NOTAFISCALITENS WHERE ID_NOTA=" + IdNota.ToString()); Close(); } } }