Ejemplo n.º 1
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;
            }
        }
Ejemplo n.º 2
0
        //檢查登入角色是否有執行該程式的權限
        protected override bool WfAppendUpdate()
        {
            DataTable           dtAddTb;
            AdmBLL              boAppend;
            StringBuilder       sbSql;
            vw_admi600          masterModel = null;
            List <SqlParameter> sqlParmList = null;

            try
            {
                masterModel = DrMaster.ToItem <vw_admi600>();

                boAppend      = new AdmBLL(BoMaster.OfGetConntion());
                boAppend.TRAN = BoMaster.TRAN;
                boAppend.OfCreateDao("add_tb", "*", "");
                sbSql = new StringBuilder();
                sbSql.AppendLine("SELECT * FROM add_tb");
                sbSql.AppendLine("WHERE add01=@add01");
                sbSql.AppendLine("AND add02=@add02");
                sqlParmList = new List <SqlParameter>();
                sqlParmList.Add(new SqlParameter("@add01", LoginInfo.UserRole));
                sqlParmList.Add(new SqlParameter("@add02", masterModel.ado01));
                dtAddTb = boAppend.OfGetDataTable(sbSql.ToString(), sqlParmList.ToArray());
                if (masterModel.ado07.ToUpper() == "M")//menus 時
                {
                    if (dtAddTb != null && dtAddTb.Rows.Count > 0)
                    {
                        dtAddTb.Rows[0].Delete();
                        if (boAppend.OfUpdate(dtAddTb) < 1)
                        {
                            WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!");
                            return(false);
                        }
                    }
                }
                else  //報表或程式時
                {
                    if (dtAddTb.Rows.Count == 0 && GlobalFn.isNullRet(masterModel.ado16, "") != "Y")
                    {
                        var result = WfShowConfirmMsg("無此程式的權限,請問是否自動新增 ?");
                        //var i = WfShowConfirmMsg("無此程式的權限,請問是否自動新增");
                        //if (i == 1)
                        if (result == DialogResult.Yes)
                        {
                            var drNew = dtAddTb.NewRow();
                            drNew["add01"] = LoginInfo.UserRole;
                            drNew["add02"] = masterModel.ado01;
                            drNew["add03"] = "Y";
                            drNew["add04"] = "Y";
                            drNew["add05"] = "Y";
                            drNew["add06"] = "Y";
                            drNew["add07"] = "Y";
                            drNew["add08"] = "Y";
                            drNew["add09"] = "Y";
                            drNew["add10"] = "Y";
                            drNew["add11"] = "Y";
                            drNew["add12"] = "Y";
                            dtAddTb.Rows.Add(drNew);

                            if (boAppend.OfUpdate(dtAddTb) < 1)
                            {
                                WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!");
                                return(false);
                            }
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 3
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            //DataSet ds;
            vw_invr522 invr522Model;
            string sqlBody = "";
            DataTable dtIlaTb;
            List<QueryInfo> queryInfoList;
            QueryInfo queryModel;
            string strQueryRange, strWhere, strOrderBy;
            StringBuilder sbQuerySingle = null;
            List<SqlParameter> sqlParmList;
            List<Master> resultList = null;
            try
            {
                invr522Model = DrMaster.ToItem<vw_invr522>();
                resultList = new List<Master>();
                queryInfoList = new List<QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(invr522Model.ipa01))
                {
                    queryModel = new QueryInfo();
                    queryModel.TableName = "ipa_tb";
                    queryModel.ColumnName = "ipa01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ipa01"].DataType.Name;
                    queryModel.Value = invr522Model.ipa01;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr522Model.ipacreu))
                {
                    queryModel = new QueryInfo();
                    queryModel.TableName = "ipa_tb";
                    queryModel.ColumnName = "ipacreu";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ipacreu"].DataType.Name;
                    queryModel.Value = invr522Model.ipacreu;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr522Model.ipacreg))
                {
                    queryModel = new QueryInfo();
                    queryModel.TableName = "ipa_tb";
                    queryModel.ColumnName = "ipacreg";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ipacreg"].DataType.Name;
                    queryModel.Value = invr522Model.ipacreg;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList = new List<SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(invr522Model.ipa03_s))
                {
                    sbQuerySingle.AppendLine("AND ipa03>=@ipa03_s");
                    sqlParmList.Add(new SqlParameter("@ila02_s", invr522Model.ipa03_s));
                }
                if (!GlobalFn.varIsNull(invr522Model.ipa03_e))
                {
                    sbQuerySingle.AppendLine("AND ipa03<=@ipa03_e");
                    sqlParmList.Add(new SqlParameter("@ipa03_e", invr522Model.ipa03_e));
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                    strWhere += strSecurity;

                //取得單頭
                sqlBody = @"
                            SELECT 
	                            ipa01,ipb02,ipb03,ipb04,ipb05,
	                            ipb06,ipb07,ipb30,ipb40,ipb50,
                                ica02,ica03,
                                bej03,
	                            CONVERT(DECIMAL,0) AS qty1,
	                            CONVERT(DECIMAL,0) AS qty2,
	                            CONVERT(DECIMAL,0) AS dif_qty,
	                            CONVERT(NVARCHAR(20),0) AS qty1_str,
	                            CONVERT(NVARCHAR(20),0) AS qty2_str,
	                            CONVERT(NVARCHAR(20),0) AS dif_qty_str
                            FROM ipa_tb
	                            INNER JOIN ipb_tb ON ipa01=ipb01
                                LEFT JOIN ica_tb ON ipb03=ica01
                                LEFT JOIN bej_tb ON ipb07=bej01
                            WHERE
	                            ipa05='Y'
                                ";
                strOrderBy = " ORDER BY ipa01,ipb02";
                dtIlaTb = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, strOrderBy), sqlParmList.ToArray());
                dtIlaTb.TableName = "Master";
                if (dtIlaTb != null)
                {
                    resultList.AddRange(dtIlaTb.ToList<Master>());
                }

                if (resultList == null || resultList.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return false;
                }

                foreach (Master masterModel in resultList)
                {
                    switch (invr522Model.type1)
                    {
                        case "1":
                            masterModel.qty1 = masterModel.ipb30;
                            break;
                        case "2":
                            masterModel.qty1 = masterModel.ipb40;
                            break;
                        case "3":
                            masterModel.qty1 = masterModel.ipb50;
                            break;
                        case "4":
                            masterModel.qty1 = masterModel.ipb06;
                            break;
                    }
                    switch (invr522Model.type2)
                    {
                        case "1":
                            masterModel.qty2 = masterModel.ipb30;
                            break;
                        case "2":
                            masterModel.qty2 = masterModel.ipb40;
                            break;
                        case "3":
                            masterModel.qty2 = masterModel.ipb50;
                            break;
                        case "4":
                            masterModel.qty2 = masterModel.ipb06;
                            break;
                    }
                    masterModel.dif_qty = masterModel.qty2 - masterModel.qty1;

                    masterModel.qty1_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.qty1);
                    masterModel.qty2_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.qty2);
                    masterModel.dif_qty_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.dif_qty);
                }
                
                if (invr522Model.dif_yn == "Y")//只顯示差異
                {
                    if (resultList.Where(x => x.dif_qty != 0).Count() == 0)
                    {
                        WfShowErrorMsg("查無資料,請重新過濾條件!");
                        return false;
                    }
                    pReport.RegData("master", resultList.Where(x => x.dif_qty != 0));
                }
                else
                {
                    pReport.RegData("master", resultList);                    
                }

                pReport.CacheAllData = true;
                StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"];
                footerBand1.NewPageAfter = true;
                footerBand1.ResetPageNumber = true;
                pReport.Compile();
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 4
0
        protected override bool WfFormCheck()
        {
            vw_basi050 masterModel = null;
            string     msg;
            Control    chkControl;
            string     chkColName;

            try
            {
                masterModel = DrMaster.ToItem <vw_basi050>();
                #region 單頭資料檢查
                chkColName = "bef01";
                chkControl = ute_bef01;
                #region 付款條件分類
                if (GlobalFn.varIsNull(masterModel.bef01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                #endregion

                chkColName = "bef02";
                chkControl = ute_bef02;
                #region 付款條件編號
                if (GlobalFn.varIsNull(masterModel.bef02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                if (FormEditMode == YREditType.新增 && BoBas.OfChkBefPKValid(GlobalFn.isNullRet(masterModel.bef01, ""), GlobalFn.isNullRet(masterModel.bef02, "")) == true)
                {
                    msg = "付款條件編號已存在,請檢核!";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                chkColName = "bef03";
                chkControl = ute_bef03;
                #region 付款條件編號說明
                if (GlobalFn.varIsNull(masterModel.bef03))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                #endregion

                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 5
0
        //回傳值 true.通過驗證 false.未通過驗證,
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            vw_admi600 admi600Model;

            try
            {
                admi600Model = DrMaster.ToItem <vw_admi600>();
                #region 單頭-pick vw_admi600
                if (e.Row.Table.Prefix.ToLower() == "vw_admi600")
                {
                    switch (e.Column.ToLower())
                    {
                    case "ado01":       //程式代號
                        if (GlobalFn.isNullRet(e.Value, "") == "")
                        {
                            return(true);
                        }
                        if (FormEditMode == YREditType.新增)
                        {
                            if (BoAdm.OfChkAdoPKExists(admi600Model.ado01) == true)
                            {
                                WfShowErrorMsg("程式代號已存在,請檢查!");
                                return(false);
                            }
                        }
                        break;

                    case "ado07":    //程式類別 P.程式 M.menu R.報表
                        if (GlobalFn.varIsNull(admi600Model.ado07) || admi600Model.ado07 == "M")
                        {
                            e.Row["ado03"] = "";
                            e.Row["ado04"] = "";
                            e.Row["ado05"] = "";
                            e.Row["ado06"] = "";
                            e.Row["ado08"] = "N";
                            e.Row["ado09"] = "N";
                            e.Row["ado10"] = "";
                            e.Row["ado11"] = 0;
                            e.Row["ado12"] = "";
                            e.Row["ado13"] = "";
                            e.Row["ado15"] = "";
                            e.Row["ado16"] = "N";
                        }
                        else if (admi600Model.ado07 == "R")
                        {
                            e.Row["ado08"] = "N";
                            e.Row["ado09"] = "N";
                            e.Row["ado13"] = "";
                            e.Row["ado15"] = "";
                            e.Row["ado16"] = "N";
                            WfItemChkForceFocus(ucb_ado13);
                        }
                        WfDisplayMode();
                        break;

                    case "ado09":       //自動化報表
                        if (GlobalFn.isNullRet(e.Value, "") == "Y")
                        {
                            WfSetControlReadonly(ute_ado10, false);
                            WfItemChkForceFocus(ute_ado10);
                        }
                        else
                        {
                            WfSetControlReadonly(ute_ado10, true);
                            e.Row["ado10"] = "";     //報表名稱
                            e.Row["ado13"] = "";
                        }
                        break;

                    case "ado14":       //流程圖ID
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (BoAdm.OfChkAdxPKExists(e.Value.ToString()) == false)
                        {
                            WfShowErrorMsg("無此流程圖ID,請確認!");
                            return(false);
                        }
                        break;
                        //case "ado15":   //Action功能
                        //    if (GlobalFn.varIsNull(e.Value))
                        //        return true;
                        //    if (BoAdm.OfChkAtc02Exists(e.Value.ToString()) == false)
                        //    {
                        //        WfShowMsg("無此欄位,請確認!");
                        //        return false;
                        //    }
                        //    break;
                        //case "ado16":   //是否為子程式
                        //    if (GlobalFn.varIsNull(e.Value))
                        //        return true;
                        //    if (BoAdm.OfChkAtc02Exists(e.Value.ToString()) == false)
                        //    {
                        //        WfShowMsg("無此欄位,請確認!");
                        //        return false;
                        //    }
                        //    break;
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 過帳及重過帳共用程式
        /// </summary>
        /// <param name="pModel"></param>
        /// <param name="pPost"></param>
        /// <returns></returns>
        public List <Result> OfGlab311Post(vw_glab311 pModel, string pPost, string pSecurityString, string pSrcFormId, UserInfo pLoginInfo)
        {
            List <Result>       rtnResultList = null;
            string              selectSql = "";
            string              strQueryRange = "", strQuerySingle = "";
            List <SqlParameter> sqlParmList = null;
            DataTable           dtGfa       = null;
            List <QueryInfo>    queryInfoList;
            QueryInfo           queryModel;
            gfa_tb              gfaModel;

            try
            {
                _loginInfo = pLoginInfo;

                selectSql = @"
                            SELECT * FROM gfa_tb
                            WHERE gfaconf='Y'
                        ";

                selectSql += string.Format(" AND gfapost='{0}'", pPost);

                sqlParmList   = new List <SqlParameter>();
                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(pModel.gfa01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "gfa_tb";
                    queryModel.ColumnName = "gfa01";
                    queryModel.ColumnType = "string";
                    queryModel.Value      = pModel.gfa01;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single處理
                if (!GlobalFn.varIsNull(pModel.gfa02_s))
                {
                    sqlParmList.Add(new SqlParameter("@gfa02_s", pModel.gfa02_s));
                    strQuerySingle += string.Format(" AND gfa02>=@gfa02_s");
                }
                if (!GlobalFn.varIsNull(pModel.gfa02_e))
                {
                    sqlParmList.Add(new SqlParameter("@gfa02_e", pModel.gfa02_e));
                    strQuerySingle += string.Format(" AND gfa02<=@gfa02_e");
                }
                #endregion
                selectSql = string.Concat(selectSql, strQueryRange, strQuerySingle, pSecurityString);   //加入權限處理
                dtGfa     = OfGetDataTable(selectSql, sqlParmList.ToArray());
                if (dtGfa == null || dtGfa.Rows.Count == 0)
                {
                    return(null);
                }

                rtnResultList = new List <Result>();
                foreach (DataRow drGfa in dtGfa.Rows)
                {
                    gfaModel = drGfa.ToItem <gfa_tb>();
                    var result = new Result();
                    rtnResultList.Add(result);

                    if (gfaModel.gfa03 != gfaModel.gfa04)
                    {
                        result.Key1    = gfaModel.gfa01;
                        result.Message = "借貸不平衡!";
                        continue;
                    }
                    if (pPost == "N") //重過帳不修改傳票單頭
                    {
                        if (OfPostGfa(gfaModel) == false)
                        {
                            result.Key1    = gfaModel.gfa01;
                            result.Message = "更新gfa_tb失敗!";
                            continue;
                        }
                    }

                    if (OfPostGfb(gfaModel, result) == false)
                    {
                        continue;
                    }

                    result.Success = true;
                }

                return(rtnResultList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 7
0
        protected override bool WfFormCheck()
        {
            vw_basi080 masterModel = null;
            string     msg;
            Control    chkControl;
            string     chkColName;
            int        iTemp = 0;

            try
            {
                masterModel = DrMaster.ToItem <vw_basi080>();
                chkColName  = "bek01";
                chkControl  = ute_bek01;
                #region 幣別
                if (GlobalFn.varIsNull(masterModel.bek01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                if (FormEditMode == YREditType.新增 && BoBas.OfChkBekPKExists(GlobalFn.isNullRet(masterModel.bek01, "")) == true)
                {
                    msg = "幣別已存在,請檢核!";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                chkColName = "bek02";
                chkControl = ute_bek02;
                #region 幣別名稱
                if (GlobalFn.varIsNull(masterModel.bek02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                #region 單價小數位數
                chkColName = "bek03";
                chkControl = ute_bek03;
                iTemp      = 0;
                if (GlobalFn.varIsNull(masterModel.bek03))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                if (int.TryParse(GlobalFn.isNullRet(masterModel.bek03, ""), out iTemp) == false)
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg = "請輸入整數值";
                    WfShowErrorMsg(msg);
                    errorProvider.SetError(chkControl, msg);
                    return(false);
                }
                if (iTemp > 5 || iTemp < 0)
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();;
                    msg = "需輸入範圍為0-5的整數";
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                #region 小計/總計 小數位數
                chkColName = "bek04";
                chkControl = ute_bek04;
                iTemp      = 0;
                if (GlobalFn.varIsNull(masterModel.bek04))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                if (int.TryParse(GlobalFn.isNullRet(masterModel.bek04, ""), out iTemp) == false)
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg = "請輸入整數值";
                    WfShowErrorMsg(msg);
                    errorProvider.SetError(chkControl, msg);
                    return(false);
                }
                if (iTemp > 5 || iTemp < 0)
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();;
                    msg = "需輸入範圍為0-5的整數";
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 8
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            vw_glar300       glar300Model;
            StringBuilder    sbSql      = null;
            string           sqlBody    = "";
            string           sqlOrderBy = "";
            DataTable        dtMaster;
            List <Master>    masterList;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;
            decimal          maxPageRows   = 5;    //每頁限定筆數
            List <Master>    addMasterList = null; //用來增加空白筆數的集合

            List <SqlParameter> sqlParmList;

            try
            {
                if (Vw_Galr300 != null) //他窗引用時
                {
                    glar300Model = Vw_Galr300;
                }
                else
                {
                    glar300Model = DrMaster.ToItem <vw_glar300>();
                }

                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(glar300Model.gfa01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "gfa_tb";
                    queryModel.ColumnName = "gfa01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["gfa01"].DataType.Name;
                    queryModel.Value      = glar300Model.gfa01;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                //他窗引用時,僅查詢單號
                if (Vw_Galr300 == null)
                {
                    if (!GlobalFn.varIsNull(glar300Model.gfa02_s))
                    {
                        sbQuerySingle.AppendLine("AND gfa02>=@gfa02_s");
                        sqlParmList.Add(new SqlParameter("@gfa02_s", glar300Model.gfa02_s));
                    }
                    if (!GlobalFn.varIsNull(glar300Model.gfa02_e))
                    {
                        sbQuerySingle.AppendLine("AND gfa02<=@gfa02_e");
                        sqlParmList.Add(new SqlParameter("@gfa02_e", glar300Model.gfa02_e));
                    }

                    //過帳否
                    if (glar300Model.gfapost == "1")
                    {
                        sbQuerySingle.AppendLine("AND gfapost='N'");
                    }
                    else if (glar300Model.gfapost == "2")
                    {
                        sbQuerySingle.AppendLine("AND gfapost='Y'");
                    }

                    //有效否
                    if (glar300Model.gfaconf == "1")
                    {
                        sbQuerySingle.AppendLine("AND gfaconf <>'X' ");
                    }
                    else if (glar300Model.gfaconf == "2")
                    {
                        sbQuerySingle.AppendLine("AND gfapost='X' ");
                    }

                    //列印否
                    if (glar300Model.gfaprno == 1)
                    {
                        sbQuerySingle.AppendLine("AND gfaprno =0");
                    }
                    else if (glar300Model.gfapost == "2")
                    {
                        sbQuerySingle.AppendLine("AND gfaprno >0 ");
                    }
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody            = @"SELECT 
	                            gfa01,gfa02,gfa03,gfa04,gfa05,
	                            gfa06,gfa07,gfa08,gfa09,
	                            gfaprno,gfaconf,gfacond,gfaconu,
	                            gfapost,gfaposd,gfaposu,
                                gac02 as gfa01_c,
	                            gfb02,gfb03,gfb04,gfb05,
	                            gfb06,gfb07,gfb08,gfb09,gfb10,
	                            gba02 AS gfb03_c,
	                            beb03 AS gfb05_c,
	                            bek04,
	                            gba05
                            FROM gfa_tb                                
                                LEFT JOIN gfb_tb ON gfa01=gfb01
	                            LEFT JOIN baa_tb ON 1=1	
	                            LEFT JOIN gac_tb ON substring(gfa01,1,baa06)=gac01
	                            LEFT JOIN gba_tb ON gfb03=gba01
	                            LEFT JOIN bek_tb ON gfb08=bek01
	                            LEFT JOIN beb_tb ON gfb05=beb01
                            WHERE 1=1       
                           ";
                sqlOrderBy         = " ORDER BY gfa01,gfa02";
                dtMaster           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray());
                dtMaster.TableName = "Master";

                if (dtMaster == null || dtMaster.Rows.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }
                masterList = dtMaster.ToList <Master>(true);
                //取得本幣資料
                var baaModel = BoBas.OfGetBaaModel();
                if (baaModel == null)
                {
                    WfShowErrorMsg("未設定基本參數,請先設定!");
                    return(false);
                }
                var baa04      = baaModel.baa04;
                var bekUsModel = BoBas.OfGetBekModel(baa04);
                if (bekUsModel == null)
                {
                    WfShowErrorMsg("查無本幣資料,請先設定!");
                    return(false);
                }

                //依群組來處理
                var gfa01GroupList = from o in masterList
                                     group o by o.gfa01 into g
                                     select g.First()
                ;

                addMasterList = new List <Master>();
                foreach (Master groupModel in gfa01GroupList)
                {
                    var gfa01           = groupModel.gfa01;
                    var groupList       = masterList.Where(p => p.gfa01 == gfa01).ToList();
                    int groupTotalRecs  = groupList.Count();
                    int groupTotalPages = Convert.ToInt16(Math.Ceiling(Convert.ToDecimal(groupTotalRecs / maxPageRows)));

                    for (int i = 0; i < groupList.Count(); i++)
                    {
                        var masterModel = groupList[i];
                        masterModel.gfa03_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfa03);
                        masterModel.gfa04_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfa04);
                        if (masterModel.gfb06 == "1")
                        {
                            masterModel.gfb07d_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfb07);
                            masterModel.gfb10d_str = string.Format("{0:N" + masterModel.bek04 + "}", masterModel.gfb10);
                        }
                        else
                        {
                            masterModel.gfb07c_str = string.Format("{0:N" + bekUsModel.bek04 + "}", masterModel.gfb07);
                            masterModel.gfb10c_str = string.Format("{0:N" + masterModel.bek04 + "}", masterModel.gfb10);
                        }

                        masterModel.groupPageNo     = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal((i + 1) / maxPageRows)));
                        masterModel.groupSeqNo      = i + 1;
                        masterModel.groupTotalPages = groupTotalPages;
                        if (masterModel.groupTotalPages != masterModel.groupPageNo)
                        {
                            masterModel.isPageEnd = false;
                        }
                        else
                        {
                            masterModel.isPageEnd = true;
                        }
                        if (i == groupTotalRecs - 1)
                        {
                            //處理要新增的空白筆數
                            var mod = groupTotalRecs % maxPageRows;
                            if (mod != 0)
                            {
                                var addRecs = maxPageRows - mod;
                                if (addRecs > 0)
                                {
                                    for (int j = 0; j < addRecs; j++)
                                    {
                                        var addMasterModel = new Master();
                                        addMasterModel.gfa01           = masterModel.gfa01;
                                        addMasterModel.gfa02           = masterModel.gfa02;
                                        addMasterModel.gfa03           = masterModel.gfa03;
                                        addMasterModel.gfa04           = masterModel.gfa04;
                                        addMasterModel.gfa05           = masterModel.gfa05;
                                        addMasterModel.gfa06           = masterModel.gfa06;
                                        addMasterModel.gfa07           = masterModel.gfa07;
                                        addMasterModel.gfa08           = masterModel.gfa08;
                                        addMasterModel.gfa09           = masterModel.gfa09;
                                        addMasterModel.gfaprno         = masterModel.gfaprno;
                                        addMasterModel.gfaconf         = masterModel.gfaconf;
                                        addMasterModel.gfacond         = masterModel.gfacond;
                                        addMasterModel.gfaconu         = masterModel.gfaconu;
                                        addMasterModel.gfapost         = masterModel.gfapost;
                                        addMasterModel.gfaposd         = masterModel.gfaposd;
                                        addMasterModel.gfaposu         = masterModel.gfaposu;
                                        addMasterModel.gfa01_c         = masterModel.gfa01_c;
                                        addMasterModel.gfb02           = 0;
                                        addMasterModel.gfb03           = "";
                                        addMasterModel.gfb04           = "";
                                        addMasterModel.gfb05           = "";
                                        addMasterModel.gfb06           = "";
                                        addMasterModel.gfb07           = 0;
                                        addMasterModel.gfb08           = "";
                                        addMasterModel.gfb09           = 0;
                                        addMasterModel.gfb10           = 0;
                                        addMasterModel.gfb03_c         = "";
                                        addMasterModel.gfb05_c         = "";
                                        addMasterModel.bek04           = 0;
                                        addMasterModel.gba05           = "";
                                        addMasterModel.gfa03_str       = masterModel.gfa03_str;
                                        addMasterModel.gfa04_str       = masterModel.gfa04_str;
                                        addMasterModel.gfb07c_str      = "";
                                        addMasterModel.gfb07d_str      = "";
                                        addMasterModel.gfb10c_str      = "";
                                        addMasterModel.gfb10d_str      = "";
                                        addMasterModel.groupPageNo     = masterModel.groupPageNo;
                                        addMasterModel.groupTotalPages = masterModel.groupTotalPages;
                                        addMasterModel.groupSeqNo      = i + j + 2;
                                        addMasterModel.isPageEnd       = masterModel.isPageEnd;

                                        addMasterList.Add(addMasterModel);
                                    }
                                }
                            }
                        }
                    }
                }

                if (addMasterList != null && addMasterList.Count > 0)
                {
                    masterList.AddRange(addMasterList);
                }

                pReport.RegData("Master", masterList);
                pReport.CacheAllData = true;
                ////處理跳頁
                //StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"];
                //if (glar300Model.jump_yn.ToUpper() == "Y")
                //{
                //    footerBand1.NewPageAfter = true;
                //    footerBand1.ResetPageNumber = true;
                //}
                //else
                //{
                //    footerBand1.NewPageAfter = false;
                //    footerBand1.ResetPageNumber = false;
                //}

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 9
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            //DataSet ds;
            vw_invr337       invr337Model;
            StringBuilder    sbSql   = null;
            string           sqlBody = "";
            DataTable        dtIlaTb;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;

            List <SqlParameter> sqlParmList;
            List <Master>       resultList = null;

            try
            {
                invr337Model  = DrMaster.ToItem <vw_invr337>();
                resultList    = new List <Master>();
                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(invr337Model.ifa01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ifa_tb";
                    queryModel.ColumnName = "ifa01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ifa01"].DataType.Name;
                    queryModel.Value      = invr337Model.ifa01;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr337Model.ifa03))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ifa_tb";
                    queryModel.ColumnName = "ifa03";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ifa03"].DataType.Name;
                    queryModel.Value      = invr337Model.ifa03;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr337Model.ifa04))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ifa_tb";
                    queryModel.ColumnName = "ifa04";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ifa04"].DataType.Name;
                    queryModel.Value      = invr337Model.ifa04;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr337Model.ifa06))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ifa_tb";
                    queryModel.ColumnName = "ifa06";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ifa06"].DataType.Name;
                    queryModel.Value      = invr337Model.ifa04;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(invr337Model.ifa02_s))
                {
                    sbQuerySingle.AppendLine("AND ifa02>=@ifa02_s");
                    sqlParmList.Add(new SqlParameter("@ifa02_s", invr337Model.ifa02_s));
                }
                if (!GlobalFn.varIsNull(invr337Model.ifa02_e))
                {
                    sbQuerySingle.AppendLine("AND ifa02<=@ifa02_e");
                    sqlParmList.Add(new SqlParameter("@ifa02_s", invr337Model.ifa02_e));
                }

                if (invr337Model.doc_status != "0")
                {
                    if (invr337Model.doc_status == "1") //撥出在途
                    {
                        sbQuerySingle.AppendLine("AND ISNULL(ifa09,'N') = 'N'");
                    }
                    if (invr337Model.doc_status == "2") //撥入確認
                    {
                        sbQuerySingle.AppendLine("AND ifaconf = 'Y'");
                    }
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody = @"
                              SELECT 
                                ifa01,ifa02,ifa03,bec02 as ifa03_c ,
                                ifa04,beb03 AS ifa04_c,ifa05,ifa06,
                                ifa09,ifaconf,
                                ifb02,ifb03,ifb04,ifb05,'' as ifb05_str,ifb06,
                                bej03,ifb07,
                                ifb08,'' as ifb08_str,ifb09,ifb10,
                                ica03
                              FROM ifa_tb
                                    LEFT JOIN ifb_tb ON ifa01=ifb01
                                    LEFT JOIN bec_tb ON ifa03=bec01
                                    LEFT JOIN beb_tb ON ifa04=beb01
                                    LEFT JOIN bej_tb ON ifb06=bej01
                                    LEFT JOIN ica_tb ON ifb03=ica01
                              WHERE ifa00='2'
                                AND ifb01 IS NOT NULL
                                AND ifaconf='Y'
                                ";

                dtIlaTb           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray());
                dtIlaTb.TableName = "Master";
                if (dtIlaTb != null)
                {
                    resultList.AddRange(dtIlaTb.ToList <Master>());
                }

                if (resultList == null || resultList.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }

                foreach (Master masterModel in resultList)
                {
                    //數量處理
                    masterModel.ifb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ifb05); //數量
                    masterModel.ifb08_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ifb08); //數量
                }

                pReport.RegData("master", resultList);
                pReport.CacheAllData = true;

                pReport.Compile();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 10
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;
            }
        }
Ejemplo n.º 11
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;
            }
        }
Ejemplo n.º 12
0
        //回傳值 true.通過驗證 false.未通過驗證,
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            vw_admi611s detailModel;

            try
            {
                detailModel = DrMaster.ToItem <vw_admi611s>();
                #region 單頭-pick vw_admi611s
                if (e.Row.Table.Prefix.ToLower() == "vw_admi611s")
                {
                    switch (e.Column.ToLower())
                    {
                    case "ady03":       //程式代號
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            DrMaster["ady03_c"] = "";
                            return(true);
                        }
                        var adoModel = BoAdm.OfGetAdoModel(e.Value.ToString());
                        if (adoModel == null)
                        {
                            WfShowErrorMsg("無此程式代號,請確認!");
                            return(false);
                        }
                        if (adoModel.ado07.ToUpper() == "M")
                        {
                            WfShowErrorMsg("不可選擇目錄,請確認!");
                            return(false);
                        }
                        DrMaster["ady03_c"] = adoModel.ado02;
                        break;

                    case "ady04":
                        if (e.Value == null)
                        {
                            WfShowErrorMsg("欄位不可空白,請確認!");
                            return(true);
                        }
                        if (GlobalFn.isNullRet(e.Value, 0) < 0)
                        {
                            WfShowErrorMsg("欄位不可為負數,請確認!");
                            return(false);
                        }
                        break;

                    case "ady05":
                        if (e.Value == null)
                        {
                            WfShowErrorMsg("欄位不可空白,請確認!");
                            return(true);
                        }
                        if (GlobalFn.isNullRet(e.Value, 0) < 0)
                        {
                            WfShowErrorMsg("欄位不可為負數,請確認!");
                            return(false);
                        }
                        break;

                    case "ady06":
                        if (e.Value == null)
                        {
                            WfShowErrorMsg("欄位不可空白,請確認!");
                            return(true);
                        }
                        if (GlobalFn.isNullRet(e.Value, 0) < 0)
                        {
                            WfShowErrorMsg("欄位不可為負數,請確認!");
                            return(true);
                        }
                        break;

                    case "ady07":
                        if (e.Value == null)
                        {
                            WfShowErrorMsg("欄位不可空白,請確認!");
                            return(true);
                        }
                        if (GlobalFn.isNullRet(e.Value, 0) < 0)
                        {
                            WfShowErrorMsg("欄位不可為負數,請確認!");
                            return(true);
                        }
                        break;
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 13
0
        //回傳值 true.通過驗證 false.未通過驗證,會把值還原
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            int                  iChkCnts    = 0;
            vw_glat300_1         masterModel = null;
            vw_glat300_1s        detailModel = null;
            List <vw_glat300_1s> detailList  = null;
            gba_tb               gbaModel    = null;
            UltraGrid            uGrid       = null;
            UltraGridRow         uGridRow    = null;
            int                  ChkCnts     = 0;
            string               sql         = "";
            List <SqlParameter>  sqlParmList = null;

            try
            {
                masterModel = DrMaster.ToItem <vw_glat300_1>();
                #region 單身-vw_glat300_1s
                if (e.Row.Table.Prefix.ToLower() == "vw_glat300_1s")
                {
                    uGrid       = sender as UltraGrid;
                    uGridRow    = uGrid.ActiveRow;
                    detailModel = e.Row.ToItem <vw_glat300_1s>();
                    detailList  = e.Row.Table.ToList <vw_glat300_1s>();
                    var bb = TabDetailList[0].DtSource.ToList <vw_glat300_1s>();
                    switch (e.Column.ToLower())
                    {
                    case "is_pick":    //項次
                        e.Row["gfh09"] = 0;
                        if (e.Value.ToString() == "Y")
                        {
                            WfSetControlReadonly(uGridRow.Cells["gfh09"], false);
                        }
                        else
                        {
                            WfSetControlReadonly(uGridRow.Cells["gfh09"], true);
                            WfSetSumGfb09();
                        }
                        break;

                    case "gfh09":       //沖帳金額
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            WfShowErrorMsg("請輸入數字!");
                            return(false);
                        }
                        if (GlobalFn.isNullRet(e.Value, 0) < 0)
                        {
                            WfShowErrorMsg("金額不可小於0!");
                            return(false);
                        }
                        var sumGfh09 = detailList.Where(p => p.is_pick == "Y" && p.gfh09 >= 0)
                                       .Sum(p => p.gfh09);
                        if (masterModel.gfb07 < sumGfh09)
                        {
                            var bekModel = BoBas.OfGetBekModel(BaaModel.baa04);
                            WfShowErrorMsg(string.Format("輸入金額加總已超過{0},請檢核!",
                                                         GlobalFn.Round(masterModel.gfb07, bekModel.bek03).ToString())
                                           );
                            return(false);
                        }
                        //檢查 已沖+暫沖(DB)+輸入金額 是否有超過立帳金額
                        var availableMaxAmt = 0m;        //可輸入最高金額
                        var glat300aList    = _dtGlat300a.ToList <vw_glat300a>();
                        //可輸入金額=資料庫(立帳金額-暫沖)
                        availableMaxAmt = detailModel.gfg07 - detailModel.gfg08;
                        //可輸人金額 再減掉此傳票但不屬於該項次的金額加總
                        availableMaxAmt -= glat300aList.Where(p => p.gfh01 == detailModel.gfg01 && p.gfh02 == detailModel.gfg02 &&
                                                              p.gfh04 != masterModel.gfb02)
                                           .Sum(p => p.gfh09)
                        ;
                        //可輸入金額 再減掉資料庫中不屬於該傳票未過帳的金額加總
                        if (!GlobalFn.varIsNull(masterModel.gfb01))
                        {
                            sql         = @"SELECT SUM(gfh09) FROM gfh_tb
                                        WHERE gfhconf='N' AND gfh03<>@gfh03
                                          AND gfh01=@gfh01 AND gfh02=@gfh02
                                    ";
                            sqlParmList = new List <SqlParameter>();
                            sqlParmList.Add(new SqlParameter("@gfh01", detailModel.gfg01));
                            sqlParmList.Add(new SqlParameter("@gfh02", detailModel.gfg02));
                            sqlParmList.Add(new SqlParameter("@gfh03", masterModel.gfb01));
                            var sumTempGfh09 = GlobalFn.isNullRet(BoGla.OfGetFieldValue(sql, sqlParmList.ToArray()), 0m);
                            availableMaxAmt -= sumTempGfh09;
                        }

                        if (Convert.ToDecimal(e.Value) > availableMaxAmt)
                        {
                            var bekModel = BoBas.OfGetBekModel(BaaModel.baa04);
                            WfShowErrorMsg(string.Format("可輸入最大沖帳金額為{0} !",
                                                         GlobalFn.Round(availableMaxAmt, bekModel.bek03).ToString())
                                           );
                            return(false);
                        }
                        DrMaster["sum_gfh09"] = sumGfh09;
                        break;
                    }
                }
                #endregion
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 14
0
        public Result OfGetSga23(sga_tb sgaModel, out decimal sga23)
        {
            sga23 = 0;
            Result rtnResult = null;

            rtnResult         = new Result();
            rtnResult.Success = false;

            try
            {
                if (sgaModel == null)
                {
                    return(rtnResult);
                }
                rtnResult.Key1 = sgaModel.sga01;

                if (OfChkEbusinessPlateForm(sgaModel.sga03) == false)
                {
                    rtnResult.Message = "非出貨成本計算客戶!";
                    return(rtnResult);
                }

                switch (sgaModel.sga03)
                {
                case "C000002":    //蝦皮
                    sga23 = sgaModel.sga13t * 0.05m;
                    if (sgaModel.sga13t > 4490)
                    {
                        sga23 += 60;
                    }
                    break;

                case "C000003":    //露天-正中
                    sga23 = sgaModel.sga13t * 0.03m;
                    break;

                case "C000004":    //奇摩
                    sga23 = sgaModel.sga13t * 0.015m;
                    if (sgaModel.sga13t > 4990)
                    {
                        sga23 += 60;
                    }
                    break;

                case "C000005":                      //松果
                    sga23 = sgaModel.sga13t * 0.04m; //預設刷卡
                    //sga23 += 60;
                    break;

                case "C000006":    //蝦皮2
                    sga23 = sgaModel.sga13t * 0.05m;
                    break;

                case "C000007":    //露天-艾達
                    sga23 = sgaModel.sga13t * 0.03m;
                    break;
                }
                sga23 = GlobalFn.Round(sga23, 0);

                rtnResult.Success = true;
                return(rtnResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 15
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;
            }
        }
Ejemplo n.º 16
0
        protected override Boolean WfDisplayMode()
        {
            vw_stpi010 masterModel;

            try
            {
                if (FormEditMode == YREditType.NA)
                {
                    WfSetControlsReadOnlyRecursion(this, true);
                }
                else
                {
                    masterModel = DrMaster.ToItem <vw_stpi010>();

                    WfSetControlsReadOnlyRecursion(this, false);
                    WfSetControlReadonly(uGridMaster, true);//主表grid不可編輯
                    WfSetControlReadonly(new List <Control> {
                        ute_babcreu, ute_babcreg, udt_babcred
                    }, true);
                    WfSetControlReadonly(new List <Control> {
                        ute_babmodu, ute_babmodg, udt_babmodd
                    }, true);
                    WfSetControlReadonly(new List <Control> {
                        ute_babsecu, ute_babsecg
                    }, true);

                    WfSetControlReadonly(ute_bab04_c, true);

                    if (GlobalFn.varIsNull(masterModel.bab03))
                    {
                        WfSetControlReadonly(ute_bab04, true);
                    }
                    else
                    {
                        WfSetControlReadonly(ute_bab04, false);
                    }
                    ;

                    if (!GlobalFn.varIsNull(masterModel.bab04) &&
                        (masterModel.bab04 == "30" || masterModel.bab04 == "40")
                        )
                    {
                        WfSetControlReadonly(ute_bab09, false);
                    }
                    else
                    {
                        WfSetControlReadonly(ute_bab09, true);
                    }

                    if (FormEditMode == YREditType.修改)
                    {
                        WfSetControlReadonly(ute_bab01, true);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 17
0
        public List <Result> OfUndoGenVoucher(vw_carb351 pModel, string pSecurityString, UserInfo pLoginInfo)
        {
            List <Result>       rtnResultList = null;
            string              selectSql = "";
            string              updateGea = "", updateCea = "", updateCfa = "";
            string              deleteGfa = "", deleteGfb = "";
            string              strQueryRange = "", strQuerySingle = "";
            List <SqlParameter> sqlParmList = null;
            DataTable           dtGfa       = null;
            List <QueryInfo>    queryInfoList;
            QueryInfo           queryModel;
            cea_tb              ceaModel = null;
            gfa_tb              gfaModel = null;
            DataRow             drGea    = null;
            int    chkCnts = 0;
            string cac04   = "";

            try
            {
                _loginInfo = pLoginInfo;

                selectSql = @"
                            SELECT * FROM gfa_tb
                            WHERE gfa06='AR' AND gfaconf='N'
                        ";
                updateCea = @"UPDATE cea_tb 
                            SET cea29=NULL
                            WHERE cea29=@gfa01
                            ";
                updateCfa = @"UPDATE cfa_tb 
                            SET cfa12=NULL
                            WHERE cfa12=@gfa01
                            ";
                updateGea = @"UPDATE gea_tb 
                            SET gea06=NULL,
                                gea07=NULL
                            WHERE gea06=@gfa01
                            ";
                deleteGfa = @"DELETE FROM gfa_tb WHERE gfa01=@gfa01 ";
                deleteGfb = @"DELETE FROM gfb_tb WHERE gfb01=@gfb01 ";

                sqlParmList   = new List <SqlParameter>();
                queryInfoList = new List <QueryInfo>();

                #region range 處理
                if (!GlobalFn.varIsNull(pModel.gfa01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "gfa_tb";
                    queryModel.ColumnName = "gfa01";
                    queryModel.ColumnType = "string";
                    queryModel.Value      = pModel.gfa01;
                    queryInfoList.Add(queryModel);
                }

                sqlParmList   = new List <SqlParameter>();
                strQueryRange = WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single處理
                if (!GlobalFn.varIsNull(pModel.gfa02_s))
                {
                    sqlParmList.Add(new SqlParameter("@gfa02_s", pModel.gfa02_s));
                    strQuerySingle += string.Format(" AND gfa02>=@gfa02_s");
                }
                if (!GlobalFn.varIsNull(pModel.gfa02_e))
                {
                    sqlParmList.Add(new SqlParameter("@gfa02_e", pModel.gfa02_e));
                    strQuerySingle += string.Format(" AND gfa02<=@gfa02_e");
                }
                #endregion

                selectSql = string.Concat(selectSql, strQueryRange, strQuerySingle, pSecurityString);       //加入權限處理
                dtGfa     = OfGetDataTable(selectSql, sqlParmList.ToArray());
                if (dtGfa == null || dtGfa.Rows.Count == 0)
                {
                    return(null);
                }

                rtnResultList = new List <Result>();
                foreach (DataRow drGfa in dtGfa.Rows)
                {
                    gfaModel = drGfa.ToItem <gfa_tb>();
                    var result = new Result();
                    rtnResultList.Add(result);

                    //更新應收帳款或是收款沖帳
                    sqlParmList = new List <SqlParameter>();
                    sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01));
                    chkCnts = OfExecuteNonquery(updateCea, sqlParmList.ToArray());
                    if (chkCnts < 0)
                    {
                        result.Key1    = gfaModel.gfa01;
                        result.Message = "更新應收帳款失敗!";
                        continue;
                    }
                    else if (chkCnts == 0)    //更新收款單
                    {
                        sqlParmList = new List <SqlParameter>();
                        sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01));
                        chkCnts = OfExecuteNonquery(updateCfa, sqlParmList.ToArray());
                        if (chkCnts == 0)
                        {
                            result.Key1    = gfaModel.gfa01;
                            result.Message = "查無收款單可更新!";
                            continue;
                        }
                        else if (chkCnts <= 0)
                        {
                            result.Key1    = gfaModel.gfa01;
                            result.Message = "更新收款單失敗!";
                            continue;
                        }
                    }


                    //更新分錄底稿
                    sqlParmList = new List <SqlParameter>();
                    sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01));
                    if (OfExecuteNonquery(updateGea, sqlParmList.ToArray()) < 0)
                    {
                        result.Key1    = gfaModel.gfa01;
                        result.Message = "更新分錄底稿失敗!";
                        continue;
                    }
                    //刪除傳票單身
                    sqlParmList = new List <SqlParameter>();
                    sqlParmList.Add(new SqlParameter("@gfb01", gfaModel.gfa01));
                    if (OfExecuteNonquery(deleteGfb, sqlParmList.ToArray()) < 0)
                    {
                        result.Key1    = gfaModel.gfa01;
                        result.Message = "刪除傳票單身失敗!";
                        continue;
                    }

                    //刪除傳票單頭
                    sqlParmList = new List <SqlParameter>();
                    sqlParmList.Add(new SqlParameter("@gfa01", gfaModel.gfa01));
                    if (OfExecuteNonquery(deleteGfa, sqlParmList.ToArray()) < 0)
                    {
                        result.Key1    = gfaModel.gfa01;
                        result.Message = "刪除傳票單頭失敗!";
                        continue;
                    }

                    result.Key1    = gfaModel.gfa01;
                    result.Success = true;
                }


                return(rtnResultList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 18
0
        //回傳值 true.通過驗證 false.未通過驗證,
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            baa_tb     baaModel;
            vw_stpi010 masterModel;
            string     errMsg;

            try
            {
                baaModel    = BoBas.OfGetBaaModel();
                masterModel = DrMaster.ToItem <vw_stpi010>();
                #region 單頭-pick vw_stpi010
                if (e.Row.Table.Prefix.ToLower() == "vw_stpi010")
                {
                    switch (e.Column.ToLower())
                    {
                    case "bab01":    //單別
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (GlobalFn.isNullRet(baaModel.baa06.Value, 0) != GlobalFn.isNullRet(e.Value, "").Length)
                        {
                            errMsg = string.Format("單別限定長度為{0}碼", GlobalFn.isNullRet(baaModel.baa06, ""));
                            WfShowErrorMsg(errMsg);
                            return(false);
                        }
                        if (BoBas.OfChkBabPKValid(GlobalFn.isNullRet(e.Value, "")) == true)
                        {
                            WfShowErrorMsg("單別已存在,請檢核!");
                            return(false);
                        }
                        break;

                    case "bab03":    //模組別
                        e.Row["bab04"]   = "";
                        e.Row["bab04_c"] = "";
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        WfDisplayMode();
                        ute_bab04.Focus();
                        break;

                    case "bab04":    //單據性質
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            e.Row["bab04_c"] = "";
                            e.Row["bab09"]   = "";
                            WfSetControlReadonly(ute_bab09, true);
                            return(true);
                        }
                        if (GlobalFn.varIsNull(masterModel.bab03))
                        {
                            WfShowErrorMsg("請先輸入模組別!");
                            return(true);
                        }
                        if (BoAdm.OfChkAzf02Exists(masterModel.bab03, GlobalFn.isNullRet(e.Value, "")) == false)
                        {
                            WfShowErrorMsg("無此模組+單據性質!");
                            return(false);
                        }
                        if (e.Value.ToString() == "30" || e.Value.ToString() == "40")
                        {
                            WfSetControlReadonly(ute_bab09, false);
                            WfItemChkForceFocus(ute_bab09);
                        }
                        else
                        {
                            WfSetControlReadonly(ute_bab09, true);
                        }

                        e.Row["bab09"]   = "";
                        e.Row["bab04_c"] = BoAdm.OfGetAzf02(masterModel.bab03, GlobalFn.isNullRet(e.Value, ""));
                        break;

                    case "bab09":    //轉應收單別
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (GlobalFn.varIsNull(masterModel.bab04))
                        {
                            WfShowErrorMsg("請先輸入單據性質!");
                            return(false);
                        }
                        if (masterModel.bab04 == "30")
                        {
                            if (BoCar.OfChkCacPKValid(e.Value.ToString(), "car", "11") == false)
                            {
                                WfShowErrorMsg("無此單別!");
                                return(false);
                            }
                        }
                        else if (masterModel.bab04 == "40")
                        {
                            if (BoCar.OfChkCacPKValid(e.Value.ToString(), "car", "21") == false)
                            {
                                WfShowErrorMsg("無此單別!");
                                return(false);
                            }
                        }
                        break;
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 19
0
        //回傳值  false未通過驗證,還原輸入的值 true.未通過驗證,保留原值
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            int iTemp = 0;

            try
            {
                #region 單頭-pick vw_basi080
                if (e.Row.Table.Prefix.ToLower() == "vw_basi080")
                {
                    switch (e.Column.ToLower())
                    {
                        #region bek01 幣別資料check
                    case "bek01":
                        if (BoBas.OfChkBekPKExists(GlobalFn.isNullRet(e.Value.ToString(), "")) == true)
                        {
                            WfShowErrorMsg("幣別代碼已存在,請檢核!");
                            return(false);
                        }
                        break;
                        #endregion

                        #region bek03 單價小數位數
                    case "bek03":
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (int.TryParse(GlobalFn.isNullRet(e.Value, ""), out iTemp) == false)
                        {
                            WfShowErrorMsg("請輸入整數值");
                            return(false);
                        }
                        if (iTemp > 5 || iTemp < 0)
                        {
                            WfShowErrorMsg("需輸入範圍為0-5的整數!");
                            return(false);
                        }
                        break;
                        #endregion

                        #region bek03 小計/總計位數
                    case "bek04":
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (int.TryParse(GlobalFn.isNullRet(e.Value, ""), out iTemp) == false)
                        {
                            WfShowErrorMsg("請輸入整數值");
                            return(false);
                        }
                        if (iTemp > 5 || iTemp < 0)
                        {
                            WfShowErrorMsg("需輸入範圍為0-5的整數!");
                            return(false);
                        }
                        break;
                        #endregion
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 20
0
        protected override bool WfPickClickOnEditMode(object sender, string pColName, DataRow pDr)
        {
            vw_stpi010 masterModel;

            try
            {
                masterModel = DrMaster.ToItem <vw_stpi010>();
                //this.MsgInfoReturned = new MessageInfo();
                MessageInfo messageModel = new MessageInfo();
                #region 單頭-pick vw_stpi010
                if (pDr.Table.Prefix.ToLower() == "vw_stpi010")
                {
                    switch (pColName.ToLower())
                    {
                    case "bab04":    //單據性質
                        if (GlobalFn.varIsNull(masterModel.bab03))
                        {
                            WfShowErrorMsg("請先輸入模組別!");
                            return(false);
                        }
                        messageModel.ParamSearchList = new List <SqlParameter>();
                        messageModel.ParamSearchList.Add(new SqlParameter("@azf01", masterModel.bab03));
                        WfShowPickUtility("p_azf1", messageModel);
                        if (messageModel.Result == System.Windows.Forms.DialogResult.OK)
                        {
                            if (messageModel.DataRowList.Count > 0)
                            {
                                pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["azf02"], "");
                            }
                            else
                            {
                                pDr[pColName] = "";
                            }
                        }
                        //if (messageModel != null && messageModel.DataRowList.Count > 0)
                        //{
                        //    pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["azf02"], "");
                        //}
                        break;

                    case "bab09":    //帳款單別
                        if (GlobalFn.varIsNull(masterModel.bab04))
                        {
                            WfShowErrorMsg("請先輸入單據性質!");
                            return(false);
                        }
                        messageModel.ParamSearchList = new List <SqlParameter>();
                        messageModel.IsAutoQuery     = true;
                        messageModel.ParamSearchList.Add(new SqlParameter("@cac03", "car"));
                        if (masterModel.bab04 == "30")
                        {
                            messageModel.ParamSearchList.Add(new SqlParameter("@cac04", "11"));     //出貨
                        }
                        else if (masterModel.bab04 == "40")
                        {
                            messageModel.ParamSearchList.Add(new SqlParameter("@cac04", "21"));     //退貨折讓待抵
                        }
                        WfShowPickUtility("p_cac1", messageModel);
                        if (messageModel.Result == System.Windows.Forms.DialogResult.OK)
                        {
                            if (messageModel.DataRowList.Count > 0)
                            {
                                pDr[pColName] = GlobalFn.isNullRet(messageModel.DataRowList[0]["cac01"], "");
                            }
                            else
                            {
                                pDr[pColName] = "";
                            }
                        }
                        break;
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 21
0
        //回傳值  false未通過驗證,還原輸入的值 true.未通過驗證,保留原值
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            try
            {
                #region 單頭-pick vw_basi020
                if (e.Row.Table.Prefix.ToLower() == "vw_basi050")
                {
                    switch (e.Column.ToLower())
                    {
                        #region bef02 付款條件編號check
                    case "bef02":
                        if (BoBas.OfChkBefPKValid(GlobalFn.isNullRet(e.Row["bef01"].ToString(), ""), GlobalFn.isNullRet(e.Value, "")) == true)
                        {
                            WfShowErrorMsg("付款條件編號已存在,請檢核!");
                            return(false);
                        }
                        break;
                        #endregion
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 22
0
        protected override bool WfFormCheck()
        {
            vw_stpi010 masterModel = null;
            string     msg;
            Control    chkControl;
            string     chkColName;

            try
            {
                masterModel = DrMaster.ToItem <vw_stpi010>();
                #region 單頭資料檢查
                chkColName = "bab01";
                chkControl = ute_bab01;
                if (GlobalFn.varIsNull(masterModel.bab01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab02";
                chkControl = ute_bab02;
                if (GlobalFn.varIsNull(masterModel.bab02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab03";
                chkControl = ucb_bab03;
                if (GlobalFn.varIsNull(masterModel.bab03))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab04";
                chkControl = ute_bab04;
                if (GlobalFn.varIsNull(masterModel.bab04))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab05";
                chkControl = ucx_bab05;
                if (GlobalFn.varIsNull(masterModel.bab05))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab06";
                chkControl = ucx_bab06;
                if (GlobalFn.varIsNull(masterModel.bab06))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "bab07";
                chkControl = ucx_bab07;
                if (GlobalFn.varIsNull(masterModel.bab07))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 23
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            //DataSet ds;
            vw_manr311    manr311Model;
            StringBuilder sbSql   = null;
            string        sqlBody = "";
            DataTable     dtMaster;
            List <YR.ERP.DAL.YRModel.Reports.Man.Manr311.Master> masterList;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;

            List <SqlParameter> sqlParmList;

            try
            {
                if (Vw_Manr311 != null) //他窗引用時
                {
                    manr311Model = Vw_Manr311;
                }
                else
                {
                    manr311Model = DrMaster.ToItem <vw_manr311>();
                }

                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(manr311Model.mfa01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "mfa_tb";
                    queryModel.ColumnName = "mfa01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["mfa01"].DataType.Name;
                    queryModel.Value      = manr311Model.mfa01;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(manr311Model.mfa03))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "mfa_tb";
                    queryModel.ColumnName = "mfa03";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["mfa03"].DataType.Name;
                    queryModel.Value      = manr311Model.mfa03;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList = new List <SqlParameter>();

                if (!GlobalFn.varIsNull(manr311Model.mfa06))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "mfa_tb";
                    queryModel.ColumnName = "mfa06";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["mfa06"].DataType.Name;
                    queryModel.Value      = manr311Model.mfa06;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(manr311Model.mfa02_s))
                {
                    sbQuerySingle.AppendLine("AND mfa02>=@mfa02_s");
                    sqlParmList.Add(new SqlParameter("@mfa02_s", manr311Model.mfa02_s));
                }
                if (!GlobalFn.varIsNull(manr311Model.mfa02_e))
                {
                    sbQuerySingle.AppendLine("AND mfa02<=@mfa02_e");
                    sqlParmList.Add(new SqlParameter("@mfa02_e", manr311Model.mfa02_e));
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody            = @"SELECT 
	                            mfa00,mfa01,mfa02,mfa03,mfa04,mfa05,
	                            mfa06,mfa07,mfa08,
                                bab02 as mfa01_c,
                                pca02 as mfa03_c,
	                            bec02 as mfa04_c,beb02 as mfa05_c,
	                            mfb02,mfb03,mfb04,mfb05,mfb06,
	                            mfb07,mfb09,
                                ica.ica03 as ica03,
                                bej.bej03 as bej03,
                                '' as mfb05_str,
                                pcb03,pcb04,pcb06,pcb07
                            FROM mfa_tb   
                                LEFT JOIN mfb_tb On mfa01=mfb01
	                            LEFT JOIN baa_tb ON 1=1	
	                            LEFT JOIN bab_tb ON substring(mfa01,1,baa06)=bab01
	                            LEFT JOIN pca_tb ON mfa03=pca01	--廠商
	                            LEFT JOIN bec_tb ON mfa04=bec01	--員工
	                            LEFT JOIN beb_tb ON mfa05=beb01	--部門
                                LEFT JOIN ica_tb ica ON mfb03=ica.ica01
                                LEFT JOIN bej_tb bej ON mfb06=bej.bej01
                                LEFT JOIN pcb_tb ON mfa03=pcb01 and mfa07=pcb02
                            WHERE 1=1 
                                AND mfaconf='Y'
                                AND mfa00='2'
                           ";
                dtMaster           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray());
                dtMaster.TableName = "Master";

                if (dtMaster == null || dtMaster.Rows.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }

                masterList = dtMaster.ToList <Master>();
                foreach (Master masterModel in masterList)
                {
                    masterModel.mfb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.mfb05);//子件數量
                }

                pReport.RegData(dtMaster);
                pReport.RegData("Master", masterList);
                pReport.CacheAllData = true;
                //處理排序
                StiDataBand stiDataBand1 = (StiDataBand)pReport.GetComponents()["DataBand1"];
                switch (manr311Model.order_by)
                {
                case "1":    //1.依出庫日期
                    stiDataBand1.Sort = new string[] { "ASC", "mfa02" };
                    break;

                case "2":    //2.依廠商
                    stiDataBand1.Sort = new string[] { "ASC", "mfa03" };
                    break;
                }
                //處理跳頁
                StiGroupFooterBand grouperBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"];
                if (manr311Model.jump_yn.ToUpper() == "Y")
                {
                    grouperBand1.NewPageAfter    = true;
                    grouperBand1.ResetPageNumber = true;
                }
                else
                {
                    grouperBand1.NewPageAfter    = false;
                    grouperBand1.ResetPageNumber = false;
                }

                pReport.Compile();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 24
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            vw_purr500       purr500Model;
            StringBuilder    sbSql      = null;
            string           sqlBody    = "";
            string           sqlOrderBy = "";
            DataTable        dtMaster;
            List <Master>    masterList;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;

            List <SqlParameter> sqlParmList;

            try
            {
                if (Vw_Purr500 != null) //他窗引用時
                {
                    purr500Model = Vw_Purr500;
                }
                else
                {
                    purr500Model = DrMaster.ToItem <vw_purr500>();
                }

                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(purr500Model.pha01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "pha_tb";
                    queryModel.ColumnName = "pha01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["pha01"].DataType.Name;
                    queryModel.Value      = purr500Model.pha01;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(purr500Model.pha03))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "pha_tb";
                    queryModel.ColumnName = "pha03";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["pha03"].DataType.Name;
                    queryModel.Value      = purr500Model.pha03;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(purr500Model.pha02_s))
                {
                    sbQuerySingle.AppendLine("AND pha02>=@pha02_s");
                    sqlParmList.Add(new SqlParameter("@pha02_s", purr500Model.pha02_s));
                }
                if (!GlobalFn.varIsNull(purr500Model.pha02_e))
                {
                    sbQuerySingle.AppendLine("AND pha02<=@pha02_e");
                    sqlParmList.Add(new SqlParameter("@pha02_e", purr500Model.pha02_e));
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody = @"SELECT pha_tb.*,
                                pca02 as pha03_c,
                                bec02 as pha04_c,
                                beb02 as pha05_c,
                                bab02 as pha01_c,
                                bea03,bea04,bea05,
                                phb02,phb03,phb04,phb05,phb06,
                                phb09,phb10,phb10t,
                                phb16,
                                ica03,
                                bej03
                            FROM pha_tb                                
                                LEFT JOIN phb_tb ON pha01=phb01
	                            LEFT JOIN pca_tb ON pha03=pca01	--廠商
	                            LEFT JOIN bec_tb ON pha04=bec01	--員工
	                            LEFT JOIN beb_tb ON pha05=beb01	--部門
	                            LEFT JOIN baa_tb ON 1=1	
	                            LEFT JOIN bab_tb ON substring(pha01,1,baa06)=bab01
                                LEFT JOIN bea_tb ON phacomp=beacomp
                                LEFT JOIN ica_tb ON phb03=ica01
                                LEFT JOIN bej_tb ON phb03=bej01
                            WHERE 1=1 
                                AND phaconf='Y'
                           ";
                //處理排序
                switch (purr500Model.order_by)
                {
                case "1":    //1.依出貨日期
                    sqlOrderBy = " ORDER BY pha02";
                    break;

                case "2":    //2.依客戶
                    sqlOrderBy = " ORDER BY pha03";
                    break;
                }
                dtMaster           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray());
                dtMaster.TableName = "Master";

                if (dtMaster == null || dtMaster.Rows.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }
                masterList = dtMaster.ToList <Master>(true);
                foreach (Master masterModel in masterList)
                {
                    //處理金額
                    if (!GlobalFn.varIsNull(masterModel.pha10))
                    {
                        var bekModel = BoBas.OfGetBekModel(masterModel.pha10);
                        if (bekModel != null)
                        {
                            //單頭
                            masterModel.pha13_str  = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13);
                            masterModel.pha13t_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13t);
                            masterModel.pha13g_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.pha13g);
                            //單身
                            masterModel.phb09_str  = string.Format("{0:N" + bekModel.bek03 + "}", masterModel.phb09);
                            masterModel.phb10_str  = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.phb10);
                            masterModel.phb10t_str = string.Format("{0:N" + bekModel.bek04 + "}", masterModel.phb10t);
                        }
                    }

                    masterModel.phb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.phb05);//數量
                }

                pReport.RegData("Master", masterList);
                pReport.CacheAllData = true;
                ////處理跳頁
                StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"];
                if (purr500Model.jump_yn.ToUpper() == "Y")
                {
                    footerBand1.NewPageAfter    = true;
                    footerBand1.ResetPageNumber = true;
                }
                else
                {
                    footerBand1.NewPageAfter    = false;
                    footerBand1.ResetPageNumber = false;
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 25
0
        protected override bool WfFormCheck()
        {
            vw_admi600 admi600Model = null;
            string     msg;
            Control    chkControl;
            string     chkColName;

            try
            {
                admi600Model = DrMaster.ToItem <vw_admi600>();
                #region 單頭資料檢查
                #region ado01 程式代號
                chkColName = "ado01";
                chkControl = ute_ado01;
                if (GlobalFn.varIsNull(admi600Model.ado01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                //檢查是否重覆
                if (FormEditMode == YREditType.新增)
                {
                    if (BoAdm.OfChkAdoPKExists(admi600Model.ado01) == true)
                    {
                        this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                        chkControl.Focus();
                        msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "已存在,請檢查!";
                        errorProvider.SetError(chkControl, msg);
                        WfShowErrorMsg(msg);
                        return(false);
                    }
                }

                #endregion

                chkColName = "ado02";       //程式名稱
                chkControl = ute_ado02;
                if (GlobalFn.varIsNull(admi600Model.ado02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado07";       //程式類別 P.程式 M.menu
                chkControl = ucb_ado07;
                if (GlobalFn.varIsNull(admi600Model.ado07))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado03";       //組件dll
                chkControl = ute_ado03;
                if (admi600Model.ado07 == "P" && GlobalFn.varIsNull(admi600Model.ado03))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado04";       //CLASS名稱
                chkControl = ute_ado04;
                if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado04))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado05";       //CRUD資料表
                chkControl = ute_ado05;
                if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado05))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado06";       //使用view名稱
                chkControl = ute_ado06;
                if ((admi600Model.ado07 == "P" || admi600Model.ado07 == "R") && GlobalFn.varIsNull(admi600Model.ado06))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "ado10";       //報表名稱
                chkControl = ute_ado06;
                if ((admi600Model.ado09 == "Y") && GlobalFn.varIsNull(admi600Model.ado09))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 26
0
        //回傳值 true.通過驗證 false.未通過驗證,
        protected override bool WfItemCheck(object sender, ItemCheckInfo e)
        {
            vw_stpi030s        detailModel;
            List <vw_stpi030s> detailList;
            int iChkCnts = 0;

            try
            {
                #region 單頭-pick vw_stpi030
                if (e.Row.Table.Prefix.ToLower() == "vw_stpi030")
                {
                    switch (e.Column.ToLower())
                    {
                    case "sbb01":    //銷售取價代號
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        if (BoStp.OfChkSbbPKExists(GlobalFn.isNullRet(e.Value, "")) == true)
                        {
                            WfShowErrorMsg("採購取價代號已存在,請檢核!");
                            return(false);
                        }
                        break;
                    }
                }
                #endregion

                #region 單身-pick vw_stpi030s
                if (e.Row.Table.Prefix.ToLower() == "vw_stpi030s")
                {
                    detailModel = e.Row.ToItem <vw_stpi030s>();
                    detailList  = e.Row.Table.ToList <vw_stpi030s>();
                    switch (e.Column.ToLower())
                    {
                    case "sbc03":    //取價類型
                        if (GlobalFn.varIsNull(e.Value))
                        {
                            return(true);
                        }
                        iChkCnts = detailList.Where(p => p.sbc02 != detailModel.sbc02)
                                   .Where(p => p.sbc03 == e.Value.ToString())
                                   .Count();
                        if (iChkCnts > 0)
                        {
                            WfShowErrorMsg("取價類型不得重覆!");
                            return(false);
                        }
                        break;

                    case "sbc04":    //取價順序
                        if (GlobalFn.varIsNull(e.Value) || GlobalFn.isNullRet(e.Value, 0) == 0)
                        {
                            return(true);
                        }
                        iChkCnts = detailList.Where(p => p.sbc02 != detailModel.sbc02)
                                   .Where(p => p.sbc04 == Convert.ToInt16(e.Value))
                                   .Count();
                        if (iChkCnts > 0)
                        {
                            WfShowErrorMsg("取價順序不得重覆!");
                            return(false);
                        }
                        break;
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 27
0
        /* 刪除時
         * 1.刪除目錄代碼(adm_tb),遞迴考慮
         * 2.權限(add_tb)
         * 3.流程圖(ady_tb)
         * 4.程式畫面(aza_tb) 先不刪,有可能共用
         *
         */
        protected override bool WfDeleteAppenUpdate(DataRow pDr)
        {
            StringBuilder       sbSql;
            List <SqlParameter> sqlParmList;
            int        chkCnts = 0;
            vw_admi600 admi600Model;

            try
            {
                admi600Model = pDr.ToItem <vw_admi600>();
                var sbMsg = new StringBuilder();
                sbMsg.AppendLine("是否同步刪除以下資料?");
                sbMsg.AppendLine("1.目錄代碼(adm_tb)");
                sbMsg.AppendLine("2.權限(add_tb)");
                sbMsg.AppendLine("3.流程圖(ady_tb)");
                var result = WfShowConfirmMsg(sbMsg.ToString(), MessageBoxButtons.YesNoCancel);
                if (result == DialogResult.Cancel)
                {
                    return(false);
                }
                if (result == DialogResult.No)
                {
                    return(true);
                }

                #region 刪除目錄權限--需處理遞迴
                //先處理 對應到adm01的
                var admList = new List <adm_tb>();
                WfGetAdmListRecursive(admi600Model.ado01, admList);

                if (admList != null && admList.Count > 0)
                {
                    sbSql = new StringBuilder();
                    sbSql.AppendLine("DELETE FROM adm_tb");
                    sbSql.AppendLine("WHERE adm01=@adm01");
                    sbSql.AppendLine("  AND adm02=@adm02");
                    foreach (adm_tb admModel in admList)
                    {
                        sqlParmList = new List <SqlParameter>();
                        sqlParmList.Add(new SqlParameter("@adm01", admModel.adm01));
                        sqlParmList.Add(new SqlParameter("@adm02", admModel.adm02));

                        BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray());
                    }
                }
                //再處理對應到adm02的
                sbSql = new StringBuilder();
                sbSql.AppendLine("DELETE FROM adm_tb");
                sbSql.AppendLine("WHERE adm02=@adm02");
                sqlParmList = new List <SqlParameter>();
                sqlParmList.Add(new SqlParameter("@adm02", admi600Model.ado01));
                BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray());
                #endregion

                #region 刪除角色權限
                sbSql = new StringBuilder();
                sbSql.AppendLine("SELECT COUNT(1) FROM add_tb");
                sbSql.AppendLine("WHERE add02=@add02");
                sqlParmList = new List <SqlParameter>();
                sqlParmList.Add(new SqlParameter("@add02", admi600Model.ado01));
                chkCnts = GlobalFn.isNullRet(BoAdm.OfGetFieldValue(sbSql.ToString(), sqlParmList.ToArray()), 0);
                if (chkCnts > 0)
                {
                    sbSql = new StringBuilder();
                    sbSql.AppendLine("DELETE FROM add_tb");
                    sbSql.AppendLine("WHERE add02=@add02");
                    sqlParmList = new List <SqlParameter>();
                    sqlParmList.Add(new SqlParameter("@add02", admi600Model.ado01));
                    if (BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray()) < 0)
                    {
                        WfShowErrorMsg("刪除權限資料檔(add_tb)失敗!");
                        return(false);
                    }
                }
                #endregion

                #region 刪除流程圖
                sbSql = new StringBuilder();
                sbSql.AppendLine("DELETE FROM ady_tb");
                sbSql.AppendLine("WHERE ady03=@ady03");
                sqlParmList = new List <SqlParameter>();
                sqlParmList.Add(new SqlParameter("@ady03", AdoModel.ado01));
                BoAdm.OfExecuteNonquery(sbSql.ToString(), sqlParmList.ToArray());
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 28
0
        protected override bool WfFormCheck()
        {
            vw_stpi030  masterModel = null;
            vw_stpi030s detailModel = null;
            UltraGrid   uGrid;
            string      msg;
            Control     chkControl;
            string      chkColName;
            int         iChkDetailTab;

            try
            {
                masterModel = DrMaster.ToItem <vw_stpi030>();
                #region 單頭資料檢查
                chkColName = "sbb01";
                chkControl = ute_sbb01;
                if (GlobalFn.varIsNull(masterModel.sbb01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "sbb02";
                chkControl = ute_sbb02;
                if (GlobalFn.varIsNull(masterModel.sbb02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                #region 單身資料檢查
                iChkDetailTab = 0;
                uGrid         = TabDetailList[iChkDetailTab].UGrid;
                foreach (DataRow drTemp in TabDetailList[iChkDetailTab].DtSource.Rows)
                {
                    if (drTemp.RowState == DataRowState.Unchanged)
                    {
                        continue;
                    }

                    detailModel = drTemp.ToItem <vw_stpi030s>();
                    #region sbc03-取價類型
                    chkColName = "sbc03";
                    if (GlobalFn.varIsNull(detailModel.sbc03))
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "不可為空白";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }
                    #endregion

                    #region sbc04-順序
                    chkColName = "sbc04";
                    if (GlobalFn.varIsNull(detailModel.sbc04) || GlobalFn.isNullRet(detailModel.sbc04, 0) < 0)
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "應大於0";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }
                    #endregion
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 29
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            vw_invr302       invr302Model;
            StringBuilder    sbSql      = null;
            string           sqlBody    = "";
            string           sqlOrderBy = "";
            DataTable        dtMaster;
            List <Master>    masterList;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;

            List <SqlParameter> sqlParmList;

            try
            {
                if (Vw_Invr302 != null) //他窗引用時
                {
                    invr302Model = Vw_Invr302;
                }
                else
                {
                    invr302Model = DrMaster.ToItem <vw_invr302>();
                }

                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(invr302Model.iga01))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "iga_tb";
                    queryModel.ColumnName = "iga01";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["iga01"].DataType.Name;
                    queryModel.Value      = invr302Model.iga01;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(invr302Model.iga02_s))
                {
                    sbQuerySingle.AppendLine("AND iga02>=@iga02_s");
                    sqlParmList.Add(new SqlParameter("@iga02_s", invr302Model.iga02_s));
                }
                if (!GlobalFn.varIsNull(invr302Model.iga02_e))
                {
                    sbQuerySingle.AppendLine("AND iga02<=@iga02_e");
                    sqlParmList.Add(new SqlParameter("@iga02_e", invr302Model.iga02_e));
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody            = @"SELECT iga_tb.*,
                                bec02 as iga03_c,
                                beb02 as iga04_c,
                                bab02 as iga01_c,
                                igb02,igb03,igb04,igb05,igb06,
                                igb09,igb10,
                                ica03
                            FROM iga_tb                                
                                LEFT JOIN igb_tb ON iga01=igb01
	                            LEFT JOIN bec_tb ON iga03=bec01	--員工
	                            LEFT JOIN beb_tb ON iga04=beb01	--部門
	                            LEFT JOIN baa_tb ON 1=1	
	                            LEFT JOIN bab_tb ON substring(iga01,1,baa06)=bab01
                                LEFT JOIN ica_tb ON igb03=ica01
                            WHERE 1=1 
                                AND igaconf='Y'
                                AND iga00='2'
                           ";
                dtMaster           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere, sqlOrderBy), sqlParmList.ToArray());
                dtMaster.TableName = "Master";

                if (dtMaster == null || dtMaster.Rows.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }
                masterList = dtMaster.ToList <Master>(true);
                foreach (Master masterModel in masterList)
                {
                    var bejModel = BoBas.OfGetBejModel(masterModel.igb06);
                    if (bejModel != null)
                    {
                        masterModel.igb05_str = string.Format("{0:N" + bejModel.bej03 + "}", masterModel.igb05);//數量
                    }
                    else
                    {
                        masterModel.igb05_str = masterModel.igb05.ToString();
                    }
                }

                pReport.RegData("Master", masterList);
                pReport.CacheAllData = true;
                ////處理跳頁
                StiGroupFooterBand footerBand1 = (StiGroupFooterBand)pReport.GetComponents()["GroupFooterBand1"];
                if (invr302Model.jump_yn.ToUpper() == "Y")
                {
                    footerBand1.NewPageAfter    = true;
                    footerBand1.ResetPageNumber = true;
                }
                else
                {
                    footerBand1.NewPageAfter    = false;
                    footerBand1.ResetPageNumber = false;
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 30
0
        protected override bool WfExecReport(Stimulsoft.Report.StiReport pReport)
        {
            //DataSet ds;
            vw_invr410       invr410Model;
            StringBuilder    sbSql   = null;
            string           sqlBody = "";
            DataTable        dtIlaTb;
            List <QueryInfo> queryInfoList;
            QueryInfo        queryModel;
            string           strQueryRange, strWhere;
            StringBuilder    sbQuerySingle = null;

            List <SqlParameter> sqlParmList;
            List <Master>       resultList = null;

            try
            {
                invr410Model  = DrMaster.ToItem <vw_invr410>();
                resultList    = new List <Master>();
                queryInfoList = new List <QueryInfo>();
                #region range 處理
                if (!GlobalFn.varIsNull(invr410Model.ila03))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ila_tb";
                    queryModel.ColumnName = "ila03";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ila03"].DataType.Name;
                    queryModel.Value      = invr410Model.ila03;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr410Model.ila04))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ila_tb";
                    queryModel.ColumnName = "ila04";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ila04"].DataType.Name;
                    queryModel.Value      = invr410Model.ila04;
                    queryInfoList.Add(queryModel);
                }
                if (!GlobalFn.varIsNull(invr410Model.ila05))
                {
                    queryModel            = new QueryInfo();
                    queryModel.TableName  = "ila_tb";
                    queryModel.ColumnName = "ila05";
                    queryModel.ColumnType = TabMaster.DtSource.Columns["ila05"].DataType.Name;
                    queryModel.Value      = invr410Model.ila05;
                    queryInfoList.Add(queryModel);
                }
                sqlParmList   = new List <SqlParameter>();
                strQueryRange = BoMaster.WfGetQueryString(queryInfoList, out sqlParmList);
                #endregion

                #region single 處理
                sbQuerySingle = new StringBuilder();
                if (!GlobalFn.varIsNull(invr410Model.ila02_s))
                {
                    sbQuerySingle.AppendLine("AND ila02>=@ila02_s");
                    sqlParmList.Add(new SqlParameter("@ila02_s", invr410Model.ila02_s));
                }
                if (!GlobalFn.varIsNull(invr410Model.ila02_e))
                {
                    sbQuerySingle.AppendLine("AND ila02<=@ila02_e");
                    sqlParmList.Add(new SqlParameter("@ila02_e", invr410Model.ila02_e));
                }

                if (invr410Model.conf_yn != "0")
                {
                    if (invr410Model.conf_yn == "1")
                    {
                        sbQuerySingle.AppendLine("AND ilaconf = 'Y'");
                    }
                    if (invr410Model.conf_yn == "2")
                    {
                        sbQuerySingle.AppendLine("AND ilaconf = 'N'");
                    }
                }

                if (invr410Model.close_yn != "0")
                {
                    if (invr410Model.close_yn == "1")//未結案
                    {
                        sbQuerySingle.AppendLine("AND (ilb05-ilb15) >0 ");
                    }
                    if (invr410Model.close_yn == "2")//已結案
                    {
                        sbQuerySingle.AppendLine("AND (ilb05-ilb15) <=0  ");
                    }
                }
                #endregion

                strWhere = strQueryRange + " " + sbQuerySingle.ToString();
                var strSecurity = WfGetSecurityString();        //取得權限字串
                if (!GlobalFn.varIsNull(strSecurity))
                {
                    strWhere += strSecurity;
                }

                //取得單頭
                sqlBody = @"
                              SELECT 
                                ila01,ila02,ila03,sca03 as ila03_c ,
                                ilb02,ila04,bec02 AS ila04_c,ila05,beb03 AS ila05_c,
                                ilb03,ilb04,ilb05,'' as ilb05_str,ilb06,
                                bej03,ilb11,
                                ilb15,'' as ilb15_str,
                                ilb16
                              FROM ila_tb
                                    LEFT JOIN ilb_tb ON ila01=ilb01
                                    LEFT JOIN sca_tb ON ila03=sca01
                                    LEFT JOIN bec_tb ON ila04=bec01
                                    LEFT JOIN beb_tb ON ila05=beb01
                                    LEFT JOIN bej_tb ON ilb06=bej01
                              WHERE ilaconf='Y'
                                AND ilb01 IS NOT NULL
                                ";

                dtIlaTb           = BoMaster.OfGetDataTable(string.Concat(sqlBody, strWhere), sqlParmList.ToArray());
                dtIlaTb.TableName = "Master";
                if (dtIlaTb != null)
                {
                    resultList.AddRange(dtIlaTb.ToList <Master>());
                }

                if (resultList == null || resultList.Count == 0)
                {
                    WfShowErrorMsg("查無資料,請重新過濾條件!");
                    return(false);
                }

                foreach (Master masterModel in resultList)
                {
                    //數量處理
                    masterModel.ilb05_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ilb05); //數量
                    masterModel.ilb15_str = string.Format("{0:N" + masterModel.bej03 + "}", masterModel.ilb15); //數量
                }

                pReport.RegData("master", resultList);
                pReport.CacheAllData = true;
                //處理排序--這裡利用group來達到
                StiGroupHeaderBand stiGroupHeaderBand1 = (StiGroupHeaderBand)pReport.GetComponents()["GroupHeaderBand1"];
                switch (invr410Model.order_by)
                {
                case "1":    //1.依出庫日期
                    stiGroupHeaderBand1.Condition.Value = "{Master.ila02}";
                    break;

                case "2":    //2.依客戶
                    stiGroupHeaderBand1.Condition.Value = "{Master.ila03}";
                    break;

                case "3":    //3.依部門
                    stiGroupHeaderBand1.Condition.Value = "{Master.ila05}";
                    break;

                case "4":    //4.依業務
                    stiGroupHeaderBand1.Condition.Value = "{Master.ila04}";
                    break;

                case "5":    //4.依出庫倉
                    stiGroupHeaderBand1.Condition.Value = "{Master.ila11}";
                    break;
                }
                //處理跳頁

                StiDataBand dataBand1 = (StiDataBand)pReport.GetComponents()["DataBand1"];
                if (invr410Model.jump_yn.ToUpper() == "Y")
                {
                    dataBand1.NewPageAfter    = true;
                    dataBand1.ResetPageNumber = true;
                }
                else
                {
                    dataBand1.NewPageAfter    = false;
                    dataBand1.ResetPageNumber = false;
                }

                pReport.Compile();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }