Пример #1
0
        public static List <usp_CuotasPendientes_Result> LstCuotasPendientesJGrid(GridDataRequest request,
                                                                                  ref int pTotalItems,
                                                                                  ref string pTotales)
        {
            var indCancelacion = bool.Parse(request.DataFilters()["indCancelacion"]);

            int?creditoId = null;

            if (request.DataFilters()["CreditoId"] != null)
            {
                creditoId = int.Parse(request.DataFilters()["CreditoId"]);
            }

            List <usp_CuotasPendientes_Result> lista;

            using (var db = new VENDIXEntities())
            {
                lista = db.usp_CuotasPendientes(creditoId, VendixGlobal.GetFecha(), indCancelacion).ToList();
            }

            pTotalItems = lista.Count();
            pTotales    = string.Empty;
            pTotales   += pTotalItems.ToString() + ",";
            pTotales   += lista.Sum(x => x.Cuota).ToString() + ",";
            pTotales   += lista.Sum(x => x.ImporteMora).ToString() + ",";
            pTotales   += lista.Sum(x => x.InteresMora).ToString() + ",";
            pTotales   += lista.Sum(x => x.PagoCuota).ToString() + ",";
            pTotales   += lista.Sum(x => x.Amortizacion).ToString();


            return(lista.Skip((request.page - 1) * request.rows).Take(request.rows).ToList());
        }
Пример #2
0
        public static bool CrearOficina(Oficina pOficina)
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    var oficina = Crear(pOficina);
                    BovedaBL.Crear(new Boveda
                    {
                        OficinaId         = oficina.OficinaId,
                        SaldoInicial      = 0,
                        Entradas          = 0,
                        Salidas           = 0,
                        SaldoFinal        = 0,
                        FechaIniOperacion = VendixGlobal.GetFecha(),
                        IndCierre         = false
                    });

                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    throw;
                }
            }
        }
Пример #3
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);
        }
Пример #4
0
 public static decimal ObtenerSaldoCancelacion(int pCreditoId)
 {
     using (var db = new VENDIXEntities())
     {
         var cancel = db.usp_CuotasPendientes(pCreditoId, VendixGlobal.GetFecha(), true).Sum(x => x.PagoCuota);
         return((decimal)cancel);
     }
 }
Пример #5
0
        public static int?PagarCuotas(int pCajaDiarioId, int pCreditoId, string pPlanPago, decimal pImporteRecibido)
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    int?retid;
                    using (var db = new VENDIXEntities())
                    {
                        retid = db.usp_PagarCuotas(pCajaDiarioId, pCreditoId, pPlanPago, pImporteRecibido,
                                                   VendixGlobal.GetUsuarioId(), VendixGlobal.GetFecha()).ToList()[0];
                    }
                    scope.Complete();
                    return(retid);
                    //return 0;
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(-1);
                }
            }


            //using (var scope = new TransactionScope())
            //{
            //    try
            //    {
            //        int? retid;
            //        using (var db = new VENDIXEntities())
            //        {


            //            var retid1 = db.Database.SqlQuery<cal>("CREDITO.usp_PagarCuotas @CajaDiarioId, @CreditoId, @ListaPlanPagoId, @ImporteRecibido, @UsuarioId, @FechaPago",
            //                                                     new SqlParameter("@CajaDiarioId", pCajaDiarioId),
            //                                                     new SqlParameter("@CreditoId", pCreditoId),
            //                                                     new SqlParameter("@ListaPlanPagoId", pPlanPago),
            //                                                     new SqlParameter("@ImporteRecibido", pImporteRecibido),
            //                                                     new SqlParameter("@UsuarioId", VendixGlobal.GetUsuarioId()),
            //                                                     new SqlParameter("@FechaPago", VendixGlobal.GetFecha())
            //                ).ToList();


            //        }
            //        scope.Complete();
            //        //return retid;
            //        return 0;
            //    }
            //    catch (Exception ex)
            //    {
            //        scope.Dispose();
            //        return -1;
            //    }
            //}
        }
