public decimal?VentasEfectivo(string sucursal, byte num) { var ctxpos = new DataAccess.SirCoPOSDataContext(); var ctxpv = new DataAccess.SirCoPVDataContext(); var fondo = ctxpos.Fondos.Where(i => i.CajaSucursal == sucursal && i.Tipo == Common.Constants.TipoFondo.Cajon && i.CajaNumero == num && !i.FechaCierre.HasValue).SingleOrDefault(); if (fondo == null) { return(null); } var fecha = fondo.FechaApertura; var last = fondo.Arqueos.OrderByDescending(i => i.Fecha).FirstOrDefault(); if (last != null) { fecha = last.Fecha; } var q = from h in ctxpv.Pagos where h.sucursal == fondo.CajaSucursal && h.idcajero == fondo.ResponsableId && h.estatus == "AP" && h.fum > fecha from d in h.Detalle where d.idformapago == (int)Common.Constants.FormaPago.EF select d.importe; var sum = q.Sum(); return(sum); }
public Common.Entities.VentaView FindVentaView(string sucursal, string folio, int idcajero) { var ctx = new DataAccess.SirCoPVDataContext(); DataAccess.SirCoPV.Venta item; if (folio != null) { item = ctx.Ventas.Where(i => i.sucursal == sucursal && i.venta == folio).SingleOrDefault(); } else { item = ctx.Ventas.Where(i => i.sucursal == sucursal && i.idcajero == idcajero) .OrderByDescending(i => i.fum).First(); } if (item == null) { return(null); } var res = new Common.Entities.VentaView { Sucursal = item.sucursal, Folio = item.venta, Productos = item.Detalles.Select(i => new ProductoView { Serie = i.serie, Precio = i.precio }) }; return(res); }
// GET: Admin/Fondos public ActionResult Index() { var admin = new BusinessLogic.Admin(); var ctx = new DataAccess.SirCoPOSDataContext(); var ctxpv = new DataAccess.SirCoPVDataContext(); var items = ctx.Cajas .OrderByDescending(i => i.Disponible) .ThenBy(i => i.Numero) .Select(i => new Models.Caja { Item = i }).ToArray(); foreach (var item in items) { var fondo = ctx.Fondos.Where(i => i.CajaSucursal == item.Item.Sucursal && i.CajaNumero == item.Item.Numero && !i.FechaCierre.HasValue).SingleOrDefault(); item.Fondo = fondo?.Id; item.Responsable = fondo?.ResponsableId; } //foreach (var item in items.Where(i => i.Item.Tipo == Common.Constants.TipoFondo.Cajon)) //{ // item.Ventas = admin.VentasEfectivo(item.Item.Sucursal, item.Item.Numero); //} return(View(items)); }
// GET: Admin/Ventas public ActionResult Index(int?fondo) { var ctx = new DataAccess.SirCoPVDataContext(); if (fondo.HasValue) { var ctxpos = new DataAccess.SirCoPOSDataContext(); var f = ctxpos.Fondos.Where(i => i.Id == fondo).SingleOrDefault(); if (f == null) { return(HttpNotFound()); } var q = ctx.Ventas.Where(i => i.fum > f.FechaApertura && i.idcajero == f.ResponsableId && i.sucursal == f.CajaSucursal); if (f.FechaCierre.HasValue) { q = q.Where(i => i.fum < f.FechaCierre); } var res = q.OrderByDescending(i => i.fum); return(View(q)); } else { var date = DateTime.Today.AddDays(-15); var q = ctx.Ventas.Where(i => i.fecha > date).OrderByDescending(i => i.fum).Take(50); return(View(q)); } }
// GET: Admin/Devoluciones public ActionResult Index() { var date = DateTime.Today.AddDays(-15); var ctx = new DataAccess.SirCoPVDataContext(); var q = ctx.Devoluciones.Where(i => i.fecha > date).OrderByDescending(i => i.fum).Take(50); return(View(q)); }
public ScanResponse prueba(DataAccess.SirCoPV.Venta pru) { var ctxpv = new DataAccess.SirCoPVDataContext(); ctxpv.Ventas.Add(pru); ctxpv.SaveChanges(); return(null); }
public Common.Entities.Cupon FindCupon(string folio) { var ctxpv = new DataAccess.SirCoPVDataContext(); var cupon = ctxpv.CuponesDetalle.Where(i => i.folio == folio && i.estatus == "ACTIVO").SingleOrDefault(); if (cupon == null) { return(null); } var res = new Common.Entities.Cupon { Folio = cupon.folio, Nombre = cupon.Cupon.nombre, Descripcion = cupon.Cupon.descripcion, Restricciones = cupon.Cupon.restricciones, }; var now = DateTime.Now; if (now > cupon.Cupon.fecfin) { res.Status = CuponStatus.Expirado; } else if (now < cupon.Cupon.fecini) { res.Status = CuponStatus.Inactivo; } else { res.Status = CuponStatus.Activo; } if (res.Status != CuponStatus.Activo) { return(res); } var q = cupon.Cupon.PromocionCupon.Select(i => new Common.Entities.PromocionCupon { CuponId = i.idcupon, PromocionId = i.idpromocion, Cupon = cupon.folio, Nombre = i.Promocion.nombre, //i.Cupon.nombre, Descripcion = i.Cupon.descripcion, Restricciones = i.Cupon.restricciones, Cliente = cupon.idcliente, HasCliente = i.Promocion.clienterequerido ?? false }); res.Promociones = q; return(res); }
public IEnumerable <Common.Entities.RazonNotaDevolucion> GetRazonesNotas() { var ctx = new DataAccess.SirCoPVDataContext(); var items = ctx.NotaRazones.OrderBy(i => i.descripcion) .Select(i => new Common.Entities.RazonNotaDevolucion { Id = i.idnotarazon, Descripcion = i.descripcion, Comentarios = i.comentarios }); return(items); }
public IEnumerable <Common.Entities.DescuentoAdicional> GetDescuentoAdicionals() { var ctx = new DataAccess.SirCoPVDataContext(); var items = ctx.DescuentoEspeciales.OrderBy(i => i.razon) .Select(i => new Common.Entities.DescuentoAdicional { Id = i.iddescuentoespecial, Descripcion = i.razon, Descuento = i.descuento / 100m, Devolucion = i.devolucion }); return(items); }
public ReciboDevolucionReport GetReciboDevolucion(string sucursal, string folio) { var ctxpv = new DataAccess.SirCoPVDataContext(); var ctxc = new DataAccess.SirCoControlDataContext(); var ctx = new DataAccess.SirCoDataContext(); var devolucion = ctxpv.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).Single(); var vendedor = this.GetEmpleado(devolucion.idvendedor); var cajero = this.GetEmpleado(devolucion.idcajero); var suc = ctxc.Sucursales.Where(i => i.sucursal == devolucion.sucursal).Single(); var ventaSucursal = devolucion.referencia.Substring(0, 2); var ventaFolio = devolucion.referencia.Substring(2); var item = new ReciboDevolucionReport { Recibo = new ReciboDevolucion { SucursalId = devolucion.sucursal, SucursalNombre = suc.descrip, Fecha = devolucion.fum.Value, VendedorId = $"{devolucion.idvendedor}", VendedorNombre = vendedor, CajeroId = $"{devolucion.idcajero}", CajeroNombre = cajero, Folio = devolucion.devolvta, SucursalVenta = ventaSucursal, FolioVenta = ventaFolio } }; var plist = new List <Producto>(); foreach (var det in devolucion.Detalles) { var serie = ctx.Series.Where(i => i.serie == det.serie).Single(); plist.Add( new Producto { Serie = det.serie, Precio = det.precio.Value, Importe = det.precdesc.Value, Marca = det.marca, Descripcion = serie.Articulo.Descripcion }); } item.Productos = plist; return(item); }
public IEnumerable <Common.Constants.FormaPago> GetFormasPago() { var ctx = new DataAccess.SirCoPVDataContext(); var items = ctx.FormasPago.Where(i => i.pos).Select(i => i.formapago).ToArray(); var list = new List <Common.Constants.FormaPago>(); foreach (var item in items) { Common.Constants.FormaPago fp; if (Enum.TryParse(item, out fp)) { list.Add(fp); } } return(list); }
//public string FindFolio(string sucursal, string serie) //{ // var ctx = new DataAccess.SirCoPVDataContext(); // var item = ctx.VentasDetalle.Where(i => i.sucursal == sucursal && i.serie == serie // && i.Header.estatus == "AP").SingleOrDefault(); // return item?.venta; //} public Common.Entities.Devolucion FindDevolucion(string sucursal, string folio) { var ctx = new DataAccess.SirCoPVDataContext(); var item = ctx.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).SingleOrDefault(); if (item != null) { return(new Devolucion { Sucursal = item.sucursal, Folio = item.devolvta, Disponible = item.disponible ?? 0, ClientId = item.idcliente }); } return(null); }
public IEnumerable <Common.Entities.PromocionCupon> FindCuponesByCliente(int clienteId) { var ctxpv = new DataAccess.SirCoPVDataContext(); var q = ctxpv.CuponesDetalle.Where(i => i.idcliente == clienteId && i.estatus == "ACTIVO"); var res = q.Select(cupon => new Common.Entities.PromocionCupon { CuponId = cupon.idcupon, Cupon = cupon.folio, Nombre = cupon.Cupon.nombre, Descripcion = cupon.Cupon.descripcion, Restricciones = cupon.Cupon.restricciones, Cliente = cupon.idcliente }); return(res); }
public Common.Entities.DevolucionView FindDevolucionView(string sucursal, string folio, int idcajero) { var ctx = new DataAccess.SirCoPVDataContext(); var ctxs = new DataAccess.SirCoDataContext(); SirCoPOS.DataAccess.SirCoPV.Devolucion item; if (folio != null) { item = ctx.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).SingleOrDefault(); } else { item = ctx.Devoluciones.Where(i => i.sucursal == sucursal && i.idcajero == idcajero) .OrderByDescending(i => i.fum).First(); } if (item == null) { return(null); } var res = new Common.Entities.DevolucionView { Sucursal = item.sucursal, Folio = item.devolvta, Productos = item.Detalles.Select(i => new ProductoView { Serie = i.serie, Precio = i.precio, Marca = i.marca, Modelo = i.estilon, Medida = i.medida }).ToArray() }; foreach (var det in res.Productos) { var ser = ctxs.Series.Where(i => i.serie == det.Serie).Single(); det.ArticuloId = ser.ArticuloId; } return(res); }
public ActionResult Promocion(int id, int w = 200, int h = 200) { var ctx = new DataAccess.SirCoPVDataContext(); var img = ctx.Promociones.Where(i => i.idpromocion == id).SingleOrDefault(); if (img == null || img.imagen == null) { return(HttpNotFound()); } var ms = new System.IO.MemoryStream(); ImageResizer.ImageBuilder.Current.Build(img.imagen, ms, new ImageResizer.ResizeSettings() { Mode = ImageResizer.FitMode.None, Width = w, Height = h, Format = "png" }); ms.Position = 0; return(File(ms, "image/png", $"{id}.png")); }
public void CambioMismaCorridaCambioPrecioMayorPromocion() { /* * 1 NULL 0000003678429 AC 539.00 CTA 682 16- A 15 17 324 * 2 NULL 0000003522471 AC 539.00 CTA 682 15 A 15 17 324 * 3 NULL 0000003776476 AC 589.00 CTA 682 19- B 17- 21 324 * 4 NULL 0000003776472 AC 589.00 CTA 682 18- B 17- 21 324 * 5 NULL 0000003678238 AC 649.00 CTA 682 24 C 21- 26 324 * 6 NULL 0000003676610 AC 649.00 CTA 682 25 C 21- 26 324 */ var model = new Common.Entities.SaleRequest() { Sucursal = "01", VendedorId = 132 }; model.Productos = new Common.Entities.SerieFormasPago[] { new Common.Entities.SerieFormasPago { Serie = "0000003678429", FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.EF } } }; model.Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = Common.Constants.FormaPago.EF, Importe = 539 } }; _context.RequestProducto("0000003678429", 0); Common.Entities.SaleResponse folio = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-06")); }; folio = _context.Sale(model, 0); } Assert.AreEqual("434054", folio.Folio); var ctx = new DataAccess.SirCoPVDataContext(); var det = ctx.VentasDetalle.Where(i => i.sucursal == model.Sucursal && i.venta == "434054" && i.serie == "0000003678429").Single(); det.idpromocion = 18; //prueba det.precdesc = 269.5m; //539 / 2 = 50% ctx.SaveChanges(); var sctx = new DataAccess.SirCoDataContext(); var cor = sctx.Corridas.Where(i => i.marca == "CTA" && i.estilon.Trim() == "682" && i.corrida == "A").Single(); cor.precio = 600; sctx.SaveChanges(); var crequest = new Common.Entities.ChangeRequest { Sucursal = "01", Folio = "434054", Items = new Common.Entities.ChangeItem[] { new Common.Entities.ChangeItem { OldItem = "0000003678429", NewItem = "0000003522471" } } }; _context.RequestProducto("0000003522471", 0); Common.Entities.ChangeResponse cres = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); }; cres = _context.Change(crequest, 0, "08"); } Assert.AreEqual("295595", cres.Venta); Assert.AreEqual("023287", cres.Devolucion); var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single(); Assert.AreEqual(0m, dev.disponible); var vdet = ctx.VentasDetalle.Where(i => i.sucursal == "08" && i.venta == "295595" && i.serie == "0000003522471").Single(); Assert.AreEqual(539m, vdet.precio); Assert.AreEqual(269.5m, vdet.precdesc); }
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); }
public void ReturnDifCorridaMismoPrecio() { /* * ('0000003391871', 'venta') * ,('0000003391872', 'misma corrida') * ,('0000003485731', 'dif corrida, mismo precio') * ,('0000003556980', 'dif corrida, precio mayor') */ var ctx = new DataAccess.SirCoPVDataContext(); var sctx = new DataAccess.SirCoDataContext(); var cor = sctx.Corridas.Where(i => i.marca == "KLI" && i.estilon == " 1" && i.corrida == "D").Single(); cor.precio = 339; sctx.SaveChanges(); var model = new Common.Entities.SaleRequest() { Sucursal = "01", VendedorId = 132 }; model.Productos = new Common.Entities.SerieFormasPago[] { new Common.Entities.SerieFormasPago { Serie = "0000003391871", FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.EF } } }; model.Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = Common.Constants.FormaPago.EF, Importe = 339 } }; _context.RequestProducto("0000003391871", 0); Common.Entities.SaleResponse folio = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-06")); }; folio = _context.Sale(model, 0); } Assert.AreEqual("434054", folio.Folio); var crequest = new Common.Entities.ChangeRequest { Sucursal = "01", Folio = "434054", Items = new Common.Entities.ChangeItem[] { new Common.Entities.ChangeItem { OldItem = "0000003391871", NewItem = "0000003485731" } } }; _context.RequestProducto("0000003485731", 0); Common.Entities.ChangeResponse cres = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); }; cres = _context.Change(crequest, 0, "08"); } Assert.AreEqual("295595", cres.Venta); Assert.AreEqual("023287", cres.Devolucion); var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single(); Assert.AreEqual(0, dev.disponible); }
public void ReturnDifCorridaDifPrecioDevolucion() { /* * ('0000003391871', 'venta') * ,('0000003391872', 'misma corrida') * ,('0000003485731', 'dif corrida, mismo precio') * ,('0000003556980', 'dif corrida, precio mayor') */ var sctx = new DataAccess.SirCoDataContext(); sctx.Database.ExecuteSqlCommand("update serie set status = 'AC' where serie = @serie", new System.Data.SqlClient.SqlParameter("@serie", "0000003556980")); var model = new Common.Entities.SaleRequest() { Sucursal = "01", VendedorId = 132 }; model.Productos = new Common.Entities.SerieFormasPago[] { new Common.Entities.SerieFormasPago { Serie = "0000003556980", FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.EF } } }; model.Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = Common.Constants.FormaPago.EF, Importe = 359 } }; _context.RequestProducto("0000003556980", 0); Common.Entities.SaleResponse folio = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-06")); }; folio = _context.Sale(model, 0); } Assert.AreEqual("434054", folio.Folio); var crequest = new Common.Entities.ChangeRequest { Sucursal = "01", Folio = "434054", Items = new Common.Entities.ChangeItem[] { new Common.Entities.ChangeItem { OldItem = "0000003556980", NewItem = "0000003391871" } } }; _context.RequestProducto("0000003391871", 0); Common.Entities.ChangeResponse cres = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); }; cres = _context.Change(crequest, 0, "08"); } Assert.AreEqual("295595", cres.Venta); Assert.AreEqual("023287", cres.Devolucion); var ctx = new DataAccess.SirCoPVDataContext(); var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single(); Assert.AreEqual(30, dev.disponible); }
//====================================================================================================================== public CorteResponse GetCorteCaja(string sucursal, int idcajero) { var ctxpv = new DataAccess.SirCoPVDataContext(); var ctxpos = new DataAccess.SirCoPOSDataContext(); var fondo = ctxpos.Fondos.Where(i => i.ResponsableId == idcajero && i.CajaSucursal == sucursal && !i.FechaCierre.HasValue).SingleOrDefault(); if (fondo == null) { return(null); } //var fecha = fondo.FechaApertura; //var fechaDocs = fecha; //var arqueo = fondo.Arqueos.OrderByDescending(i => i.Fecha).FirstOrDefault(); //if (arqueo != null) // fecha = arqueo.Fecha; //var q = from h in ctxpv.Pagos // where h.sucursal == sucursal // && h.idcajero == idcajero // && h.estatus == "AP" && h.fum > fechaDocs // from d in h.Detalle // //where d.idformapago != (int)Common.Constants.FormaPago.EF // group d by d.idformapago into g // select new { // FormaPago = g.Key, // Count = g.Count(), // Total = g.Sum(i => i.importe) // }; var res = new CorteResponse(); //res.FormaPagoTotales = q.Where(i => i.FormaPago != (int)Common.Constants.FormaPago.EF) // .ToArray().Select(i => new Common.Entities.FormaPagoCorte //{ // FormaPago = (Common.Constants.FormaPago)i.FormaPago, // Count = i.Count, // Total = i.Total //}).ToArray(); //var ef = q.Where(i => i.FormaPago == (int)Common.Constants.FormaPago.EF).SingleOrDefault(); //res.Ventas = ef?.Total ?? 0; //res.Caja = fondo.Disponible; //res.Importe = fondo.Disponible; res.Importe = fondo.Caja.Disponible; res.FormaPagoTotales = fondo.Caja.FormasPago.Where(i => i.Unidades > 0).Select(i => new FormaPagoCorte { FormaPago = (Common.Constants.FormaPago)i.FormaPago, Count = i.Unidades, Total = i.Monto }); //var qq = ctxpos.Cortes.Where(i => i.CajeroId == idcajero && i.Fecha > fondo.FechaApertura); //var formasPago = res.FormaPagoTotales.ToList(); //foreach (var doc in qq) //{ // if(!ctxpos.Entry(doc).Collection(i => i.FormasPago).IsLoaded) // ctxpos.Entry(doc).Collection(i => i.FormasPago).Load(); // foreach (var fp in doc.FormasPago) // { // var item = formasPago.Where(i => (int)i.FormaPago == fp.FormaPago).Single(); // item.Count -= fp.Entregado; // item.Total -= fp.Monto; // if (item.Count == 0) // { // formasPago.Remove(item); // } // } //} //res.FormaPagoTotales = formasPago; var ctx = new DataAccess.SirCoDataContext(); //ESTA ES LA LINEA DONDE APARECE EL ERROR AL GENERAR EL CIERRE var qs = ctx.Series.Where(i => i.status == "AB" && i.sucursal == sucursal); // && i.idusuariocaja == idcajero); var list = new List <Common.Entities.SeriePrecio>(); foreach (var det in qs) { var cor = ctx.GetCorrida(det); list.Add(new SeriePrecio { Serie = det.serie, Importe = cor.precio }); } res.Series = list; return(res); }
public ActionResult Detalle(string sucursal, string folio) { var ctx = new DataAccess.SirCoPVDataContext(); var ctxc = new DataAccess.SirCoCreditoDataContext(); var item = ctx.Ventas.Where(i => i.sucursal == sucursal && i.venta == folio).SingleOrDefault(); if (item == null) { return(HttpNotFound()); } Persona cliente = null; if (item.idcliente.HasValue) { var cli = ctxc.Clientes.Where(i => i.idcliente == item.idcliente).SingleOrDefault(); if (cli == null) { cliente = new Persona { Id = item.idcliente.Value } } ; else { cliente = new Persona { Id = cli.idcliente, Nombre = cli.nombre, ApPaterno = cli.appaterno, ApMaterno = cli.apmaterno }; } } var model = new Models.Venta { Sucursal = item.sucursal, Folio = item.venta, Fecha = item.fum, Estatus = item.estatus, Cajero = this.GetEmpleado(item.idcajero), Vendedor = this.GetEmpleado(item.idvendedor), Cliente = cliente }; var plist = new List <Models.Producto>(); foreach (var i in item.Detalles) { if (i.idrazon.HasValue) { ctx.Entry(i).Reference(k => k.NotaRazon).Load(); } plist.Add(new Models.Producto { Renglon = i.renglon, Marca = i.marca, Modelo = i.estilon, Serie = i.serie, Precio = i.precio, Pago = i.precdesc, Comments = i.descuentoespecialdesc, Notas = i.notas, NotaRazon = i.idrazon.HasValue ? i.NotaRazon.descripcion : null }); } model.Detalle = plist; var ctxi = new DataAccess.SirCoImgDataContext(); foreach (var det in model.Detalle) { var q = ctxi.Imagenes.Where(i => i.Marca == det.Marca && i.Estilon == det.Modelo); det.HasImage = q.Any(); } model.ContraVales = ctxc.ContraVales.Where(i => i.sucursal == item.sucursal && i.referenc == item.venta) .Select(i => new Models.ContraVale { Folio = i.cvale, Disponible = i.saldo, Importe = i.importe }); model.Devoluciones = ctx.Devoluciones.Where(i => i.referencia == item.sucursal + item.venta) .Select(i => new Models.DevolucionVenta { Sucursal = i.sucursal, Folio = i.devolvta, Importe = i.disponible }); model.Pago = new Models.Pago { Fecha = item.Pago.fum, Estatus = item.Pago.estatus }; var pagos = new List <Models.PagoDetalle>(); foreach (var i in item.Pago.Detalle) { var pd = new Models.PagoDetalle { FormaPago = i.idformapago, Importe = i.importe }; if (pd.FormaPago == (int)Common.Constants.FormaPago.DV && i.referencia != null) { pd.Sucursal = i.referencia.Substring(0, 2); pd.Folio = i.referencia.Substring(2); } else if ((pd.FormaPago == (int)Common.Constants.FormaPago.TC || pd.FormaPago == (int)Common.Constants.FormaPago.TD) && i.terminacion != null) { pd.Terminacion = i.terminacion; pd.Transaccion = i.transaccion; } else if (pd.FormaPago == (int)Common.Constants.FormaPago.VA) { pd.Folio = i.vale; var qpp = ctxc.PlanPagos.Where(k => k.sucursal == sucursal && k.nota == folio && k.vale == i.vale); if (qpp.Any()) { ViewBag.hasPlanPagos = true; var list = new List <Models.PlanPago>(); model.PlanPago = list; foreach (var pp in qpp) { //pd.Sucursal = pp.sucursal; //pd.Folio = pp.vale; list.Add(new Models.PlanPago { Vale = pp.vale, Detalle = pp.Detalle.Select(k => new Models.PlanPagoDetalle { Fecha = k.fechaaplicar, Importe = k.importe, Number = k.pago }) }); } } } pagos.Add(pd); } model.Pago.Detalle = pagos; return(View(model)); }
public void CambioPromoDifCorridaPrecioMayor() { /* * 1 NULL 0000003678429 AC 539.00 CTA 682 16- A 15 17 324 * 2 NULL 0000003522471 AC 539.00 CTA 682 15 A 15 17 324 * 3 NULL 0000003776476 AC 589.00 CTA 682 19- B 17- 21 324 * 4 NULL 0000003776472 AC 589.00 CTA 682 18- B 17- 21 324 * 5 NULL 0000003678238 AC 649.00 CTA 682 24 C 21- 26 324 * 6 NULL 0000003676610 AC 649.00 CTA 682 25 C 21- 26 324 */ var compro = "0000003776476"; var pago = 412.3m;//589m; var disponible = 0; var cambio = "0000003678238"; var model = new Common.Entities.SaleRequest() { Sucursal = "01", VendedorId = 132, PromocionesCupones = new Common.Entities.PromocionCuponItem[] { new Common.Entities.PromocionCuponItem { PromocionId = 200 } } }; model.Productos = new Common.Entities.SerieFormasPago[] { new Common.Entities.SerieFormasPago { Serie = compro, FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.EF } } }; model.Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = Common.Constants.FormaPago.EF, Importe = pago } }; _context.RequestProducto(compro, 0); Common.Entities.SaleResponse folio = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.UtcNowGet = () => DateTime.Parse("2019-10-20").ToUniversalTime(); folio = _context.Sale(model, 0); } Assert.AreEqual("434054", folio.Folio); var crequest = new Common.Entities.ChangeRequest { Sucursal = "01", Folio = "434054", Items = new Common.Entities.ChangeItem[] { new Common.Entities.ChangeItem { OldItem = compro, NewItem = cambio } }, Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = FormaPago.EF, Importe = 60 } } }; _context.RequestProducto(cambio, 0); Common.Entities.ChangeResponse cres = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.UtcNowGet = () => DateTime.Parse("2019-10-21").ToUniversalTime(); cres = _context.Change(crequest, 0, "08"); } Assert.AreEqual("295595", cres.Venta); Assert.AreEqual("023287", cres.Devolucion); var ctx = new DataAccess.SirCoPVDataContext(); var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single(); Assert.AreEqual(disponible, dev.disponible); }
public ActionResult Detalle(string sucursal, string folio) { var ctx = new DataAccess.SirCoPVDataContext(); var ctxc = new DataAccess.SirCoCreditoDataContext(); var item = ctx.Devoluciones.Where(i => i.sucursal == sucursal && i.devolvta == folio).SingleOrDefault(); if (item == null) { return(HttpNotFound()); } var model = new Models.Devolucion { Sucursal = item.sucursal, Folio = item.devolvta, Fecha = item.fecha, Estatus = item.estatus, Disponible = item.disponible, Total = item.Detalles.Sum(i => i.precdesc) }; model.VentaSucursal = item.referencia.Substring(0, 2); model.VentaFolio = item.referencia.Substring(2); Persona cliente = null; if (item.idcliente.HasValue) { var cli = ctxc.Clientes.Where(i => i.idcliente == item.idcliente).SingleOrDefault(); if (cli == null) { cliente = new Persona { Id = item.idcliente.Value } } ; else { cliente = new Persona { Id = cli.idcliente, Nombre = cli.nombre, ApPaterno = cli.appaterno, ApMaterno = cli.apmaterno }; } } model.Cliente = cliente; var plist = new List <Models.Producto>(); foreach (var i in item.Detalles) { if (i.idrazon.HasValue) { ctx.Entry(i).Reference(k => k.Razon).Load(); } plist.Add(new Models.Producto { Renglon = i.renglon, Marca = i.marca, Modelo = i.estilon, Serie = i.serie, Precio = i.precio, Pago = i.precdesc, Notas = i.notas, NotaRazon = i.idrazon.HasValue ? i.Razon.descripcion : null }); } model.Detalle = plist; var ctxi = new DataAccess.SirCoImgDataContext(); foreach (var det in model.Detalle) { var q = ctxi.Imagenes.Where(i => i.Marca == det.Marca && i.Estilon == det.Modelo); det.HasImage = q.Any(); } var dev = $"{model.Sucursal}{model.Folio}"; var qpd = ctx.PagosDetalle.Where(i => i.idformapago == (int)Common.Constants.FormaPago.DV && i.referencia == dev); model.Ventas = qpd.Select(i => new Models.DevolucionVenta { Sucursal = i.sucursal, Folio = i.pago, Importe = i.importe }); return(View(model)); }
public void ReturnMismaCorrida2() { /* * 1 NULL 0000003678429 AC 539.00 CTA 682 16- A 15 17 324 * 2 NULL 0000003522471 AC 539.00 CTA 682 15 A 15 17 324 * 3 NULL 0000003776476 AC 589.00 CTA 682 19- B 17- 21 324 * 4 NULL 0000003776472 AC 589.00 CTA 682 18- B 17- 21 324 * 5 NULL 0000003678238 AC 649.00 CTA 682 24 C 21- 26 324 * 6 NULL 0000003676610 AC 649.00 CTA 682 25 C 21- 26 324 */ var model = new Common.Entities.SaleRequest() { Sucursal = "01", VendedorId = 132 }; model.Productos = new Common.Entities.SerieFormasPago[] { new Common.Entities.SerieFormasPago { Serie = "0000003678429", FormasPago = new Common.Constants.FormaPago[] { Common.Constants.FormaPago.EF } } }; model.Pagos = new Common.Entities.Pago[] { new Common.Entities.Pago { FormaPago = Common.Constants.FormaPago.EF, Importe = 539 } }; _context.RequestProducto("0000003678429", 0); Common.Entities.SaleResponse folio = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-06")); }; folio = _context.Sale(model, 0); } Assert.AreEqual("434054", folio.Folio); var crequest = new Common.Entities.ChangeRequest { Sucursal = "01", Folio = "434054", Items = new Common.Entities.ChangeItem[] { new Common.Entities.ChangeItem { OldItem = "0000003678429", NewItem = "0000003522471" } } }; _context.RequestProducto("0000003522471", 0); Common.Entities.ChangeResponse cres = null; using (ShimsContext.Create()) { System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); }; cres = _context.Change(crequest, 0, "08"); } Assert.AreEqual("295595", cres.Venta); Assert.AreEqual("023287", cres.Devolucion); var ctx = new DataAccess.SirCoPVDataContext(); var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single(); Assert.AreEqual(0, dev.disponible); }