Example #1
0
 public EjBank(TransBank tb)
 {
     //
     // TODO: Add constructor logic here
     //
     this.LineType  = (int)EjLineType.BANK;
     this.transBank = tb;
     this.States().PushState(BANK_FINAL);
 }
Example #2
0
        public static Ej GetSuspendedEj(Transaction trans)
        {
            Ej transRecords = new Ej();

            transRecords.LineNo = 0;
            transRecords.SeqNo  = 0;


            //Do not load if not suspended
            if (trans.State == (int)Transaction.Status.SUSPEND)
            {
                trans.State = (int)(Transaction.Status.IN_PROGRESS);
                trans.UpdateState();
            }

            //Create a header
            EjHeader ejHeader = new EjHeader(trans);

            transRecords.EjAddReload(ejHeader);
            //Get items
            TransItem item = new TransItem();

            item.Trans_no        = trans.Trans_no;
            item.Organization_no = trans.Organization_no;
            item.Store_no        = trans.Store_no;
            item.Pos_no          = trans.Pos_no;

            DataSet   data = item.LoadByTransno();
            DataTable dt   = data.Tables[0];

            foreach (DataRow dr in dt.Rows)
            {
                TransItem transItem = new TransItem(dr);

                if (transItem.State == (int)EjLineStates.PRICE_OVERRIDE)
                {
                    continue;
                }
                if (transItem.State == (int)EjLineStates.VOID_ITEM)
                {
                    continue;
                }
                if (transItem.State == (int)EjLineStates.VOID_SALE)
                {
                    continue;
                }

                if (transItem.Line_no > transRecords.LineNo)
                {
                    transRecords.LineNo = transItem.Line_no;
                }
                if (transItem.Seq_no > transRecords.SeqNo)
                {
                    transRecords.SeqNo = transItem.Seq_no;
                }


                if (transItem.State == (int)EjLineStates.SUSPEND)
                {
                    transItem.State = (int)EjLineStates.IN_PROGRESS;
                    transItem.UpdateState();
                }

                if (transItem.Reason_code == (int)EjItemReasonCodes.NORMAL_ITEM)
                {
                    EjItem ejItem = new EjItem(transItem);

                    transRecords.EjAddReload(ejItem);
                }
                if (transItem.Reason_code == (int)EjItemReasonCodes.SURCHARGE)
                {
                    EjSurcharge ejSurcharge = new EjSurcharge(transItem);
                    transRecords.EjAddReload(ejSurcharge);
                }
            }


            //Get promotions
            try
            {
                TransPromotion promo = new  TransPromotion();
                promo.Trans_no        = trans.Trans_no;
                promo.Organization_no = trans.Organization_no;
                promo.Store_no        = trans.Store_no;
                promo.Pos_no          = trans.Pos_no;

                DataSet   data1 = promo.LoadAllByTransId();
                DataTable dt1   = data1.Tables[0];
                foreach (DataRow dr1 in dt1.Rows)
                {
                    TransPromotion transPromotion = new  TransPromotion(dr1);
                    if (transPromotion.Line_no > transRecords.LineNo)
                    {
                        transRecords.LineNo = transPromotion.Line_no;
                    }
                    if (transPromotion.Seq_no > transRecords.SeqNo)
                    {
                        transRecords.SeqNo = transPromotion.Seq_no;
                    }

                    if (transPromotion.State != (int)EjLineStates.VOID_ITEM)
                    {
                        transPromotion.State = (int)EjLineStates.IN_PROGRESS;
                        transPromotion.UpdateState();
                    }
                    EjPromotion ejPromotion = new EjPromotion(transPromotion);
                    transRecords.EjAddReload(ejPromotion);
                }
            }
            catch
            {
            }

            //Get Tax
            try
            {
                TransTax ttax = new  TransTax();
                ttax.Trans_no        = trans.Trans_no;
                ttax.Organization_no = trans.Organization_no;
                ttax.Store_no        = trans.Store_no;
                ttax.Pos_no          = trans.Pos_no;

                DataSet   data2 = ttax.LoadByTransid();
                DataTable dt2   = data2.Tables[0];
                foreach (DataRow dr2 in dt2.Rows)
                {
                    TransTax transTax = new TransTax(dr2);
                    EjTax    ejTax    = new EjTax(transTax);
                    transRecords.EjAddReload(ejTax);

                    if (transTax.Line_no > transRecords.LineNo)
                    {
                        transRecords.LineNo = transTax.Line_no;
                    }
                }
            }
            catch
            {
            }


            //Get Free Text
            try
            {
                TransText ttext = new TransText();
                ttext.Trans_no        = trans.Trans_no;
                ttext.Organization_no = trans.Organization_no;
                ttext.Store_no        = trans.Store_no;
                ttext.Pos_no          = trans.Pos_no;

                DataSet   data3 = ttext.LoadByTransNo();
                DataTable dt3   = data3.Tables[0];
                foreach (DataRow dr3 in dt3.Rows)
                {
                    if (ttext.Line_no > transRecords.LineNo)
                    {
                        transRecords.LineNo = ttext.Line_no;
                    }
                    if (ttext.Seq_no > transRecords.SeqNo)
                    {
                        transRecords.SeqNo = ttext.Seq_no;
                    }
                    TransText  transText = new TransText(dr3);
                    EjFreeText ejText    = new EjFreeText(transText);
                    transRecords.EjAddReload(ejText);
                }
            }
            catch
            {
            }

            try
            {
                //Get Sales person
                TransSalesPerson salesPerson = new TransSalesPerson();
                salesPerson.Organization_no = trans.Organization_no;
                salesPerson.Trans_no        = trans.Trans_no;
                salesPerson.Store_no        = trans.Store_no;
                salesPerson.Pos_no          = trans.Pos_no;
                DataSet   dataSalP = salesPerson.LoadByTransNo();
                DataTable dtSalP   = dataSalP.Tables[0];
                foreach (DataRow drSalP in dtSalP.Rows)
                {
                    TransSalesPerson transSp = new TransSalesPerson(drSalP);
                    EjSalesPerson    ejSalP  = new EjSalesPerson(transSp);
                    transRecords.EjAddReload(ejSalP);
                }
            }
            catch
            {
            }


            //Get Bank EJ
            try
            {
                //Get Sales person
                TransBank transBank = new  TransBank();
                transBank.Organization_no = trans.Organization_no;
                transBank.Pos_no          = trans.Pos_no;
                transBank.Store_no        = trans.Store_no;
                transBank.Trans_no        = trans.Trans_no;
                DataSet   dataTBank = transBank.LoadByTransid();
                DataTable dtTBank   = dataTBank.Tables[0];
                foreach (DataRow drTBank in dtTBank.Rows)
                {
                    TransBank tb     = new TransBank(drTBank);
                    EjBank    ejBank = new EjBank(tb);
                    transRecords.EjAddReload(ejBank);
                }
            }
            catch
            {
            }



            //Get Payments made
            try
            {
                TransTender tender = new TransTender();
                tender.Trans_no        = trans.Trans_no;
                tender.Organization_no = trans.Organization_no;
                tender.Store_no        = trans.Store_no;
                tender.Pos_no          = trans.Pos_no;


                DataSet   data1 = tender.LoadByTransid();
                DataTable dt1   = data1.Tables[0];
                foreach (DataRow dr1 in dt1.Rows)
                {
                    TransTender transTender = new TransTender(dr1);
                    EjTender    ejTender    = new  EjTender(transTender);
                    transRecords.EjAddReload(ejTender);
                }
            }
            catch
            {
            }



            transRecords.EjArrayList.Sort(new Ej());
            return(transRecords);
        }
