private void ReduceItemID(short ItemFrom)
        {
            TaxExemptSaleLine TESL = default(TaxExemptSaleLine);

            foreach (TaxExemptSaleLine tempLoopVar_TESL in this.Te_Sale_Lines)
            {
                TESL = tempLoopVar_TESL;
                if (TESL.ItemID >= ItemFrom)
                {
                    TESL.ItemID--;
                }
            }
        }
        public bool Add_a_Line(TaxExemptSaleLine oLine, ref bool CheckOverLimit, ref bool CheckQuota)
        {
            bool returnValue = false;

            returnValue = false;

            if (oLine.Quantity == 0)
            {
                return(returnValue);
            }

            var teLineNumber = mvarTe_Sale_Lines.Count + 1;

            mvarTe_Sale_Lines.AddLine((short)(mvarTe_Sale_Lines.Count + 1), oLine, teLineNumber.ToString());

            CalculateTotal(CheckOverLimit, CheckQuota);

            returnValue = true;

            return(returnValue);
        }
        public void CalculateTotal(bool CheckOverLimit, bool CheckQuota)
        {
            float             GasRunningQuota     = 0;
            float             PropaneRunningQuota = 0;
            float             TobaccoRunningQuota = 0;
            TaxExemptSaleLine TESL                = default(TaxExemptSaleLine);
            float             mAmount             = 0;
            float             mExemptedTax        = 0;
            float             mTotalExemptTobacco = 0;
            float             mTotalExemptGas     = 0;
            float             mTotalExemptPropane = 0;
            bool mHasTobacco = false;

            float mTotalTobacco = 0;
            float mTotalGas     = 0;
            float mTotalPropane = 0;

            mTotalTobacco = 0;
            mTotalGas     = 0;
            mTotalPropane = 0;


            mAmount             = 0;
            mExemptedTax        = 0;
            mTotalExemptTobacco = 0;
            mTotalExemptGas     = 0;
            mTotalExemptPropane = 0;
            mHasTobacco         = false;

            GasRunningQuota     = this.teCardholder.GasQuota;
            PropaneRunningQuota = this.teCardholder.PropaneQuota;
            TobaccoRunningQuota = this.teCardholder.TobaccoQuota;
            if (CheckOverLimit)
            {
                mvarGasOverLimit     = false;
                mvarPropaneOverLimit = false;
                mvarTobaccoOverLimit = false;
            }

            foreach (TaxExemptSaleLine tempLoopVarTesl in mvarTe_Sale_Lines)
            {
                TESL         = tempLoopVarTesl;
                mAmount      = mAmount + TESL.Amount;
                mExemptedTax = mExemptedTax + TESL.ExemptedTax;


                if (CheckOverLimit)
                {
                    TESL.OverLimit = false;
                }
                if (((TESL.ProductType == mPrivateGlobals.teProductEnum.eCigarette) || (TESL.ProductType == mPrivateGlobals.teProductEnum.eCigar)) || (TESL.ProductType == mPrivateGlobals.teProductEnum.eLooseTobacco))
                {
                    mTotalTobacco       = mTotalTobacco + TESL.Amount;
                    mTotalExemptTobacco = mTotalExemptTobacco + TESL.ExemptedTax;
                    mHasTobacco         = true;
                    TobaccoRunningQuota = TobaccoRunningQuota + TESL.ExemptedTax;

                    if (CheckQuota)
                    {
                        TESL.RunningQuota = TobaccoRunningQuota;
                    }


                    if (CheckOverLimit && TobaccoRunningQuota > mPrivateGlobals.theSystem.TobaccoLimit)
                    {
                        mvarTobaccoOverLimit = true;

                        if (TESL.Amount > 0)
                        {
                            TESL.OverLimit = true;
                        }
                    }
                } // hen
                else if ((((TESL.ProductType == mPrivateGlobals.teProductEnum.eGasoline) || (TESL.ProductType == mPrivateGlobals.teProductEnum.eDiesel)) || (TESL.ProductType == mPrivateGlobals.teProductEnum.emarkedGas)) || (TESL.ProductType == mPrivateGlobals.teProductEnum.emarkedDiesel))
                {
                    mTotalGas       = mTotalGas + TESL.Amount;
                    mTotalExemptGas = mTotalExemptGas + TESL.ExemptedTax;
                    GasRunningQuota = GasRunningQuota + TESL.ExemptedTax;

                    if (CheckQuota)
                    {
                        TESL.RunningQuota = GasRunningQuota;
                    }


                    if (CheckOverLimit && GasRunningQuota > mPrivateGlobals.theSystem.GasLimit)
                    {
                        mvarGasOverLimit = true;

                        if (TESL.Amount > 0)
                        {
                            TESL.OverLimit = true;
                        }
                    }
                }
                else if (TESL.ProductType == mPrivateGlobals.teProductEnum.ePropane)
                {
                    mTotalPropane       = mTotalPropane + TESL.Amount;
                    mTotalExemptPropane = mTotalExemptPropane + TESL.ExemptedTax;
                    PropaneRunningQuota = PropaneRunningQuota + TESL.ExemptedTax;

                    if (CheckQuota)
                    {
                        TESL.RunningQuota = PropaneRunningQuota;
                    }


                    if (CheckOverLimit && PropaneRunningQuota > mPrivateGlobals.theSystem.PropaneLimit)
                    {
                        mvarPropaneOverLimit = true;

                        if (TESL.Amount > 0)
                        {
                            TESL.OverLimit = true;
                        }
                    }
                }
            }



            if (CheckOverLimit)
            {
                if (mvarTobaccoOverLimit && mTotalTobacco < 0)
                {
                    mvarTobaccoOverLimit = false;
                }
                if (mvarGasOverLimit && mTotalGas < 0)
                {
                    mvarGasOverLimit = false;
                }
                if (mvarPropaneOverLimit && mTotalPropane < 0)
                {
                    mvarPropaneOverLimit = false;
                }
            }


            mvarHasTobacco         = mHasTobacco;
            mvarAmount             = mAmount;
            mvarTotalExemptedTax   = mExemptedTax;
            mvarTotalExemptTobacco = mTotalExemptTobacco;
            mvarTotalExemptGas     = mTotalExemptGas;
            mvarTotalExemptPropane = mTotalExemptPropane;
            TESL = null;
        }