public void SavePayments(ArrayList arrCashPaymentDetails, ArrayList arrChequePaymentDetails, ArrayList arrCreditCardPaymentDetails, ArrayList arrCreditPaymentDetails, ArrayList arrDebitPaymentDetails)
        {
            //need to remove this eventually
            mclsSalesTransactionDetails.PaymentDetails = AssignArrayListPayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, arrCreditPaymentDetails, arrDebitPaymentDetails);

            #region Lemu 2011-06-09 : Added saving of debit payments as deposit if refund. Requested by Frank.
            if (mboIsRefund)
            {
                
                Data.Deposits clsDeposit = new Data.Deposits(mConnection, mTransaction);
                mConnection = clsDeposit.Connection; mTransaction = clsDeposit.Transaction;

                Data.DepositDetails clsDepositDetails = new Data.DepositDetails();
                foreach (Data.DebitPaymentDetails clsDebitPaymentDetails in mclsSalesTransactionDetails.PaymentDetails.arrDebitPaymentDetails)
                {
                    clsDepositDetails = new Data.DepositDetails();
                    clsDepositDetails.Amount = clsDebitPaymentDetails.Amount;
                    clsDepositDetails.PaymentType = PaymentTypes.Debit;
                    clsDepositDetails.DateCreated = mclsSalesTransactionDetails.TransactionDate;
                    clsDepositDetails.BranchDetails = new Data.BranchDetails
                    {
                        BranchID = mclsTerminalDetails.BranchID
                    };
                    clsDepositDetails.TerminalNo = mclsTerminalDetails.TerminalNo;
                    clsDepositDetails.CashierID = mclsSalesTransactionDetails.CashierID;
                    clsDepositDetails.ContactID = mclsSalesTransactionDetails.CustomerID;
                    clsDepositDetails.ContactName = mclsSalesTransactionDetails.CustomerName;
                    clsDepositDetails.Remarks = "Added during refund of transaction #: " + mclsSalesTransactionDetails.TransactionNo;

                    clsDeposit.Insert(clsDepositDetails);
                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                    clsContact.AddDebit(clsDepositDetails.ContactID, clsDepositDetails.Amount);
                }
                clsDeposit.CommitAndDispose();

                InsertAuditLog(AccessTypes.Deposit, "Deposit: type='" + clsDepositDetails.PaymentType.ToString("G") + "' amount='" + clsDepositDetails.Amount.ToString(",##0.#0") + "'" + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);

                // Remove Debit Payments so that it wont be saved in the debit payment table
                mclsSalesTransactionDetails.PaymentDetails.arrDebitPaymentDetails = new Data.DebitPaymentDetails[0];
            }
            #endregion

            Data.Payment clsPayment = new Data.Payment(mConnection, mTransaction);
            mConnection = clsPayment.Connection; mTransaction = clsPayment.Transaction;

            clsPayment.Insert(mclsSalesTransactionDetails.PaymentDetails);

            // CreditCardPaymentDetails : Inhouse
        }
Exemple #2
0
		private void Deposit()
		{
            if (!SuspendTransactionAndContinue()) return;

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.Deposit);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					clsEvent.AddEvent("[" + lblCashier.Text + "] Depositing amount.");

					DepositWnd frmDepositWnd = new DepositWnd();
                    frmDepositWnd.SysConfigDetails = mclsSysConfigDetails;
                    frmDepositWnd.TerminalDetails = mclsTerminalDetails;
					frmDepositWnd.CashierID = mclsSalesTransactionDetails.CashierID;
					frmDepositWnd.ShowDialog(this);
					DialogResult result = frmDepositWnd.Result;
					Data.DepositDetails clsDepositDetails = frmDepositWnd.DepositDetails;
					frmDepositWnd.Close();
					frmDepositWnd.Dispose();

					if (result == DialogResult.OK)
					{
						Cursor.Current = Cursors.WaitCursor;
						
						Data.Deposits clsDeposit = new Data.Deposits(mConnection, mTransaction);
                        mConnection = clsDeposit.Connection; mTransaction = clsDeposit.Transaction;

						clsDeposit.Insert(clsDepositDetails);

						Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                        mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

						clsContact.AddDebit(clsDepositDetails.ContactID, clsDepositDetails.Amount);
                        clsDeposit.CommitAndDispose();

                        InsertAuditLog(AccessTypes.Deposit, "Deposit: type='" + clsDepositDetails.PaymentType.ToString("G") + "' amount='" + clsDepositDetails.Amount.ToString(",##0.#0") + "'" + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);

                        PrintDeposit(clsDepositDetails);
						//PrintDepositDelegate printdepositDel = new PrintDepositDelegate(PrintDeposit);
						//printdepositDel.BeginInvoke(clsDepositDetails, null, null);

						clsEvent.AddEventLn("Done! type=" + clsDepositDetails.PaymentType.ToString("G") + " amount=" + clsDepositDetails.Amount.ToString("#,###.#0"));

						Cursor.Current = Cursors.Default;
					}
					else { clsEvent.AddEventLn("Cancelled!"); }

				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Receiving customer deposit."); 
                }
			}
		}