Exemplo n.º 1
0
        //Gep통합주문에서 GepTransInfo 변환
        protected GepTransInfo CovertTo(GEPOrderInfoT a, ref GepTransInfo b)
        {
            //Gep통합주문정보 --> TransInfo
            b.gep_order_no = a.GEPOrderNo;
            b.gep_order_count = a.GEPOrder.OrderCnt;
            b.gep_order_dt = a.GEPOrder.OrderDt;
            b.gep_payment_dt = a.GEPOrder.PaymentDt;
            //Gep통합주무정보 --> item 정보
            b.gep_item_id = Util.GetSafeLong(a.Item.gep_id);
            b.gep_item_ename = a.Item.ExportItemName;

            return b;
        }
Exemplo n.º 2
0
 internal void InsertGEPOrderInfo(GEPOrderInfoT gepOrderInfoT)
 {
     new MongoDacHelper(GepMongoEnv.ConfigSection.GEP, GepMongoEnv.Database.GEP, GepMongoEnv.Collection.GEP_ORDER)
         .Insert<GEPOrderInfoT>(gepOrderInfoT, SafeMode.True);
 }
Exemplo n.º 3
0
        //장바구니 넣기 진입점 - 리스트로 파라미터 값들이 바로 넘어 왔을 때
        public GmarketBasketAddResultT BasketInput(List<BasketInputParamT> lstBasketInputParam)
        {
            GEPOrderBiz gepBiz = new GEPOrderBiz();
            BasketParamT basketParam = new BasketParamT();
            AvailableBasketInfoResultT availableBasketInfoResult = new AvailableBasketInfoResultT();
            GmarketBasketAddResultT gmktBasketInputResult = new GmarketBasketAddResultT();
            gmktBasketInputResult.Result = new GEPBaseResultT();
            GEPBaseResultT insertDBResult = new GEPBaseResultT();
            List<BasketGepOrderNoT> basketGepOrderNos = new List<BasketGepOrderNoT>();
            BasketCurrCountT basketCurrentCnt = new BasketCurrCountT();

            long conGepOrderNo;
            int inputErrorCnt = 0, orderImpossCnt = 0;
            string basketPid = CheckBasketPid(lstBasketInputParam[0].CustNo);
            int lstBasketInputParamCnt = lstBasketInputParam.Count;

            //상품은 100개 까지만 담을 수 있다.
            if (basketPid != string.Empty)
            {
                basketCurrentCnt = GetBasketCurrentCount(basketPid);
                int cartCnt = basketCurrentCnt.NationalCnt;

                if ((cartCnt + lstBasketInputParamCnt) > 100)
                {
                    gmktBasketInputResult.Result.RetCode = -10;
                    gmktBasketInputResult.Result.RetMessage = "현재 장바구니에 " + cartCnt + "건의 주문건이 있습니다.";

                    return gmktBasketInputResult;
                }
            }

            //주문 불가 상품(-970에러)인지 체크
            if (lstBasketInputParam[0].InputWay == "C")
            {
                for (int i = 0; i < lstBasketInputParamCnt; i++)
                {
                    GEPOrderInfoT gepOrderInfo = new GEPOrderInfoT();
                    GmarketBasketAddT checkOrderStatusRtn = new GmarketBasketAddT();
                    if (long.TryParse(lstBasketInputParam[i].GEPOrderNo, out conGepOrderNo))
                    {
                        gepOrderInfo = GetGEPOrderInfo(conGepOrderNo);
                    }
                    if (gepOrderInfo != null)
                    {
                        if (gepOrderInfo.GEPOrder.Status == GepOrderStatus.Conclusion && (gepOrderInfo.GMKTOrder.OrderStatus == GmktOrderStatus.None || gepOrderInfo.GMKTOrder.OrderStatus == GmktOrderStatus.ConclusionFail))
                        {
                            checkOrderStatusRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo;
                            checkOrderStatusRtn.RetCode = "0";
                            checkOrderStatusRtn.RetMessage = "주문 가능 상태 체크 성공";
                        }
                        else
                        {
                            orderImpossCnt += 1;
                            checkOrderStatusRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo;
                            checkOrderStatusRtn.RetCode = "970";
                            checkOrderStatusRtn.RetMessage = "상품이 주문 가능 상태가 아닙니다.";
                        }
                        gmktBasketInputResult.AddResultList.Add(checkOrderStatusRtn);
                    }
                }
                if (orderImpossCnt > 0)
                {
                    gmktBasketInputResult.Result.RetCode = -1;
                    gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패";

                    return gmktBasketInputResult;
                }
                else
                {
                    gmktBasketInputResult.AddResultList.Clear();
                }
            }

            //장바구니 중복 담긴 상품인지 체크
            if (basketPid != string.Empty)
            {
                int duplicaBasketCnt = 0;
                basketGepOrderNos = GetBasketGepOrderNo(basketPid);
                for (int i = 0; i < lstBasketInputParamCnt; i++)
                {
                    GmarketBasketAddT checkDuplicaRtn = new GmarketBasketAddT();

                    BasketGepOrderNoT result = basketGepOrderNos.Find(
                        delegate(BasketGepOrderNoT gepOrderNo)
                        {
                            return gepOrderNo.GepOrderNo.ToString() == lstBasketInputParam[i].GEPOrderNo;
                        }
                    );
                    if (result != null)
                    {
                        duplicaBasketCnt += 1;
                        checkDuplicaRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo;
                        checkDuplicaRtn.RetCode = "1001";
                        checkDuplicaRtn.RetMessage = "이미 장바구니에 담긴 상품이 있습니다.";
                    }
                    else
                    {
                        checkDuplicaRtn.GepOrderNo = lstBasketInputParam[i].GEPOrderNo;
                        checkDuplicaRtn.RetCode = "0";
                        checkDuplicaRtn.RetMessage = "중복 체크 성공";
                    }
                    gmktBasketInputResult.AddResultList.Add(checkDuplicaRtn);
                }

                if (duplicaBasketCnt > 0)
                {
                    gmktBasketInputResult.Result.RetCode = -1;
                    gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패";

                    return gmktBasketInputResult;
                }
                else
                {
                    gmktBasketInputResult.AddResultList.Clear();
                }
            }

            if (lstBasketInputParam.Count > 0)
            {
                for (int itemIdx = 0; itemIdx < lstBasketInputParamCnt; itemIdx++)
                {
                    availableBasketInfoResult.Result = new GEPBaseResultT();
                    GmarketBasketAddT checkInsertableInfo = new GmarketBasketAddT();
                    basketParam = MakeBasketParam(lstBasketInputParam[itemIdx]);
                    availableBasketInfoResult = InsertableBasketInfo(basketParam);

                    checkInsertableInfo.GepOrderNo = lstBasketInputParam[itemIdx].GEPOrderNo;
                    checkInsertableInfo.RetCode = availableBasketInfoResult.Result.RetCode.ToString();
                    checkInsertableInfo.RetMessage = availableBasketInfoResult.Result.RetMessage;

                    gmktBasketInputResult.AddResultList.Add(checkInsertableInfo);

                    if (availableBasketInfoResult.Result.RetCode != 0)
                    {
                        inputErrorCnt += 1;
                        gmktBasketInputResult.Result.RetCode = -1;
                        gmktBasketInputResult.Result.RetMessage = "장바구니담기 실패";

                        if (long.TryParse(lstBasketInputParam[itemIdx].GEPOrderNo, out conGepOrderNo))
                        {
                            try
                            {
                                gepBiz.InsertDisableOrder(conGepOrderNo);
                            }
                            catch (Exception e)
                            {
                            }
                        }
                    }
                }

                if (inputErrorCnt == 0)
                {
                    gmktBasketInputResult.AddResultList.Clear();
                    for (int itemIdx = 0; itemIdx < lstBasketInputParamCnt; itemIdx++)
                    {
                        GmarketBasketAddT gmktBasketRtn = new GmarketBasketAddT();
                        basketParam = MakeBasketParam(lstBasketInputParam[itemIdx]);
                        insertDBResult = BasketInput(basketParam);

                        gmktBasketRtn.GepOrderNo = basketParam.GEPOrderNo;
                        gmktBasketRtn.RetCode = insertDBResult.RetCode.ToString();
                        gmktBasketRtn.RetMessage = insertDBResult.RetMessage;

                        if (gmktBasketRtn.RetCode != "0")
                        {
                            if (long.TryParse(lstBasketInputParam[itemIdx].GEPOrderNo, out conGepOrderNo))
                            {
                                try
                                {
                                    gepBiz.InsertDisableOrder(conGepOrderNo);
                                }
                                catch (Exception e)
                                {
                                }
                            }
                        }

                        gmktBasketInputResult.AddResultList.Add(gmktBasketRtn);
                    }
                }
            }
            return gmktBasketInputResult;
        }
