public CreateReassessmentDoc(ReassessmentDoc doc) { InitFields(); Doc = doc; DisplayName = "Создание документа переоценки"; WasCancelled = true; }
public EditReassessmentDoc(ReassessmentDoc doc) : this() { DisplayName = "Новая переоценка"; InitDoc(doc); Lines.AddRange(doc.Lines); }
public IEnumerable <IResult> Create() { if (Address == null) { yield break; } var doc = new ReassessmentDoc(Address, User); yield return(new DialogResult(new CreateReassessmentDoc(doc))); Session.Save(doc); Update(); Shell.Navigate(new EditReassessmentDoc(doc.Id)); }
private void InitDoc(ReassessmentDoc doc) { Doc = doc; var docStatus = Doc.ObservableForProperty(x => x.Status, skipInitial: false); var editOrDelete = docStatus .CombineLatest(CurrentLine, (x, y) => y != null && x.Value == DocStatus.NotPosted); editOrDelete.Subscribe(CanEditLine); editOrDelete.Subscribe(CanDelete); var opened = docStatus.Select(x => x.Value == DocStatus.NotPosted); opened.Subscribe(CanAdd); opened.Subscribe(CanPost); opened.Subscribe(CanReasssessment); }
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); }