Ejemplo n.º 1
0
        /// <summary>
        /// 무게 --> 배송비 계산 (무게단위: g)
        /// 단, RR(SP-RR)은 배송비표가 없으므로 여기서 계산하지 않음
        /// </summary>
        /// <param name="itemWeight">상품무게 단위 g</param>
        /// <param name="fromNationIsocode">보내는 국가 번호</param>
        /// <param name="toNationIsocode">받는 국가 번호</param>
        /// <param name="transWay">배송 방법 EMS,SP,RR</param>
        /// <param name="cost_type">배송비표 요율타입 1:고객->G마켓 2:G마켓->배송사</param>
        /// <returns>배송비 정보</returns>
        public int GetTransportCostForWeight(int weight, string fromNationIsocode, string toNationIsocode, string transWay, ShippingRateTypeEnum costRateType)
        {
            GepTransWay gepTransWay = GetTransWayInfo(transWay);
            int shippingCost = 0;

            //출발국가 없을때 한국으로 설정
            string fromNationISO = String.IsNullOrEmpty(fromNationIsocode) ? "KR" : fromNationIsocode;

            shippingCost = GetTransportCostByGmkt(weight, fromNationISO, toNationIsocode, gepTransWay.transco_code, costRateType);

            //추가 배송비 계산(예: RR코드 있는 항공소형포장일 경우)
            shippingCost += gepTransWay.trans_add_cost;

            return shippingCost;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 예상 배송비 계산 (무게단위: g)
        /// </summary>
        /// <param name="gd_no">상품번호</param>
        /// <param name="gdsc_cd">상품 카테고리 번호</param>
        /// <param name="fromNationIsocode">보내는 국가 번호</param>
        /// <param name="toNationIsocode">받는 국가 번호</param>
        /// <param name="trnscoCode">배송 방법</param>
        /// <param name="userID">사용자 아이디</param>
        /// <param name="ShippingRateTypeEnum">배송비표 요율타입 1:고객->G마켓 2:G마켓->배송사</param>
        /// <returns>배송비 정보</returns>
        public GepTranstCost GetTransportCostForOrigin(string gd_no, string gdsc_cd, string fromNationIsocode, string toNationIsocode, string transWay, string userID, ShippingRateTypeEnum costRateType)
        {
            GepTransWay gepTransWay = GetTransWayInfo(transWay);

            //출발국가 없을때 한국으로 설정
            string fromNationISO = String.IsNullOrEmpty(fromNationIsocode) ? "KR" : fromNationIsocode;

            //예상무게 (단위:g)
            int itemWeight = new TransportGMKTCoreDac().GetGoodWeight(gd_no, gdsc_cd);
            //예상무게별 배송비계산
            int shippingCost = GetTransportCostByGmkt(itemWeight, fromNationISO, toNationIsocode, gepTransWay.transco_code, costRateType);

            //추가 배송비 계산(예: RR코드 있는 항공소형포장일 경우)
            shippingCost += gepTransWay.trans_add_cost;

            return new GepTranstCost()
            {
                org_weight = itemWeight,
                org_transport_cost = shippingCost,
                real_transport_cost = 0,
                real_weight = 0,
                reg_dt = DateTime.Now,
                reg_id = userID
            };
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 예상 배송비 계산 - Gep Item 무게 조회도 함 (무게단위: g)
        /// </summary>
        /// <param name="gepItemId"></param>
        /// <param name="gd_no"></param>
        /// <param name="gdsc_cd"></param>
        /// <param name="fromNationIsocode"></param>
        /// <param name="toNationIsocode"></param>
        /// <param name="transWay"></param>
        /// <param name="userID"></param>
        /// <param name="costRateType"></param>
        /// <returns></returns>
        public GepTranstCost GetTransportCostForOrigin(long gepItemId, string gd_no, string gdsc_cd, string fromNationIsocode, string toNationIsocode, string transWay, string userID, ShippingRateTypeEnum costRateType)
        {
            GepTransWay gepTransWay = GetTransWayInfo(transWay);

            //출발국가 없을때 한국으로 설정
            string fromNationISO = String.IsNullOrEmpty(fromNationIsocode) ? "KR" : fromNationIsocode;

            //Gep Item 의 무게가 있을 경우, 해당 값 사용
            //                   없을 경우, Gmkt 값 사용
            int gepItemWeight = GetGepItemWeight(gepItemId.ToString());

            if (gepItemWeight <= 0)
            {
                return GetTransportCostForOrigin(gd_no, gdsc_cd, fromNationISO, toNationIsocode, transWay, userID, ShippingRateTypeEnum.GmktToExpress);
            }

            //예상무게별 배송비계산
            int shippingCost = GetTransportCostByGmkt(gepItemWeight, fromNationISO, toNationIsocode, gepTransWay.transco_code, costRateType);

            //추가 배송비 계산(예: RR코드 있는 항공소형포장일 경우)
            shippingCost += gepTransWay.trans_add_cost;

            return new GepTranstCost()
            {
                org_weight = gepItemWeight,
                org_transport_cost = shippingCost,
                real_transport_cost = 0,
                real_weight = 0,
                reg_dt = DateTime.Now,
                reg_id = userID
            };
        }
Ejemplo n.º 4
0
        /// <summary>
        /// GMKT 배송비표에 따른 배송비 계산 (무게단위: g)
        /// 단, RR(SP-RR)은 배송비표가 없으므로 여기서 계산하지 않음
        /// </summary>
        /// <param name="itemWeight">상품무게</param>
        /// <param name="fromNationIsocode">보내는 국가 번호</param>
        /// <param name="toNationIsocode">받는 국가 번호</param>
        /// <param name="trnscoCode">배송 방법</param>
        /// <param name="userID">사용자 아이디</param>
        /// <param name="cost_type">배송비표 요율타입 1:고객->G마켓 2:G마켓->배송사</param>
        /// <returns>배송비 정보</returns>
        public int GetTransportCostByGmkt(int weight, string fromNationIsocode, string toNationIsocode, int trnscoCode, ShippingRateTypeEnum costRateType)
        {
            int shippingCost = 0;

            //출발국가 없을때 한국으로 설정
            string fromNationISO = String.IsNullOrEmpty(fromNationIsocode) ? "KR" : fromNationIsocode;

            if (costRateType == ShippingRateTypeEnum.CustomerToGmkt)
                shippingCost = new TransportGMKTCoreDac().GetCostByTotalweight(fromNationISO, toNationIsocode, weight, trnscoCode);
            else
                shippingCost = new TransportGMKTCoreDac().GetCostByTotalweightByExpress(fromNationISO, toNationIsocode, weight, trnscoCode);

            return shippingCost;
        }