Пример #1
0
        public static bool EnviarOrdenVentaCredito(int pOrdenVentaId)
        {
            var     orden        = Obtener(pOrdenVentaId);
            var     glosa        = string.Empty;
            decimal inicial      = orden.TotalNeto * (decimal)0.15;
            decimal montocredito = orden.TotalNeto - inicial;
            int     productoId   = 1;
            var     gastosadm    = GastosAdmBL.CalcularGastosAdm(montocredito);
            var     lstdes       =
                OrdenVentaDetBL.Listar(x => x.Estado && x.OrdenVentaId == orden.OrdenVentaId).Select(x => x.Descripcion)
                .ToList();

            for (int i = 0; i < lstdes.Count; i++)
            {
                glosa += lstdes[i];
                if (i != lstdes.Count - 1)
                {
                    glosa += ", " + Environment.NewLine;
                }
            }
            var oCredito = new Credito
            {
                OficinaId        = VendixGlobal.GetOficinaId(),
                PersonaId        = orden.PersonaId,
                Descripcion      = glosa,
                MontoProducto    = orden.TotalNeto,
                MontoInicial     = inicial,
                MontoCredito     = montocredito,
                ProductoId       = productoId,
                MontoGastosAdm   = gastosadm,
                Estado           = "CRE",
                FormaPago        = "D",
                NumeroCuotas     = 26,
                InteresMensual   = 7,
                FechaPrimerPago  = DateTime.Now,
                FechaVencimiento = DateTime.Now,
                FechaReg         = DateTime.Now,
                UsuarioRegId     = VendixGlobal.GetUsuarioId(),
                OrdenVentaId     = pOrdenVentaId
            };

            using (var scope = new TransactionScope())
            {
                try
                {
                    CreditoBL.Crear(oCredito);
                    orden.Estado    = "ENV";
                    orden.TipoVenta = "CRE";
                    Actualizar(orden);

                    scope.Complete();
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    throw new Exception(ex.InnerException.Message);
                }
            }
            return(true);
        }
Пример #2
0
        public static bool CrearSolicitudCredito(int pPersonaId)
        {
            var oCredito = new Credito
            {
                OficinaId        = VendixGlobal.GetOficinaId(),
                PersonaId        = pPersonaId,
                TipoCuota        = "F",
                Descripcion      = "",
                MontoProducto    = 0,
                MontoInicial     = 0,
                MontoCredito     = 500,
                ProductoId       = 1,
                MontoGastosAdm   = 0,
                TipoGastoAdm     = "CAP",
                Estado           = "CRE",
                FormaPago        = "D",
                NumeroCuotas     = 26,
                Interes          = 8,
                Observacion      = string.Empty,
                FechaPrimerPago  = VendixGlobal.GetFecha(),
                FechaVencimiento = VendixGlobal.GetFecha(),
                FechaReg         = VendixGlobal.GetFecha(),
                UsuarioRegId     = VendixGlobal.GetUsuarioId(),
                Calificacion     = "A"
            };

            oCredito.MontoGastosAdm = GastosAdmBL.CalcularGastosAdm(oCredito.MontoCredito, true);
            CreditoBL.Crear(oCredito);
            return(true);
        }
Пример #3
0
 public static bool CrearSolicitudCredito(int pPersonaId)
 {
     var oCredito = new Credito
     {
         OficinaId = VendixGlobal.GetOficinaId(),
         PersonaId = pPersonaId,
         TipoCuota = "V",
         Descripcion = "",
         MontoProducto = 0,
         MontoInicial = 0,
         MontoCredito = 0,
         ProductoId = 1,
         MontoGastosAdm = 0,
         Estado = "CRE",
         FormaPago = "M",
         NumeroCuotas = 12,
         InteresMensual = 19,
         FechaPrimerPago = DateTime.Now,
         FechaVencimiento = DateTime.Now,
         FechaReg = DateTime.Now,
         UsuarioRegId = VendixGlobal.GetUsuarioId()
     };
     CreditoBL.Crear(oCredito);
     return true;
 }
Пример #4
0
        public static string RealizarDesembolso(int pCreditoId)
        {
            var cajadiarioid     = VendixGlobal.GetCajaDiarioId();
            var usuarioid        = VendixGlobal.GetUsuarioId();
            int movimientoCajaId = 0;

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        var credito = db.Credito.Find(pCreditoId);
                        credito.FechaDesembolso = VendixGlobal.GetFecha();
                        credito.Estado          = "DES";
                        credito.UsuarioModId    = usuarioid;
                        credito.FechaMod        = VendixGlobal.GetFecha();
                        CreditoBL.Actualizar(db, credito);

                        var mov = new MovimientoCaja()
                        {
                            CajaDiarioId    = cajadiarioid,
                            Operacion       = "DES",
                            ImportePago     = credito.MontoDesembolso,
                            ImporteRecibido = credito.MontoDesembolso,
                            MontoVuelto     = 0,
                            PersonaId       = credito.PersonaId,
                            Descripcion     = "DESEMBOLSO CREDITO " + credito.CreditoId.ToString(),
                            IndEntrada      = false,
                            Estado          = true,
                            UsuarioRegId    = usuarioid,
                            FechaReg        = VendixGlobal.GetFecha(),
                            OrdenVentaId    = null,
                            CreditoId       = credito.CreditoId
                        };

                        db.MovimientoCaja.Add(mov);
                        db.SaveChanges();
                        movimientoCajaId = mov.MovimientoCajaId;

                        var oCajaDiario = db.CajaDiario.Find(cajadiarioid);
                        var qry         = db.MovimientoCaja.Where(z => z.CajaDiarioId == oCajaDiario.CajaDiarioId && z.Estado).Select(x => new { x.ImportePago, x.IndEntrada });
                        if (qry.Count(x => x.IndEntrada) > 0)
                        {
                            oCajaDiario.Entradas = qry.Where(z => z.IndEntrada).Sum(x => x.ImportePago);
                        }
                        if (qry.Count(x => x.IndEntrada == false) > 0)
                        {
                            oCajaDiario.Salidas = qry.Where(z => z.IndEntrada == false).Sum(x => x.ImportePago);
                        }
                        oCajaDiario.SaldoFinal = oCajaDiario.SaldoInicial + oCajaDiario.Entradas - oCajaDiario.Salidas;

                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(movimientoCajaId.ToString());
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    return(ex.Message);
                }
            }
        }