Exemplo n.º 1
0
        public static IState Instance(Number amount)
        {
            input = amount;

            MenuList list = new MenuList();

            list.Add(new CheckPaymentInfo());
            list.AddRange(CurrencyPaymentInfo.GetCurrencies());
            list.AddRange(CreditPaymentInfo.GetCredits());
            States.List.Instance(list);
            return(state);
        }
Exemplo n.º 2
0
        public static IState Continue()
        {
            //In case there is an error after full payment is applied to FPU
            //and document is not closed -  we have to close it here.
            if (cr.Document.BalanceDue == 0 && cr.Document.Payments.Count > 0)
            {
                try
                {
                    cr.Document.Close();
                    return(Start.Instance());
                }
                catch (PowerFailureException)
                {
                    cr.Document.Void();
                    return(Start.Instance());
                }
                catch (ClearRequiredException)
                {
                    cr.Printer.InterruptReport();
                    cr.Document.Close();
                    return(cr.State);
                }
                catch (Exception e)
                {
                    cr.Log.Warning(e);
                    return(Instance());
                }
            }

            if (paymentInfo is CreditPaymentInfo)
            {
                CreditPaymentInfo cpi = paymentInfo as CreditPaymentInfo;
                if (cpi.IsPaymentMade)
                {
                    return(States.PrintEftPaymentAfterPE.Instance());
                }
            }
            //Otherwise show remaining payment reqired to cashier
            String msg = String.Format("{0}\n{1}\t{2:C}", PosMessage.RECEIVE_PAYMENT,
                                       PosMessage.BALANCE, new Number(cr.Document.BalanceDue));

            return(Instance(msg));
        }
Exemplo n.º 3
0
        //Called from this, EnterNumber and Selling
        public static void GetCreditInstallments(CreditPaymentInfo creditInfo)
        {
            if (creditInfo.Amount == 0 && paymentInfo != null)
            {
                creditInfo.Amount = paymentInfo.Amount;
            }

            paymentInfo = creditInfo;
            if (cr.DataConnector.CurrentSettings.GetProgramOption(Setting.PromptCreditInstallments) == PosConfiguration.ON &&
                !creditInfo.Credit.IsTicket &&
                cr.IsAuthorisedFor(Authorizations.InstallOptAuth))
            {
                cr.State = EnterInteger.Instance(PosMessage.INSTALLMENT_COUNT, 0,
                                                 new StateInstance <int>(PayByCredit));
            }
            else
            {
                cr.State = PayByCredit(0);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// - Withdraw credit slips from register
        /// </summary>
        /// <param name="amount">withdraw amount</param>
        /// <returns>response from FPU</returns>
        public static IState WithdrawCreditSlipsFromRegister(decimal amount)
        {
            if (amount == 0)
            {
                throw new Exception(PosMessage.ZERO_DRAWER_OUT_ERROR);
            }
            Dictionary <int, ICredit> credits = cr.DataConnector.GetCredits();
            ICredit defaultCredit             = null;

            foreach (int key in credits.Keys)
            {
                defaultCredit = credits[key];
                break;
            }
            CreditPaymentInfo creditWithdrawal = new CreditPaymentInfo(defaultCredit, amount);

            cr.Printer.Withdraw(creditWithdrawal.Amount, creditWithdrawal.Credit);
            cr.DataConnector.OnWithdrawal(creditWithdrawal.Amount, creditWithdrawal.Credit);
            return(Start.Instance());
        }
Exemplo n.º 5
0
 public virtual void Pay(CreditPaymentInfo info)
 {
     cr.State = AlertCashier.Instance(cr.State.NotImplemented);
 }
Exemplo n.º 6
0
        public override void Pay(CreditPaymentInfo info)
        {
            int id = info.Id < 0 ? 0 : info.Id;

            WriteChar(id, PosKey.Credit);
        }
Exemplo n.º 7
0
        public override void Enter()
        {
            CreditPaymentInfo cpi = (CreditPaymentInfo)ie.Current;

            ProcessSelected((CreditPaymentInfo)cpi.Clone());
        }
Exemplo n.º 8
0
 public override void Pay(CreditPaymentInfo info)
 {
     base.DownArrow();
 }
Exemplo n.º 9
0
 public override void Pay(CreditPaymentInfo info)
 {
     return;
 }
Exemplo n.º 10
0
 public override void Pay(CreditPaymentInfo info)
 {
     cr.State = Payment.Instance(String.Empty);
     cr.State.Pay(info);
 }
Exemplo n.º 11
0
 public override void Pay(CreditPaymentInfo info)
 {
     Pay(info);
 }