Example #1
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);
        }
Example #2
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);
        }
Example #3
0
 public static List <usp_UsuariosNoAsignadosCaja_Result> ListaUsuariosNoAsignado()
 {
     using (var db = new VENDIXEntities())
     {
         return(db.usp_UsuariosNoAsignadosCaja(VendixGlobal.GetOficinaId()).ToList());
     }
 }
Example #4
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;
 }
Example #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;
                }
            }
        }
Example #6
0
        public static List <Boveda> LstBovedaJGrid(GridDataRequest request, ref int pTotalItems)
        {
            var oficinaid = VendixGlobal.GetOficinaId();

            using (var db = new VENDIXEntities())
            {
                IQueryable <Boveda> query = db.Boveda.Where(x => x.OficinaId == oficinaid);

                pTotalItems = query.Count();
                return(query.OrderBy(request.sidx + " " + request.sord)
                       .Skip((request.page - 1) * request.rows).Take(request.rows).ToList());
            }
        }
Example #7
0
        public static List <ItemCombo> ListarCajasAbiertas()
        {
            var oficinaId = VendixGlobal.GetOficinaId();

            using (var db = new VENDIXEntities())
            {
                var query = from c in db.CajaDiario
                            where c.Caja.OficinaId == oficinaId && c.IndCierre == false
                            select new ItemCombo
                {
                    id    = c.CajaId,
                    value = c.Caja.Denominacion + " - " + c.Usuario.Persona.NombreCompleto
                };
                return(query.ToList());
            }
        }
Example #8
0
        public static List <BovedaMov> LstBovedaMovJGrid(GridDataRequest request, ref int pTotalItems)
        {
            //string filterExpression = string.Empty;

            var oficinaid = VendixGlobal.GetOficinaId();

            using (var db = new VENDIXEntities())
            {
                var bovedaid = db.Boveda.First(x => x.OficinaId == oficinaid && x.IndCierre == false).BovedaId;

                IQueryable <BovedaMov> query = db.BovedaMov.Where(x => x.BovedaId == bovedaid);
                //if (!String.IsNullOrEmpty(filterExpression))
                //    query = query.Where(filterExpression);

                pTotalItems = query.Count();
                return(query.OrderBy(request.sidx + " " + request.sord)
                       .Skip((request.page - 1) * request.rows).Take(request.rows).ToList());
            }
        }
Example #9
0
        public static List <EntradaSalida> LstTransferenciaJGrid(GridDataRequest request, ref int pTotalItems)
        {
            string clave      = request.DataFilters().Count > 0 ? request.DataFilters()["Buscar"] : string.Empty;
            int    almacenId  = int.Parse(request.DataFilters()["Almacen"]);
            int    articuloId = int.Parse(request.DataFilters()["BuscarxArticuloId"]);
            int    ofinaId    = VendixGlobal.GetOficinaId();

            using (var db = new VENDIXEntities())
            {
                //db.Configuration.ProxyCreationEnabled = false;
                //db.Configuration.LazyLoadingEnabled = false;
                //db.Configuration.ValidateOnSaveEnabled = false;
                IQueryable <EntradaSalida> qry;

                qry = from tra in db.Transferencia
                      where tra.Almacen.OficinaId == ofinaId || tra.Almacen1.OficinaId == ofinaId
                      select new EntradaSalida
                {
                    TransferenciaId = tra.TransferenciaId,
                    AlmacenOrigen   = tra.Almacen.Denominacion,
                    AlmacenDestino  = tra.Almacen1.Denominacion,
                    Fecha           = tra.Fecha,
                    Estado          = tra.Estado
                };
                if (clave != string.Empty)
                {
                    DateTime fecha;
                    qry = DateTime.TryParse(clave, out fecha)
                            ? qry.Where(x => EntityFunctions.TruncateTime(x.Fecha) == fecha.Date)
                            : qry.Where("TransferenciaId=" + clave);
                }



                pTotalItems = qry.Count();
                return(qry.OrderBy(request.sidx + " " + request.sord)
                       .Skip((request.page - 1) * request.rows).Take(request.rows).ToList());
            }
        }
Example #10
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);
                }
            }
        }
Example #11
0
        public static List <CajaDiarioOficina> LstCajaDiarioOficina()
        {
            var oficina = VendixGlobal.GetOficinaId();

            using (var db = new VENDIXEntities())
            {
                var query = from c in db.CajaDiario
                            where c.Caja.OficinaId == oficina && c.TransBoveda == false
                            select new CajaDiarioOficina
                {
                    CajaDiarioId      = c.CajaId,
                    NombreCaja        = c.Caja.Denominacion,
                    IndCierre         = c.IndCierre,
                    Cajero            = c.Usuario.Persona.NombreCompleto,
                    FechaIniOperacion = c.FechaIniOperacion,
                    FechaFinOperacion = c.FechaFinOperacion,
                    SaldoInicial      = c.SaldoInicial,
                    Entradas          = c.Entradas,
                    Salidas           = c.Salidas,
                    SaldoFinal        = c.SaldoFinal
                };
                return(query.ToList());
            }
        }
Example #12
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);
                }
            }
        }
Example #13
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;
                }
            }
        }
Example #14
0
        public static bool TransferirBovedaCaja(decimal pImporte, string pDescripcion, int pCajaId)
        {
            var pUsuarioRegId = VendixGlobal.GetUsuarioId();
            var oficinaId     = VendixGlobal.GetOficinaId();

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        var bovedaId    = db.Boveda.First(x => x.OficinaId == oficinaId && x.IndCierre == false).BovedaId;
                        var oCajaDiario = db.CajaDiario.First(x => x.CajaId == pCajaId && x.IndCierre == false);
                        var personaId   = db.Usuario.First(x => x.UsuarioId == pUsuarioRegId).PersonaId;

                        db.BovedaMov.Add(new BovedaMov
                        {
                            BovedaId     = bovedaId,
                            CodOperacion = "TRS",
                            Glosa        = "TRANS A CAJA: " + pDescripcion.ToUpper(),
                            Importe      = pImporte,
                            IndEntrada   = false,
                            Estado       = true,
                            CajaDiarioId = oCajaDiario.CajaDiarioId,
                            UsuarioRegId = pUsuarioRegId,
                            FechaReg     = VendixGlobal.GetFecha()
                        });

                        db.MovimientoCaja.Add(new MovimientoCaja
                        {
                            CajaDiarioId    = oCajaDiario.CajaDiarioId,
                            Operacion       = "TRE",
                            ImportePago     = pImporte,
                            ImporteRecibido = pImporte,
                            MontoVuelto     = 0,
                            Descripcion     = "TRANS DE BOVEDA: " + pDescripcion.ToUpper(),
                            IndEntrada      = true,
                            Estado          = true,
                            PersonaId       = personaId,
                            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(bovedaId);

                        db.SaveChanges();
                    }
                    scope.Complete();
                    return(true);
                }
                catch (Exception)
                {
                    scope.Dispose();
                    return(false);
                }
            }
        }