Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        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;
            }
        }
Exemplo n.º 5
0
        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;
            }
        }
Exemplo n.º 6
0
        /**********  其他常用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;
            }
        }
Exemplo n.º 7
0
        /**********  其他常用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;
            }
        }
Exemplo n.º 8
0
        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;
            }
        }
Exemplo n.º 9
0
        /// <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;
            }
        }
Exemplo n.º 10
0
        /**********************  新增/查詢/拷貝/存檔/刪除 相關 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);
        }