protected override bool WfPickClickOnEditMode(object sender, string pColName, DataRow pDr) { vw_carb351 masterModel = null; try { MessageInfo messageModel = new MessageInfo(); switch (pColName.ToLower()) { case "gea01": //底稿單號 messageModel.StrMultiColumn = "cea01"; messageModel.IntMaxRow = 999; messageModel.StrWhereAppend = " gfa06='AR' AND gfaconf='N' "; WfShowPickUtility("p_gfa", messageModel); if (messageModel.Result == System.Windows.Forms.DialogResult.OK) { pDr[pColName] = messageModel.StrMultiRtn; } break; } return(true); } catch (Exception ex) { throw ex; } }
protected override bool WfExecute() { vw_carb351 masterModel = null; int chkCnts = 0; StringBuilder sbResult = null; try { //取得交易物件 BoMaster.TRAN = BoMaster.OfGetConntion().BeginTransaction(); BoCarb351.TRAN = BoMaster.TRAN; masterModel = DrMaster.ToItem <vw_carb351>(); var securityString = WfGetSecurityString(); var resultList = BoCarb351.OfUndoGenVoucher(masterModel, securityString, LoginInfo); if (resultList == null || resultList.Count == 0) { BoCarb351.TRAN.Rollback(); WfShowBottomStatusMsg("無可拋轉還原傳票資料!"); return(false); } chkCnts = resultList.Where(p => p.Success == false).Count(); if (chkCnts > 0) { BoCarb351.TRAN.Rollback(); sbResult = new StringBuilder(); sbResult.AppendLine(string.Format("執行失敗!")); sbResult.AppendLine(string.Format("拋轉傳票還原筆數【{0}】 成功:【{1}】 失敗【{2}】", resultList.Count, resultList.Count - chkCnts, chkCnts )); sbResult.AppendLine(); sbResult.AppendLine(string.Format("錯誤內容如下")); sbResult.AppendLine("===================================="); foreach (Result result in resultList.Where(p => p.Success == false)) { sbResult.AppendLine(string.Format("key1:【{0}】 錯誤訊息:【{1}】", result.Key1, result.Message)); } WfShowErrorMsg(sbResult.ToString()); return(false); } BoMaster.TRAN.Commit(); return(true); } catch (Exception ex) { if (BoMaster.TRAN != null) { BoMaster.TRAN.Rollback(); } throw ex; } }
protected override bool WfFormCheck() { vw_carb351 masterModel = null; string msg = ""; try { masterModel = DrMaster.ToItem <vw_carb351>(); if (GlobalFn.varIsNull(masterModel.gfa01)) { msg = "傳票傳票單別不可為空白!"; WfShowErrorMsg(msg); errorProvider.SetError(ute_gfa01, msg); return(false); } if (GlobalFn.varIsNull(masterModel.gfa02_s)) { msg = "傳票起日不可為空白!"; WfShowErrorMsg(msg); errorProvider.SetError(ute_gfa01, msg); return(false); } if (GlobalFn.varIsNull(masterModel.gfa02_e)) { msg = "傳票迄日不可為空白!"; WfShowErrorMsg(msg); errorProvider.SetError(ute_gfa01, msg); return(false); } 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; } }