/********** 其他常用function ********/ #region OfGetPrice /// <summary> /// /// </summary> /// <param name="pSbc01">價格條件</param> /// <param name="pCust">客戶編號</param> /// <param name="pItem">料號</param> /// <param name="pUnit">單位</param> /// <param name="pDate">日期</param> /// <param name="pCurrency">幣別</param> /// <param name="pType">1.報價 2.訂單 3.出貨單</param> /// <param name="pQty">數量</param> /// <param name="pTaxYN">含稅否</param> /// <param name="pTaxRate">稅率</param> /// <param name="pExRate">匯率</param> /// <param name="pPrice">回傳價格</param> /// <returns></returns> public Result OfGetPrice(string pSbc01, string pCust, string pItem, string pUnit, DateTime?pDate, string pCurrency, string pType, decimal pQty, string pTaxYN, decimal pTaxRate, decimal pExRate, out decimal pPrice ) { Result rtnResult = null; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; List <sbc_tb> sbcList = null; BasBLL boBas = null; bek_tb bekModel = null; decimal tempPrice = 0; bool flag = false; pPrice = 0; try { rtnResult = new Result(); rtnResult.Key1 = pItem; boBas = new BasBLL(OfGetConntion()); boBas.TRAN = this.TRAN; sbcList = OfgetSbcList(pSbc01); if (sbcList == null || sbcList.Count == 0) { rtnResult.Message = "未設定取價原則!"; return(rtnResult); } bekModel = boBas.OfGetBekModel(pCurrency); if (bekModel == null) { rtnResult.Message = "查無此幣別資料!"; return(rtnResult); } foreach (sbc_tb sbcModel in sbcList.OrderBy(p => p.sbc04)) { switch (sbcModel.sbc03.ToUpper()) { case "A1": //依料號主檔 考量含稅否及匯率 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@ica01", pItem)); if (pTaxYN == "Y") { sqlSelect = @"SELECT ica11 FROM ica_tb WHERE ica01=@ica01"; } else { sqlSelect = @"SELECT ica10 FROM ica_tb WHERE ica01=@ica01"; } tempPrice = GlobalFn.isNullRet(OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0m); break; case "A2": //依料號客戶價格 雖然key值只有料號+客戶編號+幣別,但還是得加含稅否來做處理 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@sdd01", pItem)); sqlParmList.Add(new SqlParameter("@sdd02", pCust)); sqlParmList.Add(new SqlParameter("@sdd03", pCurrency)); sqlParmList.Add(new SqlParameter("@sdd08", pTaxYN)); sqlSelect = @"SELECT sdd09 FROM sdd_tb WHERE sdd01=@sdd01 AND sdd02=@sdd02 AND sdd03=@sdd03 AND sdd08=@sdd08 "; tempPrice = GlobalFn.isNullRet(OfGetFieldValue(sqlSelect, sqlParmList.ToArray()), 0m); break; case "A3": //依產品主檔 break; } if (sbcModel.sbc03.ToUpper() == "A1" && tempPrice > 0) { pPrice = tempPrice / pExRate; pPrice = GlobalFn.Round(pPrice, bekModel.bek03); break; } if (sbcModel.sbc03.ToUpper() == "A2" && tempPrice > 0) { pPrice = tempPrice; pPrice = GlobalFn.Round(pPrice, bekModel.bek03); break; } } rtnResult.Success = true; return(rtnResult); } catch (Exception ex) { throw ex; } }
//檢查登入角色是否有執行該程式的權限 protected override bool WfAppendUpdate() { DataTable dtAddTb; AdmBLL boAppend; StringBuilder sbSql; vw_admi600 masterModel = null; List <SqlParameter> sqlParmList = null; try { masterModel = DrMaster.ToItem <vw_admi600>(); boAppend = new AdmBLL(BoMaster.OfGetConntion()); boAppend.TRAN = BoMaster.TRAN; boAppend.OfCreateDao("add_tb", "*", ""); sbSql = new StringBuilder(); sbSql.AppendLine("SELECT * FROM add_tb"); sbSql.AppendLine("WHERE add01=@add01"); sbSql.AppendLine("AND add02=@add02"); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@add01", LoginInfo.UserRole)); sqlParmList.Add(new SqlParameter("@add02", masterModel.ado01)); dtAddTb = boAppend.OfGetDataTable(sbSql.ToString(), sqlParmList.ToArray()); if (masterModel.ado07.ToUpper() == "M")//menus 時 { if (dtAddTb != null && dtAddTb.Rows.Count > 0) { dtAddTb.Rows[0].Delete(); if (boAppend.OfUpdate(dtAddTb) < 1) { WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!"); return(false); } } } else //報表或程式時 { if (dtAddTb.Rows.Count == 0 && GlobalFn.isNullRet(masterModel.ado16, "") != "Y") { var result = WfShowConfirmMsg("無此程式的權限,請問是否自動新增 ?"); //var i = WfShowConfirmMsg("無此程式的權限,請問是否自動新增"); //if (i == 1) if (result == DialogResult.Yes) { var drNew = dtAddTb.NewRow(); drNew["add01"] = LoginInfo.UserRole; drNew["add02"] = masterModel.ado01; drNew["add03"] = "Y"; drNew["add04"] = "Y"; drNew["add05"] = "Y"; drNew["add06"] = "Y"; drNew["add07"] = "Y"; drNew["add08"] = "Y"; drNew["add09"] = "Y"; drNew["add10"] = "Y"; drNew["add11"] = "Y"; drNew["add12"] = "Y"; dtAddTb.Rows.Add(drNew); if (boAppend.OfUpdate(dtAddTb) < 1) { WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!"); return(false); } } } } return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { //DataSet ds; vw_invr522 invr522Model; string sqlBody = ""; DataTable dtIlaTb; List<QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere, strOrderBy; StringBuilder sbQuerySingle = null; List<SqlParameter> sqlParmList; List<Master> resultList = null; try { invr522Model = DrMaster.ToItem<vw_invr522>(); resultList = new List<Master>(); queryInfoList = new List<QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(invr522Model.ipa01)) { queryModel = new QueryInfo(); queryModel.TableName = "ipa_tb"; queryModel.ColumnName = "ipa01"; queryModel.ColumnType = TabMaster.DtSource.Columns["ipa01"].DataType.Name; queryModel.Value = invr522Model.ipa01; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr522Model.ipacreu)) { queryModel = new QueryInfo(); queryModel.TableName = "ipa_tb"; queryModel.ColumnName = "ipacreu"; queryModel.ColumnType = TabMaster.DtSource.Columns["ipacreu"].DataType.Name; queryModel.Value = invr522Model.ipacreu; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr522Model.ipacreg)) { queryModel = new QueryInfo(); queryModel.TableName = "ipa_tb"; queryModel.ColumnName = "ipacreg"; queryModel.ColumnType = TabMaster.DtSource.Columns["ipacreg"].DataType.Name; queryModel.Value = invr522Model.ipacreg; queryInfoList.Add(queryModel); } sqlParmList = new List<SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(invr522Model.ipa03_s)) { sbQuerySingle.AppendLine("AND ipa03>=@ipa03_s"); sqlParmList.Add(new SqlParameter("@ila02_s", invr522Model.ipa03_s)); } if (!GlobalFn.varIsNull(invr522Model.ipa03_e)) { sbQuerySingle.AppendLine("AND ipa03<=@ipa03_e"); sqlParmList.Add(new SqlParameter("@ipa03_e", invr522Model.ipa03_e)); } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) strWhere += strSecurity; //取得單頭 sqlBody = @" SELECT ipa01,ipb02,ipb03,ipb04,ipb05, ipb06,ipb07,ipb30,ipb40,ipb50, ica02,ica03, bej03, CONVERT(DECIMAL,0) AS qty1, CONVERT(DECIMAL,0) AS qty2, CONVERT(DECIMAL,0) AS dif_qty, CONVERT(NVARCHAR(20),0) AS qty1_str, CONVERT(NVARCHAR(20),0) AS qty2_str, CONVERT(NVARCHAR(20),0) AS dif_qty_str FROM ipa_tb INNER JOIN ipb_tb ON ipa01=ipb01 LEFT JOIN ica_tb ON ipb03=ica01 LEFT JOIN bej_tb ON ipb07=bej01 WHERE ipa05='Y' "; strOrderBy = " ORDER BY ipa01,ipb02"; dtIlaTb = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, strOrderBy), sqlParmList.ToArray()); dtIlaTb.TableName = "Master"; if (dtIlaTb != null) { resultList.AddRange(dtIlaTb.ToList<Master>()); } if (resultList == null || resultList.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return false; } foreach (Master masterModel in resultList) { switch (invr522Model.type1) { case "1": masterModel.qty1 = masterModel.ipb30; break; case "2": masterModel.qty1 = masterModel.ipb40; break; case "3": masterModel.qty1 = masterModel.ipb50; break; case "4": masterModel.qty1 = masterModel.ipb06; break; } switch (invr522Model.type2) { case "1": masterModel.qty2 = masterModel.ipb30; break; case "2": masterModel.qty2 = masterModel.ipb40; break; case "3": masterModel.qty2 = masterModel.ipb50; break; case "4": masterModel.qty2 = masterModel.ipb06; break; } masterModel.dif_qty = masterModel.qty2 - masterModel.qty1; masterModel.qty1_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.qty1); masterModel.qty2_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.qty2); masterModel.dif_qty_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.dif_qty); } if (invr522Model.dif_yn == "Y")//只顯示差異 { if (resultList.Where(x => x.dif_qty != 0).Count() == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return false; } pReport.RegData("master", resultList.Where(x => x.dif_qty != 0)); } else { pReport.RegData("master", resultList); } pReport.CacheAllData = true; StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"]; footerBand1.NewPageAfter = true; footerBand1.ResetPageNumber = true; pReport.Compile(); return true; } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { vw_basi050 masterModel = null; string msg; Control chkControl; string chkColName; try { masterModel = DrMaster.ToItem <vw_basi050>(); #region 單頭資料檢查 chkColName = "bef01"; chkControl = ute_bef01; #region 付款條件分類 if (GlobalFn.varIsNull(masterModel.bef01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion chkColName = "bef02"; chkControl = ute_bef02; #region 付款條件編號 if (GlobalFn.varIsNull(masterModel.bef02)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } if (FormEditMode == YREditType.新增 && BoBas.OfChkBefPKValid(GlobalFn.isNullRet(masterModel.bef01, ""), GlobalFn.isNullRet(masterModel.bef02, "")) == true) { msg = "付款條件編號已存在,請檢核!"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion chkColName = "bef03"; chkControl = ute_bef03; #region 付款條件編號說明 if (GlobalFn.varIsNull(masterModel.bef03)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion #endregion return(true); } catch (Exception ex) { throw ex; } }
//回傳值 true.通過驗證 false.未通過驗證, protected override bool WfItemCheck(object sender, ItemCheckInfo e) { vw_admi600 admi600Model; try { admi600Model = DrMaster.ToItem <vw_admi600>(); #region 單頭-pick vw_admi600 if (e.Row.Table.Prefix.ToLower() == "vw_admi600") { switch (e.Column.ToLower()) { case "ado01": //程式代號 if (GlobalFn.isNullRet(e.Value, "") == "") { return(true); } if (FormEditMode == YREditType.新增) { if (BoAdm.OfChkAdoPKExists(admi600Model.ado01) == true) { WfShowErrorMsg("程式代號已存在,請檢查!"); return(false); } } break; case "ado07": //程式類別 P.程式 M.menu R.報表 if (GlobalFn.varIsNull(admi600Model.ado07) || admi600Model.ado07 == "M") { e.Row["ado03"] = ""; e.Row["ado04"] = ""; e.Row["ado05"] = ""; e.Row["ado06"] = ""; e.Row["ado08"] = "N"; e.Row["ado09"] = "N"; e.Row["ado10"] = ""; e.Row["ado11"] = 0; e.Row["ado12"] = ""; e.Row["ado13"] = ""; e.Row["ado15"] = ""; e.Row["ado16"] = "N"; } else if (admi600Model.ado07 == "R") { e.Row["ado08"] = "N"; e.Row["ado09"] = "N"; e.Row["ado13"] = ""; e.Row["ado15"] = ""; e.Row["ado16"] = "N"; WfItemChkForceFocus(ucb_ado13); } WfDisplayMode(); break; case "ado09": //自動化報表 if (GlobalFn.isNullRet(e.Value, "") == "Y") { WfSetControlReadonly(ute_ado10, false); WfItemChkForceFocus(ute_ado10); } else { WfSetControlReadonly(ute_ado10, true); e.Row["ado10"] = ""; //報表名稱 e.Row["ado13"] = ""; } break; case "ado14": //流程圖ID if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoAdm.OfChkAdxPKExists(e.Value.ToString()) == false) { WfShowErrorMsg("無此流程圖ID,請確認!"); return(false); } break; //case "ado15": //Action功能 // if (GlobalFn.varIsNull(e.Value)) // return true; // if (BoAdm.OfChkAtc02Exists(e.Value.ToString()) == false) // { // WfShowMsg("無此欄位,請確認!"); // return false; // } // break; //case "ado16": //是否為子程式 // if (GlobalFn.varIsNull(e.Value)) // return true; // if (BoAdm.OfChkAtc02Exists(e.Value.ToString()) == false) // { // WfShowMsg("無此欄位,請確認!"); // return false; // } // break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// 過帳及重過帳共用程式 /// </summary> /// <param name="pModel"></param> /// <param name="pPost"></param> /// <returns></returns> public List <Result> OfGlab311Post(vw_glab311 pModel, string pPost, string pSecurityString, string pSrcFormId, UserInfo pLoginInfo) { List <Result> rtnResultList = null; string selectSql = ""; string strQueryRange = "", strQuerySingle = ""; List <SqlParameter> sqlParmList = null; DataTable dtGfa = null; List <QueryInfo> queryInfoList; QueryInfo queryModel; gfa_tb gfaModel; try { _loginInfo = pLoginInfo; selectSql = @" SELECT * FROM gfa_tb WHERE gfaconf='Y' "; selectSql += string.Format(" AND gfapost='{0}'", pPost); sqlParmList = new List <SqlParameter>(); queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(pModel.gfa01)) { queryModel = new QueryInfo(); queryModel.TableName = "gfa_tb"; queryModel.ColumnName = "gfa01"; queryModel.ColumnType = "string"; queryModel.Value = pModel.gfa01; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single處理 if (!GlobalFn.varIsNull(pModel.gfa02_s)) { sqlParmList.Add(new SqlParameter("@gfa02_s", pModel.gfa02_s)); strQuerySingle += string.Format(" AND gfa02>=@gfa02_s"); } if (!GlobalFn.varIsNull(pModel.gfa02_e)) { sqlParmList.Add(new SqlParameter("@gfa02_e", pModel.gfa02_e)); strQuerySingle += string.Format(" AND gfa02<=@gfa02_e"); } #endregion selectSql = string.Concat(selectSql, strQueryRange, strQuerySingle, pSecurityString); //加入權限處理 dtGfa = OfGetDataTable(selectSql, sqlParmList.ToArray()); if (dtGfa == null || dtGfa.Rows.Count == 0) { return(null); } rtnResultList = new List <Result>(); foreach (DataRow drGfa in dtGfa.Rows) { gfaModel = drGfa.ToItem <gfa_tb>(); var result = new Result(); rtnResultList.Add(result); if (gfaModel.gfa03 != gfaModel.gfa04) { result.Key1 = gfaModel.gfa01; result.Message = "借貸不平衡!"; continue; } if (pPost == "N") //重過帳不修改傳票單頭 { if (OfPostGfa(gfaModel) == false) { result.Key1 = gfaModel.gfa01; result.Message = "更新gfa_tb失敗!"; continue; } } if (OfPostGfb(gfaModel, result) == false) { continue; } result.Success = true; } return(rtnResultList); } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { vw_basi080 masterModel = null; string msg; Control chkControl; string chkColName; int iTemp = 0; try { masterModel = DrMaster.ToItem <vw_basi080>(); chkColName = "bek01"; chkControl = ute_bek01; #region 幣別 if (GlobalFn.varIsNull(masterModel.bek01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } if (FormEditMode == YREditType.新增 && BoBas.OfChkBekPKExists(GlobalFn.isNullRet(masterModel.bek01, "")) == true) { msg = "幣別已存在,請檢核!"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion chkColName = "bek02"; chkControl = ute_bek02; #region 幣別名稱 if (GlobalFn.varIsNull(masterModel.bek02)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion #region 單價小數位數 chkColName = "bek03"; chkControl = ute_bek03; iTemp = 0; if (GlobalFn.varIsNull(masterModel.bek03)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } if (int.TryParse(GlobalFn.isNullRet(masterModel.bek03, ""), out iTemp) == false) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = "請輸入整數值"; WfShowErrorMsg(msg); errorProvider.SetError(chkControl, msg); return(false); } if (iTemp > 5 || iTemp < 0) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus();; msg = "需輸入範圍為0-5的整數"; WfShowErrorMsg(msg); return(false); } #endregion #region 小計/總計 小數位數 chkColName = "bek04"; chkControl = ute_bek04; iTemp = 0; if (GlobalFn.varIsNull(masterModel.bek04)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } if (int.TryParse(GlobalFn.isNullRet(masterModel.bek04, ""), out iTemp) == false) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = "請輸入整數值"; WfShowErrorMsg(msg); errorProvider.SetError(chkControl, msg); return(false); } if (iTemp > 5 || iTemp < 0) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus();; msg = "需輸入範圍為0-5的整數"; WfShowErrorMsg(msg); return(false); } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { vw_glar300 glar300Model; StringBuilder sbSql = null; string sqlBody = ""; string sqlOrderBy = ""; DataTable dtMaster; List <Master> masterList; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; decimal maxPageRows = 5; //每頁限定筆數 List <Master> addMasterList = null; //用來增加空白筆數的集合 List <SqlParameter> sqlParmList; try { if (Vw_Galr300 != null) //他窗引用時 { glar300Model = Vw_Galr300; } else { glar300Model = DrMaster.ToItem <vw_glar300>(); } queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(glar300Model.gfa01)) { queryModel = new QueryInfo(); queryModel.TableName = "gfa_tb"; queryModel.ColumnName = "gfa01"; queryModel.ColumnType = TabMaster.DtSource.Columns["gfa01"].DataType.Name; queryModel.Value = glar300Model.gfa01; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); //他窗引用時,僅查詢單號 if (Vw_Galr300 == null) { if (!GlobalFn.varIsNull(glar300Model.gfa02_s)) { sbQuerySingle.AppendLine("AND gfa02>=@gfa02_s"); sqlParmList.Add(new SqlParameter("@gfa02_s", glar300Model.gfa02_s)); } if (!GlobalFn.varIsNull(glar300Model.gfa02_e)) { sbQuerySingle.AppendLine("AND gfa02<=@gfa02_e"); sqlParmList.Add(new SqlParameter("@gfa02_e", glar300Model.gfa02_e)); } //過帳否 if (glar300Model.gfapost == "1") { sbQuerySingle.AppendLine("AND gfapost='N'"); } else if (glar300Model.gfapost == "2") { sbQuerySingle.AppendLine("AND gfapost='Y'"); } //有效否 if (glar300Model.gfaconf == "1") { sbQuerySingle.AppendLine("AND gfaconf <>'X' "); } else if (glar300Model.gfaconf == "2") { sbQuerySingle.AppendLine("AND gfapost='X' "); } //列印否 if (glar300Model.gfaprno == 1) { sbQuerySingle.AppendLine("AND gfaprno =0"); } else if (glar300Model.gfapost == "2") { sbQuerySingle.AppendLine("AND gfaprno >0 "); } } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @"SELECT gfa01,gfa02,gfa03,gfa04,gfa05, gfa06,gfa07,gfa08,gfa09, gfaprno,gfaconf,gfacond,gfaconu, gfapost,gfaposd,gfaposu, gac02 as gfa01_c, gfb02,gfb03,gfb04,gfb05, gfb06,gfb07,gfb08,gfb09,gfb10, gba02 AS gfb03_c, beb03 AS gfb05_c, bek04, gba05 FROM gfa_tb LEFT JOIN gfb_tb ON gfa01=gfb01 LEFT JOIN baa_tb ON 1=1 LEFT JOIN gac_tb ON substring(gfa01,1,baa06)=gac01 LEFT JOIN gba_tb ON gfb03=gba01 LEFT JOIN bek_tb ON gfb08=bek01 LEFT JOIN beb_tb ON gfb05=beb01 WHERE 1=1 "; sqlOrderBy = " ORDER BY gfa01,gfa02"; dtMaster = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray()); dtMaster.TableName = "Master"; if (dtMaster == null || dtMaster.Rows.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } masterList = dtMaster.ToList <Master>(true); //取得本幣資料 var baaModel = BoBas.OfGetBaaModel(); if (baaModel == null) { WfShowErrorMsg("未設定基本參數,請先設定!"); return(false); } var baa04 = baaModel.baa04; var bekUsModel = BoBas.OfGetBekModel(baa04); if (bekUsModel == null) { WfShowErrorMsg("查無本幣資料,請先設定!"); return(false); } //依群組來處理 var gfa01GroupList = from o in masterList group o by o.gfa01 into g select g.First() ; addMasterList = new List <Master>(); foreach (Master groupModel in gfa01GroupList) { var gfa01 = groupModel.gfa01; var groupList = masterList.Where(p => p.gfa01 == gfa01).ToList(); int groupTotalRecs = groupList.Count(); int groupTotalPages = Convert.ToInt16(Math.Ceiling(Convert.ToDecimal(groupTotalRecs / maxPageRows))); for (int i = 0; i < groupList.Count(); i++) { var masterModel = groupList[i]; masterModel.gfa03_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfa03); masterModel.gfa04_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfa04); if (masterModel.gfb06 == "1") { masterModel.gfb07d_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfb07); masterModel.gfb10d_str = string.Format("{0:N" + masterModel.bek04 + "}", masterModel.gfb10); } else { masterModel.gfb07c_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfb07); masterModel.gfb10c_str = string.Format("{0:N" + masterModel.bek04 + "}", masterModel.gfb10); } masterModel.groupPageNo = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal((i + 1) / maxPageRows))); masterModel.groupSeqNo = i + 1; masterModel.groupTotalPages = groupTotalPages; if (masterModel.groupTotalPages != masterModel.groupPageNo) { masterModel.isPageEnd = false; } else { masterModel.isPageEnd = true; } if (i == groupTotalRecs - 1) { //處理要新增的空白筆數 var mod = groupTotalRecs % maxPageRows; if (mod != 0) { var addRecs = maxPageRows - mod; if (addRecs > 0) { for (int j = 0; j < addRecs; j++) { var addMasterModel = new Master(); addMasterModel.gfa01 = masterModel.gfa01; addMasterModel.gfa02 = masterModel.gfa02; addMasterModel.gfa03 = masterModel.gfa03; addMasterModel.gfa04 = masterModel.gfa04; addMasterModel.gfa05 = masterModel.gfa05; addMasterModel.gfa06 = masterModel.gfa06; addMasterModel.gfa07 = masterModel.gfa07; addMasterModel.gfa08 = masterModel.gfa08; addMasterModel.gfa09 = masterModel.gfa09; addMasterModel.gfaprno = masterModel.gfaprno; addMasterModel.gfaconf = masterModel.gfaconf; addMasterModel.gfacond = masterModel.gfacond; addMasterModel.gfaconu = masterModel.gfaconu; addMasterModel.gfapost = masterModel.gfapost; addMasterModel.gfaposd = masterModel.gfaposd; addMasterModel.gfaposu = masterModel.gfaposu; addMasterModel.gfa01_c = masterModel.gfa01_c; addMasterModel.gfb02 = 0; addMasterModel.gfb03 = ""; addMasterModel.gfb04 = ""; addMasterModel.gfb05 = ""; addMasterModel.gfb06 = ""; addMasterModel.gfb07 = 0; addMasterModel.gfb08 = ""; addMasterModel.gfb09 = 0; addMasterModel.gfb10 = 0; addMasterModel.gfb03_c = ""; addMasterModel.gfb05_c = ""; addMasterModel.bek04 = 0; addMasterModel.gba05 = ""; addMasterModel.gfa03_str = masterModel.gfa03_str; addMasterModel.gfa04_str = masterModel.gfa04_str; addMasterModel.gfb07c_str = ""; addMasterModel.gfb07d_str = ""; addMasterModel.gfb10c_str = ""; addMasterModel.gfb10d_str = ""; addMasterModel.groupPageNo = masterModel.groupPageNo; addMasterModel.groupTotalPages = masterModel.groupTotalPages; addMasterModel.groupSeqNo = i + j + 2; addMasterModel.isPageEnd = masterModel.isPageEnd; addMasterList.Add(addMasterModel); } } } } } } if (addMasterList != null && addMasterList.Count > 0) { masterList.AddRange(addMasterList); } pReport.RegData("Master", masterList); pReport.CacheAllData = true; ////處理跳頁 //StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"]; //if (glar300Model.jump_yn.ToUpper() == "Y") //{ // footerBand1.NewPageAfter = true; // footerBand1.ResetPageNumber = true; //} //else //{ // footerBand1.NewPageAfter = false; // footerBand1.ResetPageNumber = false; //} return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { //DataSet ds; vw_invr337 invr337Model; StringBuilder sbSql = null; string sqlBody = ""; DataTable dtIlaTb; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; List <SqlParameter> sqlParmList; List <Master> resultList = null; try { invr337Model = DrMaster.ToItem <vw_invr337>(); resultList = new List <Master>(); queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(invr337Model.ifa01)) { queryModel = new QueryInfo(); queryModel.TableName = "ifa_tb"; queryModel.ColumnName = "ifa01"; queryModel.ColumnType = TabMaster.DtSource.Columns["ifa01"].DataType.Name; queryModel.Value = invr337Model.ifa01; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr337Model.ifa03)) { queryModel = new QueryInfo(); queryModel.TableName = "ifa_tb"; queryModel.ColumnName = "ifa03"; queryModel.ColumnType = TabMaster.DtSource.Columns["ifa03"].DataType.Name; queryModel.Value = invr337Model.ifa03; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr337Model.ifa04)) { queryModel = new QueryInfo(); queryModel.TableName = "ifa_tb"; queryModel.ColumnName = "ifa04"; queryModel.ColumnType = TabMaster.DtSource.Columns["ifa04"].DataType.Name; queryModel.Value = invr337Model.ifa04; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr337Model.ifa06)) { queryModel = new QueryInfo(); queryModel.TableName = "ifa_tb"; queryModel.ColumnName = "ifa06"; queryModel.ColumnType = TabMaster.DtSource.Columns["ifa06"].DataType.Name; queryModel.Value = invr337Model.ifa04; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(invr337Model.ifa02_s)) { sbQuerySingle.AppendLine("AND ifa02>=@ifa02_s"); sqlParmList.Add(new SqlParameter("@ifa02_s", invr337Model.ifa02_s)); } if (!GlobalFn.varIsNull(invr337Model.ifa02_e)) { sbQuerySingle.AppendLine("AND ifa02<=@ifa02_e"); sqlParmList.Add(new SqlParameter("@ifa02_s", invr337Model.ifa02_e)); } if (invr337Model.doc_status != "0") { if (invr337Model.doc_status == "1") //撥出在途 { sbQuerySingle.AppendLine("AND ISNULL(ifa09,'N') = 'N'"); } if (invr337Model.doc_status == "2") //撥入確認 { sbQuerySingle.AppendLine("AND ifaconf = 'Y'"); } } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @" SELECT ifa01,ifa02,ifa03,bec02 as ifa03_c , ifa04,beb03 AS ifa04_c,ifa05,ifa06, ifa09,ifaconf, ifb02,ifb03,ifb04,ifb05,'' as ifb05_str,ifb06, bej03,ifb07, ifb08,'' as ifb08_str,ifb09,ifb10, ica03 FROM ifa_tb LEFT JOIN ifb_tb ON ifa01=ifb01 LEFT JOIN bec_tb ON ifa03=bec01 LEFT JOIN beb_tb ON ifa04=beb01 LEFT JOIN bej_tb ON ifb06=bej01 LEFT JOIN ica_tb ON ifb03=ica01 WHERE ifa00='2' AND ifb01 IS NOT NULL AND ifaconf='Y' "; dtIlaTb = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray()); dtIlaTb.TableName = "Master"; if (dtIlaTb != null) { resultList.AddRange(dtIlaTb.ToList <Master>()); } if (resultList == null || resultList.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } foreach (Master masterModel in resultList) { //數量處理 masterModel.ifb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ifb05); //數量 masterModel.ifb08_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ifb08); //數量 } pReport.RegData("master", resultList); pReport.CacheAllData = true; pReport.Compile(); return(true); } catch (Exception ex) { throw ex; } }
public List <Result> OfGenGeaByCfa(string pCfa01, UserInfo pLoginInfo) { List <Result> rtnResultList = null; Result result = null; cfa_tb cfaModel = null; List <cfb_tb> cfbList = null; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; CarBLL boCar = null; StpBLL boStp = null; BasBLL boBas = null; DataTable dtGea = null, dtGeb = null; DataRow drGea = null, drGeb = null; baa_tb baaModel = null; try { rtnResultList = new List <Result>(); boBas = new BasBLL(this.OfGetConntion()); boBas.TRAN = this.TRAN; boCar = new CarBLL(this.OfGetConntion()); boCar.TRAN = this.TRAN; boStp = new StpBLL(this.OfGetConntion()); boStp.TRAN = this.TRAN; baaModel = boBas.OfGetBaaModel(); if (baaModel == null || GlobalFn.varIsNull(baaModel.baa04)) { result = new Result(); result.Key1 = pCfa01; result.Message = "查無本國幣別!"; rtnResultList.Add(result); return(rtnResultList); } cfaModel = boCar.OfGetCfaModel(pCfa01); if (cfaModel == null) { result = new Result(); result.Key1 = pCfa01; result.Message = "查無此收款沖帳單號!"; rtnResultList.Add(result); return(rtnResultList); } if (cfaModel.cfaconf != "N") { result = new Result(); result.Key1 = pCfa01; result.Message = "收款沖帳單非未確認狀態!"; rtnResultList.Add(result); return(rtnResultList); } cfbList = boCar.OfGetCfbList(pCfa01); if (cfbList == null || cfbList.Count == 0) { result = new Result(); result.Key1 = pCfa01; result.Message = "收款沖帳單無單身資料!"; rtnResultList.Add(result); return(rtnResultList); } //新增底稿單頭 this.OfCreateDao("gea_tb", "*", ""); sqlSelect = "SELECT * FROM gea_tb WHERE 1<>1 "; dtGea = this.OfGetDataTable(sqlSelect); drGea = dtGea.NewRow(); drGea["gea01"] = cfaModel.cfa01; //底稿單號 drGea["gea02"] = "AR"; //系統別 drGea["gea03"] = 2; //1.應收 2.收款 drGea["gea04"] = 1; //AR 固定為1 drGea["gea05"] = cfaModel.cfa02; //同帳款日期 drGea["gea06"] = DBNull.Value; //傳票號碼 drGea["gea07"] = DBNull.Value; //傳票日期 drGea["gea08"] = cfaModel.cfa10; //借方金額--本幣 drGea["gea09"] = cfaModel.cfa11; //貸方金額--本幣 drGea["gea10"] = DBNull.Value; //保留 drGea["gea11"] = DBNull.Value; //保留 drGea["gea12"] = DBNull.Value; //保留 drGea["geaprno"] = 0; drGea["geacomp"] = pLoginInfo.CompNo; drGea["geacreu"] = pLoginInfo.UserNo; drGea["geacreg"] = pLoginInfo.DeptNo; drGea["geacred"] = OfGetNow(); drGea["geamodu"] = DBNull.Value; drGea["geamodg"] = DBNull.Value; drGea["geamodd"] = DBNull.Value; drGea["geasecu"] = pLoginInfo.UserNo; drGea["geasecg"] = pLoginInfo.GroupNo; dtGea.Rows.Add(drGea); if (this.OfUpdate(dtGea) == -1) { result = new Result(); result.Key1 = pCfa01; result.Message = "新增分錄底稿單頭失敗!"; rtnResultList.Add(result); return(rtnResultList); } //新增底稿單身 this.OfCreateDao("geb_tb", "*", ""); sqlSelect = "SELECT * FROM geb_tb WHERE 1<>1 "; dtGeb = this.OfGetDataTable(sqlSelect); //處理貸方資料 foreach (cfb_tb cfbModel in cfbList) { drGeb = dtGeb.NewRow(); drGeb["geb01"] = cfbModel.cfb01; //底稿單頭 drGeb["geb02"] = "AR"; drGeb["geb03"] = 2; //1.應收 2.收款 drGeb["geb04"] = 1; //AR 固定為1 drGeb["geb05"] = cfbModel.cfb02; //項次 drGeb["geb06"] = cfbModel.cfb11; //會計科目 drGeb["geb07"] = ""; //摘要 drGeb["geb08"] = cfbModel.cfb13; //部門 drGeb["geb09"] = cfbModel.cfb03; //借貸 1.借 2.貸 drGeb["geb10"] = cfbModel.cfb03; //本幣金額(未稅) drGeb["geb11"] = cfbModel.cfb07; //原幣幣別 drGeb["geb12"] = cfbModel.cfb08; //匯率 drGeb["geb13"] = cfbModel.cfb09; //原幣金額 drGeb["geb14"] = cfaModel.cfa03; //客戶編號 drGeb["geb15"] = boStp.OfGetSca03(cfaModel.cfa03); //客戶簡稱 drGeb["geb16"] = DBNull.Value; //保留 drGeb["geb17"] = DBNull.Value; //保留 drGeb["geb18"] = DBNull.Value; //保留 drGeb["geb19"] = DBNull.Value; //保留 drGeb["geb20"] = DBNull.Value; //保留 drGeb["geb21"] = DBNull.Value; //保留 drGeb["gebcomp"] = pLoginInfo.CompNo; drGeb["gebcreu"] = pLoginInfo.UserNo; drGeb["gebcreg"] = pLoginInfo.DeptNo; drGeb["gebcred"] = OfGetNow(); drGeb["gebmodu"] = DBNull.Value; drGeb["gebmodg"] = DBNull.Value; drGeb["gebmodd"] = DBNull.Value; dtGeb.Rows.Add(drGeb); } if (this.OfUpdate(dtGeb) == -1) { result = new Result(); result.Key1 = pCfa01; result.Message = "新增分錄底稿單身失敗!"; rtnResultList.Add(result); return(rtnResultList); } return(rtnResultList); } catch (Exception ex) { throw ex; } }
public List <Result> OfGenGeaByCea(string pCea01, UserInfo pLoginInfo) { List <Result> rtnResultList = null; Result result = null; cea_tb ceaModel = null; List <ceb_tb> cebList = null; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; CarBLL boCar = null; StpBLL boStp = null; BasBLL boBas = null; DataTable dtGea = null, dtGeb = null; DataRow drGea = null, drGeb = null; decimal gea08 = 0, gea09 = 0; int i; baa_tb baaModel = null; gba_tb gbaModel = null; cba_tb cbaModel = null; try { rtnResultList = new List <Result>(); boBas = new BasBLL(this.OfGetConntion()); boBas.TRAN = this.TRAN; boCar = new CarBLL(this.OfGetConntion()); boCar.TRAN = this.TRAN; boStp = new StpBLL(this.OfGetConntion()); boStp.TRAN = this.TRAN; baaModel = boBas.OfGetBaaModel(); if (baaModel == null || GlobalFn.varIsNull(baaModel.baa04)) { result = new Result(); result.Key1 = pCea01; result.Message = "查無本國幣別!"; rtnResultList.Add(result); return(rtnResultList); } ceaModel = boCar.OfGetCeaModel(pCea01); if (ceaModel == null) { result = new Result(); result.Key1 = pCea01; result.Message = "查無此應收單號!"; rtnResultList.Add(result); return(rtnResultList); } if (ceaModel.ceaconf != "N") { result = new Result(); result.Key1 = pCea01; result.Message = "應收帳款非未確認狀態!"; rtnResultList.Add(result); return(rtnResultList); } cbaModel = boCar.OfGetCbaModel(ceaModel.cea21); if (cbaModel == null) { result = new Result(); result.Key1 = pCea01; result.Message = "查無應收科目類別資料!"; rtnResultList.Add(result); return(rtnResultList); } if (GlobalFn.varIsNull(cbaModel.cba05)) { result = new Result(); result.Key1 = pCea01; result.Message = "查無銷項稅額科目!"; rtnResultList.Add(result); return(rtnResultList); } cebList = boCar.OfGetCebList(pCea01); if (cebList == null || cebList.Count == 0) { result = new Result(); result.Key1 = pCea01; result.Message = "應收帳款無單身資料!"; rtnResultList.Add(result); return(rtnResultList); } //新增底稿單頭 this.OfCreateDao("gea_tb", "*", ""); sqlSelect = "SELECT * FROM gea_tb WHERE 1<>1 "; dtGea = this.OfGetDataTable(sqlSelect); drGea = dtGea.NewRow(); drGea["gea01"] = ceaModel.cea01; //底稿單號 drGea["gea02"] = "AR"; //系統別 drGea["gea03"] = 1; //1.應收 2.收款 drGea["gea04"] = 1; //AR 固定為1 drGea["gea05"] = ceaModel.cea02; //同帳款日期 drGea["gea06"] = DBNull.Value; //傳票號碼 drGea["gea07"] = DBNull.Value; //傳票日期 drGea["gea08"] = ceaModel.cea15t; //借方金額 var ceb09t_tot = cebList.Sum(p => p.ceb09t); drGea["gea09"] = ceb09t_tot; //貸方金額 drGea["gea10"] = DBNull.Value; //保留 drGea["gea11"] = DBNull.Value; //保留 drGea["gea12"] = DBNull.Value; //保留 drGea["geaprno"] = 0; drGea["geacomp"] = pLoginInfo.CompNo; drGea["geacreu"] = pLoginInfo.UserNo; drGea["geacreg"] = pLoginInfo.DeptNo; drGea["geacred"] = OfGetNow(); drGea["geamodu"] = DBNull.Value; drGea["geamodg"] = DBNull.Value; drGea["geamodd"] = DBNull.Value; drGea["geasecu"] = pLoginInfo.UserNo; drGea["geasecg"] = pLoginInfo.GroupNo; dtGea.Rows.Add(drGea); if (this.OfUpdate(dtGea) == -1) { result = new Result(); result.Key1 = pCea01; result.Message = "新增分錄底稿單頭失敗!"; rtnResultList.Add(result); return(rtnResultList); } //新增底稿單身 this.OfCreateDao("geb_tb", "*", ""); sqlSelect = "SELECT * FROM geb_tb WHERE 1<>1 "; dtGeb = this.OfGetDataTable(sqlSelect); //借方帶單頭應收帳款 //用本幣匯總成一筆來加總 drGeb = dtGeb.NewRow(); i = 1; drGeb = dtGeb.NewRow(); drGeb["geb01"] = ceaModel.cea01; //底稿單頭 drGeb["geb02"] = "AR"; drGeb["geb03"] = 1; //1.應收 2.收款 drGeb["geb04"] = 1; //AR 固定為1 drGeb["geb05"] = i; //項次 drGeb["geb06"] = ceaModel.cea22; //會計科目-待補入 drGeb["geb07"] = ""; //摘要 drGeb["geb08"] = DBNull.Value; //部門 if (!GlobalFn.varIsNull(ceaModel.cea22)) { gbaModel = OfGetGbaModel(ceaModel.cea22); if (gbaModel != null && gbaModel.gba09 == "Y") { drGeb["geb08"] = ceaModel.cea05; } } drGeb["geb09"] = 1; //借貸 1.借 2.貸 drGeb["geb10"] = ceaModel.cea15t; //本幣金額(稅) //幣別均以本幣處理 drGeb["geb11"] = baaModel.baa04; //原幣幣別(帶入本幣幣別) drGeb["geb12"] = ceaModel.cea12; //匯率 drGeb["geb13"] = ceaModel.cea15t; //原幣金額(稅) drGeb["geb14"] = ceaModel.cea03; //客戶編號 drGeb["geb15"] = boStp.OfGetSca03(ceaModel.cea03); //客戶簡稱 drGeb["geb16"] = DBNull.Value; //保留 drGeb["geb17"] = DBNull.Value; //保留 drGeb["geb18"] = DBNull.Value; //保留 drGeb["geb19"] = DBNull.Value; //保留 drGeb["geb20"] = DBNull.Value; //保留 drGeb["geb21"] = DBNull.Value; //保留 drGeb["gebcomp"] = pLoginInfo.CompNo; drGeb["gebcreu"] = pLoginInfo.UserNo; drGeb["gebcreg"] = pLoginInfo.DeptNo; drGeb["gebcred"] = OfGetNow(); drGeb["gebmodu"] = DBNull.Value; drGeb["gebmodg"] = DBNull.Value; drGeb["gebmodd"] = DBNull.Value; dtGeb.Rows.Add(drGeb); //處理貸方未稅明細資料 foreach (ceb_tb cebModel in cebList) { i++; drGeb = dtGeb.NewRow(); drGeb["geb01"] = cebModel.ceb01; //底稿單頭 drGeb["geb02"] = "AR"; drGeb["geb03"] = 1; //1.應收 2.收款 drGeb["geb04"] = 1; //AR 固定為1 drGeb["geb05"] = i; //項次 drGeb["geb06"] = cebModel.ceb10; //會計科目 drGeb["geb07"] = ""; //摘要 drGeb["geb08"] = DBNull.Value; //部門 if (!GlobalFn.varIsNull(cebModel.ceb10)) { gbaModel = OfGetGbaModel(cebModel.ceb10); if (gbaModel != null && gbaModel.gba09 == "Y") { drGeb["geb08"] = ceaModel.cea05; } } drGeb["geb09"] = 2; //借貸 1.借 2.貸 drGeb["geb10"] = cebModel.ceb09; //本幣金額(未稅) drGeb["geb11"] = ceaModel.cea10; //原幣幣別 drGeb["geb12"] = ceaModel.cea12; //匯率 drGeb["geb13"] = cebModel.ceb07; //原幣金額 drGeb["geb14"] = ceaModel.cea03; //客戶編號 drGeb["geb15"] = boStp.OfGetSca03(ceaModel.cea03); //客戶簡稱 drGeb["geb16"] = DBNull.Value; //保留 drGeb["geb17"] = DBNull.Value; //保留 drGeb["geb18"] = DBNull.Value; //保留 drGeb["geb19"] = DBNull.Value; //保留 drGeb["geb20"] = DBNull.Value; //保留 drGeb["geb21"] = DBNull.Value; //保留 drGeb["gebcomp"] = pLoginInfo.CompNo; drGeb["gebcreu"] = pLoginInfo.UserNo; drGeb["gebcreg"] = pLoginInfo.DeptNo; drGeb["gebcred"] = OfGetNow(); drGeb["gebmodu"] = DBNull.Value; drGeb["gebmodg"] = DBNull.Value; drGeb["gebmodd"] = DBNull.Value; dtGeb.Rows.Add(drGeb); } //貸方再補一筆稅額 //用本幣匯總成一筆來加總 drGeb = dtGeb.NewRow(); i++; drGeb = dtGeb.NewRow(); drGeb["geb01"] = ceaModel.cea01; //底稿單頭 drGeb["geb02"] = "AR"; drGeb["geb03"] = 1; //1.應收 2.收款 drGeb["geb04"] = 1; //AR 固定為1 drGeb["geb05"] = i; //項次 drGeb["geb06"] = cbaModel.cba05; //會計科目 drGeb["geb07"] = ""; //摘要 drGeb["geb08"] = DBNull.Value; //部門 if (!GlobalFn.varIsNull(cbaModel.cba05)) { gbaModel = OfGetGbaModel(cbaModel.cba05); if (gbaModel != null && gbaModel.gba09 == "Y") { drGeb["geb08"] = ceaModel.cea05; } } drGeb["geb09"] = 2; //借貸 1.借 2.貸 var taxTotal = cebList.Sum(x => x.ceb09t - x.ceb09); drGeb["geb10"] = taxTotal; //本幣金額(稅) //幣別均以本幣處理 drGeb["geb11"] = baaModel.baa04; //原幣幣別(帶入本幣幣別) drGeb["geb12"] = ceaModel.cea12; //匯率 drGeb["geb13"] = taxTotal; //原幣金額(稅) drGeb["geb14"] = ceaModel.cea03; //客戶編號 drGeb["geb15"] = boStp.OfGetSca03(ceaModel.cea03); //客戶簡稱 drGeb["geb16"] = DBNull.Value; //保留 drGeb["geb17"] = DBNull.Value; //保留 drGeb["geb18"] = DBNull.Value; //保留 drGeb["geb19"] = DBNull.Value; //保留 drGeb["geb20"] = DBNull.Value; //保留 drGeb["geb21"] = DBNull.Value; //保留 drGeb["gebcomp"] = pLoginInfo.CompNo; drGeb["gebcreu"] = pLoginInfo.UserNo; drGeb["gebcreg"] = pLoginInfo.DeptNo; drGeb["gebcred"] = OfGetNow(); drGeb["gebmodu"] = DBNull.Value; drGeb["gebmodg"] = DBNull.Value; drGeb["gebmodd"] = DBNull.Value; dtGeb.Rows.Add(drGeb); if (this.OfUpdate(dtGeb) == -1) { result = new Result(); result.Key1 = pCea01; result.Message = "新增分錄底稿單身失敗!"; rtnResultList.Add(result); return(rtnResultList); } return(rtnResultList); } catch (Exception ex) { throw ex; } }
//回傳值 true.通過驗證 false.未通過驗證, protected override bool WfItemCheck(object sender, ItemCheckInfo e) { vw_admi611s detailModel; try { detailModel = DrMaster.ToItem <vw_admi611s>(); #region 單頭-pick vw_admi611s if (e.Row.Table.Prefix.ToLower() == "vw_admi611s") { switch (e.Column.ToLower()) { case "ady03": //程式代號 if (GlobalFn.varIsNull(e.Value)) { DrMaster["ady03_c"] = ""; return(true); } var adoModel = BoAdm.OfGetAdoModel(e.Value.ToString()); if (adoModel == null) { WfShowErrorMsg("無此程式代號,請確認!"); return(false); } if (adoModel.ado07.ToUpper() == "M") { WfShowErrorMsg("不可選擇目錄,請確認!"); return(false); } DrMaster["ady03_c"] = adoModel.ado02; break; case "ady04": if (e.Value == null) { WfShowErrorMsg("欄位不可空白,請確認!"); return(true); } if (GlobalFn.isNullRet(e.Value, 0) < 0) { WfShowErrorMsg("欄位不可為負數,請確認!"); return(false); } break; case "ady05": if (e.Value == null) { WfShowErrorMsg("欄位不可空白,請確認!"); return(true); } if (GlobalFn.isNullRet(e.Value, 0) < 0) { WfShowErrorMsg("欄位不可為負數,請確認!"); return(false); } break; case "ady06": if (e.Value == null) { WfShowErrorMsg("欄位不可空白,請確認!"); return(true); } if (GlobalFn.isNullRet(e.Value, 0) < 0) { WfShowErrorMsg("欄位不可為負數,請確認!"); return(true); } break; case "ady07": if (e.Value == null) { WfShowErrorMsg("欄位不可空白,請確認!"); return(true); } if (GlobalFn.isNullRet(e.Value, 0) < 0) { WfShowErrorMsg("欄位不可為負數,請確認!"); return(true); } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
//回傳值 true.通過驗證 false.未通過驗證,會把值還原 protected override bool WfItemCheck(object sender, ItemCheckInfo e) { int iChkCnts = 0; vw_glat300_1 masterModel = null; vw_glat300_1s detailModel = null; List <vw_glat300_1s> detailList = null; gba_tb gbaModel = null; UltraGrid uGrid = null; UltraGridRow uGridRow = null; int ChkCnts = 0; string sql = ""; List <SqlParameter> sqlParmList = null; try { masterModel = DrMaster.ToItem <vw_glat300_1>(); #region 單身-vw_glat300_1s if (e.Row.Table.Prefix.ToLower() == "vw_glat300_1s") { uGrid = sender as UltraGrid; uGridRow = uGrid.ActiveRow; detailModel = e.Row.ToItem <vw_glat300_1s>(); detailList = e.Row.Table.ToList <vw_glat300_1s>(); var bb = TabDetailList[0].DtSource.ToList <vw_glat300_1s>(); switch (e.Column.ToLower()) { case "is_pick": //項次 e.Row["gfh09"] = 0; if (e.Value.ToString() == "Y") { WfSetControlReadonly(uGridRow.Cells["gfh09"], false); } else { WfSetControlReadonly(uGridRow.Cells["gfh09"], true); WfSetSumGfb09(); } break; case "gfh09": //沖帳金額 if (GlobalFn.varIsNull(e.Value)) { WfShowErrorMsg("請輸入數字!"); return(false); } if (GlobalFn.isNullRet(e.Value, 0) < 0) { WfShowErrorMsg("金額不可小於0!"); return(false); } var sumGfh09 = detailList.Where(p => p.is_pick == "Y" && p.gfh09 >= 0) .Sum(p => p.gfh09); if (masterModel.gfb07 < sumGfh09) { var bekModel = BoBas.OfGetBekModel(BaaModel.baa04); WfShowErrorMsg(string.Format("輸入金額加總已超過{0},請檢核!", GlobalFn.Round(masterModel.gfb07, bekModel.bek03).ToString()) ); return(false); } //檢查 已沖+暫沖(DB)+輸入金額 是否有超過立帳金額 var availableMaxAmt = 0m; //可輸入最高金額 var glat300aList = _dtGlat300a.ToList <vw_glat300a>(); //可輸入金額=資料庫(立帳金額-暫沖) availableMaxAmt = detailModel.gfg07 - detailModel.gfg08; //可輸人金額 再減掉此傳票但不屬於該項次的金額加總 availableMaxAmt -= glat300aList.Where(p => p.gfh01 == detailModel.gfg01 && p.gfh02 == detailModel.gfg02 && p.gfh04 != masterModel.gfb02) .Sum(p => p.gfh09) ; //可輸入金額 再減掉資料庫中不屬於該傳票未過帳的金額加總 if (!GlobalFn.varIsNull(masterModel.gfb01)) { sql = @"SELECT SUM(gfh09) FROM gfh_tb WHERE gfhconf='N' AND gfh03<>@gfh03 AND gfh01=@gfh01 AND gfh02=@gfh02 "; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfh01", detailModel.gfg01)); sqlParmList.Add(new SqlParameter("@gfh02", detailModel.gfg02)); sqlParmList.Add(new SqlParameter("@gfh03", masterModel.gfb01)); var sumTempGfh09 = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sql, sqlParmList.ToArray()), 0m); availableMaxAmt -= sumTempGfh09; } if (Convert.ToDecimal(e.Value) > availableMaxAmt) { var bekModel = BoBas.OfGetBekModel(BaaModel.baa04); WfShowErrorMsg(string.Format("可輸入最大沖帳金額為{0} !", GlobalFn.Round(availableMaxAmt, bekModel.bek03).ToString()) ); return(false); } DrMaster["sum_gfh09"] = sumGfh09; break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
public Result OfGetSga23(sga_tb sgaModel, out decimal sga23) { sga23 = 0; Result rtnResult = null; rtnResult = new Result(); rtnResult.Success = false; try { if (sgaModel == null) { return(rtnResult); } rtnResult.Key1 = sgaModel.sga01; if (OfChkEbusinessPlateForm(sgaModel.sga03) == false) { rtnResult.Message = "非出貨成本計算客戶!"; return(rtnResult); } switch (sgaModel.sga03) { case "C000002": //蝦皮 sga23 = sgaModel.sga13t * 0.05m; if (sgaModel.sga13t > 4490) { sga23 += 60; } break; case "C000003": //露天-正中 sga23 = sgaModel.sga13t * 0.03m; break; case "C000004": //奇摩 sga23 = sgaModel.sga13t * 0.015m; if (sgaModel.sga13t > 4990) { sga23 += 60; } break; case "C000005": //松果 sga23 = sgaModel.sga13t * 0.04m; //預設刷卡 //sga23 += 60; break; case "C000006": //蝦皮2 sga23 = sgaModel.sga13t * 0.05m; break; case "C000007": //露天-艾達 sga23 = sgaModel.sga13t * 0.03m; break; } sga23 = GlobalFn.Round(sga23, 0); rtnResult.Success = true; return(rtnResult); } catch (Exception ex) { throw ex; } }
private void WfChkAdb() { StringBuilder sbSql; List <SqlParameter> sqlParmList; DataRow drAta; string adb02; adb02 = ute_adb02.Text; BasBLL boBas; bec_tb becModel; try { if (GlobalFn.isNullRet(adb02, "") == "") { WfShowErrorMsg("請輸入公司別"); } sbSql = new StringBuilder(); sbSql.AppendLine("SELECT ata01,ata04 FROM adb_tb "); sbSql.AppendLine(" INNER JOIN ata_tb ON adb02=ata01 "); sbSql.AppendLine("WHERE adb01=@adb01 AND adb02=@adb02 "); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@adb01", LoginInfo.UserNo)); sqlParmList.Add(new SqlParameter("@adb02", adb02)); drAta = BoSecurity.OfGetDataRow(sbSql.ToString(), sqlParmList.ToArray()); if (drAta == null || drAta.Table.Rows.Count == 0) { WfShowErrorMsg("無此公司別,或無登入權限!"); return; } if (this.Owner != null) { if (drAta["ata04"] != DBNull.Value) { (this.Owner as YR.ERP.Base.Forms.FrmBase).MainConnStr = drAta["ata04"].ToString(); //(this.Owner as YR.ERP.Base.Forms.FrmBase).LoginInfo.CompNo = adb02; //改以ATA_TB.ATA01 帶入,大小寫問題 (this.Owner as YR.ERP.Base.Forms.FrmBase).LoginInfo.CompNo = drAta["ata01"].ToString(); boBas = new BasBLL(LoginInfo.CompNo, "", "", ""); (this.Owner as YR.ERP.Base.Forms.FrmBase).LoginInfo.CompNameA = boBas.OfGetBea01(adb02); becModel = boBas.OfGetBecModel(LoginInfo.UserNo); //if (l_bec==null) //{ // WfShowMsg(ls_adb02+"未設定員工資料,請確認!"); // return; //} if (becModel != null) { (this.Owner as YR.ERP.Base.Forms.FrmBase).LoginInfo.DeptNo = becModel.bec03; (this.Owner as YR.ERP.Base.Forms.FrmBase).LoginInfo.DeptName = boBas.OfGetBeb03(becModel.bec03); } } this.DialogResult = DialogResult.OK; //if (WfUpdateAda08(LoginInfo.UserNo, adb02) == false) if (WfUpdateAda08(LoginInfo.UserNo, LoginInfo.CompNo) == false) { return; } this.Close(); } } catch (Exception ex) { throw ex; } }
protected override Boolean WfDisplayMode() { vw_stpi010 masterModel; try { if (FormEditMode == YREditType.NA) { WfSetControlsReadOnlyRecursion(this, true); } else { masterModel = DrMaster.ToItem <vw_stpi010>(); WfSetControlsReadOnlyRecursion(this, false); WfSetControlReadonly(uGridMaster, true);//主表grid不可編輯 WfSetControlReadonly(new List <Control> { ute_babcreu, ute_babcreg, udt_babcred }, true); WfSetControlReadonly(new List <Control> { ute_babmodu, ute_babmodg, udt_babmodd }, true); WfSetControlReadonly(new List <Control> { ute_babsecu, ute_babsecg }, true); WfSetControlReadonly(ute_bab04_c, true); if (GlobalFn.varIsNull(masterModel.bab03)) { WfSetControlReadonly(ute_bab04, true); } else { WfSetControlReadonly(ute_bab04, false); } ; if (!GlobalFn.varIsNull(masterModel.bab04) && (masterModel.bab04 == "30" || masterModel.bab04 == "40") ) { WfSetControlReadonly(ute_bab09, false); } else { WfSetControlReadonly(ute_bab09, true); } if (FormEditMode == YREditType.修改) { WfSetControlReadonly(ute_bab01, true); } } return(true); } catch (Exception ex) { throw ex; } }
public List <Result> OfUndoGenVoucher(vw_carb351 pModel, string pSecurityString, UserInfo pLoginInfo) { List <Result> rtnResultList = null; string selectSql = ""; string updateGea = "", updateCea = "", updateCfa = ""; string deleteGfa = "", deleteGfb = ""; string strQueryRange = "", strQuerySingle = ""; List <SqlParameter> sqlParmList = null; DataTable dtGfa = null; List <QueryInfo> queryInfoList; QueryInfo queryModel; cea_tb ceaModel = null; gfa_tb gfaModel = null; DataRow drGea = null; int chkCnts = 0; string cac04 = ""; try { _loginInfo = pLoginInfo; selectSql = @" SELECT * FROM gfa_tb WHERE gfa06='AR' AND gfaconf='N' "; updateCea = @"UPDATE cea_tb SET cea29=NULL WHERE cea29=@gfa01 "; updateCfa = @"UPDATE cfa_tb SET cfa12=NULL WHERE cfa12=@gfa01 "; updateGea = @"UPDATE gea_tb SET gea06=NULL, gea07=NULL WHERE gea06=@gfa01 "; deleteGfa = @"DELETE FROM gfa_tb WHERE gfa01=@gfa01 "; deleteGfb = @"DELETE FROM gfb_tb WHERE gfb01=@gfb01 "; sqlParmList = new List <SqlParameter>(); queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(pModel.gfa01)) { queryModel = new QueryInfo(); queryModel.TableName = "gfa_tb"; queryModel.ColumnName = "gfa01"; queryModel.ColumnType = "string"; queryModel.Value = pModel.gfa01; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single處理 if (!GlobalFn.varIsNull(pModel.gfa02_s)) { sqlParmList.Add(new SqlParameter("@gfa02_s", pModel.gfa02_s)); strQuerySingle += string.Format(" AND gfa02>=@gfa02_s"); } if (!GlobalFn.varIsNull(pModel.gfa02_e)) { sqlParmList.Add(new SqlParameter("@gfa02_e", pModel.gfa02_e)); strQuerySingle += string.Format(" AND gfa02<=@gfa02_e"); } #endregion selectSql = string.Concat(selectSql, strQueryRange, strQuerySingle, pSecurityString); //加入權限處理 dtGfa = OfGetDataTable(selectSql, sqlParmList.ToArray()); if (dtGfa == null || dtGfa.Rows.Count == 0) { return(null); } rtnResultList = new List <Result>(); foreach (DataRow drGfa in dtGfa.Rows) { gfaModel = drGfa.ToItem <gfa_tb>(); var result = new Result(); rtnResultList.Add(result); //更新應收帳款或是收款沖帳 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01)); chkCnts = OfExecuteNonquery(updateCea, sqlParmList.ToArray()); if (chkCnts < 0) { result.Key1 = gfaModel.gfa01; result.Message = "更新應收帳款失敗!"; continue; } else if (chkCnts == 0) //更新收款單 { sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01)); chkCnts = OfExecuteNonquery(updateCfa, sqlParmList.ToArray()); if (chkCnts == 0) { result.Key1 = gfaModel.gfa01; result.Message = "查無收款單可更新!"; continue; } else if (chkCnts <= 0) { result.Key1 = gfaModel.gfa01; result.Message = "更新收款單失敗!"; continue; } } //更新分錄底稿 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01)); if (OfExecuteNonquery(updateGea, sqlParmList.ToArray()) < 0) { result.Key1 = gfaModel.gfa01; result.Message = "更新分錄底稿失敗!"; continue; } //刪除傳票單身 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfb01", gfaModel.gfa01)); if (OfExecuteNonquery(deleteGfb, sqlParmList.ToArray()) < 0) { result.Key1 = gfaModel.gfa01; result.Message = "刪除傳票單身失敗!"; continue; } //刪除傳票單頭 sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01)); if (OfExecuteNonquery(deleteGfa, sqlParmList.ToArray()) < 0) { result.Key1 = gfaModel.gfa01; result.Message = "刪除傳票單頭失敗!"; continue; } result.Key1 = gfaModel.gfa01; result.Success = true; } return(rtnResultList); } catch (Exception ex) { throw ex; } }
//回傳值 true.通過驗證 false.未通過驗證, protected override bool WfItemCheck(object sender, ItemCheckInfo e) { baa_tb baaModel; vw_stpi010 masterModel; string errMsg; try { baaModel = BoBas.OfGetBaaModel(); masterModel = DrMaster.ToItem <vw_stpi010>(); #region 單頭-pick vw_stpi010 if (e.Row.Table.Prefix.ToLower() == "vw_stpi010") { switch (e.Column.ToLower()) { case "bab01": //單別 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (GlobalFn.isNullRet(baaModel.baa06.Value, 0) != GlobalFn.isNullRet(e.Value, "").Length) { errMsg = string.Format("單別限定長度為{0}碼", GlobalFn.isNullRet(baaModel.baa06, "")); WfShowErrorMsg(errMsg); return(false); } if (BoBas.OfChkBabPKValid(GlobalFn.isNullRet(e.Value, "")) == true) { WfShowErrorMsg("單別已存在,請檢核!"); return(false); } break; case "bab03": //模組別 e.Row["bab04"] = ""; e.Row["bab04_c"] = ""; if (GlobalFn.varIsNull(e.Value)) { return(true); } WfDisplayMode(); ute_bab04.Focus(); break; case "bab04": //單據性質 if (GlobalFn.varIsNull(e.Value)) { e.Row["bab04_c"] = ""; e.Row["bab09"] = ""; WfSetControlReadonly(ute_bab09, true); return(true); } if (GlobalFn.varIsNull(masterModel.bab03)) { WfShowErrorMsg("請先輸入模組別!"); return(true); } if (BoAdm.OfChkAzf02Exists(masterModel.bab03, GlobalFn.isNullRet(e.Value, "")) == false) { WfShowErrorMsg("無此模組+單據性質!"); return(false); } if (e.Value.ToString() == "30" || e.Value.ToString() == "40") { WfSetControlReadonly(ute_bab09, false); WfItemChkForceFocus(ute_bab09); } else { WfSetControlReadonly(ute_bab09, true); } e.Row["bab09"] = ""; e.Row["bab04_c"] = BoAdm.OfGetAzf02(masterModel.bab03, GlobalFn.isNullRet(e.Value, "")); break; case "bab09": //轉應收單別 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (GlobalFn.varIsNull(masterModel.bab04)) { WfShowErrorMsg("請先輸入單據性質!"); return(false); } if (masterModel.bab04 == "30") { if (BoCar.OfChkCacPKValid(e.Value.ToString(), "car", "11") == false) { WfShowErrorMsg("無此單別!"); return(false); } } else if (masterModel.bab04 == "40") { if (BoCar.OfChkCacPKValid(e.Value.ToString(), "car", "21") == false) { WfShowErrorMsg("無此單別!"); return(false); } } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
//回傳值 false未通過驗證,還原輸入的值 true.未通過驗證,保留原值 protected override bool WfItemCheck(object sender, ItemCheckInfo e) { int iTemp = 0; try { #region 單頭-pick vw_basi080 if (e.Row.Table.Prefix.ToLower() == "vw_basi080") { switch (e.Column.ToLower()) { #region bek01 幣別資料check case "bek01": if (BoBas.OfChkBekPKExists(GlobalFn.isNullRet(e.Value.ToString(), "")) == true) { WfShowErrorMsg("幣別代碼已存在,請檢核!"); return(false); } break; #endregion #region bek03 單價小數位數 case "bek03": if (GlobalFn.varIsNull(e.Value)) { return(true); } if (int.TryParse(GlobalFn.isNullRet(e.Value, ""), out iTemp) == false) { WfShowErrorMsg("請輸入整數值"); return(false); } if (iTemp > 5 || iTemp < 0) { WfShowErrorMsg("需輸入範圍為0-5的整數!"); return(false); } break; #endregion #region bek03 小計/總計位數 case "bek04": if (GlobalFn.varIsNull(e.Value)) { return(true); } if (int.TryParse(GlobalFn.isNullRet(e.Value, ""), out iTemp) == false) { WfShowErrorMsg("請輸入整數值"); return(false); } if (iTemp > 5 || iTemp < 0) { WfShowErrorMsg("需輸入範圍為0-5的整數!"); return(false); } break; #endregion } } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfPickClickOnEditMode(object sender, string pColName, DataRow pDr) { vw_stpi010 masterModel; try { masterModel = DrMaster.ToItem <vw_stpi010>(); //this.MsgInfoReturned = new MessageInfo(); MessageInfo messageModel = new MessageInfo(); #region 單頭-pick vw_stpi010 if (pDr.Table.Prefix.ToLower() == "vw_stpi010") { switch (pColName.ToLower()) { case "bab04": //單據性質 if (GlobalFn.varIsNull(masterModel.bab03)) { WfShowErrorMsg("請先輸入模組別!"); return(false); } messageModel.ParamSearchList = new List <SqlParameter>(); messageModel.ParamSearchList.Add(new SqlParameter("@azf01", masterModel.bab03)); WfShowPickUtility("p_azf1", messageModel); if (messageModel.Result == System.Windows.Forms.DialogResult.OK) { if (messageModel.DataRowList.Count > 0) { pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["azf02"], ""); } else { pDr[pColName] = ""; } } //if (messageModel != null && messageModel.DataRowList.Count > 0) //{ // pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["azf02"], ""); //} break; case "bab09": //帳款單別 if (GlobalFn.varIsNull(masterModel.bab04)) { WfShowErrorMsg("請先輸入單據性質!"); return(false); } messageModel.ParamSearchList = new List <SqlParameter>(); messageModel.IsAutoQuery = true; messageModel.ParamSearchList.Add(new SqlParameter("@cac03", "car")); if (masterModel.bab04 == "30") { messageModel.ParamSearchList.Add(new SqlParameter("@cac04", "11")); //出貨 } else if (masterModel.bab04 == "40") { messageModel.ParamSearchList.Add(new SqlParameter("@cac04", "21")); //退貨折讓待抵 } WfShowPickUtility("p_cac1", messageModel); if (messageModel.Result == System.Windows.Forms.DialogResult.OK) { if (messageModel.DataRowList.Count > 0) { pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["cac01"], ""); } else { pDr[pColName] = ""; } } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
//回傳值 false未通過驗證,還原輸入的值 true.未通過驗證,保留原值 protected override bool WfItemCheck(object sender, ItemCheckInfo e) { try { #region 單頭-pick vw_basi020 if (e.Row.Table.Prefix.ToLower() == "vw_basi050") { switch (e.Column.ToLower()) { #region bef02 付款條件編號check case "bef02": if (BoBas.OfChkBefPKValid(GlobalFn.isNullRet(e.Row["bef01"].ToString(), ""), GlobalFn.isNullRet(e.Value, "")) == true) { WfShowErrorMsg("付款條件編號已存在,請檢核!"); return(false); } break; #endregion } } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { vw_stpi010 masterModel = null; string msg; Control chkControl; string chkColName; try { masterModel = DrMaster.ToItem <vw_stpi010>(); #region 單頭資料檢查 chkColName = "bab01"; chkControl = ute_bab01; if (GlobalFn.varIsNull(masterModel.bab01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab02"; chkControl = ute_bab02; if (GlobalFn.varIsNull(masterModel.bab02)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab03"; chkControl = ucb_bab03; if (GlobalFn.varIsNull(masterModel.bab03)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab04"; chkControl = ute_bab04; if (GlobalFn.varIsNull(masterModel.bab04)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab05"; chkControl = ucx_bab05; if (GlobalFn.varIsNull(masterModel.bab05)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab06"; chkControl = ucx_bab06; if (GlobalFn.varIsNull(masterModel.bab06)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "bab07"; chkControl = ucx_bab07; if (GlobalFn.varIsNull(masterModel.bab07)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { //DataSet ds; vw_manr311 manr311Model; StringBuilder sbSql = null; string sqlBody = ""; DataTable dtMaster; List <YR.ERP.DAL.YRModel.Reports.Man.Manr311.Master> masterList; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; List <SqlParameter> sqlParmList; try { if (Vw_Manr311 != null) //他窗引用時 { manr311Model = Vw_Manr311; } else { manr311Model = DrMaster.ToItem <vw_manr311>(); } queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(manr311Model.mfa01)) { queryModel = new QueryInfo(); queryModel.TableName = "mfa_tb"; queryModel.ColumnName = "mfa01"; queryModel.ColumnType = TabMaster.DtSource.Columns["mfa01"].DataType.Name; queryModel.Value = manr311Model.mfa01; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(manr311Model.mfa03)) { queryModel = new QueryInfo(); queryModel.TableName = "mfa_tb"; queryModel.ColumnName = "mfa03"; queryModel.ColumnType = TabMaster.DtSource.Columns["mfa03"].DataType.Name; queryModel.Value = manr311Model.mfa03; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); if (!GlobalFn.varIsNull(manr311Model.mfa06)) { queryModel = new QueryInfo(); queryModel.TableName = "mfa_tb"; queryModel.ColumnName = "mfa06"; queryModel.ColumnType = TabMaster.DtSource.Columns["mfa06"].DataType.Name; queryModel.Value = manr311Model.mfa06; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(manr311Model.mfa02_s)) { sbQuerySingle.AppendLine("AND mfa02>=@mfa02_s"); sqlParmList.Add(new SqlParameter("@mfa02_s", manr311Model.mfa02_s)); } if (!GlobalFn.varIsNull(manr311Model.mfa02_e)) { sbQuerySingle.AppendLine("AND mfa02<=@mfa02_e"); sqlParmList.Add(new SqlParameter("@mfa02_e", manr311Model.mfa02_e)); } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @"SELECT mfa00,mfa01,mfa02,mfa03,mfa04,mfa05, mfa06,mfa07,mfa08, bab02 as mfa01_c, pca02 as mfa03_c, bec02 as mfa04_c,beb02 as mfa05_c, mfb02,mfb03,mfb04,mfb05,mfb06, mfb07,mfb09, ica.ica03 as ica03, bej.bej03 as bej03, '' as mfb05_str, pcb03,pcb04,pcb06,pcb07 FROM mfa_tb LEFT JOIN mfb_tb On mfa01=mfb01 LEFT JOIN baa_tb ON 1=1 LEFT JOIN bab_tb ON substring(mfa01,1,baa06)=bab01 LEFT JOIN pca_tb ON mfa03=pca01 --廠商 LEFT JOIN bec_tb ON mfa04=bec01 --員工 LEFT JOIN beb_tb ON mfa05=beb01 --部門 LEFT JOIN ica_tb ica ON mfb03=ica.ica01 LEFT JOIN bej_tb bej ON mfb06=bej.bej01 LEFT JOIN pcb_tb ON mfa03=pcb01 and mfa07=pcb02 WHERE 1=1 AND mfaconf='Y' AND mfa00='2' "; dtMaster = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray()); dtMaster.TableName = "Master"; if (dtMaster == null || dtMaster.Rows.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } masterList = dtMaster.ToList <Master>(); foreach (Master masterModel in masterList) { masterModel.mfb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.mfb05);//子件數量 } pReport.RegData(dtMaster); pReport.RegData("Master", masterList); pReport.CacheAllData = true; //處理排序 StiDataBand stiDataBand1 = (StiDataBand)pReport.GetComponents()["DataBand1"]; switch (manr311Model.order_by) { case "1": //1.依出庫日期 stiDataBand1.Sort = new string[] { "ASC", "mfa02" }; break; case "2": //2.依廠商 stiDataBand1.Sort = new string[] { "ASC", "mfa03" }; break; } //處理跳頁 StiGroupFooterBand grouperBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"]; if (manr311Model.jump_yn.ToUpper() == "Y") { grouperBand1.NewPageAfter = true; grouperBand1.ResetPageNumber = true; } else { grouperBand1.NewPageAfter = false; grouperBand1.ResetPageNumber = false; } pReport.Compile(); return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { vw_purr500 purr500Model; StringBuilder sbSql = null; string sqlBody = ""; string sqlOrderBy = ""; DataTable dtMaster; List <Master> masterList; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; List <SqlParameter> sqlParmList; try { if (Vw_Purr500 != null) //他窗引用時 { purr500Model = Vw_Purr500; } else { purr500Model = DrMaster.ToItem <vw_purr500>(); } queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(purr500Model.pha01)) { queryModel = new QueryInfo(); queryModel.TableName = "pha_tb"; queryModel.ColumnName = "pha01"; queryModel.ColumnType = TabMaster.DtSource.Columns["pha01"].DataType.Name; queryModel.Value = purr500Model.pha01; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(purr500Model.pha03)) { queryModel = new QueryInfo(); queryModel.TableName = "pha_tb"; queryModel.ColumnName = "pha03"; queryModel.ColumnType = TabMaster.DtSource.Columns["pha03"].DataType.Name; queryModel.Value = purr500Model.pha03; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(purr500Model.pha02_s)) { sbQuerySingle.AppendLine("AND pha02>=@pha02_s"); sqlParmList.Add(new SqlParameter("@pha02_s", purr500Model.pha02_s)); } if (!GlobalFn.varIsNull(purr500Model.pha02_e)) { sbQuerySingle.AppendLine("AND pha02<=@pha02_e"); sqlParmList.Add(new SqlParameter("@pha02_e", purr500Model.pha02_e)); } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @"SELECT pha_tb.*, pca02 as pha03_c, bec02 as pha04_c, beb02 as pha05_c, bab02 as pha01_c, bea03,bea04,bea05, phb02,phb03,phb04,phb05,phb06, phb09,phb10,phb10t, phb16, ica03, bej03 FROM pha_tb LEFT JOIN phb_tb ON pha01=phb01 LEFT JOIN pca_tb ON pha03=pca01 --廠商 LEFT JOIN bec_tb ON pha04=bec01 --員工 LEFT JOIN beb_tb ON pha05=beb01 --部門 LEFT JOIN baa_tb ON 1=1 LEFT JOIN bab_tb ON substring(pha01,1,baa06)=bab01 LEFT JOIN bea_tb ON phacomp=beacomp LEFT JOIN ica_tb ON phb03=ica01 LEFT JOIN bej_tb ON phb03=bej01 WHERE 1=1 AND phaconf='Y' "; //處理排序 switch (purr500Model.order_by) { case "1": //1.依出貨日期 sqlOrderBy = " ORDER BY pha02"; break; case "2": //2.依客戶 sqlOrderBy = " ORDER BY pha03"; break; } dtMaster = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray()); dtMaster.TableName = "Master"; if (dtMaster == null || dtMaster.Rows.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } masterList = dtMaster.ToList <Master>(true); foreach (Master masterModel in masterList) { //處理金額 if (!GlobalFn.varIsNull(masterModel.pha10)) { var bekModel = BoBas.OfGetBekModel(masterModel.pha10); if (bekModel != null) { //單頭 masterModel.pha13_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13); masterModel.pha13t_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13t); masterModel.pha13g_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13g); //單身 masterModel.phb09_str = string.Format("{0:N" + bekModel.bek03 + "}", masterModel.phb09); masterModel.phb10_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.phb10); masterModel.phb10t_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.phb10t); } } masterModel.phb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.phb05);//數量 } pReport.RegData("Master", masterList); pReport.CacheAllData = true; ////處理跳頁 StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"]; if (purr500Model.jump_yn.ToUpper() == "Y") { footerBand1.NewPageAfter = true; footerBand1.ResetPageNumber = true; } else { footerBand1.NewPageAfter = false; footerBand1.ResetPageNumber = false; } return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { vw_admi600 admi600Model = null; string msg; Control chkControl; string chkColName; try { admi600Model = DrMaster.ToItem <vw_admi600>(); #region 單頭資料檢查 #region ado01 程式代號 chkColName = "ado01"; chkControl = ute_ado01; if (GlobalFn.varIsNull(admi600Model.ado01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } //檢查是否重覆 if (FormEditMode == YREditType.新增) { if (BoAdm.OfChkAdoPKExists(admi600Model.ado01) == true) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "已存在,請檢查!"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } } #endregion chkColName = "ado02"; //程式名稱 chkControl = ute_ado02; if (GlobalFn.varIsNull(admi600Model.ado02)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado07"; //程式類別 P.程式 M.menu chkControl = ucb_ado07; if (GlobalFn.varIsNull(admi600Model.ado07)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado03"; //組件dll chkControl = ute_ado03; if (admi600Model.ado07 == "P" && GlobalFn.varIsNull(admi600Model.ado03)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado04"; //CLASS名稱 chkControl = ute_ado04; if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado04)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado05"; //CRUD資料表 chkControl = ute_ado05; if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado05)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado06"; //使用view名稱 chkControl = ute_ado06; if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado06)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "ado10"; //報表名稱 chkControl = ute_ado06; if ((admi600Model.ado09 == "Y") && GlobalFn.varIsNull(admi600Model.ado09)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion return(true); } catch (Exception ex) { throw ex; } }
//回傳值 true.通過驗證 false.未通過驗證, protected override bool WfItemCheck(object sender, ItemCheckInfo e) { vw_stpi030s detailModel; List <vw_stpi030s> detailList; int iChkCnts = 0; try { #region 單頭-pick vw_stpi030 if (e.Row.Table.Prefix.ToLower() == "vw_stpi030") { switch (e.Column.ToLower()) { case "sbb01": //銷售取價代號 if (GlobalFn.varIsNull(e.Value)) { return(true); } if (BoStp.OfChkSbbPKExists(GlobalFn.isNullRet(e.Value, "")) == true) { WfShowErrorMsg("採購取價代號已存在,請檢核!"); return(false); } break; } } #endregion #region 單身-pick vw_stpi030s if (e.Row.Table.Prefix.ToLower() == "vw_stpi030s") { detailModel = e.Row.ToItem <vw_stpi030s>(); detailList = e.Row.Table.ToList <vw_stpi030s>(); switch (e.Column.ToLower()) { case "sbc03": //取價類型 if (GlobalFn.varIsNull(e.Value)) { return(true); } iChkCnts = detailList.Where(p => p.sbc02 != detailModel.sbc02) .Where(p => p.sbc03 == e.Value.ToString()) .Count(); if (iChkCnts > 0) { WfShowErrorMsg("取價類型不得重覆!"); return(false); } break; case "sbc04": //取價順序 if (GlobalFn.varIsNull(e.Value) || GlobalFn.isNullRet(e.Value, 0) == 0) { return(true); } iChkCnts = detailList.Where(p => p.sbc02 != detailModel.sbc02) .Where(p => p.sbc04 == Convert.ToInt16(e.Value)) .Count(); if (iChkCnts > 0) { WfShowErrorMsg("取價順序不得重覆!"); return(false); } break; } } #endregion return(true); } catch (Exception ex) { throw ex; } }
/* 刪除時 * 1.刪除目錄代碼(adm_tb),遞迴考慮 * 2.權限(add_tb) * 3.流程圖(ady_tb) * 4.程式畫面(aza_tb) 先不刪,有可能共用 * */ protected override bool WfDeleteAppenUpdate(DataRow pDr) { StringBuilder sbSql; List <SqlParameter> sqlParmList; int chkCnts = 0; vw_admi600 admi600Model; try { admi600Model = pDr.ToItem <vw_admi600>(); var sbMsg = new StringBuilder(); sbMsg.AppendLine("是否同步刪除以下資料?"); sbMsg.AppendLine("1.目錄代碼(adm_tb)"); sbMsg.AppendLine("2.權限(add_tb)"); sbMsg.AppendLine("3.流程圖(ady_tb)"); var result = WfShowConfirmMsg(sbMsg.ToString(), MessageBoxButtons.YesNoCancel); if (result == DialogResult.Cancel) { return(false); } if (result == DialogResult.No) { return(true); } #region 刪除目錄權限--需處理遞迴 //先處理 對應到adm01的 var admList = new List <adm_tb>(); WfGetAdmListRecursive(admi600Model.ado01, admList); if (admList != null && admList.Count > 0) { sbSql = new StringBuilder(); sbSql.AppendLine("DELETE FROM adm_tb"); sbSql.AppendLine("WHERE adm01=@adm01"); sbSql.AppendLine(" AND adm02=@adm02"); foreach (adm_tb admModel in admList) { sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@adm01", admModel.adm01)); sqlParmList.Add(new SqlParameter("@adm02", admModel.adm02)); BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray()); } } //再處理對應到adm02的 sbSql = new StringBuilder(); sbSql.AppendLine("DELETE FROM adm_tb"); sbSql.AppendLine("WHERE adm02=@adm02"); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@adm02", admi600Model.ado01)); BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray()); #endregion #region 刪除角色權限 sbSql = new StringBuilder(); sbSql.AppendLine("SELECT COUNT(1) FROM add_tb"); sbSql.AppendLine("WHERE add02=@add02"); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@add02", admi600Model.ado01)); chkCnts = GlobalFn.isNullRet(BoAdm.OfGetFieldValue(sbSql.ToString(), sqlParmList.ToArray()), 0); if (chkCnts > 0) { sbSql = new StringBuilder(); sbSql.AppendLine("DELETE FROM add_tb"); sbSql.AppendLine("WHERE add02=@add02"); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@add02", admi600Model.ado01)); if (BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray()) < 0) { WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!"); return(false); } } #endregion #region 刪除流程圖 sbSql = new StringBuilder(); sbSql.AppendLine("DELETE FROM ady_tb"); sbSql.AppendLine("WHERE ady03=@ady03"); sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@ady03", AdoModel.ado01)); BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray()); #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfFormCheck() { vw_stpi030 masterModel = null; vw_stpi030s detailModel = null; UltraGrid uGrid; string msg; Control chkControl; string chkColName; int iChkDetailTab; try { masterModel = DrMaster.ToItem <vw_stpi030>(); #region 單頭資料檢查 chkColName = "sbb01"; chkControl = ute_sbb01; if (GlobalFn.varIsNull(masterModel.sbb01)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } chkColName = "sbb02"; chkControl = ute_sbb02; if (GlobalFn.varIsNull(masterModel.sbb02)) { this.uTab_Master.SelectedTab = uTab_Master.Tabs[0]; chkControl.Focus(); msg = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; errorProvider.SetError(chkControl, msg); WfShowErrorMsg(msg); return(false); } #endregion #region 單身資料檢查 iChkDetailTab = 0; uGrid = TabDetailList[iChkDetailTab].UGrid; foreach (DataRow drTemp in TabDetailList[iChkDetailTab].DtSource.Rows) { if (drTemp.RowState == DataRowState.Unchanged) { continue; } detailModel = drTemp.ToItem <vw_stpi030s>(); #region sbc03-取價類型 chkColName = "sbc03"; if (GlobalFn.varIsNull(detailModel.sbc03)) { this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab]; msg = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "不可為空白"; WfShowErrorMsg(msg); WfFindErrUltraGridCell(uGrid, drTemp, chkColName); return(false); } #endregion #region sbc04-順序 chkColName = "sbc04"; if (GlobalFn.varIsNull(detailModel.sbc04) || GlobalFn.isNullRet(detailModel.sbc04, 0) < 0) { this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab]; msg = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault(); msg += "應大於0"; WfShowErrorMsg(msg); WfFindErrUltraGridCell(uGrid, drTemp, chkColName); return(false); } #endregion } #endregion return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { vw_invr302 invr302Model; StringBuilder sbSql = null; string sqlBody = ""; string sqlOrderBy = ""; DataTable dtMaster; List <Master> masterList; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; List <SqlParameter> sqlParmList; try { if (Vw_Invr302 != null) //他窗引用時 { invr302Model = Vw_Invr302; } else { invr302Model = DrMaster.ToItem <vw_invr302>(); } queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(invr302Model.iga01)) { queryModel = new QueryInfo(); queryModel.TableName = "iga_tb"; queryModel.ColumnName = "iga01"; queryModel.ColumnType = TabMaster.DtSource.Columns["iga01"].DataType.Name; queryModel.Value = invr302Model.iga01; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(invr302Model.iga02_s)) { sbQuerySingle.AppendLine("AND iga02>=@iga02_s"); sqlParmList.Add(new SqlParameter("@iga02_s", invr302Model.iga02_s)); } if (!GlobalFn.varIsNull(invr302Model.iga02_e)) { sbQuerySingle.AppendLine("AND iga02<=@iga02_e"); sqlParmList.Add(new SqlParameter("@iga02_e", invr302Model.iga02_e)); } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @"SELECT iga_tb.*, bec02 as iga03_c, beb02 as iga04_c, bab02 as iga01_c, igb02,igb03,igb04,igb05,igb06, igb09,igb10, ica03 FROM iga_tb LEFT JOIN igb_tb ON iga01=igb01 LEFT JOIN bec_tb ON iga03=bec01 --員工 LEFT JOIN beb_tb ON iga04=beb01 --部門 LEFT JOIN baa_tb ON 1=1 LEFT JOIN bab_tb ON substring(iga01,1,baa06)=bab01 LEFT JOIN ica_tb ON igb03=ica01 WHERE 1=1 AND igaconf='Y' AND iga00='2' "; dtMaster = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray()); dtMaster.TableName = "Master"; if (dtMaster == null || dtMaster.Rows.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } masterList = dtMaster.ToList <Master>(true); foreach (Master masterModel in masterList) { var bejModel = BoBas.OfGetBejModel(masterModel.igb06); if (bejModel != null) { masterModel.igb05_str = string.Format("{0:N" + bejModel.bej03 + "}", masterModel.igb05);//數量 } else { masterModel.igb05_str = masterModel.igb05.ToString(); } } pReport.RegData("Master", masterList); pReport.CacheAllData = true; ////處理跳頁 StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"]; if (invr302Model.jump_yn.ToUpper() == "Y") { footerBand1.NewPageAfter = true; footerBand1.ResetPageNumber = true; } else { footerBand1.NewPageAfter = false; footerBand1.ResetPageNumber = false; } return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport) { //DataSet ds; vw_invr410 invr410Model; StringBuilder sbSql = null; string sqlBody = ""; DataTable dtIlaTb; List <QueryInfo> queryInfoList; QueryInfo queryModel; string strQueryRange, strWhere; StringBuilder sbQuerySingle = null; List <SqlParameter> sqlParmList; List <Master> resultList = null; try { invr410Model = DrMaster.ToItem <vw_invr410>(); resultList = new List <Master>(); queryInfoList = new List <QueryInfo>(); #region range 處理 if (!GlobalFn.varIsNull(invr410Model.ila03)) { queryModel = new QueryInfo(); queryModel.TableName = "ila_tb"; queryModel.ColumnName = "ila03"; queryModel.ColumnType = TabMaster.DtSource.Columns["ila03"].DataType.Name; queryModel.Value = invr410Model.ila03; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr410Model.ila04)) { queryModel = new QueryInfo(); queryModel.TableName = "ila_tb"; queryModel.ColumnName = "ila04"; queryModel.ColumnType = TabMaster.DtSource.Columns["ila04"].DataType.Name; queryModel.Value = invr410Model.ila04; queryInfoList.Add(queryModel); } if (!GlobalFn.varIsNull(invr410Model.ila05)) { queryModel = new QueryInfo(); queryModel.TableName = "ila_tb"; queryModel.ColumnName = "ila05"; queryModel.ColumnType = TabMaster.DtSource.Columns["ila05"].DataType.Name; queryModel.Value = invr410Model.ila05; queryInfoList.Add(queryModel); } sqlParmList = new List <SqlParameter>(); strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList); #endregion #region single 處理 sbQuerySingle = new StringBuilder(); if (!GlobalFn.varIsNull(invr410Model.ila02_s)) { sbQuerySingle.AppendLine("AND ila02>=@ila02_s"); sqlParmList.Add(new SqlParameter("@ila02_s", invr410Model.ila02_s)); } if (!GlobalFn.varIsNull(invr410Model.ila02_e)) { sbQuerySingle.AppendLine("AND ila02<=@ila02_e"); sqlParmList.Add(new SqlParameter("@ila02_e", invr410Model.ila02_e)); } if (invr410Model.conf_yn != "0") { if (invr410Model.conf_yn == "1") { sbQuerySingle.AppendLine("AND ilaconf = 'Y'"); } if (invr410Model.conf_yn == "2") { sbQuerySingle.AppendLine("AND ilaconf = 'N'"); } } if (invr410Model.close_yn != "0") { if (invr410Model.close_yn == "1")//未結案 { sbQuerySingle.AppendLine("AND (ilb05-ilb15) >0 "); } if (invr410Model.close_yn == "2")//已結案 { sbQuerySingle.AppendLine("AND (ilb05-ilb15) <=0 "); } } #endregion strWhere = strQueryRange + " " + sbQuerySingle.ToString(); var strSecurity = WfGetSecurityString(); //取得權限字串 if (!GlobalFn.varIsNull(strSecurity)) { strWhere += strSecurity; } //取得單頭 sqlBody = @" SELECT ila01,ila02,ila03,sca03 as ila03_c , ilb02,ila04,bec02 AS ila04_c,ila05,beb03 AS ila05_c, ilb03,ilb04,ilb05,'' as ilb05_str,ilb06, bej03,ilb11, ilb15,'' as ilb15_str, ilb16 FROM ila_tb LEFT JOIN ilb_tb ON ila01=ilb01 LEFT JOIN sca_tb ON ila03=sca01 LEFT JOIN bec_tb ON ila04=bec01 LEFT JOIN beb_tb ON ila05=beb01 LEFT JOIN bej_tb ON ilb06=bej01 WHERE ilaconf='Y' AND ilb01 IS NOT NULL "; dtIlaTb = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray()); dtIlaTb.TableName = "Master"; if (dtIlaTb != null) { resultList.AddRange(dtIlaTb.ToList <Master>()); } if (resultList == null || resultList.Count == 0) { WfShowErrorMsg("查無資料,請重新過濾條件!"); return(false); } foreach (Master masterModel in resultList) { //數量處理 masterModel.ilb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ilb05); //數量 masterModel.ilb15_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ilb15); //數量 } pReport.RegData("master", resultList); pReport.CacheAllData = true; //處理排序--這裡利用group來達到 StiGroupHeaderBand stiGroupHeaderBand1 = (StiGroupHeaderBand)pReport.GetComponents()["GroupHeaderBand1"]; switch (invr410Model.order_by) { case "1": //1.依出庫日期 stiGroupHeaderBand1.Condition.Value = "{Master.ila02}"; break; case "2": //2.依客戶 stiGroupHeaderBand1.Condition.Value = "{Master.ila03}"; break; case "3": //3.依部門 stiGroupHeaderBand1.Condition.Value = "{Master.ila05}"; break; case "4": //4.依業務 stiGroupHeaderBand1.Condition.Value = "{Master.ila04}"; break; case "5": //4.依出庫倉 stiGroupHeaderBand1.Condition.Value = "{Master.ila11}"; break; } //處理跳頁 StiDataBand dataBand1 = (StiDataBand)pReport.GetComponents()["DataBand1"]; if (invr410Model.jump_yn.ToUpper() == "Y") { dataBand1.NewPageAfter = true; dataBand1.ResetPageNumber = true; } else { dataBand1.NewPageAfter = false; dataBand1.ResetPageNumber = false; } pReport.Compile(); return(true); } catch (Exception ex) { throw ex; } }