Example #1
0
        public decimal?FindMonedero(int cliente)
        {
            var now  = BusinessLogic.Helpers.Common.GetNow();
            var ctxc = new DataAccess.SirCoCreditoDataContext();
            var ctxa = new DataAccess.SirCoAPPDataContext();

            var cli = ctxc.Clientes.Where(i => i.idcliente == cliente).SingleOrDefault();

            if (cli == null)
            {
                return(null);
            }

            var md = ctxa.Dineros.Where(i => i.idsucursal == cli.idsucursal && i.cliente == cli.cliente).SingleOrDefault();

            if (md == null)
            {
                return(null);
            }

            if (md.vigencia.HasValue && md.vigencia < now)
            {
                return(null);
            }

            return(md.saldo);
        }
Example #2
0
        public ActionResult Empleado(int id, int w = 100, int h = 100)
        {
            var ctx = new DataAccess.SirCoAPPDataContext();
            var img = ctx.EmpleadosImgs.Where(i => i.idempleado == id).SingleOrDefault();

            if (img == null || img.foto == null)
            {
                return(HttpNotFound());
            }

            var ms = new System.IO.MemoryStream();

            ImageResizer.ImageBuilder.Current.Build(img.foto, ms,
                                                    new ImageResizer.ResizeSettings()
            {
                Mode   = ImageResizer.FitMode.None,
                Width  = w,
                Height = h,
                Format = "png"
            });
            ms.Position = 0;

            return(File(ms, "image/png", $"{id}.png"));
        }
Example #3
0
        public ReciboCompraReport GetReciboCompra(string sucursal, string folio)
        {
            var ctxpv = new DataAccess.SirCoPVDataContext();
            var ctxc  = new DataAccess.SirCoControlDataContext();
            var ctxn  = new DataAccess.SirCoNominaDataContext();
            var ctx   = new DataAccess.SirCoDataContext();
            var ctxa  = new DataAccess.SirCoAPPDataContext();

            var venta  = ctxpv.Ventas.Where(i => i.sucursal == sucursal && i.venta == folio).Single();
            var dinero = ctxa.DinerosDetalle.Where(i => i.sucnota == sucursal && i.nota == folio).SingleOrDefault();

            var vendedor = this.GetEmpleado(venta.idvendedor);
            var cajero   = this.GetEmpleado(venta.idcajero);

            var suc = ctxc.Sucursales.Where(i => i.sucursal == venta.sucursal).Single();

            var item = new ReciboCompraReport
            {
                Recibo = new Common.Entities.Reports.ReciboCompra
                {
                    SucursalId     = venta.sucursal,
                    SucursalNombre = suc.descrip,
                    RFC            = "CTO-911211JL9",
                    Direccion      = suc.calle,
                    Colonia        = suc.colonia,
                    Fecha          = venta.fum.Value,
                    VendedorId     = $"{venta.idvendedor}",
                    VendedorNombre = vendedor,
                    CajeroId       = $"{venta.idcajero}",
                    CajeroNombre   = cajero,
                    Folio          = venta.venta,
                    Efectivo       = 3975,
                    Descuento      = 500,
                    Cambio         = DateTime.Parse("2019-07-13"),
                    Dinero         = dinero?.importe
                }
            };

            var plist = new List <Common.Entities.Reports.Producto>();

            foreach (var det in venta.Detalles)
            {
                var serie = ctx.Series.Where(i => i.serie == det.serie).Single();

                plist.Add(
                    new Common.Entities.Reports.Producto {
                    Serie       = det.serie,
                    Precio      = det.precio.Value,
                    Importe     = det.precdesc.Value,
                    Marca       = det.marca,
                    Descripcion = serie.Articulo.Descripcion
                });
            }
            item.Productos = plist;

            var pdlist = new List <Common.Entities.Reports.Pago>();
            //if(!ctxpv.Entry(venta).Reference(i => i.Pago).IsLoaded)
            //    ctxpv.Entry(venta).Reference(i => i.Pago).Load();
            //if (!ctxpv.Entry(venta.Pago).Collection(i => i.Detalle).IsLoaded)
            //    ctxpv.Entry(venta.Pago).Collection(i => i.Detalle).Load();

            var pagos = venta.Pago.Detalle;

            foreach (var det in pagos)
            {
                var pa = new Pago
                {
                    FormaPago  = ((Common.Constants.FormaPago)det.idformapago).ToString(),
                    Importe    = det.importe.Value,
                    Referencia = null,
                    Folio      = null
                };
                pdlist.Add(pa);
            }
            item.Pagos = pdlist;

            var pplist = new List <Common.Entities.Reports.PlanPago>();
            var ctxcr  = new DataAccess.SirCoCreditoDataContext();
            //==============================================================================================
            var ppagos = ctxcr.PlanPagosDetalle.Where(i => i.sucursal == "447279");

            foreach (var det in ppagos)
            {
                pplist.Add(new PlanPago
                {
                    Pago    = (int)det.pago,
                    Date    = det.fechaaplicar,
                    Importe = det.importe
                });
            }
            item.PlanPagos = pplist;

            return(item);
        }
