public Int64 Insert(CreditPaymentDetails Details) { try { Save(Details); return(Int64.Parse(base.getLAST_INSERT_ID(this))); } catch (Exception ex) { throw base.ThrowException(ex); } }
public Int64 Insert(CreditPaymentDetails Details) { try { Save(Details); return Int64.Parse(base.getLAST_INSERT_ID(this)); } catch (Exception ex) { throw base.ThrowException(ex); } }
public Int32 Save(CreditPaymentDetails Details) { try { // [04/03/2012] Added creditcard information as requested by HP MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "CALL procCreditPaymentInsert(@BranchID, @TerminalNo, @TransactionID, @CustomerID, @CreditCardPaymentID, @CreditCardTypeID, @CurrentCredit, @Amount, @TransactionDate, @TransactionNo, @CashierName, @Remarks, @CreditReason, @CreditReasonID, @CreatedOn, @LastModified);"; cmd.Parameters.AddWithValue("@BranchID", Details.BranchDetails.BranchID); cmd.Parameters.AddWithValue("@TerminalNo", Details.TerminalNo); cmd.Parameters.AddWithValue("@TransactionID", Details.TransactionID); cmd.Parameters.AddWithValue("@CustomerID", Details.CustomerDetails.ContactID); cmd.Parameters.AddWithValue("@CreditCardPaymentID", Details.CreditCardPaymentID); cmd.Parameters.AddWithValue("@CreditCardTypeID", Details.CreditCardTypeID); cmd.Parameters.AddWithValue("@CurrentCredit", Details.CustomerDetails.Credit); cmd.Parameters.AddWithValue("@Amount", Details.IsRefund ? -(Details.Amount) : Details.Amount); cmd.Parameters.AddWithValue("@TransactionDate", Details.TransactionDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@TransactionNo", Details.TransactionNo); cmd.Parameters.AddWithValue("@CashierName", Details.CashierName); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@CreditReason", Details.CreditReason); cmd.Parameters.AddWithValue("@CreditReasonID", Details.CreditReasonID); cmd.Parameters.AddWithValue("@CreatedOn", Details.CreatedOn); cmd.Parameters.AddWithValue("@LastModified", Details.LastModified); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); //add credit to masterfile Contacts clsContact = new Contacts(base.Connection, base.Transaction); clsContact.AddCredit(Details.CustomerDetails.ContactID, Details.IsRefund ? -(Details.Amount) : Details.Amount); return(0); } catch (Exception ex) { throw base.ThrowException(ex); } }
public CreditPaymentDetails[] Details(Int64 ContactID, DateTime CreditDateFrom, DateTime CreditDateTo) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = SQLSelect() + "WHERE ContactID = @ContactID AND CreditDate >= @CreditDateFrom AND CreditDate <= @CreditDateTo;"; cmd.Parameters.AddWithValue("ContactID", ContactID); cmd.Parameters.AddWithValue("TerminalNo", CreditDateFrom); cmd.Parameters.AddWithValue("CreditDateTo", CreditDateTo); cmd.CommandText = SQL; string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName); base.MySqlDataAdapterFill(cmd, dt); ArrayList items = new ArrayList(); foreach (System.Data.DataRow dr in dt.Rows) { items.Add(setDetails(dr)); } CreditPaymentDetails[] arrItems = new CreditPaymentDetails[0]; if (items != null) { arrItems = new CreditPaymentDetails[items.Count]; items.CopyTo(arrItems); } return(arrItems); } catch (Exception ex) { throw base.ThrowException(ex); } }
/// <summary> /// Get the cash payment details of a certain transaction. /// </summary> /// <param name="BranchID"></param> /// <param name="TerminalNo"></param> /// <param name="SyncID">Same also as the TransactionID</param> /// <returns></returns> public CreditPaymentDetails[] Details(Int32 BranchID, string TerminalNo, Int64 TransactionID) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = SQLSelect() + "WHERE BranchID = @BranchID AND TerminalNo = @TerminalNo AND TransactionID = @TransactionID;"; cmd.Parameters.AddWithValue("BranchID", BranchID); cmd.Parameters.AddWithValue("TerminalNo", TerminalNo); cmd.Parameters.AddWithValue("TransactionID", TransactionID); cmd.CommandText = SQL; string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName); base.MySqlDataAdapterFill(cmd, dt); ArrayList items = new ArrayList(); foreach (System.Data.DataRow dr in dt.Rows) { items.Add(setDetails(dr)); } CreditPaymentDetails[] arrCashDetails = new CreditPaymentDetails[0]; if (items != null) { arrCashDetails = new CreditPaymentDetails[items.Count]; items.CopyTo(arrCashDetails); } return(arrCashDetails); } catch (Exception ex) { throw base.ThrowException(ex); } }
public Int32 Save(CreditCardPaymentDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "CALL procSaveCreditCardPayment(@BranchID, @TerminalNo, @SyncID, @CreditCardPaymentID, @TransactionID, @TransactionDate, @CashierName, @Amount, @AdditionalCharge, " + "@ContactID, @GuarantorID, @CardTypeID, @CardTypeCode, @CardTypeName, @CardNo, @CardHolder, @ValidityDates, @Remarks, @TransactionNo, @CreatedOn, @LastModified);"; cmd.Parameters.AddWithValue("BranchID", Details.BranchDetails.BranchID); cmd.Parameters.AddWithValue("TerminalNo", Details.TerminalNo); cmd.Parameters.AddWithValue("SyncID", Details.SyncID); cmd.Parameters.AddWithValue("CreditCardPaymentID", Details.CreditCardPaymentID); cmd.Parameters.AddWithValue("TransactionID", Details.TransactionID); cmd.Parameters.AddWithValue("TransactionDate", Details.TransactionDate); cmd.Parameters.AddWithValue("CashierName", Details.CashierName); cmd.Parameters.AddWithValue("Amount", Details.Amount); cmd.Parameters.AddWithValue("AdditionalCharge", Details.AdditionalCharge); cmd.Parameters.AddWithValue("ContactID", Details.CreditorDetails.ContactID); cmd.Parameters.AddWithValue("GuarantorID", Details.CreditorDetails.CreditDetails.GuarantorID); cmd.Parameters.AddWithValue("CardTypeID", Details.CardTypeID); cmd.Parameters.AddWithValue("CardTypeCode", Details.CardTypeCode); cmd.Parameters.AddWithValue("CardTypeName", Details.CardTypeName); cmd.Parameters.AddWithValue("CardNo", Details.CardNo); cmd.Parameters.AddWithValue("CardHolder", Details.CardHolder); cmd.Parameters.AddWithValue("ValidityDates", Details.ValidityDates); cmd.Parameters.AddWithValue("Remarks", Details.Remarks); cmd.Parameters.AddWithValue("TransactionNo", Details.TransactionNo); cmd.Parameters.AddWithValue("CreatedOn", Details.CreatedOn == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.CreatedOn); cmd.Parameters.AddWithValue("LastModified", Details.LastModified == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.LastModified); cmd.CommandText = SQL; Int32 iRetValue = base.ExecuteNonQuery(cmd); // update this if it's an insert if (Details.CreditCardPaymentID == 0) Details.CreditCardPaymentID = Int64.Parse(base.getLAST_INSERT_ID(this)); //save the credit if inhouse credit if (Details.CreditorDetails.ContactID != 0) { CreditPaymentDetails clsCreditPaymentDetails = new CreditPaymentDetails(); clsCreditPaymentDetails.BranchDetails = Details.BranchDetails; clsCreditPaymentDetails.TerminalNo = Details.TerminalNo; clsCreditPaymentDetails.TransactionID = Details.TransactionID; clsCreditPaymentDetails.TransactionNo = Details.TransactionNo; clsCreditPaymentDetails.IsRefund = Details.IsRefund; clsCreditPaymentDetails.TransactionDate = Details.TransactionDate; clsCreditPaymentDetails.CashierName = Details.CashierName; clsCreditPaymentDetails.Amount = Details.Amount; clsCreditPaymentDetails.CustomerDetails = Details.CreditorDetails; clsCreditPaymentDetails.Remarks = Details.Remarks; string additionalRemarks = Details.Remarks; if (!string.IsNullOrEmpty(Details.Remarks)) additionalRemarks = ";" + (Details.Remarks.Length > 30 ? Details.Remarks.Substring(0, 30) : Details.Remarks); if (!Details.IsRefund) clsCreditPaymentDetails.CreditReason = CreditReason.IHCC.ToString("G") + " @ Ter#:" + Details.TerminalNo + " Br#:" + Details.BranchDetails.BranchID.ToString() + additionalRemarks; else clsCreditPaymentDetails.CreditReason = CreditReason.IHCC.ToString("G") + " @ Ter#:" + Details.TerminalNo + " Br#:" + Details.BranchDetails.BranchID.ToString() + additionalRemarks + " Refund"; clsCreditPaymentDetails.CreditCardPaymentID = Details.CreditCardPaymentID; clsCreditPaymentDetails.CreditCardTypeID = Details.CardTypeDetails.CardTypeID; new CreditPayments(base.Connection, base.Transaction).Insert(clsCreditPaymentDetails); // no need for this this is already included in the insert of CreditPayments //Contacts clsContact = new Contacts(base.Connection, base.Transaction); //if (!Details.IsRefund) // clsContact.AddCredit(Details.CreditorDetails.ContactID, Details.Amount); //else // clsContact.AddCredit(Details.CreditorDetails.ContactID, -Details.Amount); } return iRetValue; } catch (Exception ex) { throw base.ThrowException(ex); } }
public System.Data.DataTable CreditPurchasesAsDataTable(CreditPaymentDetails SearchKeys, string SortField = "CP.CreditDate", SortOption SortOrder = SortOption.Ascending, Int32 limit = 0) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "CALL procContactCreditPurchaseSelect(@BranchID, @TerminalNo, @ContactID, @CreditType, @CreditCardTypeID, @PurchaseDateFrom, @PurchaseDateTo, " + "@CreditorLastNameFrom, @CreditorLastnameTo, @GuaLastNameFrom, @GuaLastNameTo, @SortField, @SortOption, @limit);"; cmd.Parameters.AddWithValue("BranchID", SearchKeys.BranchDetails.BranchID); cmd.Parameters.AddWithValue("TerminalNo", SearchKeys.TerminalNo); cmd.Parameters.AddWithValue("ContactID", SearchKeys.CustomerDetails.ContactID); cmd.Parameters.AddWithValue("CreditType", SearchKeys.CreditType.ToString("d")); cmd.Parameters.AddWithValue("CreditCardTypeID", SearchKeys.CreditCardTypeID); cmd.Parameters.AddWithValue("PurchaseDateFrom", SearchKeys.PurchaseDateFrom); cmd.Parameters.AddWithValue("PurchaseDateTo", SearchKeys.PurchaseDateTo); cmd.Parameters.AddWithValue("CreditorLastNameFrom", SearchKeys.CreditorLastnameFrom); cmd.Parameters.AddWithValue("CreditorLastNameTo", SearchKeys.CreditorLastnameTo); cmd.Parameters.AddWithValue("GuaLastNameFrom", SearchKeys.GuarantorLastnameFrom); cmd.Parameters.AddWithValue("GuaLastNameTo", SearchKeys.GuarantorLastnameTo); cmd.Parameters.AddWithValue("SortField", SortField); cmd.Parameters.AddWithValue("SortOption", SortOrder == SortOption.Ascending ? "ASC" : "DESC"); cmd.Parameters.AddWithValue("limit", limit); cmd.CommandText = SQL; string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName); base.MySqlDataAdapterFill(cmd, dt); return dt; } catch (Exception ex) { throw base.ThrowException(ex); } }
public Int32 Save(CreditPaymentDetails Details) { try { // [04/03/2012] Added creditcard information as requested by HP MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "CALL procCreditPaymentInsert(@BranchID, @TerminalNo, @TransactionID, @CustomerID, @CreditCardPaymentID, @CreditCardTypeID, @CurrentCredit, @Amount, @TransactionDate, @TransactionNo, @CashierName, @Remarks, @CreditReason, @CreditReasonID, @CreatedOn, @LastModified);"; cmd.Parameters.AddWithValue("@BranchID", Details.BranchDetails.BranchID); cmd.Parameters.AddWithValue("@TerminalNo", Details.TerminalNo); cmd.Parameters.AddWithValue("@TransactionID", Details.TransactionID); cmd.Parameters.AddWithValue("@CustomerID", Details.CustomerDetails.ContactID); cmd.Parameters.AddWithValue("@CreditCardPaymentID", Details.CreditCardPaymentID); cmd.Parameters.AddWithValue("@CreditCardTypeID", Details.CreditCardTypeID); cmd.Parameters.AddWithValue("@CurrentCredit", Details.CustomerDetails.Credit); cmd.Parameters.AddWithValue("@Amount", Details.IsRefund ? -(Details.Amount) : Details.Amount); cmd.Parameters.AddWithValue("@TransactionDate", Details.TransactionDate.ToString("yyyy-MM-dd HH:mm:ss")); cmd.Parameters.AddWithValue("@TransactionNo", Details.TransactionNo); cmd.Parameters.AddWithValue("@CashierName", Details.CashierName); cmd.Parameters.AddWithValue("@Remarks", Details.Remarks); cmd.Parameters.AddWithValue("@CreditReason", Details.CreditReason); cmd.Parameters.AddWithValue("@CreditReasonID", Details.CreditReasonID); cmd.Parameters.AddWithValue("@CreatedOn", Details.CreatedOn); cmd.Parameters.AddWithValue("@LastModified", Details.LastModified); cmd.CommandText = SQL; base.ExecuteNonQuery(cmd); //add credit to masterfile Contacts clsContact = new Contacts(base.Connection, base.Transaction); clsContact.AddCredit(Details.CustomerDetails.ContactID, Details.IsRefund ? -(Details.Amount) : Details.Amount); return 0; } catch (Exception ex) { throw base.ThrowException(ex); } }
public CreditPaymentDetails[] Details(Int64 ContactID, DateTime CreditDateFrom, DateTime CreditDateTo) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = SQLSelect() + "WHERE ContactID = @ContactID AND CreditDate >= @CreditDateFrom AND CreditDate <= @CreditDateTo;"; cmd.Parameters.AddWithValue("ContactID", ContactID); cmd.Parameters.AddWithValue("TerminalNo", CreditDateFrom); cmd.Parameters.AddWithValue("CreditDateTo", CreditDateTo); cmd.CommandText = SQL; string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName); base.MySqlDataAdapterFill(cmd, dt); ArrayList items = new ArrayList(); foreach (System.Data.DataRow dr in dt.Rows) { items.Add(setDetails(dr)); } CreditPaymentDetails[] arrItems = new CreditPaymentDetails[0]; if (items != null) { arrItems = new CreditPaymentDetails[items.Count]; items.CopyTo(arrItems); } return arrItems; } catch (Exception ex) { throw base.ThrowException(ex); } }
/// <summary> /// Get the cash payment details of a certain transaction. /// </summary> /// <param name="BranchID"></param> /// <param name="TerminalNo"></param> /// <param name="SyncID">Same also as the TransactionID</param> /// <returns></returns> public CreditPaymentDetails[] Details(Int32 BranchID, string TerminalNo, Int64 TransactionID) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = SQLSelect() + "WHERE BranchID = @BranchID AND TerminalNo = @TerminalNo AND TransactionID = @TransactionID;"; cmd.Parameters.AddWithValue("BranchID", BranchID); cmd.Parameters.AddWithValue("TerminalNo", TerminalNo); cmd.Parameters.AddWithValue("TransactionID", TransactionID); cmd.CommandText = SQL; string strDataTableName = "tbl" + this.GetType().FullName.Split(new Char[] { '.' })[this.GetType().FullName.Split(new Char[] { '.' }).Length - 1]; System.Data.DataTable dt = new System.Data.DataTable(strDataTableName); base.MySqlDataAdapterFill(cmd, dt); ArrayList items = new ArrayList(); foreach (System.Data.DataRow dr in dt.Rows) { items.Add(setDetails(dr)); } CreditPaymentDetails[] arrCashDetails = new CreditPaymentDetails[0]; if (items != null) { arrCashDetails = new CreditPaymentDetails[items.Count]; items.CopyTo(arrCashDetails); } return arrCashDetails; } catch (Exception ex) { throw base.ThrowException(ex); } }
private void SetDataSource(ReportDocument Report) { DateTime dteRetValue = Constants.C_DATE_MIN_VALUE; ReportDataset rptds = new ReportDataset(); Data.Contacts clsContacts; System.Data.DataTable dt; switch (cboReportType.SelectedItem.Value) { case ReportTypes.CREDITS_Purchases: #region purchases CreditPaymentDetails clsCreditPaymentDetails = new CreditPaymentDetails(); clsCreditPaymentDetails.BranchDetails = new BranchDetails() { BranchID = Int32.Parse(cboBranch.SelectedItem.Value) }; clsCreditPaymentDetails.TerminalNo = txtTerminalNo.Text.Trim(); clsCreditPaymentDetails.PurchaseDateFrom = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE; clsCreditPaymentDetails.PurchaseDateTo = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE; clsCreditPaymentDetails.CreditType = CreditType.Individual; clsCreditPaymentDetails.CreditCardTypeID = Int16.Parse(cboCreditType.SelectedItem.Value); clsCreditPaymentDetails.CreditorLastnameFrom = txtLastNameFrom.Text; clsCreditPaymentDetails.CreditorLastnameTo = txtLastNameTo.Text; clsContacts = new Data.Contacts(); dt = clsContacts.CreditPurchasesAsDataTable(clsCreditPaymentDetails, "cci.CreditCardNo"); clsContacts.CommitAndDispose(); foreach(System.Data.DataRow dr in dt.Rows) { DataRow drNew = rptds.ContactCreditPurchases.NewRow(); foreach (DataColumn dc in rptds.ContactCreditPurchases.Columns) drNew[dc] = "" + dr[dc.ColumnName]; rptds.ContactCreditPurchases.Rows.Add(drNew); } #endregion break; case ReportTypes.CREDITS_Payments: #region payments CreditPaymentCashDetails clsCreditPaymentCashDetails = new CreditPaymentCashDetails(); clsCreditPaymentCashDetails.BranchDetails = new BranchDetails() { BranchID = Int32.Parse(cboBranch.SelectedItem.Value) }; clsCreditPaymentCashDetails.TerminalNo = txtTerminalNo.Text.Trim(); clsCreditPaymentCashDetails.PaymentDateFrom = DateTime.TryParse(txtTrxStartDate.Text + " 00:00:00", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE; clsCreditPaymentCashDetails.PaymentDateTo = DateTime.TryParse(txtTrxEndDate.Text + " 23:59:59", out dteRetValue) ? dteRetValue : Constants.C_DATE_MIN_VALUE; clsCreditPaymentCashDetails.CreditType = CreditType.Individual; clsCreditPaymentCashDetails.CreditCardTypeID = Int16.Parse(cboCreditType.SelectedItem.Value); clsCreditPaymentCashDetails.CreditorLastnameFrom = txtLastNameFrom.Text; clsCreditPaymentCashDetails.CreditorLastnameTo = txtLastNameTo.Text; clsContacts = new Data.Contacts(); dt = clsContacts.CreditPaymentCashDetailedAsDataTable(clsCreditPaymentCashDetails, "cci.CreditCardNo"); clsContacts.CommitAndDispose(); foreach (System.Data.DataRow dr in dt.Rows) { DataRow drNew = rptds.ContactCreditPaymentCash.NewRow(); foreach (DataColumn dc in rptds.ContactCreditPaymentCash.Columns) drNew[dc] = "" + dr[dc.ColumnName]; rptds.ContactCreditPaymentCash.Rows.Add(drNew); } #endregion break; case ReportTypes.CREDITS_CreditorsLedgerSummary: #region ledger summary Data.Billing clsBilling = new Data.Billing(); dt = clsBilling.ListAsDataTable(GuarantorID: 0, CreditCardTypeID: Int16.Parse(cboCreditType.SelectedItem.Value), CreditType: CreditType.Individual, BillingDate: DateTime.Parse(cboBillingDate.SelectedItem.Value), CheckIsBillPrinted: false, SortField: "GUA.ContactName, CUS.ContactName", SortOrder: System.Data.SqlClient.SortOrder.Descending); clsBilling.CommitAndDispose(); foreach (System.Data.DataRow dr in dt.Rows) { System.Data.DataRow drNew = rptds.CreditBillHeader.NewRow(); foreach (System.Data.DataColumn dc in rptds.CreditBillHeader.Columns) drNew[dc] = dr[dc.ColumnName]; rptds.CreditBillHeader.Rows.Add(drNew); } #endregion break; case ReportTypes.CustomerCreditSummarizedStatistics: #region CustomerCreditSummarizedStatistics Data.ContactCreditCardInfos clsContactCreditCardInfos = new Data.ContactCreditCardInfos(); dt = clsContactCreditCardInfos.IHCreditCardSummarizedStatistics(false); clsContactCreditCardInfos.CommitAndDispose(); foreach (DataRow dr in dt.Rows) { DataRow drNew = rptds.CCISummary.NewRow(); foreach (DataColumn dc in rptds.CCISummary.Columns) drNew[dc] = dr[dc.ColumnName]; rptds.CCISummary.Rows.Add(drNew); } break; #endregion default: break; } Report.SetDataSource(rptds); SetParameters(Report); }
public Int32 Save(CreditCardPaymentDetails Details) { try { MySqlCommand cmd = new MySqlCommand(); cmd.CommandType = System.Data.CommandType.Text; string SQL = "CALL procSaveCreditCardPayment(@BranchID, @TerminalNo, @SyncID, @CreditCardPaymentID, @TransactionID, @TransactionDate, @CashierName, @Amount, @AdditionalCharge, " + "@ContactID, @GuarantorID, @CardTypeID, @CardTypeCode, @CardTypeName, @CardNo, @CardHolder, @ValidityDates, @Remarks, @TransactionNo, @CreatedOn, @LastModified);"; cmd.Parameters.AddWithValue("BranchID", Details.BranchDetails.BranchID); cmd.Parameters.AddWithValue("TerminalNo", Details.TerminalNo); cmd.Parameters.AddWithValue("SyncID", Details.SyncID); cmd.Parameters.AddWithValue("CreditCardPaymentID", Details.CreditCardPaymentID); cmd.Parameters.AddWithValue("TransactionID", Details.TransactionID); cmd.Parameters.AddWithValue("TransactionDate", Details.TransactionDate); cmd.Parameters.AddWithValue("CashierName", Details.CashierName); cmd.Parameters.AddWithValue("Amount", Details.Amount); cmd.Parameters.AddWithValue("AdditionalCharge", Details.AdditionalCharge); cmd.Parameters.AddWithValue("ContactID", Details.CreditorDetails.ContactID); cmd.Parameters.AddWithValue("GuarantorID", Details.CreditorDetails.CreditDetails.GuarantorID); cmd.Parameters.AddWithValue("CardTypeID", Details.CardTypeID); cmd.Parameters.AddWithValue("CardTypeCode", Details.CardTypeCode); cmd.Parameters.AddWithValue("CardTypeName", Details.CardTypeName); cmd.Parameters.AddWithValue("CardNo", Details.CardNo); cmd.Parameters.AddWithValue("CardHolder", Details.CardHolder); cmd.Parameters.AddWithValue("ValidityDates", Details.ValidityDates); cmd.Parameters.AddWithValue("Remarks", Details.Remarks); cmd.Parameters.AddWithValue("TransactionNo", Details.TransactionNo); cmd.Parameters.AddWithValue("CreatedOn", Details.CreatedOn == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.CreatedOn); cmd.Parameters.AddWithValue("LastModified", Details.LastModified == DateTime.MinValue ? Constants.C_DATE_MIN_VALUE : Details.LastModified); cmd.CommandText = SQL; Int32 iRetValue = base.ExecuteNonQuery(cmd); // update this if it's an insert if (Details.CreditCardPaymentID == 0) { Details.CreditCardPaymentID = Int64.Parse(base.getLAST_INSERT_ID(this)); } //save the credit if inhouse credit if (Details.CreditorDetails.ContactID != 0) { CreditPaymentDetails clsCreditPaymentDetails = new CreditPaymentDetails(); clsCreditPaymentDetails.BranchDetails = Details.BranchDetails; clsCreditPaymentDetails.TerminalNo = Details.TerminalNo; clsCreditPaymentDetails.TransactionID = Details.TransactionID; clsCreditPaymentDetails.TransactionNo = Details.TransactionNo; clsCreditPaymentDetails.IsRefund = Details.IsRefund; clsCreditPaymentDetails.TransactionDate = Details.TransactionDate; clsCreditPaymentDetails.CashierName = Details.CashierName; clsCreditPaymentDetails.Amount = Details.Amount; clsCreditPaymentDetails.CustomerDetails = Details.CreditorDetails; clsCreditPaymentDetails.Remarks = Details.Remarks; string additionalRemarks = Details.Remarks; if (!string.IsNullOrEmpty(Details.Remarks)) { additionalRemarks = ";" + (Details.Remarks.Length > 30 ? Details.Remarks.Substring(0, 30) : Details.Remarks); } if (!Details.IsRefund) { clsCreditPaymentDetails.CreditReason = CreditReason.IHCC.ToString("G") + " @ Ter#:" + Details.TerminalNo + " Br#:" + Details.BranchDetails.BranchID.ToString() + additionalRemarks; } else { clsCreditPaymentDetails.CreditReason = CreditReason.IHCC.ToString("G") + " @ Ter#:" + Details.TerminalNo + " Br#:" + Details.BranchDetails.BranchID.ToString() + additionalRemarks + " Refund"; } clsCreditPaymentDetails.CreditCardPaymentID = Details.CreditCardPaymentID; clsCreditPaymentDetails.CreditCardTypeID = Details.CardTypeDetails.CardTypeID; new CreditPayments(base.Connection, base.Transaction).Insert(clsCreditPaymentDetails); // no need for this this is already included in the insert of CreditPayments //Contacts clsContact = new Contacts(base.Connection, base.Transaction); //if (!Details.IsRefund) // clsContact.AddCredit(Details.CreditorDetails.ContactID, Details.Amount); //else // clsContact.AddCredit(Details.CreditorDetails.ContactID, -Details.Amount); } return(iRetValue); } catch (Exception ex) { throw base.ThrowException(ex); } }