예제 #1
0
파일: Pedido.cs 프로젝트: prasist/wb20
    protected void ButtonGravar_Click(object sender, EventArgs e)
    {
        int codVendedor = Convert.ToInt32(Session["CodVend"]);
        int codCliente = Convert.ToInt32(cbCliente.SelectedValue);
        string observacao = TextBoxObservacao.Text.Trim();

        TB_DescPed_TextChanged(sender, e); //validacao desconto

        if (DropDownListCondPagto.SelectedValue == "-1")
        {
            ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Selecione a condição de pagamento.');", true);
            return;
        }

        int codFormaPagto = Convert.ToInt32(DropDownListCondPagto.SelectedValue.Split('|').First());
        int codCondPagto = Convert.ToInt32(DropDownListCondPagto.SelectedValue.Split('|').Last());
        int CodPrcTab = Convert.ToInt16(cbTabelas.SelectedValue.Split('|').First());
        int CodPrzTab = Convert.ToInt16(cbTabelas.SelectedValue.Split('|').Last());

        List<ProdutoResumido> produtos = (List<ProdutoResumido>)ViewState["Produtos"];
        if (produtos != null)
        {
            if (produtos.Count < 1 && LabelPreco.Text == "")
            {
                if (!ClientScript.IsClientScriptBlockRegistered("respostaScript"))
                {
                    if (LabelPreco.Text == "")
                    {
                        ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Tabela de Preco nao cadastrada ou a mercadoria esta inativa');", true);
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Não há produtos adicionados a este pedido. Insira um ou mais produtos.');", true);
                    }
                }
            }
            else
            {
                foreach (ProdutoResumido prod in produtos)
                {
                    prod.Preco = prod.Preco;
                    prod.Desconto = prod.Desconto;
                    prod.TotalParcial = prod.TotalParcial;
                    prod.Quantidade = prod.Quantidade;
                    prod.M_UNIDADE = prod.M_UNIDADE;
                    prod.QtdCaixa = prod.QtdCaixa;
                    prod.Comissao = prod.Comissao;
                }
                int resultado = 0;

                try
                {

                    decimal vlr_desconto = TB_DescPed.Text == "" ? 0 : Convert.ToDecimal(TB_DescPed.Text);
                    resultado = ClassePedido.InserePedido((UsuarioResumido)Session["Usuario"],
                                                          (ParametroResumido)Session["Parametros"],
                                                          codVendedor,
                                                          codCliente,
                                                          observacao,
                                                          codFormaPagto,
                                                          codCondPagto,
                                                          produtos,
                                                          (int)Session["EmpresaCODEMP"],
                                                          Convert.ToInt32(LabelNumPedido.Text),
                                                          Convert.ToInt32(LabelNumPedidoSigma.Text),
                                                          vlr_desconto,
                                                          CodPrcTab,
                                                          CodPrzTab,
                                                          cbUnidadeVenda.SelectedIndex, Convert.ToInt16(csMovimentacao.SelectedValue));


                    ClassePedido.RemoverReservaItensPedidoWeb(u);
                    LabelNumPedido.Text = ClassePedido.ProximoPedidoWeb(u).ToString();
                    LabelNumPedidoSigma.Text = ClassePedido.ProximoPedido(u).ToString();

                    string cValorPedido = tbTotalPedido.Text.Replace(',', '.');


                    /* Verifica se houve bloqueio do pedido por regras do financeiro/comercial
                      
                        '-----------------------------------------------------------------------+
                        'BLOQUEIOS :  BL  - BLOQUEADO POR LIMITE                                +
                        '             BI  - BLOQUEADO POR INADIMPLENCIA                         +
                        '             BD  - BLOQUEADO POR DÉBITOS EM ABERTO                     +
                        '             BVM - BLOQUEADO POR VALOR MÍNIMO NÃO ATINGIDO             +
                        '             BMM - BLOQUEADO POR MARGEM MÍNIMA DO PEDIDO NÃO ATINGIDO  +
                        '             BBF - BLOQUEADO POR CLIENTE BLOQUEADO                     +
                        '-----------------------------------------------------------------------+
                      
                      SP_BloqueioPedidos
                      Cliente				
                      Pedido				
                      FormaPagto			
                      PrazoPagto			
                      Empresa				
                      ValorPedido			
                      DataInadimplente	- Esses 4 ultimos campos a exemplo do DIGPEDIDOS sao passados em branco
                      BloquearDebitos		
                      MargemMinimaPedido	
                      MargemLucro			                    
                   */

                    ClasseBloqueioFinancerio cls_BloqueioCliente = new ClasseBloqueioFinancerio();

                    string resposta = cls_BloqueioCliente.BloqueioFinancerio(codCliente,
                        Convert.ToInt32(resultado),
                        Convert.ToInt16(CodPrcTab),
                        Convert.ToInt16(CodPrzTab),
                        Convert.ToInt16(pr.CodEmp), cValorPedido, "", 0, 0, 0);

                    if (resposta != "OK")
                    {
                        ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('" + resposta + "');", true);
                    }

                    if (!ClientScript.IsClientScriptBlockRegistered("respostaScript"))
                    {
                        ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('O pedido " + resultado + " foi cadastrado com sucesso.');", true);
                    }

                    //48426
                    //Verifica se envia email ao cliente
                    if (Funcoes.BuscaCampoTabela("EnviarEmailWeb", "PARAMETROS", " AND CODEMP = " + pr.CodEmp) == "1")
                    {
                        //busca email do cliente
                        string sEmailCliente = Funcoes.BuscaCampoTabela("Email", "CLIENTE", " AND CODCLI = " + codCliente + "");
                        string sRemetente = Funcoes.BuscaCampoTabela("UsuarioSmtp", "PARAMETROS", " AND CODEMP = " + pr.CodEmp + "");
                        string sAssunto = "Pedido de compra";
                        StringBuilder sTexto = new StringBuilder();

                        sTexto.Append("N. Pedido : " + resultado);
                        sTexto.Append("<br/>Data : " + DateTime.Today);
                        sTexto.Append("<br/><br/>");
                        sTexto.Append("<Table border=1>");
                        sTexto.Append("<tr><td>PRODUTO</td><td>QUANTIDADE</td><td>PREÇO</td><td>TOTAL</td>");
                        sTexto.Append("<tr><td></td><td></td><td></td><td></td>");

                        DataClassesDataContext dcdc = new DataClassesDataContext();
                        decimal cTotalGeral = 0;

                        foreach (ProdutoResumido produto in produtos)
                        {
                            SERVMERC servMercadoria = dcdc.SERVMERCs.SingleOrDefault(sm => sm.CodServMerc == produto.Codigo);
                            decimal cTotalItens = (produto.Quantidade * produto.preco_liquido);
                            cTotalGeral = cTotalGeral + cTotalItens;

                            sTexto.Append("<tr><td>" + produto.Codigo + " - " + servMercadoria.DesServMerc.ToString() + "</td><td>" + produto.Quantidade + "</td><td>" + produto.preco_liquido + "</td><td>" + cTotalItens + "</td>");
                        }

                        sTexto.Append("<tr><td></td><td></td><td></td><td></td>");
                        sTexto.Append("<tr><td></td><td></td><td></td><td>" + cTotalGeral + "</td>");
                        sTexto.Append("</table>");

                        if (sEmailCliente != "")
                        {
                            try
                            {
                                csFuncoes.EnviaEmail(pr, sEmailCliente.Trim(), sRemetente.Trim(), "", "", sAssunto, sTexto.ToString(), "", "");
                            }
                            catch (Exception excEmail)
                            {
                                //ClientScript.RegisterStartupScript(this.GetType(), "respostaScript", "<script language = 'javascript'>alert('" + excEmail.Message + "')</script>");
                                Response.Write("<p class='texto_erro'>" + excEmail.Message + "</p>");
                            }
                        }
                    }

                    ButtonLimpar_Click(null, null);

                }
                catch (Exception ex)
                {
                    if (!String.IsNullOrEmpty(ex.Message))
                    {
                        Response.Write("<p class='texto_erro'>" + ex.Message + "</p>");
                    }
                }

                if (resultado == -1)
                {
                    if (!ClientScript.IsClientScriptBlockRegistered("respostaScript"))
                    {
                        if (ViewState["produtos"] != null)
                        {
                            if (((List<ProdutoResumido>)ViewState["produtos"]).Count == 0)
                            {
                                ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Não foram encontrados produtos selecionados para este pedido. Favor informar um ou mais produtos para finalizar o pedido');", true);
                            }
                            else
                            {
                                ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Houve um problema na gravação do pedido. Verifique se os campos foram preenchidos corretamente');", true);
                            }
                        }
                        else
                        {
                            ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Não foram encontrados produtos selecionados para este pedido. Favor informar um ou mais produtos para finalizar o pedido');", true);
                        }
                    }
                }
            }
        }
        else
        {
            if (!ClientScript.IsClientScriptBlockRegistered("respostaScript"))
            {
                ScriptManager.RegisterStartupScript(this, typeof(string), "Error", "alert('Não há produtos adicionados a este pedido. Insira um ou mais produtos');", true);
            }
        }
    }
