public void DeleteServiceSession(int nPackageID, int nSessionID, string remark) { // i need to know it is only one record, and it is 1st record also TblServiceSession serviceSession = new TblServiceSession(); serviceSession.NPackageID = nPackageID; DataTable table = serviceSession.SelectAllWnPackageIDLogic(); bool setNullInMemberPackage = false; bool isDelete1stRecord = false; DateTime newfirstRecordServiceSessionDate = DateTime.MinValue; if (table != null && table.Rows.Count > 0) { if (table.Rows.Count == 1) { setNullInMemberPackage = true; } else { DataRow [] rowList = table.Select("", "nSessionID", DataViewRowState.CurrentRows); int firstRecord_nSessionID = ACMS.Convert.ToInt32(rowList[0]["nSessionID"]); if (firstRecord_nSessionID == nSessionID) { isDelete1stRecord = true; newfirstRecordServiceSessionDate = ACMS.Convert.ToDateTime(rowList[1]["dtDate"]); } } } serviceSession.NSessionID = nSessionID; serviceSession.SelectOne(); serviceSession.DtLastEditDate = DateTime.Now; serviceSession.NEmployeeID = ACMSLogic.User.EmployeeID; //serviceSession.NPackageID = -1; serviceSession.NStatusID = 1; serviceSession.StrRemarks = remark; TblAudit audit = new TblAudit(); audit.DtDate = DateTime.Now; audit.NAuditTypeID = 4; audit.NEmployeeID = User.EmployeeID; audit.StrAuditEntry = "Delete service session with nSessionID = " + nSessionID+ " and nPackageID = " + nPackageID; audit.StrReference = nSessionID.ToString(); TblMemberPackage memberPackage = new TblMemberPackage(); memberPackage.NPackageID = nPackageID; memberPackage.SelectOne(); if (setNullInMemberPackage) { bool isUnlimited = memberPackage.IsUnlimitedPackage(nPackageID); if (!isUnlimited) { memberPackage.DtStartDate = System.Data.SqlTypes.SqlDateTime.Null; memberPackage.DtExpiryDate = System.Data.SqlTypes.SqlDateTime.Null; memberPackage.DtLastEdit = DateTime.Now; memberPackage.NEmployeeID = User.EmployeeID; } } else if (isDelete1stRecord) { TimeSpan duration = memberPackage.DtExpiryDate.Value.Subtract(memberPackage.DtStartDate.Value); DateTime newExpriry = newfirstRecordServiceSessionDate.Add(duration); memberPackage.DtExpiryDate = newExpriry; memberPackage.DtStartDate = newfirstRecordServiceSessionDate; } ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider(); try { memberPackage.MainConnectionProvider = connProvider; serviceSession.MainConnectionProvider = connProvider; audit.MainConnectionProvider = connProvider; connProvider.OpenConnection(); connProvider.BeginTransaction("DeleteServiceSession"); memberPackage.Update(); audit.Insert(); serviceSession.Update(); connProvider.CommitTransaction(); //return true; } catch (Exception) { connProvider.RollbackTransaction("DeleteServiceSession"); throw new Exception("Failed to delete Service Session"); } finally { if (connProvider.CurrentTransaction != null) connProvider.CurrentTransaction.Dispose(); if (connProvider.DBConnection != null) { if (connProvider.DBConnection.State == ConnectionState.Open) connProvider.DBConnection.Close(); } memberPackage.MainConnactionIsCreatedLocal = true; serviceSession.MainConnactionIsCreatedLocal = true; audit.MainConnactionIsCreatedLocal = true; } }
//2604 public void UpdateGiftToFriends(int nServiceSessionID, int nNewServiceEmployeeID, DateTime dtDate, DateTime dtService) { TblServiceSession ss = new TblServiceSession(); ss.NSessionID = nServiceSessionID; ss.SelectOne(); ss.DtDate = dtDate; ss.DtTreatment = dtService; ss.NServiceEmployeeID = nNewServiceEmployeeID; ss.Update(); }
/// <summary> /// Use to Transfer Service Session or Update the service Session /// </summary> /// <param name="nSessionID"></param> /// <param name="dtDate"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="strBranchCode"></param> /// <param name="nPackageID"></param> /// <param name="strServiceCode"></param> /// <param name="nEmployeeInChargeID"></param> /// <param name="remark"></param> /// <param name="isTransfer"></param> public void UpdateServiceSession(int nSessionID, DateTime dtDate, DateTime startTime, DateTime endTime, string strBranchCode, int nPackageID, string strServiceCode, int nEmployeeInChargeID, string remark, int status, bool isTransfer) { TblServiceSession serviceSession = new TblServiceSession(); serviceSession.NSessionID = nSessionID; DataTable table = serviceSession.SelectOne(); if (table == null || table.Rows.Count == 0) throw new Exception("failed to update this package. Record not found"); TblService service = new TblService(); service.StrServiceCode = strServiceCode; DataTable serviceTable = service.SelectOne(); if (serviceTable == null || serviceTable.Rows.Count == 0) throw new Exception("The service is not available."); int duration = ACMS.Convert.ToInt32(service.NDuration); bool isPT = ACMS.Convert.ToInt32(service.NServiceTypeID) == 0; if (!isTransfer) { if (!isPT && !ACMSLogic.SpaBooking.VerifyMemberPackageAllowCertainService(nPackageID, strServiceCode)) throw new Exception("this member package is not allow to use the service"); if (endTime == DateTime.MinValue) endTime = startTime.AddMinutes((Double)duration); if (dtDate != DateTime.MinValue) serviceSession.DtDate = dtDate; if (startTime != DateTime.MinValue) serviceSession.DtStartTime = startTime; if (endTime != DateTime.MinValue) serviceSession.DtEndTime= endTime; if (strBranchCode != "") serviceSession.StrBranchCode = strBranchCode; if (strServiceCode != "") serviceSession.StrServiceCode = strServiceCode; if (nEmployeeInChargeID != -1) serviceSession.NServiceEmployeeID = nEmployeeInChargeID; if (nPackageID != -1) serviceSession.NPackageID = nPackageID; if (remark != "") serviceSession.StrRemarks = remark; if (status != -1) serviceSession.NStatusID = status; if (status == 5) serviceSession.NMarkedByID = User.EmployeeID; } else { serviceSession.NPackageID = nPackageID; } myMemberPackage.NPackageID = nPackageID; DataTable memberPackageTable = myMemberPackage.SelectOne(); if (memberPackageTable == null || memberPackageTable.Rows.Count == 0) throw new Exception("Failed to create new service session. Member Package with npackageID = "+ nPackageID.ToString() + "has been deleted"); DataRow masterRow = memberPackageTable.Rows[0]; if (masterRow["dtStartDate"] == DBNull.Value) { // Means new class Attendance gonna insert TblPackage package = new TblPackage(); package.StrPackageCode = masterRow["strPackageCode"].ToString(); DataTable tablePackage = package.SelectOne(); if (tablePackage == null && tablePackage.Rows.Count == 0) throw new Exception("Failed to update service session. Package no found."); myMemberPackage.DtStartDate = serviceSession.DtDate.Value; myMemberPackage.DtExpiryDate = serviceSession.DtDate.Value.AddMonths(package.NPackageDuration.Value).AddDays(-1); } else { DateTime memberPackageStartDate = ACMS.Convert.ToDateTime(masterRow["DtStartDate"]); DateTime memberPackageExpiryDate = ACMS.Convert.ToDateTime(masterRow["dtExpiryDate"]); if (memberPackageStartDate > serviceSession.DtDate.Value) { myMemberPackage.DtExpiryDate = memberPackageExpiryDate.Subtract(memberPackageStartDate.Subtract(serviceSession.DtDate.Value)); } } serviceSession.NEmployeeID = User.EmployeeID; serviceSession.DtLastEditDate = DateTime.Now; ACMSDAL.ConnectionProvider connProvider = new ConnectionProvider(); try { myMemberPackage.MainConnectionProvider = connProvider; serviceSession.MainConnectionProvider = connProvider; connProvider.OpenConnection(); connProvider.BeginTransaction("SaveServiceSession"); myMemberPackage.Update(); serviceSession.Update(); connProvider.CommitTransaction(); } catch (Exception) { connProvider.RollbackTransaction("SaveServiceSession"); throw new Exception("Failed to save Service Session"); } finally { if (connProvider.CurrentTransaction != null) connProvider.CurrentTransaction.Dispose(); if (connProvider.DBConnection != null) { if (connProvider.DBConnection.State == ConnectionState.Open) connProvider.DBConnection.Close(); } myMemberPackage.MainConnactionIsCreatedLocal = true; serviceSession.MainConnactionIsCreatedLocal = true; } }
private void ActionTakeWhenVoidReceiptForCategory_19(string strReceiptNo, ConnectionProvider connProvider) { //Top-up Single Treatment // strServiceSession = strCode // nSessionID = strReferenceCode // find out the service Session and void it.. TblServiceSession sqlServiceSession = new TblServiceSession(); sqlServiceSession.MainConnectionProvider = connProvider; TblReceiptEntries sqlReceiptEntries = new TblReceiptEntries(); sqlReceiptEntries.MainConnectionProvider = connProvider; sqlReceiptEntries.StrReceiptNo = strReceiptNo; DataTable tableReceiptEntries = sqlReceiptEntries.SelectAllWstrReceiptNoLogic(); if (tableReceiptEntries.Rows.Count > 0) { int nSessionID = 0; foreach (DataRow r in tableReceiptEntries.Rows) { if (!CheckIsRegistrationRow(r)) { nSessionID = ACMS.Convert.ToInt32(r["strReferenceNo"]); sqlServiceSession.NSessionID = nSessionID; sqlServiceSession.SelectOne(); sqlServiceSession.StrRemarks = "Void Receipt : " + strReceiptNo; sqlServiceSession.NStatusID = 1; sqlServiceSession.Update(); } } } }