protected override void WfCreateBoBasic() { BoMaster = new AdmBLL(LoginInfo.CompNo, TabMaster.TargetTable, TabMaster.TargetColumn, TabMaster.ViewTable); BoBas = new BasBLL(BoMaster.OfGetConntion()); BoInv = new InvBLL(BoMaster.OfGetConntion()); return; }
public DataRow OfGetCacDr(string pCac01) { DataRow drCac = null; BasBLL boBll = null; int baa06 = 0; //單別碼數 try { boBll = new BasBLL(this.OfGetConntion()); if (this.TRAN != null) { boBll.TRAN = this.TRAN; } baa06 = boBll.OfGetBaa06(); drCac = OfGetCacDr(pCac01, baa06); return(drCac); } 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; } }
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; } }
/********** 其他常用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; } }
/********** 其他常用function ********/ #region OfGetPrice /// <summary> /// /// </summary> /// <param name="pPbc01">價格條件</param> /// <param name="pVendor">客戶編號</param> /// <param name="pItem">料號</param> /// <param name="pUnit">單位</param> /// <param name="pDate">日期</param> /// <param name="pCurrency">幣別</param> /// <param name="pType">2.採購 3.收貨</param> /// <param name="pQty">數量</param> /// <param name="pTaxYN">含稅否</param> /// <param name="pTaxRate">稅率</param> /// <param name="pExRate">匯率</param> /// <param name="pUtaxPrice">回傳未稅價格</param> /// <param name="pTaxPrice">回傳含稅價格</param> /// <returns></returns> public Result OfGetPrice(string pPbc01, string pVendor, string pItem, string pUnit, DateTime?pDate, string pCurrency, string pType, decimal pQty, string pTaxYN, decimal pTaxRate, decimal pExRate, out decimal pUtaxPrice, out decimal pTaxPrice ) { Result rtnResult = null; string sqlSelect = ""; List <SqlParameter> sqlParmList = null; List <pbc_tb> pbcList = null; ica_tb icaModel = null; bek_tb bekModel = null; InvBLL boInv = null; BasBLL boBas = null; decimal tempUtaxPrice = 0, tempTaxPrice = 0, unitRate = 0; bool flag = false; pUtaxPrice = 0; pTaxPrice = 0; try { rtnResult = new Result(); rtnResult.Key1 = pItem; boInv = new InvBLL(OfGetConntion()); boInv.TRAN = this.TRAN; boBas = new BasBLL(OfGetConntion()); boBas.TRAN = this.TRAN; pbcList = OfgetPbcList(pPbc01); if (pbcList == null || pbcList.Count == 0) { rtnResult.Message = "未設定取價原則!"; return(rtnResult); } icaModel = boInv.OfGetIcaModel(pItem); if (icaModel == null) { rtnResult.Message = "查無此料號資料!"; return(rtnResult); } bekModel = boBas.OfGetBekModel(pCurrency); if (bekModel == null) { rtnResult.Message = "查無此幣別資料!"; return(rtnResult); } foreach (pbc_tb pbcModel in pbcList.OrderBy(p => p.pbc04)) { switch (pbcModel.pbc03.ToUpper()) { case "A1": //依料號最近市價 考量含稅否及匯率 tempUtaxPrice = icaModel.ica19; if (pTaxYN == "Y") { tempTaxPrice = tempUtaxPrice * (1 + pTaxRate / 100); } //取得單位換算率 傳入單位與採購單位的換算率--這個適用A1跟A2 flag = boInv.OfGetUnitCovert(pItem, icaModel.ica08, pUnit, out unitRate); if (flag == false) { rtnResult.Message = "取得料號換算率失敗!"; return(rtnResult); } tempUtaxPrice = tempUtaxPrice * unitRate; tempTaxPrice = tempTaxPrice * unitRate; break; case "A2": //依料號最近採購價 考量含稅否及匯率 tempUtaxPrice = icaModel.ica18; if (pTaxYN == "Y") { tempTaxPrice = tempUtaxPrice * (1 + pTaxRate / 100); } //取得單位換算率 傳入單位與採購單位的換算率--這個適用A1跟A2 flag = boInv.OfGetUnitCovert(pItem, icaModel.ica08, pUnit, out unitRate); if (flag == false) { rtnResult.Message = "取得料號換算率失敗!"; return(rtnResult); } tempUtaxPrice = tempUtaxPrice * unitRate; tempTaxPrice = tempTaxPrice * unitRate; break; case "A3": //依料號供應商單價 var pddModel = OfGetPddModel(pItem, pVendor, pCurrency); if (pddModel == null) { continue; } tempUtaxPrice = pddModel.pdd09; tempTaxPrice = pddModel.pdd10; //取得匯率 //取得單位換算率 傳入單位與採購單位的換算率--這個適用A1跟A2 flag = boInv.OfGetUnitCovert(pItem, pddModel.pdd12, pUnit, out unitRate); if (flag == false) { rtnResult.Message = "取得料號換算率失敗!"; return(rtnResult); } tempUtaxPrice = tempUtaxPrice * unitRate; tempTaxPrice = tempTaxPrice * unitRate; break; } if (pTaxYN == "Y" && tempTaxPrice == 0) { continue; } if (pTaxYN != "Y" && tempUtaxPrice == 0) { continue; } if (pbcModel.pbc03.ToUpper() == "A1" || pbcModel.pbc03.ToUpper() == "A2") { pUtaxPrice = tempUtaxPrice / pExRate; pTaxPrice = tempTaxPrice / pExRate; pUtaxPrice = GlobalFn.Round(pUtaxPrice, bekModel.bek03); pTaxPrice = GlobalFn.Round(pTaxPrice, bekModel.bek03); break; } if (pbcModel.pbc03.ToUpper() == "A3") //查詢已包含幣別,所以不用考量匯率 { pUtaxPrice = GlobalFn.Round(tempUtaxPrice, bekModel.bek03); pTaxPrice = GlobalFn.Round(tempTaxPrice, bekModel.bek03); break; } } rtnResult.Success = true; return(rtnResult); } catch (Exception ex) { throw ex; } }
private bool OfGenGea(vw_carb110 pCarb110Model, sga_tb pSgaModel, Result pResult) { string selectSql = "", updateSql = ""; List <SqlParameter> sqlParmList = null; StpBLL boStp = null; CarBLL boCar = null; BasBLL boBas = null; DataTable dtCea = null, dtCeb = null; DataRow drCea = null, drCeb = null; string cea01 = "", cea01New = ""; DateTime? cea02; string errMsg = ""; List <sgb_tb> sgbList = null; cac_tb cacModel = null; //收款單別 bab_tb babModel = null; //出貨單別 int chkCnts = 0; try { boCar = new CarBLL(OfGetConntion()); boCar.TRAN = this.TRAN; boStp = new StpBLL(OfGetConntion()); boStp.TRAN = this.TRAN; boBas = new BasBLL(OfGetConntion()); boBas.TRAN = this.TRAN; boCar.OfCreateDao("cea_tb", "*", ""); selectSql = @"SELECT * FROM cea_tb WHERE 1<>1"; dtCea = boCar.OfGetDataTable(selectSql); drCea = dtCea.NewRow(); //已輸入的為主 if (!GlobalFn.varIsNull(pCarb110Model.cea01)) { cea01 = pCarb110Model.cea01; } else { //以出貨單別設定的來拋轉 babModel = boBas.OfGetBabModel(pSgaModel.sga01); if (babModel == null) { pResult.Key1 = pSgaModel.sga01; pResult.Message = "取得出貨單別失敗!"; return(false); } if (GlobalFn.varIsNull(babModel.bab09)) { pResult.Key1 = pSgaModel.sga01; pResult.Message = "未設定出貨單拋轉應收帳款單別,請先至單別資料設定!"; return(false); } cea01 = babModel.bab09; } if (!GlobalFn.varIsNull(pCarb110Model.cea02)) { cea02 = pCarb110Model.cea02; } else { cea02 = pSgaModel.sga02; } errMsg = ""; if (boBas.OfGetAutoNo(cea01, ModuleType.car, (DateTime)cea02, out cea01New, out errMsg) == false) { pResult.Key1 = pSgaModel.sga01; pResult.Message = errMsg; return(false); } drCea["cea00"] = "11"; //帳款類別 drCea["cea01"] = cea01New; drCea["cea02"] = cea02; drCea["cea03"] = pSgaModel.sga03; drCea["cea04"] = pSgaModel.sga04; drCea["cea05"] = pSgaModel.sga05; //業務部門 drCea["cea06"] = pSgaModel.sga06; //課稅別 drCea["cea07"] = pSgaModel.sga07; //稅率 drCea["cea08"] = pSgaModel.sga08; //含稅否 drCea["cea09"] = pSgaModel.sga09; //發票聯數 drCea["cea10"] = pSgaModel.sga10; //幣別 drCea["cea11"] = pSgaModel.sga11; //收款條件 drCea["cea12"] = pSgaModel.sga21; //匯率 drCea["cea13"] = pSgaModel.sga13; //原幣未稅金額 drCea["cea13t"] = pSgaModel.sga13t; //原幣含稅金額 drCea["cea13g"] = pSgaModel.sga13g; //原幣稅額 drCea["cea14"] = 0; //原幣沖帳金額 drCea["cea15"] = 0; //本幣未稅金額 drCea["cea15t"] = 0; //本幣含稅金額 drCea["cea15g"] = 0; //本幣稅額 drCea["cea16"] = 0; //本幣沖帳金額 drCea["cea17"] = ""; //參考單號 drCea["cea18"] = ""; //備註 drCea["cea19"] = DBNull.Value; //應收款日 drCea["cea20"] = ""; //保留 drCea["cea21"] = ""; //科目類別 drCea["cea22"] = ""; //會科編號 drCea["cea23"] = ""; //發票別 drCea["cea24"] = ""; //發票日期 drCea["cea25"] = ""; //發票號碼 drCea["cea26"] = ""; //發票客戶 drCea["cea27"] = ""; //申報統編 drCea["cea28"] = ""; //來源別 drCea["cea29"] = ""; //傳票編號 drCea["ceaconf"] = "N"; drCea["ceacomp"] = _loginInfo.CompNo; drCea["ceacreu"] = _loginInfo.UserNo; drCea["ceacreg"] = _loginInfo.DeptNo; drCea["ceacred"] = OfGetNow(); drCea["ceamodu"] = DBNull.Value; drCea["ceamodg"] = DBNull.Value; drCea["ceamodd"] = DBNull.Value; drCea["ceasecu"] = _loginInfo.UserNo; drCea["ceasecg"] = _loginInfo.GroupNo; dtCea.Rows.Add(drCea); if (boCar.OfUpdate(dtCea) == -1) { pResult.Key1 = cea01New; pResult.Message = "新增應收單頭失敗!"; return(false); } boCar.OfCreateDao("cfb_tb", "*", ""); selectSql = @"SELECT * FROM ceb_tb WHERE 1<>1"; dtCeb = boCar.OfGetDataTable(selectSql); foreach (sgb_tb sgbModel in sgbList.OrderBy(p => p.sgb02)) { drCeb = dtCeb.NewRow(); drCeb["ceb00"] = "11"; //帳款類別 drCeb["ceb01"] = cea01New; //傳票編號 drCeb["ceb02"] = sgbModel.sgb02; //項次 drCeb["ceb03"] = sgbModel.sgb03; //料號 drCeb["ceb04"] = sgbModel.sgb04; //品名 drCeb["ceb05"] = sgbModel.sgb05; //數量 drCeb["ceb06"] = sgbModel.sgb09; //原幣單價 drCeb["ceb07"] = sgbModel.sgb10; //原幣未稅金額 drCeb["ceb07t"] = sgbModel.sgb10t; //原幣含稅金額 drCeb["ceb08"] = 0; //本幣單價 drCeb["ceb09"] = 0; //本未稅金額 drCeb["ceb09t"] = 0; //本幣含稅金額 drCeb["ceb10"] = ""; //會計科目 drCeb["ceb11"] = pSgaModel.sga01; //出貨單號 drCeb["ceb12"] = sgbModel.sgb02; //出貨項次 drCeb["ceb13"] = 0; //原幣已沖金額 drCeb["ceb14"] = 0; //本幣已沖金額 drCeb["ceb15"] = 0; //本幣未沖金額 drCeb["ceb16"] = sgbModel.sgb06; //單位 drCeb["cebcomp"] = _loginInfo.CompNo; drCeb["cebcreu"] = _loginInfo.UserNo; drCeb["cebcreg"] = _loginInfo.DeptNo; drCeb["cebcred"] = OfGetNow(); drCeb["cebmodu"] = DBNull.Value; drCeb["cebmodg"] = DBNull.Value; drCeb["cebmodd"] = DBNull.Value; dtCeb.Rows.Add(drCeb); } if (boCar.OfUpdate(dtCeb) == -1) { pResult.Key1 = cea01New; pResult.Message = "新增應收單身失敗!"; return(false); } updateSql = @"UPDATE sga_tb SET sga22=@sga22 WHERE sga01=@sga01 "; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@sga22", cea01New)); sqlParmList.Add(new SqlParameter("@sga01", pSgaModel.sga01)); chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray()); if (chkCnts != 1) { pResult.Key1 = pSgaModel.sga01; pResult.Message = "更新出貨單失敗!"; return(false); } // updateSql = @"UPDATE gea_tb // SET gea06=@gea06, // gea07=@gea07 // WHERE gea01=@gea01 // AND gea02=@gea02 // AND gea03=@gea03 // AND gea04=@gea04 // "; // sqlParmList = new List<SqlParameter>(); // sqlParmList.Add(new SqlParameter("@gea06", cea01New)); // sqlParmList.Add(new SqlParameter("@gea07", cea02)); // sqlParmList.Add(new SqlParameter("@gea01", pGeaModel.gea01)); // sqlParmList.Add(new SqlParameter("@gea02", pGeaModel.gea02)); // sqlParmList.Add(new SqlParameter("@gea03", pGeaModel.gea03)); // sqlParmList.Add(new SqlParameter("@gea04", pGeaModel.gea04)); // chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray()); // if (chkCnts != 1) // { // pResult.Key1 = pGeaModel.gea01; // pResult.Message = "更新分稿底稿失敗!"; // return false; // } return(true); } catch (Exception ex) { pResult.Key1 = pSgaModel.sga01; pResult.Message = ex.Message; pResult.Exception = ex; throw; } }
/// <summary> /// 產生分錄底稿 來源為收款沖帳單 /// </summary> /// <param name="pCarb350Model"></param> /// <param name="pCfaModel"></param> /// <param name="pGeaModel"></param> /// <param name="pResult"></param> /// <returns></returns> private bool OfGenGfa(vw_carb350 pCarb350Model, cfa_tb pCfaModel, gea_tb pGeaModel, Result pResult) { string selectSql = "", updateSql = ""; List <SqlParameter> sqlParmList = null; GlaBLL boGla = null; BasBLL boBas = null; DataTable dtGfa = null, dtGfb = null; DataRow drGfa = null, drGfb = null; string gfa01 = "", gfa01New = ""; DateTime? gfa02; string errMsg = ""; int year = 0, period = 0; List <geb_tb> gebList = null; cac_tb cacModel = null; //收款單別 int chkCnts = 0; try { boGla = new GlaBLL(OfGetConntion()); boGla.TRAN = this.TRAN; boBas = new BasBLL(OfGetConntion()); boBas.TRAN = this.TRAN; boGla.OfCreateDao("gfa_tb", "*", ""); selectSql = @"SELECT * FROM gfa_tb WHERE 1<>1"; dtGfa = boGla.OfGetDataTable(selectSql); drGfa = dtGfa.NewRow(); if (!GlobalFn.varIsNull(pCarb350Model.gfa01)) { gfa01 = pCarb350Model.gfa01; } else { //以應收單別設定的來拋轉 cacModel = OfGetCacModel(pCfaModel.cfa01); if (cacModel == null) { pResult.Key1 = pCfaModel.cfa01; pResult.Message = "取得應收單別失敗!"; return(false); } if (GlobalFn.varIsNull(cacModel.cac10)) { pResult.Key1 = pCfaModel.cfa01; pResult.Message = "未設定應收拋轉總帳單別,請先至單別資料設定!"; return(false); } gfa01 = cacModel.cac10; } if (!GlobalFn.varIsNull(pCarb350Model.gfa02)) { gfa02 = pCarb350Model.gfa02; } else { gfa02 = pGeaModel.gea05; } errMsg = ""; if (boBas.OfGetAutoNo(gfa01, ModuleType.gla, (DateTime)gfa02, out gfa01New, out errMsg) == false) { pResult.Key1 = pCfaModel.cfa01; pResult.Message = errMsg; return(false); } drGfa["gfa01"] = gfa01New; drGfa["gfa02"] = gfa02; drGfa["gfa03"] = pGeaModel.gea08; drGfa["gfa04"] = pGeaModel.gea09; drGfa["gfa05"] = ""; //備註 drGfa["gfa06"] = pGeaModel.gea02; //來源碼-系統別 drGfa["gfa07"] = pGeaModel.gea01; //來源單號 if (boGla.OfGetGlaYearPeriod(Convert.ToDateTime(gfa02), out year, out period) == false) { pResult.Message = "取得會計年度失敗!"; return(false); } drGfa["gfa08"] = year; drGfa["gfa09"] = period; drGfa["gfa10"] = DBNull.Value; //保留 drGfa["gfa10"] = DBNull.Value; //保留 drGfa["gfa11"] = DBNull.Value; //保留 drGfa["gfa12"] = DBNull.Value; //保留 drGfa["gfa13"] = DBNull.Value; //保留 drGfa["gfa14"] = DBNull.Value; //保留 drGfa["gfa15"] = DBNull.Value; //保留 drGfa["gfa16"] = DBNull.Value; //保留 drGfa["gfa17"] = DBNull.Value; //保留 drGfa["gfa18"] = DBNull.Value; //保留 drGfa["gfa19"] = DBNull.Value; //保留 drGfa["gfa20"] = DBNull.Value; //保留 drGfa["gfaprno"] = 0; drGfa["gfaconf"] = "N"; drGfa["gfaconu"] = DBNull.Value; drGfa["gfapost"] = "N"; drGfa["gfaposd"] = DBNull.Value; drGfa["gfaposu"] = DBNull.Value; drGfa["gfacomp"] = _loginInfo.CompNo; drGfa["gfacreu"] = _loginInfo.UserNo; drGfa["gfacreg"] = _loginInfo.DeptNo; drGfa["gfacred"] = OfGetNow(); drGfa["gfamodu"] = DBNull.Value; drGfa["gfamodg"] = DBNull.Value; drGfa["gfamodd"] = DBNull.Value; drGfa["gfasecu"] = _loginInfo.UserNo; drGfa["gfasecg"] = _loginInfo.GroupNo; dtGfa.Rows.Add(drGfa); if (boGla.OfUpdate(dtGfa) == -1) { pResult.Key1 = pGeaModel.gea01; pResult.Message = "新增傳票單頭失敗!"; return(false); } gebList = boGla.OfGetGebList(pGeaModel.gea01, pGeaModel.gea02, pGeaModel.gea03, pGeaModel.gea04); if (gebList == null || gebList.Count == 0) { pResult.Key1 = pGeaModel.gea01; pResult.Message = "查無分錄底稿單身資料!"; return(false); } boGla.OfCreateDao("gfb_tb", "*", ""); selectSql = @"SELECT * FROM gfb_tb WHERE 1<>1"; dtGfb = boGla.OfGetDataTable(selectSql); foreach (geb_tb gebModel in gebList.OrderBy(p => p.geb05)) { drGfb = dtGfb.NewRow(); drGfb["gfb01"] = gfa01New; //傳票編號 drGfb["gfb02"] = gebModel.geb05; //項次 drGfb["gfb03"] = gebModel.geb06; //科目編號 drGfb["gfb04"] = gebModel.geb07; //摘要 drGfb["gfb05"] = gebModel.geb08; //部門 drGfb["gfb06"] = gebModel.geb09; //借貸別 drGfb["gfb07"] = gebModel.geb10; //本幣金額 drGfb["gfb08"] = gebModel.geb11; //原幣幣別 drGfb["gfb09"] = gebModel.geb12; //匯率 drGfb["gfb10"] = gebModel.geb13; //原幣金額 drGfb["gfb11"] = DBNull.Value; //保留 drGfb["gfb12"] = DBNull.Value; //保留 drGfb["gfb13"] = DBNull.Value; //保留 drGfb["gfb14"] = DBNull.Value; //保留 drGfb["gfb15"] = DBNull.Value; //保留 drGfb["gfb16"] = DBNull.Value; //保留 drGfb["gfb17"] = DBNull.Value; //保留 drGfb["gfb18"] = DBNull.Value; //保留 drGfb["gfb19"] = DBNull.Value; //保留 drGfb["gfb20"] = DBNull.Value; //保留 drGfb["gfbcomp"] = _loginInfo.CompNo; drGfb["gfbcreu"] = _loginInfo.UserNo; drGfb["gfbcreg"] = _loginInfo.DeptNo; drGfb["gfbcred"] = OfGetNow(); drGfb["gfbmodu"] = DBNull.Value; drGfb["gfbmodg"] = DBNull.Value; drGfb["gfbmodd"] = DBNull.Value; dtGfb.Rows.Add(drGfb); } if (boGla.OfUpdate(dtGfb) == -1) { pResult.Key1 = pGeaModel.gea01; pResult.Message = "新增傳票單身失敗!"; return(false); } updateSql = @"UPDATE cfa_tb SET cfa12=@cfa12 WHERE cfa01=@cfa01 "; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@cfa12", gfa01New)); sqlParmList.Add(new SqlParameter("@cfa01", pCfaModel.cfa01)); chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray()); if (chkCnts != 1) { pResult.Key1 = pGeaModel.gea01; pResult.Message = "更新收款單失敗!"; return(false); } updateSql = @"UPDATE gea_tb SET gea06=@gea06, gea07=@gea07 WHERE gea01=@gea01 AND gea02=@gea02 AND gea03=@gea03 AND gea04=@gea04 "; sqlParmList = new List <SqlParameter>(); sqlParmList.Add(new SqlParameter("@gea06", gfa01New)); sqlParmList.Add(new SqlParameter("@gea07", gfa02)); sqlParmList.Add(new SqlParameter("@gea01", pGeaModel.gea01)); sqlParmList.Add(new SqlParameter("@gea02", pGeaModel.gea02)); sqlParmList.Add(new SqlParameter("@gea03", pGeaModel.gea03)); sqlParmList.Add(new SqlParameter("@gea04", pGeaModel.gea04)); chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray()); if (chkCnts != 1) { pResult.Key1 = pGeaModel.gea01; pResult.Message = "更新分稿底稿失敗!"; return(false); } return(true); } catch (Exception ex) { pResult.Key1 = pCfaModel.cfa01; pResult.Message = ex.Message; pResult.Exception = ex; throw; } }
/********************** 新增/查詢/拷貝/存檔/刪除 相關 Function **********************/ #region WfIniMaster() 設定表單主要的資料來源 protected virtual Boolean WfIniMaster() { try { // 以 FormID 由 Pu_pgm 中取得表單設定 #region 初始化 PU_BUSOBJ if (GlobalVar.PU_BUSOBJ != null) { this.BoSecurity = (YR.ERP.BLL.MSSQL.AdmBLL)GlobalVar.PU_BUSOBJ; } else { if (GlobalVar.Adm_DAO != null) { this.BoSecurity = new AdmBLL((YR.ERP.DAL.ERP_MSSQLDAL)GlobalVar.Adm_DAO); } else { //this.BoSecurity = new AdmBLL(); } } #endregion if (BoSecurity == null) { return(false); } this.AdoModel = BoSecurity.OfGetAdoModel(StrFormID); if (AdoModel == null) { return(false); } this.TabMaster.TargetTable = AdoModel.ado05; this.TabMaster.TargetColumn = "*"; this.TabMaster.ViewTable = AdoModel.ado06; if (TabMaster.ViewTable == "") { TabMaster.ViewTable = TabMaster.TargetTable; } if (BoSecurity == null) { throw new Exception("物件BoSecurity,尚未初始化!"); //return false; } this.TabMaster.AzaTbList = BoSecurity.OfGetAzaModels(TabMaster.ViewTable); this.TabMaster.AddTbModel = BoSecurity.OfGetAddModel(LoginInfo.UserRole, StrFormID); // 建立 Form Master 的 Business Object : boBasic this.WfCreateBoBasic(); //取得baa_tb共用參數代碼 if (BaaModel == null) { using (var boBas = new BasBLL(BoMaster.OfGetConntion())) { if (BoMaster.TRAN != null) { boBas.TRAN = BoMaster.TRAN; } BaaModel = boBas.OfGetBaaModel(); } } #region 取得日期格式 var baa01KvpList = new BasBLL().OfGetBaa01KVPList();//取得日期格式 this.DateFormat = baa01KvpList.Where(x => x.Key == BaaModel.baa01) .Select(x => x.Value) .FirstOrDefault() ; if (GlobalFn.varIsNull(DateFormat)) { DateFormat = "yyyy/MM/dd"; } else //取得格式會含有 . ex:1.yyyy/MM/dd 要剔除 { if (DateFormat.IndexOf('.') >= 0) { var dotPosition = DateFormat.IndexOf('.'); DateFormat = DateFormat.Substring(dotPosition + 1, DateFormat.Length - dotPosition - 1); } } #endregion // 先取得空的資料表 if (this.TabMaster.ViewTable != "") { this.TabMaster.DtSource = this.TabMaster.BoBasic.OfSelect(" WHERE 1=2 "); TabMaster.DtSource.Rows.Add(TabMaster.DtSource.NewRow()); this.WfSetMasterDatasource(this.TabMaster.DtSource); this.BindingMaster.MoveFirst(); DrMaster = TabMaster.DtSource.Rows[0]; WfSetMasterRowDefault(DrMaster); } } catch (Exception ex) { throw ex; } return(true); }