Пример #1
0
        public string RegistrarVenda(int IdFilial, XmlDocument XmlCadPessoa, XmlDocument XmlVenda, XmlDocument XmlItens)
        {
            int IdVenda = 0;

            try
            {
                if (IdFilial == 0)
                {
                    return("-3");
                }

                //string StringConexao = "Data Source=SERVIDOR;Initial Catalog=BD_ERP_SGE; User ID=talimpo; Password=systalimpo; MultipleActiveResultSets=True;";
                Conexao = new SqlConnection(StringConexao);
                Conexao.Open();

                Executar.Conexao      = Conexao;
                RegAuditoria.Controle = Executar;
                FormaPgto.Controle    = Executar;
                Vendedor.Controle     = Executar;
                Vendas.Controle       = Executar;
                MvItens.Controle      = Executar;
                VerificarCad.Controle = Executar;

                Parametros ParamFilial = new Parametros();
                ParamFilial.Controle = Executar;
                ParamFilial.LerDados(1);

                Controles.ControleEstoque ControleEstoque = new ControleEstoque();
                ControleEstoque.Controle = Executar;

                // Abrindo os XML de Cliente
                DataSet       TabCliente = new DataSet();
                XmlNodeReader XmlCliente = new XmlNodeReader(XmlCadPessoa);
                TabCliente.ReadXml(XmlCliente);

                CadPessoa.Controle = Executar;

                if (!Ver_CadCliente(TabCliente))
                {
                    return("-1");  //Cadastro de Cliente não Localizado
                }
                DataSet       TabVenda = new DataSet();
                XmlNodeReader XmlVd    = new XmlNodeReader(XmlVenda);
                TabVenda.ReadXml(XmlVd);

                //Verificando a Forma de Pagamento
                int IdFormaPgto = 0;

                if (int.Parse(TabVenda.Tables[0].Rows[0]["Id_FormaPgto"].ToString()) > 0)
                {
                    IdFormaPgto = VerificarCad.Verificar_ExisteCadastro("Id_FormaPgto", "SELECT * FROM FORMAPAGAMENTO WHERE FORMAPGTO='" + TabVenda.Tables[0].Rows[0]["NomeFormaPgto"].ToString().Trim() + "'");
                    if (IdFormaPgto == 0)
                    {
                        FormaPgto.LerDados(0);
                        FormaPgto.FormaPgto   = TabVenda.Tables[0].Rows[0]["NomeFormaPgto"].ToString().Trim();
                        FormaPgto.NumParcelas = 1;
                        FormaPgto.Financeiro  = 1;
                        FormaPgto.GravarDados();
                        IdFormaPgto = FormaPgto.IdFormaPgto;
                    }
                }

                //Verificando Vendedor
                int IdVendedor = VerificarCad.Verificar_ExisteCadastro("Id_Vendedor", "SELECT * FROM VENDEDORES WHERE VENDEDOR='" + TabVenda.Tables[0].Rows[0]["NomeVendedor"].ToString().Trim() + "'");

                if (IdVendedor == 0)
                {
                    Vendedor.LerDados(0);
                    Vendedor.Vendedor = TabVenda.Tables[0].Rows[0]["NomeVendedor"].ToString().Trim();
                    Vendedor.Ativo    = 1;
                    Vendedor.GravarDados();
                    IdVendedor = Vendedor.IdVendedor;
                }

                Vendas.LerDados(0);
                Vendas.TpVenda         = TabVenda.Tables[0].Rows[0]["TpVenda"].ToString();
                Vendas.IdPessoa        = CadPessoa.IdPessoa;
                Vendas.IdVendedor      = IdVendedor;
                Vendas.IdFormaPgto     = IdFormaPgto;
                Vendas.PrazoPgto       = TabVenda.Tables[0].Rows[0]["PrazoPgto"].ToString();
                Vendas.Observacao      = TabVenda.Tables[0].Rows[0]["Observacao"].ToString();
                Vendas.NmPessoa        = CadPessoa.RazaoSocial;
                Vendas.CnpjCpf         = CadPessoa.Cnpj;
                Vendas.InscUF          = CadPessoa.InscUF;
                Vendas.Endereco        = CadPessoa.Endereco;
                Vendas.Numero          = CadPessoa.Numero;
                Vendas.Complemento     = CadPessoa.Complemento;
                Vendas.Fone            = CadPessoa.Fone;
                Vendas.Cep             = CadPessoa.Cep;
                Vendas.Bairro          = CadPessoa.Bairro;
                Vendas.Cidade          = CadPessoa.Cidade;
                Vendas.IdUF            = CadPessoa.IdUF;
                Vendas.Pais            = CadPessoa.Pais;
                Vendas.VlrSubTotal     = decimal.Parse(TabVenda.Tables[0].Rows[0]["VlrSubTotal"].ToString().Replace(".", ","));
                Vendas.VlrDesconto     = decimal.Parse(TabVenda.Tables[0].Rows[0]["VlrDesconto"].ToString().Replace(".", ","));
                Vendas.VlrCredito      = decimal.Parse(TabVenda.Tables[0].Rows[0]["Credito"].ToString().Replace(".", ","));
                Vendas.VlrTotal        = decimal.Parse(TabVenda.Tables[0].Rows[0]["VlrTotal"].ToString().Replace(".", ","));
                Vendas.IdFilial        = int.Parse(TabVenda.Tables[0].Rows[0]["Id_Filial"].ToString());
                Vendas.IdFilialEntrega = int.Parse(TabVenda.Tables[0].Rows[0]["Id_FilialEntrega"].ToString());
                Vendas.IdUsuAutDeb     = int.Parse(TabVenda.Tables[0].Rows[0]["Id_UsuAutDeb"].ToString());
                Vendas.IdUsuboleto     = int.Parse(TabVenda.Tables[0].Rows[0]["Id_UsuBoleto"].ToString());
                Vendas.NumPedido       = TabVenda.Tables[0].Rows[0]["NumPedido"].ToString();

                if (Vendas.TpVenda.Trim() == "PC" || Vendas.TpVenda.Trim() == "OE")
                {
                    Vendas.Status = 2;
                }
                else
                {
                    Vendas.Status = 1;
                }
                Vendas.GravarDados();

                IdVenda = Vendas.IdVenda;
                RegistrarAuditoria("Rec.Movimento", Vendas.IdVenda, Vendas.NumDocumento, 1, "Pessoa:" + Vendas.NmPessoa);

                Executar.ExecutaSQL("Update MvVenda set DtEnvioRec=GetDate(), Id_VdOrigem=" + TabVenda.Tables[0].Rows[0]["Id_Venda"].ToString() + ",Id_FilialOrigem=" + IdFilial.ToString() + " WHERE ID_VENDA=" + IdVenda.ToString());

                if (TabVenda.Tables[0].Rows[0]["Id_UsuLibParc"].ToString() != "")
                {
                    Executar.ExecutaSQL("Update MvVenda set Id_UsuLibParc=" + TabVenda.Tables[0].Rows[0]["Id_UsuLibParc"].ToString() + " WHERE ID_VENDA=" + IdVenda.ToString());
                }


                //Incluindo os Itens;
                DataSet       TabItens   = new DataSet();
                XmlNodeReader XmlVdItens = new XmlNodeReader(XmlItens);
                TabItens.ReadXml(XmlVdItens);
                int IdPrd = 0;

                for (int i = 0; i < TabItens.Tables[0].Rows.Count; i++)
                {
                    IdPrd = VerificarCad.Verificar_ExisteCadastro("Id_Produto", "SELECT T1.ID_PRODUTO FROM PRODUTOS T1 LEFT JOIN GRUPOPRODUTO T2 ON (T2.ID_GRUPO=T1.ID_GRUPO) WHERE T1.ATIVO=1 AND T2.ATIVO=1 AND T2.LISTAVENDA=1 AND T1.REFERENCIA='" + TabItens.Tables[0].Rows[i]["REFERENCIA"].ToString().Trim() + "'");

                    if (IdPrd == 0)
                    {
                        Executar.ExecutaSQL("DELETE FROM MVVENDA WHERE ID_VENDA=" + Vendas.IdVenda.ToString());
                        Executar.ExecutaSQL("DELETE FROM MVVENDAITENS WHERE ID_VENDA=" + Vendas.IdVenda.ToString());
                        return("-2 Ref.Produto: " + TabItens.Tables[0].Rows[i]["REFERENCIA"].ToString().Trim()); //Produto não Localizado
                    }
                    MvItens.LerDados(0);
                    MvItens.IdVenda  = Vendas.IdVenda;
                    MvItens.TipoItem = TabItens.Tables[0].Rows[i]["TipoItem"].ToString();
                    if (Vendas.TpVenda != "TROCA")
                    {
                        if (TabItens.Tables[0].Rows[i]["TipoItem"].ToString() == "S")
                        {
                            MvItens.TipoItem = "N";
                        }
                        else
                        {
                            if (int.Parse(TabItens.Tables[0].Rows[i]["Vinculado"].ToString()) == 0)
                            {
                                MvItens.TipoItem = "S";
                            }
                            else
                            {
                                MvItens.TipoItem = "N";
                            }
                        }
                    }

                    MvItens.IdProduto      = IdPrd;
                    MvItens.PrcEspecial    = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcEspecial"].ToString().Replace(".", ","));
                    MvItens.PrcVarejo      = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcVarejo"].ToString().Replace(".", ","));
                    MvItens.PrcMinimo      = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcMinimo"].ToString().Replace(".", ","));
                    MvItens.PrcAtacado     = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcAtacado"].ToString().Replace(".", ","));
                    MvItens.PrcSensacional = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcSensacional"].ToString().Replace(".", ","));
                    MvItens.Qtde           = decimal.Parse(TabItens.Tables[0].Rows[i]["Qtde"].ToString().Replace(".", ","));
                    MvItens.VlrUnitario    = decimal.Parse(TabItens.Tables[0].Rows[i]["VlrUnitario"].ToString().Replace(".", ","));
                    MvItens.VlrTotal       = MvItens.Qtde * MvItens.VlrUnitario;
                    MvItens.PrcCusto       = decimal.Parse(TabItens.Tables[0].Rows[i]["PrcCusto"].ToString().Replace(".", ","));
                    MvItens.Vinculado      = int.Parse(TabItens.Tables[0].Rows[i]["VInculado"].ToString());
                    MvItens.ItemPed        = int.Parse(TabItens.Tables[0].Rows[i]["ItemPed"].ToString());
                    MvItens.GravarDados();
                    RegistrarAuditoria("Rec. Item", MvItens.IdItem, Vendas.NumDocumento, 1, "Incluindo Item Produto:" + MvItens.IdProduto.ToString() + "  Vr.Unit:" + MvItens.VlrUnitario.ToString() + "  Qtde:" + MvItens.Qtde.ToString());
                }
                //Concluindo a Venda
                if (int.Parse(TabVenda.Tables[0].Rows[0]["Id_Caixa"].ToString()) > 0)
                {
                    Vendas.IdFilialOrigem = IdFilial;
                    Vendas.VlrDesconto    = Vendas.VlrSubTotal;
                    Vendas.VlrCredito     = 0;
                    Vendas.VlrTotal       = 0;
                    Vendas.GravarDados();
                }

                //Calculando a comissao
                SqlDataReader TabComissao = Executar.ConsultaSQL("SELECT T1.*,T3.COMISSAO AS PCOMVEND FROM MvVendaItens T1 LEFT JOIN MVVENDA T2 ON (T2.ID_VENDA=T1.ID_VENDA)" +
                                                                 " LEFT JOIN VENDEDORES T3 ON (T3.ID_VENDEDOR=T2.ID_VENDEDOR) WHERE T1.TipoItem<>'E' and T1.Id_Venda=" + Vendas.IdVenda.ToString());
                Controles.Comissao CalcComissao = new Controles.Comissao();
                CalcComissao.Controle = Executar;

                decimal PDesconto = 0;
                if ((Vendas.VlrDesconto + Vendas.VlrCredito) > 0)
                {
                    PDesconto = 100 / (Vendas.VlrSubTotal / (Vendas.VlrDesconto + Vendas.VlrCredito));
                }

                CalcComissao.CalcularMovimento(TabComissao, PDesconto, CadPessoa.Clie_Forn == 3, ParamFilial, CadPessoa.ComissaoFixa, CadPessoa.IdPessoa);

                //Atualizando o Saldo do Estoque
                SqlDataReader TabSaida = Executar.ConsultaSQL("SELECT * FROM MvVendaItens WHERE TipoItem='S' and Id_Venda=" + Vendas.IdVenda.ToString());
                ControleEstoque.MovimentoEstoque(TabSaida, 2, 1, false, Vendas.TpVenda, Vendas.Data, 0);

                //Finalizando a venda
                RegistrarAuditoria("Rec.Movimento", Vendas.IdVenda, Vendas.NumDocumento, 5, "Confirmação do Movimento");
            }
            catch (Exception erro)
            {
                /*StreamWriter Xmlerr;
                 * Xmlerr = File.CreateText(@"D:\WS_erro.txt");
                 * Xmlerr.Write("Erro ao Atualizar: " + erro.ToString());
                 * Xmlerr.Close();*/

                RegistroLog("Erro Registro de Venda: " + erro.ToString());

                Executar.ExecutaSQL("DELETE FROM MVVENDA WHERE ID_VENDA=" + Vendas.IdVenda.ToString());
                Executar.ExecutaSQL("DELETE FROM MVVENDAITENS WHERE ID_VENDA=" + Vendas.IdVenda.ToString());

                Conexao.Dispose();
                return("-3");
            }
            Conexao.Dispose();
            return(string.Format("{0:D6}", IdVenda));
        }