Example #4
0
        public void CancelFormaPago_VD()
        {
            var sucursal = "01";

            using (ShimsContext.Create())
            {
                System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-09-01")); };

                var data = new List <DataAccess.SirCoControl.Sucursal> {
                    new DataAccess.SirCoControl.Sucursal {
                        idsucursal = 1, sucursal = "01", cajas = 434045
                    }
                }.AsQueryable();

                var mockSet = new Mock <DbSet <DataAccess.SirCoControl.Sucursal> >();
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.Provider).Returns(data.Provider);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.Expression).Returns(data.Expression);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.ElementType).Returns(data.ElementType);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

                DataAccess.Fakes.ShimSirCoControlDataContext.AllInstances.SucursalesGet = (sctx) => {
                    return(mockSet.Object);
                };

                var pserie = "0000003668367";
                var nvale  = "123";
                var prod   = _sale.ScanProducto(pserie, sucursal);
                Assert.IsNotNull(prod);
                //var vale = _context.CheckVale(nvale);

                var ctx = new DataAccess.SirCoDataContext();
                ctx.UpdateSerieStatus("0000003668367", Status.CA, Status.AC, 0);

                var ncliente = new Common.Entities.Cliente
                {
                    Id = 810374
                };

                //var cid = _process.AddCliente(ncliente);
                //Assert.IsNotNull(cid);

                var model = new Common.Entities.SaleRequest()
                {
                    Sucursal   = sucursal,
                    VendedorId = 0,
                    Cliente    = ncliente
                };
                model.Productos = new Common.Entities.SerieFormasPago[] {
                    new Common.Entities.SerieFormasPago {
                        Serie = pserie, FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.VA }
                    }
                };
                model.Pagos = new List <Common.Entities.Pago> {
                    new Common.Entities.Pago {
                        FormaPago    = FormaPago.VD,
                        Importe      = prod.Producto.Precio.Value,
                        Vale         = nvale,
                        Plazos       = 13,
                        FechaAplicar = DateTime.Parse("2019-11-05")
                                       //ClienteId = cid,
                    }
                };

                var ctxa = new DataAccess.SirCoAPPDataContext();
                var vd   = ctxa.ValesDigital.Where(i => i.idvaledigital == 2).Single();
                Assert.AreEqual(2000, vd.disponible);

                var ctxc = new DataAccess.SirCoCreditoDataContext();
                var dis  = ctxc.Distribuidores.Where(i => i.distrib == "003763").Single();
                Assert.AreEqual(24057.39m, dis.saldo);
                Assert.AreEqual(73442.61m, dis.disponible);

                var folio = _context.Sale(model, 0);

                Assert.AreEqual("434046", folio.Folio);

                ctxa.Entry(vd).Reload();
                Assert.AreEqual(2000 - prod.Producto.Precio.Value, vd.disponible);
                ctxc.Entry(dis).Reload();
                Assert.AreEqual(24057.39m + prod.Producto.Precio.Value, dis.saldo);
                Assert.AreEqual(73442.61m - prod.Producto.Precio.Value, dis.disponible);

                var crequest = new Common.Entities.CancelSaleRequest
                {
                    Sucursal = sucursal,
                    Folio    = "434046"
                };
                _context.CancelSale(crequest, 0);

                ctxa.Entry(vd).Reload();
                Assert.AreEqual(2000, vd.disponible);
                ctxc.Entry(dis).Reload();
                Assert.AreEqual(24057.39m, dis.saldo);
                Assert.AreEqual(73442.61m, dis.disponible);
            }
        }
