Package org.ofbiz.pos

Examples of org.ofbiz.pos.PosTransaction


            NavagationEvents.showPosScreen(pos);
        }
    }

    private static synchronized void printTotals(PosScreen pos, GenericValue state, boolean runBalance) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        if (!trans.isOpen()) {
            pos.showDialog("dialog/error/terminalclosed");
            return;
        }
        if (state == null) {
            state = trans.getTerminalState();
        }

        BigDecimal checkTotal = ZERO;
        BigDecimal cashTotal = ZERO;
        BigDecimal gcTotal = ZERO;
        BigDecimal ccTotal = ZERO;
        BigDecimal othTotal = ZERO;
        BigDecimal total = ZERO;

        boolean beganTransaction = false;
        try {
            beganTransaction = TransactionUtil.begin();

            Delegator delegator = pos.getSession().getDelegator();
            List<EntityExpr> exprs = UtilMisc.toList(EntityCondition.makeCondition("originFacilityId", EntityOperator.EQUALS, trans.getFacilityId()),
                    EntityCondition.makeCondition("terminalId", EntityOperator.EQUALS, trans.getTerminalId()));
            EntityListIterator eli = null;

            try {
                eli = delegator.find("OrderHeaderAndPaymentPref", EntityCondition.makeCondition(exprs, EntityOperator.AND), null, null, null, null);
            } catch (GenericEntityException e) {
View Full Code Here


    public void refresh() {
        this.refresh(true);
    }

    public void refresh(boolean updateOutput) {
        PosTransaction trans = PosTransaction.getCurrentTx(this.getSession());
        if (trans == null) {
            updateOutput = false;
        }

        appFrame.requestFocus();
        this.lockScreenButton(this);
        //this.requestFocus();

        if (!isLocked) {
            this.setEnabled(true);
            this.setVisible(true);
            journal.refresh(this);
            input.clearInput();
            operator.refresh();
            if (updateOutput) {
                if (input.isFunctionSet("PAID")) {
                    output.print(UtilProperties.getMessage(PosTransaction.resource,"PosChange",defaultLocale)
                            + UtilFormatOut.formatPrice(trans.getTotalDue().negate()));
                } else if (input.isFunctionSet("TOTAL")) {
                    if (trans.getTotalDue().compareTo(BigDecimal.ZERO) > 0) {
                        output.print(UtilProperties.getMessage(PosTransaction.resource,"PosTotalD",defaultLocale) + " " + UtilFormatOut.formatPrice(trans.getTotalDue()));
                    } else {
                        output.print(UtilProperties.getMessage(PosTransaction.resource,"PosPayFin",defaultLocale));
                    }
                } else {
                    if (PosTransaction.getCurrentTx(session).isOpen()) {
View Full Code Here


    public static final String module = PaymentEvents.class.getName();

    public static synchronized void payCash(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        trans.clearPayment("CASH");

        // all cash transactions are NO_PAYMENT; no need to check
        try {
            BigDecimal amount = processAmount(trans, pos, null);
            Debug.logInfo("Processing [Cash] Amount : " + amount, module);

            // add the payment
            trans.addPayment("CASH", amount, null, null);
        } catch (GeneralException e) {
            // errors handled
        }
        clearInputPaymentFunctions(pos);
        pos.refresh();
View Full Code Here

        clearInputPaymentFunctions(pos);
        pos.refresh();
    }

    public static synchronized void payCheck(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        Input input = pos.getInput();
        String[] ckInfo = input.getFunction("CHECK");

        // check for no/external payment processing
        int paymentCheck = trans.checkPaymentMethodType("PERSONAL_CHECK");
        if (paymentCheck == PosTransaction.NO_PAYMENT) {
            trans.clearPayment("PERSONAL_CHECK");
            processNoPayment(pos, "PERSONAL_CHECK");
            return;
        } else if (paymentCheck == PosTransaction.EXTERNAL_PAYMENT) {
            if (ckInfo == null) {
                input.setFunction("CHECK");
View Full Code Here

        // now for internal payment processing
        pos.showDialog("dialog/error/notyetsupported");
    }

    public static synchronized void payGiftCard(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        Input input = pos.getInput();
        String[] gcInfo = input.getFunction("GIFTCARD");

        // check for no/external payment processing
        int paymentCheck = trans.checkPaymentMethodType("GIFT_CARD");
        if (paymentCheck == PosTransaction.NO_PAYMENT) {
            processNoPayment(pos, "GIFT_CARD");
            return;
        } else if (paymentCheck == PosTransaction.EXTERNAL_PAYMENT) {
            if (gcInfo == null) {
View Full Code Here

        pos.showDialog("dialog/error/notyetsupported");
        clearInputPaymentFunctions(pos);
    }

    public static synchronized void payCredit(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        Input input = pos.getInput();
        String[] msrInfo = input.getFunction("MSRINFO");
        String[] crtInfo = input.getFunction("CREDIT");
        String[] track2Info = input.getFunction("TRACK2");
        String[] securityCodeInfo = input.getFunction("SECURITYCODE");
        String[] postalCodeInfo = input.getFunction("POSTALCODE");
        String[] creditExpirationInfo = input.getFunction("CREDITEXP");

        // check for no/external payment processing
        int paymentCheck = trans.checkPaymentMethodType("CREDIT_CARD");
        if (paymentCheck == PosTransaction.NO_PAYMENT) {
            processNoPayment(pos, "CREDIT_CARD");
            return;
        } else if (paymentCheck == PosTransaction.EXTERNAL_PAYMENT) {
            if (crtInfo == null) {
                input.setFunction("CREDIT");
                pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosRefNum",Locale.getDefault()));
                return;
            } else {
                processExternalPayment(pos, "CREDIT_CARD", crtInfo[1]);
                return;
            }
        }

        // now for internal payment processing
        if (crtInfo == null) {
            // set total, if entered
            input.clearLastFunction();
            input.setFunction("TOTAL");
            input.setFunction("CREDIT");
            pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosCredNo",Locale.getDefault()));
        } else {
            Debug.logInfo("Credit Func Info : " + crtInfo[1], module);
            if (msrInfo == null && (creditExpirationInfo == null))  {
                //test credit card
                if (UtilValidate.isNotEmpty(input.value()) && UtilValidate.isCreditCard(input.value())) {
                    input.clearLastFunction();
                    input.setFunction("CREDIT");
                    input.setFunction("CREDITEXP");
                    pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosCredex",Locale.getDefault()));
                } else {
                    Debug.logInfo("Invalid card number - " + input.value(), module);
                    clearInputPaymentFunctions(pos);
                    input.clearInput();
                    pos.showDialog("dialog/error/invalidcardnumber");
                }
            } else if (msrInfo == null && (securityCodeInfo == null)) {
                // test expiration date
                if (UtilValidate.isNotEmpty(input.value()) && (input.value().length() == 4)) {
                    // ask for Security Code, put in SECURITYCODE
                    input.clearLastFunction();
                    input.setFunction("CREDITEXP");
                    input.setFunction("SECURITYCODE");
                    pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosSecurityCode",Locale.getDefault()));
                } else {
                    Debug.logInfo("Invalid expiration date", module);
                    clearInputPaymentFunctions(pos);
                    input.clearInput();
                    pos.showDialog("dialog/error/invalidexpirationdate");
                }
            } else if (msrInfo == null && (postalCodeInfo == null)) {
                // test security code - allow blank for illegible cards
                if (UtilValidate.isEmpty(input.value()) ||
                        (UtilValidate.isNotEmpty(input.value()) && (input.value().length() <= 4))) {
                    // ask for Security Code, put in SECURITYCODE
                    input.clearLastFunction();
                    input.setFunction("SECURITYCODE");
                    input.setFunction("POSTALCODE");
                    pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosPostalCode",Locale.getDefault()));
                } else {
                    clearInputPaymentFunctions(pos);
                    input.clearInput();
                    pos.showDialog("dialog/error/invalidsecuritycode");
                }
            } else {
                String msrInfoStr = null;
                if (msrInfo == null) {
                    input.clearLastFunction();
                    input.setFunction("POSTALCODE");
                    postalCodeInfo = input.getFunction("POSTALCODE");
                    if (UtilValidate.isNotEmpty(crtInfo[1])) {
                        if (UtilValidate.isNotEmpty(creditExpirationInfo[1])) {
                            // setup keyed transaction
                            msrInfoStr = crtInfo[1] + "|" + creditExpirationInfo[1];
                        } else {
                            msrInfoStr = crtInfo[1];
                        }
                    }
                } else // is swiped
                    // grab total from input, if available
                    input.setFunction("TOTAL");
                    msrInfoStr = msrInfo[1];
                }
                input.clearFunction("MSRINFO");
                input.setFunction("MSRINFO", msrInfoStr);
                String[] msrInfoArr = msrInfoStr.split("\\|");
                int allInfo = msrInfoArr.length;
                String firstName = null;
                String lastName = null;
                switch (allInfo) {
                    case 4:
                        lastName = msrInfoArr[3];
                    case 3:
                        firstName = msrInfoArr[2];
                    case 2: // card number & exp date found
                        BigDecimal amount = BigDecimal.ZERO;
                        try {
                            String[] totalInfo = input.getFunction("TOTAL");
                            amount = processAmount(trans, pos, totalInfo[1]);
                            Debug.logInfo("Processing Credit Card Amount : " + amount, module);
                        } catch (GeneralException e) {
                            Debug.logError("Exception caught calling processAmount.", module);
                            Debug.logError(e.getMessage(), module);
                        }

                        String cardNumber = msrInfoArr[0];
                        String expDate = msrInfoArr[1];
                        String pmId = trans.makeCreditCardVo(cardNumber, expDate, firstName, lastName);
                        if (pmId != null) {
                            trans.addPayment(pmId, amount);
                        }
                        if (track2Info != null && UtilValidate.isNotEmpty(track2Info[1])) {
                            // if swiped
                            trans.setPaymentTrack2(pmId, null, track2Info[1]);
                        } else { //keyed
                            if (securityCodeInfo != null && UtilValidate.isNotEmpty(securityCodeInfo[1])) {
                                trans.setPaymentSecurityCode(pmId, null, securityCodeInfo[1]);
                            }
                            if (postalCodeInfo != null && UtilValidate.isNotEmpty(postalCodeInfo[1])) {
                                trans.setPaymentPostalCode(pmId, null, postalCodeInfo[1]);
                            }
                        }
                        clearInputPaymentFunctions(pos);
                        pos.refresh();
                        break;
View Full Code Here

            }
        }
    }

    private static synchronized void processNoPayment(PosScreen pos, String paymentMethodTypeId) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());

        try {
            BigDecimal amount = processAmount(trans, pos, null);
            Debug.logInfo("Processing [" + paymentMethodTypeId + "] Amount : " + amount, module);

            // add the payment
            trans.addPayment(paymentMethodTypeId, amount, null, null);
        } catch (GeneralException e) {
            // errors handled
        }
        clearInputPaymentFunctions(pos);
        pos.refresh();
View Full Code Here

        clearInputPaymentFunctions(pos);
        pos.refresh();
    }

    private static synchronized void processExternalPayment(PosScreen pos, String paymentMethodTypeId, String amountStr) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        Input input = pos.getInput();
        String refNum = input.value();
        if (refNum == null) {
            pos.getOutput().print(UtilProperties.getMessage(PosTransaction.resource,"PosRefNum",Locale.getDefault()));
            return;
        }
        input.clearInput();

        try {
            BigDecimal amount = processAmount(trans, pos, amountStr);
            Debug.logInfo("Processing [" + paymentMethodTypeId + "] Amount : " + amount, module);

            // add the payment
            trans.addPayment(paymentMethodTypeId, amount, refNum, null);
        } catch (GeneralException e) {
            // errors handled
        }
        clearInputPaymentFunctions(pos);
        pos.refresh();
View Full Code Here

        clearInputPaymentFunctions(pos);
        pos.refresh();
    }

    public static synchronized void clearPayment(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        Journal journal = pos.getJournal();
        String sku = journal.getSelectedSku();
        String idx = journal.getSelectedIdx();
        if (UtilValidate.isNotEmpty(idx) && UtilValidate.isEmpty(sku)) {
            int index = -1;
            try {
                index = Integer.parseInt(idx);
            } catch (Exception e) {
            }
            if (index > -1) {
                trans.clearPayment(index);
            }
        }
        clearInputPaymentFunctions(pos);
        pos.refresh();
    }
View Full Code Here

        clearInputPaymentFunctions(pos);
        pos.refresh();
    }

    public static synchronized void clearAllPayments(PosScreen pos) {
        PosTransaction trans = PosTransaction.getCurrentTx(pos.getSession());
        trans.clearPayments();
        clearInputPaymentFunctions(pos);
        pos.refresh();
    }
View Full Code Here

TOP

Related Classes of org.ofbiz.pos.PosTransaction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.