Example #1
0
        //public delegate void UpdateCashierReportDelegate(TransactionStatus TransStatus, decimal SubTotal, decimal Discount, decimal Charge, decimal VAT, decimal VATableAmount, decimal ZeroRatedSales, decimal NonVATableAmount, decimal EVAT, decimal LocalTax, decimal CashPayment, decimal ChequePayment, decimal CreditCardPayment, decimal CreditPayment, decimal DebitPayment, PaymentTypes PaymentType);
        public void UpdateCashierReport(TransactionStatus TransStatus, decimal ItemSold, decimal QuantitySold, decimal SubTotal, decimal Discount, decimal ItemsDiscount, decimal SNRItemsDiscount, decimal PWDItemsDiscount, decimal OtherItemsDiscount, decimal Charge, decimal VAT, decimal VATableAmount, decimal ZeroRatedSales, decimal NonVATableAmount, decimal VATExempt, decimal EVAT, decimal EVATableAmount, decimal NonEVATableAmount, decimal LocalTax, decimal CashPayment, decimal ChequePayment, decimal CreditCardPayment, decimal CreditPayment, decimal DebitPayment, decimal RewardPointsPayment, decimal RewardConvertedPayment, PaymentTypes PaymentType)
        {
            Int32 intNoOfCashTransactions = 0;
            Int32 intNoOfChequeTransactions = 0;
            Int32 intNoOfCreditCardTransactions = 0;
            Int32 intNoOfCreditTransactions = 0;
            Int32 intNoOfDebitTransactions = 0;
            Int32 intNoOfCombinationPaymentTransactions = 0;
            Int32 intNoOfDiscountedTransactions = 0;
            Int32 intNoOfRewardPointsPayment = 0;
            
            decimal decPromotionalItems = 0;

            foreach (System.Data.DataRow dr in ItemDataTable.Rows)
            {

                decimal ItemQuantity = 0;
                try { ItemQuantity = Convert.ToDecimal(dr["Quantity"]); }
                catch
                {
                    try { ItemQuantity = Convert.ToDecimal(dr["Quantity"].ToString().Replace("RETURN", "").Trim()); }
                    catch { }
                }

                decPromotionalItems += Convert.ToDecimal(dr["PromoApplied"]);
            }
            switch (PaymentType)
            {
                case PaymentTypes.Cash: { intNoOfCashTransactions = 1; break; }
                case PaymentTypes.Cheque: { intNoOfChequeTransactions = 1; break; }
                case PaymentTypes.CreditCard: { intNoOfCreditCardTransactions = 1; break; }
                case PaymentTypes.Credit: { intNoOfCreditTransactions = 1; break; }
                case PaymentTypes.Debit: { intNoOfDebitTransactions = 1; break; }
                case PaymentTypes.RewardPoints: { intNoOfRewardPointsPayment = 1; break; }
                case PaymentTypes.Combination: { intNoOfCombinationPaymentTransactions = 1; break; }
                default: { intNoOfCashTransactions = 1; break; }
            }

            Data.CashierReportDetails clsCashierReportDetails = new Data.CashierReportDetails();

            if (TransStatus == TransactionStatus.Closed)
            {
                clsCashierReportDetails.ItemSold = ItemSold;
                clsCashierReportDetails.QuantitySold = QuantitySold;
                clsCashierReportDetails.NoOfCashTransactions = intNoOfCashTransactions;
                clsCashierReportDetails.NoOfChequeTransactions = intNoOfChequeTransactions;
                clsCashierReportDetails.NoOfCreditCardTransactions = intNoOfCreditCardTransactions;
                clsCashierReportDetails.NoOfCreditTransactions = intNoOfCreditTransactions;
                clsCashierReportDetails.NoOfDebitPaymentTransactions = intNoOfDebitTransactions;
                clsCashierReportDetails.NoOfCombinationPaymentTransactions = intNoOfCombinationPaymentTransactions;
                clsCashierReportDetails.NoOfRewardPointsPayment = intNoOfRewardPointsPayment;
                clsCashierReportDetails.NoOfClosedTransactions = 1;

                // march 19, 2009
                clsCashierReportDetails.NoOfDiscountedTransactions = intNoOfDiscountedTransactions;
                clsCashierReportDetails.CreditSalesTax = clsCashierReportDetails.CreditPayment * (mclsTerminalDetails.VAT / 100);
                clsCashierReportDetails.PromotionalItems = decPromotionalItems;
                clsCashierReportDetails.NoOfTotalTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.Void)
            {
                clsCashierReportDetails.ItemSold = 0;
                clsCashierReportDetails.QuantitySold = 0;
                clsCashierReportDetails.NoOfVoidTransactions = 1;
                clsCashierReportDetails.NoOfTotalTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.Refund)
            {
                clsCashierReportDetails.ItemSold = -ItemSold;
                clsCashierReportDetails.QuantitySold = -QuantitySold;
                clsCashierReportDetails.NoOfRefundTransactions = 1;
                clsCashierReportDetails.NoOfTotalTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.CreditPayment)
            {
                clsCashierReportDetails.PromotionalItems = decPromotionalItems;

                clsCashierReportDetails.NoOfCreditPaymentTransactions = 1;
                clsCashierReportDetails.NoOfTotalTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.ClosedWalkIn)
            {
                clsCashierReportDetails.NoOfWalkInTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.ClosedOutOfStock)
            {
                clsCashierReportDetails.NoOfOutOfStockTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.Consignment)
            {
                clsCashierReportDetails.NoOfConsignmentTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.ClosedWalkInRefund)
            {
                clsCashierReportDetails.NoOfWalkInRefundTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.ClosedOutOfStockRefund)
            {
                clsCashierReportDetails.NoOfOutOfStockRefundTransactions = 1;
            }
            else if (TransStatus == TransactionStatus.ConsignmentRefund)
            {
                clsCashierReportDetails.NoOfConsignmentRefundTransactions = 1;
            }
            

            clsCashierReportDetails.TerminalNo = mclsTerminalDetails.TerminalNo;
            clsCashierReportDetails.BranchID = mclsTerminalDetails.BranchID;
            clsCashierReportDetails.CashierID = mclsSalesTransactionDetails.CashierID;

            Data.CashierReports clsCashierReport = new Data.CashierReports(mConnection, mTransaction);
            mConnection = clsCashierReport.Connection; mTransaction = clsCashierReport.Transaction;

            clsCashierReport.UpdateTransactionSales(clsCashierReportDetails);
        }