Example #5
0
        public void CancelFormaPago_MD()
        {
            var sucursal = "01";

            using (ShimsContext.Create())
            {
                System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-09-01")); };

                var data = new List <DataAccess.SirCoControl.Sucursal> {
                    new DataAccess.SirCoControl.Sucursal {
                        idsucursal = 1, sucursal = "01", cajas = 434045
                    }
                }.AsQueryable();

                var mockSet = new Mock <DbSet <DataAccess.SirCoControl.Sucursal> >();
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.Provider).Returns(data.Provider);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.Expression).Returns(data.Expression);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.ElementType).Returns(data.ElementType);
                mockSet.As <IQueryable <DataAccess.SirCoControl.Sucursal> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

                DataAccess.Fakes.ShimSirCoControlDataContext.AllInstances.SucursalesGet = (sctx) => {
                    return(mockSet.Object);
                };

                var pserie = "0000003668367";
                var prod   = _sale.ScanProducto(pserie, sucursal);
                Assert.IsNotNull(prod);
                //var vale = _context.CheckVale(nvale);

                var ctx = new DataAccess.SirCoDataContext();
                ctx.UpdateSerieStatus("0000003668367", Status.CA, Status.AC, 0);

                var ncliente = new Common.Entities.Cliente
                {
                    Id = 810374
                };

                //var cid = _process.AddCliente(ncliente);
                //Assert.IsNotNull(cid);

                var model = new Common.Entities.SaleRequest()
                {
                    Sucursal   = sucursal,
                    VendedorId = 0,
                    Cliente    = ncliente
                };
                model.Productos = new Common.Entities.SerieFormasPago[] {
                    new Common.Entities.SerieFormasPago {
                        Serie = pserie, FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.VA }
                    }
                };
                model.Pagos = new List <Common.Entities.Pago> {
                    new Common.Entities.Pago {
                        FormaPago = FormaPago.MD,
                        Importe   = 149
                    }
                };

                var folio = _context.Sale(model, 0);

                Assert.AreEqual("434046", folio.Folio);

                var ctxa   = new DataAccess.SirCoAPPDataContext();
                var dinero = ctxa.Dineros.Where(i => i.idsucursal == 1 && i.cliente == "144666").Single();
                var det    = dinero.Detalles.OrderByDescending(i => i.vigencia).ToArray();

                Assert.AreEqual(151, dinero.saldo);
                Assert.AreEqual(0, det[0].saldo);
                Assert.AreEqual(51, det[1].saldo);
                Assert.AreEqual(100, det[2].saldo);

                var request = new Common.Entities.CancelSaleRequest
                {
                    Sucursal = sucursal,
                    Folio    = "434046"
                };
                _context.CancelSale(request, 0);

                var ctxa2 = new DataAccess.SirCoAPPDataContext();
                dinero = ctxa2.Dineros.Where(i => i.idsucursal == 1 && i.cliente == "144666").Single();
                det    = dinero.Detalles.OrderByDescending(i => i.vigencia).ToArray();

                Assert.AreEqual(300, dinero.saldo);
                Assert.AreEqual(100, det[0].saldo);
                Assert.AreEqual(100, det[1].saldo);
                Assert.AreEqual(100, det[2].saldo);
            }
        }