Exemplo n.º 4
0
        private long InsertOrderInfoToGEP(eBayOrderT ebayOrderT)
        {
            GEPOrderInfoT gepOrderInfoT = new GEPOrderBiz().GetGEPOrderInfo(ebayOrderT.TransactionId.ToString(), ebayOrderT.ItemId.ToString());

            if (gepOrderInfoT != null)
            {
                //같은 주문에 대해 다시 요청 이 온 경우
                //주문 정보 update
                gepOrderInfoT.ExportSiteOrder = ebayOrderT;
                gepOrderInfoT.GEPOrder = ConvertToGEPOrder(ebayOrderT);
                gepOrderInfoT.UpdateDt = DateTime.Now;

                new GEPOrderBiz().UpdateGEPOrderInfo(gepOrderInfoT);
            }
            else
            {
                //신규 주문 Insert
                gepOrderInfoT = new GEPOrderInfoT();
                gepOrderInfoT.ExportSite = GetExportSiteInfo();
                gepOrderInfoT.ExportSiteOrder = ebayOrderT;
                gepOrderInfoT.ExportSiteTrans = GetExportSiteTrans(ebayOrderT);
                gepOrderInfoT.Item = GetOrderdItem(ebayOrderT);
                gepOrderInfoT.GEPOrder = ConvertToGEPOrder(ebayOrderT);
                gepOrderInfoT.GMKTOrder = GetGMKTOrder();
                // TODO: (이태희) "eBay" 하드코딩?
                gepOrderInfoT.TaId = new CommonBiz().GetTaId(ebayOrderT.SellerId, "eBay");
                gepOrderInfoT.CreateDt = DateTime.Now;

                new GEPOrderBiz().InsertGEPOrderInfo(gepOrderInfoT);
            }

            return gepOrderInfoT.GEPOrderNo;
        }
