コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        private void ProcRelFiscal()
        {
            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;
            }

            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();
                if (int.Parse(LstFilial.SelectedValue.ToString()) == 1)
                {
                    TabItens = Controle.ConsultaTabela("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 ");
                }
                else
                {
                    TabItens = ControleOrigem.ConsultaTabela("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 ");
                }
                if (TabItens.Tables[0].Rows.Count > 0)
                {
                    ProcBar.Value   = 0;
                    ProcBar.Maximum = TabItens.Tables[0].Rows.Count;
                    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
                        {
                            FindLinha = false;
                            for (int A = 0; A <= TabelaFiscal.Rows.Count - 1; A++)
                            {
                                if (TabelaFiscal.Rows[A]["Referencia"].ToString().Trim() == CadPrd.Referencia.Trim())
                                {
                                    FindLinha = true;
                                    TabelaFiscal.Rows[A]["QtdeSaida"] = decimal.Parse(TabelaFiscal.Rows[A]["QtdeSaida"].ToString()) + decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString());
                                    break;
                                }
                            }

                            if (!FindLinha)
                            {
                                GrupoPrd.LerDados(CadPrd.IdGrupo);
                                TabelaFiscal.Rows.Add(LstFilial.Text.ToString(), GrupoPrd.Grupo, CadPrd.Referencia.Trim(), CadPrd.Descricao.Trim(), 0, decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString()));
                            }
                        }
                        ProcBar.Value = ProcBar.Value + 1;
                    }
                }

                //Cupom Fiscal

                TabItens = ControleOrigem.ConsultaTabela("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");

                if (TabItens.Tables[0].Rows.Count > 0)
                {
                    ProcBar.Value   = 0;
                    ProcBar.Maximum = TabItens.Tables[0].Rows.Count;
                    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
                        {
                            FindLinha = false;
                            for (int A = 0; A <= TabelaFiscal.Rows.Count - 1; A++)
                            {
                                if (TabelaFiscal.Rows[A]["Referencia"].ToString().Trim() == CadPrd.Referencia.Trim())
                                {
                                    FindLinha = true;
                                    TabelaFiscal.Rows[A]["QtdeSaida"] = decimal.Parse(TabelaFiscal.Rows[A]["QtdeSaida"].ToString()) + decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString());
                                    break;
                                }
                            }

                            if (!FindLinha)
                            {
                                GrupoPrd.LerDados(CadPrd.IdGrupo);
                                TabelaFiscal.Rows.Add(LstFilial.Text.ToString(), GrupoPrd.Grupo, CadPrd.Referencia.Trim(), CadPrd.Descricao.Trim(), 0, decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString()));
                            }
                        }
                        ProcBar.Value = ProcBar.Value + 1;
                    }
                }

                //-----------------------------
                //Movimento de Entradas
                TabItens = new DataSet();
                TabItens = Controle.ConsultaTabela("select t3.Referencia,SUM(T1.qtde) as Qtde from MvEstoqueItens t1" +
                                                   " left join MvEstoque t2 on (t2.Id_Mov=t1.Id_MOv)" +
                                                   " 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.TpMov='ENTNF'" +
                                                   "   and t2.Id_FilialOrigDest=" + LstFilial.SelectedValue.ToString() +
                                                   "   and t4.Id_Grupo in (" + CodGrupo + ")" +
                                                   "   and T2.DTEntSai >= Convert(DateTime,'" + Dt1.Value.Date.ToString() + "',103) AND T2.DTEntSai <= Convert(DateTime,'" + Dt2.Value.Date.ToString() + "',103)" +
                                                   " Group By t3.Referencia ");

                if (TabItens.Tables[0].Rows.Count > 0)
                {
                    ProcBar.Value   = 0;
                    ProcBar.Maximum = TabItens.Tables[0].Rows.Count;
                    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
                        {
                            if (RelFiscal)
                            {
                                FindLinha = false;
                                for (int A = 0; A <= TabelaFiscal.Rows.Count - 1; A++)
                                {
                                    if (TabelaFiscal.Rows[A]["Referencia"].ToString().Trim() == CadPrd.Referencia.Trim())
                                    {
                                        FindLinha = true;
                                        TabelaFiscal.Rows[A]["QtdeCompra"] = decimal.Parse(TabelaFiscal.Rows[A]["QtdeCompra"].ToString()) + decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString());
                                        break;
                                    }
                                }

                                if (!FindLinha)
                                {
                                    GrupoPrd.LerDados(CadPrd.IdGrupo);
                                    TabelaFiscal.Rows.Add(LstFilial.Text.ToString(), GrupoPrd.Grupo, CadPrd.Referencia.Trim(), CadPrd.Descricao.Trim(), decimal.Parse(TabItens.Tables[0].Rows[I]["Qtde"].ToString()), 0);
                                }
                            }
                        }
                        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();
            }
        }