示例#1
0
        public sga_tb OfGetSgaModel(string pSga01)
        {
            DataRow drSga    = null;
            sga_tb  rtnModel = null;

            try
            {
                drSga = OfGetSgaDr(pSga01);
                if (drSga == null)
                {
                    return(null);
                }
                rtnModel = drSga.ToItem <sga_tb>();

                return(rtnModel);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        //調整sdd_tb 產品客戶價格表
        public bool OfInsUpdSddTb(sga_tb pSgaModel, sgb_tb pSgbModel, UserInfo pLoginInfo, out string pErrMsg)
        {
            sdd_tb sddModel = null;
            int    iChkCnts = 0;
            List <SqlParameter> sqlParmList;
            StringBuilder       sbSql;

            pErrMsg = "";
            DataTable dtSdd;
            DataRow   drSdd;

            try
            {
                sddModel       = new sdd_tb();
                sddModel.sdd01 = pSgbModel.sgb03; //料號
                sddModel.sdd02 = pSgaModel.sga03; //客戶編號
                sddModel.sdd03 = pSgaModel.sga10; //幣別
                sddModel.sdd04 = pSgaModel.sga02; //最近訂單日期
                sddModel.sdd05 = pSgbModel.sgb06; //銷售單位
                sddModel.sdd06 = pSgaModel.sga06; //稅別
                sddModel.sdd07 = pSgaModel.sga07; //稅率
                sddModel.sdd08 = pSgaModel.sga08; //含稅否
                sddModel.sdd09 = pSgbModel.sgb09; //銷售單價
                sddModel.sdd10 = pSgbModel.sgb05; //最近訂單數量
                if (pSgaModel.sga08 == "Y")       //最近訂單金額
                {
                    sddModel.sdd11 = pSgbModel.sgb10t;
                }
                else
                {
                    sddModel.sdd11 = pSgbModel.sgb10;
                }

                sddModel.sdd12   = "";
                sddModel.sdd13   = "";
                sddModel.sdd14   = "";
                sddModel.sdd15   = "";
                sddModel.sdd16   = "";
                sddModel.sdd17   = "";
                sddModel.sdd18   = "";
                sddModel.sdd19   = "";
                sddModel.sdd20   = "";
                sddModel.sddcreu = "";
                sddModel.sddcreg = "";
                sddModel.sddcred = null;

                OfCreateDao("sdd_tb", "*", "");
                sbSql = new StringBuilder();
                sbSql.AppendLine("SELECT * FROM sdd_tb");
                sbSql.AppendLine("WHERE sdd01=@sdd01");
                sbSql.AppendLine("AND sdd02=@sdd02");
                sbSql.AppendLine("AND sdd03=@sdd03");

                sqlParmList = new List <SqlParameter>()
                {
                    new SqlParameter("@sdd01", pSgbModel.sgb03),
                    new SqlParameter("@sdd02", pSgaModel.sga03),
                    new SqlParameter("@sdd03", pSgaModel.sga10)
                };
                dtSdd    = OfGetDataTable(sbSql.ToString(), sqlParmList.ToArray());
                iChkCnts = dtSdd.Rows.Count;
                if (iChkCnts == 0)//新增
                {
                    drSdd = dtSdd.NewRow();
                    dtSdd.Rows.Add(drSdd);
                }
                else
                {
                    drSdd            = dtSdd.Rows[0];
                    sddModel.sddmodu = "";
                    sddModel.sddmodg = "";
                    sddModel.sddmodd = null;
                    sddModel.sddsecu = "";
                    sddModel.sddsecg = "";
                }

                drSdd["sdd01"] = sddModel.sdd01;
                drSdd["sdd02"] = sddModel.sdd02;
                drSdd["sdd03"] = sddModel.sdd03;
                drSdd["sdd04"] = sddModel.sdd04;
                drSdd["sdd05"] = sddModel.sdd05;
                drSdd["sdd06"] = sddModel.sdd06;
                drSdd["sdd07"] = sddModel.sdd07;
                drSdd["sdd08"] = sddModel.sdd08;
                drSdd["sdd09"] = sddModel.sdd09;
                drSdd["sdd10"] = sddModel.sdd10;
                drSdd["sdd11"] = sddModel.sdd11;
                drSdd["sdd12"] = sddModel.sdd12;
                drSdd["sdd13"] = sddModel.sdd13;
                drSdd["sdd14"] = sddModel.sdd14;
                drSdd["sdd15"] = sddModel.sdd15;
                drSdd["sdd16"] = sddModel.sdd16;
                drSdd["sdd17"] = sddModel.sdd17;
                drSdd["sdd18"] = sddModel.sdd18;
                drSdd["sdd19"] = sddModel.sdd19;
                drSdd["sdd20"] = sddModel.sdd20;
                if (iChkCnts == 0)    //新增
                {
                    drSdd["sddcreu"] = pLoginInfo.UserNo;
                    drSdd["sddcreg"] = pLoginInfo.DeptNo;
                    drSdd["sddcred"] = OfGetToday();
                    if (OfUpdate(dtSdd) != 1)
                    {
                        pErrMsg = "新增產品客戶價格表(sdd_tb)失敗!";
                        return(false);
                    }
                }
                else
                {
                    drSdd["sddmodu"] = pLoginInfo.UserNo;
                    drSdd["sddmodg"] = pLoginInfo.DeptNo;
                    drSdd["sddsecu"] = pLoginInfo.UserNo;
                    drSdd["sddsecg"] = pLoginInfo.GroupNo;
                    if (OfUpdate(dtSdd) != 1)
                    {
                        pErrMsg = "異動產品客戶價格表(sdd_tb)失敗!";
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
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;
            }
        }
示例#4
0
        private bool OfGenGea(vw_carb110 pCarb110Model, sga_tb pSgaModel, Result pResult)
        {
            string selectSql = "", updateSql = "";
            List <SqlParameter> sqlParmList = null;
            StpBLL        boStp = null;
            CarBLL        boCar = null;
            BasBLL        boBas = null;
            DataTable     dtCea = null, dtCeb = null;
            DataRow       drCea = null, drCeb = null;
            string        cea01 = "", cea01New = "";
            DateTime?     cea02;
            string        errMsg   = "";
            List <sgb_tb> sgbList  = null;
            cac_tb        cacModel = null; //收款單別
            bab_tb        babModel = null; //出貨單別
            int           chkCnts  = 0;

            try
            {
                boCar      = new CarBLL(OfGetConntion());
                boCar.TRAN = this.TRAN;
                boStp      = new StpBLL(OfGetConntion());
                boStp.TRAN = this.TRAN;
                boBas      = new BasBLL(OfGetConntion());
                boBas.TRAN = this.TRAN;


                boCar.OfCreateDao("cea_tb", "*", "");
                selectSql = @"SELECT * FROM cea_tb WHERE 1<>1";
                dtCea     = boCar.OfGetDataTable(selectSql);
                drCea     = dtCea.NewRow();
                //已輸入的為主
                if (!GlobalFn.varIsNull(pCarb110Model.cea01))
                {
                    cea01 = pCarb110Model.cea01;
                }
                else
                {
                    //以出貨單別設定的來拋轉
                    babModel = boBas.OfGetBabModel(pSgaModel.sga01);
                    if (babModel == null)
                    {
                        pResult.Key1    = pSgaModel.sga01;
                        pResult.Message = "取得出貨單別失敗!";
                        return(false);
                    }
                    if (GlobalFn.varIsNull(babModel.bab09))
                    {
                        pResult.Key1    = pSgaModel.sga01;
                        pResult.Message = "未設定出貨單拋轉應收帳款單別,請先至單別資料設定!";
                        return(false);
                    }
                    cea01 = babModel.bab09;
                }
                if (!GlobalFn.varIsNull(pCarb110Model.cea02))
                {
                    cea02 = pCarb110Model.cea02;
                }
                else
                {
                    cea02 = pSgaModel.sga02;
                }

                errMsg = "";
                if (boBas.OfGetAutoNo(cea01, ModuleType.car, (DateTime)cea02, out cea01New, out errMsg) == false)
                {
                    pResult.Key1    = pSgaModel.sga01;
                    pResult.Message = errMsg;
                    return(false);
                }


                drCea["cea00"]   = "11";                //帳款類別
                drCea["cea01"]   = cea01New;
                drCea["cea02"]   = cea02;
                drCea["cea03"]   = pSgaModel.sga03;
                drCea["cea04"]   = pSgaModel.sga04;
                drCea["cea05"]   = pSgaModel.sga05;  //業務部門
                drCea["cea06"]   = pSgaModel.sga06;  //課稅別
                drCea["cea07"]   = pSgaModel.sga07;  //稅率
                drCea["cea08"]   = pSgaModel.sga08;  //含稅否
                drCea["cea09"]   = pSgaModel.sga09;  //發票聯數
                drCea["cea10"]   = pSgaModel.sga10;  //幣別
                drCea["cea11"]   = pSgaModel.sga11;  //收款條件
                drCea["cea12"]   = pSgaModel.sga21;  //匯率
                drCea["cea13"]   = pSgaModel.sga13;  //原幣未稅金額
                drCea["cea13t"]  = pSgaModel.sga13t; //原幣含稅金額
                drCea["cea13g"]  = pSgaModel.sga13g; //原幣稅額
                drCea["cea14"]   = 0;                //原幣沖帳金額
                drCea["cea15"]   = 0;                //本幣未稅金額
                drCea["cea15t"]  = 0;                //本幣含稅金額
                drCea["cea15g"]  = 0;                //本幣稅額
                drCea["cea16"]   = 0;                //本幣沖帳金額
                drCea["cea17"]   = "";               //參考單號
                drCea["cea18"]   = "";               //備註
                drCea["cea19"]   = DBNull.Value;     //應收款日
                drCea["cea20"]   = "";               //保留
                drCea["cea21"]   = "";               //科目類別
                drCea["cea22"]   = "";               //會科編號
                drCea["cea23"]   = "";               //發票別
                drCea["cea24"]   = "";               //發票日期
                drCea["cea25"]   = "";               //發票號碼
                drCea["cea26"]   = "";               //發票客戶
                drCea["cea27"]   = "";               //申報統編
                drCea["cea28"]   = "";               //來源別
                drCea["cea29"]   = "";               //傳票編號
                drCea["ceaconf"] = "N";
                drCea["ceacomp"] = _loginInfo.CompNo;
                drCea["ceacreu"] = _loginInfo.UserNo;
                drCea["ceacreg"] = _loginInfo.DeptNo;
                drCea["ceacred"] = OfGetNow();
                drCea["ceamodu"] = DBNull.Value;
                drCea["ceamodg"] = DBNull.Value;
                drCea["ceamodd"] = DBNull.Value;
                drCea["ceasecu"] = _loginInfo.UserNo;
                drCea["ceasecg"] = _loginInfo.GroupNo;
                dtCea.Rows.Add(drCea);

                if (boCar.OfUpdate(dtCea) == -1)
                {
                    pResult.Key1    = cea01New;
                    pResult.Message = "新增應收單頭失敗!";
                    return(false);
                }

                boCar.OfCreateDao("cfb_tb", "*", "");
                selectSql = @"SELECT * FROM ceb_tb WHERE 1<>1";
                dtCeb     = boCar.OfGetDataTable(selectSql);
                foreach (sgb_tb sgbModel in sgbList.OrderBy(p => p.sgb02))
                {
                    drCeb            = dtCeb.NewRow();
                    drCeb["ceb00"]   = "11";            //帳款類別
                    drCeb["ceb01"]   = cea01New;        //傳票編號
                    drCeb["ceb02"]   = sgbModel.sgb02;  //項次
                    drCeb["ceb03"]   = sgbModel.sgb03;  //料號
                    drCeb["ceb04"]   = sgbModel.sgb04;  //品名
                    drCeb["ceb05"]   = sgbModel.sgb05;  //數量
                    drCeb["ceb06"]   = sgbModel.sgb09;  //原幣單價
                    drCeb["ceb07"]   = sgbModel.sgb10;  //原幣未稅金額
                    drCeb["ceb07t"]  = sgbModel.sgb10t; //原幣含稅金額
                    drCeb["ceb08"]   = 0;               //本幣單價
                    drCeb["ceb09"]   = 0;               //本未稅金額
                    drCeb["ceb09t"]  = 0;               //本幣含稅金額
                    drCeb["ceb10"]   = "";              //會計科目
                    drCeb["ceb11"]   = pSgaModel.sga01; //出貨單號
                    drCeb["ceb12"]   = sgbModel.sgb02;  //出貨項次
                    drCeb["ceb13"]   = 0;               //原幣已沖金額
                    drCeb["ceb14"]   = 0;               //本幣已沖金額
                    drCeb["ceb15"]   = 0;               //本幣未沖金額
                    drCeb["ceb16"]   = sgbModel.sgb06;  //單位
                    drCeb["cebcomp"] = _loginInfo.CompNo;
                    drCeb["cebcreu"] = _loginInfo.UserNo;
                    drCeb["cebcreg"] = _loginInfo.DeptNo;
                    drCeb["cebcred"] = OfGetNow();
                    drCeb["cebmodu"] = DBNull.Value;
                    drCeb["cebmodg"] = DBNull.Value;
                    drCeb["cebmodd"] = DBNull.Value;
                    dtCeb.Rows.Add(drCeb);
                }

                if (boCar.OfUpdate(dtCeb) == -1)
                {
                    pResult.Key1    = cea01New;
                    pResult.Message = "新增應收單身失敗!";
                    return(false);
                }

                updateSql   = @"UPDATE sga_tb 
                            SET sga22=@sga22
                            WHERE sga01=@sga01
                            ";
                sqlParmList = new List <SqlParameter>();
                sqlParmList.Add(new SqlParameter("@sga22", cea01New));
                sqlParmList.Add(new SqlParameter("@sga01", pSgaModel.sga01));
                chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray());
                if (chkCnts != 1)
                {
                    pResult.Key1    = pSgaModel.sga01;
                    pResult.Message = "更新出貨單失敗!";
                    return(false);
                }

//                updateSql = @"UPDATE gea_tb
//                            SET gea06=@gea06,
//                                gea07=@gea07
//                            WHERE gea01=@gea01
//                                 AND gea02=@gea02
//                                AND gea03=@gea03
//                                AND gea04=@gea04
//                            ";
//                sqlParmList = new List<SqlParameter>();
//                sqlParmList.Add(new SqlParameter("@gea06", cea01New));
//                sqlParmList.Add(new SqlParameter("@gea07", cea02));
//                sqlParmList.Add(new SqlParameter("@gea01", pGeaModel.gea01));
//                sqlParmList.Add(new SqlParameter("@gea02", pGeaModel.gea02));
//                sqlParmList.Add(new SqlParameter("@gea03", pGeaModel.gea03));
//                sqlParmList.Add(new SqlParameter("@gea04", pGeaModel.gea04));
//                chkCnts = OfExecuteNonquery(updateSql, sqlParmList.ToArray());
//                if (chkCnts != 1)
//                {
//                    pResult.Key1 = pGeaModel.gea01;
//                    pResult.Message = "更新分稿底稿失敗!";
//                    return false;
//                }

                return(true);
            }
            catch (Exception ex)
            {
                pResult.Key1      = pSgaModel.sga01;
                pResult.Message   = ex.Message;
                pResult.Exception = ex;
                throw;
            }
        }