From 37f0288fb95f5bcc37bb700dfe153172ce68c289 Mon Sep 17 00:00:00 2001 From: kuhan Date: Fri, 6 Jan 2023 18:58:33 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B0=EB=9E=98=EC=B2=98=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EC=B6=94=EA=B0=80=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/website/biz/dto/SellInfoDto.java | 56 ++++- .../mobile/website/biz/entity/SellInfo.java | 5 +- .../biz/model/sell/SellAddInfoParameter.java | 4 +- .../website/biz/model/sell/SellInfoModel.java | 27 +++ .../biz/model/sell/SellInfoParameter.java | 17 ++ .../biz/repository/SellInfoRepository.java | 6 +- .../website/biz/service/SellInfoService.java | 7 +- .../biz/service/impl/SellInfoServiceImpl.java | 32 ++- .../home/api/ApiSellInfoController.java | 9 +- .../static/res/front/js/biz/common/common.js | 19 +- .../static/res/front/js/biz/sell/add.js | 31 ++- .../static/res/front/js/biz/sell/info.js | 130 +++++++++-- .../static/res/front/js/lib/default.js | 204 +----------------- src/main/webapp/WEB-INF/view/sell/add.jsp | 28 ++- src/main/webapp/WEB-INF/view/sell/info.jsp | 110 +++++++++- 15 files changed, 419 insertions(+), 266 deletions(-) create mode 100644 src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoModel.java create mode 100644 src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoParameter.java diff --git a/src/main/java/com/ns/mobile/website/biz/dto/SellInfoDto.java b/src/main/java/com/ns/mobile/website/biz/dto/SellInfoDto.java index 7bd9bc0..b00c047 100644 --- a/src/main/java/com/ns/mobile/website/biz/dto/SellInfoDto.java +++ b/src/main/java/com/ns/mobile/website/biz/dto/SellInfoDto.java @@ -1,7 +1,9 @@ package com.ns.mobile.website.biz.dto; import java.time.LocalDate; +import java.util.List; +import com.ns.mobile.website.biz.entity.BusinessPartner; import com.ns.mobile.website.biz.entity.Phone; import com.ns.mobile.website.biz.entity.SellInfo; @@ -34,7 +36,6 @@ public class SellInfoDto extends BaseDto{ String serialNumber; String insertType; String formula; - String payBackYn; String payBackBank; String payBackNumber; @@ -47,15 +48,66 @@ public class SellInfoDto extends BaseDto{ long payBack; long factoryPrice; long disclosureSubsidy; + long addRebate; + long cashRebate; + + boolean payBackYn; boolean disclosureSubsidyYn; + List businessPartnerList; + List phoneList; + public static SellInfoDto of(SellInfo sellInfo) { SellInfoDto sellInfoDto = SellInfoDto.builder() - + .openingDate(sellInfo.getOpeningDate()) + .birthday(sellInfo.getBirthday()) + .pbirthday(sellInfo.getPbirthday()) + .payBackDay(sellInfo.getPayBackDay()) + .businessPartner(sellInfo.getBusinessPartner()) + .mobileCarrier(sellInfo.getMobileCarrier()) + .name(sellInfo.getName()) + .phoneNumber(sellInfo.getPhoneNumber()) + .pname(sellInfo.getPname()) + .pphoneNumber(sellInfo.getPphoneNumber()) + .mainRatePlan(sellInfo.getMainRatePlan()) + .subRatePlan(sellInfo.getSubRatePlan()) + .serialNumber(sellInfo.getSerialNumber()) + .insertType(sellInfo.getInsertType()) + .formula(sellInfo.getFormula()) + .payBackBank(sellInfo.getPayBackBank()) + .payBackNumber(sellInfo.getPayBackNumber()) + .installment(sellInfo.getInstallment()) + .phoneId(sellInfo.getPhoneId()) + .usim(sellInfo.getUsim()) + .faceValueRebate(sellInfo.getFaceValueRebate()) + .guestMoney(sellInfo.getGuestMoney()) + .introductionPay(sellInfo.getIntroductionPay()) + .payBack(sellInfo.getPayBack()) + .factoryPrice(sellInfo.getFactoryPrice()) + .disclosureSubsidy(sellInfo.getDisclosureSubsidy()) + .payBackYn(sellInfo.isPayBackYn()) + .disclosureSubsidyYn(sellInfo.isDisclosureSubsidyYn()) + .cashRebate(sellInfo.getCashRebate()) + .addRebate(sellInfo.getAddRebate()) .build(); sellInfoDto.base(sellInfo); return sellInfoDto; } + + public String getInsertTypeText(){ + switch(insertType) { + case "move": + return "MNP"; + case "change": + return "기변"; + case "new": + return "신규"; + case "other": + return "유선"; + + } + return ""; + } } diff --git a/src/main/java/com/ns/mobile/website/biz/entity/SellInfo.java b/src/main/java/com/ns/mobile/website/biz/entity/SellInfo.java index a9542a8..2fcd1c1 100644 --- a/src/main/java/com/ns/mobile/website/biz/entity/SellInfo.java +++ b/src/main/java/com/ns/mobile/website/biz/entity/SellInfo.java @@ -32,7 +32,6 @@ public class SellInfo extends BaseEntity{ private String serialNumber; private String insertType; private String formula; - private String payBackYn; private String payBackBank; private String payBackNumber; @@ -45,5 +44,9 @@ public class SellInfo extends BaseEntity{ private long payBack; private long factoryPrice; private long disclosureSubsidy; + private long addRebate; + private long cashRebate; + + private boolean payBackYn; private boolean disclosureSubsidyYn; } diff --git a/src/main/java/com/ns/mobile/website/biz/model/sell/SellAddInfoParameter.java b/src/main/java/com/ns/mobile/website/biz/model/sell/SellAddInfoParameter.java index 27a379b..bd9f733 100644 --- a/src/main/java/com/ns/mobile/website/biz/model/sell/SellAddInfoParameter.java +++ b/src/main/java/com/ns/mobile/website/biz/model/sell/SellAddInfoParameter.java @@ -35,12 +35,14 @@ public class SellAddInfoParameter{ private long introductionPay; private long payBack; private String payBackDay; - private String payBackYn; private String payBackBank; private String payBackNumber; private long factoryPrice; private long disclosureSubsidy; + private long addRebate; + private long cashRebate; + private boolean payBackYn; private boolean disclosureSubsidyYn; } diff --git a/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoModel.java b/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoModel.java new file mode 100644 index 0000000..a3117a7 --- /dev/null +++ b/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoModel.java @@ -0,0 +1,27 @@ +package com.ns.mobile.website.biz.model.sell; + +import java.util.List; + +import com.ns.mobile.website.biz.dto.SellInfoDto; +import com.ns.mobile.website.biz.entity.BusinessPartner; +import com.ns.mobile.website.biz.entity.Phone; +import com.ns.mobile.website.biz.entity.SubRatePlan; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SellInfoModel{ + + List businessPartnerList; + List phoneList; + List subRatePlanList; + + List sellInfoList; + +} diff --git a/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoParameter.java b/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoParameter.java new file mode 100644 index 0000000..2babe0f --- /dev/null +++ b/src/main/java/com/ns/mobile/website/biz/model/sell/SellInfoParameter.java @@ -0,0 +1,17 @@ +package com.ns.mobile.website.biz.model.sell; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SellInfoParameter{ + + private String searchDate; + private String[] businessPartner; + +} diff --git a/src/main/java/com/ns/mobile/website/biz/repository/SellInfoRepository.java b/src/main/java/com/ns/mobile/website/biz/repository/SellInfoRepository.java index e7420db..8add215 100644 --- a/src/main/java/com/ns/mobile/website/biz/repository/SellInfoRepository.java +++ b/src/main/java/com/ns/mobile/website/biz/repository/SellInfoRepository.java @@ -1,5 +1,6 @@ package com.ns.mobile.website.biz.repository; +import java.time.LocalDate; import java.util.List; import java.util.Optional; @@ -7,9 +8,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import com.ns.mobile.website.biz.entity.SellInfo; -import com.ns.mobile.website.biz.entity.SubRatePlan; @Repository public interface SellInfoRepository extends JpaRepository { - Optional> findByDelYn(boolean delYn); + Optional> findByBusinessPartnerInAndDelYnAndOpeningDateBetween(String[] businessPartner, boolean delYn, LocalDate start, LocalDate end); + Optional> findByDelYnAndOpeningDateBetween(boolean delYn, LocalDate start, LocalDate end); + Optional> findByDelYn(boolean delYn); } diff --git a/src/main/java/com/ns/mobile/website/biz/service/SellInfoService.java b/src/main/java/com/ns/mobile/website/biz/service/SellInfoService.java index 4315deb..34c7818 100644 --- a/src/main/java/com/ns/mobile/website/biz/service/SellInfoService.java +++ b/src/main/java/com/ns/mobile/website/biz/service/SellInfoService.java @@ -1,14 +1,13 @@ package com.ns.mobile.website.biz.service; -import java.util.List; - -import com.ns.mobile.website.biz.dto.SellInfoDto; import com.ns.mobile.website.biz.model.sell.SellAddInfoModel; import com.ns.mobile.website.biz.model.sell.SellAddInfoParameter; +import com.ns.mobile.website.biz.model.sell.SellInfoModel; +import com.ns.mobile.website.biz.model.sell.SellInfoParameter; public interface SellInfoService { - public List info(); + public SellInfoModel info(SellInfoParameter parameter); public SellAddInfoModel getSellAddInfo(); diff --git a/src/main/java/com/ns/mobile/website/biz/service/impl/SellInfoServiceImpl.java b/src/main/java/com/ns/mobile/website/biz/service/impl/SellInfoServiceImpl.java index b16af9f..ad751f2 100644 --- a/src/main/java/com/ns/mobile/website/biz/service/impl/SellInfoServiceImpl.java +++ b/src/main/java/com/ns/mobile/website/biz/service/impl/SellInfoServiceImpl.java @@ -1,12 +1,13 @@ package com.ns.mobile.website.biz.service.impl; -import java.time.LocalDateTime; +import java.time.LocalDate; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; -import com.ns.mobile.website.biz.dto.MenuDto; import com.ns.mobile.website.biz.dto.SellInfoDto; import com.ns.mobile.website.biz.entity.BusinessPartner; import com.ns.mobile.website.biz.entity.MainRatePlan; @@ -17,6 +18,8 @@ import com.ns.mobile.website.biz.entity.SubRatePlan; import com.ns.mobile.website.biz.exception.BizApiException; import com.ns.mobile.website.biz.model.sell.SellAddInfoModel; import com.ns.mobile.website.biz.model.sell.SellAddInfoParameter; +import com.ns.mobile.website.biz.model.sell.SellInfoModel; +import com.ns.mobile.website.biz.model.sell.SellInfoParameter; import com.ns.mobile.website.biz.repository.BusinessPartnerRepository; import com.ns.mobile.website.biz.repository.MainRatePlanRepository; import com.ns.mobile.website.biz.repository.MobileCarrierRepository; @@ -42,12 +45,25 @@ public class SellInfoServiceImpl implements SellInfoService{ private final SellInfoRepository sellInfoRepository; @Override - public List info() { - List sellInfoList = sellInfoRepository.findByDelYn(false).orElseThrow(() -> new BizApiException("판매 조회가 실패하였습니다.")); - List result = new ArrayList(); + public SellInfoModel info(SellInfoParameter parameter) { + SellInfoModel result = new SellInfoModel(); + LocalDate start = LocalDate.parse(parameter.getSearchDate()+"01", DateTimeFormatter.ofPattern("yyyyMMdd")); + LocalDate end = YearMonth.from(start).atEndOfMonth(); + List sellInfoList = sellInfoRepository.findByDelYnAndOpeningDateBetween(false,start,end).orElseThrow(() -> new BizApiException("판매 조회가 실패하였습니다.")); + if(parameter.getBusinessPartner().length == 0) { + sellInfoList = sellInfoRepository.findByDelYnAndOpeningDateBetween(false,start,end).orElseThrow(() -> new BizApiException("판매 조회가 실패하였습니다.")); + }else { + sellInfoList = sellInfoRepository.findByBusinessPartnerInAndDelYnAndOpeningDateBetween(parameter.getBusinessPartner(),false,start,end).orElseThrow(() -> new BizApiException("판매 조회가 실패하였습니다.")); + } + List sellInfoDtoList = new ArrayList(); sellInfoList.forEach(e -> { - result.add(SellInfoDto.of(e)); + sellInfoDtoList.add(SellInfoDto.of(e)); }); + result.setSellInfoList(sellInfoDtoList); + List businessPartnerList = businessPartnerRepository.findByDelYn(false).orElseThrow(() -> new BizApiException("거래처 조회가 실패하였습니다.")); + result.setBusinessPartnerList(businessPartnerList); + List phoneList = phoneRepository.findByDelYn(false).orElseThrow(() -> new BizApiException("핸드폰 조회가 실패하였습니다.")); + result.setPhoneList(phoneList); return result; } @@ -88,7 +104,7 @@ public class SellInfoServiceImpl implements SellInfoService{ .serialNumber(parameter.getSerialNumber()) .insertType(parameter.getInsertType()) .formula(parameter.getFormula()) - .payBackYn(parameter.getPayBackYn()) + .payBackYn(parameter.isPayBackYn()) .payBackBank(parameter.getPayBackBank()) .payBackNumber(parameter.getPayBackNumber()) .installment(parameter.getInstallment()) @@ -101,6 +117,8 @@ public class SellInfoServiceImpl implements SellInfoService{ .factoryPrice(parameter.getFactoryPrice()) .disclosureSubsidy(parameter.getDisclosureSubsidy()) .disclosureSubsidyYn(parameter.isDisclosureSubsidyYn()) + .cashRebate(parameter.getCashRebate()) + .addRebate(parameter.getAddRebate()) .build(); sellInfoRepository.save(sellInfo); diff --git a/src/main/java/com/ns/mobile/website/web/controller/home/api/ApiSellInfoController.java b/src/main/java/com/ns/mobile/website/web/controller/home/api/ApiSellInfoController.java index 4b9d258..dc60091 100644 --- a/src/main/java/com/ns/mobile/website/web/controller/home/api/ApiSellInfoController.java +++ b/src/main/java/com/ns/mobile/website/web/controller/home/api/ApiSellInfoController.java @@ -1,7 +1,5 @@ package com.ns.mobile.website.web.controller.home.api; -import java.util.List; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @@ -10,10 +8,11 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.ns.mobile.website.biz.dto.SellInfoDto; import com.ns.mobile.website.biz.model.ResponseResult; import com.ns.mobile.website.biz.model.sell.SellAddInfoModel; import com.ns.mobile.website.biz.model.sell.SellAddInfoParameter; +import com.ns.mobile.website.biz.model.sell.SellInfoModel; +import com.ns.mobile.website.biz.model.sell.SellInfoParameter; import com.ns.mobile.website.biz.service.SellInfoService; import com.ns.mobile.website.web.auth.PublicAccess; import com.ns.mobile.website.web.controller.BaseController; @@ -30,8 +29,8 @@ public class ApiSellInfoController extends BaseController { @PublicAccess @PostMapping("/api/sell/info.api") - public ResponseEntity info(HttpServletRequest request, HttpSession session){ - List result = sellInfoService.info(); + public ResponseEntity info(@RequestBody SellInfoParameter parameter, HttpServletRequest request, HttpSession session){ + SellInfoModel result = sellInfoService.info(parameter); return ResponseResult.success(result); } diff --git a/src/main/resources/static/res/front/js/biz/common/common.js b/src/main/resources/static/res/front/js/biz/common/common.js index 5b9e49d..d37ec48 100644 --- a/src/main/resources/static/res/front/js/biz/common/common.js +++ b/src/main/resources/static/res/front/js/biz/common/common.js @@ -320,7 +320,24 @@ function getParam(sname) { } return sval; } - +function moneyText(value){ + return moneyText(value,'N'); +} +function moneyText(value,numYn){ + if(numYn == 'N') + value = Number(value.replaceAll(',', '')); + + if(value < 999){ + value = value*10000; + } + + if(isNaN(value)) { //NaN인지 판별 + return 0; + }else { //NaN이 아닌 경우 + const formatValue = value.toLocaleString('ko-KR'); + return formatValue; + } +} //Toggle Menu 버튼 window.addEventListener('DOMContentLoaded', event => { diff --git a/src/main/resources/static/res/front/js/biz/sell/add.js b/src/main/resources/static/res/front/js/biz/sell/add.js index 0e52ae0..4aff44c 100644 --- a/src/main/resources/static/res/front/js/biz/sell/add.js +++ b/src/main/resources/static/res/front/js/biz/sell/add.js @@ -35,12 +35,14 @@ let appVue = new Vue({ introductionPay: '', payBack: '', payBackDay: '', - payBackYn: 'N', + payBackYn: false, payBackBank: '', payBackNumber: '', factoryPrice: '', disclosureSubsidy: '', - disclosureSubsidyYn: false + disclosureSubsidyYn: false, + addRebate: '', + cashRebate: '' }, mounted: function () { this.init(); @@ -118,6 +120,10 @@ let appVue = new Vue({ alert('액면가를 입력하세요'); return false; } + if($this.cashRebate== '' || $this.cashRebate== 0){ + alert('현금수납를 입력하세요'); + return false; + } if($this.factoryPrice== '' ||$this.factoryPrice== 0){ alert('출고가를 입력하세요'); return false; @@ -139,6 +145,8 @@ let appVue = new Vue({ payBack : $this.payBack.replaceAll(',', ''), factoryPrice : $this.factoryPrice.replaceAll(',', ''), disclosureSubsidy : $this.disclosureSubsidy.replaceAll(',', ''), + cashRebate: $this.cashRebate.replaceAll(',', ''), + addRebate: $this.addRebate.replaceAll(',', ''), businessPartner : $this.businessPartner, mobileCarrier : $this.mobileCarrier, @@ -156,7 +164,7 @@ let appVue = new Vue({ payBackYn : $this.payBackYn, payBackBank : $this.payBackBank, payBackNumber : $this.payBackNumber, - disclosureSubsidyYn : $this.disclosureSubsidyYn + disclosureSubsidyYn : $this.disclosureSubsidyYn } console.log(parameter); @@ -314,21 +322,10 @@ let appVue = new Vue({ } } var value = result*10000; - $this.faceValueRebate = $this.moneyText(value.toString()); + $this.faceValueRebate = moneyText(value.toString()); }, - moneyText: function(value){ - value = Number(value.replaceAll(',', '')); - - if(value < 999){ - value = value*10000; - } - - if(isNaN(value)) { //NaN인지 판별 - return 0; - }else { //NaN이 아닌 경우 - const formatValue = value.toLocaleString('ko-KR'); - return formatValue; - } + callMoneyText: function(value){ + return moneyText(value); }, payBackChange: function(){ let $this = this; diff --git a/src/main/resources/static/res/front/js/biz/sell/info.js b/src/main/resources/static/res/front/js/biz/sell/info.js index c7d7fd1..c73c83f 100644 --- a/src/main/resources/static/res/front/js/biz/sell/info.js +++ b/src/main/resources/static/res/front/js/biz/sell/info.js @@ -3,16 +3,25 @@ let appVue = new Vue({ el: '#vueApp', data: { info :{ - businessPartnerList: [], - mainRatePlanList: [], - mobileCarrierList: [], - phoneList: [], - subRatePlanList: [] - } + sellInfoList: [] + }, + view :{ + settlementAmountSum: 0, + texSum: 0, + middleMarginSum: 0, + realMarginSum: 0, + bondIssuanceAmountSum: 0, + realBondIssuanceAmountSum: 0 + }, + searchDate:'', + businessPartner:[] }, mounted: function () { this.init(); }, + updated: function(){ + $('.selectpicker').selectpicker('refresh'); + }, computed: {}, methods: { init: function () { @@ -21,21 +30,116 @@ let appVue = new Vue({ }, bindData: function () { let $this = this; - - let parameter = ''; + $this.view.settlementAmountSum = 0; + $this.view.texSum = 0; + $this.view.middleMarginSum = 0; + $this.view.realMarginSum = 0; + $this.view.bondIssuanceAmountSum = 0; + $this.view.realBondIssuanceAmountSum = 0; + if($this.searchDate == ''){ + $this.searchDate = new Date().format('yyyyMM'); + } + + let parameter = { + searchDate : $this.searchDate, + businessPartner : $this.businessPartner + }; nscompany.mobile.api.sell.info(parameter, function (success, message, data) { if (!success) { alert(message); return false; } + $this.info.sellInfoList = data.sellInfoList; $this.info.businessPartnerList = data.businessPartnerList; - $this.info.mainRatePlanList = data.mainRatePlanList; - $this.info.mobileCarrierList = data.mobileCarrierList; $this.info.phoneList = data.phoneList; - $this.info.subRatePlanList = data.subRatePlanList; - + $this.sumData(); console.log($this.info); }); - } + }, + sumData: function(){ + let $this = this; + $this.info.sellInfoList.forEach(function(x, index) { + $this.view.settlementAmountSum += Number($this.getSettlementAmount(x).replaceAll(',','')); + $this.view.texSum += Number($this.getTex(x).replaceAll(',','')); + $this.view.middleMarginSum += Number($this.getMiddleMargin(x).replaceAll(',','')); + $this.view.realMarginSum += Number($this.getRealMargin(x).replaceAll(',','')); + $this.view.bondIssuanceAmountSum += Number($this.getBondIssuanceAmount(x).replaceAll(',','')); + $this.view.realBondIssuanceAmountSum += Number($this.getRealBondIssuanceAmount(x).replaceAll(',','')); + }); + $this.view.settlementAmountSum = moneyText($this.view.settlementAmountSum,'Y'); + $this.view.texSum = moneyText($this.view.texSum,'Y'); + $this.view.middleMarginSum = moneyText($this.view.middleMarginSum,'Y'); + $this.view.realMarginSum = moneyText($this.view.realMarginSum,'Y'); + $this.view.bondIssuanceAmountSum = moneyText($this.view.bondIssuanceAmountSum,'Y'); + $this.view.realBondIssuanceAmountSum = moneyText($this.view.realBondIssuanceAmountSum,'Y'); + }, + getSettlementAmount: function(x){ + //(액면리베이트+고객현금)-(현금수납+유심비+수수료) = 정산금액 + var fees = 0; + if(x.insertType == 'move'){ + fees = 800; + } + var settlementAmount = (x.faceValueRebate+x.guestMoney) - (x.cashRebate+x.usim+fees); + + return moneyText(settlementAmount,'Y'); + }, + getTex: function(x){ + //정산금액 * 0.1 = 세금 + let $this = this; + var settlementAmount = Number($this.getSettlementAmount(x).replaceAll(',','')); + var tex = settlementAmount*0.1; + + return moneyText(tex,'Y'); + }, + getMiddleMargin: function(x){ + //정산금액 - (페이백+치팅비+소개비+유심비) = 중간마진 //치팅비없음 + let $this = this; + var settlementAmount = Number($this.getSettlementAmount(x).replaceAll(',','')); + var middleMargin = (settlementAmount - (x.payBack+x.introductionPay+x.usim)); + + return moneyText(middleMargin,'Y'); + }, + getRealMargin: function(x){ + //(중간마진-세금)+세금키핑 = 실마진 //세금키핑없음 + let $this = this; + var middleMargin = Number($this.getMiddleMargin(x).replaceAll(',','')); + var tex = Number($this.getTex(x).replaceAll(',','')); + var realMargin = (middleMargin-tex); + + return moneyText(realMargin,'Y'); + }, + callMoneyText: function(value){ + return moneyText(value,'Y'); + }, + getBondIssuanceAmount: function(x){ + //(액면리베이트+추가리베이트+유심)-(현금수납+수수료+차감) = 채권발생액 //차감없음 + let $this = this; + var fees = 0; + if(x.insertType == 'move'){ + fees = 800; + } + var settlementAmount = Number($this.getSettlementAmount(x).replaceAll(',','')); + var bondIssuanceAmount = ((settlementAmount + x.addRebate + x.usim)-(x.guestMoney+fees)); + + return moneyText(bondIssuanceAmount,'Y'); + }, + getRealBondIssuanceAmount: function(x){ + //채권발생액-유심비 = 실체권발생액 + let $this = this; + var bondIssuanceAmount = Number($this.getBondIssuanceAmount(x).replaceAll(',','')); + var realBondIssuanceAmount = (bondIssuanceAmount-x.usim); + + return moneyText(realBondIssuanceAmount,'Y'); + }, + searchDateBlur: function (){ + let $this = this; + + if($this.searchDate.length == 2){ + $this.searchDate = '2023' + $this.searchDate; + } + else if($this.searchDate.length == 4){ + $this.searchDate = '20' + $this.searchDate; + } + } } }); \ No newline at end of file diff --git a/src/main/resources/static/res/front/js/lib/default.js b/src/main/resources/static/res/front/js/lib/default.js index 8aba049..fc2f749 100644 --- a/src/main/resources/static/res/front/js/lib/default.js +++ b/src/main/resources/static/res/front/js/lib/default.js @@ -43,37 +43,6 @@ function _isMobile() { return isMobile; } -// Responsive 이미지 변환 -function ResponsiveImagesNew() { - $(".imgResponsive").each(function() { - var winW = window.innerWidth; - if (winW > 1023 && $(this).attr("data-media-type") != "pc") { - var url = $(this).attr("data-src-pc"); - $(this).attr("data-media-type", "pc"); - chgImg($(this), url, "pc"); - } - if (winW <= 1023 && $(this).attr("data-media-type") != "mobile") { - var url = $(this).attr("data-src-mobile"); - $(this).attr("data-media-type", "mobile"); - chgImg($(this), url, "mobile"); - } - }); - - function chgImg($target, url, type) { - $target.attr("src", url); - $target.attr("data-media-type", type); - } - - var winW = window.innerWidth; - - if ($('#contents').length) { - if ($('#contents').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) <= window.innerHeight) { - $('#contents').css({ - minHeight: window.innerHeight - $('#header').outerHeight(true) - $('#footer').outerHeight(true) - }); - } - } -} // LayerPopup 열기 var idxLayPop = 0; @@ -133,177 +102,6 @@ function layerPop(n, target){ } } - - -// 아코디언 -function accodianUI() { - var el = $('.accordianList'); - - if (el.length <= 0) { - return; - } - - el.find('>ul>li').removeClass('on'); - - bindEvents(); - - function bindEvents() { - el.find('>ul>li>dl>dt>a').off('click.accodianEvt').on('click.accodianEvt', function(e) { - e.preventDefault(); - - var index = $(this).closest('li').index(); - - $(this).closest(el).find('>ul>li').each(function(idx, obj) { - if (idx == index) { - if ($(obj).hasClass('on')) { - $(obj).removeClass('on'); - } else { - $(obj).addClass('on'); - } - } else { - $(obj).removeClass('on'); - } - }); - - }); - } -} - -// 탭 메뉴 -function tabUI() { - var el = $('.tabsGroup'); - - if(el.length <= 0){ - return; - } - - el.each(function(idx, obj){ - if($(obj).find('.tabs > li').hasClass('on')){ - $(obj).find('.tabs > li').each(function(){ - var idx = $(this).filter('.on').index(); - if(idx >= 0){ - $(obj).find('.tabs > li').eq(idx).addClass('on').siblings().removeClass('on'); - $(obj).find('> .tabsCont').hide().eq(idx).show(); - } - - }); - } - else{ - $(obj).find('.tabs > li').eq(0).addClass('on').siblings().removeClass('on'); - $(obj).find('> .tabsCont').hide().eq(0).show(); - } - - bindEvents(obj); - }); - - - function bindEvents(obj){ - var $this = $(obj); - - $this.find('.tabs > li > a').on('click', function(e){ - e.preventDefault(); - - var index = $(this).closest('li').index(); - - if($this.find('> .tabsCont').eq(index).length <= 0){ - return; - } - - $(this).closest(el).find('.tabs > li').eq(index).addClass('on').siblings().removeClass('on'); - $(this).closest(el).find('> .tabsCont').hide().eq(index).show(); - - $(window).scrollTop(0); - }); - - } -} - -// 퀵모임 탭 메뉴 -function meeTabUI() { - var el = $('.meetListArea'); - - if(el.length <= 0){ - return; - } - - el.each(function(idx, obj){ - if($(obj).find('.tabMeet > a').hasClass('on')){ - $(obj).find('.tabMeet > a').each(function(){ - var idx = $(this).filter('.on').index(); - if(idx >= 0){ - $(obj).find('.tabMeet > a').eq(idx).addClass('on').siblings().removeClass('on'); - $(obj).find('> .tabMeetCont').hide().eq(idx).show(); - } - - }); - } - else{ - $(obj).find('.tabMeet > a').eq(0).addClass('on').siblings().removeClass('on'); - $(obj).find('> .tabMeetCont').hide().eq(0).show(); - } - - bindEvents(obj); - }); - - - function bindEvents(obj){ - var $this = $(obj); - - $this.find('.tabMeet > a').on('click', function(e){ - e.preventDefault(); - - var index = $(this).index(); - - if($this.find('> .tabMeetCont').eq(index).length <= 0){ - return; - } - - $(this).closest(el).find('.tabMeet > a').eq(index).addClass('on').siblings().removeClass('on'); - $(this).closest(el).find('> .tabMeetCont').hide().eq(index).show(); - - $(window).scrollTop(0); - }); - - } -} - $(function() { - ResponsiveImagesNew(); - $(window).resize(function() { - ResponsiveImagesNew(); - }).resize(); - accodianUI(); - tabUI(); - meeTabUI(); - - /* 요금 안내 클릭시 아래 링크안내로 가는 부분 제거 - $(document).on('click' , '#gnb a' , function(e){ - e.preventDefault(); - if(window.location.pathname=="/home"){ - $('body, html').stop().animate({ - scrollTop : $('.section.rateSimulation').offset().top - $('#header').outerHeight(true) - 30 - }); - }else{ - location.href="/home#simulation"; - } - }); - */ - // 조직 선택 - $(document).on('click' , '.meetOrgList a.itemHead' , function(e){ - e.preventDefault(); - - if($(this).closest('.item').hasClass('open')){ - $(this).closest('.item').removeClass('open'); - - $(this).removeClass('on'); - } - else{ - $(this).closest('.meetOrgList').find('.item').removeClass('open'); - $(this).closest('.item').addClass('open'); - - $(this).closest('.meetOrgList').find('.itemHead').removeClass('on'); - $(this).addClass('on'); - } - }); - + }); \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/view/sell/add.jsp b/src/main/webapp/WEB-INF/view/sell/add.jsp index 580c25d..5481c39 100644 --- a/src/main/webapp/WEB-INF/view/sell/add.jsp +++ b/src/main/webapp/WEB-INF/view/sell/add.jsp @@ -123,12 +123,12 @@
- +
- +
@@ -163,27 +163,39 @@ +
+ +
+ +
+
+ +
+ +
+
+
- +
- +
- +
- +
@@ -196,8 +208,8 @@
diff --git a/src/main/webapp/WEB-INF/view/sell/info.jsp b/src/main/webapp/WEB-INF/view/sell/info.jsp index 1b8d7e0..f0789c6 100644 --- a/src/main/webapp/WEB-INF/view/sell/info.jsp +++ b/src/main/webapp/WEB-INF/view/sell/info.jsp @@ -20,8 +20,114 @@ -
- +
+
+
+

조회 할 달1

+
+ +
+ +
+
+ +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#개통일이름생년월일핸드폰번호거래처모델명일련번호가입구분부가가입여부리베이트부가차감금액현금수납금액채권발생액실마진
{{x.id}}{{x.openingDate}}{{x.name}}{{x.birthday}}{{x.phoneNumber}}{{info.businessPartnerList[x.businessPartner-1].partnerName}}{{info.phoneList[x.phoneId-1].petName}}{{x.serialNumber}}{{x.insertTypeText}}{{x.subRatePlan}}{{callMoneyText(x.faceValueRebate)}}{{callMoneyText(x.cashRebate)}}{{getBondIssuanceAmount(x)}}{{getRealMargin(x)}}
합계{{view.bondIssuanceAmountSum}}{{view.realMarginSum}}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#거래처건수정산금액VAT실마진
{{x.id}}{{x.partnerName}}
합계{{view.bondIssuanceAmountSum}}{{view.realMarginSum}}
+