示例#1
0
 private void FnGetData()
 {
     mSelectedTransactionId            = Intent.GetIntExtra("selectedTransactionId", 0);
     mIsMultipay                       = Intent.GetBooleanExtra("isMultipay", false);
     mIsMultipayPreview                = Intent.GetBooleanExtra("isMultipayPreview", false);
     mMultipayPreviewIdList            = Intent.GetStringExtra("multipayPreviewIdList");
     mSettingsDataAccess               = new SettingsDataAccess();
     mTransactionsDataAccess           = new TransactionsDataAccess();
     mTransactionItemsDataAccess       = new TransactionItemsDataAccess();
     mRunnersDataAccess                = new RunnersDataAccess();
     mCustomersDataAccess              = new CustomersDataAccess();
     mRunnersMultipayRecordsDataAccess = new RunnersMultipayRecordsDataAccess();
     mReceiptSettings                  = mSettingsDataAccess.SelectTable()[0];
     mSelectedTransaction              = mIsMultipay ? null : mTransactionsDataAccess.SelectRecord(mSelectedTransactionId)[0];
     //mSelectedMultipayRecord = mIsMultipay ? mRunnersMultipayRecordsDataAccess.SelectRecord(mSelectedTransactionId)[0] : null;
     mSelectedMultipayRecord = new RunnersMultipayRecordsModel()
     {
         Id                  = 1,
         CashierName         = "Jepoy",
         TransactionDateTime = "2020-12-14 6:45",
         RunnerId            = 1,
         SubTotalAmount      = 45884,
         DiscountAmount      = 0,
         PaymentCashAmount   = 45884,
         PaymentCheckAmount  = 0,
         TransactionIds      = "#47, #46",
         StartDate           = "2020-12-11 6:45",
         EndDate             = "2020-12-14 12:45"
     };
 }
        private void SavePaymentToDb()
        {
            RunnersMultipayRecordsModel multipayRecord = new RunnersMultipayRecordsModel()
            {
                TransactionDateTime = DateTime.Now.ToString(GlobalVariables.DATABASE_TIME_FORMAT),
                DateCreated         = DateTime.Now.ToString(GlobalVariables.DATABASE_TIME_FORMAT),
                DateModified        = DateTime.Now.ToString(GlobalVariables.DATABASE_TIME_FORMAT),
                RunnerId            = mRunnerId,
                SubTotalAmount      = GetCurrentTotalSaleAmount(),
                DiscountAmount      = 0,       //not yet implemented
                CashierName         = "JEPOY", //not yet implemented
                PaymentCashAmount   = mIsPaymentModeCash ? GetCurrentAmtReceivedInput() : 0,
                PaymentCheckAmount  = mIsPaymentModeCash ? 0 : GetCurrentAmtReceivedInput(),
                TransactionIds      = mTransactionIds,
                StartDate           = mStartDate,
                EndDate             = mEndDate
            };

            mRunnersMultipayRecordsDataAccess.InsertIntoTable(multipayRecord);

            int[]   transactionIds           = mTransactionIds.Replace("#", "").Replace(" ", "").Split(',').Select(int.Parse).ToArray();
            decimal changeAmountOnLastRecord = GetCurrentAmtReceivedInput() - GetCurrentTotalSaleAmount();

            for (int i = 0; i < transactionIds.Length; i++)
            {
                decimal _paymentAmount = mTransactionsDataAccess.SelectRecord(transactionIds[i])[0].SubTotalAmount;
                UpdateTransactionStatus(transactionIds[i], mIsPaymentModeCash ? _paymentAmount : 0, mIsPaymentModeCash ? 0 :_paymentAmount);
                if (i == transactionIds.Length - 1)
                {
                    UpdateTransactionStatus(transactionIds[i], mIsPaymentModeCash ? _paymentAmount + changeAmountOnLastRecord : 0,
                                            mIsPaymentModeCash ? 0 : _paymentAmount + changeAmountOnLastRecord);
                }
            }
        }
