示例#1
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       = DateTime.Now,
                            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);
                }
            }
        }
示例#2
0
        public static void ActualizarParcial(T1 entity, params Expression <Func <T1, object> >[] properties)
        {
            using (var db = new VENDIXEntities())
            {
                var entry = db.Entry(entity);
                if (entry.State == EntityState.Detached)
                {
                    db.Set <T1>().Attach(entity);
                }

                if (properties == null)
                {
                    foreach (var p in properties)
                    {
                        entry.Property(p).IsModified = true;
                    }
                }
                else
                {
                    entry.State = EntityState.Modified;
                }

                db.SaveChanges();
            }
        }
示例#3
0
 public static void Guardar(List <T1> entities)
 {
     using (var db = new VENDIXEntities())
     {
         foreach (var e in entities)
         {
             db.Set <T1>().AddOrUpdate(e);
         }
         db.SaveChanges();
     }
 }
示例#4
0
 public static T1 Guardar(T1 entity)
 {
     using (var db = new VENDIXEntities())
     {
         db.Set <T1>().AddOrUpdate(entity);
         if (db.SaveChanges() > 0)
         {
             return(entity);
         }
     }
     return(null);
 }
示例#5
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;
                }
            }
        }
示例#6
0
        public static bool Eliminar(int pId)
        {
            using (var db = new VENDIXEntities())
            {
                db.Configuration.ProxyCreationEnabled  = false;
                db.Configuration.LazyLoadingEnabled    = false;
                db.Configuration.ValidateOnSaveEnabled = false;

                Eliminar(db, pId);
                if (db.SaveChanges() > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#7
0
        public static bool Actualizar(T1 entity)
        {
            using (var db = new VENDIXEntities())
            {
                db.Configuration.ProxyCreationEnabled  = false;
                db.Configuration.LazyLoadingEnabled    = false;
                db.Configuration.ValidateOnSaveEnabled = false;

                Actualizar(db, entity);
                if (db.SaveChanges() > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
示例#8
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 = DateTime.Now;
                        Actualizar(db, boveda);

                        Crear(db, new Boveda()
                        {
                            OficinaId         = oficinaid,
                            SaldoInicial      = boveda.SaldoFinal,
                            Entradas          = 0,
                            Salidas           = 0,
                            SaldoFinal        = boveda.SaldoFinal,
                            FechaIniOperacion = DateTime.Now,
                            IndCierre         = false
                        });
                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(false);
                }
            }
        }
示例#9
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);
                }
            }
        }
示例#10
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);
                }
            }
        }