Пример #6
0
        public static bool TransferirCajaDiarioBoveda()
        {
            var idOficina = VendixGlobal.GetOficinaId();

            using (var scope = new TransactionScope())
            {
                try
                {
                    var cajasDiarios = Listar(x => x.IndCierre && x.TransBoveda == false && x.Caja.OficinaId == idOficina, includeProperties: "Caja");
                    var oBoveda      = BovedaBL.Obtener(x => x.OficinaId == idOficina && x.IndCierre == false);

                    foreach (var item in cajasDiarios)
                    {
                        item.TransBoveda = true;
                        Actualizar(item);

                        var movBoveda = new BovedaMov
                        {
                            BovedaId     = oBoveda.BovedaId,
                            CodOperacion = "TRE",
                            Glosa        = "CIERRE " + item.Caja.Denominacion + " " + VendixGlobal.GetFecha().ToShortDateString(),
                            Importe      = item.SaldoFinal,
                            IndEntrada   = true,
                            Estado       = true,
                            UsuarioRegId = VendixGlobal.GetUsuarioId(),
                            FechaReg     = VendixGlobal.GetFecha(),
                            CajaDiarioId = item.CajaDiarioId,
                        };
                        BovedaMovBL.Crear(movBoveda);
                    }

                    var oBovedaMov = BovedaMovBL.Listar(x => x.BovedaId == oBoveda.BovedaId && x.Estado);
                    oBoveda.Entradas   = oBovedaMov.Where(x => x.IndEntrada).Sum(x => x.Importe);
                    oBoveda.Salidas    = oBovedaMov.Where(x => x.IndEntrada == false).Sum(x => x.Importe);
                    oBoveda.SaldoFinal = oBoveda.SaldoInicial + oBoveda.Entradas - oBoveda.Salidas;
                    BovedaBL.Actualizar(oBoveda);

                    using (var db = new VENDIXEntities())
                    {
                        db.usp_CalificarCliente(idOficina);
                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    throw;
                }
            }
        }
Пример #7
0
        public static bool CrearCargo(int pCreditoId, int pTipoCargoId, decimal pMonto, string pDescripcion, bool pFinal)
        {
            var usuarioid = VendixGlobal.GetUsuarioId();

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        int numcuota;
                        if (pFinal)
                        {
                            numcuota = db.PlanPago.Where(x => x.CreditoId == pCreditoId && x.Estado == "PEN")
                                       .OrderByDescending(x => x.Numero).Take(1).First().Numero;
                        }
                        else
                        {
                            numcuota = db.PlanPago.Where(x => x.CreditoId == pCreditoId && x.Estado == "PEN")
                                       .OrderBy(x => x.Numero).Take(1).First().Numero;
                        }

                        Crear(db, new Cargo()
                        {
                            CreditoId   = pCreditoId,
                            NumCuota    = numcuota,
                            Descripcion = pDescripcion,
                            TipoCargoT2 = pTipoCargoId,
                            Importe     = pMonto,
                            UsuarioId   = usuarioid,
                            Fecha       = VendixGlobal.GetFecha(),
                            Estado      = "PEN"
                        });
                        db.SaveChanges();
                        var montocargo = db.Cargo.Where(x => x.CreditoId == pCreditoId && x.NumCuota == numcuota && x.Estado == "PEN").Sum(x => x.Importe);
                        var planpago   = db.PlanPago.First(x => x.CreditoId == pCreditoId && x.Numero == numcuota);
                        planpago.Cargo     = montocargo;
                        planpago.PagoCuota = planpago.Cuota + planpago.ImporteMora + planpago.InteresMora + planpago.Cargo - planpago.PagoLibre;
                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(false);
                }
            }
        }
Пример #8
0
 public static int?PagarCuotasCancelacion(int pCajaDiarioId, int pCreditoId)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             int?retid;
             using (var db = new VENDIXEntities())
             {
                 retid =
                     db.usp_PagarCuotasCancelacion(pCajaDiarioId, pCreditoId, VendixGlobal.GetUsuarioId(),
                                                   VendixGlobal.GetFecha()).ToList()[0];
             }
             scope.Complete();
             return(retid);
         }
         catch (Exception)
         {
             scope.Dispose();
             return(-1);
         }
     }
 }
