Exemple #1
0
        protected void gvPayment_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            PaymentBiz bizPay = new PaymentBiz();

            DTO.ResponseMessage <bool> res = new DTO.ResponseMessage <bool>();
            List <string> lsRegNo          = new List <string>();

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (gvPayment.DataSource != null)
                {
                    Label lblApproveDoc = (Label)e.Row.FindControl("lblApproveDoc");
                    if (lblApproveDoc != null)
                    {
                        if (lblApproveDoc.Text.Equals(SysMessage.LicenseApproveW) || lblApproveDoc.Text.Equals(SysMessage.LicenseApproveN))
                        {
                            e.Row.Enabled = false;
                        }
                        else
                        {
                            e.Row.Enabled = true;

                            #region สร้างใบสั่งจ่ายย่อย > NewCreatePayment

                            //Label lblRequestNo = (Label)e.Row.FindControl("lblHeadRequestNo");
                            //if (lblRequestNo != null)
                            //{

                            //    lsRegNo.Add(lblRequestNo.Text);

                            //    string ref1 = string.Empty;
                            //    //res = bizPay.NewCreatePayment(lsRegNo.ToArray(), "", this.MasterLicense.UserProfile.Id, "", Convert.ToString(this.MasterLicense.UserProfile.MemberType), );
                            //    res = bizPay.NewCreatePayment(lsRegNo.ToArray(), "", this.MasterLicense.UserProfile.Id, "", Convert.ToString(this.MasterLicense.UserProfile.MemberType), out ref1);


                            //    //Get RefNo
                            //    string refNo = ref1;
                            //    ImageButton btnPayment = (ImageButton)e.Row.FindControl("btnPayment");
                            //    btnPayment.Attributes.Add("onclick", string.Format("OpenPopup('{0}')", refNo));

                            //    if ((res.IsError) || (res.ResultMessage == false))
                            //    {

                            //        this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = res.ErrorMsg;
                            //        this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                            //    }
                            //    else
                            //    {
                            //        //this.MasterLicense.UCLicenseModelSuccess.ShowMessageSuccess = SysMessage.CreatePaymentSuccess;
                            //        //this.MasterLicense.UCLicenseModelSuccess.ShowModalSuccess();
                            //    }

                            //}

                            #endregion
                        }
                    }
                }
            }
        }
Exemple #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                ReportDocument report = new ReportDocument();
                PaymentBiz     biz    = new PaymentBiz();

                report.Load(Server.MapPath("../Reports/RptCheckFileSize.rpt"));
                report.SetDataSource(biz.GetCheckFileSize(Request.QueryString["TypePay"].ToString(), Request.QueryString["DateStart"].ToString(), Request.QueryString["DateEnd"].ToString()).DataResponse.Tables[0]);
                report.SetParameterValue("startdate", Request.QueryString["DateStart"].ToString());
                report.SetParameterValue("enddate", Request.QueryString["DateEnd"].ToString());
                if (Request.QueryString["DateStart"].ToString() == "" && Request.QueryString["DateEnd"].ToString() == "")
                {
                    report.SetParameterValue("lblSDate", "");
                    report.SetParameterValue("lblEDate", "");
                }
                else
                {
                    report.SetParameterValue("lblSDate", "วันที่สร้างใบเสร็จ(เริ่ม) :");
                    report.SetParameterValue("lblEDate", "วันที่สร้างใบเสร็จ(สิ้นสุด) :");
                }
                CrystalReportViewer1.ReportSource = report;
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
        private int GetSumConfigViewBillPayment()
        {
            int        SumAllPayment = 0;
            PaymentBiz biz           = new PaymentBiz();

            DTO.ResponseService <DataSet> ViewBillPayment = biz.GetConfigViewBillPayment();
            //SumAllPayment = ViewBillPayment.DataResponse.Tables[0].Rows.Count;

            if (ViewBillPayment.DataResponse.Tables[0].Rows.Count > 0)
            {
                DataRow drTran = ViewBillPayment.DataResponse.Tables[0].Rows[0];
                SumAllPayment = Convert.ToInt16(drTran["ITEM_VALUE"]);
            }
            return(SumAllPayment);
        }
