/// <summary>
        /// 엑셀 다운로드전 유효성 체크 한다.(E-Shipping)
        /// </summary>
        /// <param name="ContrNos">체결번호들</param>        
        /// <returns></returns>
        public TransportResultSet ExcelDownESValidation(int[] ContrNos)
        {
            for (int k = 0; k < ContrNos.Length; k++)
            {
                GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(ContrNos[k]);
                if (gepWarehouse == null)
                {
                    return new TransportResultSet()
                    {
                        KeyValue = ContrNos[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = ContrNos[k].ToString() + " 은 정상적인 E-Shipping건이 아닙니다."
                    };
                }

                if (gepWarehouse.sitetransinfo.receiver_iso_country_code != "US")
                {
                    return new TransportResultSet()
                    {
                        KeyValue = ContrNos[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = ContrNos[k].ToString() + " 은 E-Shipping 건이 아닙니다."
                    };
                }
            }

            return new TransportResultSet()
            {
                Code = ResultCodeEnum.OK
            };
        }
        /// <summary>
        /// 배송 준비 스캔된 데이터 취득
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>결과 데이터</returns>
        public DeliveryReadyGridData GetDeliveryReadyGridData(int scanValue)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                return null;
            }

            var q = (from t in gepWarehouse.trans_way_hist
                    orderby t.reg_dt descending
                    select t).ToList();

            if (q.Count == 0)
            {
                return null;
            }

            return new DeliveryReadyGridData() {
                ObjectID = gepWarehouse.contr_no.ToString()
                ,ArrivedDate = (null == gepWarehouse.arrived_dt ? "" : gepWarehouse.arrived_dt.Value.ToString("yyyy-MM-dd HH:mm:ss"))
                ,BuyerID = gepWarehouse.transinfo.clone_buyer_id
                ,BuyerName = gepWarehouse.transinfo.clone_buyer_name
                //,ContractDate = gepWarehouse.transinfo.reg_dt.ToString("yyyy-MM-dd HH:mm:ss")
                ,ContractDate = gepWarehouse.transinfo.clone_contr_dt.ToString("yyyy-MM-dd HH:mm:ss")
                ,DeliveryAddress = gepWarehouse.sitetransinfo.receiver_addr
                ,DeliveryNation = gepWarehouse.sitetransinfo.receiver_country_name
                ,ForeingConutryTransc = q[0].transport_way
                ,InvoicePrint = (0 < gepWarehouse.cn22_count ? "Y" : "N")
                ,OrderNum = gepWarehouse.contr_no.ToString()
                ,ProductAmt = gepWarehouse.transinfo.gep_order_count.ToString()
                ,ProductName = gepWarehouse.transinfo.clone_item_name
                ,ProductNum = gepWarehouse.transinfo.clone_item_no
                ,ProductOption = gepWarehouse.transinfo.clone_option_info
                ,ExpectedWeight = gepWarehouse.trns_cost.org_weight.ToString()
                ,ExpectedWeightCost = gepWarehouse.trns_cost.org_transport_cost.ToString()
                ,RealWeight = gepWarehouse.trns_cost.real_weight.ToString()
                ,RealWeightCost = gepWarehouse.trns_cost.real_transport_cost.ToString()
                ,ReceiverName = gepWarehouse.sitetransinfo.receiver_name
                //,State = gepWarehouse.GetState
                ,State = GEP.Framework.data.EnumDHelper.GetDescription(gepWarehouse.transinfo.state)
                ,ReceiverContact = gepWarehouse.sitetransinfo.receiver_hp_no == "" ? gepWarehouse.sitetransinfo.receiver_email : gepWarehouse.sitetransinfo.receiver_hp_no
                ,AddDeliveryCost = (new TransportCommonBiz().GetAddDeliveryCost(gepWarehouse.trns_cost.org_transport_cost, gepWarehouse.trns_cost.real_transport_cost)).ToString()
                ,
                BuyerContact = (String.IsNullOrEmpty(gepWarehouse.sitetransinfo.sender_hp_no) ?
                                    gepWarehouse.sitetransinfo.sender_tel_no : gepWarehouse.sitetransinfo.sender_hp_no )
            };
        }
        /// <summary>
        /// CN22 송장 출력
        /// </summary>
        /// <param name="contrNo">체결번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>송장 출력 데이터</returns>
        public GepWarehouse GetCN22Data(int contrNo, string userID)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(contrNo);

            if (gepWarehouse == null)
            {
                return null;
            }

            gepWarehouse.cn22_count = gepWarehouse.cn22_count + 1;
            gepWarehouse.cn22_print_dt = DateTime.Now;
            gepWarehouse.cn22_print_id = userID;

            new TransportGepWarehouseDac().Save(gepWarehouse);

            return gepWarehouse;
        }
        public List<GEPContractDetail> GetGEPContractDetailData(ref long TotalPage, int nowPage, int pageSize, int dateSerchType, DateTime sDate, DateTime eDate, int numSerchType, string serchNum)
        {
            List<GEPContractDetail> listGEPContractDetail = new List<GEPContractDetail>();

            MongoPagingResult<GepWarehouse> GepWarehouse = new TransportGepWarehouseDac().FindByPaging(dateSerchType, sDate, eDate, numSerchType, serchNum, pageSize, (pageSize * (nowPage - 1)));

            //IQueryable<GepWarehouse> Data = TGWDac.Read(query);
            TotalPage = (GepWarehouse.Count / pageSize);

            if (GepWarehouse.Count % pageSize != 0)
            {
                TotalPage++;
            }

            if (GepWarehouse.Result != null)
            {
                foreach (var t in GepWarehouse.Result)
                {
                    listGEPContractDetail.Add(GetGEPContractDetail(t));
                }
            }

            return listGEPContractDetail;
        }
        /// <summary>
        /// 배송준비 스캔
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>스캔 결과</returns>
        public TransportResultSet SetDeliveryReadyScan(int scanValue)
        {
            TransportResultSet transportResultSet = new TransportResultSet();

            transportResultSet.KeyValue = scanValue.ToString();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);
                if (0 < transportResultSet.Message.IndexOf("해외배송"))
                {
                    return transportResultSet;
                }
                else
                {
                    transportResultSet.KeyValue = scanValue.ToString();
                    transportResultSet.Code = ResultCodeEnum.Error;
                    transportResultSet.Message = "GEP 물류센터정보에 등록되어 있지 않는 건입니다.";
                    return transportResultSet;
                }
            }

            if (gepWarehouse.state != WarehouseStateEnum.Arrival && gepWarehouse.state != WarehouseStateEnum.PackingBox)
            {
                transportResultSet.KeyValue = scanValue.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "상품 상태값이 배송준비 스캔할 수 없는 상태입니다.";
                return transportResultSet;
            }

            if (gepWarehouse.trans_way_hist == null)
            {
                transportResultSet.Message = "상품 배송 방법 정보가 없습니다";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            var q = (from t in gepWarehouse.trans_way_hist
                    orderby t.reg_dt descending
                    select t).ToList();

            if(q.Count == 0)
            {
                transportResultSet.Message = "상품 배송 방법 정보가 없습니다";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            string transWayCode = new TransportCommonBiz().GetTransWayCode(q[0].transport_way);
            if (transWayCode != "SP" && transWayCode != "RR")
            {
                transportResultSet.Message = "GEP-EMS 해외배송건 입니다.";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            //배송상태 체크
            transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);

            if (ResultCodeEnum.Error == transportResultSet.Code)
                return transportResultSet;

            transportResultSet.Message = "";
            transportResultSet.Code = ResultCodeEnum.OK;
            return transportResultSet;
        }
        /// <summary>
        /// 항공소형포장 EMS로 전환
        /// </summary>
        /// <param name="contrNo">체결번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>전환 결과</returns>
        public TransportResultSet SetChagneEMS(int contrNo, string userID)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(contrNo);

            if (gepWarehouse == null)
            {
                return new TransportResultSet()
                {
                    KeyValue = contrNo.ToString()
                    ,
                    Code = ResultCodeEnum.Error
                    ,
                    Message = "GEP 물류센터정보에 등록되어 있지 않는 건입니다."
                };
            }
            GepTransWay transWayInfo = new TransportCommonBiz().GetTransWayInfo("EMS");
            transWayInfo.transport_way = "EMS-2";
            transWayInfo.reg_dt = DateTime.Now;
            transWayInfo.reg_id = userID;

            gepWarehouse.trans_way_hist.Add(transWayInfo);
            gepWarehouse.transinfo.trans_way = transWayInfo;

            new TransportGepWarehouseDac().Save(gepWarehouse);

            return new TransportResultSet()
            {
                KeyValue = contrNo.ToString()
                ,Code = ResultCodeEnum.OK
                ,Message = "EMS 전환이 완료되었습니다."
            };
        }
        /// <summary>
        /// EMS용 엑셀 데이터 다운로드
        /// </summary>
        /// <param name="orderNums">송장번호들 (구분자 ^)</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>엑셀용 html</returns>
        public string GetExcelHtmlToEMS(int[] orderNums, string userID)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("<html>");
            stringBuilder.AppendLine("<head>");
            stringBuilder.AppendLine("<meta http-equiv='Content-type' content='text/html; charset=utf-8'>");
            stringBuilder.AppendLine("</head>");
            stringBuilder.AppendLine("<body>");

            stringBuilder.AppendLine("<table border='1' cellspacing='0' cellpadding='2' bordercolor='#93ACDB' bordercolorlight='#93ACDB' bordercolordark='#ffffff'>");
            stringBuilder.AppendLine("<tr>");

            stringBuilder.AppendLine("<th>일련번호</th>");
            stringBuilder.AppendLine("<th>입력일</th>");
            stringBuilder.AppendLine("<th>관리번호</th>");
            stringBuilder.AppendLine("<th>EMS번호</th>");
            stringBuilder.AppendLine("<th>보내는 사람</th>");
            stringBuilder.AppendLine("<th>우편번호</th>");
            stringBuilder.AppendLine("<th>보내는 사람 주소</th>");
            stringBuilder.AppendLine("<th>보내는 사람 전화1</th>");
            stringBuilder.AppendLine("<th>보내는 사람 전화2</th>");
            stringBuilder.AppendLine("<th>보내는 사람 EMAIL</th>");
            stringBuilder.AppendLine("<th>받는 사람</th>");
            stringBuilder.AppendLine("<th>받는 사람 우편번호</th>");
            stringBuilder.AppendLine("<th>받는 사람 주소</th>");
            stringBuilder.AppendLine("<th>받는 사람 전화1</th>");
            stringBuilder.AppendLine("<th>받는 사람 전화2</th>");
            stringBuilder.AppendLine("<th>국가명</th>");
            stringBuilder.AppendLine("<th>국가코드</th>");
            stringBuilder.AppendLine("<th>영문상품명1</th>");
            stringBuilder.AppendLine("<th>개수1</th>");
            stringBuilder.AppendLine("<th>가격1($)</th>");
            stringBuilder.AppendLine("<th>영문상품명2</th>");
            stringBuilder.AppendLine("<th>개수2</th>");
            stringBuilder.AppendLine("<th>가격2($)</th>");
            stringBuilder.AppendLine("<th>영문상품명3</th>");
            stringBuilder.AppendLine("<th>개수3</th>");
            stringBuilder.AppendLine("<th>가격3($)</th>");
            stringBuilder.AppendLine("<th>영문상품명4</th>");
            stringBuilder.AppendLine("<th>개수4</th>");
            stringBuilder.AppendLine("<th>가격4($)</th>");
            stringBuilder.AppendLine("<th>영문상품명5</th>");
            stringBuilder.AppendLine("<th>개수5</th>");
            stringBuilder.AppendLine("<th>가격5($)</th>");
            stringBuilder.AppendLine("<th>우편중량(g)</th>");
            stringBuilder.AppendLine("<th>우편요금(원)</th>");
            stringBuilder.AppendLine("<th>보내는업체명</th>");
            stringBuilder.AppendLine("<th>받는업체명</th>");
            stringBuilder.AppendLine("<th>보험여부</th>");
            stringBuilder.AppendLine("<th>보험금액(원)</th>");

            stringBuilder.AppendLine("</tr>");
            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("<table>");

            for (int k = 0; k < orderNums.Length; k++)
            {
                GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(orderNums[k]);

                if (gepWarehouse == null)
                {
                    continue;
                }

                if (gepWarehouse.sitetransinfo == null || gepWarehouse.trans_way_hist == null || gepWarehouse.transinfo == null || gepWarehouse.trns_cost == null)
                {
                    continue;
                }

                stringBuilder.Append("<tr>");

                stringBuilder.AppendLine("<th>" + k.ToString() +"</th>");
                stringBuilder.AppendLine("<th>" + DateTime.Now.ToString("yyyy-MM-dd") + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.contr_no.ToString() + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>"  + gepWarehouse.sitetransinfo.sender_name +   "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_zip_code + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.sender_addr + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_tel_no + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_hp_no + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_email + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_name + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_zip_code + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_addr + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_tel_no + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_hp_no + "</th>");					stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_country_name + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_country_code + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.transinfo.gep_order_count + "</th>");
                stringBuilder.AppendLine("<th>" + new TransportCommonBiz().GetUSDprice(gepWarehouse.transinfo.clone_contr_price) + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.trns_cost.real_weight + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.trns_cost.real_transport_cost + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");

                stringBuilder.Append("</tr>");
                new TransportCommonBiz().SetTransportState(orderNums[k], WarehouseStateEnum.Submitting, userID);
            }
            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("</body>");

            stringBuilder.AppendLine("</html>");

            return stringBuilder.ToString();
        }
        /// <summary>
        /// 도착 확인 스캔
        /// </summary>
        /// <param name="scanNumber">송장번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>스캔 결과</returns>
        public TransportResultSet ArriveScan(int scanNumber, string userID)
        {
            TransportResultSet transportResultSet = new TransportResultSet();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanNumber);

            if (gepWarehouse == null)
            {
                gepWarehouse = new GepWarehouse();

                gepWarehouse.contr_no = scanNumber;
                gepWarehouse.state = WarehouseStateEnum.Arrival;
                gepWarehouse.arrived_dt = DateTime.Now;
                gepWarehouse.arrived_id = userID;
                gepWarehouse.isCanceled = false;
                gepWarehouse.label_print_dt = DateTime.Now;
                gepWarehouse.label_print_id = userID;

            }
            else if (gepWarehouse.state == WarehouseStateEnum.Arrival)
            {
                transportResultSet.KeyValue = scanNumber.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "이미 도착확인된 상품입니다.";
                return transportResultSet;
            }
            else if (gepWarehouse.state != WarehouseStateEnum.Ready)
            {
                transportResultSet.KeyValue = scanNumber.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = String.Format("이미 처리된 상품입니다.\n (상태: {0})", gepWarehouse.state);
                return transportResultSet;
            }

            //배송상태 체크
            transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanNumber);

            if (ResultCodeEnum.Error == transportResultSet.Code)
                return transportResultSet;

            /*
            //2012.04.14 jdkim SetGepWarehouseFromOrderData()로 변경
            //주문정보 및 국내배송정보조회
            GepTransInfo gepTransInfo = new TransportCommonBiz().GetGepTransInfoData(scanNumber, ref gepWarehouse);

            if (gepTransInfo == null)
            {
                transportResultSet.KeyValue = scanNumber.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "Gep 배송 정보가 없습니다.";
                return transportResultSet;
            }
            */

            transportResultSet = new TransportCommonBiz().SetGepWarehouseFromOrderData(scanNumber.ToString(), userID, ref gepWarehouse);

            if (ResultCodeEnum.OK != transportResultSet.Code)
                return transportResultSet;

            //Warehouse 저장
            new TransportGepWarehouseDac().Save(gepWarehouse);

            //상태변경
            if (!new TransportCommonBiz().SetTransportState(scanNumber, WarehouseStateEnum.Arrival, userID))
            {
                transportResultSet.KeyValue = scanNumber.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "gopm상태값 변경에 문제가 있습니다.";
                return transportResultSet;
            }

            //국내 배송완료
            TransportD4UpdateT transportD4UpdateT = new TransportCommonBiz().TransportD4Update(scanNumber, userID, "S", "GEP국내배송처리", "N");

            if (transportD4UpdateT.Error != 0)
            {
                transportResultSet.KeyValue = scanNumber.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "국내배송 도착확인 처리에 문제가 있습니다.";
                //Result.Message = D4Data.RetMsg;
                return transportResultSet;
            }

            transportResultSet.KeyValue = scanNumber.ToString();
            transportResultSet.Code = ResultCodeEnum.OK;
            transportResultSet.Message = "";

            return transportResultSet;
        }
        /// <summary>
        /// 도착 확인 스캔한 데이터 취득
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>스캔한 데이터</returns>
        public ArriveGridData GetArriveData(int scanValue)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                return null;
            }

            var tw = (from t in gepWarehouse.trans_way_hist
                      orderby t.reg_dt descending
                      select t).ToList();

            return new ArriveGridData()
            {
                ObjectID = gepWarehouse.contr_no.ToString()
                ,
                Idx = "1"
                ,
                ArrivedDate = (null == gepWarehouse.arrived_dt ? "" : gepWarehouse.arrived_dt.Value.ToString("yyyy-MM-dd HH:mm:ss"))
                ,
                BuyerID = gepWarehouse.transinfo.clone_buyer_id
                ,
                BuyerName = gepWarehouse.transinfo.clone_buyer_name
                ,
                EbayContractDate = gepWarehouse.transinfo.gep_payment_dt.ToString("yyyy-MM-dd HH:mm:ss")
                ,
                ForeingConutryTransc = tw[0].transport_way
                ,
                InvoiceNum = gepWarehouse.transinfo.local_invoice_no
                ,
                LocalTransc = gepWarehouse.transinfo.local_express_nm
                ,
                OrderNum = gepWarehouse.contr_no.ToString()
                ,
                ProductName = gepWarehouse.transinfo.clone_item_name
                ,
                ProductNum = gepWarehouse.transinfo.clone_item_no
                ,
                ProductOption = gepWarehouse.transinfo.clone_option_info
                ,
                SellerID = gepWarehouse.transinfo.clone_seller_id
                ,
                SellerName = gepWarehouse.transinfo.clone_seller_name
                ,
                //State = gepWarehouse.GetState
                State = GEP.Framework.data.EnumDHelper.GetDescription(gepWarehouse.transinfo.state)
                ,
                ProductAmt = gepWarehouse.transinfo.gep_order_count.ToString()
            };
        }
