//檢查此功能是否已被其他人鎖定 //Retrun 0:無任何鎖定記錄 -1:有自己的鎖定記錄 1:有他人的鎖定記錄 private int QueryControlChk(out string strLockUID, out string strLockTime, out string strLockUserName) { int iResult = 0; strLockUserName = "";//鎖定的使用者 strLockUID = ""; strLockTime = ""; CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add("CAA11"); DataTable dt = BCO.QueryControlChk(ParameterList); if (dt.Rows.Count > 0) { string strID = dt.Rows[0]["ID"].ToString(); strLockUID = dt.Rows[0]["CREATEUID"].ToString(); strLockTime = dt.Rows[0]["CREATEDATE"].ToString(); if ((strLockTime == ViewState["LockTime"].ToString()) && (strLockUID == Session["UID"].ToString()) && (strID == ViewState["LockID"].ToString()) ) { iResult = -1; } else { iResult = 1; strLockUserName = dt.Rows[0]["USER_NAME"].ToString(); ; } } else { iResult = 0; } return iResult; }
/// <summary> /// 刪除鎖定狀態 /// </summary> private void DeleteControlChk(string strID, string strUID, string strLockTime) { try { ParameterList.Clear(); ParameterList.Add("CAA11"); ParameterList.Add(strID); ParameterList.Add(strUID); ParameterList.Add(strLockTime); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); BCO.DeleteControlChk(ParameterList); } catch (Exception ex) { throw ex; } }
private void QueryInvDisTmp() { ArrayList ParameterList = new ArrayList(); //因為原來的ParameterList是全域變數放到Viewstate後會跟著變動,所以自己在宣告一個 ClearGridView(GridView2); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); if (ViewState["Para_QueryInvDisTmp"] == null) { ParameterList.Add(txtYearMonthS.Text.Trim()); ParameterList.Add(txtYearMonthE.Text.Trim()); ParameterList.Add(SLP_DUE_DATE.StartDate); ParameterList.Add(SLP_DUE_DATE.EndDate); ParameterList.Add(SLP_STORE_GROUP.Text.Trim()); ParameterList.Add(SLP_PROFIT.Text.Trim()); ParameterList.Add(SLP_STORE_ID.Text.Trim()); ParameterList.Add(txtPAY_RFNO.Text.Trim()); ParameterList.Add(txtRFNO.Text.Trim()); ParameterList.Add(SLP_Z_O.Text); ParameterList.Add(SLP_SAL_ID.Text); ParameterList.Add(SLP_AC_ID.Text); ParameterList.Add(rblStauts.SelectedValue); ParameterList.Add(ddlCubeType.SelectedValue); ViewState["Para_QueryInvDisTmp"] = ParameterList; } else { ParameterList = (ArrayList)ViewState["Para_QueryInvDisTmp"]; } DataTable dt = ConvertDT_GV2(BCO.QueryInvDisTmp(ParameterList)); Session[PageTimeStamp.Value + GridView2.ID] = dt; ViewState[GridView2.UniqueID + "_ROWID_PRE"] = -1; BindData(GridView2, dt); //if (dt.Rows.Count > 0) //{ // GV_CHANGE_COLOR(GridView2, 0); //} }
protected void btn_Query_Click(object sender, EventArgs e) { try { #region 參數 CAAModel.CAACommon CAAComm = new CAAModel.CAACommon(); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_WASH_NO.Text, "string", this.CheckBoxLikeSearch.Checked)); //V_WASH_NO ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_DUE_NO.Text, "string", this.CheckBoxLikeSearch.Checked)); //V_CUBE_NO ParameterList.Add(GetValueSetOP(this.slp_WASH_AMT.Operator)); //V_WASH_AMT_OP ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_WASH_AMT.Text, "int", false)); //N_WASH_AMT ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_WASH_DATE.StartDate, "string", false)); //V_WASH_DATE_S ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_WASH_DATE.EndDate, "string", false)); //V_WASH_DATE_E ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_CREATEUID.Text, "string", this.CheckBoxLikeSearch.Checked)); //V_CREATEUID ParameterList.Add(CAAComm.GetValueSetParameter(this.TextBoxRowCountLimit.Text, "int", false)); //N_ROWNUM ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false)); //V_LOG_UID #endregion DataTable dt = new DataTable(); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); dt = BCO.QueryAccountSetByLike(ParameterList); //抓取本頁初次登記的時間 string SessionIDName = "CAA081_" + PageTimeStamp.Value; Session["SessionID"] = SessionIDName; Session[SessionIDName] = dt; gv_WASH.DataSource = dt; gv_WASH.PageSize = (TextBoxPagesize.Text == "") ? 10 : (int.Parse(TextBoxPagesize.Text) < 0) ? 10 : int.Parse(TextBoxPagesize.Text); gv_WASH.PageIndex = 0; gv_WASH.DataBind(); #region 將Key值存到Session中 ArrayList arl_Key = new ArrayList(); ArrayList arl_Key_C = new ArrayList(); foreach (DataRow drRow in dt.Rows) { arl_Key.Add(drRow["WASH_NO"].ToString()); arl_Key_C.Add(drRow["CUBE_NO"].ToString()); } Session["CAA082_SortKey" + this.PageTimeStamp.Value] = arl_Key; Session["CAA082_SortKey_C" + this.PageTimeStamp.Value] = arl_Key_C; #endregion if (dt.Rows.Count == 0) { this.ErrorMsgLabel.Text = "查無資料"; } } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
private void ChangeToTemp(string strCOLL_NO, string strPAY_TYPE, string strCLOSE_MONTH) { SaveData();//先儲存畫面資料 CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add(strPAY_TYPE); ParameterList.Add(strCOLL_NO); ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); ParameterList.Add(strCLOSE_MONTH); //CLOSE_MONTH BCO.ChangeStatusToTemp(ParameterList); }
private void QueryAccount() { ArrayList ParameterList = new ArrayList(); ClearGridView(GridView1); ClearGridView(GridView3); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); if (ViewState["Para_QueryAccount"] == null) { ParameterList.Add(SLP_PAYDATE.StartDate); ParameterList.Add(SLP_PAYDATE.EndDate); ParameterList.Add(rblStauts.SelectedValue); ParameterList.Add(ddlPayType.SelectedValue); ParameterList.Add(SLP_STORE_ID.Text.Trim()); ViewState["Para_QueryAccount"] = ParameterList; } else { ParameterList = (ArrayList)ViewState["Para_QueryAccount"]; } DataTable dt = ConvertDT_GV1(BCO.QueryAccount(ParameterList)); Session[PageTimeStamp.Value + GridView1.ID] = dt; ViewState[GridView1.UniqueID + "_ROWID_PRE"] = -1; BindData(GridView1, dt); if (dt.Rows.Count > 0) { GV1_QueryWash(0); } }
private bool OpenClose(string strWASH_STATUS) { bool bResult = false; SaveData();//先儲存畫面資料 DataTable dtGV1 = (DataTable)Session[PageTimeStamp.Value + GridView1.ID]; DataTable dtGV2 = (DataTable)Session[PageTimeStamp.Value + GridView2.ID]; DataRow[] drPays = dtGV1.Select("chkClose=1"); DataRow[] drInvDisTemps = dtGV2.Select("chkClose=1"); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add(drPays); ParameterList.Add(drInvDisTemps); ParameterList.Add(Session["UID"].ToString()); ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); if (strWASH_STATUS == "1") //解除結案 bResult = BCO.ChangeRecordByOpen(ParameterList); else //結案 bResult = BCO.ChangeRecordByClose(ParameterList); return bResult; }
private bool SaveData() { GV1_WriteToCache(); GV2_WriteToCache(); GV3_WriteToCache(); //1.發票/折讓/暫收 drInvDisTmps DataTable dtGV2 = (DataTable)Session[PageTimeStamp.Value + GridView2.ID]; //DataRow[] drInvDisTemps = dtGV2.Select("REMIT_AMT<>REMIT_AMT_O OR INDEED_DATE<>INDEED_DATE_O OR MEMO<>MEMO_O"); //2010/08/24 取消儲存確認付款日和備註的功能 DataRow[] drInvDisTemps = dtGV2.Select("REMIT_AMT<>REMIT_AMT_O"); //2.刪除有異動記錄的立沖關連 DataTable dtGV3 = (DataTable)Session[PageTimeStamp.Value + GridView3.ID]; if (dtGV3 == null) dtGV3 = GV3_DT_SCHEMA(); DataView dvConnect = dtGV3.DefaultView; dvConnect.RowFilter = "CHANGE='1'"; DataTable dtConnectDel = dvConnect.ToTable(true, "LINK_NO"); //ToTable第一個參數為是否Distinct //3.立沖關連 drConnects DataRow[] drConnects = dtGV3.Select("CHANGE='1' AND DEL_FLAG='0' And SOURCE_TYPE='1'", "LINK_NO ASC,SORT_NO ASC"); //4.所有異動過立沖的發票/折讓/暫收單號 重算餘額(因為有些立沖刪除,並未在GV2中就不會重算到金額) DataTable dtInvDisTmpReCal = dvConnect.ToTable(true, "CUBE_NO", "CUBE_TYPE"); //ToTable第一個參數為是否Distinct //0.繳款資訊 drPays string strWhereWashN0 = string.Empty; for (int i = 0; i < dtConnectDel.Rows.Count; i++) { //取得所有異動的繳款資訊 strWhereWashN0 += " OR COLL_NO = '" + dtConnectDel.Rows[i]["LINK_NO"].ToString() + "'"; } DataTable dtGV1 = (DataTable)Session[PageTimeStamp.Value + GridView1.ID]; DataRow[] drPays = dtGV1.Select("DIFF_AMT<>DIFF_AMT_O OR OTHER_DIFF<>OTHER_DIFF_O OR REMIT_DIFF<>REMIT_DIFF_O OR LAST_WASH_DATE<>LAST_WASH_DATE_O " + strWhereWashN0); CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); string strError = string.Empty; foreach (DataRow drConnect in drConnects) { string strCUBE_TYPE = Get_CubeTypeNo(drConnect["CUBE_TYPE"].ToString()); if (strCUBE_TYPE == "1") //只有新增CUBE_TYPE為發票的資料到 VDS_CAA_CONNECT_MAIN { if (drConnect["CHECK_DATE"].ToString() == "1") { ParameterList.Clear(); ParameterList.Add(drConnect["WASH_DATE"].ToString().Replace("/", "").Substring(0, 6)); //5.沖帳日期 ParameterList.Add("CAA11"); bool bCloseMonthCheck = BCO.CheckMonthClose(ParameterList); if (bCloseMonthCheck == true) { strError += "收款單號:" + drConnect["LINK_NO"].ToString() + " 發票號碼: " + drConnect["CUBE_NO"].ToString() + " 沖帳月份 " + drConnect["WASH_DATE"].ToString().Substring(0, 4) + "/" + drConnect["WASH_DATE"].ToString().Substring(4, 2) + " 已月結<br />"; } } } } if (strError != "") { ErrorMsgLabel.Text = strError; return false; } ParameterList.Clear(); //0.繳款資訊 drPays ParameterList.Add(drPays); //GV1 DATA //1.發票/折讓/暫收 drInvDisTmps ParameterList.Add(drInvDisTemps); //GV2 DATA //2.刪除有異動記錄的立沖關連 ParameterList.Add(dtConnectDel); //3.立沖關連 drConnects ParameterList.Add(drConnects); //4.所有異動過立沖的發票/折讓/暫收單號 重算餘額 dtInvDisTmpReCal ParameterList.Add(dtInvDisTmpReCal); //5.UPDATEUID ParameterList.Add(Session["UID"].ToString()); //6.UPDATEDATE ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); BCO.SaveAccountRecord(ParameterList); return true; }
private bool CheckRemitAmtZero(string strYearMonth) { bool bResult = false; CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add(strYearMonth); DataTable dt = BCO.CheckRemitAmtZero(ParameterList); if (dt.Rows.Count > 0) bResult = false; else bResult = true; return bResult; }
private void ConvertDT_GV3_REF(string strType, string strNo) { DataTable dt = null; DataTable dtExist = null; //所從資料庫讀出此收款單號所有關連沖帳資料的所有相關的發票折讓暫收內沖帳資料 CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add(strNo); if (strType == "1") //繳款資訊單號 { dt = BCO.QueryWashRef(ParameterList); } else if (strType == "2")//發票/折讓/暫收單號 { dt = BCO.QueryCubeRef(ParameterList); } else { throw new Exception(); } //檢查有無重複資料,重複資料不加入 if (Session[PageTimeStamp.Value + GridView3.ID + "REF"] != null) { dtExist = (DataTable)Session[PageTimeStamp.Value + GridView3.ID + "REF"]; bool bAdd = false;//是否加入REF暫存區 for (int i = 0; i < dt.Rows.Count; i++) { bAdd = false; //不判斷DEL_FLAG,因為可能是之前資料讀進來後,有做刪除的動作. DataRow[] FindRows = dtExist.Select("CUBE_NO='" + dt.Rows[i]["CUBE_NO"].ToString() + "' And WASH_NO='" + dt.Rows[i]["WASH_NO"].ToString() + "' And LINK_NO='" + dt.Rows[i]["LINK_NO"].ToString() + "' And WASH_DATE='" + dt.Rows[i]["WASH_DATE"].ToString() + "'"); if (FindRows.Length == 0) bAdd = true; if (bAdd == true) { DataRow drNew = dtExist.NewRow(); drNew["CUBE_NO"] = dt.Rows[i]["CUBE_NO"].ToString(); drNew["CUBE_TYPE"] = dt.Rows[i]["CUBE_TYPE"].ToString(); drNew["WASH_NO"] = dt.Rows[i]["WASH_NO"].ToString(); drNew["WASH_TYPE"] = dt.Rows[i]["WASH_TYPE"].ToString(); drNew["WASH_AMT"] = dt.Rows[i]["WASH_AMT"].ToString(); //各單的沖銷金額 drNew["TMP_AMT"] = dt.Rows[i]["TMP_AMT"].ToString(); //原始的發票/折讓/暫收單的金額 drNew["DEL_FLAG"] = "0"; drNew["LINK_NO"] = dt.Rows[i]["LINK_NO"].ToString(); drNew["LINK_TYPE"] = dt.Rows[i]["LINK_TYPE"].ToString(); drNew["SOURCE_TYPE"] = dt.Rows[i]["SOURCE_TYPE"].ToString(); drNew["WASH_DATE"] = dt.Rows[i]["WASH_DATE"].ToString(); dtExist.Rows.Add(drNew); } dtExist.AcceptChanges(); } Session[PageTimeStamp.Value + GridView3.ID + "REF"] = dtExist; } else { Session[PageTimeStamp.Value + GridView3.ID + "REF"] = dt; } }
private DataTable ConvertDT_GV3(string strNo) { bool IsExist = false; //是否已經讀取過這個收款單號 DataTable dtNewLoad = null; //新讀取的資料 DataTable dtExist = null; //已經讀取過的立沖關連資料 DataTable TempTable = null; //整理過的新讀取資料 //判斷立沖關連資料Session裡面是否已有資料存在 if (Session[PageTimeStamp.Value + GridView3.ID] != null) { dtExist = (DataTable)Session[PageTimeStamp.Value + GridView3.ID]; for (int i = 0; i < dtExist.Rows.Count; i++) { if (dtExist.Rows[i]["LINK_NO"].ToString() == strNo) { IsExist = true; break; } } } //假如還沒有讀這筆收款單號 if (IsExist == false) { CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB); ParameterList.Clear(); ParameterList.Add(strNo); dtNewLoad = BCO.QueryWash(ParameterList); } if (dtNewLoad != null) { //把立沖關連資訊的DataTable 轉成適合編輯的DataTable TempTable = GV3_DT_SCHEMA(); //加入比對用的關連資料 ConvertDT_GV3_REF("1", strNo); for (int i = 0; i < dtNewLoad.Rows.Count; i++) { DataRow dr = TempTable.NewRow(); dr["SHOW_CUBE_NO"] = dtNewLoad.Rows[i]["SHOW_CUBE_NO"].ToString(); dr["CUBE_NO"] = dtNewLoad.Rows[i]["CUBE_NO"].ToString(); dr["CUBE_TYPE"] = dtNewLoad.Rows[i]["CUBE_TYPE"].ToString(); dr["WASH_NO"] = dtNewLoad.Rows[i]["WASH_NO"].ToString(); dr["WASH_TYPE"] = dtNewLoad.Rows[i]["WASH_TYPE"].ToString(); dr["WASH_AMT"] = dtNewLoad.Rows[i]["WASH_AMT"].ToString(); dr["WASH_DATE"] = dtNewLoad.Rows[i]["WASH_DATE"].ToString(); dr["DEL_FLAG"] = "0"; dr["CREATEDATE"] = dtNewLoad.Rows[i]["CREATEDATE"].ToString(); dr["CREATEUID"] = dtNewLoad.Rows[i]["CREATEUID"].ToString(); dr["CHANGE"] = "0"; dr["WASH_STATUS"] = dtNewLoad.Rows[i]["WASH_STATUS"].ToString(); dr["WASH_STATUS2"] = dtNewLoad.Rows[i]["WASH_STATUS2"].ToString(); dr["LINK_NO"] = dtNewLoad.Rows[i]["LINK_NO"].ToString(); dr["LINK_TYPE"] = dtNewLoad.Rows[i]["LINK_TYPE"].ToString(); dr["SORT_NO"] = dtNewLoad.Rows[i]["SORT_NO"].ToString(); dr["SOURCE_TYPE"] = dtNewLoad.Rows[i]["SOURCE_TYPE"].ToString(); dr["CLOSE_FLAG"] = dtNewLoad.Rows[i]["CLOSE_FLAG"].ToString(); dr["CHECK_DATE"] = "0"; TempTable.Rows.Add(dr); } } if ((dtExist != null) && (TempTable != null)) { if (TempTable.Rows.Count > 0) { DataSet ds = new DataSet("MergeDataSet"); ds.Tables.Add(dtExist.Copy()); ds.Tables[0].Merge(TempTable); ds.AcceptChanges(); dtExist = ds.Tables[0]; } } else if (dtExist == null) { dtExist = TempTable; } Session[PageTimeStamp.Value + GridView3.ID] = dtExist; //return dtExist; //回傳所有資料 return DT_Filter(dtExist, "LINK_NO='" + strNo + "' And DEL_FLAG='0'"); //只回傳單筆收款單號的沖帳資料 }