public IEnumerable <IResult> AddFromCatalog() { if (!User.IsStockEnabled || !CanAddFromCatalog) { yield break; } var dlg = new AddWaybillLineFromCatalog(); yield return(new DialogResult(dlg)); if (dlg.WasCancelled) { yield break; } var line = new WaybillLine(Waybill) { CatalogId = dlg.CurrentCatalog.Value.Id, ProductId = Session.Query <Product>().FirstOrDefault(r => r.CatalogId == dlg.CurrentCatalog.Value.Id)?.Id, Product = dlg.CurrentCatalog.Value.FullName, ProducerId = dlg.CurrentProducer.Value.Id, Producer = dlg.CurrentProducer.Value.Name, SupplierCost = dlg.SupplierCost.Value, Quantity = dlg.Quantity.Value }; CurrentLine.Value = Lines.Value.AddNewItem(line); CurrentWaybillLine = CurrentLine.OfType <WaybillLine>().ToValue(); }
public IEnumerable <IResult> BarcodeScanned(string barcode) { if (!User.IsStockEnabled || !CanAddFromCatalog) { yield break; } BarcodeProducts BarcodeProduct = Session.Query <BarcodeProducts>() .Where(x => x.Barcode == barcode).FirstOrDefault(); if (BarcodeProduct != null) { var dlg = new AddWaybillLineFromCatalog(BarcodeProduct); yield return(new DialogResult(dlg)); if (dlg.WasCancelled) { yield break; } var line = new WaybillLine(Waybill) { CatalogId = dlg.CurrentCatalog.Value.Id, ProductId = Session.Query <Product>().FirstOrDefault(r => r.CatalogId == dlg.CurrentCatalog.Value.Id)?.Id, Product = dlg.CurrentCatalog.Value.FullName, ProducerId = dlg.CurrentProducer.Value.Id, Producer = dlg.CurrentProducer.Value.Name, SupplierCost = dlg.SupplierCost.Value, Quantity = dlg.Quantity.Value }; CurrentLine.Value = Lines.Value.AddNewItem(line); CurrentWaybillLine = CurrentLine.OfType <WaybillLine>().ToValue(); } else { Manager.Notify("Товар по штрихкоду не найден"); } }