示例#3
0
 public bool InsertIntoTable(RunnersMultipayRecordsModel model)
 {
     try
     {
         using (var connection = new SQLiteConnection(connectionString))
         {
             connection.Insert(model);
             return(true);
         }
     }
     catch (SQLiteException ex)
     {
         Log.Info("SQLiteEx", ex.Message);
         return(false);
     }
 }
        public List <string> GetMultipayStringPrintList(string _storeName, string _storeAddress1,
                                                        string _storeAddress2, string _storeContactNo, string footerNote,
                                                        List <TransactionItemsModel> _transactionItems, List <TransactionsModel> _transactionHeader, RunnersMultipayRecordsModel _multipayRecord,
                                                        RunnersDataAccess _runnersDataAccess)
        {
            int    maxPaperWidth    = 32;
            string wideCharsStart   = "\u001b!\u0010";
            string wideCharsEnd     = "\u001b!\u0000";
            string boldStart        = "\u001b!\u0008";
            string boldEnd          = "\u001b!\u0000";
            string returnSpace      = "\r\n";
            string returnSpaceSmall = "";

            string line = "";

            for (int i = 0; i < 32; i++)
            {
                if (i == 0 | i == 32)
                {
                    returnSpaceSmall += "-";
                }
                else
                {
                    returnSpaceSmall += " ";
                }
                line += "-";
            }

            List <string> returnVal = new List <string>()
            {
                boldStart + wideCharsStart + centeredString(maxPaperWidth, _storeName) + wideCharsEnd + boldEnd, //STORENAME
                centeredString(maxPaperWidth, _storeAddress1),                                                   //STORE ADDRESS 1
                centeredString(maxPaperWidth, _storeAddress2),                                                   //STORE ADDRESS 2
                centeredString(maxPaperWidth, _storeContactNo), returnSpace
            };

            foreach (var _header in _transactionHeader)
            {
                returnVal.Add("Transaction#:" + boldStart + _header.id + boldEnd);
                returnVal.Add("Date:" + boldStart + GetFormattedDateTimeString(_header.TransactionDateTime) + boldEnd);         //format
                returnVal.Add("Cashier:" + boldStart + _header.CashierName + boldEnd);
                returnVal.Add("Runner:" + boldStart + GetRunnerName(_runnersDataAccess, _header.CustomerOrRunnerId) + boldEnd); //get runner name
                returnVal.Add(line);
                returnVal.Add("[(Size) Item name]              ");
                returnVal.Add("[Qty]*[Price]    [Subtotal Amt.]");
                returnVal.Add(line);

                decimal totalPrice = 0;

                //get items from cart
                foreach (var _items in _transactionItems.Where(x => x.TransactionId == _header.id))
                {
                    int    itemQty = _items.ProductCountOnCart;
                    string size    = _items.ProductSize;
                    totalPrice += itemQty * _items.ProductPrice;

                    returnVal.Add(_items.ProductName);
                    returnVal.Add(quantityAndPriceLine(itemQty, _items.ProductPrice, maxPaperWidth));

                    var currentTransactionItems = _transactionItems.Where(x => x.TransactionId == _header.id).ToList();
                    if (currentTransactionItems.IndexOf(_items) < currentTransactionItems.Count - 1)//last item
                    {
                        returnVal.Add(returnSpaceSmall);
                    }
                }

                //Child Footer
                returnVal.Add(line);
                returnVal.Add(TotalLine("TOTAL:", totalPrice, wideCharsStart, wideCharsEnd, maxPaperWidth));
                returnVal.Add(line);
            }

            returnVal.Add(line);
            returnVal.Add(TotalLine("GRAND TOTAL:", _multipayRecord.SubTotalAmount, wideCharsStart, wideCharsEnd, maxPaperWidth));
            if (_multipayRecord.PaymentCashAmount > 0)
            {
                returnVal.Add(TotalLine("Cash:", _multipayRecord.PaymentCashAmount, "", "", maxPaperWidth));
            }
            if (_multipayRecord.PaymentCheckAmount > 0)
            {
                returnVal.Add(TotalLine("Check:", _multipayRecord.PaymentCheckAmount, "", "", maxPaperWidth));
            }
            returnVal.Add(TotalLine("Change:",
                                    (_multipayRecord.PaymentCheckAmount + _multipayRecord.PaymentCashAmount) - _multipayRecord.SubTotalAmount, "", "", maxPaperWidth));
            returnVal.Add(line);
            returnVal.Add(centeredString(maxPaperWidth, footerNote));
            returnVal.Add(centeredString(maxPaperWidth, DateTime.Now.ToString("MMM d, yyyy - hh:mm tt").ToUpper()));
            return(returnVal);
        }