Example #1
0
        public static string CrearCredito(int pSolicitudCreditoId, int pProductoId, string pTipoCuota,
                                          decimal pMontoInicial, decimal pMontoGastosAdm, string pIndGastosAdm, decimal pMontoCredito,
                                          string pModalidad, int pNumerocuotas, decimal pInteresMensual, DateTime pFechaPrimerPago, string pObservacion)
        {
            string retorno;

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        retorno =
                            db.usp_Credito_Ins(pSolicitudCreditoId, pProductoId, pTipoCuota, pMontoInicial, pMontoCredito,
                                               pMontoGastosAdm, pIndGastosAdm, pModalidad, pNumerocuotas, pInteresMensual,
                                               pFechaPrimerPago, pObservacion, VendixGlobal.GetUsuarioId()).ToList()[0];
                    }
                    scope.Complete();
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    retorno = ex.InnerException.Message;
                }
            }
            return(retorno);
        }
Example #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);
        }
Example #3
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 #4
0
        public static int CerrarCajaDiario()
        {
            var oCajadiario = Obtener(VendixGlobal.GetCajaDiarioId());

            oCajadiario.IndCierre         = true;
            oCajadiario.FechaFinOperacion = DateTime.Now;

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

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

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

                    scope.Complete();
                    return(oCajadiario.CajaDiarioId);
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    return(0);
                }
            }
        }
Example #5
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 #6
0
        public static List <CxcJgrid> LstCuentasxCobrarJGrid(GridDataRequest request, ref int pTotalItems)
        {
            var personaid = int.Parse(request.DataFilters()["PersonaId"]);
            var usuarioid = VendixGlobal.GetUsuarioId();
            IQueryable <CuentaxCobrar> qrycxc;

            using (var db = new VENDIXEntities())
            {
                if (personaid == 0)
                {
                    qrycxc = db.CuentaxCobrar.Where(x => x.Credito.UsuarioRegId == usuarioid && x.Estado == "PEN");
                }
                else
                {
                    qrycxc = db.CuentaxCobrar.Where(x => x.Credito.PersonaId == personaid && x.Credito.UsuarioRegId == usuarioid && x.Estado == "PEN");
                }


                IQueryable <CxcJgrid> query = qrycxc
                                              .Select(x => new CxcJgrid
                {
                    OrdenVentaId    = x.Credito.OrdenVentaId == null ? 0 : x.Credito.OrdenVentaId.Value,
                    CuentaxCobrarId = x.CuentaxCobrarId,
                    Codigo          = x.Credito.Persona.Codigo,
                    Cliente         = x.Credito.Persona.NombreCompleto,
                    Operacion       = x.Operacion,
                    Origen          = " CREDITO: " + SqlFunctions.StringConvert((decimal)x.CreditoId).Trim(),// + x.Credito.OrdenVentaId == null ? "" : ("ORDEN: " + SqlFunctions.StringConvert((decimal)x.Credito.OrdenVentaId).Trim()),
                    Monto           = x.Monto,
                    Estado          = x.Estado,
                    FechaReg        = x.Credito.FechaAprobacion.Value
                })
                                              .Union(db.OrdenVenta.Where(x => x.PersonaId == personaid && x.TipoVenta == "CON" && x.Estado == "ENV")
                                                     .Select(x => new CxcJgrid
                {
                    OrdenVentaId    = x.OrdenVentaId,
                    CuentaxCobrarId = 0,
                    Codigo          = x.Persona.Codigo,
                    Cliente         = x.Persona.NombreCompleto,
                    Operacion       = "CON",
                    Origen          = "ORDEN: " + SqlFunctions.StringConvert((decimal)x.OrdenVentaId).Trim(),
                    Monto           = x.TotalNeto,
                    Estado          = "PEN",
                    FechaReg        = x.FechaReg
                }));

                pTotalItems = query.Count();
                var lista = query.OrderBy(request.sidx + " " + request.sord)
                            .Skip((request.page - 1) * request.rows).Take(request.rows).ToList();

                for (var i = 0; i < lista.Count(); i++)
                {
                    lista[i].Id = i;
                }

                return(lista);
            }
        }
Example #7
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;
            //    }
            //}
        }
Example #8
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 #9
0
        public static List <Clientejgrid> LstClienteJGrid(GridDataRequest request, ref int pTotalItems)
        {
            string filterExpression = string.Empty;
            var    userid           = VendixGlobal.GetUsuarioId();

            if (request.DataFilters()["Buscar"] != string.Empty)
            {
                filterExpression =
                    "Cliente.Contains( \"" + request.DataFilters()["Buscar"] + "\") || Documento.Contains( \"" + request.DataFilters()["Buscar"] + "\")";
            }
            IQueryable <Clientejgrid> query;

            using (var db = new VENDIXEntities())
            {
                if (request.DataFilters()["Buscar"] != string.Empty)
                {
                    query = db.Cliente.Select(x => new Clientejgrid
                    {
                        PersonaId = x.PersonaId,
                        Codigo    = x.Persona.Codigo,
                        Cliente   = x.Persona.NombreCompleto,
                        Documento = x.Persona.TipoDocumento + " " + x.Persona.NumeroDocumento,
                        Celular   = x.Persona.Celular1,
                        Direccion = x.Persona.Direccion,
                        Email     = x.Persona.Direccion
                    });
                }
                else
                {
                    query = db.Credito.Where(x => x.UsuarioRegId == userid).Select(x => new Clientejgrid
                    {
                        PersonaId = x.PersonaId,
                        Codigo    = x.Persona.Codigo,
                        Cliente   = x.Persona.NombreCompleto,
                        Documento = x.Persona.TipoDocumento + " " + x.Persona.NumeroDocumento,
                        Celular   = x.Persona.Celular1,
                        Direccion = x.Persona.Direccion,
                        Email     = x.Persona.EmailPersonal
                    }).Distinct();
                }

                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 #10
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);
                }
            }
        }
