Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 3
0
 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);
        }