Example #10
0
        ///GSM 라벨출력 정보 조회
        /// </summary>
        /// <param name="contrnos">송장번호</param>
        /// <returns>0 : 정상, -99 : 에러</returns>
        public List<LabelPrintResult> GetGepLabelPrintList(string contrnos)
        {
            List<LabelPrintResult> listLabelPrintResult = new List<LabelPrintResult>();

            if (String.IsNullOrEmpty(contrnos))
            {
                return listLabelPrintResult;
            }

            List<string> listContrNo = new List<string>(contrnos.Split(','));

            try
            {
                foreach (string contr_no in listContrNo)
                {
                    if (String.IsNullOrEmpty(contr_no))
                    {
                        continue;
                    }

                    GepWarehouse gepWarehouse = null;
                    gepWarehouse = new TransportGepWarehouseDac().FindOne(Convert.ToInt32(contr_no));
                    if (gepWarehouse != null)
                    {
                        LabelPrintResult labelinfo = new LabelPrintResult();
                        labelinfo.ContrNo = gepWarehouse.contr_no.ToString();
                        labelinfo.PrintDT = (null == gepWarehouse.gsm_label_print_dt ? "" : gepWarehouse.gsm_label_print_dt.Value.ToString("yyyy-MM-dd HH:mm:ss"));

                        listLabelPrintResult.Add(labelinfo);
                    }

                }
            }
            catch (Exception ex)
            {
                return null;
            }

            //gwDac.Dispose();

            return listLabelPrintResult;
        }