Exemple #4
0
        public PaymentOrderItemT SetPaymentOrderItem(PaymentRequestInfoT orgPaymentRequestInfo, PaymentRequestInfoT paymentRequestInfo)
        {
            PaymentBiz paymentBiz = new PaymentBiz();
            PaymentOrderItemT paymentOrderItem = new PaymentOrderItemT();

            string paymentGoodsCode, paymentAmount, paymentPrice;
            string paymentGdSelNo, paymentBasketPID, paymentOrderIdx;
            string paymentSelItemPrice, paymentDeliveryFee, paymentCostPrice;
            string paymentDeliveryGroupNo;

            string plGdNo = string.Empty, plOrderCnt = string.Empty, plOrderPrice = string.Empty, plGdNm = string.Empty, plGdEngNm = string.Empty, plGdKind = string.Empty, plGdOrigin = string.Empty, plGdOrigin2 = string.Empty, plGdlcCd = string.Empty, plGdmcCd = string.Empty, plGdscCd = string.Empty, plMakerNm = string.Empty;
            string plBrandNm = string.Empty, plDealPriceKind = string.Empty, plDealPrice = string.Empty, plOpGd = string.Empty, plAsYn = string.Empty, plSellCustNo = string.Empty, plGdShopkind = string.Empty, plGdShopkind2 = string.Empty, plGdShopkind3 = string.Empty, plTradWay = string.Empty;
            string plTemplateType = string.Empty, plAdultYn = string.Empty, plHasaddedfile = string.Empty, plInventoryNo = string.Empty, plInventorytype = string.Empty, plOptInventoryno = string.Empty, plOptInventorytype = string.Empty, plGdMadeSdt = string.Empty;
            string plAttribEndDt = string.Empty, plGdBuyerMlRate = string.Empty, plGdBuddyMlRate = string.Empty, plUseGubun = string.Empty, plBundleType = string.Empty, plDangolChanceAmt = string.Empty, plDangolChanceKind = string.Empty;
            string plDntNo = string.Empty, plDntWhoFee = string.Empty, plDntSaveMoney = string.Empty, plMaxLimit = string.Empty, plTotalSaveMoney = string.Empty, plFreecSellerchargeyn = string.Empty, plJehuRsvServiceType = string.Empty;
            string plJehuEstType = string.Empty, plGoodsRegDt = string.Empty, plDeliveryGroupNo = string.Empty, plDeliveryFee = string.Empty, plBuyUnitCnt = string.Empty, plMinBuyCnt = string.Empty, plTemplateUrl = string.Empty;
            string plShopGroupCd = string.Empty, plShopGdlcCd = string.Empty, plShopGdmcCd = string.Empty, plShopGdscCd = string.Empty;

            string paramXml = string.Empty;
            //string xmlParams, xmlValues;

            //string paymentOrderType;

            paymentBasketPID = orgPaymentRequestInfo.BasketPid;

            paymentOrderIdx = orgPaymentRequestInfo.SelectedOrderIdxs.Replace(" ", string.Empty).Replace("|",",");
            paymentGdSelNo = PaymentUtil.AddComma(orgPaymentRequestInfo.GdSelNo).Replace(" ", string.Empty);
            paymentGoodsCode = PaymentUtil.AddComma(orgPaymentRequestInfo.ItemNo).Replace(" ", string.Empty);
            paymentAmount = PaymentUtil.AddComma(orgPaymentRequestInfo.OrderCounts).Replace(" ", string.Empty);
            paymentPrice = PaymentUtil.AddComma(orgPaymentRequestInfo.OrderPrice).Replace(" ", string.Empty);
            paymentSelItemPrice = PaymentUtil.AddComma(orgPaymentRequestInfo.SelItemPrice).Replace(" ", string.Empty);
            paymentDeliveryFee = PaymentUtil.AddComma(orgPaymentRequestInfo.DeliveryFee).Replace(" ", string.Empty);
            paymentCostPrice = PaymentUtil.AddComma(orgPaymentRequestInfo.RealCostPrice).Replace(" ", string.Empty);
            paymentDeliveryGroupNo = PaymentUtil.AddComma(orgPaymentRequestInfo.DeliveryGroupNo).Replace(" ", string.Empty);

            if (string.IsNullOrEmpty(paymentBasketPID))
                paymentBasketPID = Guid.NewGuid().ToString();

            if (string.IsNullOrEmpty(paymentGdSelNo))
            {
                paymentGdSelNo = orgPaymentRequestInfo.RemoteAddress.Replace(".", string.Empty) + DateTime.Now.Day.ToString().PadRight(2, '0') + DateTime.Now.Hour.ToString().PadRight(2, '0') + DateTime.Now.Minute.ToString().PadRight(2, '0') + DateTime.Now.Second.ToString().PadRight(2, '0');
            }

            if (string.IsNullOrEmpty(paymentOrderIdx))
            {
                string[] icntArr = paymentGoodsCode.Split(PaymentConstant.CommaSeperator);

                for (int iloopCnt = 0, icntArrLength = icntArr.Length; iloopCnt < icntArrLength; iloopCnt++)
                {
                    PaymentOrderIndexT paymentOrderIndex = paymentBiz.GetPaymentOrderIndex();
                    if (paymentOrderIndex != null)
                    {
                        paymentOrderIdx = PaymentUtil.AddComma(paymentOrderIdx + paymentOrderIndex.OrderIdx.ToString());
                    }
                }
            }

            if (!paymentOrderIdx.Trim().EndsWith(PaymentConstant.Comma)) { paymentOrderIdx = PaymentUtil.AddComma(paymentOrderIdx); }
            if (!paymentGdSelNo.Trim().EndsWith(PaymentConstant.Comma)) { paymentGdSelNo = PaymentUtil.AddComma(paymentGdSelNo); }
            if (!paymentGoodsCode.Trim().EndsWith(PaymentConstant.Comma)) { paymentGoodsCode = PaymentUtil.AddComma(paymentGoodsCode); }
            if (!paymentAmount.Trim().EndsWith(PaymentConstant.Comma)) { paymentAmount = PaymentUtil.AddComma(paymentAmount); }
            if (!paymentPrice.Trim().EndsWith(PaymentConstant.Comma)) { paymentPrice = PaymentUtil.AddComma(paymentPrice); }
            if (!paymentSelItemPrice.Trim().EndsWith(PaymentConstant.Comma)) { paymentSelItemPrice = PaymentUtil.AddComma(paymentSelItemPrice); }
            if (!paymentDeliveryFee.Trim().EndsWith(PaymentConstant.Comma)) { paymentDeliveryFee = PaymentUtil.AddComma(paymentDeliveryFee); }
            if (!paymentCostPrice.Trim().EndsWith(PaymentConstant.Comma)) { paymentCostPrice = PaymentUtil.AddComma(paymentCostPrice); }
            if (!paymentDeliveryGroupNo.Trim().EndsWith(PaymentConstant.Comma)) { paymentDeliveryGroupNo = PaymentUtil.AddComma(paymentDeliveryGroupNo); }

            //paymentOrderType = "DM";

            //XQueryUtil xQueryUtil = new XQueryUtil();

            //xmlParams = "gd_no,order_cnt,order_price,";
            //xmlValues = xQueryUtil.ParamCheckComma(strPaymentGoodsCode) + PaymentConstant.MainDelimiter +
            //    xQueryUtil.ParamCheckComma(strPaymentAmount) + PaymentConstant.MainDelimiter +
            //    xQueryUtil.ParamCheckComma(strPaymentPrice);

            //isRtnValue = xQueryUtil.BuildXQueryXml(xmlParams, xmlValues, 0);

            //if (isRtnValue)
            //{
            //    paramXml = xQueryUtil.GetParamXml();
            //}

            paramXml = MakeXQuery(new List<string> { "gd_no", "order_cnt", "order_price" },
                new List<string> { paymentGoodsCode, paymentAmount, paymentPrice }
                );

            //string[] arrPaymentDeliveryGroupNo = strPaymentDeliveryGroupNo.Split(PaymentConstant.CommaSeperator);
            //string[] arrPaymentDeliveryFee = strPaymentDeliveryFee.Split(PaymentConstant.CommaSeperator);

            //int packNo = 0;
            //List<PaymentInsertPolicyItemInfoT> policyItemInfoList = new List<PaymentInsertPolicyItemInfoT>();
            List<PaymentItemInfoPolicyT> paymentItemInfoPolicy = paymentBiz.GetPaymentItemInfoPolicy(paymentBasketPID, paramXml);

            if (paymentItemInfoPolicy != null)
            {
                if (paymentItemInfoPolicy.Count > 0)
                {
                    //packNo = paymentBiz.GetNewPackNo();

                    Dictionary<string, KeyValuePair<int, string[]>> dicPolicyItemInfoParam = GetPolicyItemInfoParam(paymentItemInfoPolicy.Count
                        , paymentGdSelNo, paymentOrderIdx, paymentPrice, paymentDeliveryFee, paymentCostPrice, paymentDeliveryGroupNo);

                    for (int i = 0, paymentItemInfoPolicyLength = paymentItemInfoPolicy.Count; i < paymentItemInfoPolicyLength; i++)
                    {
                        /*
                        policyItemInfoList.Add(new PaymentInsertPolicyItemInfoT()
                        {
                            PackNo = packNo,
                            Pid = paymentBasketPID,
                            ItemNo = paymentItemInfoPolicy[i].ItemNo.Trim(),
                            GdSelNo = dicPolicyItemInfoParam["GdSelNo"].Value[i],
                            OrderIdx = Util.GetSafeLong(dicPolicyItemInfoParam["OrderIdx"].Value[i]),
                            ItemName = Util.StripHtmlTags(paymentItemInfoPolicy[i].ItemName).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            GdEngNm = Util.StripHtmlTags(paymentItemInfoPolicy[i].GdEngNm).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            GdKind = paymentItemInfoPolicy[i].GdKind,
                            GdOrigin = Util.StripHtmlTags(paymentItemInfoPolicy[i].GdOrigin).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            GdlcCd = paymentItemInfoPolicy[i].GdlcCd.Trim(),
                            GdmcCd = paymentItemInfoPolicy[i].GdmcCd.Trim(),
                            GdscCd = paymentItemInfoPolicy[i].GdscCd.Trim(),
                            MakerName = Util.StripHtmlTags(paymentItemInfoPolicy[i].MakerName).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            BrandName = Util.StripHtmlTags(paymentItemInfoPolicy[i].BrandName).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            DealPriceKind = paymentItemInfoPolicy[i].DealPriceKind.Trim(),
                            DealPrice = paymentItemInfoPolicy[i].DealPrice,
                            OpGd = Util.StripHtmlTags(paymentItemInfoPolicy[i].OpGd).Replace(",", ".").Replace("'", "`").Replace(",", "."),
                            AsYn = paymentItemInfoPolicy[i].AsYn.Trim(),
                            SellCustNo = paymentItemInfoPolicy[i].SellCustNo.Trim(),
                            GdShopkind = paymentItemInfoPolicy[i].GdShopkind.Trim(),
                            GdShopkind2 = paymentItemInfoPolicy[i].GdShopkind2.Trim(),
                            GdShopkind3 = paymentItemInfoPolicy[i].GdShopkind3.Trim(),
                            TradWay = paymentItemInfoPolicy[i].TradWay.Trim(),
                            TemplateType = paymentItemInfoPolicy[i].TemplateType.Trim(),
                            AdultYn = paymentItemInfoPolicy[i].AdultYn.Trim(),
                            Hasaddedfile = paymentItemInfoPolicy[i].Hasaddedfile.Trim(),
                            InventoryNo = paymentItemInfoPolicy[i].InventoryNo.Trim(),
                            Inventorytype = paymentItemInfoPolicy[i].Inventorytype.Trim(),
                            OptInventoryno = paymentItemInfoPolicy[i].OptInventoryno.Trim(),
                            OptInventorytype = paymentItemInfoPolicy[i].OptInventorytype.Trim(),
                            GdMadeSdt = Convert.ToDateTime(paymentItemInfoPolicy[i].GdMadeSdt),
                            AttribEndDt = Convert.ToDateTime(paymentItemInfoPolicy[i].AttribEndDt),
                            GdBuyerMlRate = paymentItemInfoPolicy[i].GdBuyerMlRate,
                            GdBuddyMlRate = paymentItemInfoPolicy[i].GdBuddyMlRate,
                            UseGubun = paymentItemInfoPolicy[i].UseGubun.Trim(),
                            BundleType = paymentItemInfoPolicy[i].BundleType.Trim(),
                            MinBuyCnt = paymentItemInfoPolicy[i].BuyUnitCnt,
                            BuyUnitCnt = paymentItemInfoPolicy[i].MinBuyCnt,
                            DangolChanceAmt = paymentItemInfoPolicy[i].DangolChanceAmt,
                            DangolChanceKind = paymentItemInfoPolicy[i].DangolChanceKind.Trim(),
                            JehuRsvServiceType = paymentItemInfoPolicy[i].JehuRsvServiceType.Trim(),
                            JehuEstType = paymentItemInfoPolicy[i].JehuEstType.Trim(),
                            DntNo = paymentItemInfoPolicy[i].DntNo,
                            DntWhoFee = paymentItemInfoPolicy[i].DntWhoFee.Trim(),
                            DntSaveMoney = paymentItemInfoPolicy[i].DntSaveMoney,
                            FreecSellerchargeyn = paymentItemInfoPolicy[i].FreecSellerchargeyn.Trim(),
                            OrderPrice = paymentItemInfoPolicy[i].OrderPrice,
                            SelItemPrice = Util.GetSafeDecimal(dicPolicyItemInfoParam["SelItemPrice"].Value[i]),
                            OrderCnt = paymentItemInfoPolicy[i].OrderCnt,
                            DelFee = Util.GetSafeDecimal(dicPolicyItemInfoParam["DelFee"].Value[i]),
                            CostPrice = Util.GetSafeDecimal(dicPolicyItemInfoParam["CostPrice"].Value[i]),
                            DeliveryGroupNo = Util.GetSafeInt(dicPolicyItemInfoParam["DeliveryGroupNo"].Value[i]),
                            ShopGroupCd = paymentItemInfoPolicy[i].ShopGroupCd,
                            ShopGdlcCd = paymentItemInfoPolicy[i].ShopGdlcCd,
                            ShopGdmcCd = paymentItemInfoPolicy[i].ShopGdmcCd,
                            ShopGdscCd = paymentItemInfoPolicy[i].ShopGdscCd
                        });
                        */

                        plGdNo = plGdNo + PaymentUtil.AddComma(paymentItemInfoPolicy[i].ItemNo.Trim());
                        plOrderCnt = plOrderCnt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].OrderCnt.ToString());
                        plOrderPrice = plOrderPrice + PaymentUtil.AddComma( paymentItemInfoPolicy[i].OrderPrice.ToString());
                        plGdNm = plGdNm + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].ItemName).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plGdEngNm = plGdEngNm + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].GdEngNm).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plGdKind = plGdKind + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdKind.ToString().Trim());
                        plGdOrigin = plGdOrigin + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].GdOrigin).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plGdOrigin2 = plGdOrigin2 + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].GdOrigin2).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plGdlcCd = plGdlcCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdlcCd.Trim());
                        plGdmcCd = plGdmcCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdmcCd.Trim());
                        plGdscCd = plGdscCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdscCd.Trim());
                        plMakerNm = plMakerNm + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].MakerName).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plBrandNm = plBrandNm + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].BrandName).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plDealPriceKind = plDealPriceKind + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DealPriceKind.Trim());
                        plDealPrice = plDealPrice + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DealPrice.ToString());
                        plOpGd = plOpGd + PaymentUtil.AddComma( Util.StripHtmlTags(paymentItemInfoPolicy[i].OpGd).Replace(",", ".").Replace("'", "`").Replace(",", "."));
                        plAsYn = plAsYn + PaymentUtil.AddComma( paymentItemInfoPolicy[i].AsYn.Trim());
                        plSellCustNo = plSellCustNo + PaymentUtil.AddComma( paymentItemInfoPolicy[i].SellCustNo.Trim());
                        plGdShopkind = plGdShopkind + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdShopkind.Trim());
                        plGdShopkind2 = plGdShopkind2 + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdShopkind2.Trim());
                        plGdShopkind3 = plGdShopkind3 + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdShopkind3.Trim());
                        plTradWay = plTradWay + PaymentUtil.AddComma( paymentItemInfoPolicy[i].TradWay.Trim());
                        plTemplateType = plTemplateType + PaymentUtil.AddComma( paymentItemInfoPolicy[i].TemplateType.Trim());
                        plAdultYn = plAdultYn + PaymentUtil.AddComma( paymentItemInfoPolicy[i].AdultYn.Trim());
                        plHasaddedfile = plHasaddedfile + PaymentUtil.AddComma( paymentItemInfoPolicy[i].Hasaddedfile.Trim());
                        plInventoryNo = plInventoryNo + PaymentUtil.AddComma( paymentItemInfoPolicy[i].InventoryNo.Trim());
                        plInventorytype = plInventorytype + PaymentUtil.AddComma( paymentItemInfoPolicy[i].Inventorytype.Trim());
                        plOptInventoryno = plOptInventoryno + PaymentUtil.AddComma( paymentItemInfoPolicy[i].OptInventoryno.Trim());
                        plOptInventorytype = plOptInventorytype + PaymentUtil.AddComma( paymentItemInfoPolicy[i].OptInventorytype.Trim());
                        plGdMadeSdt = plGdMadeSdt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdMadeSdt.Trim());
                        plAttribEndDt = plAttribEndDt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].AttribEndDt.Trim());
                        plGdBuyerMlRate = plGdBuyerMlRate + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdBuyerMlRate.ToString());
                        plGdBuddyMlRate = plGdBuddyMlRate + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GdBuddyMlRate.ToString());
                        plUseGubun = plUseGubun + PaymentUtil.AddComma( paymentItemInfoPolicy[i].UseGubun.Trim());
                        plBundleType = plBundleType + PaymentUtil.AddComma( paymentItemInfoPolicy[i].BundleType.Trim());
                        plDangolChanceAmt = plDangolChanceAmt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DangolChanceAmt.ToString());
                        plDangolChanceKind = plDangolChanceKind + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DangolChanceKind.Trim());
                        plDntNo = plDntNo + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DntNo.ToString());
                        plDntWhoFee = plDntWhoFee + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DntWhoFee.Trim());
                        plDntSaveMoney = plDntSaveMoney + PaymentUtil.AddComma( paymentItemInfoPolicy[i].DntSaveMoney.ToString());
                        plMaxLimit = plMaxLimit + PaymentUtil.AddComma( paymentItemInfoPolicy[i].MaxLimit.ToString());
                        plTotalSaveMoney = plTotalSaveMoney + PaymentUtil.AddComma( paymentItemInfoPolicy[i].TotalSaveMoney.ToString());
                        plFreecSellerchargeyn = plFreecSellerchargeyn + PaymentUtil.AddComma( paymentItemInfoPolicy[i].FreecSellerchargeyn.Trim());
                        plJehuRsvServiceType = plJehuRsvServiceType + PaymentUtil.AddComma( paymentItemInfoPolicy[i].JehuRsvServiceType.Trim());
                        plJehuEstType = plJehuEstType + PaymentUtil.AddComma( paymentItemInfoPolicy[i].JehuEstType.Trim());
                        plGoodsRegDt = plGoodsRegDt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].GoodsRegDt.Trim());
                        plBuyUnitCnt = plBuyUnitCnt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].BuyUnitCnt.ToString());
                        plMinBuyCnt = plMinBuyCnt + PaymentUtil.AddComma( paymentItemInfoPolicy[i].MinBuyCnt.ToString());
                        plTemplateUrl = plTemplateUrl + PaymentUtil.AddComma( paymentItemInfoPolicy[i].TemplateUrl.Trim());
                        plShopGroupCd = plShopGroupCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].ShopGroupCd.ToString());
                        plShopGdlcCd = plShopGdlcCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].ShopGdlcCd.ToString());
                        plShopGdmcCd = plShopGdmcCd + PaymentUtil.AddComma( paymentItemInfoPolicy[i].ShopGdmcCd.ToString());
                        plShopGdscCd = plShopGdscCd + PaymentUtil.AddComma(paymentItemInfoPolicy[i].ShopGdscCd.ToString());

                    }
                }
            }
            else
            {
                throw new PaymentProcessBizException(-638, "상품 정보에 문제가 있습니다. 확인후 다시 주문해 주시기 바랍니다.");
            }

            PaymentInsertPolicyMultiParamT param = new PaymentInsertPolicyMultiParamT();

            #region set param

            param.OrderWayKind = paymentRequestInfo.OrderWayKind ;
            param.PaymentBasketPID = paymentBasketPID;
            param.PaymentDeliveryGroupNo = paymentDeliveryGroupNo;
            param.PaymentAmount = paymentAmount;
            param.ReceiverZipCode = paymentRequestInfo.ReceiverZipCode;
            param.Gbank = paymentRequestInfo.Gbank;
            param.Vaccount = paymentRequestInfo.Vaccount;
            param.Installmonth = paymentRequestInfo.Installmonth;
            param.SellerCustNo = paymentRequestInfo.SellerCustNo;
            param.PaymentOrderType = paymentRequestInfo.PaymentOrderType;
            param.CardCash = paymentRequestInfo.CardCash;
            param.AcntType = paymentRequestInfo.AcntType;
            //param.PackNo = packNo;

            param.ItemNo = plGdNo;
            param.PaymentGdSelNo = paymentGdSelNo;
            param.PaymentOrderIdx = paymentOrderIdx;
            param.GdNm = plGdNm;
            param.GdEngNm = plGdEngNm;
            param.GdKind = plGdKind;
            param.GdOrigin = plGdOrigin;
            param.GdlcCd = plGdlcCd;
            param.GdmcCd = plGdmcCd;
            param.GdscCd = plGdscCd;
            param.MakerNm = plMakerNm;
            param.BrandNm = plBrandNm;
            param.DealPriceKind = plDealPriceKind;
            param.DealPrice = plDealPrice;
            param.OpGd = plOpGd;
            param.AsYn = plAsYn;
            param.SellCustNo = plSellCustNo;
            param.GdShopkind = plGdShopkind;
            param.GdShopkind2 = plGdShopkind2;
            param.GdShopkind3 = plGdShopkind3;
            param.TradWay = plTradWay;
            param.TemplateType = plTemplateType;
            param.AdultYn = plAdultYn;
            param.Hasaddedfile = plHasaddedfile;
            param.InventoryNo = plInventoryNo;
            param.Inventorytype = plInventorytype;
            param.OptInventoryno = plOptInventoryno;
            param.OptInventorytype = plOptInventorytype;
            param.GdMadeSdt = plGdMadeSdt;
            param.AttribEndDt = plAttribEndDt;
            param.GdBuyerMlRate = plGdBuyerMlRate;
            param.GdBuddyMlRate = plGdBuddyMlRate;
            param.UseGubun = plUseGubun;
            param.BundleType = plBundleType;
            param.MinBuyCnt = plMinBuyCnt;
            param.BuyUnitCnt = plBuyUnitCnt;
            param.DangolChanceAmt = plDangolChanceAmt;
            param.DangolChanceKind = plDangolChanceKind;
            param.JehuRsvServiceType = plJehuRsvServiceType;
            param.JehuEstType = plJehuEstType;
            param.DntNo = plDntNo;
            param.DntWhoFee = plDntWhoFee;
            param.DntSaveMoney = plDntSaveMoney;
            param.FreecSellerchargeyn = plFreecSellerchargeyn;
            param.PaymentPrice = paymentPrice;
            param.PaymentSelItemPrice = paymentSelItemPrice;
            param.PaymentAmount = paymentAmount;
            param.PaymentDeliveryFee = paymentDeliveryFee;
            param.PaymentCostPrice = paymentCostPrice;
            param.PaymentDeliveryGroupNo = paymentDeliveryGroupNo;
            param.ShopGroupCd = plShopGroupCd;
            param.ShopGdlcCd = plShopGdlcCd;
            param.ShopGdmcCd = plShopGdmcCd;
            param.ShopGdscCd = plShopGdscCd;

            #endregion

            //int policyCount = paymentBiz.InsertGEPPaymentPolicyItemInfo(policyItemInfoList);

            List<PaymentInsertPolicyMultiResultT> paymentInsertPolicyMultiResult = paymentBiz.SetPaymentInsertPolicyMulti(param);

            if (paymentInsertPolicyMultiResult != null)
            {
                if (paymentInsertPolicyMultiResult.Count > 0)
                {
                    int retCode = paymentInsertPolicyMultiResult[0].RetCode;

                    if (retCode < 0)
                    {
                        throw new PaymentProcessBizException(retCode, "상품 정보에 문제가 있습니다. 확인후 다시 주문해 주시기 바랍니다.");
                    }

                    paymentOrderItem.OrderNo = string.Empty;

                    foreach (PaymentInsertPolicyMultiResultT item in paymentInsertPolicyMultiResult)
                    {
                        paymentOrderItem.PolicyInfoList.Add(item);

                        paymentOrderItem.OrderNo = PaymentUtil.AddComma(paymentOrderItem.OrderNo + item.OrderNo.ToString());
                    }
                }
            }

            return paymentOrderItem;
        }
        protected void btnPayment_Click(object sender, EventArgs e)
        {
            PaymentBiz    biz           = new PaymentBiz();
            LicenseBiz    bizLicense    = new LicenseBiz();
            string        ref1          = string.Empty;
            string        group         = string.Empty;
            string        headrequestNo = string.Empty;
            StringBuilder ChkUpload     = new StringBuilder();

            this.MasterLicense.lsLicensePayment.Clear();

            if (this.gvLicenseD.Rows.Count <= 0)
            {
                this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = SysMessage.LicenseYNotFound;
                this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                this.MasterLicense.UpdatePanelLicense.Update();
            }
            else
            {
                #region Get UploadGroupNo

                for (int i = 0; i < gvLicenseD.Rows.Count; i++)
                {
                    HiddenField hf = (HiddenField)gvLicenseD.Rows[i].Cells[0].FindControl("hdfGroupUpLoadNo");

                    if (hf.Value != null)
                    {
                        //Get PersonLicenseTransaction from List
                        //var resD = this.CurrentSessionListDT.FirstOrDefault(idx => idx.UPLOAD_GROUP_NO.Equals(hf.Value));
                        var resD = this.SessionListDT.FirstOrDefault(idx => idx.UPLOAD_GROUP_NO.Equals(hf.Value));
                        if (resD != null)
                        {
                            ///Get & Set SubGroupPayment
                            this.MasterLicense.lsLicensePayment.Add(new DTO.SubGroupPayment
                            {
                                RUN_NO      = resD.RUN_NO,
                                uploadG     = resD.UPLOAD_GROUP_NO,
                                LicenseNo   = resD.LICENSE_NO,
                                RenewTime   = resD.RENEW_TIMES,
                                seqNo       = resD.SEQ_NO,
                                PaymentType = resD.PETITION_TYPE_CODE
                            });

                            this.MasterLicense.ListUploadGroupNo.Add(hf.Value);
                        }
                    }
                }
                #endregion

                #region สร้างใบสั่งจ่ายย่อย > NewCreatePayment

                DTO.ResponseService <string> res = biz.SetSubGroupSingleLicense(this.MasterLicense.lsLicensePayment.ToArray(), this.UserProfile.Id, this.UserProfile.Id, out ref1);
                if ((res.DataResponse != null) && (!res.IsError))
                {
                    this.PaymentStatus = true;
                    this.MasterLicense.UCLicenseUCLicenseModelSuccess.ShowMessageSuccess = SysMessage.CreatePaymentSuccess;
                    this.MasterLicense.UCLicenseUCLicenseModelSuccess.ShowModalSuccess();
                    this.MasterLicense.UpdatePanelLicense.Update();
                    group = ref1;

                    ChkUpload.Append(group);
                    ChkUpload.Append(" ");
                    ChkUpload.Append(this.UserProfile.Id);

                    GetAllLicense();
                    GetLicenseY();
                    //ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "", "OpenPopup('" + group + "')", true);
                }
                else
                {
                    this.PaymentStatus = false;
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = res.ErrorMsg;
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                    this.MasterLicense.UpdatePanelLicense.Update();
                    return;
                    //udpMain.Update();
                }

                if (this.PaymentStatus == true)
                {
                    ListPrintPayment.Add(group);
                    var resPrint = biz.UpdatePrintGroupRequestNo(ListPrintPayment.ToArray());
                    //ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "", "OpenPopup('" + group + "')", true);
                    ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "", "OpenPopup('" + ChkUpload.ToString() + "')", true);
                }

                #endregion
            }
        }
