Beispiel #1
0
        public void CancelFormaPago_VE()
        {
            var compro = "0000003678429";
            var pago   = 539m;
            var model  = new Common.Entities.SaleRequest()
            {
                Sucursal   = "08",
                VendedorId = 132,
                Cliente    = new Common.Entities.Cliente
                {
                    Id = 810374
                }
            };

            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.VE,
                    Negocio      = 217,
                    NoCuenta     = "813",
                    Importe      = pago,
                    Vale         = "110472",
                    Plazos       = 13,
                    FechaAplicar = DateTime.Parse("2019-11-05")
                }
            };

            _context.RequestProducto(compro, 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("295595", folio.Folio);

            var ctxc = new DataAccess.SirCoCreditoDataContext();
            var dis  = ctxc.Distribuidores.Where(i => i.iddistrib == 4281).Single();

            Assert.AreEqual(14732.70m - pago, dis.disponible);
            Assert.AreEqual(32267.30m + pago, dis.saldo);

            var request = new Common.Entities.CancelSaleRequest
            {
                Sucursal = "08",
                Folio    = "295595"
            };

            _context.CancelSale(request, 0);

            ctxc.Entry(dis).Reload();
            Assert.AreEqual(14732.70m, dis.disponible);
            Assert.AreEqual(32267.30m, dis.saldo);
        }
Beispiel #2
0
        //[ExpectedException(typeof(NotSupportedException))]
        public void CancelSaleTest()
        {
            var request = new Common.Entities.CancelSaleRequest
            {
                Sucursal = "01",
                Folio    = "414628"
            };

            var  now  = DateTime.Parse("2018-06-16");
            Shim shim = Shim.Replace(() => DateTime.UtcNow).With(() => now.ToUniversalTime());

            using (ShimsContext.Create())
            //PoseContext.Isolate(() =>
            {
                System.Fakes.ShimDateTime.UtcNowGet = () => now.ToUniversalTime();
                _context.CancelSale(request, 0);
            }
            //, shim);
        }
Beispiel #3
0
        public void CancelFormaPago_TD()
        {
            var compro = "0000003678429";
            var pago   = 539m;
            var model  = new Common.Entities.SaleRequest()
            {
                Sucursal   = "08",
                VendedorId = 132
            };

            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.TD,
                    Importe     = pago,
                    Terminacion = "123"
                }
            };

            _context.RequestProducto(compro, 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("295595", folio.Folio);

            var request = new Common.Entities.CancelSaleRequest
            {
                Sucursal = "08",
                Folio    = "295595"
            };

            _context.CancelSale(request, 0);
        }
Beispiel #4
0
        public void cancelarCambio(string sucursal, string folio)
        {
            var request = new Common.Entities.CancelSaleRequest
            {
                Sucursal = sucursal,
                Folio    = folio
            };

            _process.CancelSale(request, 0);

            var ctx   = new SirCoPVDataContext();
            var pagos = ctx.PagosDetalle.Where(i => i.sucursal == sucursal && i.pago == folio &&
                                               i.idformapago == (int)Common.Constants.FormaPago.DV);

            foreach (var item in pagos)
            {
                var suc = item.referencia.Substring(0, 2);
                var fol = item.referencia.Substring(2);

                var dev = ctx.Devoluciones.Where(i => i.sucursal == suc && i.devolvta == fol).Single();
                _process.CancelReturn(dev.sucursal, dev.devolvta, 0);
            }
        }
