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); } } }
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); }