Пример #9
0
        public static bool Cerrar()
        {
            var oficinaid = VendixGlobal.GetOficinaId();

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        var boveda = db.Boveda.First(x => x.OficinaId == oficinaid && x.IndCierre == false);
                        boveda.IndCierre         = true;
                        boveda.FechaFinOperacion = VendixGlobal.GetFecha();
                        Actualizar(db, boveda);

                        Crear(db, new Boveda()
                        {
                            OficinaId         = oficinaid,
                            SaldoInicial      = boveda.SaldoFinal,
                            Entradas          = 0,
                            Salidas           = 0,
                            SaldoFinal        = boveda.SaldoFinal,
                            FechaIniOperacion = VendixGlobal.GetFecha(),
                            IndCierre         = false
                        });
                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(false);
                }
            }
        }
Пример #10
0
        public static int CerrarCajaDiario()
        {
            var oCajadiario = Obtener(VendixGlobal.GetCajaDiarioId());

            oCajadiario.IndCierre         = true;
            oCajadiario.FechaFinOperacion = VendixGlobal.GetFecha();
            var MontoCobrado = MovimientoCajaBL.Listar(x => x.CajaDiarioId == oCajadiario.CajaDiarioId && x.IndEntrada && x.Operacion == "CUO" && x.Estado)
                               .Sum(x => x.ImportePago);

            oCajadiario.MontoCobrado = MontoCobrado;

            var oCaja = CajaBL.Obtener(oCajadiario.CajaId);

            oCaja.IndAbierto   = false;
            oCaja.FechaMod     = VendixGlobal.GetFecha();
            oCaja.UsuarioModId = VendixGlobal.GetUsuarioId();



            using (var scope = new TransactionScope())
            {
                try
                {
                    Actualizar(oCajadiario);
                    CajaBL.Actualizar(oCaja);

                    scope.Complete();
                    return(oCajadiario.CajaDiarioId);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(0);
                }
            }
        }
Пример #11
0
        public static int RealizarPedido(int pClienteId, List <Pedido> pPedidos)
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    var cabecera = new OrdenVenta
                    {
                        OficinaId      = VendixGlobal.GetOficinaId(),
                        Subtotal       = 0,
                        TotalNeto      = 0,
                        TotalImpuesto  = 0,
                        TotalDescuento = 0,
                        Estado         = "ENV",
                        UsuarioRegId   = VendixGlobal.GetUsuarioId(),
                        FechaReg       = VendixGlobal.GetFecha(),
                        PersonaId      = pClienteId,
                        TipoVenta      = "CON"
                    };
                    Guardar(cabecera);

                    var           detalle = new List <OrdenVentaDet>();
                    OrdenVentaDet item;
                    decimal       tNeto      = 0;
                    decimal       tDescuento = 0;

                    foreach (var i in pPedidos)
                    {
                        item = new OrdenVentaDet();
                        var art    = ArticuloBL.Obtener(x => x.ArticuloId == i.ArticuloId, "ListaPrecio");
                        var precio = art.ListaPrecio.First().Monto.Value;

                        item.OrdenVentaId = cabecera.OrdenVentaId;
                        item.ArticuloId   = art.ArticuloId;
                        item.Cantidad     = i.Cantidad;
                        item.Descripcion  = art.Denominacion;
                        item.ValorVenta   = precio;
                        item.Descuento    = i.Descuento;
                        item.Subtotal     = i.Cantidad * (precio - i.Descuento);
                        item.Estado       = true;

                        var lstSerie = SerieArticuloBL
                                       .Listar(x => x.ArticuloId == i.ArticuloId && x.EstadoId == Constante.SerieArticulo.EN_ALMACEN, x => x.OrderBy(y => y.SerieArticuloId))
                                       .Take(i.Cantidad);
                        foreach (var l in lstSerie)
                        {
                            item.OrdenVentaDetSerie.Add(new OrdenVentaDetSerie {
                                SerieArticuloId = l.SerieArticuloId
                            });
                            //SerieArticuloBL.ActualizarParcial(
                            //    new SerieArticulo { SerieArticuloId = l.SerieArticuloId, EstadoId = Constante.SerieArticulo.PREVENTA },
                            //    x => x.EstadoId);
                        }

                        detalle.Add(item);

                        tNeto      += item.Subtotal;
                        tDescuento += item.Descuento;
                    }
                    OrdenVentaDetBL.Guardar(detalle);

                    cabecera.TotalNeto      = tNeto;
                    cabecera.TotalDescuento = tDescuento;
                    cabecera.Subtotal       = Math.Round(tNeto / (1 + Constante.IGV), 2);
                    cabecera.TotalImpuesto  = Math.Round(tNeto - cabecera.Subtotal, 2);
                    ActualizarParcial(cabecera, x => x.TotalNeto, x => x.TotalDescuento,
                                      x => x.Subtotal, x => x.TotalImpuesto);


                    int?retid;
                    using (var db = new VENDIXEntities())
                    {
                        retid = db.usp_PagarCuentaxCobrar(cabecera.OrdenVentaId, 0, VendixGlobal.GetCajaDiarioId(),
                                                          VendixGlobal.GetUsuarioId()).ToList()[0];
                    }

                    scope.Complete();
                    return(cabecera.OrdenVentaId);
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    throw new Exception(ex.InnerException.Message);
                }
            }
        }
