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); } } }
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); } }