Beispiel #5
0
        public CancelacionDevolucionViewModel()
        {
            if (!this.IsInDesignMode)
            {
                _data   = CommonServiceLocator.ServiceLocator.Current.GetInstance <Common.ServiceContracts.IDataServiceAsync>();
                _proxy  = CommonServiceLocator.ServiceLocator.Current.GetInstance <Common.ServiceContracts.IDataServiceAsync>();
                _client = new Helpers.ServiceClient();
            }
            _common            = new Helpers.CommonHelper();
            this.Productos     = new ObservableCollection <Models.CancelProducto>();
            this.CancelCommand = new GalaSoft.MvvmLight.Command.RelayCommand(async() => {
                this.IsBusy = true;

                var request = new Common.Entities.CancelSaleRequest
                {
                    Sucursal = this.Devolucion.Sucursal,
                    Folio    = this.Devolucion.Folio
                };
                await _client.CancelReturnAsync(request.Sucursal, request.Folio);

                this.Complete();
                MessageBox.Show("ready");
                this.CloseCommand.Execute(null);
                this.IsBusy = false;
            }, () => this.Productos.Any() && !this.Productos.Where(i => !i.Scanned).Any());
            this.SearchCommand = new RelayCommand(() =>
            {
                var ser  = _common.PrepareSerie(this.Search);
                var item = _data.ScanProductoFromDevolucion(ser);
                if (!this.Productos.Any())
                {
                    if (item != null && item.Success)
                    {
                        this.Search = null;
                        var dev     = _data.FindDevolucionView(item.Producto.Sucursal, item.Producto.Folio, this.Cajero.Id);

                        if (this.Sucursal.Clave != dev.Sucursal)
                        {
                            MessageBox.Show($"La devolución pertenece a otra sucursal ({dev.Sucursal})");
                            return;
                        }

                        this.Devolucion = new Models.SucursalFolio
                        {
                            Sucursal = dev.Sucursal,
                            Folio    = dev.Folio
                        };
                        foreach (var ditem in dev.Productos)
                        {
                            var can = new Models.CancelProducto
                            {
                                Producto = new Producto
                                {
                                    Id     = ditem.ArticuloId,
                                    Modelo = ditem.Modelo,
                                    Marca  = ditem.Marca,
                                    Precio = ditem.Precio,
                                    Serie  = ditem.Serie,
                                    Talla  = ditem.Medida
                                }
                            };
                            this.Productos.Add(can);
                            can.PropertyChanged += (s, e) => { this.CancelCommand.RaiseCanExecuteChanged(); };
                            if (can.Producto.Serie == ser)
                            {
                                can.Scanned = true;
                            }
                        }
                    }
                }
                else
                {
                    var pitem = this.Productos.Where(i => i.Producto.Serie == ser).SingleOrDefault();
                    if (pitem != null)
                    {
                        this.Search   = null;
                        pitem.Scanned = true;
                    }
                    else
                    {
                        this.ErrorMessage = Resources.Resource.Cancelacion_NoEncontrado;
                    }
                }
            }, () => !string.IsNullOrEmpty(this.Search));
            if (this.IsInDesignMode)
            {
                this.Search     = "0000003678429";
                this.Devolucion = new Models.SucursalFolio
                {
                    Sucursal = "00",
                    Folio    = "000123"
                };
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 1, Serie = "001", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 100, HasImage = true
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 2, Serie = "002", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 1000, HasImage = true
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = false, Producto = new Producto {
                        Id = 3, Serie = "003", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 1234.25m
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 4, Serie = "004", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 12456
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = false, Producto = new Producto {
                        Id = 5, Serie = "005", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 9.99m
                    }
                });
            }
        }
Beispiel #6
0
        public CancelacionViewModel()
        {
            if (!IsInDesignMode)
            {
                _proxy  = CommonServiceLocator.ServiceLocator.Current.GetInstance <Common.ServiceContracts.IDataServiceAsync>();
                _client = new Helpers.ServiceClient();
            }
            _common = new Helpers.CommonHelper();
            this.PropertyChanged             += CancelacionViewModel_PropertyChanged;
            this.Productos                    = new ObservableCollection <Models.CancelProducto>();
            this.Productos.CollectionChanged += Productos_CollectionChanged;

            this.ScanCommand = new GalaSoft.MvvmLight.Command.RelayCommand(async() => {
                this.IsBusy = true;
                await Scan();
                this.IsBusy = false;
            }, () => !string.IsNullOrWhiteSpace(this.SerieSearch));

            this.CancelCommand = new GalaSoft.MvvmLight.Command.RelayCommand(async() => {
                this.IsBusy = true;

                var request = new Common.Entities.CancelSaleRequest
                {
                    Sucursal = this.Venta.Sucursal,
                    Folio    = this.Venta.Folio
                };
                await _client.CancelSaleAsync(request);

                this.Complete();

                this.IsBusy = false;
            }, () => this.Productos.Any() && !this.Productos.Where(i => !i.Scanned).Any());

            if (this.IsInDesignMode)
            {
                this.ErrorMessage = "error";
                this.Venta        = new Models.SucursalFolio {
                    Sucursal = "01", Folio = "414628"
                };
                this.SerieSearch = "0000003343805";
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 1, Serie = "001", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 100, HasImage = true
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 2, Serie = "002", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 1000, HasImage = true
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = false, Producto = new Producto {
                        Id = 3, Serie = "003", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 1234.25m
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = true, Producto = new Producto {
                        Id = 4, Serie = "004", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 12456
                    }
                });
                this.Productos.Add(new Models.CancelProducto {
                    Scanned = false, Producto = new Producto {
                        Id = 5, Serie = "005", Marca = "a", Modelo = "b", Talla = "c", Precio = 100, Total = 9.99m
                    }
                });
            }
        }