Пример #12
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, true);
            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,
                Interes          = 7,
                FechaPrimerPago  = VendixGlobal.GetFecha(),
                FechaVencimiento = VendixGlobal.GetFecha(),
                FechaReg         = VendixGlobal.GetFecha(),
                UsuarioRegId     = VendixGlobal.GetUsuarioId(),
                OrdenVentaId     = pOrdenVentaId,
                TipoGastoAdm     = "CUO",
                TipoCuota        = "M"
            };

            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);
        }
Пример #13
0
        public static bool TransferirSaldosBoveda(decimal pMonto, string pDescripcion, int pCajaDiarioId, int pBovedaId, int pOficinaId, int pUsuarioRegId)
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        var oCajaDiario      = db.CajaDiario.First(x => x.CajaDiarioId == pCajaDiarioId);
                        var oficinaPersonaId = db.Oficina.First(x => x.OficinaId == pOficinaId).Usuario.PersonaId;
                        db.MovimientoCaja.Add(new MovimientoCaja
                        {
                            CajaDiarioId    = pCajaDiarioId,
                            Operacion       = "TRS",
                            ImportePago     = pMonto,
                            ImporteRecibido = pMonto,
                            MontoVuelto     = 0,
                            Descripcion     = "TRANS A BOVEDA: " + pDescripcion,
                            IndEntrada      = false,
                            Estado          = true,
                            PersonaId       = oficinaPersonaId,
                            UsuarioRegId    = pUsuarioRegId,
                            FechaReg        = VendixGlobal.GetFecha()
                        });

                        db.BovedaMov.Add(new BovedaMov
                        {
                            BovedaId     = pBovedaId,
                            CodOperacion = "TRE",
                            Glosa        = "TRANS DE CAJA: " + pDescripcion,
                            Importe      = pMonto,
                            IndEntrada   = true,
                            Estado       = true,
                            CajaDiarioId = pCajaDiarioId,
                            UsuarioRegId = pUsuarioRegId,
                            FechaReg     = VendixGlobal.GetFecha()
                        });
                        db.SaveChanges();

                        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.usp_ActualizarSaldosBoveda(pBovedaId);
                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(false);
                }
            }
        }
