/// <summary> /// 輸入處理 /// </summary> /// <returns>回傳作業成功失敗</returns> public bool Input() { STMModel.CAACommon dbo = new STMModel.CAACommon(); //StreamWriter Sw = new StreamWriter(@"c:\temp\bbb.txt", true); string InputFileName = JobLib.ConfigHelper.GetConfigValue("STD02", "InputFilePath"); StreamWriter Sw = new StreamWriter(InputFileName, true); Sw.WriteLine("InputSTD02..."); Sw.Flush(); Sw.Close(); return true; }
/// <summary> /// 銷項發票/折讓明細表 /// </summary> /// <param name="ParameterList"></param> /// <returns></returns> public DataTable CAA23_1(ArrayList ParameterList) { #region 宣告變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_ReportService = new ArrayList(); DataTable dt_Return = new DataTable(); #endregion #region 傳入參數 arl_ReportService.Clear(); arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月]起(0) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[結帳年月]迄(1) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[開立日期]起(2) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[開立日期]迄(3) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[店群]起(4) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[店群]迄(5) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[帳務人員](7) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "string", false));//[營業所]起(8) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[營業所]迄(9) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "string", false));//[營業人員](10) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "string", false));//[結帳統編](11) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//[發票號碼](12) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//[路線]起(13) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[14].ToString(), "string", false));//[路線]迄(14) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[16].ToString(), "string", false));//[結帳年月-財會]起(15) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[17].ToString(), "string", false));//[結帳年月-財會]迄(16) #endregion #region 連結資料庫 BCO.RecordingDiscDetail BCO = new BCO.RecordingDiscDetail(ConntionDB); dt_Return = BCO.GetInvDiscDetail(arl_ReportService); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { throw new Exception("查無資料"); } #endregion return dt_Return; }
/// <summary> /// CAA32 頁籤=一二代立沖帳(回復) /// </summary> /// <param name="ParameterList"></param> /// <returns></returns> public DataTable CAA32_1(ArrayList ParameterList) { #region 宣告變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_ReportService = new ArrayList(); DataTable dt_Return = new DataTable(); #endregion #region 傳入參數 arl_ReportService.Clear(); arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[單號](0) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "date", false));//[沖帳日期]起(1) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "date", false));//[沖帳日期]迄(2) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[來源別](3) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[店號](4) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[統一編號](6) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[利潤中心]起(7) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "string", false));//[利潤中心]迄(8) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[營業所]起(9) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "string", false));//[營業所]迄(10) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "string", false));//[營業人員](11) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//[帳務人員](12) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//[建立人員](13) #endregion #region 連結資料庫 BCO.CAA32_BCO bco = new BCO.CAA32_BCO(ConntionDB); dt_Return = bco.QueryPreviousRPT(arl_ReportService); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { throw new Exception("查無資料"); } #endregion return dt_Return; }
/// <summary> /// CAA02報表 /// </summary> /// <param name="ParameterList">變數清單</param> /// <returns>回傳查詢結果</returns> public DataTable CAA06_1(ArrayList ParameterList) { #region 宣告變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_ReportService = new ArrayList(); DataTable dt_Return = new DataTable(); #endregion #region 傳入參數 arl_ReportService.Clear(); arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[報表](0) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "date", false));//[兌換日期]起(1) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "date", false));//[兌換日期]迄(2) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "date", false));//[到期日]起(3) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "date", false));//[到期日]迄(4) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[統一編號](6) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[營業所]起(3) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "string", false));//[營業所]迄(8) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[帳務人員](9) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "string", false));//[登入人員](10) #endregion #region 連結資料庫 BCO.MaintainBondMain bco = new BCO.MaintainBondMain(ConntionDB); dt_Return = bco.DUEYETORNOTYET(arl_ReportService); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { throw new Exception("查無資料"); } else { return dt_Return; } #endregion }
/// <summary> /// CAA02報表 /// </summary> /// <param name="ParameterList">變數清單</param> /// <returns>回傳查詢結果</returns> public DataTable CAA20_1(ArrayList ParameterList) { #region 宣告變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_ReportService = new ArrayList(); DataTable dt_Return = new DataTable(); #endregion #region 傳入參數 arl_ReportService.Clear(); arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[收票日]起 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[收票日]迄 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[託收日]起 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[託收日]迄 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "date", false));//[收款單號日期]起 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "date", false));//[收款單號日期]迄 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[營業所]起 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[營業所]迄 arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "string", false));//[營業人員] arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[帳務人員] #endregion #region 連結資料庫 BCO.MaintainBondMain bco = new BCO.MaintainBondMain(ConntionDB); dt_Return = bco.BondReport(arl_ReportService); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { throw new Exception("查無資料"); } else { return dt_Return; } #endregion }
/// <summary> /// CAA34報表 /// </summary> /// <param name="ParameterList">變數清單</param> /// <returns>回傳查詢結果</returns> public DataTable CAA34_1(ArrayList ParameterList) { #region 宣告變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_ReportService = new ArrayList(); DataTable dt_Return = new DataTable(); #endregion #region 傳入參數 arl_ReportService.Clear(); arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "date", false));//[結帳日期]起(1) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "date", false));//[結帳日期]迄(2) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[利潤中心](3) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[利潤中心](4) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[科目別]起(5) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[開立別]迄(6) arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[登入人員](7) #endregion #region 連結資料庫 BCO.CAA34_BCO bco = new BCO.CAA34_BCO(ConntionDB); dt_Return = bco.QueryReport(arl_ReportService); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { throw new Exception("查無資料"); } else { return dt_Return; } #endregion }
/// <summary> /// 編輯模式下按下[儲存]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Update_Click(object sender, EventArgs e) { try { #region 檢查條件 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("Edit"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "CAA162", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 傳入參數 string strMsg = string.Empty; string strNowDate = DateTime.Now.ToString(); string strNo = dt.Rows[0]["BOND_NO"].ToString(); string str_UN_MONTH_CLOSE = "0"; if (this.cb_UN_MONTH_CLOSE.Checked == true) { str_UN_MONTH_CLOSE = "1"; } string str_EX_DUE_FLG = "0"; if (this.cb_EX_DUE_FLG.Checked == true) { str_EX_DUE_FLG = "1"; } ParameterList.Clear(); //舊資料 ParameterList.Add(CAAComm.GetValueSetParameter(dt.Rows[0]["BOND_NO"].ToString(), "string", false)); //V_OLD_BOND_NO ParameterList.Add(CAAComm.GetValueSetParameter(dt.Rows[0]["CREATEDATE"].ToString(), "datetime", false)); //D_OLD_CREATEDATE ParameterList.Add(CAAComm.GetValueSetParameter(dt.Rows[0]["CREATEUID"].ToString(), "string", false)); //V_OLD_CREATEUID ParameterList.Add(CAAComm.GetValueSetParameter(dt.Rows[0]["UPDATEDATE"].ToString(), "datetime", false)); //D_OLD_UPDATEDATE ParameterList.Add(CAAComm.GetValueSetParameter(dt.Rows[0]["UPDATEUID"].ToString(), "string", false)); //V_OLD_UPDATEUID //新資料 ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_BOND_NO.Text, "string", false)); //V_NEW_BOND_NO ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false)); //V_NEW_STORE_ID ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_BOND_ID.Text.ToUpper(), "string", false)); //V_NEW_BOND_ID ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_BOND_TYPE.Text, "string", false)); //V_NEW_BOND_TYPE ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_ACCEPT_BOND_DATE.Text, "date", false)); //D_NEW_ACCEPT_BOND_DATE ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_DUE_DATE.Text, "date", false)); //D_NEW_DUE_DATE ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_BOND_AMT.Text, "int", false)); //N_NEW_BOND_AMT ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_POSTAGE.Text, "int", false)); //N_NEW_POSTAGE ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_PAY_BANK.Text, "string", false)); //V_NEW_PAY_BANK ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_PAY_ACCOUNT.Text, "string", false)); //V_NEW_PAY_ACCOUNT ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_COLL_BANK.Text, "string", false)); //V_NEW_COLL_BANK ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_COLL_ID.Text, "string", false)); //V_NEW_COLL_ID ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_NB_COLL_DATE.Text, "date", false)); //D_NEW_NB_COLL_DATE ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false)); //V_NEW_MEMO ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_REJECT_DATE.Text, "date", false)); //D_NEW_REJECT_DATE ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_REJECT_MEMO.Text, "string", false)); //V_NEW_REJECT_MEMO ParameterList.Add(CAAComm.GetValueSetParameter(str_UN_MONTH_CLOSE, "string", false)); //V_NEW_UN_MONTH_CLOSE ParameterList.Add(CAAComm.GetValueSetParameter(str_EX_DUE_FLG, "string", false)); //V_NEW_EX_DUE_FLG ParameterList.Add(CAAComm.GetValueSetParameter(strNowDate, "datetime", false)); //D_NEW_UPDATEDATE ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false)); //V_NEW_UPDATEUID #endregion #region 組合跳轉頁面字串 string s_ADDLocation_Replace_String = string.Empty; try { int i_Count = int.Parse(Request.QueryString["CAA162_COUNT"]); string s_Request_Key = Request.QueryString["CAA162_PageTimeStamp"]; s_ADDLocation_Replace_String = "&CAA162_COUNT=" + i_Count.ToString() + "&CAA162_PageTimeStamp=" + s_Request_Key; } catch { s_ADDLocation_Replace_String = string.Empty; } #endregion #region 連結資料庫 BCO.MaintainBondRecord bco = new BCO.MaintainBondRecord(ConntionDB); ArrayList aryUpd = bco.UpdateBondRecord(ParameterList, null); #endregion #region 跳轉頁面至檢視模式 strMsg = "alert('" + aryUpd[1].ToString() + "');location.replace('CAA162.aspx?V_NO=" + strNo + "&mode=VIEW&Code=CAA16" + s_ADDLocation_Replace_String + "');"; ScriptManager.RegisterStartupScript(this.btn_Update, this.GetType(), "TO_CAA162.aspx", strMsg, true); #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
private bool Check_BOND_ID() { bool bResult = false; #region 傳入參數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_BOND_NO.Text, "string", false));//收款單號 ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_BOND_ID.Text.ToUpper(), "string", false));//票據號碼 ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_DUE_DATE.Text, "date", false));//到期日 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//登入人員 #endregion #region 連結資料庫 DataTable dt_Return = new DataTable(); BCO.MaintainBondRecord bco = new BCO.MaintainBondRecord(ConntionDB); dt_Return = bco.CHECK_BOND_ID(ParameterList); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 0) { bResult = true; } #endregion return bResult; }
private ArrayList Check_Condition(string s_Type) { #region 宣告 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Return = new ArrayList(); arl_Return.Add(string.Empty);//該欄位放Focus欄位之ClientID arl_Return.Add(string.Empty);//該欄位放錯誤訊息 #endregion #region [新增][編輯]模式下按下[儲存]鈕 if (s_Type == "Insert" || s_Type == "Edit") { #region 檢查必填欄位 arl_Return = CAAComm.Check_MustFillin_Column(this.slp_STORE_ID.Text, "text", "欄位[客戶代號/名稱]為必填欄位", "1", this.slp_STORE_ID.TextBox_Code.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.txt_BOND_ID.Text, "text", "欄位[票據號碼]為必填欄位", "1", this.txt_BOND_ID.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_BOND_TYPE.Text, "text", "欄位[方式]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_ACCEPT_BOND_DATE.Text, "text", "欄位[收票日]為必填欄位", "1", this.slp_ACCEPT_BOND_DATE.DateTextBox.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_DUE_DATE.Text, "text", "欄位[到期日]為必填欄位", "1", this.slp_DUE_DATE.DateTextBox.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_BOND_AMT.Text, "text", "欄位[金額]為必填欄位", "1", this.slp_BOND_AMT.TextBox_Code.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_PAY_BANK.Text, "text", "欄位[付款銀行]為必填欄位", "1", this.slp_PAY_BANK.TextBox_Code.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.txt_PAY_ACCOUNT.Text, "text", "欄位[付款帳號]為必填欄位", "1", this.txt_PAY_ACCOUNT.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_NB_COLL_DATE.Text, "text", "欄位[票據託收日/交換日]為必填欄位", "1", this.slp_NB_COLL_DATE.DateTextBox.ClientID, arl_Return); #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 自訂檢查 #region 檢查店號 //新增模式下,店號必須以 sysdate 為基準來做查詢 if (Check_StoreDate(this.slp_STORE_ID.Text, DateTime.Parse(this.hid_CREATEDATE.Value)) == false) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[客戶代號/名稱]必須是有效的客戶代號/名稱", "1", string.Empty); } #endregion #region 檢查欄位[票據託收日/交換日]必須大於或等於欄位[收票日] if (this.slp_NB_COLL_DATE.Text.CompareTo(this.slp_ACCEPT_BOND_DATE.Text) == -1) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[票據託收日/交換日]必須大於或等於欄位[收票日]", "1", this.slp_NB_COLL_DATE.DateTextBox.ClientID); } #endregion #region 檢查[票據號碼]是否重複 if (Check_BOND_ID() == false) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[票據號碼]資料重複", "1", string.Empty); } #endregion #region 檢查該張支票月份是否月結 if (Check_BOND_Monthly() == true) { if (s_Type == "Insert") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票月份己月結,無法新增支票。", "1", string.Empty); } else if (s_Type == "Edit") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票月份己月結,無法異動支票。", "1", string.Empty); } } #endregion #region 編輯模式下另外檢查該張支票[是否退票][是否兌現][是否沖帳] //注意:[檢視]模式下按下[編輯]鈕的檢查,在這邊都要再做一次,才不會有時間差 if (s_Type == "Edit") { #region 檢查該張支票是否退票 if (this.slp_REJECT_DATE.Text != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已退票,不允許儲存!", "1", string.Empty); } #endregion #region 檢查該張支票是否兌現 if (this.cb_EX_DUE_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已兌現,不允許儲存!", "1", string.Empty); } #endregion #region 檢查該張支票是否沖帳 //20101025 Jacky 不用WASH_STATUS爛位做判斷 //if (this.hid_WASH_STATUS.Value != "0") //{ arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已沖帳,不允許儲存!", "1", string.Empty); } if (CheckWASH_YN() == true) arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已沖帳,不允許修改!", "1", string.Empty); #endregion } #endregion #endregion } #endregion #region [檢視]模式下按下[編輯]鈕 else if (s_Type == "View") { #region 自訂檢查 #region 檢查該張支票月份是否月結 if (Check_BOND_Monthly() == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票月份已月結,若需編輯,請先解除月結。", "1", string.Empty); } #endregion #region 檢查該張支票是否退票 if (this.slp_REJECT_DATE.Text != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已退票,不允許修改!", "1", string.Empty); } #endregion #region 檢查該張支票是否兌現 if (this.cb_EX_DUE_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已兌現,不允許修改!", "1", string.Empty); } #endregion #region 檢查該張支票是否沖帳 //20101025 Jacky 不用WASH_STATUS爛位做判斷 //if (this.hid_WASH_STATUS.Value != "0") //{ arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已沖帳,不允許修改!", "1", string.Empty); } if (CheckWASH_YN() == true) arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "此支票已沖帳,不允許修改!", "1", string.Empty); #endregion #endregion } #endregion return arl_Return; }
/// <summary> /// 檢查條件 /// </summary> /// <returns></returns> private ArrayList Check_Condition(string s_Type) { #region 宣告 BCO_CAA.CAACommon CAAComm = new BCO_CAA.CAACommon(); ArrayList arl_Return = new ArrayList(); arl_Return.Add(string.Empty);//該欄位放Focus欄位之ClientID arl_Return.Add(string.Empty);//該欄位放錯誤訊息 #endregion #region BUTTON [查詢]鈕 if (s_Type == "BUTTON [查詢]鈕") { #region 檢查必填欄位 arl_Return = CAAComm.Check_MustFillin_Column(this.slp_ST_ACCEPT_DATE.Text, "text", "欄位[門市進貨日]為必填欄位", "1", this.slp_ST_ACCEPT_DATE.DateTextBox.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.txt_PICK_BATCH.Text, "text", "欄位[理貨批次]為必填欄位", "1", this.txt_PICK_BATCH.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.txt_FULL_BARCODE.Text, "text", "欄位[商品條碼]為必填欄位", "1", this.txt_FULL_BARCODE.ClientID, arl_Return); #endregion #region 檢查SLP日期格式 arl_Return = CAAComm.Check_Format_Date(this.slp_ST_ACCEPT_DATE.Text, "欄位[門市進貨日]日期格式錯誤", "1", this.slp_ST_ACCEPT_DATE.DateTextBox.ClientID, arl_Return); #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 檢查Between欄位[理貨線] if (this.ddl_LINE_B.SelectedValue != string.Empty || this.ddl_LINE_E.SelectedValue != string.Empty) { #region 檢查Between欄位結束欄位一定要大於或等於開始欄位 arl_Return = CAAComm.Check_Between_End_GreaterThan_Begin (this.ddl_LINE_B.Text, this.ddl_LINE_E.Text, "string", "欄位[理貨線]結束欄位一定要大於或等於開始欄位", "1", string.Empty, arl_Return); #endregion } #endregion } #endregion #region BUTTON [檔案下載]鈕 else { #region 檢查儲存 GirdView 的 ViewState 是否有值 if (dt_Result == null || dt_Result.Rows.Count == 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "無資料可供下載", "1", string.Empty); } #endregion } #endregion return arl_Return; }
/// <summary> /// BUTTON [查詢]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void but_Query_Click(object sender, EventArgs e) { try { #region 設定變數 DataTable dt_Return_UP = new DataTable(); #endregion #region 檢查條件 BCO_CAA.CAACommon CAAComm = new BCO_CAA.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("BUTTON [查詢]鈕"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CGD261", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 取得欄位[條碼][二段條碼][品名][品號][期別] #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_FULL_BARCODE.Text, "string", false));//[商品條碼] #endregion #region 連接資料庫 BCO_IVM.MaintainDataTrans bco_IVM = new BCO_IVM.MaintainDataTrans(ConntionDB); dt_Return_UP = bco_IVM.GetItemByBarCode(ParameterList); #endregion #region 檢查回傳資料 if (dt_Return_UP.Rows.Count == 0) { this.ErrorMsgLabel.Text = "查無資料"; dt_Result = null; this.Repeater1.DataSource = dt_Result; this.Repeater1.DataBind(); this.txt_BARCODE.Text = string.Empty;//條碼 this.txt_PERIOD_BARCODE.Text = string.Empty;//二段條碼 this.txt_ITEM_NAME.Text = string.Empty;//品名 this.txt_ITEM.Text = string.Empty;//品號 this.txt_PERIOD.Text = string.Empty;//期別 return; } #endregion #region 將資料寫入欄位 this.txt_BARCODE.Text = dt_Return_UP.Rows[0]["BARCODE"].ToString(); this.txt_PERIOD_BARCODE.Text = dt_Return_UP.Rows[0]["PERIOD_BARCODE"].ToString(); this.txt_ITEM_NAME.Text = dt_Return_UP.Rows[0]["ITEM_NAME"].ToString(); this.txt_ITEM.Text = dt_Return_UP.Rows[0]["ITEM"].ToString(); this.txt_PERIOD.Text = dt_Return_UP.Rows[0]["PERIOD"].ToString(); #endregion #endregion #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_ST_ACCEPT_DATE.Text, "date", false));//[門市進貨日] ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_PICK_BATCH.Text, "string", false));//[理貨批次] ParameterList.Add(CAAComm.GetValueSetParameter(this.ddl_LINE_B.SelectedValue, "string", false));//[理貨線]起 ParameterList.Add(CAAComm.GetValueSetParameter(this.ddl_LINE_E.SelectedValue, "string", false));//[理貨線]迄 ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_ITEM.Text, "string", false));//[品號] ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_PERIOD.Text, "string", false));//[期別] ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//[登入人員] #endregion #region 連接資料庫 BCO_CGD.CGD26_BCO bco_CGD = new BCO_CGD.CGD26_BCO(ConntionDB); dt_Result = bco_CGD.QUERY_CGD26_DATA(ParameterList); #endregion #region 資料載入畫面 this.Repeater1.DataSource = dt_Result; this.Repeater1.DataBind(); #endregion #region 檢查回傳資料 if (dt_Result.Rows.Count == 0) { this.ErrorMsgLabel.Text = "查無資料"; ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CGD261_FOCUS", "setTimeout(function(){document.getElementById('" + txt_FULL_BARCODE.ClientID + "').focus();},10);", true); } else { string s_Filter_Expression = string.Empty;//篩選資料SQL s_Filter_Expression = "ROW_TYPE = 'ITEM'"; DataRow[] dr_IMG = dt_Result.Select(s_Filter_Expression); if (dr_IMG.Length == 1) { } else { this.ErrorMsgLabel.Text = "該筆資料查無商品的資料。"; } txt_FULL_BARCODE.Text = ""; ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CGD261_FOCUS", "setTimeout(function(){document.getElementById('" + but_Out.ClientID + "').focus();},10);", true); } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
/// <summary> /// BUTTON [儲存]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void but_Save_Click(object sender, EventArgs e) { try { #region 新增模式 if (this.hid_PageStatus.Value == "insert") { #region 檢查條件 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("BUTTON [儲存]鈕,新增狀態"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 至資料庫取得Table Schema ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID DataTable dt_Update_Inv = new DataTable(); DataTable dt_New_Main = new DataTable(); DataTable dt_New_Detl = new DataTable(); BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); dt_Update_Inv = bco.GET_VDS_CAA_INV_MAIN_SCHEMA(ParameterList); dt_New_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); dt_New_Detl = bco.GET_VDS_CAA_DISC_DETL_SCHEMA(ParameterList); #endregion #region 將資料寫入Temp Table string s_Now = DateTime.Now.ToString(); string s_CLOSE_MONTH_ACCT = string.Empty; #region SLP轉型 TextBox txt_DISC_AMT = (TextBox)this.slp_DISC_AMT.FindControl("TextBoxCode");//總金額 #endregion #region VDS_CAA_DISC_MAIN DataRow dr_New_Main = dt_New_Main.NewRow(); #region 設定欄位[結帳年月-財會] if (this.slp_DISC_SOURCE.Text == "1")//欄位[來源]=系統開立 { s_CLOSE_MONTH_ACCT = this.slp_CLOSE_MONTH_ACCT.Text; } else if (this.slp_DISC_SOURCE.Text == "2")//欄位[來源]=人工開立 { s_CLOSE_MONTH_ACCT = (this.slp_PROOF_DATE.Text == string.Empty) ? string.Empty : DateTime.Parse(this.slp_PROOF_DATE.Text).ToString("yyyyMM"); } #endregion dr_New_Main["DISC_FORM"] = CAAComm.GetValueSetParameter(this.slp_DISC_FORM.Text, "int", false);//格式代號 dr_New_Main["DISC_SOURCE"] = CAAComm.GetValueSetParameter(this.slp_DISC_SOURCE.Text, "int", false);//來源 dr_New_Main["STORE_ID"] = CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false);//店號 dr_New_Main["DISC_TYPE"] = CAAComm.GetValueSetParameter(this.slp_DISC_TYPE.Text, "string", false);//形式 dr_New_Main["ROOT_NO"] = CAAComm.GetValueSetParameter(this.slp_ROOT_NO.Text, "string", false);//商品群分類 dr_New_Main["TAX_TYPE"] = CAAComm.GetValueSetParameter(this.slp_TAX_TYPE.Text, "string", false);//稅別 dr_New_Main["DISC_DATE"] = CAAComm.GetValueSetParameter(this.slp_DISC_DATE.Text, "date", false);//折讓日期 dr_New_Main["CHG_DISC_DATE"] = CAAComm.GetValueSetParameter(this.slp_CHG_DISC_DATE.Text, "date", false);//異動折讓日期 dr_New_Main["ACT_DISC_NO"] = CAAComm.GetValueSetParameter(this.txt_ACT_DISC_NO.Text, "string", false);//財會折讓單號 dr_New_Main["PROOF_FLG"] = CAAComm.GetValueSetParameter((this.chb_PROOF_FLG.Checked == true) ? "1" : "0", "int", false);//憑證已回 dr_New_Main["PROOF_DATE"] = CAAComm.GetValueSetParameter(this.slp_PROOF_DATE.Text, "date", false);//憑證已回日期 dr_New_Main["REPROOF_FLG"] = CAAComm.GetValueSetParameter((this.chb_REPROOF_FLG.Checked == true) ? "1" : "0", "int", false);//取具進項憑証 dr_New_Main["REPROOF_NO"] = CAAComm.GetValueSetParameter(this.txt_REPROOF_NO.Text, "string", false);//發票號碼/收據 dr_New_Main["CANCEL_FLG"] = CAAComm.GetValueSetParameter((this.chb_CANCEL_FLG.Checked == true) ? "1" : "0", "int", false);//作廢 dr_New_Main["CANCEL_DATE"] = CAAComm.GetValueSetParameter(this.slp_CANCEL_DATE.Text, "date", false);//作廢日期 dr_New_Main["PERIOD_FLG"] = CAAComm.GetValueSetParameter((this.chb_PERIOD_FLG.Checked == true) ? "1" : "0", "int", false);//申報 dr_New_Main["PERIOD_DATE"] = CAAComm.GetValueSetParameter(this.slp_PERIOD_DATE.Text, "date", false);//申報日期 dr_New_Main["TEMPORAL_FLG"] = CAAComm.GetValueSetParameter((this.chb_TEMPORAL_FLG.Checked == true) ? "1" : "0", "int", false);//轉暫收 dr_New_Main["TEMPORAL_DATE"] = CAAComm.GetValueSetParameter(this.slp_TEMPORAL_DATE.Text, "date", false);//暫收日期 dr_New_Main["RFNO"] = CAAComm.GetValueSetParameter(this.txt_RFNO.Text, "string", false);//統一編號 dr_New_Main["DISC_UAMT"] = CAAComm.GetValueSetParameter(this.slp_DISC_UAMT.Text, "int", false);//折讓金額(未稅) dr_New_Main["DISC_TAX"] = CAAComm.GetValueSetParameter(this.slp_DISC_TAX.Text, "int", false);//折讓稅額 dr_New_Main["DISC_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//總金額 dr_New_Main["CLOSE_MONTH"] = CAAComm.GetValueSetParameter(this.slp_CLOSE_MONTH.Text, "string", false);//結帳年月 dr_New_Main["MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 dr_New_Main["CREATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//建立日期 dr_New_Main["CREATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//建立人員 dr_New_Main["UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_New_Main["UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_New_Main["ENABLE"] = CAAComm.GetValueSetParameter("1", "int", false);//有效 dr_New_Main["DETL_FLG"] = CAAComm.GetValueSetParameter((this.chb_REPROOF_FLG.Checked == true) ? "0" : "1", "int", false);//明細註記,0代表沒有明細,1代表有明細 dr_New_Main["REMARK_FLG"] = CAAComm.GetValueSetParameter("0", "int", false);//標記註記(預設為0) dr_New_Main["CHECK_FLG"] = CAAComm.GetValueSetParameter("0", "int", false);//勾選註記(預設為0) dr_New_Main["DISC_REMAIN_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//沖帳餘額(預設等於總金額[DISC_AMT]) dr_New_Main["WASH_STATUS"] = CAAComm.GetValueSetParameter("0", "int", false);//沖帳狀態(預設為0) dr_New_Main["SOURCE_TYPE"] = CAAComm.GetValueSetParameter("1", "string", false);//區分資料來源(預設為1),1是代表營業系統,2是代表財會系統 dr_New_Main["IS_SCHEDULE"] = CAAComm.GetValueSetParameter("0", "int", false);//檔期(預設為0),1代表有檔期,0代表沒有檔期 dr_New_Main["CLOSE_MONTH_ACCT"] = CAAComm.GetValueSetParameter(s_CLOSE_MONTH_ACCT, "int", false);//結帳年月-財會 dr_New_Main["RECEIPT_FLG"] = CAAComm.GetValueSetParameter((this.chb_RECEIPT_FLG.Checked == true) ? "1" : "0", "int", false);//取具收據 dt_New_Main.Rows.Add(dr_New_Main); #endregion #region VDS_CAA_DISC_DETL //如果[取具進項憑証]和[取具收據]都沒有被勾選,才必須新增 Detl 資料 if (this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) { DataTable dt_NewItem_New = new DataTable(); DataTable dt_NewItem_Modify = new DataTable(); dt_NewItem_New = dt_NewItem.GetChanges(DataRowState.Added); dt_NewItem_Modify = dt_NewItem.GetChanges(DataRowState.Modified); if (dt_NewItem_New != null || dt_NewItem_Modify != null) { if (dt_NewItem_New != null) { foreach (DataRow dr_NewItem_New in dt_NewItem_New.Rows) { //新增模式,若[折讓金額(未稅)]為0且[折讓稅額]為0,則該筆資料不新增至資料庫 if (dr_NewItem_New["DISC_UAMT"].ToString() != "0" || dr_NewItem_New["DISC_TAX"].ToString() != "0") { Set_NewItem_To_Temp_For_Add(dr_NewItem_New, dt_New_Detl, s_Now); } } } if (dt_NewItem_Modify != null) { foreach (DataRow dr_NewItem_Modify in dt_NewItem_Modify.Rows) { //新增模式,若[折讓金額(未稅)]為0且[折讓稅額]為0,則該筆資料不新增至資料庫 if (dr_NewItem_Modify["DISC_UAMT"].ToString() != "0" || dr_NewItem_Modify["DISC_TAX"].ToString() != "0") { Set_NewItem_To_Temp_For_Add(dr_NewItem_Modify, dt_New_Detl, s_Now); } } } } if (dt_New_Detl.Rows.Count == 0) { this.ErrorMsgLabel.Text = "無需要異動的資料"; return; } } #endregion #region VDS_CAA_INV_MAIN //如果[取具進項憑証]和[取具收據]都沒有被勾選,才要做以下動作 if (this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) { foreach (DataRow dr_New_Detl in dt_New_Detl.Rows) { string s_FilterExpression = "INV_NO = '" + dr_New_Detl["INV_NO"].ToString() + "'"; DataRow[] dr_NewItem = dt_NewItem.Select(s_FilterExpression); if (dr_NewItem.Length == 1) { Set_NewItem_To_Temp_For_INV_MAIN(dr_NewItem[0], dt_Update_Inv, s_Now); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,更改資料至發票主檔,發生頁面資料錯誤"); } } } #endregion #endregion #region 連結資料庫 string s_DISC_NO = bco.CreateDiscRecord(null, dt_New_Main, dt_New_Detl, dt_Update_Inv); #endregion #region 清空變數,跳轉頁面至檢視模式 if (dt_NewItem != null) { dt_NewItem.Clear(); } ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CAA182", "alert('新增完成');location.replace('CAA182.aspx?Code=CAA18&CAA182_Mode=view&CAA182_DISC_NO=" + s_DISC_NO + "');", true); #endregion } #endregion #region 編輯模式 else if (this.hid_PageStatus.Value == "edit") { #region 檢查條件 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("BUTTON [儲存]鈕,編輯狀態"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 判斷是做何種勾選動作 bool b_IsRight = false; string s_ReturnMsg = string.Empty; Check_CheckStatus(out b_IsRight, out s_ReturnMsg); #endregion #region 20100310 秀玲新增規則,已沖帳時,檢查狀態 #region 規則 /* 因為在檢視頁進入編輯頁時有做限制, * 所以在[總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]不相同,代表已沖帳時, * 按下[儲存]鈕時,會有6種情況(請看function Check_CheckStatus的邏輯) * (1)都沒有勾 * (2)勾選欄位[取具進項憑証] * (3)勾選欄位[取具收據] * (4)勾選欄位[憑證已回] * (5)勾選欄位[轉暫收] * (6)原本就勾選欄位[申報] * 如果不是這5種狀況,則提示錯誤訊息*/ #endregion arl_Check_Condition.Clear(); arl_Check_Condition = Check_Condition("BUTTON [儲存]鈕,編輯模式,判斷完狀態後的檢查", s_ReturnMsg); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion return; } #endregion #endregion #region 依照勾選動作將資料寫入TempTable,並連結資料庫 #region SLP轉型 TextBox txt_TEMPORAL_DATE = (TextBox)this.slp_TEMPORAL_DATE.FindControl("TextBoxCode");//暫收日期 TextBox txt_DISC_AMT = (TextBox)this.slp_DISC_AMT.FindControl("TextBoxCode");//總金額 #endregion #region 宣告變數 DataTable dt_Update_Inv = new DataTable(); DataTable dt_Update_Disc_Main = new DataTable(); DataTable dt_Add_Disc_Detl = new DataTable(); DataTable dt_Update_Disc_Detl = new DataTable(); DataTable dt_Delete_Disc_Detl = new DataTable(); BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); string s_Now = DateTime.Now.ToString(); string s_DISC_NO = string.Empty; string s_CLOSE_MONTH_ACCT = string.Empty; ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID #endregion #region 規則 //只會有以下10種情況,不是這8種情況就是錯誤的 //1.勾選欄位[憑證已回] //2.勾選欄位[取具進項憑証] //3.勾選欄位[取具收據] //4.勾選欄位[作廢] //5.勾選欄位[轉暫收] //6.取消勾選欄位[憑證已回] //7.取消勾選欄位[取具進項憑証] //8.取消勾選欄位[取具收據] //9.都沒有勾 //10.原本就勾選欄位[申報] #endregion #region 勾選欄位[憑證已回] or 取消勾選欄位[憑證已回] or 取消勾選欄位[取具進項憑証] or 取消勾選欄位[取具收據] or 都沒有勾 if (s_ReturnMsg == "勾選欄位[憑證已回]" || s_ReturnMsg == "取消勾選欄位[憑證已回]" || s_ReturnMsg == "取消勾選欄位[取具進項憑証]" || s_ReturnMsg == "取消勾選欄位[取具收據]" || s_ReturnMsg == "都沒有勾") { #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]相同,尚未沖帳 if (dt_Main.Rows[0]["DISC_REMAIN_AMT"].ToString() == dt_Main.Rows[0]["DISC_AMT"].ToString()) { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); dt_Add_Disc_Detl = bco.GET_VDS_CAA_DISC_DETL_SCHEMA(ParameterList); dt_Update_Disc_Detl = dt_Add_Disc_Detl.Copy(); dt_Delete_Disc_Detl = dt_Add_Disc_Detl.Copy(); dt_Update_Inv = bco.GET_VDS_CAA_INV_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_DISC_TYPE", dt_Update_Disc_Main.Columns["DISC_TYPE"].DataType);//型式 dt_Update_Disc_Main.Columns.Add("NEW_ACT_DISC_NO", dt_Update_Disc_Main.Columns["ACT_DISC_NO"].DataType);//財會折讓單號 dt_Update_Disc_Main.Columns.Add("NEW_CHG_DISC_DATE", dt_Update_Disc_Main.Columns["CHG_DISC_DATE"].DataType);//異動折讓日期 dt_Update_Disc_Main.Columns.Add("NEW_PROOF_FLG", dt_Update_Disc_Main.Columns["PROOF_FLG"].DataType);//憑證已回 dt_Update_Disc_Main.Columns.Add("NEW_PROOF_DATE", dt_Update_Disc_Main.Columns["PROOF_DATE"].DataType);//憑證已回日期 dt_Update_Disc_Main.Columns.Add("NEW_REPROOF_FLG", dt_Update_Disc_Main.Columns["REPROOF_FLG"].DataType);//取具進項憑証 dt_Update_Disc_Main.Columns.Add("NEW_REPROOF_NO", dt_Update_Disc_Main.Columns["REPROOF_NO"].DataType);//發票號碼/收據 dt_Update_Disc_Main.Columns.Add("NEW_RECEIPT_FLG", dt_Update_Disc_Main.Columns["RECEIPT_FLG"].DataType);//取具收據 dt_Update_Disc_Main.Columns.Add("NEW_DISC_UAMT", dt_Update_Disc_Main.Columns["DISC_UAMT"].DataType);//折讓金額(未稅) dt_Update_Disc_Main.Columns.Add("NEW_DISC_TAX", dt_Update_Disc_Main.Columns["DISC_TAX"].DataType);//折讓稅額 dt_Update_Disc_Main.Columns.Add("NEW_DISC_AMT", dt_Update_Disc_Main.Columns["DISC_AMT"].DataType);//總金額 dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 dt_Update_Disc_Main.Columns.Add("NEW_CLOSE_MONTH_ACCT", dt_Update_Disc_Main.Columns["CLOSE_MONTH_ACCT"].DataType);//結帳年月-財會 dt_Update_Disc_Main.Columns.Add("NEW_DISC_REMAIN_AMT", dt_Update_Disc_Main.Columns["DISC_REMAIN_AMT"].DataType);//沖帳餘額 dt_Update_Disc_Main.Columns.Add("NEW_DETL_FLG", dt_Update_Disc_Main.Columns["DETL_FLG"].DataType);//明細註記(1是有明細0是沒明細) #endregion #region 新增 VDS_CAA_DISC_DETL 的異動欄位 dt_Update_Disc_Detl.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Detl.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Detl.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Detl.Columns["UPDATEUID"].DataType); dt_Update_Disc_Detl.Columns.Add("NEW_DISC_UAMT", dt_Update_Disc_Detl.Columns["DISC_UAMT"].DataType); dt_Update_Disc_Detl.Columns.Add("NEW_DISC_TAX", dt_Update_Disc_Detl.Columns["DISC_TAX"].DataType); dt_Update_Disc_Detl.Columns.Add("NEW_DISC_AMT", dt_Update_Disc_Detl.Columns["DISC_AMT"].DataType); #endregion #region 將資料寫入Temp Table #region VDS_CAA_DISC_MAIN foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); #region 設定欄位[結帳年月-財會] if (this.slp_DISC_SOURCE.Text == "1")//欄位[來源]=系統開立 { s_CLOSE_MONTH_ACCT = this.slp_CLOSE_MONTH_ACCT.Text; } else if (this.slp_DISC_SOURCE.Text == "2")//欄位[來源]=人工開立 { s_CLOSE_MONTH_ACCT = (this.slp_PROOF_DATE.Text == string.Empty) ? string.Empty : DateTime.Parse(this.slp_PROOF_DATE.Text).ToString("yyyyMM"); } #endregion dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_DISC_TYPE"] = CAAComm.GetValueSetParameter(this.slp_DISC_TYPE.Text, "string", false);//型式 dr_Update_Disc_Main["NEW_ACT_DISC_NO"] = CAAComm.GetValueSetParameter(this.txt_ACT_DISC_NO.Text, "string", false);//財會折讓單號 dr_Update_Disc_Main["NEW_CHG_DISC_DATE"] = CAAComm.GetValueSetParameter(this.slp_CHG_DISC_DATE.Text, "date", false);//異動折讓日期 dr_Update_Disc_Main["NEW_PROOF_FLG"] = CAAComm.GetValueSetParameter((this.chb_PROOF_FLG.Checked == true) ? "1" : "0", "int", false);//憑證已回 dr_Update_Disc_Main["NEW_PROOF_DATE"] = CAAComm.GetValueSetParameter(this.slp_PROOF_DATE.Text, "date", false);//憑證已回日期 dr_Update_Disc_Main["NEW_REPROOF_FLG"] = CAAComm.GetValueSetParameter((this.chb_REPROOF_FLG.Checked == true) ? "1" : "0", "int", false);//取具進項憑証 dr_Update_Disc_Main["NEW_REPROOF_NO"] = CAAComm.GetValueSetParameter(this.txt_REPROOF_NO.Text, "string", false);//發票號碼/收據 dr_Update_Disc_Main["NEW_RECEIPT_FLG"] = CAAComm.GetValueSetParameter((this.chb_RECEIPT_FLG.Checked == true) ? "1" : "0", "int", false);//取具收據 dr_Update_Disc_Main["NEW_DISC_UAMT"] = CAAComm.GetValueSetParameter(this.slp_DISC_UAMT.Text, "int", false);//折讓金額(未稅) dr_Update_Disc_Main["NEW_DISC_TAX"] = CAAComm.GetValueSetParameter(this.slp_DISC_TAX.Text, "int", false);//折讓稅額 dr_Update_Disc_Main["NEW_DISC_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//總金額 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 dr_Update_Disc_Main["NEW_CLOSE_MONTH_ACCT"] = CAAComm.GetValueSetParameter(s_CLOSE_MONTH_ACCT, "string", false);//結帳年月-財會 dr_Update_Disc_Main["NEW_DISC_REMAIN_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//沖帳餘額 dr_Update_Disc_Main["NEW_DETL_FLG"] = CAAComm.GetValueSetParameter((this.chb_REPROOF_FLG.Checked == true) ? "0" : "1", "int", false);//明細註記(1是有明細0是沒明細) foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region VDS_CAA_DISC_DETL //如果[取具進項憑証]和[取具收據]都沒有被勾選,才必須新增 Detl 資料 if (this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) { DataTable dt_NewItem_New = new DataTable(); DataTable dt_NewItem_Modify = new DataTable(); dt_NewItem_New = dt_NewItem.GetChanges(DataRowState.Added); dt_NewItem_Modify = dt_NewItem.GetChanges(DataRowState.Modified); if (dt_NewItem_New != null || dt_NewItem_Modify != null) { if (dt_NewItem_New != null) { foreach (DataRow dr_NewItem_New in dt_NewItem_New.Rows) { //新增的資料,若[折讓金額(未稅)]為0且[折讓稅額]為0,則該筆資料不新增至資料庫 if (dr_NewItem_New["DISC_UAMT"].ToString() != "0" || dr_NewItem_New["DISC_TAX"].ToString() != "0") { Set_NewItem_To_Temp_For_Add(dr_NewItem_New, dt_Add_Disc_Detl, s_Now); } } } if (dt_NewItem_Modify != null) { foreach (DataRow dr_NewItem_Modify in dt_NewItem_Modify.Rows) { //修改的資料,若[折讓金額(未稅)]為0且[折讓稅額]為0,則該筆資料將從資料庫中刪除 if (dr_NewItem_Modify["DISC_UAMT"].ToString() == "0" && dr_NewItem_Modify["DISC_TAX"].ToString() == "0") { Set_NewItem_To_Temp_For_Delete(dr_NewItem_Modify, dt_Delete_Disc_Detl, s_Now); } else { Set_NewItem_To_Temp_For_Modify(dr_NewItem_Modify, dt_Update_Disc_Detl, s_Now); } } } } } #endregion #region VDS_CAA_INV_MAIN //如果[取具進項憑証]和[取具收據]都沒有被勾選,才要做以下動作 if (this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) { foreach (DataRow dr_Add_Disc_Detl in dt_Add_Disc_Detl.Rows) { string s_FilterExpression = "INV_NO = '" + dr_Add_Disc_Detl["INV_NO"].ToString() + "'"; DataRow[] dr_Item = dt_NewItem.Select(s_FilterExpression); if (dr_Item.Length == 1) { Set_NewItem_To_Temp_For_INV_MAIN(dr_Item[0], dt_Update_Inv, s_Now); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,更改資料至發票主檔,發生頁面資料錯誤"); } } foreach (DataRow dr_Update_Disc_Detl in dt_Update_Disc_Detl.Rows) { string s_FilterExpression = "INV_NO = '" + dr_Update_Disc_Detl["INV_NO"].ToString() + "'"; DataRow[] dr_Item = dt_NewItem.Select(s_FilterExpression); if (dr_Item.Length == 1) { Set_NewItem_To_Temp_For_INV_MAIN(dr_Item[0], dt_Update_Inv, s_Now); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,更改資料至發票主檔,發生頁面資料錯誤"); } } foreach (DataRow dr_Delete_Disc_Detl in dt_Delete_Disc_Detl.Rows) { string s_FilterExpression = "INV_NO = '" + dr_Delete_Disc_Detl["INV_NO"].ToString() + "'"; DataRow[] dr_Item = dt_NewItem.Select(s_FilterExpression); if (dr_Item.Length == 1) { Set_NewItem_To_Temp_For_INV_MAIN(dr_Item[0], dt_Update_Inv, s_Now); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,更改資料至發票主檔,發生頁面資料錯誤"); } } } #endregion #endregion #region 連結資料庫 s_DISC_NO = bco.UpdateDiscRecord_OTHER_Checked(null, dt_Update_Disc_Main, dt_Add_Disc_Detl, dt_Update_Disc_Detl, dt_Delete_Disc_Detl, dt_Update_Inv, Session["UID"].ToString()); #endregion } #endregion #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]不相同,已沖帳 else { if (s_ReturnMsg == "勾選欄位[憑證已回]" || s_ReturnMsg == "都沒有勾") { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 s_DISC_NO = bco.UpdateDiscRecord_PERIOD_Checked(null, dt_Update_Disc_Main); #endregion } } #endregion } #endregion #region 勾選欄位[取具進項憑証] or 勾選欄位[取具收據] else if (s_ReturnMsg == "勾選欄位[取具進項憑証]" || s_ReturnMsg == "勾選欄位[取具收據]") { #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]相同,尚未沖帳 if (dt_Main.Rows[0]["DISC_REMAIN_AMT"].ToString() == dt_Main.Rows[0]["DISC_AMT"].ToString()) { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_DISC_TYPE", dt_Update_Disc_Main.Columns["DISC_TYPE"].DataType);//型式 dt_Update_Disc_Main.Columns.Add("NEW_ACT_DISC_NO", dt_Update_Disc_Main.Columns["ACT_DISC_NO"].DataType);//財會折讓單號 dt_Update_Disc_Main.Columns.Add("NEW_CHG_DISC_DATE", dt_Update_Disc_Main.Columns["CHG_DISC_DATE"].DataType);//異動折讓日期 dt_Update_Disc_Main.Columns.Add("NEW_PROOF_DATE", dt_Update_Disc_Main.Columns["PROOF_DATE"].DataType);//憑證已回日期 dt_Update_Disc_Main.Columns.Add("NEW_REPROOF_FLG", dt_Update_Disc_Main.Columns["REPROOF_FLG"].DataType);//取具進項憑証 dt_Update_Disc_Main.Columns.Add("NEW_REPROOF_NO", dt_Update_Disc_Main.Columns["REPROOF_NO"].DataType);//發票號碼/收據 dt_Update_Disc_Main.Columns.Add("NEW_RECEIPT_FLG", dt_Update_Disc_Main.Columns["RECEIPT_FLG"].DataType);//取具收據 dt_Update_Disc_Main.Columns.Add("NEW_DISC_UAMT", dt_Update_Disc_Main.Columns["DISC_UAMT"].DataType);//折讓金額(未稅) dt_Update_Disc_Main.Columns.Add("NEW_DISC_TAX", dt_Update_Disc_Main.Columns["DISC_TAX"].DataType);//折讓稅額 dt_Update_Disc_Main.Columns.Add("NEW_DISC_AMT", dt_Update_Disc_Main.Columns["DISC_AMT"].DataType);//總金額 dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 dt_Update_Disc_Main.Columns.Add("NEW_CLOSE_MONTH_ACCT", dt_Update_Disc_Main.Columns["CLOSE_MONTH_ACCT"].DataType);//結帳年月-財會 dt_Update_Disc_Main.Columns.Add("NEW_DISC_REMAIN_AMT", dt_Update_Disc_Main.Columns["DISC_REMAIN_AMT"].DataType);//沖帳餘額 dt_Update_Disc_Main.Columns.Add("NEW_DETL_FLG", dt_Update_Disc_Main.Columns["DETL_FLG"].DataType);//明細註記(1是有明細0是沒明細) #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); #region 設定欄位[結帳年月-財會] if (this.slp_DISC_SOURCE.Text == "1")//欄位[來源]=系統開立 { s_CLOSE_MONTH_ACCT = this.slp_CLOSE_MONTH_ACCT.Text; } else if (this.slp_DISC_SOURCE.Text == "2")//欄位[來源]=人工開立 { s_CLOSE_MONTH_ACCT = (this.slp_PROOF_DATE.Text == string.Empty) ? string.Empty : DateTime.Parse(this.slp_PROOF_DATE.Text).ToString("yyyyMM"); } #endregion dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_DISC_TYPE"] = CAAComm.GetValueSetParameter(this.slp_DISC_TYPE.Text, "string", false);//型式 dr_Update_Disc_Main["NEW_ACT_DISC_NO"] = CAAComm.GetValueSetParameter(this.txt_ACT_DISC_NO.Text, "string", false);//財會折讓單號 dr_Update_Disc_Main["NEW_CHG_DISC_DATE"] = CAAComm.GetValueSetParameter(this.slp_CHG_DISC_DATE.Text, "date", false);//異動折讓日期 dr_Update_Disc_Main["NEW_PROOF_DATE"] = CAAComm.GetValueSetParameter(this.slp_PROOF_DATE.Text, "date", false);//憑證已回日期 dr_Update_Disc_Main["NEW_REPROOF_FLG"] = CAAComm.GetValueSetParameter((this.chb_REPROOF_FLG.Checked == true) ? "1" : "0", "int", false);//取具進項憑証 dr_Update_Disc_Main["NEW_REPROOF_NO"] = CAAComm.GetValueSetParameter(this.txt_REPROOF_NO.Text, "string", false);//發票號碼/收據 dr_Update_Disc_Main["NEW_RECEIPT_FLG"] = CAAComm.GetValueSetParameter((this.chb_RECEIPT_FLG.Checked == true) ? "1" : "0", "int", false);//取具收據 dr_Update_Disc_Main["NEW_DISC_UAMT"] = CAAComm.GetValueSetParameter(this.slp_DISC_UAMT.Text, "int", false);//折讓金額(未稅) dr_Update_Disc_Main["NEW_DISC_TAX"] = CAAComm.GetValueSetParameter(this.slp_DISC_TAX.Text, "int", false);//折讓稅額 dr_Update_Disc_Main["NEW_DISC_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//總金額 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 dr_Update_Disc_Main["NEW_CLOSE_MONTH_ACCT"] = CAAComm.GetValueSetParameter(s_CLOSE_MONTH_ACCT, "string", false);//結帳年月-財會 dr_Update_Disc_Main["NEW_DISC_REMAIN_AMT"] = CAAComm.GetValueSetParameter(Request[txt_DISC_AMT.UniqueID].ToString(), "int", false);//沖帳餘額 dr_Update_Disc_Main["NEW_DETL_FLG"] = CAAComm.GetValueSetParameter("0", "int", false);//明細註記(1是有明細0是沒明細) foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(s_Now, "datetime", false));//更新日期 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//更新人員 s_DISC_NO = bco.UpdateDiscRecord_REPROOF_Checked(null, dt_Update_Disc_Main, ParameterList); #endregion } #endregion #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]不相同,已沖帳 else { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 s_DISC_NO = bco.UpdateDiscRecord_PERIOD_Checked(null, dt_Update_Disc_Main); #endregion } #endregion } #endregion #region 勾選欄位[作廢] else if (s_ReturnMsg == "勾選欄位[作廢]") { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_CANCEL_FLG", dt_Update_Disc_Main.Columns["CANCEL_FLG"].DataType);//作廢註記 dt_Update_Disc_Main.Columns.Add("NEW_CANCEL_DATE", dt_Update_Disc_Main.Columns["CANCEL_DATE"].DataType);//作廢日期 dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_CANCEL_FLG"] = CAAComm.GetValueSetParameter((this.chb_CANCEL_FLG.Checked == true) ? "1" : "0", "int", false);//作廢註記 dr_Update_Disc_Main["NEW_CANCEL_DATE"] = CAAComm.GetValueSetParameter(this.slp_CANCEL_DATE.Text, "date", false);//作廢日期 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(s_Now, "datetime", false));//更新日期 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//更新人員 s_DISC_NO = bco.UpdateDiscRecord_CANCEL_Checked(null, dt_Update_Disc_Main, ParameterList); #endregion } #endregion #region 勾選欄位[轉暫收] else if (s_ReturnMsg == "勾選欄位[轉暫收]") { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_TEMPORAL_FLG", dt_Update_Disc_Main.Columns["TEMPORAL_FLG"].DataType);//轉暫收註記 dt_Update_Disc_Main.Columns.Add("NEW_TEMPORAL_DATE", dt_Update_Disc_Main.Columns["TEMPORAL_DATE"].DataType);//暫收日期 dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 dt_Update_Disc_Main.Columns.Add("NEW_TARGET", typeof(string));//判斷資料原本是否為"轉暫收" #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_TEMPORAL_FLG"] = CAAComm.GetValueSetParameter((this.chb_TEMPORAL_FLG.Checked == true) ? "1" : "0", "int", false);//轉暫收註記 dr_Update_Disc_Main["NEW_TEMPORAL_DATE"] = CAAComm.GetValueSetParameter(Request[txt_TEMPORAL_DATE.UniqueID].ToString(), "date", false);//暫收日期 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 dr_Update_Disc_Main["NEW_TARGET"] = (dr_MainRow["TEMPORAL_FLG"].ToString() == "1") ? "Original TEMPORAL" : "New TEMPORAL";//判斷資料原本是否為"轉暫收" foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 s_DISC_NO = bco.UpdateDiscRecord_TEMPORAL_Checked(null, dt_Update_Disc_Main); #endregion } #endregion #region 原本就勾選欄位[申報] else if (s_ReturnMsg == "原本就勾選欄位[申報]") { #region 取得 TempTable 的 SCHEMA dt_Update_Disc_Main = bco.GET_VDS_CAA_DISC_MAIN_SCHEMA(ParameterList); #endregion #region 新增 VDS_CAA_DISC_MAIN 的異動欄位 dt_Update_Disc_Main.Columns.Add("NEW_UPDATEDATE", dt_Update_Disc_Main.Columns["UPDATEDATE"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_UPDATEUID", dt_Update_Disc_Main.Columns["UPDATEUID"].DataType); dt_Update_Disc_Main.Columns.Add("NEW_MEMO", dt_Update_Disc_Main.Columns["MEMO"].DataType);//備註 #endregion #region 將異動資料寫入 VDS_CAA_DISC_MAIN 的 TempTable foreach (DataRow dr_MainRow in dt_Main.Rows) { DataRow dr_Update_Disc_Main = dt_Update_Disc_Main.NewRow(); dr_Update_Disc_Main["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Disc_Main["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Disc_Main["NEW_MEMO"] = CAAComm.GetValueSetParameter(this.txt_MEMO.Text, "string", false);//備註 foreach (DataColumn dtcolumn in dt_Update_Disc_Main.Columns) { if (dtcolumn.ColumnName.Length < 4 || dtcolumn.ColumnName.Substring(0, 4) != "NEW_") { dr_Update_Disc_Main[dtcolumn.ColumnName] = dr_MainRow[dtcolumn.ColumnName]; } } dt_Update_Disc_Main.Rows.Add(dr_Update_Disc_Main); } #endregion #region 連結資料庫 s_DISC_NO = bco.UpdateDiscRecord_PERIOD_Checked(null, dt_Update_Disc_Main); #endregion } #endregion #endregion #region 清空變數,跳轉頁面至檢視模式 if (dt_NewItem != null) { dt_NewItem.Clear(); } #region 組合跳轉頁面字串 string s_ADDLocation_Replace_String = string.Empty; try { int i_Count = int.Parse(Request.QueryString["CAA182_COUNT"]); string s_Request_Key = Request.QueryString["CAA182_PageTimeStamp"]; s_ADDLocation_Replace_String = "&CAA182_COUNT=" + i_Count.ToString() + "&CAA182_PageTimeStamp=" + s_Request_Key; } catch { s_ADDLocation_Replace_String = string.Empty; } #endregion ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CAA182", "alert('更新成功');location.replace('CAA182.aspx?Code=CAA18&CAA182_Mode=view&CAA182_DISC_NO=" + s_DISC_NO + s_ADDLocation_Replace_String + "');", true); #endregion } #endregion #region 如果不符合以上條件,代表錯誤 else { throw new Exception("頁面資料錯誤,只有在[新增模式][編輯模式]下,才可按[儲存]鈕"); } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { Finally_Function(); } }
/// <summary> /// 檢查條件 /// </summary> /// <param name="s_Type"></param> /// <returns></returns> private ArrayList Check_Condition(string s_Type) { #region 宣告 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Return = new ArrayList(); arl_Return.Add(string.Empty);//該欄位放Focus欄位之ClientID arl_Return.Add(string.Empty);//該欄位放錯誤訊息 #endregion #region SLP轉型 #region 銷或折讓維護區 TextBox txt_STORE_ID = (TextBox)this.slp_STORE_ID.FindControl("TextBoxCode");//店號 TextBox txt_ROOT_NO = (TextBox)this.slp_ROOT_NO.FindControl("TextBoxCode");//商品群分類 TextBox txt_DISC_DATE = (TextBox)this.slp_DISC_DATE.FindControl("TextBoxCode");//折讓日期 TextBox txt_CHG_DISC_DATE = (TextBox)this.slp_CHG_DISC_DATE.FindControl("TextBoxCode");//異動折讓日期 TextBox txt_PROOF_DATE = (TextBox)this.slp_PROOF_DATE.FindControl("TextBoxCode");//憑證已回日期 TextBox txt_CANCEL_DATE = (TextBox)this.slp_CANCEL_DATE.FindControl("TextBoxCode");//作廢日期 TextBox txt_PERIOD_DATE = (TextBox)this.slp_PERIOD_DATE.FindControl("TextBoxCode");//申報日期 TextBox txt_TEMPORAL_DATE = (TextBox)this.slp_TEMPORAL_DATE.FindControl("TextBoxCode");//暫收日期 TextBox txt_DISC_UAMT = (TextBox)this.slp_DISC_UAMT.FindControl("TextBoxCode");//折讓金額(未稅) TextBox txt_DISC_TAX = (TextBox)this.slp_DISC_TAX.FindControl("TextBoxCode");//折讓稅額 TextBox txt_DISC_AMT = (TextBox)this.slp_DISC_AMT.FindControl("TextBoxCode");//總金額 TextBox txt_CLOSE_MONTH = (TextBox)((ASP.wui_slp_slp_numberupdown_ascx)this.slp_CLOSE_MONTH.FindControl("SLP_NumberUpDown1")).FindControl("TextBoxCode");//結帳年月 DropDownList drop_DISC_SOURCE = (DropDownList)this.slp_DISC_SOURCE.FindControl("D1");//來源 DropDownList drop_DISC_TYPE = (DropDownList)this.slp_DISC_TYPE.FindControl("D1");//型式 DropDownList drop_TAX_TYPE = (DropDownList)this.slp_TAX_TYPE.FindControl("D1");//稅別 #endregion #region 折讓項目區 TextBox txt_Disc_INV_DATE = (TextBox)this.slp_Disc_INV_DATE.FindControl("TextBoxCode");//發票日期 TextBox txt_Disc_DISC_UAMT = (TextBox)this.slp_Disc_DISC_UAMT.FindControl("TextBoxCode");//折讓金額(未稅) TextBox txt_Disc_DISC_TAX = (TextBox)this.slp_Disc_DISC_TAX.FindControl("TextBoxCode");//折讓稅額 TextBox txt_Disc_NON_INV_UAMT = (TextBox)this.slp_Disc_NON_INV_UAMT.FindControl("TextBoxCode");//發票餘額(未稅) TextBox txt_Disc_NON_INV_TAX = (TextBox)this.slp_Disc_NON_INV_TAX.FindControl("TextBoxCode");//發票稅額 #endregion #endregion #region BUTTON [儲存]鈕 #region 新增狀態 if (s_Type == "BUTTON [儲存]鈕,新增狀態") { #region 檢查欄位的Byte長度 if (CAAComm.Get_Byte_Length(this.txt_ACT_DISC_NO.Text) > 13) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[財會折讓單號]長度不可大於 13 Byte", "1", this.txt_ACT_DISC_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_REPROOF_NO.Text) > 12) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]長度不可大於 12 Byte", "1", this.txt_REPROOF_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_RFNO.Text) > 10) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[統一編號]長度不可大於 10 Byte", "1", this.txt_RFNO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_MEMO.Text) > 200) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[備註]長度不可大於 200 Byte", "1", this.txt_MEMO.ClientID); } #endregion #region 檢查SLP日期格式 arl_Return = CAAComm.Check_Format_Date(this.slp_DISC_DATE.Text, "欄位[折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CHG_DISC_DATE.Text, "欄位[異動折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PROOF_DATE.Text, "欄位[憑證已回日期]日期格式錯誤", "1", txt_PROOF_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CANCEL_DATE.Text, "欄位[作廢日期]日期格式錯誤", "1", txt_CANCEL_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PERIOD_DATE.Text, "欄位[申報日期]日期格式錯誤", "1", txt_PERIOD_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_TEMPORAL_DATE.Text, "欄位[暫收日期]日期格式錯誤", "1", txt_TEMPORAL_DATE.ClientID, arl_Return); #endregion #region 檢查SLP數字格式 arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_UAMT.Text, "欄位[折讓金額(未稅)]數字格式錯誤", "32", "1", txt_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_TAX.Text, "欄位[折讓稅額]數字格式錯誤", "32", "1", txt_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(Request[txt_DISC_AMT.UniqueID].ToString(), "欄位[總金額]數字格式錯誤", "32", "1", txt_DISC_AMT.ClientID, arl_Return); #endregion #region 檢查SLP年月格式 arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH.Text, "欄位[結帳年月]年月格式錯誤", "1", txt_CLOSE_MONTH.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH_ACCT.Text, "欄位[結帳年月-財會]年月格式錯誤", "1", this.slp_CLOSE_MONTH_ACCT.TextBoxCode_Object.ClientID, arl_Return); #endregion #region 檢查必填欄位 arl_Return = CAAComm.Check_MustFillin_Column(drop_DISC_SOURCE.SelectedIndex.ToString(), "drop", "欄位[來源]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_STORE_ID.Text, "text", "欄位[店號]為必填欄位", "1", txt_STORE_ID.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(drop_DISC_TYPE.SelectedIndex.ToString(), "drop", "欄位[型式]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(drop_TAX_TYPE.SelectedIndex.ToString(), "drop", "欄位[稅別]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_ROOT_NO.Text, "text", "欄位[商品群分類]為必填欄位", "1", txt_ROOT_NO.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_CLOSE_MONTH.Text, "text", "欄位[結帳年月]為必填欄位", "1", txt_CLOSE_MONTH.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_DISC_UAMT.Text, "text", "欄位[折讓金額(未稅)]為必填欄位", "1", txt_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_DISC_TAX.Text, "text", "欄位[折讓稅額]為必填欄位", "1", txt_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(Request[txt_DISC_AMT.UniqueID].ToString(), "text", "欄位[總金額]為必填欄位", "1", txt_DISC_AMT.ClientID, arl_Return); #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 自訂檢查 #region 檢查欄位[折讓金額(未稅)][折讓稅額][總金額] int i_DISC_UAMT = int.Parse(this.slp_DISC_UAMT.Text);//折讓金額(未稅) int i_DISC_TAX = int.Parse(this.slp_DISC_TAX.Text);//折讓稅額 int i_DISC_AMT = int.Parse(Request[txt_DISC_AMT.UniqueID].ToString());//總金額 if (i_DISC_UAMT < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]不可小於0", "1", txt_DISC_UAMT.ClientID); } if (i_DISC_TAX < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓稅額]不可小於0", "1", txt_DISC_TAX.ClientID); } if (i_DISC_AMT <= 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[總金額]不可小於或等於0", "1", txt_DISC_AMT.ClientID); } if (i_DISC_UAMT == 0 && i_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]為0時,欄位[折讓稅額]也必須為0", "1", txt_DISC_TAX.ClientID); } if (i_DISC_UAMT + i_DISC_TAX != i_DISC_AMT) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]加上欄位[折讓稅額]必須等於欄位[總金額]", "1", txt_DISC_AMT.ClientID); } if (this.slp_TAX_TYPE.Text == "1" ||//[稅別]=免稅 this.slp_TAX_TYPE.Text == "2")//[稅別]=零稅 { if (i_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[稅別]是免稅或零稅時,欄位[折讓稅額]必須為0", "1", txt_DISC_TAX.ClientID); } } #endregion #region 新增模式下欄位[來源]必須是選擇人工開立 if (this.slp_DISC_SOURCE.Text != "2")//2代表是人工開立 { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[來源]必須是選擇人工開立", "1", drop_DISC_SOURCE.ClientID); } #endregion #region 檢查欄位[店號]是否為有效店號 #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false));//店號 ParameterList.Add(CAAComm.GetValueSetParameter(DateTime.Now.ToString(), "datetime", false));//系統時間 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//登入人員 #endregion #region 連結資料庫 BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); IDataReader dr = bco.QUERY_CAA18_DATA_BY_STORE_ID(ParameterList); #endregion if (dr.Read() == false) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[店號]查無符合店號或己關店,請重新輸入", "1", this.slp_STORE_ID.TextBox_Code.ClientID); } dr.Close(); #endregion #region 新增模式下欄位[作廢]不能勾選 if (this.chb_CANCEL_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[作廢]不能勾選", "1", chb_CANCEL_FLG.ClientID); } #endregion #region 新增模式下欄位[作廢日期]必須為空白 if (this.slp_CANCEL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[作廢日期]必須為空白", "1", txt_CANCEL_DATE.ClientID); } #endregion #region 新增模式下欄位[申報]不能勾選 if (this.chb_PERIOD_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[申報]不能勾選", "1", chb_PERIOD_FLG.ClientID); } #endregion #region 新增模式下欄位[申報日期]必須為空白 if (this.slp_PERIOD_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[申報日期]必須為空白", "1", txt_PERIOD_DATE.ClientID); } #endregion #region 新增模式下欄位[轉暫收]不能勾選 if (this.chb_TEMPORAL_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[轉暫收]不能勾選", "1", chb_TEMPORAL_FLG.ClientID); } #endregion #region 新增模式下欄位[暫收日期]必須為空白 if (this.slp_TEMPORAL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[暫收日期]必須為空白", "1", txt_TEMPORAL_DATE.ClientID); } #endregion #region 檢查若己月結則不允許新增 #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_CLOSE_MONTH.Text, "string", false));//[結帳年月] ParameterList.Add(CAAComm.GetValueSetParameter("CAA18", "string", false)); //V_FUNC_NO #endregion #region 連結資料庫 BCO.ChanMonthCloseYN bco_Is_Close = new BCO.ChanMonthCloseYN(ConntionDB); #endregion #region 檢查回傳資料 //回傳結果=Y,該月份已月結 //回傳結果=N,該月份尚未月結 if (((ArrayList)bco_Is_Close.GetChanMonthCloseStatus(ParameterList, null))[0].ToString() == "Y") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]該月份已月結", "1", txt_CLOSE_MONTH.ClientID); } #endregion #endregion #region 檢查欄位[憑證已回]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_PROOF_FLG.Checked == true && this.slp_PROOF_DATE.Text.Trim() == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回]若有勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]或[取具收據]必須勾選 if ((this.chb_PROOF_FLG.Checked == false && this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) == true && this.slp_PROOF_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]或[取具收據]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具進項憑証]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_REPROOF_FLG.Checked == true && this.slp_PROOF_DATE.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具進項憑証]若已勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[取具進項憑証]若已勾選,則欄位[發票號碼/收據]為必填欄位 if (this.chb_REPROOF_FLG.Checked == true && this.txt_REPROOF_NO.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具進項憑証]若已勾選,則欄位[發票號碼/收據]為必填欄位", "1", this.txt_REPROOF_NO.ClientID); } #endregion #region 檢查欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選 if (this.chb_REPROOF_FLG.Checked == false && this.txt_REPROOF_NO.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具收據]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_RECEIPT_FLG.Checked == true && this.slp_PROOF_DATE.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具收據]若已勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #endregion } #endregion #region 編輯狀態 else if (s_Type == "BUTTON [儲存]鈕,編輯狀態") { #region 檢查欄位的Byte長度 if (CAAComm.Get_Byte_Length(this.txt_ACT_DISC_NO.Text) > 13) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[財會折讓單號]長度不可大於 13 Byte", "1", this.txt_ACT_DISC_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_REPROOF_NO.Text) > 12) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]長度不可大於 12 Byte", "1", this.txt_REPROOF_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_RFNO.Text) > 10) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[統一編號]長度不可大於 10 Byte", "1", this.txt_RFNO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_MEMO.Text) > 200) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[備註]長度不可大於 200 Byte", "1", this.txt_MEMO.ClientID); } #endregion #region 檢查SLP日期格式 arl_Return = CAAComm.Check_Format_Date(this.slp_DISC_DATE.Text, "欄位[折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CHG_DISC_DATE.Text, "欄位[異動折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PROOF_DATE.Text, "欄位[憑證已回日期]日期格式錯誤", "1", txt_PROOF_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CANCEL_DATE.Text, "欄位[作廢日期]日期格式錯誤", "1", txt_CANCEL_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PERIOD_DATE.Text, "欄位[申報日期]日期格式錯誤", "1", txt_PERIOD_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_TEMPORAL_DATE.Text, "欄位[暫收日期]日期格式錯誤", "1", txt_TEMPORAL_DATE.ClientID, arl_Return); #endregion #region 檢查SLP數字格式 arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_UAMT.Text, "欄位[折讓金額(未稅)]數字格式錯誤", "32", "1", txt_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_TAX.Text, "欄位[折讓稅額]數字格式錯誤", "32", "1", txt_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(Request[txt_DISC_AMT.UniqueID].ToString(), "欄位[總金額]數字格式錯誤", "32", "1", txt_DISC_AMT.ClientID, arl_Return); #endregion #region 檢查SLP年月格式 arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH.Text, "欄位[結帳年月]年月格式錯誤", "1", txt_CLOSE_MONTH.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH_ACCT.Text, "欄位[結帳年月-財會]年月格式錯誤", "1", this.slp_CLOSE_MONTH_ACCT.TextBoxCode_Object.ClientID, arl_Return); #endregion #region 檢查不可同時進行多個勾選作業 bool b_IsRight = false; string s_ReturnMsg = string.Empty; Check_CheckStatus(out b_IsRight, out s_ReturnMsg); if (b_IsRight == true)//代表進行1個以上勾選作業 { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "不可同時進行多個勾選作業", "1", string.Empty); } #endregion #region 檢查月結是否與頁面LOAD進來時相同,如有異動,請使用者重新LOAD頁面 #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_CLOSE_MONTH.Text, "string", false));//[結帳年月] ParameterList.Add(CAAComm.GetValueSetParameter("CAA18", "string", false)); //V_FUNC_NO #endregion #region 連結資料庫 BCO.ChanMonthCloseYN bco_Is_Close = new BCO.ChanMonthCloseYN(ConntionDB); #endregion #region 檢查回傳資料 //回傳結果=Y,該月份已月結 //回傳結果=N,該月份尚未月結 bool b_IsClose_Now = false; if (((ArrayList)bco_Is_Close.GetChanMonthCloseStatus(ParameterList, null))[0].ToString() == "Y") { b_IsClose_Now = true; } else { b_IsClose_Now = false; } if (b_IsClose != b_IsClose_Now)//代表月結已被更動 { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "月結已被更動,請重新載入編輯頁面", "1", string.Empty); } #endregion #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 自訂檢查 #region 檢查欄位[折讓金額(未稅)][折讓稅額][總金額] int i_DISC_UAMT = int.Parse(this.slp_DISC_UAMT.Text);//折讓金額(未稅) int i_DISC_TAX = int.Parse(this.slp_DISC_TAX.Text);//折讓稅額 int i_DISC_AMT = int.Parse(Request[txt_DISC_AMT.UniqueID].ToString());//總金額 if (i_DISC_UAMT < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]不可小於0", "1", txt_DISC_UAMT.ClientID); } if (i_DISC_TAX < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓稅額]不可小於0", "1", txt_DISC_TAX.ClientID); } if (i_DISC_AMT <= 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[總金額]不可小於或等於0", "1", txt_DISC_AMT.ClientID); } if (i_DISC_UAMT == 0 && i_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]為0時,欄位[折讓稅額]也必須為0", "1", txt_DISC_TAX.ClientID); } if (i_DISC_UAMT + i_DISC_TAX != i_DISC_AMT) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]加上欄位[折讓稅額]必須等於欄位[總金額]", "1", txt_DISC_AMT.ClientID); } if (this.slp_TAX_TYPE.Text == "1" ||//[稅別]=免稅 this.slp_TAX_TYPE.Text == "2")//[稅別]=零稅 { if (i_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[稅別]是免稅或零稅時,欄位[折讓稅額]必須為0", "1", txt_DISC_TAX.ClientID); } } #endregion #region 檢查如果己月結則[折讓金額(未稅)][折讓稅額][總金額]要與原始金額相同 if (b_IsClose == true)//該月份已月結 { if (this.hid_Original_DISC_UAMT.Value.Trim() != this.slp_DISC_UAMT.Text.Trim()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "該月份己月結,欄位[折讓金額(未稅)]的金額必須等於原始折讓金額(未稅)" + this.hid_Original_DISC_UAMT.Value.Trim() + "元", "1", txt_DISC_UAMT.ClientID); } if (this.hid_Original_DISC_TAX.Value.Trim() != this.slp_DISC_TAX.Text.Trim()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "該月份己月結,欄位[折讓稅額]的金額必須等於原始折讓稅額" + this.hid_Original_DISC_TAX.Value.Trim() + "元", "1", txt_DISC_TAX.ClientID); } if (this.hid_Original_DISC_AMT.Value.Trim() != Request[txt_DISC_AMT.UniqueID].ToString().Trim()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "該月份己月結,欄位[總金額]的金額必須等於原始折讓稅額" + this.hid_Original_DISC_AMT.Value.Trim() + "元", "1", txt_DISC_AMT.ClientID); } } #endregion #region 檢查下列情況如果已月結則修改後的金額必須等於原始金額 if (b_IsClose == true)//該月份已月結 { if (s_ReturnMsg == "勾選欄位[憑證已回]" || s_ReturnMsg == "取消勾選欄位[憑證已回]" || s_ReturnMsg == "取消勾選欄位[取具進項憑証]" || s_ReturnMsg == "都沒有勾") { int i_IsClose_DISC_UAMT = 0; int i_IsClose_DISC_TAX = 0; int i_IsClose_DISC_AMT = 0; foreach (DataRow drRow in dt_NewItem.Rows) { i_IsClose_DISC_UAMT += int.Parse(drRow["DISC_UAMT"].ToString());//折讓金額(未稅) i_IsClose_DISC_TAX += int.Parse(drRow["DISC_TAX"].ToString());//折讓稅額 i_IsClose_DISC_AMT += int.Parse(drRow["DISC_AMT"].ToString());//總金額 } if (this.hid_Original_DISC_UAMT.Value.Trim() != i_IsClose_DISC_UAMT.ToString()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "已月結,折讓項目的折讓金額(未稅):" + i_IsClose_DISC_UAMT.ToString() + "元,不等於原始折讓金額(未稅):" + this.hid_Original_DISC_UAMT.Value + "元", "1", string.Empty); } if (this.hid_Original_DISC_TAX.Value.Trim() != i_IsClose_DISC_TAX.ToString()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "已月結,折讓項目的折讓稅額:" + i_IsClose_DISC_TAX.ToString() + "元,不等於原始折讓稅額:" + this.hid_Original_DISC_TAX.Value + "元", "1", string.Empty); } if (this.hid_Original_DISC_AMT.Value.Trim() != i_IsClose_DISC_AMT.ToString()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]" + this.slp_CLOSE_MONTH.Text + "已月結,折讓項目的總金額:" + i_IsClose_DISC_AMT.ToString() + "元,不等於原始總金額:" + this.hid_Original_DISC_AMT.Value + "元", "1", string.Empty); } } } #endregion #region 檢查欄位[憑證已回]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_PROOF_FLG.Checked == true && this.slp_PROOF_DATE.Text.Trim() == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回]若有勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]或[取具收據]必須勾選 if ((this.chb_PROOF_FLG.Checked == false && this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) == true && this.slp_PROOF_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]或[取具收據]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具進項憑証]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_REPROOF_FLG.Checked == true && this.slp_PROOF_DATE.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具進項憑証]若已勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[取具進項憑証]若已勾選,則欄位[發票號碼/收據]為必填欄位 if (this.chb_REPROOF_FLG.Checked == true && this.txt_REPROOF_NO.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具進項憑証]若已勾選,則欄位[發票號碼/收據]為必填欄位", "1", this.txt_REPROOF_NO.ClientID); } #endregion #region 檢查欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選 if (this.chb_REPROOF_FLG.Checked == false && this.txt_REPROOF_NO.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具收據]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_RECEIPT_FLG.Checked == true && this.slp_PROOF_DATE.Text == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具收據]若已勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[作廢]若已勾選,則欄位[作廢日期]為必填欄位 if (this.chb_CANCEL_FLG.Checked == true && this.slp_CANCEL_DATE.Text.Trim() == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[作廢]若有勾選,則欄位[作廢日期]為必填欄位", "1", txt_CANCEL_DATE.ClientID); } #endregion #region 檢查[總金額][沖帳餘額],若有沖帳過,則不允許作廢 #region 規則 /* 20100325秀玲新增此判斷需求 * 如果該張折讓單的[DISC_REMAIN_AMT](沖帳金額) & [DISC_AMT](總金額)金額不相符 * 代表該張折讓單已經沖帳過,不允許作廢。*/ #endregion if (this.chb_CANCEL_FLG.Checked == true || this.slp_CANCEL_DATE.Text.Trim() != string.Empty) { if (dt_Main.Rows[0]["DISC_REMAIN_AMT"].ToString() != dt_Main.Rows[0]["DISC_AMT"].ToString()) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "折讓單已沖帳,不允許作廢", "1", string.Empty); } } #endregion #region 檢查欄位[作廢日期]若有值,則欄位[作廢]必須勾選 if (this.chb_CANCEL_FLG.Checked == false && this.slp_CANCEL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[作廢日期]若有值,則欄位[作廢]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[轉暫收]若已勾選,則欄位[暫收日期]為必填欄位 if (this.chb_TEMPORAL_FLG.Checked == true && this.slp_TEMPORAL_DATE.Text.Trim() == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[轉暫收]若有勾選,則欄位[暫收日期]為必填欄位", "1", txt_TEMPORAL_DATE.ClientID); } #endregion #region 檢查欄位[暫收日期]若有值,則欄位[轉暫收]必須勾選 if (this.chb_TEMPORAL_FLG.Checked == false && this.slp_TEMPORAL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[暫收日期]若有值,則欄位[轉暫收]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[憑證已回][取具進項憑証][取具收據]三個欄位只能擇一勾選 int i_Check_Count = 0; i_Check_Count += this.chb_PROOF_FLG.Checked == true ? 1 : 0;//憑證已回 i_Check_Count += this.chb_REPROOF_FLG.Checked == true ? 1 : 0;//取具進項憑証 i_Check_Count += this.chb_RECEIPT_FLG.Checked == true ? 1 : 0;//取具收據 if (i_Check_Count > 1) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回][取具進項憑証][取具收據]三個欄位只能擇一勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具收據]如果有勾選,則欄位[折讓稅額]必須為0 if (this.chb_RECEIPT_FLG.Checked == true && this.slp_DISC_TAX.Text != "0") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具收據]如果有勾選,則欄位[折讓稅額]必須為0", "1", this.slp_DISC_TAX.TextBox_Code.ClientID); } #endregion #endregion } #endregion #endregion #region BUTTON [折讓開立]鈕 else if (s_Type == "BUTTON [折讓開立]鈕") { #region 檢查欄位的Byte長度 if (CAAComm.Get_Byte_Length(this.txt_ACT_DISC_NO.Text) > 13) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[財會折讓單號]長度不可大於 13 Byte", "1", this.txt_ACT_DISC_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_REPROOF_NO.Text) > 12) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]長度不可大於 12 Byte", "1", this.txt_REPROOF_NO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_RFNO.Text) > 10) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[統一編號]長度不可大於 10 Byte", "1", this.txt_RFNO.ClientID); } if (CAAComm.Get_Byte_Length(this.txt_MEMO.Text) > 200) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[備註]長度不可大於 200 Byte", "1", this.txt_MEMO.ClientID); } #endregion #region 檢查SLP日期格式 arl_Return = CAAComm.Check_Format_Date(this.slp_DISC_DATE.Text, "欄位[折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CHG_DISC_DATE.Text, "欄位[異動折讓日期]日期格式錯誤", "1", txt_DISC_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PROOF_DATE.Text, "欄位[憑證已回日期]日期格式錯誤", "1", txt_PROOF_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_CANCEL_DATE.Text, "欄位[作廢日期]日期格式錯誤", "1", txt_CANCEL_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_PERIOD_DATE.Text, "欄位[申報日期]日期格式錯誤", "1", txt_PERIOD_DATE.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Date(this.slp_TEMPORAL_DATE.Text, "欄位[暫收日期]日期格式錯誤", "1", txt_TEMPORAL_DATE.ClientID, arl_Return); #endregion #region 檢查SLP數字格式 arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_UAMT.Text, "欄位[折讓金額(未稅)]數字格式錯誤", "32", "1", txt_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(this.slp_DISC_TAX.Text, "欄位[折讓稅額]數字格式錯誤", "32", "1", txt_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(Request[txt_DISC_AMT.UniqueID].ToString(), "欄位[總金額]數字格式錯誤", "32", "1", txt_DISC_AMT.ClientID, arl_Return); #endregion #region 檢查SLP年月格式 arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH.Text, "欄位[結帳年月]年月格式錯誤", "1", txt_CLOSE_MONTH.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_YearMonth(this.slp_CLOSE_MONTH_ACCT.Text, "欄位[結帳年月-財會]年月格式錯誤", "1", this.slp_CLOSE_MONTH_ACCT.TextBoxCode_Object.ClientID, arl_Return); #endregion #region 檢查必填欄位 arl_Return = CAAComm.Check_MustFillin_Column(drop_DISC_SOURCE.SelectedIndex.ToString(), "drop", "欄位[來源]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_STORE_ID.Text, "text", "欄位[店號]為必填欄位", "1", txt_STORE_ID.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(drop_DISC_TYPE.SelectedIndex.ToString(), "drop", "欄位[型式]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(drop_TAX_TYPE.SelectedIndex.ToString(), "drop", "欄位[稅別]為必填欄位", "1", string.Empty, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_ROOT_NO.Text, "text", "欄位[商品群分類]為必填欄位", "1", txt_ROOT_NO.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_CLOSE_MONTH.Text, "text", "欄位[結帳年月]為必填欄位", "1", txt_CLOSE_MONTH.ClientID, arl_Return); #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 自訂檢查 #region 新增模式下欄位[來源]必須是選擇人工開立 if (this.slp_DISC_SOURCE.Text != "2")//2代表是人工開立 { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[來源]必須是選擇人工開立", "1", drop_DISC_SOURCE.ClientID); } #endregion #region 新增模式下欄位[作廢]不能勾選 if (this.chb_CANCEL_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[作廢]不能勾選", "1", chb_CANCEL_FLG.ClientID); } #endregion #region 新增模式下欄位[作廢日期]必須為空白 if (this.slp_CANCEL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[作廢日期]必須為空白", "1", txt_CANCEL_DATE.ClientID); } #endregion #region 新增模式下欄位[申報]不能勾選 if (this.chb_PERIOD_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[申報]不能勾選", "1", chb_PERIOD_FLG.ClientID); } #endregion #region 新增模式下欄位[申報日期]必須為空白 if (this.slp_PERIOD_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[申報日期]必須為空白", "1", txt_PERIOD_DATE.ClientID); } #endregion #region 新增模式下欄位[轉暫收]不能勾選 if (this.chb_TEMPORAL_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[轉暫收]不能勾選", "1", chb_TEMPORAL_FLG.ClientID); } #endregion #region 新增模式下欄位[暫收日期]必須為空白 if (this.slp_TEMPORAL_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "新增模式下欄位[暫收日期]必須為空白", "1", txt_TEMPORAL_DATE.ClientID); } #endregion #region 檢查若己月結則不允許新增 #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_CLOSE_MONTH.Text, "string", false));//[結帳年月] ParameterList.Add(CAAComm.GetValueSetParameter("CAA18", "string", false)); //V_FUNC_NO #endregion #region 連結資料庫 BCO.ChanMonthCloseYN bco_Is_Close = new BCO.ChanMonthCloseYN(ConntionDB); #endregion #region 檢查回傳資料 //回傳結果=Y,該月份已月結 //回傳結果=N,該月份尚未月結 if (((ArrayList)bco_Is_Close.GetChanMonthCloseStatus(ParameterList, null))[0].ToString() == "Y") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[結帳年月]該月份已月結", "1", txt_CLOSE_MONTH.ClientID); } #endregion #endregion #region 檢查欄位[憑證已回]若已勾選,則欄位[憑證已回日期]為必填欄位 if (this.chb_PROOF_FLG.Checked == true && this.slp_PROOF_DATE.Text.Trim() == string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回]若有勾選,則欄位[憑證已回日期]為必填欄位", "1", txt_PROOF_DATE.ClientID); } #endregion #region 檢查欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]必須勾選 if ((this.chb_PROOF_FLG.Checked == false && this.chb_REPROOF_FLG.Checked == false) == true && this.slp_PROOF_DATE.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[憑證已回日期]若有值,則欄位[憑證已回]或[取具進項憑証]必須勾選", "1", string.Empty); } #endregion #region 檢查欄位[取具進項憑証]若已勾選,則不允許按[折讓開立]鈕 if (this.chb_REPROOF_FLG.Checked == true) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[取具進項憑証]若已勾選,則不允許按[折讓開立]鈕", "1", string.Empty); } #endregion #region 檢查欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選 if (this.chb_REPROOF_FLG.Checked == false && this.txt_REPROOF_NO.Text.Trim() != string.Empty) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[發票號碼/收據]若有值,則欄位[取具進項憑証]必須勾選", "1", string.Empty); } #endregion #endregion } #endregion #region 折讓項目 BUTTON [確認]鈕 else if (s_Type == "折讓項目 BUTTON [確認]鈕") { #region 檢查SLP日期格式 arl_Return = CAAComm.Check_Format_Date(this.slp_Disc_INV_DATE.Text, "欄位[發票日期]日期格式錯誤", "1", txt_Disc_INV_DATE.ClientID, arl_Return); #endregion #region 檢查SLP數字格式 arl_Return = CAAComm.Check_Format_Int(this.slp_Disc_DISC_UAMT.Text, "欄位[折讓金額(未稅)]數字格式錯誤", "32", "1", txt_Disc_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(Request[txt_Disc_DISC_TAX.UniqueID].ToString(), "欄位[折讓稅額]數字格式錯誤", "32", "1", txt_Disc_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(this.slp_Disc_NON_INV_UAMT.Text, "欄位[發票餘額(未稅)]數字格式錯誤", "32", "1", txt_Disc_NON_INV_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_Format_Int(this.slp_Disc_NON_INV_TAX.Text, "欄位[發票稅額]數字格式錯誤", "32", "1", txt_Disc_NON_INV_TAX.ClientID, arl_Return); #endregion #region 檢查必填欄位 arl_Return = CAAComm.Check_MustFillin_Column(this.txt_Disc_INV_NO.Text, "text", "欄位[發票號碼]為必填欄位", "1", this.txt_Disc_INV_NO.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_Disc_DISC_UAMT.Text, "text", "欄位[折讓金額(未稅)]為必填欄位", "1", txt_Disc_DISC_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(Request[txt_Disc_DISC_TAX.UniqueID].ToString(), "text", "欄位[折讓稅額]為必填欄位", "1", txt_Disc_DISC_TAX.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_Disc_NON_INV_UAMT.Text, "text", "欄位[發票餘額(未稅)]為必填欄位", "1", txt_Disc_NON_INV_UAMT.ClientID, arl_Return); arl_Return = CAAComm.Check_MustFillin_Column(this.slp_Disc_NON_INV_TAX.Text, "text", "欄位[發票稅額]為必填欄位", "1", txt_Disc_NON_INV_TAX.ClientID, arl_Return); #endregion #region 如果基本檢查有誤,則Return if (arl_Return[1].ToString() != string.Empty) { return arl_Return; } #endregion #region 自訂檢查 int i_Disc_DISC_UAMT = int.Parse(this.slp_Disc_DISC_UAMT.Text);//折讓金額(未稅) int i_Disc_DISC_TAX = int.Parse(Request[txt_Disc_DISC_TAX.UniqueID].ToString());//折讓稅額 int i_Total_NON_INV_UAMT = int.Parse(this.hid_Disc_Total_NON_INV_UAMT.Value);//發票餘額(未稅)+折讓金額(未稅) int i_Total_NON_INV_TAX = int.Parse(this.hid_Disc_Total_NON_INV_TAX.Value);//發票稅額+折讓稅額 if (i_Disc_DISC_UAMT < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]不可小於0", "1", txt_Disc_DISC_UAMT.ClientID); } if (i_Disc_DISC_TAX < 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓稅額]不可小於0", "1", txt_Disc_DISC_TAX.ClientID); } if (i_Disc_DISC_UAMT == 0 && i_Disc_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]為0時,欄位[折讓稅額]也必須為0", "1", txt_Disc_DISC_TAX.ClientID); } if (i_Disc_DISC_UAMT > i_Total_NON_INV_UAMT) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓金額(未稅)]不得大於[發票餘額(未稅)]", "1", txt_Disc_DISC_UAMT.ClientID); } if (i_Disc_DISC_TAX > i_Total_NON_INV_TAX) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[折讓稅額]不得大於[發票稅額]", "1", txt_Disc_DISC_TAX.ClientID); } if (this.slp_TAX_TYPE.Text == "1" ||//[稅別]=免稅 this.slp_TAX_TYPE.Text == "2")//[稅別]=零稅 { if (i_Disc_DISC_TAX != 0) { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "欄位[稅別]是免稅或零稅時,欄位[折讓稅額]必須為0", "1", txt_Disc_DISC_TAX.ClientID); } } #endregion } #endregion return arl_Return; }
/// <summary> /// 折讓項目,欄位[發票號碼]TextChanged事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void txt_Disc_INV_NO_TextChanged(object sender, EventArgs e) { try { #region 新增模式 & 檢視模式 if (this.hid_PageStatus.Value == "insert" || this.hid_PageStatus.Value == "edit") { #region 設定變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); #endregion #region 檢查傳入欄位[發票號碼]的值 if (this.txt_Disc_INV_NO.Text.Trim() == string.Empty) { Set_Disc_NewItem_Default(); return; } #endregion #region 若輸入的發票號碼存在於按折讓開立查出的資料 bool b_IsExist_GetDiscInv = Set_Disc_NewItem_Value(this.txt_Disc_INV_NO.Text, dt_NewItem); #endregion #region 若輸入的發票號碼不存在於按折讓開立查出的資料 if (b_IsExist_GetDiscInv == false) { #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter("TEXT", "string", false));//[查詢型態] if (this.hid_PageStatus.Value == "insert") { ParameterList.Add(CAAComm.GetValueSetParameter(DateTime.Now.ToString(), "date", false)); } else if (this.hid_PageStatus.Value == "edit") { ParameterList.Add(CAAComm.GetValueSetParameter(this.hid_Record_Date.Value, "date", false)); }//[履歷時間] ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false));//[店號] ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_RFNO.Text, "string", false));//[統一編號] ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_ROOT_NO.Text, "string", false));//[商品群分類] ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_TAX_TYPE.Text, "int", false));//[稅別] ParameterList.Add(CAAComm.GetValueSetParameter(this.txt_Disc_INV_NO.Text, "string", false));//[發票號碼] ParameterList.Add(CAAComm.GetValueSetParameter("1", "int", false));//只取第1筆 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID #endregion #region 連結資料庫 BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); DataTable dt_Return = bco.GetDetailRecord(ParameterList); #endregion #region 檢查回傳資料 #region 如果沒資料 if (dt_Return.Rows.Count == 0) { this.ErrorMsgLabel2.Text = "查無發票號碼:" + this.txt_Disc_INV_NO.Text + "的相關資料"; Set_Disc_NewItem_Default(); } #endregion #region 如果有資料 else { Set_Disc_NewItem_Value(this.txt_Disc_INV_NO.Text, dt_Return); #region 使用XML,將資料放置到前端 xml_VDS_CAA_INV_MAIN_Data.InnerHtml = dt_Return.DataSet.GetXml(); #endregion #region Focus欄位 string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(slp_Disc_DISC_UAMT.TextBox_Code.ClientID, true); ScriptManager.RegisterStartupScript(this.up_DiscItem, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } #endregion #endregion } else { #region Focus欄位 string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(slp_Disc_DISC_UAMT.TextBox_Code.ClientID, true); ScriptManager.RegisterStartupScript(this.up_DiscItem, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } #endregion } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel2.Text = ex.Message; } finally { Finally_Function(); } }
/// <summary> /// 折讓項目 BUTTON [確認]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void but_Disc_Insert_Click(object sender, EventArgs e) { try { bool b_ExistTempTable = false; #region 新增狀態 & 編輯狀態 if (this.hid_PageStatus.Value == "insert" || this.hid_PageStatus.Value == "edit") { #region 檢查條件 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("折讓項目 BUTTON [確認]鈕"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel2.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region SLP轉型 TextBox txt_Disc_DISC_TAX = (TextBox)this.slp_Disc_DISC_TAX.FindControl("TextBoxCode"); #endregion #region 判斷資料是否存在於dt_NewItem int i_DISC_UAMT = int.Parse(this.slp_Disc_DISC_UAMT.Text);//折讓金額(未稅) int i_DISC_TAX = int.Parse(Request[txt_Disc_DISC_TAX.UniqueID].ToString());//折讓稅額 int i_Total_NON_INV_UAMT = int.Parse(this.hid_Disc_Total_NON_INV_UAMT.Value);//發票餘額(未稅)+折讓金額(未稅) int i_Total_NON_INV_TAX = int.Parse(this.hid_Disc_Total_NON_INV_TAX.Value);//發票稅額+折讓稅額 bool b_Is_NeedChange = false; string s_FilterExpression = "INV_NO = '" + this.txt_Disc_INV_NO.Text + "'"; DataRow[] dr_Edit = dt_NewItem.Select(s_FilterExpression); #region 存在,則更改dt_NewItem的資料 if (dr_Edit.Length == 1) { if (dr_Edit[0].RowState == DataRowState.Added) { b_Is_NeedChange = true; } else { //如果新增項目中的[折讓金額(未稅)][折讓稅額]沒有異動,則不做動作 if ( (dr_Edit[0]["DISC_UAMT", DataRowVersion.Original].ToString() != i_DISC_UAMT.ToString() || dr_Edit[0]["DISC_TAX", DataRowVersion.Original].ToString() != i_DISC_TAX.ToString()) || (dr_Edit[0]["DISC_UAMT", DataRowVersion.Current].ToString() != i_DISC_UAMT.ToString() || dr_Edit[0]["DISC_TAX", DataRowVersion.Current].ToString() != i_DISC_TAX.ToString()) ) { b_Is_NeedChange = true; } } if (b_Is_NeedChange == true) { dr_Edit[0]["INV_NO"] = CAAComm.GetValueSetParameter(this.txt_Disc_INV_NO.Text, "string", false);//發票號碼 dr_Edit[0]["INV_DATE"] = CAAComm.GetValueSetParameter(this.slp_Disc_INV_DATE.Text, "date", false);//發票日期 dr_Edit[0]["ITEM_NAME"] = CAAComm.GetValueSetParameter(this.txt_Disc_ITEM_NAME.Text, "string", false);//品名 dr_Edit[0]["TAX_TYPE"] = CAAComm.GetValueSetParameter(this.slp_Disc_TAX_TYPE.Text, "int", false);//發票稅別 dr_Edit[0]["TAX_TYPE_NAME"] = (this.slp_Disc_TAX_TYPE.Text == "0") ? "應稅" : (this.slp_Disc_TAX_TYPE.Text == "1") ? "免稅" : "零稅"; dr_Edit[0]["DISC_UAMT"] = CAAComm.GetValueSetParameter(i_DISC_UAMT.ToString(), "int", false);//折讓金額(未稅) dr_Edit[0]["DISC_TAX"] = CAAComm.GetValueSetParameter(i_DISC_TAX.ToString(), "int", false);//折讓稅額 dr_Edit[0]["DISC_AMT"] = Convert.ToString(i_DISC_UAMT + i_DISC_TAX);//含稅金額 dr_Edit[0]["NON_INV_UAMT"] = CAAComm.GetValueSetParameter(Convert.ToString(i_Total_NON_INV_UAMT - i_DISC_UAMT), "int", false);//發票餘額(未稅) dr_Edit[0]["NON_INV_TAX"] = CAAComm.GetValueSetParameter(Convert.ToString(i_Total_NON_INV_TAX - i_DISC_TAX), "int", false);//發票稅額 } b_ExistTempTable = true; } #endregion #region 不存在,則將資料寫入dt_NewItem else { #region 使用XML轉回DataSet DataSet ds_Main = new DataSet(); System.IO.StringReader sr = new System.IO.StringReader(xml_VDS_CAA_INV_MAIN_Data.InnerHtml); ds_Main.ReadXml(sr); #endregion #region 檢查畫面上的發票號碼是否跟XML的資料相符 DataRow dr_Main = ds_Main.Tables[0].Rows[0]; if (dr_Main["INV_NO"].ToString() != this.txt_Disc_INV_NO.Text) { throw new Exception("按下折讓項目的[確認]鈕,新增資料至TempTable,發生頁面資料錯誤"); } #endregion #region 將資料寫入Temp Table dt_NewItem DataRow dr_New = dt_NewItem.NewRow(); foreach (DataColumn dc_NewItem in dt_NewItem.Columns) { if (ds_Main.Tables[0].Columns.Contains(dc_NewItem.ColumnName) == true) { dr_New[dc_NewItem.ColumnName] = dr_Main[dc_NewItem.ColumnName]; } } dr_New["INV_NO"] = CAAComm.GetValueSetParameter(this.txt_Disc_INV_NO.Text, "string", false);//發票號碼 dr_New["INV_DATE"] = CAAComm.GetValueSetParameter(this.slp_Disc_INV_DATE.Text, "date", false);//發票日期 dr_New["ITEM_NAME"] = CAAComm.GetValueSetParameter(this.txt_Disc_ITEM_NAME.Text, "string", false);//品名 dr_New["TAX_TYPE"] = CAAComm.GetValueSetParameter(this.slp_Disc_TAX_TYPE.Text, "int", false);//發票稅別 dr_New["TAX_TYPE_NAME"] = (this.slp_Disc_TAX_TYPE.Text == "0") ? "應稅" : (this.slp_Disc_TAX_TYPE.Text == "1") ? "免稅" : "零稅"; dr_New["DISC_UAMT"] = CAAComm.GetValueSetParameter(i_DISC_UAMT.ToString(), "int", false);//折讓金額(未稅) dr_New["DISC_TAX"] = CAAComm.GetValueSetParameter(i_DISC_TAX.ToString(), "int", false);//折讓稅額 dr_New["DISC_AMT"] = Convert.ToString(i_DISC_UAMT + i_DISC_TAX);//含稅金額 dr_New["NON_INV_UAMT"] = CAAComm.GetValueSetParameter(Convert.ToString(i_Total_NON_INV_UAMT - i_DISC_UAMT), "int", false);//發票餘額(未稅) dr_New["NON_INV_TAX"] = CAAComm.GetValueSetParameter(Convert.ToString(i_Total_NON_INV_TAX - i_DISC_TAX), "int", false);//發票稅額 dr_New["TABLE_ROWNUM"] = dt_NewItem.Rows.Count + 1; dt_NewItem.Rows.Add(dr_New); #endregion } #endregion #endregion #region 計算欄位[折讓金額(未稅)][折讓稅額][總金額] int i_txt_DISC_UAMT = 0;//折讓金額(未稅) int i_txt_DISC_TAX = 0;//折讓稅額 int i_txt_DISC_AMT = 0;//含稅金額 foreach (DataRow dr_Count in dt_NewItem.Rows) { i_txt_DISC_UAMT += int.Parse(dr_Count["DISC_UAMT"].ToString());//折讓金額(未稅) i_txt_DISC_TAX += int.Parse(dr_Count["DISC_TAX"].ToString());//折讓稅額 i_txt_DISC_AMT += int.Parse(dr_Count["DISC_AMT"].ToString());//含稅金額 } //編輯模式下,如果資料是已月結,則不異動欄位[折讓金額(未稅)][折讓稅額][總金額] if ((this.hid_PageStatus.Value == "edit" && b_IsClose == true) == false) { this.slp_DISC_UAMT.Text = i_txt_DISC_UAMT.ToString();//折讓金額(未稅) this.slp_DISC_TAX.Text = i_txt_DISC_TAX.ToString();//折讓稅額 this.slp_DISC_AMT.Text = i_txt_DISC_AMT.ToString();//總金額 //20110512 rika insert this.slp_DISC_REMAIN_AMT.Text = i_txt_DISC_AMT.ToString();//折讓餘額 } #endregion #region 資料與GridView繫結 //如果資料原本就存在於TempTable dt_NewItem,則不重新排序 if (b_ExistTempTable == true) { this.gv_DiscInv.DataSource = dt_NewItem; this.gv_DiscInv.DataBind(); } //如果資料不存在於TempTable dt_NewItem,則重新排序 else { DataView dv_NewItem = dt_NewItem.DefaultView; dv_NewItem.Sort = "TABLE_ROWNUM desc"; this.gv_DiscInv.DataSource = dv_NewItem; this.gv_DiscInv.DataBind(); } #endregion #region 清空並關閉新增項目 this.panel_Disc_NewItem.Visible = false; Set_Disc_NewItem_Default(); #endregion } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel2.Text = ex.Message; } finally { Finally_Function(); } }
/// <summary> /// 欄位[取具進項憑証][取具收據]CheckedChanged事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void chb_REPROOF_RECEIPT_CheckedChanged(object sender, EventArgs e) { try { #region 新增狀態 if (this.hid_PageStatus.Value == "insert") { #region 清空變數 if (dt_NewItem != null) { dt_NewItem.Clear(); } this.gv_DiscInv.DataSource = dt_NewItem; this.gv_DiscInv.DataBind(); #endregion #region 關閉新增項目且初始化 Set_Disc_NewItem_Default(); this.panel_Disc_NewItem.Visible = false; #endregion #region [取具進項憑証]或[取具收據]有被勾選 if (this.chb_REPROOF_FLG.Checked == true || this.chb_RECEIPT_FLG.Checked == true) { this.but_GetDiscInv.Enabled = false;//折讓開立 this.but_Disc_NewItem.Enabled = false;//新增項目 this.slp_DISC_UAMT.ReadOnly = false;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = false;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 this.slp_DISC_UAMT.Text = "0";//折讓金額(未稅) this.slp_DISC_TAX.Text = "0";//折讓稅額 this.slp_DISC_AMT.Text = "0";//總金額 //20090702,秀玲說取具進項憑證,也算是一種憑證已回 //所以當[取具進項憑證]被勾選時,不管[憑證已回日期]是否為空值,帶入系統日期 this.slp_PROOF_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); } #endregion #region [取具進項憑証]或[取具收據]都沒有被勾選 else { this.txt_REPROOF_NO.Text = string.Empty;//發票號碼/收據 this.but_GetDiscInv.Enabled = true;//折讓開立 this.but_Disc_NewItem.Enabled = false;//新增項目 this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 this.slp_DISC_UAMT.Text = string.Empty;//折讓金額(未稅) this.slp_DISC_TAX.Text = string.Empty;//折讓稅額 this.slp_DISC_AMT.Text = string.Empty;//總金額 //已與秀玲確認過 //不管[憑證已回]有沒有被勾選,都將[憑證已回日期]清空 this.slp_PROOF_DATE.Text = string.Empty; } #endregion } #endregion #region 編輯狀態 else if (this.hid_PageStatus.Value == "edit") { #region 欄位[取具進項憑証]或[取具收據]被勾選 if (this.chb_REPROOF_FLG.Checked == true || this.chb_RECEIPT_FLG.Checked == true) { #region 欄位[折讓金額(未稅)][折讓稅額][總金額]設定 if (b_IsClose == false)//如果已月結則不可讓使用者異動資料 { this.slp_DISC_UAMT.ReadOnly = false;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = false;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 if (((CheckBox)sender).Text == "取具收據") { this.slp_DISC_UAMT.Text = Convert.ToString(int.Parse(this.slp_DISC_UAMT.Text) + int.Parse(this.slp_DISC_TAX.Text)); this.slp_DISC_TAX.Text = "0"; } } #endregion #region 隱藏下方發票明細(存在於TempTable中的明細資料不做異動) Set_Disc_NewItem_Default(); this.panel_gv_DiscInv.Visible = false;//GirdView中的明細 this.but_Disc_NewItem.Enabled = false;//[新增項目]鈕 this.panel_Disc_NewItem.Visible = false;//新增項目 #endregion #region 欄位[憑證已回日期]帶入系統日 //20090702,秀玲說取具進項憑證,也算是一種憑證已回 //所以當[取具進項憑證]被勾選時,不管[憑證已回日期]是否為空值,帶入系統日期 this.slp_PROOF_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); #endregion } #endregion #region 欄位[取具進項憑証]和[取具收據]都沒有被勾選 else { #region 欄位[折讓金額(未稅)][折讓稅額][總金額]設定 if (b_IsClose == false)//如果已月結則不可讓使用者異動資料 { this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 int i_DISC_UAMT = 0; int i_DISC_TAX = 0; int i_DISC_AMT = 0; foreach (DataRow drRow in dt_NewItem.Rows) { i_DISC_UAMT += int.Parse(drRow["DISC_UAMT"].ToString());//折讓金額(未稅) i_DISC_TAX += int.Parse(drRow["DISC_TAX"].ToString());//折讓稅額 i_DISC_AMT += int.Parse(drRow["DISC_AMT"].ToString());//總金額 } this.slp_DISC_UAMT.Text = i_DISC_UAMT.ToString();//折讓金額(未稅) this.slp_DISC_TAX.Text = i_DISC_TAX.ToString();//折讓稅額 this.slp_DISC_AMT.Text = i_DISC_AMT.ToString();//總金額 } #endregion #region 打開下方發票明細 //如果欄位[作廢]沒有勾選才打開 if (this.chb_CANCEL_FLG.Checked == false) { this.slp_PROOF_DATE.Text = string.Empty;//憑證已回日期 this.txt_REPROOF_NO.Text = string.Empty;//發票號碼/收據 this.panel_gv_DiscInv.Visible = true;//GirdView中的明細 this.but_Disc_NewItem.Enabled = true;//[新增項目]鈕 } #endregion } #endregion } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { Finally_Function(); #region Focus欄位 BCO.CAACommon CAAComm = new BCO.CAACommon(); string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(((CheckBox)sender).ClientID, false); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } }
/// <summary> /// 欄位[作廢]CheckedChanged事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void chb_CANCEL_FLG_CheckedChanged(object sender, EventArgs e) { try { #region 檢視狀態 if (this.hid_PageStatus.Value == "edit") { #region 欄位[作廢]被勾選 if (this.chb_CANCEL_FLG.Checked == true) { #region 帶出作廢日期 this.slp_CANCEL_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); #endregion #region 隱藏下方發票明細(存在於TempTable中的明細資料不做異動) Set_Disc_NewItem_Default(); this.panel_gv_DiscInv.Visible = false; this.but_Disc_NewItem.Enabled = false; this.panel_Disc_NewItem.Visible = false; #endregion } #endregion #region 欄位[作廢]被取消勾選 else { #region 清空作廢日期 this.slp_CANCEL_DATE.Text = string.Empty; #endregion #region 打開下方發票明細 //如果欄位[取具進項憑証]和[取具收據]都沒有勾選才打開 if (this.chb_REPROOF_FLG.Checked == false && this.chb_RECEIPT_FLG.Checked == false) { this.panel_gv_DiscInv.Visible = true; this.but_Disc_NewItem.Enabled = true; } #endregion } #endregion } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { Finally_Function(); #region Focus欄位 BCO.CAACommon CAAComm = new BCO.CAACommon(); string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(this.chb_CANCEL_FLG.ClientID, false); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } }
/// <summary> /// 檢查條件 /// </summary> /// <param name="s_Type"></param> /// <param name="s_ReturnMsg"></param> /// <returns></returns> private ArrayList Check_Condition(string s_Type, string s_ReturnMsg) { #region 宣告 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Return = new ArrayList(); arl_Return.Add(string.Empty);//該欄位放Focus欄位之ClientID arl_Return.Add(string.Empty);//該欄位放錯誤訊息 #endregion #region 編輯模式,判斷完狀態後的檢查 if (s_Type == "BUTTON [儲存]鈕,編輯模式,判斷完狀態後的檢查") { #region 已沖過帳要再另外檢查狀態 if (dt_Main.Rows[0]["DISC_REMAIN_AMT"].ToString() != dt_Main.Rows[0]["DISC_AMT"].ToString()) { if (s_ReturnMsg != "都沒有勾" && s_ReturnMsg != "勾選欄位[取具進項憑証]" && s_ReturnMsg != "勾選欄位[取具收據]" && s_ReturnMsg != "勾選欄位[憑證已回]" && s_ReturnMsg != "勾選欄位[轉暫收]" && s_ReturnMsg != "原本就勾選欄位[申報]") { arl_Return = CAAComm.ToMakeUp_Err_ArrayList(arl_Return, "折讓單已沖帳,不允許" + s_ReturnMsg, "1", string.Empty); } } #endregion } #endregion return arl_Return; }
protected void Page_Load(object sender, EventArgs e) { try { #region 清空Message this.ErrorMsgLabel.Text = string.Empty; #endregion if (!IsPostBack) { #region 寫入首次載入Page TimeStamp PageTimeStamp.Value = string.Format("{0}{1}{2}{3}{4}{5}", DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'), DateTime.Now.Hour.ToString().PadLeft(2, '0'), DateTime.Now.Minute.ToString().PadLeft(2, '0'), DateTime.Now.Second.ToString().PadLeft(2, '0') ); #endregion #region 設定ToolBar預設狀態 ToolBarInit(); #endregion #region 設定預設功能鍵 this.Form.DefaultButton = this.but_Query.UniqueID; #endregion #region 設定畫面的預設值 this.slp_ST_ACCEPT_DATE.Text = DateTime.Now.AddDays(1).ToString("yyyy/MM/dd");//[門市進貨日] this.txt_PICK_BATCH.Text = "2";//[理貨批次] this.ddl_LINE_B.SelectedValue = "X";//[理貨線]起 this.ddl_LINE_E.SelectedValue = "Z";//[理貨線]迄 #endregion #region 設定畫面控制項的[字型][寬度]大小 //頁籤 this.slp_ST_ACCEPT_DATE.DateTextBox.Font.Size = FontUnit.Medium;//[門市進貨日]字型大小 ((RequiredFieldValidator)this.slp_ST_ACCEPT_DATE.FindControl("RequiredFieldValidator1")).Font.Size = FontUnit.Medium;//[門市進貨日]驗證控制項字型大小 ((CustomValidator)this.slp_ST_ACCEPT_DATE.FindControl("CustomValidator1")).Font.Size = FontUnit.Medium;//[門市進貨日]驗證控制項字型大小 this.slp_ST_ACCEPT_DATE.DateTextBox.Width = Unit.Pixel(110);//[門市進貨日]欄位寬度 this.txt_PICK_BATCH.Font.Size = FontUnit.Medium;//[理貨批次]字型大小 this.req_PICK_BATCH.Font.Size = FontUnit.Medium;//[理貨批次]驗證控制項字型大小 this.ddl_LINE_B.Font.Size = FontUnit.Medium;//[理貨線]起字型大小 this.ddl_LINE_E.Font.Size = FontUnit.Medium;//[理貨線]迄字型大小 this.txt_FULL_BARCODE.Font.Size = FontUnit.Medium;//[商品條碼]字型大小 this.req_FULL_BARCODE.Font.Size = FontUnit.Medium;//[商品條碼]驗證控制項字型大小 this.txt_FULL_BARCODE.Width = Unit.Pixel(350);//[商品條碼]欄位寬度 this.txt_BARCODE.Font.Size = FontUnit.Medium;//[條碼]字型大小 this.txt_PERIOD_BARCODE.Font.Size = FontUnit.Medium;//[二段條碼]字型大小 this.txt_ITEM_NAME.Font.Size = FontUnit.Medium;//[品名]字型大小 this.txt_ITEM.Font.Size = FontUnit.Medium;//[品號]字型大小 this.txt_PERIOD.Font.Size = FontUnit.Medium;//[期別]字型大小 #endregion } } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { #region Focus欄位 if (!IsPostBack) { BCO_CAA.CAACommon CAAComm = new BCO_CAA.CAACommon(); string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(this.txt_FULL_BARCODE.ClientID, false); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CGD261", s_ScriptManager_Script, true); } #endregion } }
/// <summary> /// 離開[店號]時,帶出相關資料 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txt_STORE_ID_Onblur() { try { #region 新增模式 BCO.CAACommon CAAComm = new BCO.CAACommon(); if (this.hid_PageStatus.Value == "insert") { #region 檢查傳入欄位[店號]的值 if (this.slp_STORE_ID.Text.Trim() == string.Empty) { Set_STORE_ID_Default(); #region Focus欄位 DropDownList drop_DISC_TYPE = (DropDownList)this.slp_DISC_TYPE.FindControl("D1"); string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(drop_DISC_TYPE.ClientID, false); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion return; } #endregion #region 傳入參數 //新增狀態下,必須使用sysdate,去查店號資料 //資料必須是當時有效的店號 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false));//[店號] ParameterList.Add(CAAComm.GetValueSetParameter(DateTime.Now.ToString(), "datetime", false));//時間 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID #endregion #region 連結資料庫 BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); IDataReader dr = bco.QUERY_CAA18_DATA_BY_STORE_ID(ParameterList); #endregion #region 將資料寫入相關欄位 //重新將店號再寫入一次 this.slp_STORE_ID.Text = this.slp_STORE_ID.Text; if (dr.Read()) { this.slp_GROUP_NO.Text = dr.IsDBNull(0) ? string.Empty : dr.GetString(0);//店群 this.slp_Z_O.Text = dr.IsDBNull(1) ? string.Empty : dr.GetString(1);//營業所 this.slp_SAL_ID.Text = dr.IsDBNull(2) ? string.Empty : dr.GetString(2);//營業人員 this.slp_AC_UID.Text = dr.IsDBNull(3) ? string.Empty : dr.GetString(3);//帳務人員 this.txt_PAY_RFNO.Text = dr.IsDBNull(4) ? string.Empty : dr.GetString(4);//結帳統編 this.txt_RFNO.Text = dr.IsDBNull(5) ? string.Empty : dr.GetString(5);//統一編號 this.txt_INV_ADDR.Text = dr.IsDBNull(6) ? string.Empty : dr.GetString(6);//地址 this.txt_TITLE.Text = dr.IsDBNull(7) ? string.Empty : dr.GetString(7);//發票抬頭 //Rika 20110413 修改 若統編開頭為A 則預設為2聯式折讓 if (this.txt_RFNO.Text.Substring(0, 1) == "A") { DropDownList drop_DISC_FORM = (DropDownList)this.slp_DISC_FORM.FindControl("D1"); drop_DISC_FORM.SelectedValue = "34"; } else { DropDownList drop_DISC_FORM = (DropDownList)this.slp_DISC_FORM.FindControl("D1"); drop_DISC_FORM.SelectedValue = "33"; } #region Focus欄位 DropDownList drop_DISC_TYPE = (DropDownList)this.slp_DISC_TYPE.FindControl("D1"); string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(drop_DISC_TYPE.ClientID, false); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } #endregion #region 檢查回傳資料 else { Set_STORE_ID_Default(); #region 若發生錯誤則alert訊息(秀玲要alert訊息) string s_ScriptManager_Script = "alert('無符合店號或己關店,請重新輸入')"; ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA182", s_ScriptManager_Script, true); #endregion } dr.Close(); #endregion } #endregion #region 如果不符合以上條件,代表錯誤 else { throw new Exception("頁面資料錯誤,只有在[新增模式]下,才有欄位[店號]Onblur事件"); } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } finally { Finally_Function(); } }
/// <summary> /// BUTTON [檔案下載]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void but_Out_Click(object sender, EventArgs e) { try { #region 將 CheckBox 選擇的資訊寫入TempTable bool b_IsRightExecute; bool b_IsAllCheck; Set_PageValue_To_TempTable(out b_IsRightExecute, out b_IsAllCheck); if (b_IsRightExecute == false) { throw new Exception("CheckBox 的資訊寫入TempTable 時發生錯誤"); } #endregion #region 檢查條件 BCO_CAA.CAACommon CAAComm = new BCO_CAA.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("BUTTON [檔案下載]鈕"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.up_Msg, typeof(UpdatePanel), "CGD261", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 整理匯出資料 #region 宣告變數 System.Text.StringBuilder sb_Out_String = new System.Text.StringBuilder(); string s_LINE = string.Empty;//設定現在是哪一線的商品 string s_BARCODE = string.Empty;//商品條碼 string s_Filter_Expression = string.Empty; #endregion #region 設定欄位[商品條碼] //欄位[商品條碼],是使用者在畫面上輸入的資料, //因為贈品對應不到[商品條碼]資料,所以統一抓商品的[商品條碼]。 //s_Filter_Expression = "ROW_TYPE = 'ITEM'"; //DataRow[] dr_BARCODE = dt_Result.Select(s_Filter_Expression); //if (dr_BARCODE.Length == 1) //{ s_BARCODE = dr_BARCODE[0]["BARCODE"].ToString() + "-" + dr_BARCODE[0]["PERIOD_BARCODE"].ToString(); } //else //{ throw new Exception("該筆資料查無商品的資料。"); } #endregion foreach (DataRow dr in dt_Result.Rows) { if (dr["CHECK_FLG"].ToString() == "1")//勾選(0=未勾選,1=已勾選,預設為已勾選),有勾選才寫 { for (int i = 0; i < 3; i++) { #region 每一筆資料依照順序跑XYZ理貨線 switch (i) { case 0: s_LINE = "X"; break; case 1: s_LINE = "Y"; break; case 2: s_LINE = "Z"; break; } #endregion #region 該理貨線有數量才寫入文字檔,數量是0就不寫 if (dr[s_LINE + "_QTY"].ToString() != "0") { if (sb_Out_String.Length != 0) { sb_Out_String.AppendLine(); }//第一行不必空一行 sb_Out_String.Append("品號:" + dr["ITEM"].ToString() + ";");//品號 sb_Out_String.Append("期別:" + dr["PERIOD"].ToString() + ";");//期別 sb_Out_String.Append("品名:" + dr["ITEM_NAME"].ToString() + ";");//品名 sb_Out_String.Append("二段條碼:" + dr["BARCODE"].ToString() + "-" + dr["PERIOD_BARCODE"].ToString() + ";");//輸入的查詢條件(商品條碼) sb_Out_String.Append(s_LINE + "線-" + ";");//理貨線 sb_Out_String.Append(dr["LOCATE_NO"].ToString() + "-" + ";");//儲位 sb_Out_String.Append(int.Parse(dr[s_LINE + "_QTY"].ToString()).ToString("#,#") + "/" + int.Parse(dr["QTY"].ToString()).ToString("#,#") + ";");//數量 sb_Out_String.Append("1;");//列印數量 固定帶1,最後仍需以【分號】結尾 } #endregion } } } #region 檢查匯出資料 if (sb_Out_String.Length == 0) { this.ErrorMsgLabel.Text = "查無匯出資料"; return; } #endregion #endregion #region 將資料匯出成TXT檔 string s_FileName = "LABEL26.NON"; Response.Clear(); Response.Buffer = true; Response.Charset = "BIG5"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(s_FileName)); Response.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5"); Response.ContentType = "application/ms-txt"; this.EnableViewState = false; //20101108 正平 尾行多一列空白 sb_Out_String.AppendLine(); Response.Write(sb_Out_String.ToString()); Response.End(); #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
/// <summary> /// 設定頁面狀態 /// </summary> /// <param name="s_PageStatus"></param> private void Set_PageDefault(string s_PageStatus) { #region 清空變數 if (dt_NewItem != null) { dt_NewItem.Clear(); } #endregion #region 將AP的時間寫入暫存欄位 this.hid_Ap_Time.Value = DateTime.Now.ToString("yyyy/MM/dd"); #endregion #region 新增狀態 if (s_PageStatus == "insert") { #region 設定AutoPostBack this.chb_REPROOF_FLG.AutoPostBack = true;//取具進項憑証 this.chb_RECEIPT_FLG.AutoPostBack = true;//取具收據 #endregion #region 折讓項目 this.panel_Disc_NewItem.Visible = false; this.but_Disc_NewItem.Enabled = false; #endregion #region 銷貨折讓維護區控制項 this.txt_DISC_NO.ReadOnly = true;//折讓單號 this.txt_DISC_NO.CssClass = "readtxtbox"; this.slp_DISC_SOURCE.ReadOnly = true;//來源 this.slp_GROUP_NO.ReadOnly = true;//店群 this.slp_Z_O.ReadOnly = true;//營業所 this.slp_SAL_ID.ReadOnly = true;//營業人員 this.slp_AC_UID.ReadOnly = true;//帳務人員 this.slp_DISC_DATE.ReadOnly = true;//折讓日期 this.chb_CANCEL_FLG.Enabled = false;//作廢 this.slp_CANCEL_DATE.ReadOnly = true;//作廢日期 this.chb_PERIOD_FLG.Enabled = false;//申報 this.slp_PERIOD_DATE.ReadOnly = true;//申報日期 this.chb_TEMPORAL_FLG.Enabled = false;//轉暫收 this.slp_TEMPORAL_DATE.ReadOnly = true;//暫收日期 this.txt_PAY_RFNO.ReadOnly = true;//結帳統編 this.txt_PAY_RFNO.CssClass = "readtxtbox"; this.txt_RFNO.ReadOnly = true;//統一編號 this.txt_RFNO.CssClass = "readtxtbox"; this.txt_TITLE.ReadOnly = true;//發票抬頭 this.txt_TITLE.CssClass = "readtxtbox"; this.txt_INV_ADDR.ReadOnly = true;//地址 this.txt_INV_ADDR.CssClass = "readtxtbox"; this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 this.slp_CLOSE_MONTH_ACCT.ReadOnly = true;//結帳年月-財會 //20110512 rika insert this.slp_DISC_REMAIN_AMT.ReadOnly = true;//折讓餘額 this.slp_DISC_WASH_AMT.ReadOnly = true;//累積沖帳金額 this.slp_PERIOD_MONTH.ReadOnly = true;//申報期別 #endregion #region 設定 BUTTON 狀態 this.but_GetDiscInv.Visible = true; this.but_Save.Visible = true; this.but_Edit.Visible = false; this.but_Cancel.Visible = true; #endregion #region 設定控制項預設值 this.txt_DISC_NO.Text = string.Empty;//折讓單號 this.slp_DISC_FORM.Text = "1";//格式代號 this.slp_DISC_SOURCE.Text = "2";//來源(預設人工開立) this.slp_GROUP_NO.Text = string.Empty;//店群 this.slp_STORE_ID.Text = string.Empty;//店號 this.slp_Z_O.Text = string.Empty;//營業所 this.slp_DISC_TYPE.Text = "01";//型式(預設一般) this.slp_ROOT_NO.Text = string.Empty;//商品群分類 this.slp_TAX_TYPE.Text = string.Empty;//稅別 this.slp_SAL_ID.Text = string.Empty;//營業人員 this.slp_AC_UID.Text = string.Empty;//帳務人員 this.slp_DISC_DATE.Text = DateTime.Now.ToString("yyyy/MM/dd");//折讓日期(預設給AP的時間) this.txt_ACT_DISC_NO.Text = string.Empty;//財會折讓單號 this.slp_CHG_DISC_DATE.Text = string.Empty;//異動折讓日期 this.chb_PROOF_FLG.Checked = false;//憑證已回 this.slp_PROOF_DATE.Text = string.Empty;//憑證已回日期 this.chb_REPROOF_FLG.Checked = false;//取具進項憑証 this.txt_REPROOF_NO.Text = string.Empty;//發票號碼/收據 this.chb_RECEIPT_FLG.Checked = false;//取具收據 this.chb_CANCEL_FLG.Checked = false;//作廢 this.slp_CANCEL_DATE.Text = string.Empty;//作廢日期 this.chb_PERIOD_FLG.Checked = false;//申報 this.slp_PERIOD_DATE.Text = string.Empty;//申報日期 this.chb_TEMPORAL_FLG.Checked = false;//轉暫收 this.slp_TEMPORAL_DATE.Text = string.Empty;//暫收日期 this.txt_PAY_RFNO.Text = string.Empty;//結帳統編 this.txt_RFNO.Text = string.Empty;//統一編號 this.txt_TITLE.Text = string.Empty;//發票抬頭 this.txt_INV_ADDR.Text = string.Empty;//地址 this.slp_DISC_UAMT.Text = string.Empty;//折讓金額(未稅) this.slp_DISC_TAX.Text = string.Empty;//折讓稅額 this.slp_DISC_AMT.Text = string.Empty;//總金額 this.slp_CLOSE_MONTH.Text = DateTime.Now.ToString("yyyyMM");//結帳年月,20100315秀玲新增需求預設值設定為系統年月。 this.txt_MEMO.Text = string.Empty;//備註 this.slp_CLOSE_MONTH_ACCT.Text = string.Empty;//結帳年月-財會 this.hid_Record_Date.Value = String.Empty;//履歷時間 //20110512 rika insert this.slp_DISC_REMAIN_AMT.Text = string.Empty;//折讓餘額 this.slp_DISC_WASH_AMT.Text = string.Empty;//累積沖帳金額 this.slp_PERIOD_MONTH.Text = string.Empty;//申報期別 #endregion #region 取得折讓稅額 BCO.CAACommon CAAComm = new BCO.CAACommon(); BCO.CAAPublic CAAPub = new BCO.CAAPublic(ConntionDB); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false)); this.hid_TaxRate.Value = CAAPub.GET_TAXRATE(ParameterList).ToString(); #endregion } #endregion #region 檢視狀態 else if (s_PageStatus == "view") { #region 折讓項目 this.panel_Disc_NewItem.Visible = false; this.but_Disc_NewItem.Visible = false; #endregion #region 銷貨折讓維護區控制項 this.txt_DISC_NO.ReadOnly = true;//折讓單號 this.txt_DISC_NO.CssClass = "readtxtbox"; this.slp_DISC_FORM.ReadOnly = true;//格式代號 this.slp_DISC_SOURCE.ReadOnly = true;//來源 this.slp_GROUP_NO.ReadOnly = true;//店群 this.slp_STORE_ID.ReadOnly = true;//店號 this.slp_Z_O.ReadOnly = true;//營業所 this.slp_DISC_TYPE.ReadOnly = true;//型式 this.slp_ROOT_NO.ReadOnly = true;//商品群分類 this.slp_TAX_TYPE.ReadOnly = true;//稅別 this.slp_SAL_ID.ReadOnly = true;//營業人員 this.slp_AC_UID.ReadOnly = true;//帳務人員 this.slp_DISC_DATE.ReadOnly = true;//折讓日期 this.txt_ACT_DISC_NO.ReadOnly = true;//財會折讓單號 this.txt_ACT_DISC_NO.CssClass = "readtxtbox"; this.slp_CHG_DISC_DATE.ReadOnly = true;//異動折讓日期 this.chb_PROOF_FLG.Enabled = false;//憑證已回 this.slp_PROOF_DATE.ReadOnly = true;//憑證已回日期 this.chb_REPROOF_FLG.Enabled = false;//取具進項憑証 this.txt_REPROOF_NO.ReadOnly = true;//發票號碼/收據 this.txt_REPROOF_NO.CssClass = "readtxtbox"; this.chb_RECEIPT_FLG.Enabled = false;//取具收據 this.chb_CANCEL_FLG.Enabled = false;//作廢 this.slp_CANCEL_DATE.ReadOnly = true;//作廢日期 this.chb_PERIOD_FLG.Enabled = false;//申報 this.slp_PERIOD_DATE.ReadOnly = true;//申報日期 this.chb_TEMPORAL_FLG.Enabled = false;//轉暫收 this.slp_TEMPORAL_DATE.ReadOnly = true;//暫收日期 this.txt_PAY_RFNO.ReadOnly = true;//結帳統編 this.txt_PAY_RFNO.CssClass = "readtxtbox"; this.txt_RFNO.ReadOnly = true;//統一編號 this.txt_RFNO.CssClass = "readtxtbox"; this.txt_TITLE.ReadOnly = true;//發票抬頭 this.txt_TITLE.CssClass = "readtxtbox"; this.txt_INV_ADDR.ReadOnly = true;//地址 this.txt_INV_ADDR.CssClass = "readtxtbox"; this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 this.slp_CLOSE_MONTH.ReadOnly = true;//結帳年月 this.txt_MEMO.ReadOnly = true;//備註 this.txt_MEMO.CssClass = "readtxtbox"; this.slp_CLOSE_MONTH_ACCT.ReadOnly = true;//結帳年月-財會 //20110512 rika insert this.slp_DISC_REMAIN_AMT.ReadOnly = true;//折讓餘額 this.slp_DISC_WASH_AMT.ReadOnly = true;//累積沖帳金額 this.slp_PERIOD_MONTH.ReadOnly = true;//申報期別 #endregion #region 設定 BUTTON 狀態 this.but_GetDiscInv.Visible = false; this.but_Save.Visible = false; this.but_Edit.Visible = true; this.but_Cancel.Visible = true; #endregion #region 將值寫入控制項 string s_DISC_NO = Request["CAA182_DISC_NO"].ToString(); Get_PageDataMainAndDetl(s_DISC_NO); #endregion } #endregion #region 編輯狀態 else if (s_PageStatus == "edit") { #region 設定AutoPostBack this.chb_REPROOF_FLG.AutoPostBack = true;//取具進項憑証 this.chb_RECEIPT_FLG.AutoPostBack = true;//取具收據 this.chb_CANCEL_FLG.AutoPostBack = true;//作廢 #endregion #region 折讓項目 this.panel_Disc_NewItem.Visible = false; this.but_Disc_NewItem.Visible = true; #endregion #region 銷貨折讓維護區控制項 this.txt_DISC_NO.ReadOnly = true;//折讓單號 this.txt_DISC_NO.CssClass = "readtxtbox"; this.slp_DISC_FORM.ReadOnly = true;//格式代號 this.slp_DISC_SOURCE.ReadOnly = true;//來源 this.slp_GROUP_NO.ReadOnly = true;//店群 this.slp_STORE_ID.ReadOnly = true;//店號 this.slp_Z_O.ReadOnly = true;//營業所 this.slp_DISC_TYPE.ReadOnly = true;//型式 this.slp_ROOT_NO.ReadOnly = true;//商品群分類 this.slp_TAX_TYPE.ReadOnly = true;//稅別 this.slp_SAL_ID.ReadOnly = true;//營業人員 this.slp_AC_UID.ReadOnly = true;//帳務人員 this.slp_DISC_DATE.ReadOnly = true;//折讓日期 this.txt_ACT_DISC_NO.ReadOnly = true;//財會折讓單號 this.txt_ACT_DISC_NO.CssClass = "readtxtbox"; this.slp_CHG_DISC_DATE.ReadOnly = true;//異動折讓日期 this.chb_PROOF_FLG.Enabled = false;//憑證已回 this.slp_PROOF_DATE.ReadOnly = true;//憑證已回日期 this.chb_REPROOF_FLG.Enabled = false;//取具進項憑証 this.txt_REPROOF_NO.ReadOnly = true;//發票號碼/收據 this.txt_REPROOF_NO.CssClass = "readtxtbox"; this.chb_RECEIPT_FLG.Enabled = false;//取具收據 this.chb_CANCEL_FLG.Enabled = false;//作廢 this.slp_CANCEL_DATE.ReadOnly = true;//作廢日期 this.chb_PERIOD_FLG.Enabled = false;//申報 this.slp_PERIOD_DATE.ReadOnly = true;//申報日期 this.chb_TEMPORAL_FLG.Enabled = false;//轉暫收 this.slp_TEMPORAL_DATE.ReadOnly = true;//暫收日期 this.txt_PAY_RFNO.ReadOnly = true;//結帳統編 this.txt_PAY_RFNO.CssClass = "readtxtbox"; this.txt_RFNO.ReadOnly = true;//統一編號 this.txt_RFNO.CssClass = "readtxtbox"; this.txt_TITLE.ReadOnly = true;//發票抬頭 this.txt_TITLE.CssClass = "readtxtbox"; this.txt_INV_ADDR.ReadOnly = true;//地址 this.txt_INV_ADDR.CssClass = "readtxtbox"; this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 this.slp_DISC_AMT.ReadOnly = true;//總金額 this.slp_CLOSE_MONTH.ReadOnly = true;//結帳年月 this.txt_MEMO.ReadOnly = true;//備註 this.txt_MEMO.CssClass = "readtxtbox"; this.slp_CLOSE_MONTH_ACCT.ReadOnly = true;//結帳年月-財會 //20110512 rika insert this.slp_DISC_REMAIN_AMT.ReadOnly = true;//折讓餘額 this.slp_DISC_WASH_AMT.ReadOnly = true;//累積沖帳金額 this.slp_PERIOD_MONTH.ReadOnly = true;//申報期別 #endregion #region 設定 BUTTON 狀態 this.but_GetDiscInv.Visible = false; this.but_Save.Visible = true; this.but_Edit.Visible = false; this.but_Cancel.Visible = true; #endregion #region 將值寫入控制項 string s_DISC_NO = Request["CAA182_DISC_NO"].ToString(); Get_PageDataMainAndDetl(s_DISC_NO); #endregion #region 依照資料,更改控制項狀態 #region 規則 20100310 秀玲異動需求 /* (1)CAA18 於檢視模式下至編輯模式時,先檢查[總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]是否相同 * (1.1)如果相同,則原本是怎麼做就照舊。 * (1.2)如果不相同,判斷是否有[轉暫收] * (1.2.1)欄位[申報][轉暫收][作廢]都沒有勾選([轉暫收]open,[備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 * (1.2.2)欄位[申報][轉暫收]都有勾選([備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 * (1.2.3)欄位[申報][作廢]都有勾選([備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 * (1.2.4)只有欄位[申報]有勾選([轉暫收]open,[備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 * (1.2.5)只有欄位[轉暫收]有勾選([備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 * (1.2.6)只有欄位[作廢]有勾選([備註]open,[新增項目]鈕close,其他欄位都是唯讀)。 */ #endregion BCO.CAACommon CAAComm = new BCO.CAACommon(); #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]相同,代表尚未沖帳 if (dt_Main.Rows[0]["DISC_REMAIN_AMT"].ToString() == dt_Main.Rows[0]["DISC_AMT"].ToString()) { #region 欄位[申報][轉暫收][作廢]都沒有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.slp_DISC_TYPE.ReadOnly = false;//型式 this.txt_ACT_DISC_NO.ReadOnly = false;//財會折讓單號 this.txt_ACT_DISC_NO.CssClass = string.Empty; this.slp_CHG_DISC_DATE.ReadOnly = false;//異動折讓日期 this.chb_PROOF_FLG.Enabled = true;//憑證已回 this.slp_PROOF_DATE.ReadOnly = false;//憑證已回日期 this.chb_REPROOF_FLG.Enabled = true;//取具進項憑証 this.txt_REPROOF_NO.ReadOnly = false;//發票號碼/收據 this.txt_REPROOF_NO.CssClass = string.Empty; this.chb_RECEIPT_FLG.Enabled = true;//取具收據 this.chb_CANCEL_FLG.Enabled = true;//作廢 this.slp_CANCEL_DATE.ReadOnly = false;//作廢日期 this.chb_TEMPORAL_FLG.Enabled = true;//轉暫收 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; //[取具進項憑証]或[取具收據]其中之一有勾選 if (this.chb_REPROOF_FLG.Checked == true || this.chb_RECEIPT_FLG.Checked == true) { this.slp_DISC_UAMT.ReadOnly = false;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = false;//折讓稅額 this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } else { this.but_Disc_NewItem.Enabled = true; }//新增項目鈕 } #endregion #region 欄位[申報][轉暫收]都有勾選 else if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == true &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 欄位[申報][作廢]都有勾選 else if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == true)//作廢 { this.slp_CANCEL_DATE.ReadOnly = false;//作廢日期 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[申報]有勾選 if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.chb_TEMPORAL_FLG.Enabled = true;//轉暫收 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[轉暫收]有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == true &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[作廢]有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == true)//作廢 { this.slp_CANCEL_DATE.ReadOnly = false;//作廢日期 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion } #endregion #region [總金額(DISC_AMT)][沖帳餘額(DISC_REMAIN_AMT)]不相同,代表已沖帳 else { #region 欄位[申報][轉暫收][作廢]都沒有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.chb_TEMPORAL_FLG.Enabled = true;//轉暫收 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 欄位[申報][轉暫收]都有勾選 else if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == true &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 欄位[申報][作廢]都有勾選 else if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == true)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[申報]有勾選 if (this.chb_PERIOD_FLG.Checked == true &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.chb_TEMPORAL_FLG.Enabled = true;//轉暫收 this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[轉暫收]有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == true &&//轉暫收 this.chb_CANCEL_FLG.Checked == false)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion #region 只有欄位[作廢]有勾選 if (this.chb_PERIOD_FLG.Checked == false &&//申報 this.chb_TEMPORAL_FLG.Checked == false &&//轉暫收 this.chb_CANCEL_FLG.Checked == true)//作廢 { this.txt_MEMO.ReadOnly = false;//備註 this.txt_MEMO.CssClass = string.Empty; this.but_Disc_NewItem.Enabled = false;//新增項目鈕 } #endregion } #endregion #endregion #region 取得折讓稅額 BCO.CAAPublic CAAPub = new BCO.CAAPublic(ConntionDB); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false)); this.hid_TaxRate.Value = CAAPub.GET_TAXRATE(ParameterList).ToString(); #endregion #region 紀錄欄位[折讓金額(未稅)][折讓稅額][總金額]的原始金額 this.hid_Original_DISC_UAMT.Value = this.slp_DISC_UAMT.Text;//折讓金額(未稅) this.hid_Original_DISC_TAX.Value = this.slp_DISC_TAX.Text;//折讓稅額 this.hid_Original_DISC_AMT.Value = this.slp_DISC_AMT.Text;//總金額 #endregion #region 紀錄是否月結 #region 傳入參數 ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_CLOSE_MONTH.Text, "string", false));//[結帳年月] ParameterList.Add(CAAComm.GetValueSetParameter("CAA18", "string", false)); //V_FUNC_NO #endregion #region 連結資料庫 BCO.ChanMonthCloseYN bco_Is_Close = new BCO.ChanMonthCloseYN(ConntionDB); #endregion #region 檢查回傳資料 //回傳結果=Y,該月份已月結 //回傳結果=N,該月份尚未月結 if (((ArrayList)bco_Is_Close.GetChanMonthCloseStatus(ParameterList, null))[0].ToString() == "Y") { b_IsClose = true; } else { b_IsClose = false; } #endregion #region 如果是月結,欄位[折讓金額(未稅)][折讓稅額]必須ReadOnly if (b_IsClose == true) { this.slp_DISC_UAMT.ReadOnly = true;//折讓金額(未稅) this.slp_DISC_TAX.ReadOnly = true;//折讓稅額 } #endregion #endregion } #endregion }
/// <summary> /// 新增 & 編輯 模式下離開[客戶代號/名稱]帶出相關資料 /// </summary> private void txt_STORE_ID_Onblur() { #region 規則 /* * 與秀玲確認過 * 抓取店號帶出相關資料的部份 * 在[新增]狀態下,要用 sysdate 作為查詢條件 * 在[編輯]狀態下,要用 createdate 作為查詢條件(編輯畫面load進來時,和使用者修改店號時都要以該筆資料的createdate為主) * 來查出 [VDS_STM_STORE][VDS_STM_ACCOUNT_PROPERTY] 這兩個Table當時的資料 */ #endregion try { #region 新增 or 編輯 模式 BCO.CAACommon CAAComm = new BCO.CAACommon(); if (this.hid_Page_Status.Value == "INSERT" || this.hid_Page_Status.Value == "EDIT") { #region 重新將店號再寫入一次 this.slp_STORE_ID.Text = this.slp_STORE_ID.Text; #endregion if (this.slp_STORE_ID.Text.Trim() == string.Empty) { #region 將欄位清空 this.txt_Z_O_ID.Text = string.Empty;//營業所 this.txt_Z_O.Text = string.Empty;//營業所名稱 this.txt_SAL.Text = string.Empty;//營業人員 this.txt_SAL_ID.Text = string.Empty;//營業人員名稱 this.txt_RFNO.Text = string.Empty;//統一編號 this.txt_RFNO_TITLE.Text = string.Empty;//統一編號抬頭 #endregion #region Focus欄位 string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(this.txt_BOND_ID.ClientID, true); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA162", s_ScriptManager_Script, true); #endregion } else { #region 傳入參數 DateTime d_Date; d_Date = DateTime.Parse(this.hid_CREATEDATE.Value); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_STORE_ID.Text, "string", false));//店號 ParameterList.Add(CAAComm.GetValueSetParameter(d_Date.ToString(), "datetime", false));//時間 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID #endregion #region 連結資料庫 BCO.MaintainBondRecord BCO = new BCO.MaintainBondRecord(ConntionDB); DataTable dt_Return = BCO.GET_STORE_RELATE_DATA(ParameterList); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count != 1) { #region 將欄位清空 this.txt_Z_O_ID.Text = string.Empty;//營業所 this.txt_Z_O.Text = string.Empty;//營業所名稱 this.txt_SAL.Text = string.Empty;//營業人員 this.txt_SAL_ID.Text = string.Empty;//營業人員名稱 this.txt_RFNO.Text = string.Empty;//統一編號 this.txt_RFNO_TITLE.Text = string.Empty;//統一編號抬頭 #endregion #region 若發生錯誤則alert訊息(秀玲要alert訊息) //若發生錯誤,則只要alert錯誤訊息,不要focus到[店號]欄位 string s_ScriptManager_Script = "alert('無符合店號或己關店,請重新輸入')"; ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA162", s_ScriptManager_Script, true); #endregion return; } #endregion #region 將資料寫入頁面 else { this.txt_Z_O_ID.Text = dt_Return.Rows[0]["Z_O"].ToString();//營業所 this.txt_Z_O.Text = dt_Return.Rows[0]["Z_O_NAME"].ToString();//營業所名稱 this.txt_SAL.Text = dt_Return.Rows[0]["SAL_ID"].ToString();//營業人員 this.txt_SAL_ID.Text = dt_Return.Rows[0]["SAL_ID_NAME"].ToString();//營業人員名稱 this.txt_RFNO.Text = dt_Return.Rows[0]["RFNO"].ToString();//統一編號 this.txt_RFNO_TITLE.Text = dt_Return.Rows[0]["TITLE"].ToString();//統一編號抬頭 #region Focus欄位 string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(this.txt_BOND_ID.ClientID, true); ScriptManager.RegisterStartupScript(this.up_Condition, typeof(UpdatePanel), "CAA162", s_ScriptManager_Script, true); #endregion } #endregion } } #endregion #region 如果不符合以上條件,代表錯誤 else { throw new Exception("頁面資料錯誤,只有在[新增 or 編輯模式]下,才有欄位[店號]Onblur事件"); } #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
/// <summary> /// 取得頁面上的資料 /// </summary> /// <param name="s_DISC_NO">折讓單號</param> private void Get_PageDataMainAndDetl(string s_DISC_NO) { #region 傳入參數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(s_DISC_NO, "string", false));//[折讓單號] ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//V_LOG_UPDATEUID #endregion #region 連結資料庫 BCO.MaintainDiscRecord bco = new BCO.MaintainDiscRecord(ConntionDB); DataSet ds_Return = bco.QueryDataByView(ParameterList); #endregion #region 將資料寫入相關欄位 MAIN string s_RequestString = Request.QueryString["CAA182_Type"]; if (ds_Return.Tables["MAIN"].Rows.Count != 1 && s_RequestString != "ToolBar") { throw new Exception("查無折讓單號:" + s_DISC_NO + "的相關資料"); } else if (ds_Return.Tables["MAIN"].Rows.Count != 1 && s_RequestString == "ToolBar") { throw new Exception("查無此筆資料或已被其他使用者刪除,請點選上一筆/下一筆鈕或回查詢頁重新查詢!"); } DataRow dr_Return_Main = ds_Return.Tables["MAIN"].Rows[0]; this.txt_DISC_NO.Text = dr_Return_Main["DISC_NO"].ToString();//折讓單號 this.slp_DISC_FORM.Text = dr_Return_Main["DISC_FORM"].ToString();//格式代號 this.slp_DISC_SOURCE.Text = dr_Return_Main["DISC_SOURCE"].ToString();//來源 this.slp_GROUP_NO.Text = dr_Return_Main["GROUP_NO"].ToString();//店群 this.slp_STORE_ID.Text = dr_Return_Main["STORE_ID"].ToString();//店號 this.slp_Z_O.Text = dr_Return_Main["Z_O"].ToString();//營業所 this.slp_DISC_TYPE.Text = dr_Return_Main["DISC_TYPE"].ToString();//型式 this.slp_ROOT_NO.Text = dr_Return_Main["ROOT_NO"].ToString();//商品群分類 this.slp_TAX_TYPE.Text = dr_Return_Main["TAX_TYPE"].ToString();//稅別 this.slp_SAL_ID.Text = dr_Return_Main["SAL_ID"].ToString();//營業人員 this.slp_AC_UID.Text = dr_Return_Main["AC_UID"].ToString();//帳務人員 this.slp_DISC_DATE.Text = dr_Return_Main["DISC_DATE"].ToString();//折讓日期 this.txt_ACT_DISC_NO.Text = dr_Return_Main["ACT_DISC_NO"].ToString();//財會折讓單號 this.slp_CHG_DISC_DATE.Text = dr_Return_Main["CHG_DISC_DATE"].ToString();//異動折讓日期 if (dr_Return_Main["PROOF_FLG"].ToString() != "0" && dr_Return_Main["PROOF_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[PROOF_FLG]資料錯誤"); } else { this.chb_PROOF_FLG.Checked = dr_Return_Main["PROOF_FLG"].ToString() == "0" ? false : true; }//憑證已回 this.slp_PROOF_DATE.Text = dr_Return_Main["PROOF_DATE"].ToString();//憑證已回日期 if (dr_Return_Main["REPROOF_FLG"].ToString() != "0" && dr_Return_Main["REPROOF_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[REPROOF_FLG]資料錯誤"); } else { this.chb_REPROOF_FLG.Checked = dr_Return_Main["REPROOF_FLG"].ToString() == "0" ? false : true; }//取具進項憑証 this.txt_REPROOF_NO.Text = dr_Return_Main["REPROOF_NO"].ToString();//發票號碼/收據 if (dr_Return_Main["RECEIPT_FLG"].ToString() != "0" && dr_Return_Main["RECEIPT_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[RECEIPT_FLG]資料錯誤"); } else { this.chb_RECEIPT_FLG.Checked = dr_Return_Main["RECEIPT_FLG"].ToString() == "0" ? false : true; }//憑證收據 if (dr_Return_Main["CANCEL_FLG"].ToString() != "0" && dr_Return_Main["CANCEL_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[CANCEL_FLG]資料錯誤"); } else { this.chb_CANCEL_FLG.Checked = dr_Return_Main["CANCEL_FLG"].ToString() == "0" ? false : true; }//作廢 this.slp_CANCEL_DATE.Text = dr_Return_Main["CANCEL_DATE"].ToString();//作廢日期 if (dr_Return_Main["PERIOD_FLG"].ToString() != "0" && dr_Return_Main["PERIOD_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[PERIOD_FLG]資料錯誤"); } else { this.chb_PERIOD_FLG.Checked = dr_Return_Main["PERIOD_FLG"].ToString() == "0" ? false : true; }//申報 this.slp_PERIOD_DATE.Text = dr_Return_Main["PERIOD_DATE"].ToString();//申報日期 if (dr_Return_Main["TEMPORAL_FLG"].ToString() != "0" && dr_Return_Main["TEMPORAL_FLG"].ToString() != "1") { throw new Exception("折讓單號:" + dr_Return_Main["DISC_NO"].ToString() + ",資料庫欄位[TEMPORAL_FLG]資料錯誤"); } else { this.chb_TEMPORAL_FLG.Checked = dr_Return_Main["TEMPORAL_FLG"].ToString() == "0" ? false : true; }//轉暫收 this.slp_TEMPORAL_DATE.Text = dr_Return_Main["TEMPORAL_DATE"].ToString();//暫收日期 this.txt_PAY_RFNO.Text = dr_Return_Main["PAY_RFNO"].ToString();//結帳統編 this.txt_RFNO.Text = dr_Return_Main["RFNO"].ToString();//統一編號 this.txt_TITLE.Text = dr_Return_Main["TITLE"].ToString();//發票抬頭 this.txt_INV_ADDR.Text = dr_Return_Main["INV_ADDR"].ToString();//地址 this.slp_DISC_UAMT.Text = dr_Return_Main["DISC_UAMT"].ToString();//折讓金額(未稅) this.slp_DISC_TAX.Text = dr_Return_Main["DISC_TAX"].ToString();//折讓稅額 this.slp_DISC_AMT.Text = dr_Return_Main["DISC_AMT"].ToString();//總金額 this.slp_CLOSE_MONTH.Text = dr_Return_Main["CLOSE_MONTH"].ToString();//結帳年月 this.txt_MEMO.Text = dr_Return_Main["MEMO"].ToString();//備註 this.slp_CLOSE_MONTH_ACCT.Text = dr_Return_Main["CLOSE_MONTH_ACCT"].ToString();//結帳年月-財會 this.hid_Record_Date.Value = dr_Return_Main["CREATEDATE"].ToString();//建立時間 //20110512 rika insert this.slp_PERIOD_MONTH.Text = dr_Return_Main["PERIOD_MONTH"].ToString();//申報期別 this.slp_DISC_REMAIN_AMT.Text = dr_Return_Main["DISC_REMAIN_AMT"].ToString();//折讓餘額 this.slp_DISC_WASH_AMT.Text = (Convert.ToInt32(dr_Return_Main["DISC_AMT"])-Convert.ToInt32(dr_Return_Main["DISC_REMAIN_AMT"])).ToString();//累積沖帳金額 #endregion #region 編輯狀態,紀錄CheckBox的勾選狀態 if (this.hid_PageStatus.Value == "edit") { if (arl_Chk_Status != null) { arl_Chk_Status.Clear(); } else { arl_Chk_Status = new ArrayList(); } //20100715 秀玲新增[取具收據]狀態 arl_Chk_Status.Add(this.chb_PROOF_FLG.Checked);//憑證已回 arl_Chk_Status.Add(this.chb_REPROOF_FLG.Checked);//取具進項憑証 arl_Chk_Status.Add(this.chb_RECEIPT_FLG.Checked);//取具收據 arl_Chk_Status.Add(this.chb_CANCEL_FLG.Checked);//作廢 arl_Chk_Status.Add(this.chb_PERIOD_FLG.Checked);//申報 arl_Chk_Status.Add(this.chb_TEMPORAL_FLG.Checked);//轉暫收 this.hid_CheckBox_Status.Value = string.Empty; for (int i = 0; i < arl_Chk_Status.Count; i++) { if ((bool)arl_Chk_Status[i] == true) { hid_CheckBox_Status.Value += "1,"; } else { hid_CheckBox_Status.Value += "0,"; } } //將最後一個"逗號"去除 hid_CheckBox_Status.Value = hid_CheckBox_Status.Value.Remove(hid_CheckBox_Status.Value.Length - 1, 1); } #endregion #region 編輯狀態,依照CheckBox的勾選狀態來設定GirdView的Enable if (this.hid_PageStatus.Value == "edit") { bool b_IsRight = false; string s_ReturnMsg = string.Empty; Check_CheckStatus(out b_IsRight, out s_ReturnMsg); if (b_IsRight == false) { if (s_ReturnMsg == "勾選欄位[憑證已回]" || s_ReturnMsg == "取消勾選欄位[憑證已回]" || s_ReturnMsg == "勾選欄位[取具進項憑証]" || s_ReturnMsg == "取消勾選欄位[取具進項憑証]" || s_ReturnMsg == "勾選欄位[取具收據]" || s_ReturnMsg == "取消勾選欄位[取具收據]" || s_ReturnMsg == "都沒有勾") { b_GirdView_Enable = true; } } } #endregion #region 資料與GridView繫結 DETL //抓取本頁初次登記的時間 string SessionIDName = "CAA182_" + PageTimeStamp.Value; Session["SessionID"] = SessionIDName; Session[SessionIDName] = ds_Return.Tables["DETL"]; this.gv_DiscInv.DataSource = ds_Return.Tables["DETL"]; this.gv_DiscInv.PageSize = 10; this.gv_DiscInv.PageIndex = 0; this.gv_DiscInv.DataBind(); #endregion #region 如果是編輯模式,則將資料放入TempTable if (this.hid_PageStatus.Value == "edit") { dt_Main = ds_Return.Tables["MAIN"].Copy(); dt_NewItem = ds_Return.Tables["DETL"].Copy(); } #endregion }
private bool Check_StoreDate(string s_Store_Id, DateTime d_Date) { bool bResult = false; #region 傳入參數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(s_Store_Id, "string", false));//店號 ParameterList.Add(CAAComm.GetValueSetParameter(d_Date.ToString(), "datetime", false));//時間 ParameterList.Add(CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false));//登入人員 #endregion #region 連結資料庫 DataTable dt_Return = new DataTable(); BCO.MaintainBondRecord bco = new BCO.MaintainBondRecord(ConntionDB); dt_Return = bco.GET_STORE_RELATE_DATA(ParameterList); #endregion #region 檢查回傳資料 if (dt_Return.Rows.Count == 1) { bResult = true; } #endregion return bResult; }
/// <summary> /// 按下BUTTON[儲存]鈕,將新增資料寫入TempTable /// </summary> /// <param name="dr_NewItem"></param> /// <param name="dt_New_Detl"></param> /// <param name="s_Now"></param> /// <param name="s_Type"></param> private void Set_NewItem_To_Temp_For_Add(DataRow dr_NewItem, DataTable dt_New_Detl, string s_Now) { #region 設定變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); int i_DISC_UAMT = int.Parse(dr_NewItem["DISC_UAMT"].ToString());//折讓金額(未稅) int i_DISC_TAX = int.Parse(dr_NewItem["DISC_TAX"].ToString());//折讓稅額 int i_DISC_AMT = int.Parse(dr_NewItem["DISC_AMT"].ToString());//含稅金額 int i_NON_INV_UAMT = int.Parse(dr_NewItem["NON_INV_UAMT"].ToString());//發票餘額(未稅) int i_NON_INV_TAX = int.Parse(dr_NewItem["NON_INV_TAX"].ToString());//發票稅額 int i_Total_NON_INV_UAMT = int.Parse(dr_NewItem["ORIGINAL_NON_INV_UAMT"].ToString()) + int.Parse(dr_NewItem["ORIGINAL_DISC_UAMT"].ToString());//發票餘額(未稅)+折讓金額(未稅) int i_Total_NON_INV_TAX = int.Parse(dr_NewItem["ORIGINAL_NON_INV_TAX"].ToString()) + int.Parse(dr_NewItem["ORIGINAL_DISC_TAX"].ToString());//發票稅額+折讓稅額 bool b_RightData = true; #endregion #region 檢查條件 //[折讓金額(未稅)]不可小於0 if (i_DISC_UAMT < 0) { b_RightData = false; } //[折讓稅額]不可小於0 if (i_DISC_TAX < 0) { b_RightData = false; } //[折讓金額(未稅)]為0時,[折讓稅額]也必須為0 if (i_DISC_UAMT == 0 && i_DISC_TAX != 0) { b_RightData = false; } //[折讓金額(未稅)]不得大於[發票餘額(未稅)] if (i_DISC_UAMT > i_Total_NON_INV_UAMT) { b_RightData = false; } //[折讓稅額]不得大於[發票稅額] if (i_DISC_TAX > i_Total_NON_INV_TAX) { b_RightData = false; } //[原始發票餘額(未稅)]-[發票餘額(未稅)]必須等於[折讓金額(未稅)] if (i_Total_NON_INV_UAMT - i_NON_INV_UAMT != i_DISC_UAMT) { b_RightData = false; } //[原始發票稅額]-[發票稅額]必須等於[折讓稅額] if (i_Total_NON_INV_TAX - i_NON_INV_TAX != i_DISC_TAX) { b_RightData = false; } //[折讓金額(未稅)]+[折讓稅額]必須等於[含稅金額] if (i_DISC_UAMT + i_DISC_TAX != i_DISC_AMT) { b_RightData = false; } #endregion #region 符合條件,將資料寫入TempTable if (b_RightData == true) { DataRow dr_New_Detl = dt_New_Detl.NewRow(); dr_New_Detl["INV_NO"] = dr_NewItem["INV_NO"];//發票號碼 dr_New_Detl["DISC_UAMT"] = dr_NewItem["DISC_UAMT"];//未稅金額 dr_New_Detl["DISC_TAX"] = dr_NewItem["DISC_TAX"];//稅額 dr_New_Detl["DISC_AMT"] = dr_NewItem["DISC_AMT"];//含稅金額 dr_New_Detl["CREATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//建立日期 dr_New_Detl["CREATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//建立人員 dr_New_Detl["UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_New_Detl["UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_New_Detl["ENABLE"] = CAAComm.GetValueSetParameter("1", "int", false);//作廢狀態註記,(1代表未作廢,0代表已作廢) dt_New_Detl.Rows.Add(dr_New_Detl); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,新增資料至折讓明細檔,發生頁面資料錯誤"); } #endregion }
private bool Check_BOND_Monthly() { bool bResult = false; #region 傳入參數 BCO.CAACommon CAAComm = new BCO.CAACommon(); ParameterList.Clear(); ParameterList.Add(CAAComm.GetValueSetParameter(this.slp_ACCEPT_BOND_DATE.Text, "date", false));//20091223改為利用[收票日]來判斷 #endregion #region 連結資料庫 string str_Result = string.Empty; BCO.MaintainBondRecord BCO = new BCO.MaintainBondRecord(ConntionDB); str_Result = BCO.CheckBondRecord(ParameterList); #endregion #region 檢查回傳資料 if (str_Result == "Y") { bResult = true; } #endregion return bResult; }
/// <summary> /// 按下BUTTON[儲存]鈕,將更改資料寫入TempTable /// </summary> /// <param name="dr_NewItem"></param> /// <param name="dt_New_Detl"></param> /// <param name="s_Now"></param> /// <param name="s_Type"></param> private void Set_NewItem_To_Temp_For_Delete(DataRow dr_DeleteItem, DataTable dt_Delete_Detl, string s_Now) { #region 設定變數 BCO.CAACommon CAAComm = new BCO.CAACommon(); int i_DISC_UAMT = int.Parse(dr_DeleteItem["DISC_UAMT"].ToString());//折讓金額(未稅) int i_DISC_TAX = int.Parse(dr_DeleteItem["DISC_TAX"].ToString());//折讓稅額 int i_DISC_AMT = int.Parse(dr_DeleteItem["DISC_AMT"].ToString());//含稅金額 int i_NON_INV_UAMT = int.Parse(dr_DeleteItem["NON_INV_UAMT"].ToString());//發票餘額(未稅) int i_NON_INV_TAX = int.Parse(dr_DeleteItem["NON_INV_TAX"].ToString());//發票稅額 int i_Total_NON_INV_UAMT = int.Parse(dr_DeleteItem["ORIGINAL_NON_INV_UAMT"].ToString()) + int.Parse(dr_DeleteItem["ORIGINAL_DISC_UAMT"].ToString());//發票餘額(未稅)+折讓金額(未稅) int i_Total_NON_INV_TAX = int.Parse(dr_DeleteItem["ORIGINAL_NON_INV_TAX"].ToString()) + int.Parse(dr_DeleteItem["ORIGINAL_DISC_TAX"].ToString());//發票稅額+折讓稅額 bool b_RightData = true; #endregion #region 檢查條件 //[折讓金額(未稅)]不可小於0 if (i_DISC_UAMT < 0) { b_RightData = false; } //[折讓稅額]不可小於0 if (i_DISC_TAX < 0) { b_RightData = false; } //[折讓金額(未稅)]為0時,[折讓稅額]也必須為0 if (i_DISC_UAMT == 0 && i_DISC_TAX != 0) { b_RightData = false; } //[折讓金額(未稅)]不得大於[發票餘額(未稅)] if (i_DISC_UAMT > i_Total_NON_INV_UAMT) { b_RightData = false; } //[折讓稅額]不得大於[發票稅額] if (i_DISC_TAX > i_Total_NON_INV_TAX) { b_RightData = false; } //[原始發票餘額(未稅)]-[發票餘額(未稅)]必須等於[折讓金額(未稅)] if (i_Total_NON_INV_UAMT - i_NON_INV_UAMT != i_DISC_UAMT) { b_RightData = false; } //[原始發票稅額]-[發票稅額]必須等於[折讓稅額] if (i_Total_NON_INV_TAX - i_NON_INV_TAX != i_DISC_TAX) { b_RightData = false; } //[折讓金額(未稅)]+[折讓稅額]必須等於[含稅金額] if (i_DISC_UAMT + i_DISC_TAX != i_DISC_AMT) { b_RightData = false; } #endregion #region 符合條件,將資料寫入TempTable if (b_RightData == true) { DataRow dr_Delete_Detl = dt_Delete_Detl.NewRow(); dr_Delete_Detl["INV_NO"] = dr_DeleteItem["INV_NO"]; dr_Delete_Detl["DISC_UAMT"] = dr_DeleteItem["DISC_UAMT", DataRowVersion.Original]; dr_Delete_Detl["DISC_TAX"] = dr_DeleteItem["DISC_TAX", DataRowVersion.Original]; dr_Delete_Detl["DISC_AMT"] = dr_DeleteItem["DISC_AMT", DataRowVersion.Original]; dr_Delete_Detl["CREATEDATE"] = dr_DeleteItem["CREATEDATE1"]; dr_Delete_Detl["CREATEUID"] = dr_DeleteItem["CREATEUID1"]; dr_Delete_Detl["UPDATEDATE"] = dr_DeleteItem["UPDATEDATE1"]; dr_Delete_Detl["UPDATEUID"] = dr_DeleteItem["UPDATEUID1"]; dr_Delete_Detl["ENABLE"] = dr_DeleteItem["ENABLE1"]; dt_Delete_Detl.Rows.Add(dr_Delete_Detl); } else { throw new Exception("按下銷貨折讓維護的[儲存]鈕,新增資料至折讓明細檔,發生頁面資料錯誤"); } #endregion }
/// <summary> /// 檢視模式下按下[編輯]鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_Edit_Click(object sender, EventArgs e) { try { #region 檢查條件 BCO.CAACommon CAAComm = new BCO.CAACommon(); ArrayList arl_Check_Condition = Check_Condition("View"); #region 如果檢查有誤,則Return if (arl_Check_Condition[1].ToString() != string.Empty) { #region 錯誤訊息 this.ErrorMsgLabel.Text = arl_Check_Condition[1].ToString(); #endregion #region Focus欄位 if (arl_Check_Condition[0].ToString() != string.Empty) { string s_ScriptManager_Script = CAAComm.ToMakeUp_SetFocus_Script(arl_Check_Condition[0].ToString(), true); ScriptManager.RegisterStartupScript(this.UpdatePanel1, typeof(UpdatePanel), "CAA162", s_ScriptManager_Script, true); } #endregion return; } #endregion #endregion #region 組合跳轉頁面字串 string s_ADDLocation_Replace_String = string.Empty; try { int i_Count = int.Parse(Request.QueryString["CAA162_COUNT"]); string s_Request_Key = Request.QueryString["CAA162_PageTimeStamp"]; s_ADDLocation_Replace_String = "&CAA162_COUNT=" + i_Count.ToString() + "&CAA162_PageTimeStamp=" + s_Request_Key; } catch { s_ADDLocation_Replace_String = string.Empty; } #endregion #region 跳轉頁面至編輯模式 string strNo = dt.Rows[0]["BOND_NO"].ToString(); System.Web.UI.ScriptManager.RegisterStartupScript(this.btn_Edit, this.GetType(), "TO_CAA162.aspx", "location.replace('CAA162.aspx?V_NO=" + strNo + "&mode=EDIT&Code=CAA16" + s_ADDLocation_Replace_String + "');", true); #endregion } catch (Exception ex) { WaringLogProcess(ex.Message); this.ErrorMsgLabel.Text = ex.Message; } }
/// <summary> /// 按下BUTTON[儲存]鈕,將更改資料寫入TempTable /// </summary> /// <param name="dr_Detl"></param> /// <param name="dt_Update_Inv"></param> /// <param name="s_Now"></param> private void Set_NewItem_To_Temp_For_INV_MAIN(DataRow dr_Detl, DataTable dt_Update_Inv, string s_Now) { BCO.CAACommon CAAComm = new BCO.CAACommon(); DataRow dr_Update_Inv = dt_Update_Inv.NewRow(); //New Data dr_Update_Inv["NEW_UPDATEDATE"] = CAAComm.GetValueSetParameter(s_Now, "datetime", false);//更新日期 dr_Update_Inv["NEW_UPDATEUID"] = CAAComm.GetValueSetParameter(Session["UID"].ToString(), "string", false);//更新人員 dr_Update_Inv["NEW_NON_INV_UAMT"] = dr_Detl["NON_INV_UAMT"];//畫面上發票餘額(未稅) dr_Update_Inv["NEW_NON_INV_TAX"] = dr_Detl["NON_INV_TAX"];//畫面上發票稅額 //Old Data dr_Update_Inv["ID"] = dr_Detl["ID"]; dr_Update_Inv["CODE"] = dr_Detl["CODE"]; dr_Update_Inv["CLOSE_MONTH"] = dr_Detl["CLOSE_MONTH"]; dr_Update_Inv["INV_DATE"] = dr_Detl["INV_DATE"]; dr_Update_Inv["INV_NO"] = dr_Detl["INV_NO"]; dr_Update_Inv["IS_SCHEDULE"] = dr_Detl["IS_SCHEDULE"]; dr_Update_Inv["INV_CHKNO"] = dr_Detl["INV_CHKNO"]; dr_Update_Inv["INVOICE_DATE_RANGE"] = dr_Detl["INVOICE_DATE_RANGE"]; dr_Update_Inv["FORM_NO"] = dr_Detl["FORM_NO"]; dr_Update_Inv["SOURCE_TYPE"] = dr_Detl["SOURCE_TYPE"]; dr_Update_Inv["INV_KIND"] = dr_Detl["INV_KIND"]; dr_Update_Inv["TAX_TYPE"] = dr_Detl["TAX_TYPE"]; dr_Update_Inv["ITEM_NAME"] = dr_Detl["ITEM_NAME"]; dr_Update_Inv["INV_UAMT"] = dr_Detl["INV_UAMT"]; dr_Update_Inv["INV_TAX"] = dr_Detl["INV_TAX"]; dr_Update_Inv["INV_AMT"] = dr_Detl["INV_AMT"]; dr_Update_Inv["MEMO"] = dr_Detl["MEMO"]; dr_Update_Inv["CANCEL_FLG"] = dr_Detl["CANCEL_FLG"]; dr_Update_Inv["PRINT_FLG"] = dr_Detl["PRINT_FLG"]; dr_Update_Inv["JUMP_FLG"] = dr_Detl["JUMP_FLG"]; dr_Update_Inv["CANCEL_DATE"] = dr_Detl["CANCEL_DATE"]; dr_Update_Inv["OLD_INV_NO"] = dr_Detl["OLD_INV_NO"]; dr_Update_Inv["STORE_ID"] = dr_Detl["STORE_ID"]; dr_Update_Inv["ROOT_NO"] = dr_Detl["ROOT_NO"]; dr_Update_Inv["KEYIN_DATE"] = dr_Detl["KEYIN_DATE"]; dr_Update_Inv["CHG_INV_TYPE"] = dr_Detl["CHG_INV_TYPE"]; dr_Update_Inv["CREATEDATE"] = dr_Detl["CREATEDATE"]; dr_Update_Inv["CREATEUID"] = dr_Detl["CREATEUID"]; dr_Update_Inv["UPDATEDATE"] = dr_Detl["UPDATEDATE"]; dr_Update_Inv["UPDATEUID"] = dr_Detl["UPDATEUID"]; dr_Update_Inv["ENABLE"] = dr_Detl["ENABLE"]; dr_Update_Inv["INV_FORM"] = dr_Detl["INV_FORM"]; dr_Update_Inv["NON_INV_UAMT"] = dr_Detl["ORIGINAL_NON_INV_UAMT"]; //原始發票餘額(未稅) dr_Update_Inv["NON_INV_TAX"] = dr_Detl["ORIGINAL_NON_INV_TAX"]; //原始發票稅額 dr_Update_Inv["INV_VERSION"] = dr_Detl["INV_VERSION"]; dr_Update_Inv["INV_REMAIN_AMT"] = dr_Detl["INV_REMAIN_AMT"]; dr_Update_Inv["DUE_DATE"] = dr_Detl["DUE_DATE"]; dr_Update_Inv["INDEED_DATE"] = dr_Detl["INDEED_DATE"]; dr_Update_Inv["WASH_STATUS"] = dr_Detl["WASH_STATUS"]; dr_Update_Inv["VOUCH_DOC"] = dr_Detl["VOUCH_DOC"]; dr_Update_Inv["VOUCH_RFNO"] = dr_Detl["VOUCH_RFNO"]; dt_Update_Inv.Rows.Add(dr_Update_Inv); }