static List <gsAgendaCliente_BuscarLimiteCreditoResult> ListarClientesResumen(int idEmpresa, int idUsuario, List <gsReporte_DocumentosPendientesResult> lst)
        {
            EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();
            List <gsAgendaCliente_BuscarLimiteCreditoResult> lstLimiteCreditoAgenda;

            try
            {
                lstLimiteCreditoAgenda = new List <gsAgendaCliente_BuscarLimiteCreditoResult>();
                var queryAllAgenda = from DocumentosPendientes in lst select DocumentosPendientes.ID_Agenda;
                var queryAgenda    = from AgendaPendiente in queryAllAgenda.Distinct() orderby AgendaPendiente ascending select AgendaPendiente;

                foreach (var agenda in queryAgenda)
                {
                    List <gsAgendaCliente_BuscarLimiteCreditoResult> LimiteCreditoAgenda = objEstadoCuentaWCF.EstadoCuenta_LimiteCreditoxCliente(idEmpresa, idUsuario, agenda.ToString()).ToList();
                    gsAgendaCliente_BuscarLimiteCreditoResult        Limite = LimiteCreditoAgenda[0];
                    lstLimiteCreditoAgenda.Add(Limite);
                }

                //ViewState["lstResumenCliente"] = JsonHelper.JsonSerializer(lstLimiteCreditoAgenda);
                ////grdResumenCliente.DataSource = lstLimiteCreditoAgenda;
                ////grdResumenCliente.DataBind();
                //lblDate.Text = "1";

                return(lstLimiteCreditoAgenda);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void ListarClientesResumen(List <GS_ReporteEstadoCuentaMngResult> lst)
        {
            EstadoCuentaWCFClient objEstadoCuentaWCF = new EstadoCuentaWCFClient();
            List <gsAgendaCliente_BuscarLimiteCreditoResult> lstLimiteCreditoAgenda;

            try
            {
                lstLimiteCreditoAgenda = new List <gsAgendaCliente_BuscarLimiteCreditoResult>();
                var queryAllAgenda = from DocumentosPendientes in lst select DocumentosPendientes.ID_Agenda;
                var queryAgenda    = from AgendaPendiente in queryAllAgenda.Distinct() orderby AgendaPendiente ascending select AgendaPendiente;

                foreach (var agenda in queryAgenda)
                {
                    List <gsAgendaCliente_BuscarLimiteCreditoResult> LimiteCreditoAgenda = objEstadoCuentaWCF.EstadoCuenta_LimiteCreditoxCliente(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, agenda.ToString(), 0).ToList();
                    gsAgendaCliente_BuscarLimiteCreditoResult        Limite = LimiteCreditoAgenda[0];
                    lstLimiteCreditoAgenda.Add(Limite);
                }

                ViewState["lstResumenCliente"] = JsonHelper.JsonSerializer(lstLimiteCreditoAgenda);
                //grdResumenCliente.DataSource = lstLimiteCreditoAgenda;
                //grdResumenCliente.DataBind();
                lblDate.Text = "1";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #3
0
        private gsAgendaCliente_BuscarLimiteCreditoResult ListarClientesResumen(string IdAgenda)
        {
            EstadoCuentaWCFClient objEstadoCuentaWCF         = new EstadoCuentaWCFClient();
            gsAgendaCliente_BuscarLimiteCreditoResult Limite = new gsAgendaCliente_BuscarLimiteCreditoResult();

            try
            {
                List <gsAgendaCliente_BuscarLimiteCreditoResult> LimiteCreditoAgenda = objEstadoCuentaWCF.EstadoCuenta_LimiteCreditoxCliente(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, IdAgenda, 0).ToList();
                Limite = LimiteCreditoAgenda[0];
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(Limite);
        }
예제 #4
0
        protected 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;

            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);
                        }
                        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";
            }
        }
        static void ListarClientesResumenVencidos(List <gsAgendaCliente_BuscarLimiteCreditoResult> listaResumen, List <gsReporte_DocumentosPendientesResult> ListaDetalle)
        {
            List <gsAgendaCliente_BuscarLimiteCreditoResult> lstClienteResumen;
            List <gsAgendaCliente_BuscarLimiteCreditoResult> lstClienteResumenFinal = new List <gsAgendaCliente_BuscarLimiteCreditoResult>();
            gsAgendaCliente_BuscarLimiteCreditoResult        ClienteResumenFinal;
            List <gsReporte_DocumentosPendientesResult>      lstClienteDetalle;

            lstClienteResumen = ClienteResumen(listaResumen);
            lstClienteDetalle = ClienteDetalle(ListaDetalle);

            //DataTable dtTablaresumen = TablaLimiteCredito();
            try
            {
                foreach (gsAgendaCliente_BuscarLimiteCreditoResult ClienteResumen in lstClienteResumen)
                {
                    ClienteResumenFinal = new gsAgendaCliente_BuscarLimiteCreditoResult();
                    var query_Detalle = from c in lstClienteDetalle
                                        where c.ID_Agenda == ClienteResumen.ID_Agenda
                                        orderby c.ClienteNombre, c.FechaVencimiento
                        select new
                    {
                        c.TC,
                        c.ID_Moneda,
                        c.ID_Agenda,


                        Pendiente = c.ID_Moneda == 0 ? c.ImportePendiente :
                                    c.ID_Moneda == 1 ? c.ImportePendiente / c.TC :
                                    c.ImportePendiente,

                        Pendiente_PorVencer30 = c.ID_Moneda == 0 ? c.ImportePendiente_PorVencer30 :
                                                c.ID_Moneda == 1 ? c.ImportePendiente_PorVencer30 / c.TC :
                                                c.ImportePendiente_PorVencer30,

                        Pendiente_NoVencido = c.ID_Moneda == 0 ? c.ImportePendiente_NoVencido :
                                              c.ID_Moneda == 1 ? c.ImportePendiente_NoVencido / c.TC :
                                              c.ImportePendiente_NoVencido,

                        Pendiente_VenceHoy = c.ID_Moneda == 0 ? c.ImportePendiente_VenceHoy :
                                             c.ID_Moneda == 1 ? c.ImportePendiente_VenceHoy / c.TC :
                                             c.ImportePendiente_VenceHoy,
                        Pendiente_01a30 = c.ID_Moneda == 0 ? c.ImportePendiente_01a30 :
                                          c.ID_Moneda == 1 ? c.ImportePendiente_01a30 / c.TC :
                                          c.ImportePendiente_01a30,
                        Pendiente_31a60 = c.ID_Moneda == 0 ? c.ImportePendiente_31a60 :
                                          c.ID_Moneda == 1 ? c.ImportePendiente_31a60 / c.TC :
                                          c.ImportePendiente_31a60,
                        Pendiente_61a120 = c.ID_Moneda == 0 ? c.ImportePendiente_61a120 :
                                           c.ID_Moneda == 1 ? c.ImportePendiente_61a120 / c.TC :
                                           c.ImportePendiente_61a120,
                        Pendiente_121a360 = c.ID_Moneda == 0 ? c.ImportePendiente_121a360 :
                                            c.ID_Moneda == 1 ? c.ImportePendiente_121a360 / c.TC :
                                            c.ImportePendiente_121a360,
                        Pendiente_361aMas = c.ID_Moneda == 0 ? c.ImportePendiente_361aMas :
                                            c.ID_Moneda == 1 ? c.ImportePendiente_361aMas / c.TC :
                                            c.ImportePendiente_361aMas
                    };

                    var sumImportePendiente           = query_Detalle.ToList().Select(c => c.Pendiente).Sum();
                    var sumImportePendiente_NoVencido = query_Detalle.ToList().Select(c => c.Pendiente_NoVencido).Sum();
                    var sumImportePendiente_VenceHoy  = query_Detalle.ToList().Select(c => c.Pendiente_VenceHoy).Sum();

                    var sumImporte_PorVencer30 = query_Detalle.ToList().Select(c => c.Pendiente_PorVencer30).Sum();

                    var sumImportePendiente_01a30   = query_Detalle.ToList().Select(c => c.Pendiente_01a30).Sum();
                    var sumImportePendiente_31a60   = query_Detalle.ToList().Select(c => c.Pendiente_31a60).Sum();
                    var sumImportePendiente_61a120  = query_Detalle.ToList().Select(c => c.Pendiente_61a120).Sum();
                    var sumImportePendiente_121a360 = query_Detalle.ToList().Select(c => c.Pendiente_121a360).Sum();
                    var sumImportePendiente_361aMas = query_Detalle.ToList().Select(c => c.Pendiente_361aMas).Sum();

                    decimal NoVencido;
                    decimal DeudaVencida;
                    decimal CreditoDisponible;
                    NoVencido         = Convert.ToDecimal(sumImportePendiente_NoVencido) + Convert.ToDecimal(sumImportePendiente_VenceHoy);
                    DeudaVencida      = Convert.ToDecimal(sumImportePendiente_01a30) + Convert.ToDecimal(sumImportePendiente_31a60) + Convert.ToDecimal(sumImportePendiente_61a120) + Convert.ToDecimal(sumImportePendiente_121a360) + Convert.ToDecimal(sumImportePendiente_361aMas);
                    CreditoDisponible = Convert.ToDecimal(ClienteResumen.LineaCredito) - Convert.ToDecimal(sumImportePendiente);

                    string strsumNoVencido = string.Format("{0:#,##0.00}", NoVencido);

                    string strsumImporte_PorVencer30 = string.Format("{0:#,##0.00}", sumImporte_PorVencer30);

                    string strsumImportePendiente_01a30   = string.Format("{0:#,##0.00}", sumImportePendiente_01a30);
                    string strsumImportePendiente_31a60   = string.Format("{0:#,##0.00}", sumImportePendiente_31a60);
                    string strsumImportePendiente_61a120  = string.Format("{0:#,##0.00}", sumImportePendiente_61a120);
                    string strsumImportePendiente_121a360 = string.Format("{0:#,##0.00}", sumImportePendiente_121a360);
                    string strsumImportePendiente_361aMas = string.Format("{0:#,##0.00}", sumImportePendiente_361aMas);
                    string strsumImportePendiente         = string.Format("{0:#,##0.00}", sumImportePendiente);
                    string strsumDeudaVencida             = string.Format("{0:#,##0.00}", DeudaVencida);
                    string strLineaCredito = string.Format("{0:#,##0.00}", ClienteResumen.LineaCredito);
                    //string strTotalCredito = string.Format("{0:$ #,##0.00}", ClienteResumen.TotalCredito);
                    string strCreditoDisponible = string.Format("{0:#,##0.00}", CreditoDisponible);


                    ClienteResumenFinal.ID_Agenda    = ClienteResumen.ID_Agenda;
                    ClienteResumenFinal.AgendaNombre = ClienteResumen.AgendaNombre;

                    ClienteResumenFinal.Aprobacion  = ClienteResumen.Aprobacion;
                    ClienteResumenFinal.AprobadoDes = ClienteResumen.AprobadoDes;

                    ClienteResumenFinal.DiasCredito         = ClienteResumen.DiasCredito;
                    ClienteResumenFinal.BloqueoLineaCredito = ClienteResumen.BloqueoLineaCredito;

                    ClienteResumenFinal.Estado         = ClienteResumen.Estado;
                    ClienteResumenFinal.EstadoDes      = ClienteResumen.EstadoDes;
                    ClienteResumenFinal.FechaVCMTLinea = ClienteResumen.FechaVCMTLinea;

                    ClienteResumenFinal.NoVencido   = Convert.ToDecimal(strsumNoVencido);
                    ClienteResumenFinal.PorVencer30 = Convert.ToDecimal(strsumImporte_PorVencer30);

                    ClienteResumenFinal.Vencido01a30      = Convert.ToDecimal(strsumImportePendiente_01a30);
                    ClienteResumenFinal.Vencido31a60      = Convert.ToDecimal(strsumImportePendiente_31a60);
                    ClienteResumenFinal.Vencido61a120     = Convert.ToDecimal(strsumImportePendiente_61a120);
                    ClienteResumenFinal.Vencido121a360    = Convert.ToDecimal(strsumImportePendiente_121a360);
                    ClienteResumenFinal.Vencido361amas    = Convert.ToDecimal(strsumImportePendiente_361aMas);
                    ClienteResumenFinal.DeudaVencida      = Convert.ToDecimal(strsumDeudaVencida);
                    ClienteResumenFinal.DeudaTotal        = Convert.ToDecimal(strsumImportePendiente);
                    ClienteResumenFinal.LineaCredito      = Convert.ToDecimal(strLineaCredito);
                    ClienteResumenFinal.CreditoDisponible = Convert.ToDecimal(strCreditoDisponible);
                    lstClienteResumenFinal.Add(ClienteResumenFinal);
                }
                //ViewState["lstResumenCliente"] = JsonHelper.JsonSerializer(lstClienteResumenFinal);
                //grdResumenCliente.DataSource = lstClienteResumenFinal;
                //grdResumenCliente.DataBind();

                //lblDate.Text = "1";
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #6
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";
            }
        }