Пример #14
0
        public static string AsignarUsuarioCaja(int pCajaId, int pUsuarioAsignadoId, decimal pSaldoInicial)
        {
            var idOficina  = VendixGlobal.GetOficinaId();
            var cajaDiario = new CajaDiario
            {
                CajaId            = pCajaId,
                UsuarioAsignadoId = pUsuarioAsignadoId,
                SaldoInicial      = pSaldoInicial,
                Entradas          = 0,
                Salidas           = 0,
                SaldoFinal        = pSaldoInicial,
                FechaIniOperacion = VendixGlobal.GetFecha(),
                IndCierre         = false,
                TransBoveda       = false,
            };
            var oBoveda = BovedaBL.Obtener(x => x.OficinaId == idOficina && x.IndCierre == false);

            if (cajaDiario.SaldoInicial > oBoveda.SaldoFinal)
            {
                return("Saldo Insuficiente de la boveda.");
            }

            using (var scope = new TransactionScope())
            {
                try
                {
                    Crear(cajaDiario);
                    var oCaja = CajaBL.Obtener(cajaDiario.CajaId);
                    oCaja.IndAbierto = true;
                    CajaBL.Actualizar(oCaja);
                    //ActualizarMontoPorCobrar(pUsuarioAsignadoId);

                    if (pSaldoInicial > 0)
                    {
                        BovedaMovBL.Crear(new BovedaMov
                        {
                            BovedaId     = oBoveda.BovedaId,
                            CodOperacion = "TRS",
                            Glosa        = "INICIAL " + oCaja.Denominacion + " " + VendixGlobal.GetFecha().ToShortDateString(),
                            Importe      = pSaldoInicial,
                            IndEntrada   = false,
                            Estado       = true,
                            UsuarioRegId = VendixGlobal.GetUsuarioId(),
                            FechaReg     = VendixGlobal.GetFecha(),
                            CajaDiarioId = cajaDiario.CajaDiarioId,
                        });
                        var oBovedaMov = BovedaMovBL.Listar(x => x.BovedaId == oBoveda.BovedaId && x.Estado);
                        oBoveda.Entradas   = oBovedaMov.Where(x => x.IndEntrada).Sum(x => x.Importe);
                        oBoveda.Salidas    = oBovedaMov.Where(x => x.IndEntrada == false).Sum(x => x.Importe);
                        oBoveda.SaldoFinal = oBoveda.SaldoInicial + oBoveda.Entradas - oBoveda.Salidas;
                        BovedaBL.Actualizar(oBoveda);
                    }
                    scope.Complete();
                    return(string.Empty);
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    throw;
                }
            }
        }
Пример #15
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);
                }
            }
        }
Пример #16
0
        public static MovCajaCredito RptMovCajaCredito(int pMovimientoCajaId)
        {
            using (var db = new VENDIXEntities())
            {
                var plan          = db.PlanPago.Where(x => x.MovimientoCajaId == pMovimientoCajaId).ToList();
                var creditoid     = plan.First().CreditoId;
                var saldoAnt      = plan.OrderBy(x => x.Numero).First().Capital;
                var cuotaspagadas = plan.Max(x => x.Numero);
                var pagodeuda     = plan.Sum(x => x.Amortizacion);
                var interes       = plan.Sum(x => x.Interes + x.GastosAdm);
                var importelibre  = plan.Sum(x => x.PagoLibre);
                var cargosmora    = plan.Sum(x => x.ImporteMora + x.InteresMora + x.Cargo);
                var pagocuota     = plan.Sum(x => x.PagoCuota.Value);
                var proxcuota     = string.Empty;
                var proxcuotapen  = db.PlanPago
                                    .Where(x => x.CreditoId == creditoid && x.Estado == "PEN")
                                    .OrderBy(x => x.Numero).FirstOrDefault();
                if (proxcuotapen != null)
                {
                    proxcuota = proxcuotapen.FechaVencimiento.ToShortDateString();
                }

                var cuotasAtrazadas = db.PlanPago
                                      .Count(x => x.CreditoId == creditoid && x.Estado == "PEN" && x.FechaVencimiento < VendixGlobal.GetFecha());

                var qrycre = from mc in db.MovimientoCaja
                             where mc.MovimientoCajaId == pMovimientoCajaId
                             select new MovCajaCredito
                {
                    MovimientoCajaId = mc.MovimientoCajaId,
                    PersonaId        = mc.PersonaId,
                    Cliente          = mc.Persona.NombreCompleto,
                    User             = mc.Usuario.NombreUsuario,
                    FechaReg         = mc.FechaReg,
                    Oficina          = mc.CajaDiario.Caja.Oficina.Denominacion,
                    Producto         = mc.Credito.Producto.Denominacion,
                    SaldoAnterior    = saldoAnt,
                    PagoDeuda        = pagodeuda,
                    Interes          = interes,
                    MoraCargo        = cargosmora,
                    ImporteLibre     = mc.ImportePago - pagocuota - importelibre,
                    ImportePagado    = mc.ImportePago,
                    SaldoCapital     = saldoAnt - pagodeuda,
                    CuotasPagadas    = SqlFunctions.StringConvert((double)cuotaspagadas).Trim() + " de " + SqlFunctions.StringConvert((double)mc.Credito.NumeroCuotas).Trim(),
                    ProximaCuota     = proxcuota,
                    CuotasAtrazadas  = cuotasAtrazadas
                };
                return(qrycre.ToList()[0]);
            }
        }