Example #11
0
        /// <summary>
        /// 배송상태 변경
        /// </summary>
        /// <param name="scanValue"></param>
        /// <param name="state"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool SetTransportState(int scanValue, WarehouseStateEnum state, string userID)
        {
            GepWarehouse GWData = new TransportGepWarehouseDac().FindOne(scanValue);

            if (GWData == null)
            {
                return false;
            }

            if (state == WarehouseStateEnum.Arrival)
            {
                GWData.state = state;
                GWData.arrived_dt = DateTime.Now;
                GWData.arrived_id = userID;
                GWData.transinfo.state = GepShippingStateEnum.InWarehouse;
            }
            else if (state == WarehouseStateEnum.PackingBox)
            {
                GWData.state = state;
                GWData.check_weight_dt = DateTime.Now;
                GWData.check_weight_id = userID;
            }
            else if (state == WarehouseStateEnum.Submitting)
            {
                GWData.state = state;
                GWData.excel_ouput_dt = DateTime.Now;
                GWData.excel_output_id = userID;
            }
            else if (state == WarehouseStateEnum.InputInvoice)
            {
                //*todo: 송장 추적 관련 로직을 여기서 처리해야함.
                GWData.state = state;
                GWData.invoice_input_dt = DateTime.Now;
                GWData.invoice_input_id = userID;
                GWData.transinfo.state = GepShippingStateEnum.Tracking;
            }
            else
            {
                return false;
            }

            new TransportGepWarehouseDac().Save(GWData);

            return true;
        }
        public string GetGEPContractDetailDataForExcel(int dateSerchType, DateTime sDate, DateTime eDate, int numSerchType, string serchNum)
        {
            List<GepWarehouse> gepWarehouse = new TransportGepWarehouseDac().Find(dateSerchType, sDate, eDate, numSerchType, serchNum);

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("<html>");
            stringBuilder.AppendLine("<head>");
            stringBuilder.AppendLine("<meta http-equiv='Content-type' content='text/html; charset=utf-8'>");
            stringBuilder.AppendLine("</head>");
            stringBuilder.AppendLine("<body>");

            stringBuilder.AppendLine("<table border='1' cellspacing='0' cellpadding='2' bordercolor='#93ACDB' bordercolorlight='#93ACDB' bordercolordark='#ffffff'>");

            stringBuilder.AppendLine("<tr>");
            stringBuilder.AppendLine("<th>상태</th>");
            stringBuilder.AppendLine("<th>해외배송사</th>");
            stringBuilder.AppendLine("<th>해외배송송장번호</th>");
            stringBuilder.AppendLine("<th>체결일</th>");
            stringBuilder.AppendLine("<th>주문번호</th>");
            stringBuilder.AppendLine("<th>상품번호</th>");
            stringBuilder.AppendLine("<th>상품명</th>");
            stringBuilder.AppendLine("<th>선택/옵션</th>");
            stringBuilder.AppendLine("<th>수량</th>");
            stringBuilder.AppendLine("<th>수취인명</th>");
            stringBuilder.AppendLine("<th>수취인연락처</th>");
            stringBuilder.AppendLine("<th>배송국가</th>");
            stringBuilder.AppendLine("<th>배송지주소</th>");
            stringBuilder.AppendLine("<th>물류센터도착일</th>");
            stringBuilder.AppendLine("<th>택배사</th>");
            stringBuilder.AppendLine("<th>송장번호</th>");
            stringBuilder.AppendLine("<th>처리자ID</th>");
            stringBuilder.AppendLine("<th>예상무게</th>");
            stringBuilder.AppendLine("<th>실측무게</th>");
            stringBuilder.AppendLine("<th>예상배송비</th>");
            stringBuilder.AppendLine("<th>실측배송비</th>");
            stringBuilder.AppendLine("<th>체결ID</th>");
            stringBuilder.AppendLine("<th>EMS전환일</th>");
            stringBuilder.AppendLine("<th>판매자명</th>");
            stringBuilder.AppendLine("<th>판매자ID</th>");
            stringBuilder.AppendLine("</tr>");

            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("<table>");

            if (gepWarehouse != null)
            {
                foreach (var t in gepWarehouse)
                {
                    var Target = GetGEPContractDetail(t);
                    stringBuilder.AppendLine("<tr>");
                    stringBuilder.AppendLine("<td>" + Target.State + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ForeingConutryTransc + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ForeingConutryInvoiceNum + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ContractDate + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.OrderNum + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ProductNum + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ProductName + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ProductOption + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ProductAmt + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ReceiverName + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ReceiverContact + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.DeliveryNation + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.DeliveryAddress + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ArrivedDate + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.LocalTransc + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.InvoiceNum + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.UserID + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ExpectedWeight + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.RealWeight + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ExpectedWeightCost + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.RealWeightCost + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.ContractID + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.EMSChagneDate + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.SellerName + "</td>");
                    stringBuilder.AppendLine("<td>" + Target.SellerID + "</td>");
                    stringBuilder.AppendLine("</tr>");
                }
            }
            //실제 리턴할 html

            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("</body>");

            stringBuilder.AppendLine("</html>");

            return stringBuilder.ToString();
        }
        /// <summary>
        /// 배송대기 스캔
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>스캔 결과</returns>
        public TransportResultSet SetDeliveryReadyWaitScan(int scanValue, string userID)
        {
            TransportResultSet transportResultSet = new TransportResultSet();

            transportResultSet.KeyValue = scanValue.ToString();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);
                if (0 < transportResultSet.Message.IndexOf("해외배송"))
                {
                    return transportResultSet;
                }
                else
                {
                    transportResultSet.KeyValue = scanValue.ToString();
                    transportResultSet.Code = ResultCodeEnum.Error;
                    transportResultSet.Message = "GEP 물류센터정보에 등록되어 있지 않는 건입니다.";
                    return transportResultSet;
                }
            }

            var q = (from t in gepWarehouse.trans_way_hist
                     orderby t.reg_dt descending
                     select t).ToList();

            if (q.Count == 0)
            {
                transportResultSet.Message = "상품 배송 방법 정보가 없습니다";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            if (q[0].transport_way.IndexOf("EMS") < 0)
            {
                transportResultSet.Message = "항공소형포장건 입니다.";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            if (gepWarehouse.state != WarehouseStateEnum.PackingBox && gepWarehouse.state != WarehouseStateEnum.Submitting)
            {
                transportResultSet.KeyValue = scanValue.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "상품 상태값이 배송대기 스캔할 수 없는 상태입니다.";
                return transportResultSet;
            }

            //int CheckResult = new TransportCommonBiz().CheckCoreTranseportState(gepWarehouse.contr_no);

            //int TranseportCheck = new TransportCommonBiz().CheckCoreTranseportState(scanValue);

            //if (TranseportCheck == 1)
            //{
            //    transportResultSet.KeyValue = scanValue.ToString();
            //    transportResultSet.Code = ResultCodeEnum.Error;
            //    transportResultSet.Message = "반품된 상품 입니다.";
            //    return transportResultSet;
            //}

            //if (TranseportCheck == -11)
            //{
            //    transportResultSet.KeyValue = scanValue.ToString();
            //    transportResultSet.Code = ResultCodeEnum.Error;
            //    transportResultSet.Message = "G마켓 해외배송 상품입니다.";
            //    return transportResultSet;
            //}

            //if (TranseportCheck < 0)
            //{
            //    transportResultSet.KeyValue = scanValue.ToString();
            //    transportResultSet.Code = ResultCodeEnum.Error;
            //    transportResultSet.Message = "에러 입니다.";
            //    return transportResultSet;
            //}

            //배송상태 체크
            transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);

            if (ResultCodeEnum.Error == transportResultSet.Code)
                return transportResultSet;

            transportResultSet.Code = ResultCodeEnum.OK;
            transportResultSet.Message = "";

            return transportResultSet;
        }
        /// <summary>
        /// E-Shipping용 엑셀 데이터 다운로드
        /// </summary>
        /// <param name="orderNums">송장번호들 (구분자 ^)</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>엑셀 다운로드용 html</returns>
        public string GetExcelHtmlToES(int[] orderNums, string userID)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<html>");
            stringBuilder.Append("<head>");
            stringBuilder.Append("<meta http-equiv='Content-type' content='text/html; charset=utf-8'>");
            stringBuilder.Append("</head>");
            stringBuilder.Append("<body>");
            stringBuilder.Append("<table width='1000' border='1' cellspacing='0' cellpadding='2' bordercolor='#93ACDB' bordercolorlight='#93ACDB' bordercolordark='#ffffff'>");
            stringBuilder.Append(" <tr>");

            stringBuilder.Append(" <td>");
            stringBuilder.Append("");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td colspan='32'>");
            stringBuilder.Append("수취인정보(영문 알파벳만 작성)-허용 불가한 특수문자①( “ ? ! $ %  ^  *  +  { }  [ ] | \\) ② 영문알파벳과 비슷한 스페인어 등 ③ 영문 붙여넣기 ");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" </tr>");

            // 두번째 행 제목
            stringBuilder.Append(" <tr>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("상품구분<br>(Sample-샘플)<br>(Gift-선물)<br>(Merchandise-상품)<br>(Document-서류)<br>4가지중  하단 버튼이용 선택");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인명<br>(영문40자이내 <br>공백포함)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인EMAIL");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인전화<br>국가번호<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인전화<br>지역번호<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인전화<br>국번<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인전화<br>전화번호<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td>");
            stringBuilder.Append("수취인국가코드보기<br>EMS");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td>");
            stringBuilder.Append("수취인국가명<br>(영문국가명 국가코드 확실<br>시  생략가능) ");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인우편번호<br>(숫자,문자 가능<br>20자이내)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("수취인주소<br>( 영문 140자이내 공백포함)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("박스포장<br>총중량(g)<br>(실제 요금이 적용<br>되는 무게)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("내용품명<br>(영문 32자이내 <br>공백포함)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("개수");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("순준량(g)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("가격(us$)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("HSCODE<br>(코드보기)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("생산지");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>"); // 보험가입여부
            stringBuilder.Append("보험가입여부<br>(Y/N)<br>(미선택시<br>공백가능)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>"); // 보험가입금액
            stringBuilder.Append("보험가입금액<br>(물품가액을 <br>기입 원\\)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>"); // 프리미엄여부
            stringBuilder.Append("프리미엄여부<br>(Y/N)<br>(미선택시<br>공백가능)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("고객주문번호<br>( 숫자,영문 30자이내)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인우편번호<br>(숫자6자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인주소<br>( 영문 140자이내 공백포함)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append("<td rowspan=2>");
            stringBuilder.Append("주문인명<br>( 영문 40자이내 공백포함)");
            stringBuilder.Append("</td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인전화<br>국가번호<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인전화<br>지역번호<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인전화<br>국번<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인<br>전화번호<br>(숫자4자리)");
            stringBuilder.Append(" </td rowspan=2>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인휴대전화<br>지역번호<br>(숫자3자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인휴대전화<br>국번<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인휴대전화<br>끝번<br>(숫자4자리)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td rowspan=2>");
            stringBuilder.Append("주문인EMAIL<br>( 영문 40자이내)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" </tr>");

            //3번째
            stringBuilder.Append(" <tr>");

            stringBuilder.Append(" <td >");
            stringBuilder.Append("수취인국가코드보기<br>EMS프리미엄<br>(예시 미국->US입력)");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" <td >");
            stringBuilder.Append("국가별<br>발송조건 보기");
            stringBuilder.Append(" </td>");

            stringBuilder.Append(" </tr>");
            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("<table>");

            for (int k = 0; k < orderNums.Length; k++)
            {
                GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(orderNums[k]);

                if (gepWarehouse == null)
                {
                    continue;
                }

                if (gepWarehouse.sitetransinfo == null || gepWarehouse.trans_way_hist == null || gepWarehouse.transinfo == null || gepWarehouse.trns_cost == null)
                {
                    continue;
                }

                stringBuilder.Append("<tr>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("Gift");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_name);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_email);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_country_code);
                stringBuilder.Append(" </td>");

                string Temp = Regex.Replace(gepWarehouse.sitetransinfo.receiver_tel_no, @"\D", "");
                if (Temp.Length >= 10)
                {
                    int Length = Temp.Length;

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 10, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 7, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 4, 4));
                    stringBuilder.Append(" </td>");
                }
                else
                {
                    stringBuilder.Append("<td></td><td></td><td></td>");
                }

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_iso_country_code);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_country_name);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_zip_code);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_addr);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.trns_cost.real_weight);
                stringBuilder.Append(" </td>");

                //영문상품명은 중분류카테고리 영문명.
                string strEngName = String.IsNullOrEmpty(gepWarehouse.transinfo.gep_mcategory_ename) ?
                                        gepWarehouse.transinfo.gep_item_ename : gepWarehouse.transinfo.gep_mcategory_ename;
                stringBuilder.Append(" <td>");
                stringBuilder.Append(strEngName);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.transinfo.gep_order_count);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.trns_cost.real_weight);
                stringBuilder.Append(" </td>");

                stringBuilder.AppendLine("<td>" + new TransportCommonBiz().GetUSDprice(gepWarehouse.transinfo.clone_contr_price) + "</td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.hscode);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("Korea");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append("");
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.contr_no.ToString());
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.sender_zip_code);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.sender_addr);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.sender_name);
                stringBuilder.Append("</td>");

                stringBuilder.Append(" <td>");
                stringBuilder.Append(gepWarehouse.sitetransinfo.receiver_country_code);
                stringBuilder.Append(" </td>");

                Temp = Regex.Replace(gepWarehouse.sitetransinfo.sender_tel_no, @"\D", "");

                if (Temp.Length >= 10)
                {
                    int Length = Temp.Length;

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 10, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 7, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 4, 4));
                    stringBuilder.Append(" </td>");
                }
                else
                {
                    stringBuilder.Append("<td></td><td></td><td></td>");
                }

                Temp = Regex.Replace(gepWarehouse.sitetransinfo.sender_hp_no, @"\D", "");
                if (Temp.Length >= 10)
                {
                    int Length = Temp.Length;

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 10, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 7, 3));
                    stringBuilder.Append(" </td>");

                    stringBuilder.Append(" <td>");
                    stringBuilder.Append(Temp.Substring(Length - 4, 4));
                    stringBuilder.Append(" </td>");
                }
                else
                {
                    stringBuilder.Append("<td></td><td></td><td></td>");
                }

                stringBuilder.Append(" <td>");
                //stringBuilder.Append(gepWarehouse.sitetransinfo.sender_email);	//주문번호로 채워짐.
                stringBuilder.Append(gepWarehouse.contr_no);
                stringBuilder.Append(" </td>");

                stringBuilder.Append(" </tr>");

                new TransportCommonBiz().SetTransportState(orderNums[k], WarehouseStateEnum.Submitting, userID);
            }
            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("</body>");

            stringBuilder.AppendLine("</html>");

            return stringBuilder.ToString();
        }
        /// <summary>
        /// 배송대기 스캔
        /// </summary>
        /// <param name="scanValue">체결번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>스캔 결과</returns>
        public TransportResultSet SetDeliveryReadyWaitScan(int scanValue, string userID)
        {
            TransportResultSet transportResultSet = new TransportResultSet();

            transportResultSet.KeyValue = scanValue.ToString();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);
                if (0 < transportResultSet.Message.IndexOf("해외배송"))
                {
                    return transportResultSet;
                }
                else
                {
                    transportResultSet.KeyValue = scanValue.ToString();
                    transportResultSet.Code = ResultCodeEnum.Error;
                    transportResultSet.Message = "GEP 물류센터정보에 등록되어 있지 않는 건입니다.";
                    return transportResultSet;
                }
            }

            var q = (from t in gepWarehouse.trans_way_hist
                     orderby t.reg_dt descending
                     select t).ToList();

            if (q[0].transport_way != "SP" && q[0].transport_way != "RR")
            {
                transportResultSet.Message = "GEP-EMS 해외배송건 입니다.";
                transportResultSet.Code = ResultCodeEnum.Error;
                return transportResultSet;
            }

            if (gepWarehouse.state != WarehouseStateEnum.PackingBox && gepWarehouse.state != WarehouseStateEnum.Submitting)
            {
                transportResultSet.KeyValue = scanValue.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "상품 상태값이 배송대기 스캔할 수 없는 상태입니다.";
                return transportResultSet;
            }

            //배송상태 체크
            transportResultSet = new TransportCommonBiz().CheckCoreTranseportState(scanValue);

            if (ResultCodeEnum.Error == transportResultSet.Code)
                return transportResultSet;

            transportResultSet.Code = ResultCodeEnum.OK;
            transportResultSet.Message = "";

            return transportResultSet;
        }
