Exemple #1
0
        public PriceNegotiationProtocol(DisplacementDoc d, IList <DisplacementLine> lines, string fio)
        {
            this.d     = d;
            this.lines = lines;
            this.fio   = fio;
            ((IDocumentPaginatorSource)doc).DocumentPaginator.PageSize = new Size(1069, 756);

            BlockStyle = new Style(typeof(Paragraph))
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty,                                 10d),
                    new Setter(System.Windows.Documents.Block.MarginProperty, new Thickness(0, 3, 0, 3))
                }
            };

            HeaderStyle = new Style(typeof(Run), HeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty, 12d),
                }
            };
            TableHeaderStyle = new Style(typeof(TableCell), TableHeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty, 10d),
                }
            };
        }
Exemple #2
0
 public CreateDisplacementDoc(DisplacementDoc doc)
 {
     InitFields();
     Doc          = doc;
     DisplayName  = "Создание накладной перемещения";
     WasCancelled = true;
 }
Exemple #3
0
        public DisplacementWDocument(DisplacementDoc d, IList <DisplacementLine> lines, WaybillSettings waybillSettings, RequirementWaybillName result)
        {
            requirementWaybillName = result;
            doc.PagePadding        = new Thickness(29);
            ((IDocumentPaginatorSource)doc).DocumentPaginator.PageSize = new Size(1069, 756);

            this.d               = d;
            this.lines           = lines;
            this.waybillSettings = waybillSettings;

            BlockStyle = new Style(typeof(Paragraph))
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty,                                 10d),
                    new Setter(System.Windows.Documents.Block.MarginProperty, new Thickness(0, 3, 0, 3))
                }
            };

            HeaderStyle = new Style(typeof(Run), HeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty,                  14d),
                    new Setter(Control.FontWeightProperty, FontWeights.Normal),
                }
            };
            TableHeaderStyle = new Style(typeof(TableCell), TableHeaderStyle)
            {
                Setters =
                {
                    new Setter(Control.FontSizeProperty, 10d),
                }
            };
        }
        public void Setup()
        {
            shell.CurrentAddress.Value = address;
            restore = true;
            var stock = new Stock()
            {
                Product          = "Папаверин",
                Status           = StockStatus.Available,
                Address          = address,
                Quantity         = 5,
                ReservedQuantity = 0,
                SupplyQuantity   = 5
            };

            session.Save(stock);

            //На складе есть Папаверин в количестве 5шт.
            Assert.AreEqual(stock.Quantity, 5);
            Assert.AreEqual(stock.ReservedQuantity, 0);

            session.DeleteEach <DisplacementDoc>();

            secondAddress = new Address("Тестовый адрес");
            session.Save(secondAddress);

            var dstStock = stock.Copy();

            dstStock.Address  = secondAddress;
            dstStock.Quantity = 0;
            session.Save(dstStock);

            var doc = new DisplacementDoc {
                Date       = DateTime.Now,
                Address    = address,
                DstAddress = secondAddress,
            };
            //Мы создаем документ Внутренее перемещение на 3 упаковки, после того как строка папаверина
            //добавлена и документ сохранен, на складе у нас будет - Папаверин 2шт, 3шт в резерве
            // Резерв – состояние создания документа. Товар, введенный в документ, на складе находится в состоянии Резерв
            var line = new DisplacementLine(stock, dstStock, 3);

            doc.Lines.Add(line);
            session.Save(doc);
            Assert.AreEqual(stock.Quantity, 2);
            Assert.AreEqual(stock.ReservedQuantity, 3);
            Assert.AreEqual(dstStock.Quantity, 0);
            Assert.AreEqual(dstStock.ReservedQuantity, 0);
            Assert.AreEqual(line.Quantity, 3);
            Assert.AreEqual(doc.Status, DisplacementDocStatus.NotPosted);

            model        = Open(new DisplacementDocs());
            modelDetails = Open(new EditDisplacementDoc(doc.Id));
        }
        private void InitDoc(DisplacementDoc doc)
        {
            Doc = doc;
            var docStatus    = Doc.ObservableForProperty(x => x.Status, skipInitial: false);
            var editOrDelete = docStatus
                               .CombineLatest(CurrentLine, (x, y) => y != null && x.Value == DisplacementDocStatus.NotPosted);

            editOrDelete.Subscribe(CanEditLine);
            editOrDelete.Subscribe(CanDelete);
            docStatus.Subscribe(x => CanAdd.Value = x.Value == DisplacementDocStatus.NotPosted);
            docStatus.Select(x => x.Value == DisplacementDocStatus.NotPosted).Subscribe(CanPost);
            docStatus.Select(x => x.Value == DisplacementDocStatus.Posted).Subscribe(CanUnPost);
            docStatus.Select(x => x.Value == DisplacementDocStatus.Posted).Subscribe(CanEndDoc);
        }
        public IEnumerable <IResult> Create()
        {
            if (Address == null)
            {
                yield break;
            }
            var doc = new DisplacementDoc(Address, User);

            yield return(new DialogResult(new CreateDisplacementDoc(doc)));

            Session.Save(doc);
            Update();
            Shell.Navigate(new EditDisplacementDoc(doc.Id));
        }
        public void Exchange()
        {
            localSession.Connection.Execute(@"delete from Stocks; delete from StockActions;");
            session.Connection.Execute(@"delete from inventory.Stocks;");
            session.Connection.Execute(@"delete from inventory.StockActions;");
            session.Connection.Execute(@"delete from  Documents.DocumentHeaders;");
            var stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            var actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();

            stockCount = localSession.Connection.Query <object>("select * from Stocks").ToArray();
            actions    = localSession.Connection.Query <object>("select * from StockActions").ToArray();

            Run(new SyncCommand());

            var fixture = new CreateWaybill();

            Fixture(fixture);

            Run(new UpdateCommand("Waybills"));
            var waybill  = localSession.Load <Waybill>(fixture.Waybill.Log.Id);
            var stockids = waybill.Lines.Where(x => x.StockId != null).Select(x => x.StockId).ToArray();
            var map      = localSession.Query <Stock>().Where(x => stockids.Contains(x.ServerId)).ToDictionary(x => x.ServerId);

            waybill.Lines.Each(y =>
            {
                y.Stock = map.GetValueOrDefault(y.StockId);
            });
            waybill.Stock(localSession);
            // чек +0 сток = 33  +1 стокакшин = 34
            var check = new Check(localSession.Query <User>().First(), address, new[] { new CheckLine(waybill.Lines[0].Stock, 1), }, CheckType.SaleBuyer);

            check.Lines.Each(x => x.Doc = check);
            localSession.Save(check);
            localSession.SaveEach(check.Lines);
            localSession.SaveEach(check.Lines.Select(x => x.UpdateStock(x.Stock, CheckType.SaleBuyer)));

            // распаковка +1 сток = 34  +2 стокакшин = 36
            var unpackingDoc  = new UnpackingDoc(address, localSession.Query <User>().First());
            var unpackingLine = new UnpackingLine(waybill.Lines[1].Stock, 10);

            unpackingDoc.Lines.Add(unpackingLine);
            unpackingDoc.Post();
            unpackingDoc.PostStockActions();
            localSession.Save(unpackingDoc);
            foreach (var line in unpackingDoc.Lines)
            {
                localSession.Save(line);
            }
            unpackingDoc.PostStockActions();
            foreach (var line in unpackingDoc.Lines)
            {
                localSession.Save(line.SrcStockAction);
                localSession.Save(line.DstStockAction);
            }

            // Списание +0 сток = 34  +1 стокакшин = 37
            var writeoffDoc  = new WriteoffDoc(address, localSession.Query <User>().First());
            var writeoffLine = new WriteoffLine(waybill.Lines[2].Stock, 1);

            writeoffDoc.Lines.Add(writeoffLine);
            writeoffDoc.Post(localSession);
            localSession.Save(writeoffDoc);

            //Возврат +0 сток = 34  +1 стокакшин = 38
            var ReturnDoc = new ReturnDoc(address, localSession.Query <User>().First());

            ReturnDoc.Supplier = waybill.Supplier;
            var ReturnLine = new ReturnLine(waybill.Lines[3].Stock, 1);

            ReturnDoc.Lines.Add(ReturnLine);
            ReturnDoc.Post(localSession);
            localSession.Save(ReturnDoc);

            //переоценка +1 сток = 35  +2 стокакшин = 40
            var ReassessmentDoc = new ReassessmentDoc(address, localSession.Query <User>().First());
            var stock           = waybill.Lines[4].Stock.Copy();

            stock.RetailCost += 10;
            var ReassessmentLine = new ReassessmentLine(waybill.Lines[4].Stock, stock);

            ReassessmentDoc.Lines.Add(ReassessmentLine);
            ReassessmentDoc.Post(localSession);
            localSession.Save(ReassessmentDoc);

            //переоценка +0 сток = 35  +1 стокакшин = 41
            var InventoryDoc  = new InventoryDoc(address, localSession.Query <User>().First());
            var InventoryLine = new InventoryLine(InventoryDoc, waybill.Lines[5].Stock, 5, localSession);

            InventoryDoc.Lines.Add(InventoryLine);
            InventoryDoc.Post();
            localSession.Save(InventoryDoc);

            //Перемещение +1 сток = 36  +2 стокакшин = 43
            var DisplacementDoc  = new DisplacementDoc(address, localSession.Query <User>().First());
            var DisplacementLine = new DisplacementLine(waybill.Lines[6].Stock, waybill.Lines[6].Stock.Copy(), 1);

            DisplacementDoc.Lines.Add(DisplacementLine);
            DisplacementDoc.Post(localSession);
            localSession.Save(DisplacementDoc);

            Run(new SyncCommand());
            stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();
            Assert.AreEqual(36, stockCount.Length);
            Assert.AreEqual(43, actions.Length);

            Run(new SyncCommand());
            stockCount = session.Connection.Query <object>("select * from inventory.Stocks").ToArray();
            actions    = session.Connection.Query <object>("select * from inventory.StockActions").ToArray();
            Assert.AreEqual(36, stockCount.Length);
            Assert.AreEqual(43, actions.Length);
        }