Esempio n. 1
0
 public void CreateFromRow(Row Table)
 {
     ID            = Convert.ToInt32(Table.Values[0]);
     PaymentMethod = (PaymentMethod_Enum)Convert.ToInt32(Convert.ToDecimal(Table.Values[1]));
     Amount        = Convert.ToDecimal(Table.Values[2]);
     ReceiptID     = Convert.ToInt32(Table.Values[3]);
 }
Esempio n. 2
0
        public void TestStatisticsTempProduct(decimal price, int Amount, PaymentMethod_Enum PaymentMethod, decimal PaidAmount)
        {
            DateTime Start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
            DateTime Stop  = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);;

            StatCon.RequestTodayReceipts();
            StatCon.CalculatePayments();
            StatCon.RequestStatistics(false, 0, false, 0, false, "", Start, Stop);
            StatCon.GenerateProductSalesAndTotalRevenue();
            decimal Kontant_old   = Math.Round(StatCon.Payments[0], 2);
            decimal Dankort_old   = Math.Round(StatCon.Payments[1], 2);
            decimal MobilePay_old = Math.Round(StatCon.Payments[2], 2);
            int     TestProdID    = TempProduct.GetNextID();

            SC.CreateTempProduct("Test", price, TestProdID);
            BaseProduct TestProd = SC.TempProductDictionary[TestProdID];

            POS.AddSaleTransaction(TestProd, Amount);
            Payment TestPay = new Payment(Receipt.GetNextID(), PaidAmount, PaymentMethod);

            POS.PlacerholderReceipt.Payments.Add(TestPay);
            POS.ExecuteReceipt(false);
            StatCon.RequestTodayReceipts();
            StatCon.CalculatePayments();
            StatCon.GenerateProductSalesAndTotalRevenue();
            decimal Kontant_new   = Math.Round(StatCon.Payments[0], 2);
            decimal Dankort_new   = Math.Round(StatCon.Payments[1], 2);
            decimal MobilePay_new = Math.Round(StatCon.Payments[2], 2);

            if (PaymentMethod == PaymentMethod_Enum.Cash)
            {
                Assert.IsTrue(Kontant_new == Kontant_old + TestPay.Amount && Dankort_old == Dankort_new && MobilePay_old == MobilePay_new);
            }
            else if (PaymentMethod == PaymentMethod_Enum.Card)
            {
                Assert.IsTrue((Kontant_new + (PaidAmount - (TestProd.SalePrice * Amount))) == Kontant_old && Dankort_new == Dankort_old + TestPay.Amount && MobilePay_old == MobilePay_new);
            }
            else if (PaymentMethod == PaymentMethod_Enum.MobilePay)
            {
                Assert.IsTrue(Kontant_new == Kontant_old && Dankort_old == Dankort_new && MobilePay_new == MobilePay_old + TestPay.Amount);
            }
        }
Esempio n. 3
0
        public string CompletePurchase(PaymentMethod_Enum PaymentMethod, TextBox PayWithAmount, ListView ReceiptListView, out bool CompletedPurchase)
        {
            CompletedPurchase = false;
            if (ReceiptListView.HasItems)
            {
                if (TotalPriceToPay == -1m)
                {
                    TotalPriceToPay = PlacerholderReceipt.TotalPrice;
                }

                decimal PaymentAmount;
                if (PayWithAmount.Text.Length == 0)
                {
                    PaymentAmount = TotalPriceToPay;
                }
                else
                {
                    PaymentAmount = Convert.ToDecimal(PayWithAmount.Text);
                }

                if (ReceiptID == 0)
                {
                    ReceiptID = Receipt.GetNextID();
                }

                Payment NewPayment = new Payment(ReceiptID, PaymentAmount, PaymentMethod);
                PlacerholderReceipt.Payments.Add(NewPayment);

                PayWithAmount.Text = string.Empty;
                TotalPriceToPay   -= NewPayment.Amount;
                if (PlacerholderReceipt.PaidPrice >= PlacerholderReceipt.TotalPrice)
                {
                    CompletedPurchase = true;
                    SaleTransaction.SetStorageController(_storageController);

                    Thread NewThread = new Thread(new ThreadStart(ExecuteReceipt));
                    NewThread.Name = "ExecuteReceipt Thread";
                    NewThread.Start();
                    _storageController.TempProductToDictionary();
                    ReceiptListView.Items.Clear();

                    TotalPriceToPay = -1m;
                    ReceiptID       = 0;
                    if (PlacerholderReceipt.PaidPrice > PlacerholderReceipt.TotalPrice)
                    {
                        return("Retur: " + Math.Round((PlacerholderReceipt.PaidPrice - PlacerholderReceipt.TotalPrice), 2).ToString().Replace('.', ','));
                    }
                    else
                    {
                        return("");
                    }
                }
                if (TotalPriceToPay != -1m)
                {
                    if (TotalPriceToPay == 0)
                    {
                        PlacerholderReceipt.Payments.Clear();
                        PlacerholderReceipt.TotalPrice = 0;
                        CompletedPurchase = true;
                        return(string.Empty);
                    }
                    return(Math.Round(TotalPriceToPay, 2).ToString().Replace('.', ','));
                }
            }
            return(string.Empty);
        }
Esempio n. 4
0
 public Payment(int ReceiptID, decimal Amount, PaymentMethod_Enum PaymentMethod)
 {
     this.ReceiptID     = ReceiptID;
     this.Amount        = Amount;
     this.PaymentMethod = PaymentMethod;
 }