/webccr/src/com/emis/caesar/senao/event/button/TBtnCreditStage.java
https://bitbucket.org/sanliou/synccr · Java · 102 lines · 75 code · 4 blank · 23 comment · 13 complexity · 49ff6f3c1519250a0074a0116902005d MD5 · raw file
- package com.emis.caesar.senao.event.button;
- import com.emis.caesar.senao.event.TButtonEventContext;
- import com.emis.caesar.senao.unit.TCcrConst;
- import com.emis.caesar.senao.util.CcrUtil;
- import com.emis.caesar.senao.util.EDCUtil;
- import com.emis.caesar.senao.util.GenUtil;
- import com.emis.caesarui.webccr.webccr;
- import com.emis.util.emisUtil;
- import com.vaadin.ui.UI;
- /**
- * Created by Jenny on 2017/1/11.
- * 信用卡分期付款
- */
- public class TBtnCreditStage extends TButtonEventContext {
- /**
- * 來源是否為信用卡分期、信用卡無分期(一次)
- * isCreditStage: true(分期);false(無分期)
- */
- boolean isCreditStage = false;
- int iEntryAmt = 0;
- public TBtnCreditStage(boolean isCreditStage) {
- super();
- this.isCreditStage = isCreditStage;
- FiNextState = TCcrConst.CPS_PAY;
- //增加是否為信用卡分期CREDIT_STAGE or 一般刷卡 CREDIT_PAY add by daff 20181227 start
- if (isCreditStage) {
- FoSale.setSTAGE_BANK("CREDIT_STAGE");
- }else{
- FoSale.setSTAGE_BANK("CREDIT_PAY");
- }
- //增加是否為信用卡分期CREDIT_STAGE or 一般刷卡 CREDIT_PAY add by daff 20181227 end
- }
- /**
- * 檢核在哪些交易流程狀態下可執行
- */
- protected boolean inCcrSate() {
- int aRunSate[] = {TCcrConst.CPS_WAIT_PAY, TCcrConst.CPS_PAY,TCcrConst.CPS_LOCK_PAY};
- return GenUtil.isIntKeyInArray(aRunSate, FoCcr.getCurrnetState());
- }
- //轉換狀態是否可合法
- protected boolean trsCcrStateIsOK() {
- //add by Ares 20200729 線下繳費限定付款方式
- // 檢查是否有設定限定付款別
- String sLimitPayNo = FoSale.getFsLimitPayNo();
- if (!emisUtil.isEmpty(sLimitPayNo)) {
- CcrUtil.setMessage("限定付款別 = " + sLimitPayNo);
- //CcrUtil.setMessage("目前限定付款別 = " + FsPAY_NO);
- if (sLimitPayNo.indexOf("," + TCcrConst.PAY_CREDIT + ",") < 0) {
- FsErrMsg ="無法使用此付款方式";
- return eventOver(false);
- }
- }
- if (isCreditStage) {
- if (FoCcr.getCurrentSale().IsOnlyOrder()) {
- FsErrMsg = "純客訂不可信用卡分期";
- return eventOver(false);
- }
- }
- // 行動支付不能混合付款
- if (FoSale.getSaleItemCount() > 0) {
- if (FoSale.isExistedLinePay()) {
- FsErrMsg = "行動支付不能和其他付款方式併用";
- return eventOver(false);
- }
- }
- //
- String _sEntryAmt = FoCcr.UInotify.receivceMainDisplayEntryData();
- if (emisUtil.isEmpty(_sEntryAmt)) {
- iEntryAmt = (int)FoCcr.getCurrentSale().getUnpaidAmout();
- } else {
- iEntryAmt = emisUtil.parseInt(_sEntryAmt);
- }
- // ((webccr) UI.getCurrent()).getlog().info(webccr.class, "信用卡金額:" + iEntryAmt);
- CcrUtil.setMessage("信用卡金額:" + iEntryAmt);
- if (iEntryAmt > FoCcr.getCurrentSale().getUnpaidAmout()
- || iEntryAmt <= 0) {
- FsErrMsg = "超過已未付金額";
- return eventOver(false);
- }
- //
- loadWindow();
- return eventOver(true);
- }
- private void loadWindow() {
- int iTransType = EDCUtil.NORMAIL_SALE; // 一般銷售
- if (isCreditStage) {
- iTransType = EDCUtil.CARD_CREDITSTAGE; // 分期
- }
- // isCreditStage = true 表示需要開商品分期數視窗,反之則否
- EDCUtil edcUtil = new EDCUtil(iTransType, this, isCreditStage);
- // 不開窗,傳入金額與分期數
- if (!isCreditStage) {
- edcUtil.setiCreditStageAmt(iEntryAmt); // 刷卡金額
- edcUtil.setsStage(""); // 分期數
- }
- edcUtil.openPartWin();
- }
- }