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