Example #11
0
 public static bool ReprogramarCredito(int pCreditoId)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             using (var db = new VENDIXEntities())
             {
                 db.usp_ReprogramarCredito(pCreditoId, VendixGlobal.GetUsuarioId());
             }
             scope.Complete();
             return(true);
         }
         catch (Exception)
         {
             scope.Dispose();
             throw;
         }
     }
 }
Example #12
0
 public static bool AnularMovimientoCaja(int pMovimientoCajaId, string pObservacion)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             using (var db = new VENDIXEntities())
             {
                 db.usp_MovimientoCaja_Del(pMovimientoCajaId, pObservacion, VendixGlobal.GetUsuarioId());
             }
             scope.Complete();
             return(true);
         }
         catch (Exception)
         {
             scope.Dispose();
             throw;
         }
     }
 }
Example #13
0
 public static bool AnularCredito(int pCreditoId, string pObservacion)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             using (var db = new VENDIXEntities())
             {
                 db.usp_Credito_Del(pCreditoId, pObservacion, VendixGlobal.GetUsuarioId());
             }
             scope.Complete();
             return true;
         }
         catch (Exception)
         {
             scope.Dispose();
             throw;
         }
     }
 }
Example #14
0
 public static string AgregarOrdenVentaDetalle(int pOrdenVentaId, string pNumeroSerie)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             string rpta;
             using (var db = new VENDIXEntities())
             {
                 rpta = db.usp_OrdenVentaDet_Ins(pOrdenVentaId, pNumeroSerie, VendixGlobal.GetUsuarioId()).ToList()[0];
             }
             scope.Complete();
             return(rpta);
         }
         catch (Exception ex)
         {
             scope.Dispose();
             return(ex.Message);
         }
     }
 }
Example #15
0
 public static int?RealizarPagarCuentaxCobrar(int pOrdenVentaId, int pCuentaxCobrarId)
 {
     using (var scope = new TransactionScope())
     {
         try
         {
             int?retid;
             using (var db = new VENDIXEntities())
             {
                 retid = db.usp_PagarCuentaxCobrar(pOrdenVentaId, pCuentaxCobrarId, VendixGlobal.GetCajaDiarioId(),
                                                   VendixGlobal.GetUsuarioId()).ToList()[0];
             }
             scope.Complete();
             return(retid);
         }
         catch (Exception)
         {
             scope.Dispose();
             return(-1);
         }
     }
 }
Example #16
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);
         }
     }
 }
Example #17
0
        public static string EntradaSalida(int pPersonaId, int pTipoOperacionId, string pDescripcion, decimal pImporte)
        {
            if (string.IsNullOrEmpty(pDescripcion))
            {
                return("Ingrese DescripciĆ³n");
            }

            var cajadiarioid  = VendixGlobal.GetCajaDiarioId();
            var tipooperacion = TipoOperacionBL.Obtener(pTipoOperacionId);

            if (!tipooperacion.IndEntrada)
            {
                if (pImporte > Obtener(cajadiarioid).SaldoFinal)
                {
                    return("Saldo Insuficiente!");
                }
            }

            using (var scope = new TransactionScope())
            {
                try
                {
                    using (var db = new VENDIXEntities())
                    {
                        db.usp_EntradaSalidaCajaDiario(cajadiarioid, pPersonaId, pTipoOperacionId, pImporte,
                                                       pDescripcion, VendixGlobal.GetUsuarioId());
                    }
                    scope.Complete();
                    return(string.Empty);
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    return(ex.Message);
                }
            }
        }
Example #18
0
        public static List <Credito> LstDesembolsoJGrid(GridDataRequest request, ref int pTotalItems)
        {
            var personaid = int.Parse(request.DataFilters()["PersonaId"]);
            var usuarioid = VendixGlobal.GetUsuarioId();
            IQueryable <Credito> query;

            using (var db = new VENDIXEntities())
            {
                if (personaid == 0)
                {
                    query = db.Credito.Include("Persona").Where(x => x.UsuarioRegId == usuarioid && x.Estado == "APR");
                }
                else
                {
                    query = db.Credito.Include("Persona").Where(x => x.PersonaId == personaid && x.Estado == "APR");
                }

                pTotalItems = query.Count();
                var lista = query.OrderBy(request.sidx + " " + request.sord)
                            .Skip((request.page - 1) * request.rows).Take(request.rows).ToList();

                return(lista);
            }
        }
Example #19
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);
                }
            }
        }
Example #20
0
        public static List <CreditoPendienteJGrid> LstCreditoPendienteJGrid(GridDataRequest request, ref int pTotalItems)
        {
            var usuarioid = VendixGlobal.GetUsuarioId();
            IQueryable <CreditoPendienteJGrid> query;

            using (var db = new VENDIXEntities())
            {
                query = db.Credito.Where(x => x.UsuarioRegId == usuarioid && x.Estado == "DES").
                        Select(x => new CreditoPendienteJGrid
                {
                    CreditoId    = x.CreditoId,
                    Codigo       = x.Persona.Codigo,
                    Cliente      = x.Persona.NombreCompleto,
                    MontoCredito = x.MontoCredito,
                    PersonaId    = x.PersonaId
                });

                pTotalItems = query.Count();
                var lista = query.OrderBy(request.sidx + " " + request.sord)
                            .Skip((request.page - 1) * request.rows).Take(request.rows).ToList();

                return(lista);
            }
        }
Example #21
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);
                }
            }
        }
Example #22
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 #23
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 #24
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);
                }
            }
        }