private bool CreateTransaction() { Boolean boRetValue = true; try { Data.TerminalReport clsTerminalReport = new Data.TerminalReport(mConnection, mTransaction); mConnection = clsTerminalReport.Connection; mTransaction = clsTerminalReport.Transaction; DateTime dteTransactionDate = Convert.ToDateTime(lblTransDate.Text); boRetValue = CheckIfOKToSell(false); if (!boRetValue) return boRetValue; clsEvent.AddEventLn("[" + lblCashier.Text + "] Creating new transaction.", true); mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } //mclsSalesTransactionDetails.CustomerID = Convert.ToInt64(lblCustomer.Tag); //mclsSalesTransactionDetails.CustomerName = lblCustomer.Text; if (mclsContactDetails.ContactID == 0) { mclsContactDetails = mclsContactDetailsDEFCustomer; } if (mboRewardCardSwiped) { mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetails.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetails.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetails.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetails.RewardDetails.RewardPoints; } else { mclsSalesTransactionDetails.RewardsCustomerID = Constants.C_RETAILPLUS_CUSTOMERID; mclsSalesTransactionDetails.RewardsCustomerName = Constants.C_RETAILPLUS_CUSTOMER; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetailsDEFCustomer.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetailsDEFCustomer.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetailsDEFCustomer.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetailsDEFCustomer.RewardDetails.RewardPoints; } mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName; if (mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate == Constants.C_DATE_MIN_VALUE) mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate = dteTransactionDate; mclsSalesTransactionDetails.AgentID = Convert.ToInt64(lblAgent.Tag); mclsSalesTransactionDetails.AgentName = lblAgent.Text; mclsSalesTransactionDetails.AgentPositionName = lblAgentPositionDepartment.Text; mclsSalesTransactionDetails.AgentDepartmentName = lblAgentPositionDepartment.Tag.ToString(); mclsSalesTransactionDetails.WaiterID = Convert.ToInt64(grpItems.Tag); mclsSalesTransactionDetails.WaiterName = grpItems.Text.Remove(0, 11); mclsSalesTransactionDetails.CreatedByID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CreatedByName = lblCashier.Text; mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CashierName = lblCashier.Text; mclsSalesTransactionDetails.TransactionDate = dteTransactionDate; mclsSalesTransactionDetails.DateSuspended = DateTime.MinValue; mclsSalesTransactionDetails.TerminalNo = mclsTerminalDetails.TerminalNo; mclsSalesTransactionDetails.BranchID = mclsTerminalDetails.BranchID; mclsSalesTransactionDetails.BranchCode = mclsTerminalDetails.BranchDetails.BranchCode; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.Open; mclsSalesTransactionDetails.TransactionType = mboIsRefund ? TransactionTypes.POSRefund : TransactionTypes.POSNormal; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; mclsSalesTransactionDetails.TransactionNo = clsSalesTransactions.CreateTransactionNo(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; //insert to transaction table mclsSalesTransactionDetails.TransactionID = clsSalesTransactions.Insert(mclsSalesTransactionDetails); lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); // 24Sep2014 : update back the LastCheckInDate to transaction date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, dteTransactionDate); // 31Jan2015 : Lemu // put back to SuspendedOpen so that it won't be open somewhere else clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); mboIsInTransaction = true; clsTerminalReport.CommitAndDispose(); InsertAuditLog(AccessTypes.CreateTransaction, "Create transaction #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done! Trans #: " + lblTransNo.Text + " has been created.", true); } catch (Exception ex) { InsertErrorLogToFile(ex); boRetValue = false; } return boRetValue; }
private bool CreateTransaction() { Boolean boRetValue = true; try { Data.TerminalReport clsTerminalReport = new Data.TerminalReport(mConnection, mTransaction); mConnection = clsTerminalReport.Connection; mTransaction = clsTerminalReport.Transaction; DateTime dteTransactionDate = Convert.ToDateTime(lblTransDate.Text); boRetValue = CheckIfOKToSell(false); if (!boRetValue) return boRetValue; // Feb 16, 2015 if (mclsTerminalDetails.WithRestaurantFeatures) { if (mclsContactDetails.ContactID == Constants.ZERO || mclsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID) { MessageBox.Show("Sorry you must select a table / customer to order before punching an item.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } } clsEvent.AddEventLn("[" + lblCashier.Text + "] Creating new transaction.", true); mclsSalesTransactionDetails = new Data.SalesTransactionDetails(); mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>(); try { mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); } catch { } //mclsSalesTransactionDetails.CustomerID = Convert.ToInt64(lblCustomer.Tag); //mclsSalesTransactionDetails.CustomerName = lblCustomer.Text; if (mboRewardCardSwiped) { mclsSalesTransactionDetails.RewardsCustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.RewardsCustomerName = mclsContactDetails.ContactName; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetails.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetails.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetails.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetails.RewardDetails.RewardPoints; } else { mclsSalesTransactionDetails.RewardsCustomerID = Constants.C_RETAILPLUS_CUSTOMERID; mclsSalesTransactionDetails.RewardsCustomerName = Constants.C_RETAILPLUS_CUSTOMER; mclsSalesTransactionDetails.RewardCardActive = mclsContactDetailsDEFCustomer.RewardDetails.RewardActive; mclsSalesTransactionDetails.RewardCardNo = mclsContactDetailsDEFCustomer.RewardDetails.RewardCardNo; mclsSalesTransactionDetails.RewardCardExpiry = mclsContactDetailsDEFCustomer.RewardDetails.ExpiryDate; mclsSalesTransactionDetails.RewardPreviousPoints = mclsContactDetailsDEFCustomer.RewardDetails.RewardPoints; } mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails; mclsSalesTransactionDetails.CustomerID = mclsContactDetails.ContactID; mclsSalesTransactionDetails.CustomerName = mclsContactDetails.ContactName; if (mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate == Constants.C_DATE_MIN_VALUE) mclsSalesTransactionDetails.CustomerDetails.LastCheckInDate = dteTransactionDate; mclsSalesTransactionDetails.AgentID = Convert.ToInt64(lblAgent.Tag); mclsSalesTransactionDetails.AgentName = lblAgent.Text; mclsSalesTransactionDetails.AgentPositionName = lblAgentPositionDepartment.Text; mclsSalesTransactionDetails.AgentDepartmentName = lblAgentPositionDepartment.Tag.ToString(); mclsSalesTransactionDetails.WaiterID = Convert.ToInt64(lblServedBy.Tag); mclsSalesTransactionDetails.WaiterName = lblServedBy.Text.Remove(0, 11); mclsSalesTransactionDetails.CreatedByID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CreatedByName = lblCashier.Text; mclsSalesTransactionDetails.CashierID = Convert.ToInt64(lblCashier.Tag); mclsSalesTransactionDetails.CashierName = lblCashier.Text; mclsSalesTransactionDetails.TransactionDate = dteTransactionDate; mclsSalesTransactionDetails.DateSuspended = DateTime.MinValue; mclsSalesTransactionDetails.TerminalNo = mclsTerminalDetails.TerminalNo; mclsSalesTransactionDetails.BranchID = mclsTerminalDetails.BranchID; mclsSalesTransactionDetails.BranchCode = mclsTerminalDetails.BranchDetails.BranchCode; mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.Open; mclsSalesTransactionDetails.TransactionType = mboIsRefund ? TransactionTypes.POSRefund : TransactionTypes.POSNormal; Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction); mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction; mclsSalesTransactionDetails.TransactionNo = clsSalesTransactions.CreateTransactionNo(mclsTerminalDetails.BranchDetails.BranchID, mclsTerminalDetails.TerminalNo); // mclsTransactionStream.Create(mclsSalesTransactionDetails); lblTransNo.Text = mclsSalesTransactionDetails.TransactionNo; //insert to transaction table mclsSalesTransactionDetails.TransactionID = clsSalesTransactions.Insert(mclsSalesTransactionDetails); lblTransNo.Tag = mclsSalesTransactionDetails.TransactionID.ToString(); // Sep 24, 2014 : update back the LastCheckInDate to transaction date Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction); mConnection = clsContact.Connection; mTransaction = clsContact.Transaction; clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, dteTransactionDate); // Jan 31, 2015 : Lemu // put back to SuspendedOpen so that it won't be open somewhere else clsEvent.AddEventLn("Putting transaction SuspendedOpen: " + mclsSalesTransactionDetails.TransactionNo, true); clsSalesTransactions.UpdateTransactionToSuspendedOpen(mclsSalesTransactionDetails.TransactionID); mboIsInTransaction = true; clsTerminalReport.CommitAndDispose(); InsertAuditLog(AccessTypes.CreateTransaction, "Create transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode); clsEvent.AddEventLn("Done! Trans #: " + lblTransNo.Text + " has been created.", true); // Added to put the default transaction charge during creation of transaction // this is set during the system setup ApplyTransDefaultCharge(); } catch (Exception ex) { clsEvent.AddErrorEventLn(ex); boRetValue = false; } return boRetValue; }