Example #16
0
        public GepShippingSummaryT GetShippingSummary(string ta_gmkt_id)
        {
            //국내배송 건수
            GepShippingSummaryT sumData = new TransportGMKTCoreDac().ShippingSummary(ta_gmkt_id);

            //해외배송 건수
            GepShippingSummaryT overseaSumData = new TransportGepWarehouseDac().GetShippingSummary(ta_gmkt_id);

            sumData.InWarehouseCnt = overseaSumData.InWarehouseCnt;
            sumData.OverseaShippingCnt = overseaSumData.OverseaShippingCnt;

            return sumData;
        }
        /// <summary>
        /// 무게 수신 정보 저장
        /// </summary>
        /// <param name="contrNo">체결번호</param>
        /// <param name="scanWeight">무게</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>무게 수신 결과</returns>
        public TransportResultSet SetDeliveryReadyWeightSave(int contrNo, int scanWeight, string userID)
        {
            TransportResultSet transportResultSet = new TransportResultSet();

            transportResultSet.KeyValue = contrNo.ToString();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(contrNo);

            if (gepWarehouse == null)
            {
                transportResultSet.KeyValue = contrNo.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "GEP 물류센터정보에 등록되어 있지 않는 건입니다.";
                return transportResultSet;
            }

            if (gepWarehouse.state != WarehouseStateEnum.Arrival && gepWarehouse.state != WarehouseStateEnum.PackingBox)
            {
                transportResultSet.KeyValue = contrNo.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "상품 상태값이 배송준비 스캔할 수 없는 상태입니다.";
                return transportResultSet;
            }

            var tw = (from t in gepWarehouse.trans_way_hist
                      orderby t.reg_dt descending
                      select t).ToList();

            int Cost = new TransportCommonBiz().GetTransportCostForWeight(scanWeight,
                                                            gepWarehouse.sitetransinfo.sender_iso_country_code,
                                                            gepWarehouse.sitetransinfo.receiver_iso_country_code,
                                                            gepWarehouse.sitetransinfo.trans_way,
                                                            ShippingRateTypeEnum.GmktToExpress);

            if (Cost == 0)
            {
                transportResultSet.KeyValue = contrNo.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "배송비 계산에 문제가 있습니다.";
                return transportResultSet;
            }

            gepWarehouse.trns_cost.real_weight = scanWeight;
            gepWarehouse.trns_cost.real_transport_cost = Cost;
            gepWarehouse.trns_cost.reg_dt = DateTime.Now;
            gepWarehouse.trns_cost.reg_id = userID;
            gepWarehouse.check_weight_dt = DateTime.Now;
            gepWarehouse.check_weight_id = userID;

            //new TransportGepWarehouseDac().Save(gepWarehouse);

            //if (!new TransportCommonBiz().SetTransportState(contrNo, WarehouseStateEnum.PackingBox, userID))
            //{
            //    transportResultSet.KeyValue = contrNo.ToString();
            //    transportResultSet.Code = ResultCodeEnum.Error;
            //    transportResultSet.Message = "gopm상태값 변경에 문제가 있습니다.";
            //    return transportResultSet;
            //}

            if (false == new TransportCommonBiz().SetTransportState(ref gepWarehouse, WarehouseStateEnum.PackingBox, userID))
            {
                transportResultSet.KeyValue = contrNo.ToString();
                transportResultSet.Code = ResultCodeEnum.Error;
                transportResultSet.Message = "gopm상태값 변경에 문제가 있습니다.";
                return transportResultSet;
            }

            //상태변경하고 저장
            new TransportGepWarehouseDac().Save(gepWarehouse);

            //실측무게 배송비 전달용
            transportResultSet.KeyValue = Cost.ToString();

            if (scanWeight > 2000)
            {
                transportResultSet.Code = ResultCodeEnum.MustChagneEMS;
                transportResultSet.Message = "EMS로 전환 요청";
            }
            else
            {
                transportResultSet.Code = ResultCodeEnum.OK;
                transportResultSet.Message = "";

                //gep 무게 업데이트
                new TransportCommonBiz().SetGepItemWeight(gepWarehouse.transinfo.gep_item_id.ToString(), scanWeight);
            }

            return transportResultSet;
        }