Example #3
0
        public override void Engage(int keyValue)
        {
            switch (this.States().PeekState())
            {
            case PAID_IN:

                this.PromptText = PosContext.Instance.Parameters.getParam("PromptAmount");
                desc            = PosContext.Instance.Parameters.getParam("PaidInAmount");
                sign            = 1.0;
                // PosContext.Instance.TransactionType = (int)Transaction.Types.PAID_IN;
                PosContext.Instance.Operprompt.Update(this);
                this.transType = (int)TotalType.PAID_IN;
                PosContext.Instance.ClearInput();
                this.States().PushState(GET_AMOUNT);
                break;

            case PAID_OUT:

                this.PromptText = PosContext.Instance.Parameters.getParam("PromptAmount");
                desc            = PosContext.Instance.Parameters.getParam("PaidOutAmount");
                sign            = -1.0;
                // PosContext.Instance.TransactionType = (int)Transaction.Types.PAID_OUT;
                PosContext.Instance.Operprompt.Update(this);
                this.transType = (int)TotalType.PAID_OUT;
                PosContext.Instance.ClearInput();
                this.States().PushState(GET_AMOUNT);
                break;

            case LOAN:
                this.PromptText = PosContext.Instance.Parameters.getParam("PromptAmount");
                desc            = PosContext.Instance.Parameters.getParam("LoanAmount");
                sign            = -1.0;
                //   PosContext.Instance.TransactionType = (int)Transaction.Types.LOAN;
                PosContext.Instance.Operprompt.Update(this);
                this.transType = (int)TotalType.LOAN;
                PosContext.Instance.ClearInput();
                this.States().PushState(GET_AMOUNT);
                break;

            case PICKUP:
                this.promptText = PosContext.Instance.Parameters.getParam("PromptAmount");
                desc            = PosContext.Instance.Parameters.getParam("Pickup");
                sign            = -1.0;
                // PosContext.Instance.TransactionType = (int)Transaction.Types.PICKUP;
                PosContext.Instance.Operprompt.Update(this);
                this.transType = (int)TotalType.PICK_UP;
                PosContext.Instance.ClearInput();
                this.States().PushState(GET_AMOUNT);
                break;


            case GET_AMOUNT:                     // prompts for amout tendered

                this.PopState();

                double inputAmt = PosContext.Instance.PosMath.GetAmount(PosContext.Instance.InputDouble());

                this.transAmount = PosContext.Instance.PosMath.Mult(inputAmt, sign);

                if (this.AmountIsValid())
                {
                    this.PopState();
                }
                else
                {
                    // get out of this transaction and prompt error.
                    PosContext.Instance.ClearInput();
                    PosEventStack.Instance.ClearPending();
                    PosError error = new PosError(PosErrorCode.CASH_EXCEEDED);
                    this.PromptText = PosContext.Instance.Parameters.getParam("CashLimitExceeded");
                    PosEventStack.Instance.PushEvent(error);
                    PosContext.Instance.Operprompt.Update(this);
                    PosEventStack.Instance.NextEvent();
                    return;
                }

                transBank = new TransBank();                           // create a bank record

                transBank.Bank_desc       = desc;
                transBank.Trans_no        = PosContext.Instance.TrxNo;
                transBank.Organization_no = PosSettings.Default.Organization;
                transBank.Store_no        = PosSettings.Default.Store;
                transBank.Pos_no          = PosSettings.Default.Station;
                transBank.Seq_no          = PosContext.Instance.CurrentEj.SeqNo;
                transBank.Pay_type        = this.transType;
                transBank.Deposit_no      = 0;
                transBank.State           = 0;
                transBank.Drawer_no       = 0;                  // ().setDrawerNo (context ().drawerNo ());
                transBank.Locale_language = "";                 // ().setLocaleLanguage (Application.localeLanguage ());
                transBank.Locale_country  = "";                 //   ().setLocaleCountry (Application.localeCountry ());
                transBank.Amount          = this.transAmount;

                transBank.State = (int)EjLineStates.IN_PROGRESS;



                PosContext.Instance.CurrentEj.EjAdd(this);

                transBank.Seq_no = PosContext.Instance.CurrentEj.SeqNo;
                transBank.Add();

                PosContext.Instance.Receipt.Update(this);
                PosContext.Instance.Operprompt.Update(this);

                // PosContext.Instance.HomeGUI();
                PosEventStack.Instance.NextEvent();

                break;

            default:
                break;
            }
        }