Пример #2
0
        private void BtnGravar_Click(object sender, EventArgs e)
        {
            if (TxtFormaPgto.Text.Trim() != "")
            {
                FormaPgto.IdFormaPgto     = int.Parse(TxtCodigo.Text);
                FormaPgto.FormaPgto       = TxtFormaPgto.Text;
                FormaPgto.NumParcelas     = int.Parse(TxtNumParcelas.Value.ToString());
                FormaPgto.PrimParcela     = int.Parse(TxtPrimParcela.Value.ToString());
                FormaPgto.Intervalo       = int.Parse(TxtIntervalo.Value.ToString());
                FormaPgto.IdTpDocumento   = int.Parse(LstTipoDoc.SelectedValue.ToString());
                FormaPgto.IdServidor      = int.Parse(TxtIdServidor.Value.ToString());
                FormaPgto.VlrParcelamento = TxtVlrParc.Value;

                if (Cb_Financeiro.Checked)
                {
                    FormaPgto.Financeiro = 1;
                }
                else
                {
                    FormaPgto.Financeiro = 0;
                }
                if (Cb_Baixa.Checked)
                {
                    FormaPgto.Baixa = 1;
                }
                else
                {
                    FormaPgto.Baixa = 0;
                }
                if (Cb_VerDebito.Checked)
                {
                    FormaPgto.VerDebito = 1;
                }
                else
                {
                    FormaPgto.VerDebito = 0;
                }
                if (Cb_VerCredito.Checked)
                {
                    FormaPgto.VerCredito = 1;
                }
                else
                {
                    FormaPgto.VerCredito = 0;
                }
                if (Chk_Ativo.Checked)
                {
                    FormaPgto.Ativo = 1;
                }
                else
                {
                    FormaPgto.Ativo = 0;
                }
                if (Cb_BloqPF.Checked)
                {
                    FormaPgto.BloqPF = 1;
                }
                else
                {
                    FormaPgto.BloqPF = 0;
                }
                if (Cb_LibClieNovo.Checked)
                {
                    FormaPgto.LibClieNovo = 1;
                }
                else
                {
                    FormaPgto.LibClieNovo = 0;
                }
                FormaPgto.Desconto = TxtDesconto.Value;
                FormaPgto.GravarDados();
                PopularGrid();
                PopularCampos(FormaPgto.IdFormaPgto);
                StaFormEdicao = false;
                FrmPrincipal.ControleBotoes(false);
            }
            else
            {
                MessageBox.Show("FormaPgto não Informada", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                TxtFormaPgto.Focus();
            }
        }