Example #18
0
        /// <summary>
        /// 주문번호(체결번호)로 해외배송정보(트래킹URL포함) 조회
        /// </summary>
        /// <param name="contrNo"></param>
        /// <returns></returns>
        public DeliveryTracking GetDeliveryTracking(int contrNo)
        {
            //todo:GepWarehouse 없을 경우, 배송대기로 상태값 전송
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(contrNo);
            DeliveryTracking tracking = new DeliveryTracking();
            tracking.DeliveryState = CBT.GEP.Framework.data.EnumDHelper.GetDescription(GepShippingStateEnum.Wait);
            tracking.DeliveryWay = "";
            tracking.InvoiceNo = "";
            tracking.TrackingURL = "";

            if (gepWarehouse == null)
            {
                return tracking;
            }
            else
            {
                if (gepWarehouse.trans_way_hist == null || gepWarehouse.trans_way_hist.Count == 0)
                {
                    return tracking;
                }

                var q = (from t in gepWarehouse.trans_way_hist
                         orderby t.reg_dt descending
                         select t).ToList();

                string TrackingURL = "";

                if (q[0].transport_way.IndexOf("EMS") > -1)
                {
                    TrackingURL = "http://service.epost.go.kr/trace.RetrieveEmsTrace.postal?ems_gubun=E&POST_CODE=" + gepWarehouse.transinfo.oversea_invoice_no;
                }
                else
                {
                    TrackingURL = "http://service.epost.go.kr/trace.RetrieveEmsTrace.postal?ems_gubun=R&POST_CODE=" + gepWarehouse.transinfo.oversea_invoice_no;
                }

                tracking.DeliveryState = CBT.GEP.Framework.data.EnumDHelper.GetDescription(gepWarehouse.transinfo.state); //ConvertTo(gepWarehouse.transinfo.state, "");
                tracking.DeliveryWay = q[0].transport_way;
                tracking.DeliveryWayKor = GetTransWayKor(q[0].transport_way);
                tracking.InvoiceNo = String.IsNullOrEmpty(gepWarehouse.transinfo.oversea_invoice_no) ? "" : gepWarehouse.transinfo.oversea_invoice_no;
                tracking.TrackingURL = TrackingURL;

                return tracking;
            }
        }
        /// <summary>
        /// 배송완료 상품 송장입력
        /// </summary>
        /// <param name="orderNums">송장번호들 (구분자 ^)</param>
        /// <param name="invoiceNums">해외송장번호들 (구분자 ^)</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns></returns>
        public List<TransportResultSet> SetInvoceNums(int[] orderNums, string[] invoiceNums, string userID)
        {
            List<TransportResultSet> Results = new List<TransportResultSet>();

            if (orderNums.Length != invoiceNums.Length)
            {
                Results.Add(new TransportResultSet() {
                    KeyValue = ""
                    ,Code = ResultCodeEnum.Error
                    ,Message = "인자값이 잘못되었습니다."
                });
                return Results;
            }

            for (int k = 0; k < orderNums.Length; k++)
            {
                GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(orderNums[k]);

                if (gepWarehouse == null)
                {
                    Results.Add(new TransportResultSet()
                    {
                        KeyValue = orderNums[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = "도착확인되지 않은 상품입니다."
                    });
                    continue;
                }

                var q = (from t in gepWarehouse.trans_way_hist
                         orderby t.reg_dt descending
                         select t).ToList();

                if (q.Count == 0)
                {
                    Results.Add(new TransportResultSet()
                    {
                        KeyValue = orderNums[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = "상품 배송 방법 정보가 없습니다"
                    });
                    continue;
                }

                string transWayCode = new TransportCommonBiz().GetTransWayCode(q[0].transport_way);
                if (transWayCode != "SP" && transWayCode != "RR")
                {
                    Results.Add(new TransportResultSet()
                    {
                        KeyValue = orderNums[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = "항공소형포장건 입니다."
                    });
                    continue;
                }

                if (gepWarehouse.state != WarehouseStateEnum.Submitting && gepWarehouse.state != WarehouseStateEnum.InputInvoice)
                {
                    Results.Add(new TransportResultSet()
                    {
                        KeyValue = orderNums[k].ToString()
                        ,
                        Code = ResultCodeEnum.Error
                        ,
                        Message = "gopm 상태값이 송장 입력할수 있는 상태가 아닙니다."
                    });
                    continue;
                }

                gepWarehouse.invoice_input_dt = DateTime.Now;
                gepWarehouse.invoice_input_id = userID;
                gepWarehouse.state = WarehouseStateEnum.InputInvoice;
                gepWarehouse.transinfo.state = GepShippingStateEnum.Tracking;

                gepWarehouse.transinfo.oversea_invoice_no = invoiceNums[k];

                new TransportGepWarehouseDac().Save(gepWarehouse);

                new TransportCommonBiz().SetTransportState(orderNums[k], WarehouseStateEnum.InputInvoice, userID);

                Results.Add(new TransportResultSet() {
                    KeyValue = gepWarehouse.contr_no.ToString()
                    ,Code = ResultCodeEnum.OK
                    ,Message = ""
                });
            }

            return Results;
        }
        /// <summary>
        /// 배송대기 스캔 데이터 취득
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>스캔 데이터</returns>
        public DeliveryWaitGridData GetDeliveryWaitGridData(int scanValue)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                return null;
            }

            var tw = (from t in gepWarehouse.trans_way_hist
                     orderby t.reg_dt descending
                     select t).ToList();

            if (tw.Count == 0)
            {
                return null;
            }

            if (gepWarehouse.sitetransinfo == null)
            {
                return null;
            }

            return new DeliveryWaitGridData() {
                DeliveryAddress = gepWarehouse.sitetransinfo.receiver_addr
                ,DeliveryNation = gepWarehouse.sitetransinfo.receiver_country_name
                ,ForeingConutryTransc = tw[0].transport_way
                ,idx = "0"
                ,InvoiceNum = ""
                ,
                ObjectID = gepWarehouse.contr_no.ToString()
                ,OrderNum = gepWarehouse.contr_no.ToString()
                ,RealWeight = gepWarehouse.trns_cost.real_weight.ToString()
                ,ReceiverName = gepWarehouse.sitetransinfo.receiver_name
            };
        }
        /// <summary>
        /// 묶음 배송된 상품 데이터 취득
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>해당하는 송장의 국내 배송번호가 같은 상품 데이터</returns>
        public List<ArriveGridData> GetSummeryArriveData(int scanValue)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null || gepWarehouse.transinfo == null || gepWarehouse.transinfo.local_invoice_no == null)
            {
                return null;
            }

            List<GepWarehouse> listGepWarehouse = new TransportGepWarehouseDac().Find(gepWarehouse.transinfo.local_invoice_no);

            if (listGepWarehouse == null)
            {
                return null;
            }

            List<GepTransInfo> listGepTransInfo = new TransportCommonBiz().GetGepTransInfoDatas(gepWarehouse.transinfo.local_invoice_no);

            if (listGepTransInfo == null)
            {
                return null;
            }

            List<ArriveGridData> listArriveGridData = new List<ArriveGridData>();

            int k = 0;
            foreach (var t in listGepTransInfo)
            {
                if (t == null)
                {
                    continue;
                }

                k++;

                int Count = 0;

                if (listGepWarehouse != null && listGepWarehouse.Count != 0)
                {
                    Count = (from f in listGepWarehouse
                                 where t.contr_no == f.contr_no
                                 select t).Count();
                }

                listArriveGridData.Add(new ArriveGridData()
                {
                    Idx = k.ToString()
                    ,
                    ArrivedDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    ,
                    BuyerID = t.clone_buyer_id
                    ,
                    BuyerName = t.clone_buyer_name
                    ,
                    EbayContractDate = ""
                    ,
                    ForeingConutryTransc = t.trans_way.transport_way
                    ,
                    InvoiceNum = t.local_invoice_no
                    ,
                    LocalTransc = t.local_express_nm
                    ,
                    ObjectID = ObjectId.GenerateNewId().ToString()
                    ,
                    OrderNum = t.contr_no.ToString()
                    ,
                    ProductAmt = t.gep_order_count.ToString()
                    ,
                    ProductName = t.clone_item_name
                    ,
                    ProductNum = t.clone_item_no.ToString()
                    ,
                    ProductOption = t.clone_option_info
                    ,
                    SellerID = t.clone_seller_id
                    ,
                    SellerName = t.clone_seller_name
                    ,
                    State = Count == 0 ? "입고" : "도착"
                });
            }

            return listArriveGridData;
        }
        /// <summary>
        /// 배송 대기 데이터 엑셀 취득
        /// </summary>
        /// <param name="orderNums">송장번호</param>
        /// <param name="userID">사용자 아이디</param>
        /// <returns>엑셀 파일 구성용 html</returns>
        public string GetExcelHtml(int[] orderNums, string userID)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("<html>");
            stringBuilder.AppendLine("<head>");
            stringBuilder.AppendLine("<meta http-equiv='Content-type' content='text/html; charset=utf-8'>");
            stringBuilder.AppendLine("</head>");
            stringBuilder.AppendLine("<body>");

            stringBuilder.AppendLine("<table border='1' cellspacing='0' cellpadding='2' bordercolor='#93ACDB' bordercolorlight='#93ACDB' bordercolordark='#ffffff'>");

            stringBuilder.AppendLine("<tr>");
            stringBuilder.AppendLine("<th>순번</th>");
            stringBuilder.AppendLine("<th>등기번호</th>");
            stringBuilder.AppendLine("<th>도착국가코드</th>");
            stringBuilder.AppendLine("<th>중량(g)</th>");
            stringBuilder.AppendLine("<th>수취인성명</th>");
            stringBuilder.AppendLine("<th>수취인우편번호</th>");
            stringBuilder.AppendLine("<th>상세주소(수취인)</th>");
            stringBuilder.AppendLine("<th>시군(수취인)</th>");
            stringBuilder.AppendLine("<th>주도(수취인)</th>");
            stringBuilder.AppendLine("<th>수취인전화번호</th>");
            stringBuilder.AppendLine("<th>발송인성명</th>");
            stringBuilder.AppendLine("<th>발송인우편번호</th>");
            stringBuilder.AppendLine("<th>시도(발송인)</th>");
            stringBuilder.AppendLine("<th>구군(발송인)</th>");
            stringBuilder.AppendLine("<th>상세주소(발송인)</th>");
            stringBuilder.AppendLine("<th>발송인휴대폰</th>");
            stringBuilder.AppendLine("<th>구분</th>");
            stringBuilder.AppendLine("<th>내용품명</th>");
            stringBuilder.AppendLine("<th>물품개수</th>");
            stringBuilder.AppendLine("<th>물품가격(US$)</th>");
            stringBuilder.AppendLine("<th>G주문번호</th>");

            stringBuilder.AppendLine("</tr>");

            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("<table>");

            for (int k = 0; k < orderNums.Length; k++)
            {
                GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(orderNums[k]);

                if (gepWarehouse == null)
                {
                    continue;
                }

                if(gepWarehouse.sitetransinfo == null || gepWarehouse.trans_way_hist == null || gepWarehouse.transinfo == null || gepWarehouse.trns_cost == null)
                {
                    continue;
                }

                stringBuilder.Append("<tr>");

                stringBuilder.AppendLine("<th>" + (k+1).ToString() + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_iso_country_code +"</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.trns_cost.real_weight + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_name + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_zip_code + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_addr + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.receiver_tel_no + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.sender_name + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.sender_zip_code + "</th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th></th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.sender_addr + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.sitetransinfo.sender_hp_no + "</th>");
                stringBuilder.AppendLine("<th></th>");

                //영문상품명은 중분류카테고리 영문명.
                string strEngName = String.IsNullOrEmpty(gepWarehouse.transinfo.gep_mcategory_ename) ?
                                        gepWarehouse.transinfo.gep_item_ename : gepWarehouse.transinfo.gep_mcategory_ename;
                stringBuilder.AppendLine("<th>" + strEngName + "</th>");

                stringBuilder.AppendLine("<th>" + gepWarehouse.transinfo.gep_order_count + "</th>");
                stringBuilder.AppendLine("<th>" + new TransportCommonBiz().GetUSDprice(gepWarehouse.transinfo.clone_contr_price) + "</th>");
                stringBuilder.AppendLine("<th>" + gepWarehouse.contr_no + "</th>");

                stringBuilder.Append("</tr>");

                new TransportCommonBiz().SetTransportState(orderNums[k], WarehouseStateEnum.Submitting, userID);
            }
            stringBuilder.AppendLine("</table>");

            stringBuilder.AppendLine("</body>");

            stringBuilder.AppendLine("</html>");

            return stringBuilder.ToString();
        }
        /// <summary>
        /// 묶음 배송된 상품 도착 확인
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <param name="userID">유저 아이디</param>
        /// <returns>도착 확인 결과</returns>
        public List<TransportResultSet> SetSummeryArrive(int scanValue, string userID)
        {
            List<TransportResultSet> listTransportResultSet = new List<TransportResultSet>();

            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                listTransportResultSet.Add(new TransportResultSet()
                {
                    KeyValue = scanValue.ToString()
                    ,
                    Code = ResultCodeEnum.Error
                    ,
                    Message = "도착 확인된 건이 아닙니다."
                });

                return listTransportResultSet;
            }

            string LocalInvoceNum = gepWarehouse.transinfo.local_invoice_no;

            List<GepTransInfo> listGepTransInfo = new TransportCommonBiz().GetGepTransInfoDatas(LocalInvoceNum);

            if (listGepTransInfo == null)
            {
                listTransportResultSet.Add(new TransportResultSet()
                {
                    KeyValue = scanValue.ToString()
                    ,
                    Code = ResultCodeEnum.Error
                    ,
                    Message = "Gep 연동 데이터가 없습니다."
                });

                return listTransportResultSet;
            }

            var q = (from t in listGepTransInfo
                     where t.contr_no != scanValue
                     select t).ToList();

            foreach (var t in q)
            {
                listTransportResultSet.Add(ArriveScan(t.contr_no, userID));
            }

            return listTransportResultSet;
        }
        /// <summary>
        /// 배송대기 스캔 데이터 취득
        /// </summary>
        /// <param name="scanValue">송장번호</param>
        /// <returns>스캔한 데이터</returns>
        public DeliveryWaitGridData GetDeliveryWaitGridData(int scanValue)
        {
            GepWarehouse gepWarehouse = new TransportGepWarehouseDac().FindOne(scanValue);

            if (gepWarehouse == null)
            {
                return null;
            }

            var transWays = (from t in gepWarehouse.trans_way_hist
                      orderby t.reg_dt descending
                      select t).ToList();

            if (transWays.Count == 0)
            {
                return null;
            }

            if (gepWarehouse.transinfo == null || gepWarehouse.trans_way_hist == null || gepWarehouse.trns_cost == null)
            {
                return null;
            }

            //미국일때, HSCODE 조회
            if ("US" == gepWarehouse.sitetransinfo.receiver_iso_country_code && String.IsNullOrEmpty(gepWarehouse.hscode))
            {
                GepItemsData gepItem = new GepItemsBiz().GepItemView(Util.GetSafeString(gepWarehouse.transinfo.gep_item_id));

                if (null != gepItem && null != gepItem.src_info)
                {
                    List<CategoryHscodeT> data = new TransportGMKTCoreDac().GetCategoryHscodeT(gepItem.src_info.lcategory.cid, gepItem.src_info.mcategory.cid, gepItem.src_info.scategory.cid);

                    if (null != data && 0 < data.Count)
                    {
                        gepWarehouse.hscode = data[0].Hscode;

                        //업데이트
                        if (!String.IsNullOrEmpty(gepWarehouse.hscode))
                            new TransportGepWarehouseDac().Save(gepWarehouse);
                    }
                }
            }

            return new DeliveryWaitGridData()
            {
                DeliveryAddress = gepWarehouse.sitetransinfo.receiver_addr
                ,
                DeliveryNation = gepWarehouse.sitetransinfo.receiver_country_name
                ,
                ForeingConutryTransc = transWays[0].transport_way
                ,
                idx = "0"
                ,
                InvoiceNum = ""
                ,
                ObjectID = gepWarehouse.contr_no.ToString()
                ,
                OrderNum = gepWarehouse.contr_no.ToString()
                ,
                RealWeight = gepWarehouse.trns_cost.real_weight.ToString()
                ,
                ReceiverName = gepWarehouse.sitetransinfo.receiver_name
            };
        }