예제 #2
0
    private void GravaPedido(Int32 Cliente, int Forma, int Prazo, string lNumPedWeb, string lNumPed, string Obs, int CodPrcTab, int CodPrzTab, int UnidadeVenda, int iCodTipMov, string sPedidoAtual)
    {

        try
        {
            List<ProdutoResumido> produtos = (List<ProdutoResumido>)ViewState["Produtos"];

            int resultado           = 0;
            string cValorPedido     = "0";
            string sMensagemLog     = "";
            decimal vlr_desconto    = 0;
            
            StringBuilder sObservacao = new StringBuilder(60);

            //49888
            var rsCliente = conn.Query("SELECT MOTIVO FROM FINANCLI WHERE CODCLI = " + Cliente + "");
            sObservacao.Length = 0;

            if (rsCliente.Read())
            {
                if (Obs != "")
                {
                    sObservacao.Append(Obs + " - " + rsCliente["motivo"].ToString().Trim());
                }
                else
                {
                    sObservacao.Append(rsCliente["motivo"].ToString().Trim());
                }

                //Se ultrapassou 60 caracteres 
                if (sObservacao.Length > 60)
                {
                    Obs = sObservacao.ToString().Substring(0, 60);
                }
                else
                {
                    Obs = sObservacao.ToString();
                }

            }

            rsCliente.Close();
            //49888

            resultado = ClassePedido.InserePedido((UsuarioResumido)Session["Usuario"],
                                                    (ParametroResumido)Session["Parametros"],
                                                    u.CodVend,
                                                    Cliente,
                                                    Obs,
                                                    Forma,
                                                    Prazo,
                                                    produtos,
                                                    (int)Session["EmpresaCODEMP"],
                                                    Convert.ToInt32(lNumPedWeb),
                                                    Convert.ToInt32(lNumPed),
                                                    vlr_desconto,
                                                    CodPrcTab,
                                                    CodPrzTab, UnidadeVenda, iCodTipMov);

            ClassePedido.RemoverReservaItensPedidoWeb(u);
            ClasseBloqueioFinancerio cls_BloqueioCliente = new ClasseBloqueioFinancerio();
            bool bNaoAtendido = false;

            //Pega total do pedido inserido
            //Se valor 
            var rs = conn.Query("SELECT VLRTOT FROM PEDIDO WHERE NUMPED = " + lNumPed + " AND CODEMP = " + u.CodEmp);

            if (rs.Read())
            {
                cValorPedido = rs[0].ToString();
                //Envia copia por email ao cliente
                EnviarEmail(lNumPed, Cliente.ToString(), produtos);
                rs.Close();
            }
            else
            {
                rs.Close();
                bNaoAtendido = true;
            }
            
            string resposta = cls_BloqueioCliente.BloqueioFinancerio(Cliente,
                Convert.ToInt32(resultado),
                Convert.ToInt16(CodPrcTab),
                Convert.ToInt16(CodPrzTab),
                Convert.ToInt16(pr.CodEmp), cValorPedido, "", 0, 0, 0);

            string sStatus = "";

            if (resposta != "OK")
            {
                sMensagemLog = resposta;
            }

            if (bNaoAtendido == true)
            {
                sStatus = "T";
            }
            else
            {
                sStatus = String.IsNullOrEmpty(MensagemItemNaoAtendido) == true ? "A" : "P";
            }

            string sMontaMensagens = sMensagemLog + Environment.NewLine +
                                     MensagemItemNaoAtendido + Environment.NewLine +
                                         MensagemLimitePreco + Environment.NewLine +
                                             MensagemLimiteDesconto;

            //Insere na log 
            conn.ExecutarComando("INSERT INTO LOG_IMPORTACAO_WEB (NUMPED, CODCLI, DATA, CODVEN, STATUS, VALOR, MSG, NUMERO_OFFLINE, NOMEARQUIVO) VALUES (" + lNumPed + ", " + Cliente + ", GETDATE(), " + u.CodVend + ", '" + sStatus + "', '" + cValorPedido.Replace(",", ".") + "', ' - " + sMontaMensagens + "', '" + sPedidoAtual + "', '" + Label1.Text + "')");
            ViewState["Produtos"] = null;
        }
        catch (Exception exc)
        {
            throw new Exception(exc.Message);      
        }
    }