public void Save(string uid) { try { if (String.IsNullOrEmpty(uid)) { throw new ArgumentNullException("UID", "User ID is required."); } using (PurchasingContext Context = ContextHelper.GetDBContext()) { Enums.HistoryType ChangeType; ReceiptItem Original = null; ReceiptItemData Data; if (ReceiptItemID <= 0) { Data = new ReceiptItemData(); ChangeType = Enums.HistoryType.ADD; Data.date_created = DateTime.Now; Data.created_by = uid; } else { Data = Context.ReceiptItemDatas.FirstOrDefault(x => x.receipt_item_id == ReceiptItemID); Original = new ReceiptItem(Data); ChangeType = Enums.HistoryType.UPDATE; } Data.receipt_id = ReceiptID; Data.purchase_order_item_id = POItemID; Data.quantity_received = QuantityReceived; Data.date_modified = DateTime.Now; Data.modified_by = uid; Data.active = Active; if (ReceiptItemID <= 0) { Context.ReceiptItemDatas.InsertOnSubmit(Data); } Context.SubmitChanges(); Load(Data); SaveHistory(ChangeType, Original, uid); } } catch (Exception ex) { throw new RequisitionException("An error has occureed while saving receipt item.", ex); } }
private void Load(ReceiptItemData data) { Init(); if (data != null) { ReceiptItemID = data.receipt_item_id; ReceiptID = data.receipt_id; POItemID = data.purchase_order_item_id; QuantityReceived = data.quantity_received; CreatedByUserID = data.created_by; ModifiedByUserID = data.modified_by; DateCreated = data.date_created; DateModified = data.date_modified; Active = data.active; } }
public ReceiptItem(ReceiptItemData data) { Load(data); }
private CashRegisterReceipt CreateReceipt() { // lets create receipt object - the single required parameter is the cash registe code. // all other parameters are optional. CashRegisterReceipt receipt = new CashRegisterReceipt(this.cashRegisterCode) { // Optional text, printed between informations about company and items HeaderText = "Web: www.ninedigit.sk", // Optional text, that is printed at the end of the receipt FooterText = "Ďakujeme za nákup.", }; // lets add some items (products) to the receipt - as receipt must have at least one. // helper object to contains receipt item data. ReceiptItemData itemData = new ReceiptItemData() { Type = ReceiptItemType.Positive, Name = "Banány voľné", UnitPrice = 1.123456m, // unit price can be specified up to 6 decimal places Quantity = new Quantity(0.123m, "kg"), // quantity can be specified up to 3 decimal places Price = 0.14m, // price must be equal to unitPrice * quantity, and can be specified up to 2 decimal places. Mathematical rounding is applied. VatRate = VatRate.Free }; // this data object has its validator, so we can check, whether our application composes receipt item correctly. ValidationResult itemDataValidationResult = itemData.Validate(); if (!itemDataValidationResult.IsValid) { // object is invalid - that means, we did something wrong! // to see more details, inspect the errors collection. IEnumerable <MemberValidationFailure> errors = itemDataValidationResult.Errors; // lets pick first error and throw an exception. MemberValidationFailure firstError = errors.First(); string errorMessage = $"Invalid composition of ticket item. {firstError.MemberName}: {firstError.Message}"; throw new InvalidOperationException(errorMessage); } // after validation succeeds, we can create receipt item ReceiptItem receiptItem = new ReceiptItem(itemData); // add item to receipt. receipt.Items.Add(receiptItem); // we don't need to specify payments. But if we do, their amounts must be equal or greater than total amount of receipt. // prepare empty payments collection receipt.Payments = new ReceiptPayments(); // and add some payments ReceiptPayment payment1 = new ReceiptPayment("Hotovosť", 1m); // "Hotovosť" means "cash" receipt.Payments.Add(payment1); // cash to return can be stated as another payment, with negative amount. ReceiptPayment payment2 = new ReceiptPayment("Hotovosť", -0.86m); receipt.Payments.Add(payment2); return(receipt); }