Exemplo n.º 5
0
        internal void UpdateGEPOrderInfo(GEPOrderInfoT gepOrderInfoT)
        {
            IMongoQuery query = Query.EQ("GEPOrderNo", gepOrderInfoT.GEPOrderNo);
            IMongoUpdate update = Update.SetWrapped<ExportSiteOrderT>("ExportSiteOrder", gepOrderInfoT.ExportSiteOrder)
                                        .SetWrapped<GEPOrderT>("GEPOrder", gepOrderInfoT.GEPOrder)
                                        .Set("UpdateDt", BsonValue.Create(DateTime.Now));

            new GEPOrderDac().UpdateGEPOrderInfo(query, update);
        }
Exemplo n.º 6
0
 internal void InsertGEPOrderInfo(GEPOrderInfoT gepOrderInfoT)
 {
     gepOrderInfoT.GEPOrderNo = GetNextGEPOrderNo();
     new GEPOrderDac().InsertGEPOrderInfo(gepOrderInfoT);
 }
Exemplo n.º 7
0
        public OrderDetailT MakeOrderDetailList(int packNo, string custNo)
        {
            List<OrderDetailInfoT> orderDetailList = new List<OrderDetailInfoT>();
            OrderDetailT orderDetail = new OrderDetailT();
            ContrDetailValueT contrDetailValue = new ContrDetailValueT();
            ContrBasicInfoT contrBasicInfo = new ContrBasicInfoT();
            List<GepOrderNoT> gepOrderNoList = new List<GepOrderNoT>();
            Dictionary<long, long> GepOrderNos = new Dictionary<long, long>();
            long gepOrderNo;

            decimal totalPayMoney = 0, totalOriginPayMoney = 0, totalItemPrice = 0, totalDeliveryFee = 0;
            int orderCnt = 0;
            DateTime finalDepositDt;
            string tmpContrDt = string.Empty;
            string orderNos = string.Empty;

            orderDetailList = GetGmarketOrderDetailInfo(packNo, custNo);

            for (int j = 0, orderNosCnt = orderDetailList.Count; j < orderNosCnt; j++)
            {
                if (j == 0)
                {
                    orderNos = orderDetailList[j].BuyOrderNo.ToString();
                }
                else
                {
                    orderNos = orderNos + "," + orderDetailList[j].BuyOrderNo.ToString();
                }
            }

            gepOrderNoList = GetGepOrderNo(orderNos);
            for (int k = 0, gepOrderNoListCnt = gepOrderNoList.Count; k < gepOrderNoListCnt; k++)
            {
                GepOrderNos.Add((int)gepOrderNoList[k].OrderNo, gepOrderNoList[k].GepOrderNo);
            }

            for (int i = 0, orderDetailListCnt = orderDetailList.Count; i < orderDetailListCnt; i++)
            {
                OrderDetailValueT detailValue = new OrderDetailValueT();
                GEPOrderInfoT gepOrderInfo = new GEPOrderInfoT();
                DomesticDeliveryStatusParamT domDelStatusParam = new DomesticDeliveryStatusParamT();
                DomesticDeliveryStatusT rtnDelStatus = new DomesticDeliveryStatusT();
                SellerInfoT sellerInfo = new SellerInfoT();
                GepOrderNoT resultGepOrderNo = new GepOrderNoT();

                TransportCommonBiz transBiz = new TransportCommonBiz();
                DeliveryTracking overseaDeliveryTracking = new DeliveryTracking();

                sellerInfo = GetSellerInfo(orderDetailList[i].ChgSellCustNo, "y");
                if (GepOrderNos.TryGetValue(orderDetailList[i].BuyOrderNo, out gepOrderNo))
                {
                    //몽고디비에서 GEP Order 정보 가져오는 부분
                    gepOrderInfo = GetGEPOrderInfo(gepOrderNo);
                }
                else
                {
                    gepOrderInfo = null;
                }

                //해외배송 정보 가져오는 부분
                overseaDeliveryTracking = transBiz.GetDeliveryTracking(orderDetailList[i].ContrNo);

                if (orderDetailList != null)
                {
                    detailValue.ListNo = i;
                    detailValue.ContrNo = orderDetailList[i].ContrNo;
                    detailValue.CloneItemNo = orderDetailList[i].ItemNo;
                    detailValue.CloneItemName = orderDetailList[i].ItemName;
                    detailValue.ContrAmt = orderDetailList[i].ContrAmt;
                    detailValue.ItemPrice = orderDetailList[i].ContrPrice;
                    detailValue.TotalPrice = orderDetailList[i].ContrPrice * orderDetailList[i].ContrAmt + orderDetailList[i].TotSelItemPrice;
                    detailValue.DeliveryFee = orderDetailList[i].DeliveryFee;
                    detailValue.CustKey = CustNoEncode(orderDetailList[i].ChgSellCustNo);
                    detailValue.SellerId = sellerInfo.Nickname;
                    detailValue.SellerPhone = sellerInfo.HelpdeskTelNo;
                    detailValue.SellerEmail = sellerInfo.EMail;

                    detailValue.SelOptInfo = MakeOrderSelOptInfo(orderDetailList[i].ItemNo, orderDetailList[i].OrderNo);

                    domDelStatusParam.StatInfo = orderDetailList[i].StatInfo;
                    domDelStatusParam.IsDeliveryGoodsYn = orderDetailList[i].IsDeliveryGoodsYn;
                    domDelStatusParam.TranscNm = orderDetailList[i].TakbaeName;
                    domDelStatusParam.InvoiceNo = orderDetailList[i].NoSongjang;
                    domDelStatusParam.GdShopkind = orderDetailList[i].GdShopkind;
                    domDelStatusParam.GdShopkind2 = orderDetailList[i].GdShopkind2;
                    domDelStatusParam.GdShopkind3 = orderDetailList[i].GdShopkind3;
                    domDelStatusParam.DelivLtpExtendDt = orderDetailList[i].DelivLtpExtendDt;
                    domDelStatusParam.DelivLtpStat = orderDetailList[i].DelivLtpStat;
                    domDelStatusParam.TransDate = orderDetailList[i].TransDt;
                    domDelStatusParam.SendPlanDt = orderDetailList[i].SendPlanDt.ToString();
                    domDelStatusParam.SendPlanRec = orderDetailList[i].SendPlanRec;
                    domDelStatusParam.ItemName = orderDetailList[i].ItemName;

                    rtnDelStatus = MakeDomesticDeliveryStatus(domDelStatusParam);
                    //detailValue.DomesticDeliveryStatus = rtnDelStatus.DeliveryStat;

                    if(orderDetailList[i].AcntStat != "SC" && orderDetailList[i].AcntStat != "SX" && orderDetailList[i].AcntStat != "SQ")
                    {
                        totalPayMoney = totalPayMoney + detailValue.TotalPrice + detailValue.DeliveryFee - orderDetailList[i].CostPrice;
                    }
                    totalOriginPayMoney = totalOriginPayMoney + detailValue.TotalPrice + detailValue.DeliveryFee - orderDetailList[i].CostPrice;
                    orderCnt = orderCnt + 1;
                    totalItemPrice = totalItemPrice + detailValue.ItemPrice;
                    totalDeliveryFee = totalDeliveryFee + detailValue.DeliveryFee;

                    if (gepOrderInfo != null)
                    {
                        detailValue.MotherItemNo = gepOrderInfo.Item.src_no;
                        detailValue.ExportSiteItemNo = gepOrderInfo.Item.ExportItemId;
                        detailValue.ExportSiteItemName = gepOrderInfo.Item.ExportItemName;
                        detailValue.ExportSiteName = gepOrderInfo.ExportSite.Name;
                        detailValue.OverseaDeliveryState = overseaDeliveryTracking.DeliveryState;
                        if (overseaDeliveryTracking.DeliveryWay == "PS")
                        {
                            detailValue.OverseaDeliveryWay = overseaDeliveryTracking.DeliveryWayKor;
                        }
                        else
                        {
                            detailValue.OverseaDeliveryWay = overseaDeliveryTracking.DeliveryWay;
                        }
                        detailValue.OverseaInvoiceNo = overseaDeliveryTracking.InvoiceNo;
                        detailValue.OverseaTrackingURL = overseaDeliveryTracking.TrackingURL;
                        if (gepOrderInfo.GEPOrder.OrderNo == "0")
                        {
                            detailValue.ExportSiteOrderNo = gepOrderInfo.GEPOrder.OrderNoSub;
                        }
                        else
                        {
                            detailValue.ExportSiteOrderNo = gepOrderInfo.GEPOrder.OrderNo;
                        }

                        detailValue.OverseaAddress = gepOrderInfo.ExportSiteTrans.receiver_addr;
                        detailValue.OverseaRcvNm = gepOrderInfo.ExportSiteTrans.receiver_name;
                        detailValue.OverseaPhone = gepOrderInfo.ExportSiteTrans.receiver_tel_no;
                        detailValue.OverseaEmail = gepOrderInfo.ExportSiteTrans.receiver_email;
                        detailValue.ViewItemURL = gepOrderInfo.Item.ExportSiteViewItemUrl;
                    }
                    orderDetail.DomesticDeliveryStatusList.Add(rtnDelStatus);
                    orderDetail.OrderDetailValueList.Add(detailValue);
                }
                else
                {
                    //아무 디비도 안 나옴
                }
            }
            //결제 정보
            contrDetailValue.ItemCnt = orderCnt;
            contrDetailValue.TotItemPrice = totalItemPrice;
            contrDetailValue.TotDeliveryFee = totalDeliveryFee;
            contrDetailValue.PackTotPayMoney = totalPayMoney;
            contrDetailValue.PackOriginTotPayMoney = totalOriginPayMoney;
            contrDetailValue.PackCancelTotPayMoney = totalOriginPayMoney - totalPayMoney;

            contrBasicInfo.AcntWay = orderDetailList[0].AcntWay;
            contrBasicInfo.CashpayWay = orderDetailList[0].CashpayWay;
            contrBasicInfo.StatInfo = orderDetailList[0].StatInfo;
            tmpContrDt = orderDetailList[0].ContrDt.Substring(0, 4) + "-" + orderDetailList[0].ContrDt.Substring(4, 2) + "-" + orderDetailList[0].ContrDt.Substring(6, 2);
            finalDepositDt = DateTime.Parse(tmpContrDt);
            contrBasicInfo.FinalDeposit = finalDepositDt.AddDays(7).ToString("yyyy-MM-dd");
            contrBasicInfo.PackNo = orderDetailList[0].PackNo;

            if (orderDetailList[0].AcntWay == "A2" || orderDetailList[0].AcntWay == "A7")
            {
                int sttlNoLenth = 0;
                int halbuMonth = orderDetailList[0].Halbumonth;
                contrBasicInfo.SttlName = orderDetailList[0].SttlkindNm;
                if (orderDetailList[0].CardNo != string.Empty)
                {
                    sttlNoLenth = orderDetailList[0].CardNo.Length;
                    contrBasicInfo.SttlNo = orderDetailList[0].CardNo.Substring(0, 8) + "****************";
                    contrBasicInfo.SttlNo = contrBasicInfo.SttlNo.Substring(0, sttlNoLenth);
                    contrBasicInfo.CardAcptDt = orderDetailList[0].AcptDt;
                }

                if (halbuMonth >= 60)
                {
                    halbuMonth = halbuMonth - 60;
                }
                else if (halbuMonth >= 40 && halbuMonth < 60 && halbuMonth != 41)
                {
                    halbuMonth = halbuMonth - 40;
                }

                if (halbuMonth == 0 || halbuMonth == 41)
                {
                    contrBasicInfo.SttlWay = "일시불";
                }
                else
                {
                    if (orderDetailList[0].HalbuType == "C" || orderDetailList[0].HalbuType == "F")
                    {
                        contrBasicInfo.SttlWay = halbuMonth + " 개월 무이자 할부";
                    }
                    else
                    {
                        contrBasicInfo.SttlWay = halbuMonth + " 개월 할부";
                    }
                }
            }
            else
            {
                contrBasicInfo.SttlName = orderDetailList[0].BankNm;
                contrBasicInfo.SttlNo = ShowVAccount(orderDetailList[0].BankAcntNo, orderDetailList[0].GbankNo);
                contrBasicInfo.DepositName = orderDetailList[0].DepositNm;
                contrBasicInfo.SttlWay = "현금";
            }

            contrDetailValue = MakeContrInfo(contrBasicInfo, contrDetailValue);

            orderDetail.ContrValue = contrDetailValue;

            return orderDetail;
        }