Beispiel #7
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);
            }
        }
Beispiel #8
0
        public void CancelFormaPago_CD()
        {
            var sucursal = "01";

            //var sucursalId = 1;
            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 distrib = "005961";
                var prod    = _sale.ScanProducto(pserie, sucursal);
                Assert.IsNotNull(prod);

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

                var dis = _sale.FindTarjetahabiente(distrib);

                var ncliente = new Common.Entities.Cliente
                {
                    DistribuidorId = 5730
                };

                //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.CD,
                        Importe      = prod.Producto.Precio.Value,
                        Distribuidor = distrib,
                        Plazos       = 3
                    }
                };

                var ctxc = new SirCoPOS.DataAccess.SirCoCreditoDataContext();
                var ds   = ctxc.Distribuidores.Where(i => i.distrib == distrib).Single();
                Assert.AreEqual(11564.00M, ds.disponible);
                Assert.AreEqual(3436.00M, ds.saldo);

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

                Assert.AreEqual("434046", folio.Folio);
                ctxc.Entry(ds).Reload();
                Assert.AreEqual(11564.00M - prod.Producto.Precio.Value, ds.disponible);
                Assert.AreEqual(3436.00M + prod.Producto.Precio.Value, ds.saldo);

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

                ctxc.Entry(ds).Reload();
                Assert.AreEqual(11564.00M, ds.disponible);
                Assert.AreEqual(3436.00M, ds.saldo);
            }
        }
Beispiel #9
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);
            }
        }
Beispiel #10
0
        public void CancelFormaPago_DV_CancelDV()
        {
            /*
             * 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);

            var sctx   = new DataAccess.SirCoDataContext();
            var oserie = sctx.Series.Where(i => i.serie == "0000003678429").Single();

            Assert.AreEqual("CA", oserie.status);

            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);

            sctx.Entry(oserie).Reload();
            Assert.AreEqual("BA", oserie.status);

            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);

            sctx.Entry(oserie).Reload();
            Assert.AreEqual("AC", oserie.status);

            var ctx = new DataAccess.SirCoPVDataContext();
            var dev = ctx.Devoluciones.Where(i => i.sucursal == "08" && i.devolvta == "023287").Single();

            Assert.AreEqual(0, dev.disponible);

            var cancel = new Common.Entities.CancelSaleRequest
            {
                Sucursal = "08",
                Folio    = "295595"
            };

            using (ShimsContext.Create())
            {
                System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); };
                _context.CancelSale(cancel, 0);
            }

            ctx.Entry(dev).Reload();
            Assert.AreEqual(539, dev.disponible);

            using (ShimsContext.Create())
            {
                System.Fakes.ShimDateTime.NowGet = () => { return(DateTime.Parse("2019-03-07")); };
                _context.CancelReturn(dev.sucursal, dev.devolvta, 0);
            }
            ctx.Entry(dev).Reload();
            Assert.AreEqual("ZC", dev.estatus);

            sctx.Entry(oserie).Reload();
            Assert.AreEqual("BA", oserie.status);
        }