/// <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; }
/// <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 }; }
/// <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 }; }
/// <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; }