예제 #1
0
        //private void CargarData()
        //{
        //    txtTotalDeudaVen.Text = totalDeudaVencida.ToString("#,##0.00");
        //    txtTotalLetras.Text = totalletras.ToString("#,##0.00");

        //}
        private void Registrar_Aprobacion()//string idAgenda, int IdPedido, int Op, string idSectorista, string comentario, decimal ValorVenta, int id_moneda, string Aprobacion, int Guia)
        {
            PedidoWCFClient objPedidoWCF = new PedidoWCFClient();
            gsAgendaCliente_BuscarLimiteCreditoResult objLimite = new gsAgendaCliente_BuscarLimiteCreditoResult();

            decimal porcentaje    = 0;
            decimal ValorPedido   = 0;
            decimal LineaMaximo   = 0;
            decimal LineaCredito  = 0;
            decimal Deuda         = 0;
            decimal DeudaIncluida = 0;
            decimal TC            = 0;

            var idEmpresa = ((Usuario_LoginResult)Session["Usuario"]).idEmpresa;
            var idUsuario = ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario;


            IdAgenda     = ((Request.QueryString["Id_Cliente"]));
            idSectorista = ((Request.QueryString["idSectorista"]));
            comentario   = ((Request.QueryString["comentario"]));
            Aprobacion   = ((Request.QueryString["Aprobacion"]));

            IdPedido   = Int32.Parse((Request.QueryString["IdPedido"]));
            Op         = Int32.Parse((Request.QueryString["Op"]));
            ValorVenta = decimal.Parse((Request.QueryString["ValorVenta"]));
            Id_moneda  = Int32.Parse((Request.QueryString["Id_moneda"]));
            Guia       = Int32.Parse((Request.QueryString["Guia"]));

            totalDeudaVencida = decimal.Parse((Request.QueryString["totalDeudaVencida"]));
            totalletras       = decimal.Parse((Request.QueryString["totalletras"]));

            try
            {
                if (((Usuario_LoginResult)Session["Usuario"]).aprobarPedido == true)
                {
                    ValorPedido = ValorVenta;
                    porcentaje  = (decimal.Parse(((Usuario_LoginResult)Session["Usuario"]).aprobarPorcentaje.ToString()) / 100);
                    objLimite   = ListarClientesResumen(IdAgenda);

                    if (!string.IsNullOrEmpty(objLimite.ID_Agenda))
                    {
                        TC           = (decimal)objLimite.TC;
                        LineaCredito = decimal.Parse(objLimite.LineaCredito.ToString());
                        if (Id_moneda == 1)
                        {
                            LineaCredito = LineaCredito * TC;
                        }
                        LineaMaximo = LineaCredito + (LineaCredito * porcentaje);
                        Deuda       = decimal.Parse(objLimite.TotalRiesgo.ToString());

                        if (Id_moneda == 1)
                        {
                            Deuda = Deuda * TC;
                        }


                        if (Guia == 1 || Guia == 2)
                        {
                            DeudaIncluida = Deuda;
                        }
                        else
                        {
                            if (Aprobacion == "True")
                            {
                                DeudaIncluida = Deuda;
                            }
                            else
                            {
                                DeudaIncluida = Deuda + ValorPedido;
                            }
                        }


                        if (DeudaIncluida <= LineaMaximo)
                        {
                            objPedidoWCF.Pedido_Aprobar(idEmpresa, idUsuario, IdPedido, Op, idSectorista, true, comentario);
                            objPedidoWCF.gsDocVentaAprobacion_Registrar(idEmpresa, IdPedido, Op, IdAgenda, idUsuario);
                            rwmOrdenVenta.RadAlert("Se aprobó el pedido correctamente. ", 200, 150, "Aprobación de Pedidos", null);
                            objCreditoWCF = new CreditoWCFClient();



                            objCreditoWCF.Enviar_Notificacion_Aprobacion2(idEmpresa, idUsuario, IdAgenda, txtCliente.Text, Op.ToString(),
                                                                          Convert.ToDecimal(txtTotalLetrasS.Text.Trim() == string.Empty ? "0" : txtTotalLetrasS.Text.Trim()),
                                                                          Convert.ToDecimal(txtTotalDeudaVenS.Text.Trim() == string.Empty ? "0" : txtTotalDeudaVenS.Text.Trim()),
                                                                          Convert.ToDecimal(txtTotalLetrasN.Text.Trim() == string.Empty ? "0" : txtTotalLetrasN.Text.Trim()),
                                                                          Convert.ToDecimal(txtTotalDeudaVenN.Text.Trim() == string.Empty ? "0" : txtTotalDeudaVenN.Text.Trim()),
                                                                          Convert.ToDecimal(txtTotalLetrasI.Text.Trim() == string.Empty ? "0" : txtTotalLetrasI.Text.Trim()),
                                                                          Convert.ToDecimal(txtTotalDeudaVenI.Text.Trim() == string.Empty ? "0" : txtTotalDeudaVenI.Text.Trim()),
                                                                          ((Usuario_LoginResult)Session["Usuario"]).nombres, txtcomentarios.Text);


                            objCreditoWCF.RegistrarLog_AprobacionDeudaVencida(idEmpresa, idUsuario, IdAgenda, txtCliente.Text, Op.ToString(),
                                                                              Convert.ToDecimal(txtTotalLetrasS.Text == string.Empty ? "0" : txtTotalLetrasS.Text), Convert.ToDecimal(txtTotalDeudaVenS.Text == string.Empty ? "0" : txtTotalDeudaVenS.Text),
                                                                              Convert.ToDecimal(txtTotalLetrasN.Text == string.Empty ? "0" : txtTotalLetrasN.Text), Convert.ToDecimal(txtTotalDeudaVenN.Text == string.Empty ? "0" : txtTotalDeudaVenN.Text),
                                                                              Convert.ToDecimal(txtTotalLetrasI.Text == string.Empty ? "0" : txtTotalLetrasI.Text), Convert.ToDecimal(txtTotalDeudaVenI.Text == string.Empty ? "0" : txtTotalDeudaVenI.Text), txtcomentarios.Text);

                            ScriptManager.RegisterStartupScript(Page, this.GetType(), "mykey", "CloseAndRebind(" + Op.ToString() + ");", true);
                        }
                        else
                        {
                            rwmOrdenVenta.RadAlert("El porcentaje de sobregiro asignado no es suficiente. Solicitar la aprobación de su Superior. ", 400, null, "Mensaje de error", null);
                        }
                    }
                    else
                    {
                        rwmOrdenVenta.RadAlert("El cliente no tiene linea de crédito, solicitar a C&C. ", 400, null, "Mensaje de error", null);
                    }
                }
                else
                {
                    rwmOrdenVenta.RadAlert("No tiene autorización para aprobar pedidos. ", 400, null, "Mensaje de error", null);
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text     = ex.Message;
                lblMensaje.CssClass = "mensajeError";
            }
        }
예제 #2
0
        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            lblMensaje.Text = "";
            if (Session["Usuario"] == null)
            {
                Response.Redirect("~/Security/frmCerrar.aspx");
            }

            PedidoWCFClient  objPedidoWCF  = new PedidoWCFClient();
            CreditoWCFClient objCreditoWCF = new CreditoWCFClient();

            try
            {
                foreach (GridItem rowitem in grdOrdenVenta.MasterTableView.Items)
                {
                    GridDataItem dataitem = (GridDataItem)rowitem;
                    TableCell    cell     = dataitem["CheckColumn"];
                    CheckBox     checkBox = (CheckBox)cell.Controls[0].FindControl("Check");
                    if (checkBox.Checked == true && checkBox.Enabled == true)
                    {
                        int    Op       = Convert.ToInt32(dataitem.GetDataKeyValue("Op").ToString());
                        string IdAgenda = dataitem["ID_Agenda"].Text;

                        int IdPedido  = int.Parse(dataitem["ID"].Text);
                        int Id_moneda = int.Parse(dataitem["Id_moneda"].Text);
                        //--------------------------------------

                        string Aprobacion = dataitem["Aprobacion"].Text;
                        int    Guia       = int.Parse(dataitem["Guia"].Text);

                        //--------------------------------------

                        decimal ValorVenta = decimal.Parse(dataitem["Total"].Text);
                        string  Perfil     = ((Usuario_LoginResult)Session["Usuario"]).nombrePerfil;
                        string  usuario    = ((Usuario_LoginResult)Session["Usuario"]).nombres;

                        //string idSectorista = cbSectorista.SelectedValue;
                        string comentario = "Aprobado por " + Perfil + " (" + usuario + ").";

                        string idSectorista = cbSectorista.SelectedValue;


                        var idEmpresa = ((Usuario_LoginResult)Session["Usuario"]).idEmpresa;
                        var idUsuario = ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario;

                        var opDocVenta = objPedidoWCF.VerificarExisteDocVenta(idEmpresa, idUsuario, IdAgenda).OpDocVenta;
                        //rwmOrdenVenta.RadConfirm("¿Esta seguro que desea Aprobar el pedido " + Op + "?", null, 400, 200,null, "Aprobar Pedido");
                        if (opDocVenta != 0)
                        {
                            USP_SEL_Verificacion_DeudaVencidaResult[]   lstDv  = null;
                            USP_SEL_Verificacion_LetrasxAceptarResult[] lstlet = null;

                            objCreditoWCF.ObtenerVerificacionAprobacion2(idEmpresa, idUsuario, IdAgenda, ref lstDv, ref lstlet);

                            if (lstDv.Any() || lstlet.Any())
                            {
                                double totalDeudaVencida = Convert.ToDouble(lstDv.Sum(x => x.DeudaVencida));
                                double totalletras       = Convert.ToDouble(lstlet.Sum(x => x.Deuda_mayor30Dias));
                                //string NombreCliente = dataitem["Agenda"].Text;
                                Session["NombreClienteAprobacion"] = dataitem["Agenda"].Text;
                                ScriptManager.RegisterStartupScript(Page, this.GetType(), "mykey", "ShowInsertForm('" + IdAgenda + "'," +
                                                                    IdPedido.ToString() + "," + Op.ToString() + ",'" + idSectorista + "','" + comentario + "'," + ValorVenta.ToString() + "," +
                                                                    Id_moneda.ToString() + ",'" + Aprobacion + "'," + Guia + "," + totalDeudaVencida + "," + totalletras
                                                                    + ");", true);

                                //rwmOrdenVenta.RadAlert("El cliente tiene deuda vencida con mas de 10 días", 450, 150, "Mantenimiento de Productos", null, "../../Images/Icons/sign-error-32.png");
                                break;
                            }
                            else
                            {
                                Registrar_Aprobacion(IdAgenda, IdPedido, Op, idSectorista, comentario, ValorVenta, Id_moneda, Aprobacion, Guia);
                            }
                        }
                        else
                        {
                            rwmOrdenVenta.RadAlert("Existe otro pedido que ha sido aprobado y aun no se ha generado su documento de venta.", 400, 200, "Alerta Verificar Pedido", "");
                        }
                    }
                }
                OrdenVenta_Listar(null, dpFechaInicio.SelectedDate.Value, dpFechaFinal.SelectedDate.Value, null, cbSectorista.SelectedValue, int.Parse(cboEstado.SelectedValue), int.Parse(cboTipoPago.SelectedValue));
            }
            catch (Exception ex)
            {
                lblMensaje.Text     = ex.Message;
                lblMensaje.CssClass = "mensajeError";
            }
        }
        private void CargarData()
        {
            List <USP_SEL_LetrasSinCanjeV2Result> lstletras = new List <USP_SEL_LetrasSinCanjeV2Result>();
            DateTime?dtInicio = Convert.ToDateTime("01/01/2000");  //dtpfechainicial.SelectedDate;
            DateTime?dtFinal  = dtpfechafinal.SelectedDate;
            int      dias     = txtCantidadDias.Text.Trim() == string.Empty ? 0 : Convert.ToInt32(txtCantidadDias.Text.Trim());

            string strzonas   = string.Empty;
            var    collection = cbzona.CheckedItems;

            foreach (var x in collection)
            {
                strzonas = strzonas + x.Value.ToString() + ",";
            }

            strzonas = strzonas.Trim() == string.Empty ? string.Empty : strzonas.Substring(0, strzonas.Length - 1);

            objCredito = new CreditoWCFClient();
            lstletras  = objCredito.ObtenerLetrasSinCanje(
                ((Usuario_LoginResult)Session["Usuario"]).idEmpresa,
                ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario,
                376,
                Convert.ToDateTime(dtInicio),
                Convert.ToDateTime(dtFinal),
                dias, strzonas).ToList();


            if (lstletras.Any())
            {
                Session["lstletras"] = JsonHelper.JsonSerializer(lstletras);

                //rchardTorta.PlotArea.Series[0].Items.Clear();

                decimal Total = (decimal)lstletras.Sum(x => x.Saldo);

                lblTitulotarta.Text = "Saldos por Categoria : Monto Total En Dolares $" + Total.ToString("#,##.00");

                var lstplazos = from p in lstletras
                                group p by new { p.TipoPlazo } into g
                    select new
                {
                    TipoPlazo = g.Key.TipoPlazo,
                    Cantidad  = g.Sum(x => x.Saldo)
                };

                SeriesItem item = new SeriesItem();


                CrearPie(lstletras);

                //rchardTorta.DataSource = lstplazos;
                //rchardTorta.DataBind();



                ////fin ------------------//



                //rchardTorta.PlotArea.Series[0].Items.Clear();

                //foreach (var Eplazo in lstplazos)
                //{
                //    item = new SeriesItem();
                //    item.YValue = Math.Round(((((decimal)Eplazo.Cantidad) / Total) * 100), 2); //((int)((cliente.ValorVenta / sum) * 100));

                //    item.Name = string.Format("{0}<br/> Saldo Total: ${1}<br/> Cantidad Letras: " + lstletras.Where(x => x.TipoPlazo == Eplazo.TipoPlazo).Count(),
                //        Eplazo.TipoPlazo, Math.Round(((decimal)Eplazo.Cantidad), 2).ToString("#,##0.00"));

                //    if (Eplazo.TipoPlazo == "1 a " + txtCantidadDias.Text.Trim() + " Días")
                //    {
                //        item.BackgroundColor = System.Drawing.Color.DarkOrange;
                //    }
                //    else if (Eplazo.TipoPlazo == "Mayor a " + txtCantidadDias.Text.Trim() + " Días")
                //    {
                //        item.BackgroundColor = System.Drawing.Color.Red;
                //    }


                //    rchardTorta.PlotArea.Series[0].Items.Add(item);
                //}


                //int plazos = lstplazos.Select(x => x.TipoPlazo).Count();



                //foreach (var Eplazo in lstplazos)
                //{
                //    item = new SeriesItem();

                //    rchardTorta.PlotArea.Series[0].Items[0].Name = string.Format("{0}<br/> Saldo Total: ${1}<br/> Cantidad Letras: " + lstletras.Where(x => x.TipoPlazo == Eplazo.TipoPlazo).Count(),
                //            Eplazo.TipoPlazo, Math.Round(((decimal)Eplazo.Cantidad), 2).ToString("#,##0.00"));

                //    plazos = plazos + 1;
                //}


                rchardLineas.PlotArea.Series[0].Items.Clear();
                var lstzonas = from p in lstletras
                               group p by new { p.NombreZona } into g
                    select new
                {
                    NombreZona = g.Key.NombreZona,
                    Cantidad   = g.Sum(x => x.Saldo)
                };


                rchardLineas.PlotArea.XAxis.TitleAppearance.Text = "Zonas";
                rchardLineas.PlotArea.YAxis.TitleAppearance.Text = "Saldo $";

                rchardLineas.PlotArea.XAxis.LabelsAppearance.TextStyle.FontSize = 8;


                rchardLineas.PlotArea.YAxis.MinValue = 0;
                rchardLineas.PlotArea.XAxis.Items.Clear();
                LineSeries lserie = new LineSeries();
                foreach (var vendedor in lstzonas)
                {
                    rchardLineas.PlotArea.XAxis.Items.Add(vendedor.NombreZona);


                    item      = new SeriesItem();
                    item.Name = string.Format("{0}<br/>Saldo Total:$ {1}<br/>",
                                              vendedor.NombreZona, Math.Round(((decimal)vendedor.Cantidad), 2).ToString("#,##0.00"));
                    item.YValue = Math.Round((decimal)vendedor.Cantidad, 2);

                    this.rchardLineas.PlotArea.Series[0].Items.Add(item);
                }

                rpgDetalle.DataSource = lstletras;
                rpgDetalle.DataBind();

                rpgResumenZona.DataSource = lstletras;
                rpgResumenZona.DataBind();
                Session["lstletrasresumen"] = JsonHelper.JsonSerializer(lstletras);
            }
        }