Example #1
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 #2
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 #3
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 #4
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 #5
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 #6
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);
                }
            }
        }