Exemple #6
0
        protected void btnPayment_Click(object sender, EventArgs e)
        {
            PaymentBiz    biz           = new PaymentBiz();
            LicenseBiz    bizLicense    = new LicenseBiz();
            string        ref1          = string.Empty;
            string        group         = string.Empty;
            string        headrequestNo = string.Empty;
            StringBuilder ChkUpload     = new StringBuilder();

            if (this.ucLicensePaymentY.GridPayment.Rows.Count <= 0)
            {
                this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = SysMessage.LicenseYNotFound;
                this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                this.MasterLicense.UpdatePanelLicense.Update();
                return;
            }
            else
            {
                #region Get UploadGroupNo

                for (int i = 0; i < ucLicensePaymentY.GridPayment.Rows.Count; i++)
                {
                    CheckBox chkDelete = (CheckBox)ucLicensePaymentY.GridPayment.Rows[i].Cells[0].FindControl("chkBxSelect");
                    if (chkDelete != null)
                    {
                        if (chkDelete.Checked)
                        {
                            HiddenField hf = (HiddenField)ucLicensePaymentY.GridPayment.Rows[i].Cells[0].FindControl("HiddenField1");

                            if (hf.Value != null)
                            {
                                //Get
                                DTO.ResponseService <DTO.PersonLicenseTransaction> resD = bizLicense.GetLicenseDetailByUploadGroupNo(hf.Value);
                                if ((resD.DataResponse != null) && (!resD.IsError))
                                {
                                    ///Get & Set SubGroupPayment
                                    var resLS = this.MasterLicense.lsLicensePayment.Where(ls => ls.uploadG == resD.DataResponse.UPLOAD_GROUP_NO).FirstOrDefault();
                                    if (resLS == null)
                                    {
                                        this.MasterLicense.lsLicensePayment.Add(new DTO.SubGroupPayment
                                        {
                                            uploadG     = resD.DataResponse.UPLOAD_GROUP_NO,
                                            LicenseNo   = resD.DataResponse.LICENSE_NO,
                                            RenewTime   = resD.DataResponse.RENEW_TIMES,
                                            seqNo       = resD.DataResponse.SEQ_NO,
                                            PaymentType = resD.DataResponse.PETITION_TYPE_CODE
                                        });

                                        this.MasterLicense.ListUploadGroupNo.Add(hf.Value);
                                    }
                                }
                            }
                        }
                    }
                }
                #endregion

                //ตรวจสอบรายการต่อใบสั่งจ่าย @1/7/2557
                int getSumConfig = GetSumConfigViewBillPayment();
                if (this.MasterLicense.ListUploadGroupNo.Count > getSumConfig)
                {
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = "กรุณาตรวจสอบจำนวนรายการใบอนุญาตที่ต้องการออกใบสั่งจ่าย";
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                    this.MasterLicense.UpdatePanelLicense.Update();
                    return;
                }

                #region สร้างใบสั่งจ่ายย่อย > NewCreatePayment

                DTO.ResponseService <string> res = biz.SetSubGroupSingleLicense(this.MasterLicense.lsLicensePayment.ToArray(), this.UserProfile.Id, this.UserProfile.Id, out ref1);
                if ((res.DataResponse != null) && (!res.IsError))
                {
                    this.MasterLicense.UCLicenseUCLicenseModelSuccess.ShowMessageSuccess = SysMessage.CreatePaymentSuccess;
                    this.MasterLicense.UCLicenseUCLicenseModelSuccess.ShowModalSuccess();
                    this.MasterLicense.UpdatePanelLicense.Update();
                    group = ref1;

                    ChkUpload.Append(group);
                    ChkUpload.Append(" ");
                    ChkUpload.Append(this.UserProfile.Id);

                    //ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "", "OpenPopup('" + group + "')", true);
                    ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "", "OpenPopup('" + ChkUpload.ToString() + "')", true);

                    this.MasterLicense.lsLicensePayment.Clear();
                    this.MasterLicense.ListUploadGroupNo.Clear();
                    this.MasterLicense.PersonLicenseD.Clear();
                    this.MasterLicense.PersonLicenseH.Clear();
                    this.GetLicenseDetail();
                }
                else
                {
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowMessageError = res.ErrorMsg;
                    this.MasterLicense.UCLicenseUCLicenseModelError.ShowModalError();
                    this.MasterLicense.UpdatePanelLicense.Update();
                    return;
                }
                //this.MasterLicense.lsLicensePayment.Clear();
                //this.MasterLicense.ListUploadGroupNo.Clear();
                #endregion
            }
        }
        /// <summary>
        /// 주문 실행 전 주문건별 Validation 및 주문정보 생성
        /// </summary>
        /// <returns></returns>
        private void PaymentPrepare()
        {
            PaymentBiz paymentBiz = new PaymentBiz();
            PaymentProcessQueryBiz paymentProcessQueryBiz = new PaymentProcessQueryBiz();

            List<PaymentOrderItemCostInfoT> paymentOrderItemCostInfoList = new List<PaymentOrderItemCostInfoT>();
            List<PaymentDataOrderInfoT> paymentDataOrderInfoList = new List<PaymentDataOrderInfoT>();
            List<PaymentDataCostBasisInfoT> paymentDataCostBasisInfoList = new List<PaymentDataCostBasisInfoT>();

            List<string> exItem = new List<string>();
            bool isExistCartOptionInfo = false;
            string orderSrc = string.Empty;
            string deliveryHopeDay = string.Empty;
            string orderKind = "O";
            long sellOrderNo = 0;
            int costBasisNo = 0;
            int jaehuCostPrice = 0;
            decimal itemDiscountPrice = 0;
            decimal itemDiscountLastCost = 0;
            decimal itemCurrentCostPrice = 0;

            #region 구매자 이메일

            if (this._orderParam.MemberWay.Equals("MEM", StringComparison.InvariantCultureIgnoreCase) && string.IsNullOrEmpty(this._orderParam.BuyerEmail))
            {
                PaymentCustomInfoT paymentCustomInfo = paymentBiz.GetPaymentCustomInfo(this._orderParam.CustNo);

                this._orderParam.BuyerEmail = paymentCustomInfo.EMail;
            }

            #endregion

            #region 현금 영수증 발급 자동화

            if (this._orderParam.CashReceiptYN.Equals("Y", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    PaymentAutoCashReceiptInfoT autoCashReceiptInfo = paymentProcessQueryBiz.GetAutoCashReceiptInfo(this._orderParam);

                    this._orderParam.CashUseType = autoCashReceiptInfo.ReceiptType;
                    this._orderParam.CashRegNo = autoCashReceiptInfo.IDNumber;
                    this._orderParam.CashName = autoCashReceiptInfo.Demander;
                    this._orderParam.CashPhone = autoCashReceiptInfo.Contact;
                    this._orderParam.CashEmail = autoCashReceiptInfo.Email;
                    this._orderParam.IdFlag = autoCashReceiptInfo.IDFlag;
                }
                catch
                {
                    throw new PaymentProcessBizException(-418, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 주문을 위한 조건들 확인

            try
            {
                PaymentInfoCheckT paymentInfoCheck = paymentProcessQueryBiz.GetPaymentInfoCheck(this._orderParam.CardCash, this._orderParam.BuyerName, this._orderParam.MemberWay
                                , this._orderParam.AcntType, this._orderParam.VirtualCardKind, string.Empty, this._orderParam.CardNumber
                                , this._orderParam.CardYear, this._orderParam.CardMonth, this._orderParam.CardPwd, this._orderParam.SocialNo2
                                , this._orderParam.Xid, this._orderParam.Cavv, this._orderParam.KVPSessionkey, this._orderParam.KVPEncdata
                                , this._orderParam.Gbank, this._orderParam.DepositNm, this._orderParam.Eci);

                if (paymentInfoCheck.RetCode < 0)
                {
                    throw new PaymentProcessBizException(paymentInfoCheck.RetCode, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                this._orderParam.Gbank = paymentInfoCheck.Gbank;
                this._orderParam.DepositNm = paymentInfoCheck.DepositName;

                this._paymenPayMethodtInfo = paymentInfoCheck;
            }
            catch
            {
                throw new PaymentProcessBizException(-372, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 장바구니 주문건에 필수선택/추가구성 존재여부 조회

            isExistCartOptionInfo = paymentProcessQueryBiz.GetExistCartOptionInfo(this._orderParam.BasketPID).IsExist;

            #endregion

            #region 장바구니에 담긴 주문 건별로 점검

            foreach (PaymentGEPItemInfoT item in this._paymentGEPItemInfoList)
            {
                #region 변수 초기화

                sellOrderNo = 0;
                jaehuCostPrice = 0;

                #endregion

                #region 상품별 정책 조회

                PaymentDscontrPolicyInfoT dscontrPolicyInfo = paymentProcessQueryBiz.GetDscontrPolicyInfo(item.ItemNo, item.OrderNo);

                #endregion

                #region 내용 보정

                // 주문 수량 보전
                if (item.OrderCnt <= 0)
                    item.OrderCnt = 1;

                #endregion

                #region 판매시장 정상여부 확인

                if (string.IsNullOrEmpty(dscontrPolicyInfo.TradWay))
                {
                    throw new PaymentProcessBizException(-607, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                #endregion

                #region GlinkNation 체크

                // 이거 이상한 코드일세..
                if (!item.GlinkNation.Equals("SG", StringComparison.InvariantCultureIgnoreCase) &&
                    !item.GlinkNation.Equals("JP", StringComparison.InvariantCultureIgnoreCase))
                {
                    item.GlinkNation = string.Empty;
                }

                if (!item.GlinkNation.Equals("SG", StringComparison.InvariantCultureIgnoreCase) &&
                    !item.GlinkNation.Equals("JP", StringComparison.InvariantCultureIgnoreCase) &&
                    !item.GlinkNation.Equals("AC", StringComparison.InvariantCultureIgnoreCase))
                {
                    item.GlinkNation = string.Empty;
                }

                #endregion

                #region 샵주문 정보 입력

                if (!string.IsNullOrEmpty(this._orderParam.PrimaryCheckValue) && !this._orderParam.PrimaryCheckValue.Equals("KOR", StringComparison.InvariantCultureIgnoreCase))
                {
                    try
                    {
                        int retCode = paymentProcessQueryBiz.SetOrderSiteInfo(this._orderParam.PrimaryCheckValue
                            , item.ItemNo, dscontrPolicyInfo.OrderNo, this._orderParam.OrderDateTime, dscontrPolicyInfo.ShopGroupCd
                            , dscontrPolicyInfo.ShopGdlcCd, dscontrPolicyInfo.ShopGdmcCd, dscontrPolicyInfo.ShopGdscCd);

                        if (retCode != 0)
                        {
                            //throw new PaymentProcessBizException(-729, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                            throw new PaymentProcessBizException(-729, retCode.ToString());
                        }
                    }
                    catch (Exception ex)
                    {
                        //throw new PaymentProcessBizException(-729, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                        throw new PaymentProcessBizException(-729, ex.Message);
                    }
                }

                #endregion

                #region 공동구매 상품 존재 여부 체크

                PaymentExistResultT existGroupGoods = paymentProcessQueryBiz.GetExistGroupGoods(item.ItemNo);

                if (existGroupGoods.IsExist)
                {
                    throw new PaymentProcessBizException(-627, "공동구매 상품은 장바구니 주문을 하실 수 없습니다. 확인후 다시 주문해 주시기 바랍니다.");
                }

                if (dscontrPolicyInfo.GdShopkind == "8" || dscontrPolicyInfo.GdShopkind2 == "8" || dscontrPolicyInfo.GdShopkind3 == "8")
                {
                    throw new PaymentProcessBizException(-628, "공동구매 상품은 장바구니 주문을 하실 수 없습니다. 확인후 다시 주문해 주시기 바랍니다.");
                }

                #endregion

                #region GMall, 공구, 오픈마켓 상품에 대해 품절 체크

                if (dscontrPolicyInfo.TradWay.Equals("T1", StringComparison.InvariantCultureIgnoreCase) ||
                    dscontrPolicyInfo.TradWay.Equals("T4", StringComparison.InvariantCultureIgnoreCase) ||
                    dscontrPolicyInfo.TradWay.Equals("T6", StringComparison.InvariantCultureIgnoreCase))
                {
                    PaymentExistResultT existDsprice = paymentProcessQueryBiz.GetExistDsprice(item.ItemNo, item.OrderCnt, (decimal)item.OrderPrice);

                    if (!existDsprice.IsExist)
                    {
                        paymentProcessQueryBiz.UpdateCartOrderFail(this._orderParam.BasketPID, this._orderParam.CustNo, item.ItemNo);

                        exItem.Add(item.ItemNo);
                    }
                }

                if (exItem.Count > 0)
                {
                    throw new PaymentProcessBizException(-509, "상품의 재고가 부족합니다.");
                }

                #endregion

                #region 판매자 직결제 정보 조회

                PaymentAccountmDirectInfoT accountmDirectInfo = paymentProcessQueryBiz.GetAccountmDirectInfo(dscontrPolicyInfo.SellCustNo);

                if (accountmDirectInfo == null)
                {
                    accountmDirectInfo = new PaymentAccountmDirectInfoT
                    {
                        SCustNo = string.Empty,
                        Seqno = 0
                    };
                }

                #endregion

                #region 스탬프 발급 수량 조회

                PaymentStickerGoodsInfoT stickerGoodsInfo = paymentProcessQueryBiz.GetStickerGoodsInfo(item.ItemNo, this._orderParam.OrderDateTime);

                if (stickerGoodsInfo == null)
                {
                    stickerGoodsInfo = new PaymentStickerGoodsInfoT
                    {
                        StickerCnt = 0,
                        WhoFee = string.Empty
                    };
                }

                stickerGoodsInfo.StickerCnt = stickerGoodsInfo.StickerCnt * item.OrderCnt;

                #endregion

                #region 선택정보 및 옵션상품에 대한 체크 기능 변경/옵션상품값 체크 (선택옵션의 합을 구함)

                PaymentCartOptionInfoSumT cartOptionInfoSum;
                if (isExistCartOptionInfo)
                {
                    try
                    {
                        cartOptionInfoSum = paymentProcessQueryBiz.GetCartOptionInfoSum(this._orderParam.BasketPID, item.OrderIdx);
                    }
                    catch
                    {
                        throw new PaymentProcessBizException(-505, "옵션상품가격 처리 시 에러 발생.");
                    }
                }
                else
                {
                    cartOptionInfoSum = new PaymentCartOptionInfoSumT();
                }

                #endregion

                #region 복수구매할인 주문인 경우 0원 주문 가능

                if (item.BundCondNo > 0 ||
                    (dscontrPolicyInfo.GdShopkind.Equals("U", StringComparison.InvariantCultureIgnoreCase) ||
                    dscontrPolicyInfo.GdShopkind2.Equals("U", StringComparison.InvariantCultureIgnoreCase) ||
                    dscontrPolicyInfo.GdShopkind3.Equals("U", StringComparison.InvariantCultureIgnoreCase)))
                {
                    if ((item.OrderPrice * item.OrderCnt) + cartOptionInfoSum.SelItemPrice - item.CostPrice < 0)
                    {
                        throw new PaymentProcessBizException(-608, "0원 미만 주문.");
                    }
                }
                else
                {
                    if ((item.OrderPrice * item.OrderCnt) + cartOptionInfoSum.SelItemPrice - item.CostPrice <= 0)
                    {
                        throw new PaymentProcessBizException(-123, "0원 이하 주문.");
                    }
                }

                #endregion

                #region 제휴ID에 따른 제휴사 SET

                if (Validate.IsNumeric(item.Jaehuid) && item.Jaehuid.Length == 9)
                {
                    if (!paymentProcessQueryBiz.GetExistBannerContract(item.Jaehuid, this._orderParam.OrderDateTime).IsExist)
                    {
                        orderSrc = "F";
                    }
                }

                orderSrc = item.Jaehuid == "200002328" ? "F" : item.Jaehuid;

                #endregion

                #region 할인금액이 넘어왔을 경우 실제로 장바구니 할인 테이블에 할인 내역 존재하는지 체크

                if (item.CostPrice > 0 && !paymentProcessQueryBiz.GetExistCartCostInfo(this._orderParam.BasketPID, item.OrderIdx).IsExist)
                {
                    throw new PaymentProcessBizException(-112, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                if (item.DealerCostPrice > 0 && item.DealerCostBasisNo <= 0)
                {
                    throw new PaymentProcessBizException(-128, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                #endregion

                #region 배송비에 따른 배송비 그룹 번호 확인

                if (dscontrPolicyInfo.DeliveryFee != 0 && dscontrPolicyInfo.DeliveryGroupNo == 0)
                {
                    throw new PaymentProcessBizException(-209, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                #endregion

                #region 최소구매수량, 구매단위 확인

                if (item.OrderCnt < dscontrPolicyInfo.MinBuyCnt)
                {
                    throw new PaymentProcessBizException(-605, "주문 수량은 최소 구매 수량보다 많아야 합니다. 주문은 접수되지 않았습니다.");
                }

                if ((item.OrderCnt % (dscontrPolicyInfo.BuyUnitCnt > 0 ? dscontrPolicyInfo.BuyUnitCnt : 1)) != 0)
                {
                    throw new PaymentProcessBizException(-606, "주문 수량은 구매단위의 배수이어야 합니다. 주문은 접수되지 않았습니다.");
                }

                #endregion

                #region PDF 할인 정보 조회

                PaymentPdcDiscountPriceT pdcDiscountPrice = paymentProcessQueryBiz.GetPdcDiscountPrice(item.Jaehuid, item.ItemNo);

                if (pdcDiscountPrice == null)
                {
                    pdcDiscountPrice = new PaymentPdcDiscountPriceT { PdcDiscountPrice = 0 };
                }
                else
                {
                    if (!pdcDiscountPrice.PdcDiscountPriceSpecified)
                        pdcDiscountPrice.PdcDiscountPrice = 0;
                }

                #endregion

                #region 할인 정보

                List<PaymentDataCostBasisInfoT> costBasisInfo = paymentProcessQueryBiz.GetCostBasisInfo(this._orderParam.PackNo, dscontrPolicyInfo.OrderNo, item.ItemNo, item.OrderCnt, item.OrderPrice, this._orderParam.BasketPID
                                    , item.OrderIdx, pdcDiscountPrice.PdcDiscountPrice, item.BundSatisCnt, item.PackSatisCnt, dscontrPolicyInfo.GdShopkind
                                    , dscontrPolicyInfo.GdShopkind2, dscontrPolicyInfo.GdShopkind3, dscontrPolicyInfo.DeliveryFee
                                    , dscontrPolicyInfo.DeliveryFeeCondition, dscontrPolicyInfo.DeliveryFeePolicy, cartOptionInfoSum.SelItemPrice, this._orderParam.OrderDateTime);

                if (costBasisInfo != null && costBasisInfo.Count > 0)
                {
                    // 판매자 공제금 처리를 위한 제휴할인액
                    jaehuCostPrice = Util.GetSafeInt(costBasisInfo.Sum(x => x.JaehuCostPrice));

                    //복수구매할인 원단위 절삭
                    if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("BDC", StringComparison.InvariantCultureIgnoreCase)))
                    {
                        itemDiscountPrice = 0;
                        itemDiscountLastCost = 0;

                        itemDiscountPrice =
                            (from x in costBasisInfo
                             where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("BDC", StringComparison.InvariantCultureIgnoreCase)
                             select x).Sum(x => x.CostPrice);
                        itemDiscountLastCost = itemDiscountPrice > 0 ? itemDiscountPrice % 10 : 0;

                        if (itemDiscountLastCost != 0)
                        {
                            if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("BDC", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)))
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("BDC", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x=> x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                            else
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("BDC", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("ME", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x=> x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                        }
                    }

                    // 세트구매할인 원단위 절삭
                    if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("SET", StringComparison.InvariantCultureIgnoreCase)))
                    {
                        itemDiscountPrice = 0;
                        itemDiscountLastCost = 0;

                        itemDiscountPrice =
                            (from x in costBasisInfo
                             where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("SET", StringComparison.InvariantCultureIgnoreCase)
                             select x).Sum(x => x.CostPrice);
                        itemDiscountLastCost = itemDiscountPrice > 0 ? itemDiscountPrice % 10 : 0;

                        if (itemDiscountLastCost != 0)
                        {
                            if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("SET", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)))
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("SET", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x=> x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                            else
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("SET", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("ME", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x=> x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                        }
                    }

                    // Pack할인 원단위 절삭
                    if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CBD", StringComparison.InvariantCultureIgnoreCase)))
                    {
                        itemDiscountPrice = 0;
                        itemDiscountLastCost = 0;

                        itemDiscountPrice =
                            (from x in costBasisInfo
                             where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CBD", StringComparison.InvariantCultureIgnoreCase)
                             select x).Sum(x => x.CostPrice);
                        itemDiscountLastCost = itemDiscountPrice > 0 ? itemDiscountPrice % 10 : 0;

                        if (itemDiscountLastCost != 0)
                        {
                            if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CBD", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)))
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CBD", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("GD", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x => x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                            else
                            {
                                (from x in costBasisInfo
                                 where x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CBD", StringComparison.InvariantCultureIgnoreCase) && x.WhoFee.Equals("ME", StringComparison.InvariantCultureIgnoreCase)
                                 select x).ToList().ForEach(x => x.CostPrice = x.CostPrice - itemDiscountLastCost);
                            }
                        }
                    }

                    // fix : 나중에 해결하자.
                    // 카테고리 할인 확인
                    if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.BasisKind.Equals("CPD", StringComparison.InvariantCultureIgnoreCase)))
                    {

                    }

                    // 주문별 할인 총액 계산
                    itemCurrentCostPrice = 0;
                    itemCurrentCostPrice = Util.GetSafeInt(costBasisInfo.Sum(x => x.CostPrice));

                    if (itemCurrentCostPrice != item.CostPrice)
                    {
                        if (costBasisInfo.Any(x => x.ItemNo == item.ItemNo && x.BuyOrderNo == dscontrPolicyInfo.OrderNo && x.CostBasisNo == 2238819))
                        {
                            throw new PaymentProcessBizException(-124, "할인 금액 오류입니다. 주문은 접수되지 않았습니다.");
                        }
                        else
                        {
                            throw new PaymentProcessBizException(-122, "할인 금액 오류입니다. 주문은 접수되지 않았습니다.");
                        }
                    }

                    costBasisNo = item.CostPrice > 0 ? -1 : 0;

                    paymentDataCostBasisInfoList.AddRange(costBasisInfo);
                }
                #endregion

                #region 변수들 SET

                if (this._orderParam.CardCash.Equals("DIRECT", StringComparison.InvariantCultureIgnoreCase))
                {
                    orderSrc = "F";
                    orderKind = "D";
                }

                #endregion

                #region 팔자주문 번호 처리

                if (!this._orderParam.OrderWayKind.Equals("BAR", StringComparison.InvariantCultureIgnoreCase))
                {
                    try
                    {
                        PaymentSellOrderInfoT sellOrderInfo = paymentProcessQueryBiz.GetSellOrderInfo(this._orderParam.OrderWayKind
                                            , item.ItemNo, item.OrderPrice, item.OrderCnt, "Y");

                        if (sellOrderInfo == null)
                        {
                            sellOrderInfo = new PaymentSellOrderInfoT
                            {
                                ContrOrderNo = 0,
                                ContrSellCustNo = string.Empty,
                                SellStat = string.Empty
                            };
                        }

                        sellOrderInfo.ContrSellCustNo = string.IsNullOrEmpty(sellOrderInfo.ContrSellCustNo) ? string.Empty : sellOrderInfo.ContrSellCustNo.Trim();

                        if (sellOrderInfo.ContrOrderNo == 0 && string.IsNullOrEmpty(sellOrderInfo.ContrSellCustNo))
                        {
                            paymentProcessQueryBiz.UpdateCartOrderFail(this._orderParam.BasketPID, this._orderParam.CustNo, item.ItemNo);

                            throw new PaymentProcessBizException(-739, string.Format("재고 부족(상품번호 : {0})", item.ItemNo));
                        }

                        if (sellOrderInfo.ContrOrderNo == -1)
                        {
                            throw new PaymentProcessBizException(-753, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                        }

                        sellOrderNo = sellOrderInfo.ContrOrderNo;
                        dscontrPolicyInfo.SellCustNo = sellOrderInfo.ContrSellCustNo;
                    }
                    catch
                    {
                        throw new PaymentProcessBizException(-738, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }
                }

                #endregion

                #region 공급원가 기록

                if (!this._orderParam.OrderWayKind.Equals("BAR", StringComparison.InvariantCultureIgnoreCase))
                {
                    try
                    {
                        PaymentItemCostCalculateInfoT itemCostCalculateInfo = paymentProcessQueryBiz.GetItemCostCalculateInfo(item.ItemNo, dscontrPolicyInfo.OrderNo, dscontrPolicyInfo.SellCustNo
                                                , this._orderParam.OrderWayKind, item.OrderPrice, item.OrderCnt, orderKind, dscontrPolicyInfo.TradWay
                                                , dscontrPolicyInfo.GdShopkind, dscontrPolicyInfo.GdShopkind2, dscontrPolicyInfo.GdShopkind3
                                                , this._orderParam.LoginID, 0, 0, 0, string.Empty, sellOrderNo);

                        if (itemCostCalculateInfo == null)
                        {
                            throw new PaymentProcessBizException(-743, "주문주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                        }

                        if (itemCostCalculateInfo.RetCode < 0)
                        {
                            throw new PaymentProcessBizException(itemCostCalculateInfo.RetCode, "주문주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                        }

                        paymentOrderItemCostInfoList.Add(new PaymentOrderItemCostInfoT
                        {
                            ItemNo = item.ItemNo,
                            OrderNo = dscontrPolicyInfo.OrderNo,
                            SellerCustNo = dscontrPolicyInfo.SellCustNo,
                            SellerType = itemCostCalculateInfo.SellerType,
                            SellerCustType = itemCostCalculateInfo.SellerCustType,
                            OrderWayKind = this._orderParam.OrderWayKind,
                            OrderKind = orderKind,
                            ContrWay = dscontrPolicyInfo.TradWay,
                            GdShopKind1 = dscontrPolicyInfo.GdShopkind,
                            GdShopKind2 = dscontrPolicyInfo.GdShopkind2,
                            GdShopKind3 = dscontrPolicyInfo.GdShopkind3,
                            SettleFlag = itemCostCalculateInfo.SettleFlag,
                            WhoFee = itemCostCalculateInfo.WhoFee,
                            HowFee = itemCostCalculateInfo.HowFee,
                            SettleUom = itemCostCalculateInfo.SettleUom,
                            ItemCost = itemCostCalculateInfo.ItemCost,
                            ItemRate = itemCostCalculateInfo.ItemRate,
                            TransPrice = itemCostCalculateInfo.TransPrice,
                            SettleType = itemCostCalculateInfo.SettleType,
                            RegDt = this._orderParam.OrderDateTime,
                            RegId = this._orderParam.LoginID,
                            ChgDt = this._orderParam.OrderDateTime,
                            ChgId = this._orderParam.LoginID
                        });
                    }
                    catch
                    {
                        throw new PaymentProcessBizException(-736, "주문주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }
                }

                #endregion

                #region 상품에 대한 주문 정보

                try
                {
                    paymentDataOrderInfoList.Add(new PaymentDataOrderInfoT
                    {
                        PackNo = this._orderParam.PackNo,
                        OrderNo = dscontrPolicyInfo.OrderNo,
                        ItemNo = item.ItemNo,
                        OrderPrice = item.OrderPrice,
                        OrderCnt = item.OrderCnt,
                        OrderIdx = item.OrderIdx,
                        Interval = item.Interval,
                        TradWay = dscontrPolicyInfo.TradWay,
                        GdBuyerMlRate = dscontrPolicyInfo.GdBuyerMlRate,
                        GdBuddyMlRate = dscontrPolicyInfo.GdBuddyMlRate,
                        OrderWayKind = this._orderParam.OrderWayKind,
                        DeliveryFee = dscontrPolicyInfo.DeliveryFee,
                        DeliveryGroupNo = dscontrPolicyInfo.DeliveryGroupNo,
                        CostPrice = item.CostPrice,
                        CostBasisNo = costBasisNo,
                        DelMemo = item.DelMemo,
                        DealerCostPrice = item.DealerCostPrice,
                        DealerCostBasisNo = item.DealerCostBasisNo,
                        DntNo = dscontrPolicyInfo.DntNo,
                        DntSaveMoney = dscontrPolicyInfo.DntSaveMoney,
                        MinSellOrderNo = sellOrderNo,
                        CouponNo = "0",
                        StickerCnt = stickerGoodsInfo.StickerCnt,
                        StickerWhofee = stickerGoodsInfo.WhoFee,
                        OrderSrc = orderSrc,
                        PolicyNo = item.PolicyNo,
                        JaehuCostPrice = jaehuCostPrice,
                        BundCondNo = item.BundCondNo,
                        BundSatisCnt = item.BundSatisCnt,
                        TaxIssueYn = item.TaxIssueYn,
                        CashIssueYn = item.CashIssueYn,
                        SCustNo = accountmDirectInfo.SCustNo,
                        AdNo = accountmDirectInfo.Seqno,
                        SetCostNo = item.SetCostNo,
                        SetCondNo = item.SetCondNo,
                        GlinkNation = item.GlinkNation,
                        PackCostNo = item.PackCostNo,
                        PackCondNo = item.PackCondNo,
                        PackSatisCnt = item.PackSatisCnt,
                        OutOrderNo = item.OutOrderNo,
                        SelItemPrice = cartOptionInfoSum.SelItemPrice,
                        OptSelPrice = cartOptionInfoSum.OptSelPrice,
                        OptAddPrice = cartOptionInfoSum.OptAddPrice,
                        GepOrderNo = Convert.ToInt64(item.OutOrderNo),
                    });
                }
                catch
                {
                    throw new PaymentProcessBizException(-1102, "주문주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                #endregion

            }

            #endregion

            #region 상품수량 맞는지 확인

            if (this._paymentGEPItemInfoList.Count != paymentDataOrderInfoList.Count)
            {
                throw new PaymentProcessBizException(-1103, "주문주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            // fix : 아래는 주문 데이터 입력전까지 중간에 행해지는데 마땅한데가 없어서 일단 여기 넣음

            #region 구매 제한 수량 초과 여부 점검

            if (paymentProcessQueryBiz.GetOrderLimitItemCount(this._orderParam.CustNo, this._orderParam.PackNo, this._orderParam.OrderDateTime) > 0)
            {
                throw new PaymentProcessBizException(-609, "구매 제한 수량을 초과한 상품이 존재합니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 개인별 할인쿠폰의 사용여부를 체크

            if (paymentDataCostBasisInfoList.Any(x => x.PackNo == this._orderParam.PackNo && x.BasisKind.Equals("PCP", StringComparison.InvariantCultureIgnoreCase)))
            {
                var groupedCostBasisInfo =
                    (from x in paymentDataCostBasisInfoList
                     where x.PackNo == this._orderParam.PackNo && x.BasisKind.Equals("PCP", StringComparison.InvariantCultureIgnoreCase)
                     group x by x.CouponNo into g
                     select new { CouponNo = g.Key, Count = g.Count() }
                    );

                if (groupedCostBasisInfo.Max(x=>x.Count) > 1)
                {
                    throw new PaymentProcessBizException(-107, "중복 할인쿠폰이 존재합니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                if (paymentProcessQueryBiz.GetExistUsedCoupon(this._orderParam.CustNo, this._orderParam.PackNo).IsExist)
                {
                    throw new PaymentProcessBizException(-107, "이미 사용한 할인쿠폰이 존재합니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                if (paymentProcessQueryBiz.GetNotExistCoupon(this._orderParam.CustNo, this._orderParam.PackNo, this._orderParam.OrderDateTime).IsExist)
                {
                    throw new PaymentProcessBizException(-120, "받으신 할인쿠폰이 존재하지 않습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 주문 유입 채널정보

            // 주문시 직방 체크 공통
            PaymentJaehuTypeInfoT jaehuTypeCheck = paymentProcessQueryBiz.GetJaehuTypeCheck(this._orderParam.JaehuID, this._orderParam.OrderDateTime);

            // 주문 유입 채널정보
            if (Validate.IsNumeric(this._orderParam.JaehuID) && this._orderParam.JaehuID.Length == 9)
            {
                if (this._orderParam.JaehuID == "200002328" || paymentProcessQueryBiz.GetNotExistContractInfo(this._orderParam.JaehuID, this._orderParam.OrderDateTime).IsExist)
                {
                    this._orderParamEtc.OrderJaehuID = "F";
                }
                else
                {
                    this._orderParamEtc.OrderJaehuID = this._orderParam.JaehuID;
                }
            }
            else if (string.IsNullOrEmpty(this._orderParam.JaehuID))
            {
                this._orderParamEtc.OrderJaehuID = "D";
            }

            this._orderParamEtc.DirectYN = jaehuTypeCheck.DirectYN;

            #endregion

            // [끝] 아래는 주문 데이터 입력전까지 중간에 행해지는데 마땅한데가 없어서 일단 여기 넣음

            this._paymentOrderItemCostInfoList = paymentOrderItemCostInfoList;
            this._paymentDataOrderInfoList = paymentDataOrderInfoList;
            this._paymentDataCostBasisInfoList = paymentDataCostBasisInfoList;
        }
        /// <summary>
        /// 주문 실행
        /// </summary>
        /// <param name="orderParam"></param>
        /// <param name="orderParamEtc"></param>
        /// <param name="paymenPayMethodtInfo"></param>
        /// <param name="paymentDataOrderInfoList"></param>
        /// <param name="paymentDataCostBasisInfoList"></param>
        /// <param name="paymentOrderItemCostInfoList"></param>
        /// <returns></returns>
        //private List<PaymentGEPOrderMultiResultT> PaymentStartOrder()
        private PaymentGEPPaymentProcessResultT PaymentExecuteOrder(PaymentOrderMultiParamT orderParam
			, PaymentOrderMultiParamEtcT orderParamEtc
			, PaymentInfoCheckT paymenPayMethodtInfo
			, List<PaymentDataOrderInfoT> paymentDataOrderInfoList
			, List<PaymentDataCostBasisInfoT> paymentDataCostBasisInfoList
			, List<PaymentOrderItemCostInfoT> paymentOrderItemCostInfoList)
        {
            PaymentGEPPaymentProcessResultT orderResult = new PaymentGEPPaymentProcessResultT();

            PaymentBiz paymentBiz = new PaymentBiz();
            PaymentProcessQueryBiz paymentProcessQueryBiz = new PaymentProcessQueryBiz();

            orderResult.Result = new GEPBaseResultT();

            #region 주문

            #region 주문 실행

            PaymentGEPPaymentProcessResultT paymentExecuteOrderResult = paymentProcessQueryBiz.PaymentExecuteOrder(
                orderParam
                , orderParamEtc
                , paymenPayMethodtInfo
                , paymentDataOrderInfoList
                , paymentDataCostBasisInfoList
                , paymentOrderItemCostInfoList);

            #endregion

            #region 주문 이후 처리

            GEPBaseResultT followUpResult = PaymentExecuteOrderFollowUp(orderParam);

            if (followUpResult.RetCode != 0)
            {
                orderResult.Result = followUpResult;
            }

            #endregion

            #region 주문 내역 조회

            List<PaymentGEPOrderMultiResultT> orderItemList = GetExecuteOrderItemList(paymentDataOrderInfoList);

            #endregion

            #region 주문 CleanUp

            try
            {
                PaymentExecuteOrderCleanUp(orderParam);
            }
            catch
            {

            }

            #endregion

            paymentExecuteOrderResult.OrderResultList.AddRange(orderItemList);

            #endregion

            #region 주문 결과 처리

            if (paymentExecuteOrderResult.OrderResultList == null)
            {
                orderResult.Result.RetCode = -1107;
                orderResult.Result.RetMessage = "주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다";
            }
            else
            {
                if (paymentExecuteOrderResult.OrderResultList.Count <= 0)
                {
                    orderResult.Result.RetCode = -1108;
                    orderResult.Result.RetMessage = "주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다";
                }
                else
                {
                    orderResult.Result.RetCode = paymentExecuteOrderResult.OrderResultList[0].RetCode;
                    orderResult.Result.RetMessage = paymentExecuteOrderResult.OrderResultList[0].RetReason;

                    orderResult.OrderResultList.AddRange(paymentExecuteOrderResult.OrderResultList);
                }
            }

            #endregion

            return orderResult;
        }
        /// <summary>
        /// 주문 Parameter Validator
        /// </summary>
        private void PaymentValidateParameter()
        {
            // pid 확인
            Guid basketPid = new Guid();
            if (!Guid.TryParse(_orderParam.BasketPID, out basketPid))
            {
                throw new PaymentProcessBizException(-8, "주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다.");
            }

            // 회원만 가능
            if (string.IsNullOrEmpty(_orderParam.MemberWay) || !_orderParam.MemberWay.Equals("MEM", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new PaymentProcessBizException(-404, "회원 구분을 알 수 없습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            // 회원번호 확인
            if (string.IsNullOrEmpty(_orderParam.CustNo))
            {
                throw new PaymentProcessBizException(-409, "회원 구분을 알 수 없습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            // custNo로 비회원 여부 확인
            if (this._orderParam.CustNo.Equals("100543129", StringComparison.InvariantCultureIgnoreCase))
            {
                this._orderParam.MemberWay = "NON";
            }

            PaymentCustomInfoT paymentCustomInfo = new PaymentBiz().GetPaymentCustomInfo(_orderParam.CustNo);

            if (!paymentCustomInfo.LoginID.Equals(_orderParam.LoginID, StringComparison.InvariantCultureIgnoreCase))
            {
                throw new PaymentProcessBizException(-420, "회원 정보가 올바르지 않습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            if (string.IsNullOrEmpty(_orderParam.OrderWayKind) || _orderParam.OrderWayKind.Length < 2)
            {
                throw new PaymentProcessBizException(-3, "주문유형을 알 수 없습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #region 결제 수단

            if (_orderParam.AcntType.Equals("A3", StringComparison.InvariantCultureIgnoreCase)
                && _orderParam.CardCash.Equals("CASH", StringComparison.InvariantCultureIgnoreCase)
                && (string.IsNullOrEmpty(_orderParam.Vaccount) || _orderParam.Vaccount.Length < 3)
                && !_orderParam.OnCreditYN.Equals("N", StringComparison.InvariantCultureIgnoreCase)
                && !_orderParam.OnCreditYN.Equals("M", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new PaymentProcessBizException(-344, "계좌정보를 찾을 수 없습니다. 주문은 접수되지 않았습니다.");
            }

            if ((!_orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase) && _orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase))
                || (_orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase) && !_orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase)))
            {
                throw new PaymentProcessBizException(-341, "PAYPAL EXPRESS CHECKOUT 정보가 누락되었습니다. 주문은 접수되지 않았습니다.");
            }

            if (_orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase)
                && _orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase)
                && (string.IsNullOrEmpty(_orderParam.PaypalToken) || _orderParam.PaypalToken.Length < 3)
                && _orderParam.PaypalNo <= 0)
            {
                throw new PaymentProcessBizException(-342, "PAYPAL EXPRESS CHECKOUT 정보가 누락되었습니다. 주문은 접수되지 않았습니다.");
            }

            if (_orderParam.AcntType.Equals("I2", StringComparison.InvariantCultureIgnoreCase)
                && _orderParam.CardCash.Equals("FOREIGN_CARD", StringComparison.InvariantCultureIgnoreCase)
                && _orderParam.BibitNo <= 0)
            {
                throw new PaymentProcessBizException(-354, "해외카드 결제 정보가 누락되었습니다. 결제가 이루어지지 않았으니, 확인후 다시 주문해 주시기 바랍니다.");
            }

            if (_orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase)
                && string.IsNullOrEmpty(_orderParam.SettleLimitKey))
            {
                throw new PaymentProcessBizException(-364, "PAYPAL EXPRESS CHECKOUT 정보가 누락되었습니다. 주문은 접수되지 않았습니다.");
            }

            if (_orderParam.AcntType.Equals("I2", StringComparison.InvariantCultureIgnoreCase)
                && string.IsNullOrEmpty(_orderParam.SettleLimitKey))
            {
                throw new PaymentProcessBizException(-365, "해외카드 결제 정보가 누락되었습니다. 결제가 이루어지지 않았으니, 확인후 다시 주문해 주시기 바랍니다.");
            }

            #endregion

            #region 배송 정보

            if (string.IsNullOrEmpty(_orderParam.ReceiverZipCode.Trim()) || string.IsNullOrEmpty(_orderParam.ReceiverAddr1.Trim())
                || string.IsNullOrEmpty(_orderParam.ReceiverAddr2.Trim()) || string.IsNullOrEmpty(_orderParam.ReceiverName.Trim())
                || string.IsNullOrEmpty(_orderParam.ReceiverPhoneNo.Trim())
                || _orderParam.ReceiverZipCode.Equals("N/A", StringComparison.InvariantCultureIgnoreCase)
                || _orderParam.ReceiverAddr1.Equals("N/A", StringComparison.InvariantCultureIgnoreCase)
                || _orderParam.ReceiverAddr2.Equals("N/A", StringComparison.InvariantCultureIgnoreCase)
                || _orderParam.ReceiverName.Equals("N/A", StringComparison.InvariantCultureIgnoreCase)
                || _orderParam.ReceiverPhoneNo.Equals("N/A", StringComparison.InvariantCultureIgnoreCase))
            {
                throw new PaymentProcessBizException(-202, "배송지 정보에 문제가 있습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion
        }