Example #1
0
        /// <summary>
        /// Method to get test rate by tax name
        /// </summary>
        /// <param name="taxName">Tax name</param>
        /// <returns>List of tax rate</returns>
        public List <TaxRate> GetTaxRatesByName(string taxName)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,GetTaxRatesByName,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            var taxRateRecordSet = GetRecords("SELECT * FROM TaxRate  WHERE Tax_Name = \'" + taxName + "\' ", DataSource.CSCMaster);
            var taxRates         = new List <TaxRate>();

            foreach (DataRow dataRow in taxRateRecordSet.Rows)
            {
                var taxRate = new TaxRate
                {
                    TaxName        = CommonUtility.GetStringValue(dataRow["TAX_NAME"]),
                    TaxCode        = CommonUtility.GetStringValue(dataRow["TAX_CODE"]),
                    TaxDescription = CommonUtility.GetStringValue(dataRow["TAX_DESC"]),
                    Rebate         = CommonUtility.GetFloatValue(dataRow["TAX_REBATE"]),
                    Rate           = CommonUtility.GetFloatValue(dataRow["TAX_RATE"]),
                    Included       = CommonUtility.GetBooleanValue(dataRow["TAX_INCL"])
                };
                taxRates.Add(taxRate);
            }
            _performancelog.Debug($"End,TaxService,GetTaxRatesByName,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(taxRates);
        }
Example #2
0
        /// <summary>
        /// Method to get prepay global
        /// </summary>
        /// <param name="pumpId">Pump id</param>
        /// <returns>Prepay</returns>
        public recPump GetPrepayGlobal(int pumpId)
        {
            var rec     = new recPump();
            var dRecset = GetRecords("SELECT * FROM PrepayGlobal  WHERE pumpID = " + Convert.ToString(pumpId), DataSource.CSCTrans);

            if (dRecset.Rows.Count == 0)
            {
                rec.IsPrepay       = false;
                rec.IsPrepayLocked = false;



                if (!(rec.IsHoldPrepay && rec.PrepayAmount > 0))
                {
                    rec.PrepayAmount    = 0;
                    rec.PrepayInvoiceID = 0;
                    rec.PrepayPosition  = 0;
                }
            }
            else
            {
                rec.PrepayAmount    = CommonUtility.GetFloatValue(dRecset.Rows[0]["Amount"]);
                rec.IsPrepayLocked  = CommonUtility.GetBooleanValue(dRecset.Rows[0]["Locked"]);
                rec.PrepayInvoiceID = CommonUtility.GetIntergerValue(dRecset.Rows[0]["InvoiceID"]);
                rec.PrepayPosition  = CommonUtility.GetShortValue(dRecset.Rows[0]["PositionID"]);
                rec.IsPrepay        = true;
            }
            return(rec);
        }
Example #3
0
        /// <summary>
        /// Get the active tills for a given user
        /// </summary>
        /// <param name="active">Active</param>
        /// <param name="payAtPumpTill">Pay at pump till</param>
        /// <param name="userLoggedOn">User logged on</param>
        /// <returns>Tills</returns>
        public List <Till> GetTillForUser(int active, int payAtPumpTill, string userLoggedOn)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TillService,GetTillForUser,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var strSql = "Select * From Tills Where  Tills.Active = " + active + " AND Tills.Till_Num <> " + payAtPumpTill + " and Tills.UserLoggedON=\'" + userLoggedOn + "\'";
            var sTills = GetRecords(strSql, DataSource.CSCMaster);

            var tills = (from DataRow row in sTills.Rows
                         select new Till
            {
                Number = CommonUtility.GetShortValue(row["TILL_NUM"]),
                Active = CommonUtility.GetBooleanValue(row["ACTIVE"]),
                Processing = CommonUtility.GetBooleanValue(row["PROCESS"]),
                Float = CommonUtility.GetDecimalValue(row["FLOAT"]),
                BonusFloat = CommonUtility.GetDecimalValue(row["CashBonusFloat"]),
                Cash = CommonUtility.GetDecimalValue(row["CASH"]),
                Date_Open = CommonUtility.GetDateTimeValue(row["DATE_OPEN"]),
                Time_Open = CommonUtility.GetDateTimeValue(row["TIME_OPEN"]),
                ShiftDate = CommonUtility.GetDateTimeValue(row["ShiftDate"]),
                Shift = CommonUtility.GetShortValue(row["ShiftNumber"]),
                UserLoggedOn = CommonUtility.GetStringValue(row["UserLoggedOn"]),
                POSId = CommonUtility.GetIntergerValue(row["POSID"]),
                CashBonus = CommonUtility.GetDecimalValue(row["CashBonus"])
            }).ToList();

            _performancelog.Debug($"End,TillService,GetTillForUser,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(tills);
        }
Example #4
0
        /// <summary>
        /// Method to get tax info by stock code
        /// </summary>
        /// <param name="stockCode">Stock code</param>
        /// <returns>List of stock tax info</returns>
        public List <StockTaxInfo> GetTaxInfoByStockCode(string stockCode)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,GetTaxInfoByStockCode,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            List <StockTaxInfo> taxes = new List <StockTaxInfo>();
            var rsTax =
                GetRecords(
                    @"SELECT A.Tax_Name, A.Tax_Code, D.Tax_Rate, D.Tax_Incl, D.Tax_Rebate  FROM StockTax as A left join (select B.TAX_NAME,B.TAX_ACTIVE, c.Tax_Rate, c.Tax_Incl, c.Tax_Rebate, c.TAX_CODE from taxMast as B join TAXRATE as c
                    on B.TAX_NAME = c.TAX_NAME) as D on A.Tax_Name = D.TAX_NAME and A.Tax_Code = D.TAX_CODE where A.Stock_Code = '" + stockCode + "' and D.Tax_Active = 1", DataSource.CSCMaster);

            foreach (DataRow dataRow in rsTax.Rows)
            {
                taxes.Add(new StockTaxInfo
                {
                    TaxName  = CommonUtility.GetStringValue(dataRow["Tax_Name"]),
                    TaxCode  = CommonUtility.GetStringValue(dataRow["Tax_Code"]),
                    Rate     = CommonUtility.GetFloatValue(dataRow["Tax_Rate"]),
                    Included = CommonUtility.GetBooleanValue(dataRow["Tax_Incl"]),
                    Rebate   = CommonUtility.GetFloatValue(dataRow["Tax_Rebate"])
                });
            }
            _performancelog.Debug($"End,TaxService,GetTaxInfoByStockCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(taxes);
        }
Example #5
0
        /// <summary>
        /// Get the Till by Till Number
        /// </summary>
        /// <param name="tillNumber">Till number</param>
        /// <returns>Till</returns>
        public Till GetTill(int tillNumber)
        {
            var sTill = GetRecords("Select * From Tills where till_num=" + tillNumber, DataSource.CSCMaster);

            if (sTill.Rows.Count > 0)
            {
                var row  = sTill.Rows[0];
                var till = new Till
                {
                    Number       = CommonUtility.GetShortValue(row["TILL_NUM"]),
                    Active       = CommonUtility.GetBooleanValue(row["ACTIVE"]),
                    Processing   = CommonUtility.GetBooleanValue(row["PROCESS"]),
                    Float        = CommonUtility.GetDecimalValue(row["FLOAT"]),
                    BonusFloat   = CommonUtility.GetDecimalValue(row["CashBonusFloat"]),
                    Cash         = CommonUtility.GetDecimalValue(row["CASH"]),
                    Date_Open    = CommonUtility.GetDateTimeValue(row["DATE_OPEN"]),
                    Time_Open    = CommonUtility.GetDateTimeValue(row["TIME_OPEN"]),
                    ShiftDate    = CommonUtility.GetDateTimeValue(row["ShiftDate"]),
                    Shift        = CommonUtility.GetShortValue(row["ShiftNumber"]),
                    UserLoggedOn = CommonUtility.GetStringValue(row["UserLoggedOn"]),
                    POSId        = CommonUtility.GetIntergerValue(row["POSID"]),
                    CashBonus    = CommonUtility.GetDecimalValue(row["CashBonus"])
                };
                return(till);
            }
            return(null);
        }
Example #6
0
        /// <summary>
        /// Get the tills which are not pay at pump
        /// </summary>
        /// <param name="payAtPumpTill">aPay at pump till</param>
        /// <returns>Tills</returns>
        public List <Till> GetnotPayAtPumpTill(int payAtPumpTill)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TillService,GetnotPayAtPumpTill,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var strSql = "Select *  FROM   Tills  WHERE Tills.Till_Num <> " + payAtPumpTill + "";

            var sTills = GetRecords(strSql, DataSource.CSCMaster);
            var tills  = new List <Till>();

            foreach (DataRow row in sTills.Rows)
            {
                var till = new Till
                {
                    Number       = CommonUtility.GetShortValue(row["TILL_NUM"]),
                    Active       = CommonUtility.GetBooleanValue(row["ACTIVE"]),
                    Processing   = CommonUtility.GetBooleanValue(row["PROCESS"]),
                    Float        = CommonUtility.GetDecimalValue(row["FLOAT"]),
                    BonusFloat   = CommonUtility.GetDecimalValue(row["CashBonusFloat"]),
                    Cash         = CommonUtility.GetDecimalValue(row["CASH"]),
                    Date_Open    = CommonUtility.GetDateTimeValue(row["DATE_OPEN"]),
                    Time_Open    = CommonUtility.GetDateTimeValue(row["TIME_OPEN"]),
                    ShiftDate    = CommonUtility.GetDateTimeValue(row["ShiftDate"]),
                    Shift        = CommonUtility.GetShortValue(row["ShiftNumber"]),
                    UserLoggedOn = CommonUtility.GetStringValue(row["UserLoggedOn"]),
                    POSId        = CommonUtility.GetIntergerValue(row["POSID"]),
                    CashBonus    = CommonUtility.GetDecimalValue(row["CashBonus"])
                };
                tills.Add(till);
            }
            _performancelog.Debug($"End,TillService,GetnotPayAtPumpTill,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(tills);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="cardNumber"></param>
        /// <returns></returns>
        public ClientCard GetClientCardByCardNumber(string cardNumber)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,GetClientCardByCardNumber,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var dt = GetRecords("select * from ClientCard where CardNum=\'" + cardNumber.Trim() + "\'", DataSource.CSCMaster);

            if (dt != null && dt.Rows.Count > 0)
            {
                _performancelog.Debug($"End,CustomerService,GetCustomers,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                return(new ClientCard
                {
                    CardNumber = CommonUtility.GetStringValue(dt.Rows[0]["CardNum"]),
                    ClientCode = CommonUtility.GetStringValue(dt.Rows[0]["CL_Code"]),
                    CardName = CommonUtility.GetStringValue(dt.Rows[0]["CardName"]),
                    ExpirationDate = CommonUtility.GetDateTimeValue(dt.Rows[0]["ExpDate"]),
                    Pin = CommonUtility.GetStringValue(dt.Rows[0]["PIN"]),
                    CardStatus = Convert.ToChar(dt.Rows[0]["CardStatus"]),
                    CreditLimiit = Convert.ToDecimal(dt.Rows[0]["CreditLimiit"]),
                    Balance = Convert.ToDecimal(dt.Rows[0]["Balance"]),
                    AllowRedemption = CommonUtility.GetBooleanValue(dt.Rows[0]["AllowRedemption"]),
                    TaxExemptedCardNumber = CommonUtility.GetStringValue(dt.Rows[0]["TECardNumber"]),
                    ProfileID = CommonUtility.GetStringValue(dt.Rows[0]["ProfileID"])
                });
            }
            _performancelog.Debug($"End,CustomerService,GetClientCardByCardNumber,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(null);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public ClientCard GetClientCardForGasKingCustomer(string code)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,GetClientCardForGasKingCustomer,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            if (code != null)
            {
                //var dt = GetRecords("SELECT * FROM ClientCard inner join client on clientcard.cl_code = client.cl_code  WHERE CardNum = \'" + cardNumber.Trim() + "\'", DataSource.CSCMaster);
                var dt = GetRecords("SELECT * FROM ClientCard  WHERE CardNum = \'" + code.Trim() + "\'", DataSource.CSCMaster);
                if (dt != null && dt.Rows.Count > 0)
                {
                    _performancelog.Debug($"End,CustomerService,GetCustomers,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                    return(new ClientCard
                    {
                        CardNumber = CommonUtility.GetStringValue(dt.Rows[0]["CardNum"]),
                        //CardStatus = Convert.ToChar(dt.Rows[0]["CardStatus"]),
                        //ProfileID = CommonUtility.GetStringValue(dt.Rows[0]["ProfileID"]),
                        //ClientArCustomer = CommonUtility.GetBooleanValue(dt.Rows[0]["CL_arcust"]),
                        AllowRedemption = CommonUtility.GetBooleanValue(dt.Rows[0]["AllowRedemption"])
                                          //AllowRedemption   Comm
                    });
                }
            }
            _performancelog.Debug($"End,CustomerService,GetClientCardByCardNumber,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(null);
        }
        /// <summary>
        /// Get Tax Exempt Card Holder
        /// </summary>
        /// <param name="customerId"></param>
        /// <returns></returns>
        public teCardholder GetTaxExemptCustomer(string customerId)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,GetTaxExemptCustomer,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var  cardHolder  = new teCardholder();
            bool returnValue = false;

            var dt = GetRecords("Select * From Client where CL_Code = \'" + customerId + "\'", DataSource.CSCMaster);

            if (dt != null && dt.Rows.Count > 0)
            {
                if (CommonUtility.GetBooleanValue(dt.Rows[0]["TaxExempt"]))
                {
                    returnValue             = true;
                    cardHolder.Name         = CommonUtility.GetStringValue(dt.Rows[0]["Cl_Name"]);
                    cardHolder.Address      = CommonUtility.GetStringValue(dt.Rows[0]["CL_Add1"]);
                    cardHolder.City         = CommonUtility.GetStringValue(dt.Rows[0]["CL_City"]);
                    cardHolder.PlateNumber  = CommonUtility.GetStringValue(dt.Rows[0]["PlateNumber"]);
                    cardHolder.PostalCode   = CommonUtility.GetStringValue(dt.Rows[0]["CL_Postal"]);
                    cardHolder.Note         = CommonUtility.GetStringValue(dt.Rows[0]["CL_Note"]);
                    cardHolder.CardholderID = customerId;
                    cardHolder.CardNumber   = customerId;
                }
                cardHolder.IsValidCardHolder = Convert.ToBoolean(returnValue);
            }
            _performancelog.Debug($"End,CustomerService,GetTaxExemptCustomer,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(cardHolder);
        }
Example #10
0
        /// <summary>
        /// Method to get all tax mast
        /// </summary>
        /// <returns>List of tax mast</returns>
        public List <TaxMast> GetTaxMast()
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,GetTaxMast,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            var taxMastRecordSet = GetRecords("SELECT * FROM TaxMast ORDER BY TaxMast.Tax_Ord ", DataSource.CSCMaster);
            var taxes            = new List <TaxMast>();

            foreach (DataRow dataRow in taxMastRecordSet.Rows)
            {
                var taxMast = new TaxMast
                {
                    TaxOrd         = CommonUtility.GetShortValue(dataRow["TAX_ORD"]),
                    Active         = CommonUtility.GetBooleanValue(dataRow["TAX_ACTIVE"]),
                    TaxApply       = CommonUtility.GetStringValue(dataRow["TAX_APPLY"]),
                    TaxDefination  = CommonUtility.GetStringValue(dataRow["TAX_DEF"]),
                    TaxDescription = CommonUtility.GetStringValue(dataRow["TAX_DESC"]),
                    TaxName        = CommonUtility.GetStringValue(dataRow["TAX_NAME"])
                };
                taxes.Add(taxMast);
            }
            _performancelog.Debug($"End,TaxService,GetTaxMast,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(taxes);
        }
Example #11
0
        /// <summary>
        /// Method to load prepay
        /// </summary>
        /// <param name="pumpId">Pump Id</param>
        /// <returns>Prepay</returns>
        public recPump LoadPrepay(int pumpId)
        {
            recPump rec;
            var     dRecset = GetRecords("SELECT * FROM PrepayGlobal  WHERE pumpID = " + Convert.ToString(pumpId), DataSource.CSCTrans);

            if (dRecset.Rows.Count == 0)
            {
                rec = new recPump
                {
                    IsHoldPrepay    = false,
                    IsPrepay        = false,
                    PrepayAmount    = 0,
                    IsPrepayLocked  = false,
                    PrepayInvoiceID = 0,
                    PrepayPosition  = 0
                };
            }
            else
            {
                rec = new recPump
                {
                    IsHoldPrepay    = true,
                    IsPrepay        = true,
                    PrepayAmount    = CommonUtility.GetFloatValue(dRecset.Rows[0]["Amount"]),
                    IsPrepayLocked  = CommonUtility.GetBooleanValue(dRecset.Rows[0]["Locked"]),
                    PrepayInvoiceID = CommonUtility.GetIntergerValue(dRecset.Rows[0]["InvoiceID"]),
                    PrepayPosition  = CommonUtility.GetShortValue(dRecset.Rows[0]["PositionID"])
                };
            }
            return(rec);
        }
Example #12
0
        /// <summary>
        /// Get Maximum Dip value For Tank No
        /// </summary>
        /// <param name="tankno">Tank number</param>
        /// <returns>Maximum dip</returns>
        public float MaximumDip(byte tankno)
        {
            float returnValue;

            var dt = GetRecords("Select TankCode from TankInfo where ID = " + CommonUtility.GetStringValue(tankno), DataSource.CSCPump);

            if (dt != null && dt.Rows.Count > 0)
            {
                var rs = GetRecords("SELECT Length, Diameter, Capacity, TankEnds, Orientation,ReadingType, UseChart FROM   TankType WHERE  TankCode = \'" + CommonUtility.GetStringValue(dt.Rows[0]["TankCode"]) + "\' ", DataSource.CSCPump);
                if (rs != null && rs.Rows.Count > 0)
                {
                    if (Strings.UCase(CommonUtility.GetStringValue(rs.Rows[0]["Readingtype"])) == "G")
                    {
                        returnValue = 100;
                    }
                    else
                    {
                        if (CommonUtility.GetBooleanValue(rs.Rows[0]["UseChart"]) == false)
                        {
                            if (Strings.UCase(CommonUtility.GetStringValue(rs.Rows[0]["Orientation"])) == "H")
                            {
                                // For horizontal tanks it's the diameter
                                returnValue = CommonUtility.GetFloatValue(rs.Rows[0]["Diameter"]);
                            }
                            else
                            {
                                // For vertical tanks its the length
                                returnValue = CommonUtility.GetFloatValue(rs.Rows[0]["length"]);
                            }
                        }
                        else
                        {
                            var rsMax = GetRecords("select max(Depth) as [MaxDip] from TankChart Where   DipChart = \'" + CommonUtility.GetStringValue(dt.Rows[0]["TankCode"]) + "\' ", DataSource.CSCPump);
                            if (rsMax != null && rsMax.Rows.Count > 0)
                            {
                                returnValue = CommonUtility.GetFloatValue(rsMax.Rows[0]["maxdip"]);
                            }
                            else
                            {
                                returnValue = 0;
                            }
                        }
                    }
                }
                else
                {
                    // If the Tank Type wasn't found in the database then
                    // load dummy values.
                    returnValue = 0;
                }
            }
            else
            {
                returnValue = 0;
            }
            return(returnValue);
        }
        /// <summary>
        /// Method to load GST exempt
        /// </summary>
        /// <param name="taxExemptSale">Tax exempt sale</param>
        /// <param name="sn">Sale number</param>
        /// <param name="tillId">Till number</param>
        /// <param name="db">Data source</param>
        /// <returns>True or false</returns>
        public bool LoadGstExempt(ref TaxExemptSale taxExemptSale, int sn, byte tillId,
                                  DataSource db)
        {
            var rsLine = GetRecords("select * from SALELINE " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), db);

            if (rsLine.Rows.Count == 0)
            {
                return(false);
            }

            foreach (DataRow line in rsLine.Rows)
            {
                var rsTaxCreditLine = GetRecords("SELECT * from TaxCreditLine where TILL_NUM=" + Convert.ToString(tillId) + " AND SALE_NO=" + Convert.ToString(sn) + " AND Line_No=" + Convert.ToString(line["Line_Num"]), db);
                if (rsTaxCreditLine.Rows.Count == 0)
                {
                    continue;
                }
                var tx = new TaxCreditLine {
                    Line_Num = CommonUtility.GetShortValue(line["Line_Num"])
                };
                foreach (DataRow taxCreditLine in rsTaxCreditLine.Rows)
                {
                    var lt = new Line_Tax
                    {
                        Tax_Name         = CommonUtility.GetStringValue(taxCreditLine["Tax_Name"]),
                        Tax_Code         = CommonUtility.GetStringValue(taxCreditLine["Tax_Code"]),
                        Tax_Rate         = CommonUtility.GetFloatValue(taxCreditLine["Tax_Rate"]),
                        Tax_Included     = CommonUtility.GetBooleanValue(taxCreditLine["Tax_Included"]),
                        Tax_Added_Amount = CommonUtility.GetFloatValue(taxCreditLine["Tax_Added_Amount"]),
                        Tax_Incl_Amount  = CommonUtility.GetFloatValue(taxCreditLine["Tax_Included_Amount"])
                    };
                    tx.Line_Taxes.AddTaxLine(lt, "");
                }
                taxExemptSale.TaxCreditLines.AddLine(tx.Line_Num, tx, "");
            }


            var rsTaxCredit = GetRecords("SELECT * from TaxCredit where TILL_NUM=" + Convert.ToString(tillId)
                                         + " AND SALE_NO=" + Convert.ToString(sn), db);

            foreach (DataRow taxCredit in rsTaxCredit.Rows)
            {
                var sx = new Sale_Tax
                {
                    Tax_Name            = CommonUtility.GetStringValue(taxCredit["Tax_Name"]),
                    Tax_Code            = CommonUtility.GetStringValue(taxCredit["Tax_Code"]),
                    Tax_Rate            = CommonUtility.GetFloatValue(taxCredit["Tax_Rate"]),
                    Taxable_Amount      = CommonUtility.GetDecimalValue(taxCredit["Taxable_Amount"]),
                    Tax_Added_Amount    = CommonUtility.GetDecimalValue(taxCredit["Tax_Added_Amount"]),
                    Tax_Included_Amount = CommonUtility.GetDecimalValue(taxCredit["Tax_Included_Amount"]),
                    Tax_Included_Total  = CommonUtility.GetDecimalValue(taxCredit["Tax_Included_Total"])
                };
                taxExemptSale.TaxCredit.Add(sx.Tax_Name, sx.Tax_Code, sx.Tax_Rate, sx.Taxable_Amount, sx.Tax_Added_Amount, sx.Tax_Included_Amount, sx.Tax_Included_Amount, sx.Tax_Rebate_Rate, sx.Tax_Rebate, sx.Tax_Name + sx.Tax_Code); //   - gave mismatch type error for AITE
            }
            return(true);
        }
Example #14
0
        /// <summary>
        /// Method to get line kit
        /// </summary>
        /// <param name="db">Data source</param>
        /// <param name="sn">Sale number</param>
        /// <param name="ln">Line number</param>
        /// <returns>Line kits</returns>
        public Line_Kits Get_Line_Kit(DataSource db, int sn, int ln)
        {
            Line_Kits lk = new Line_Kits();

            // Get the kit items in the line
            var rsLineKit = GetRecords("Select *  FROM   SaleKit  WHERE  SaleKit.Sale_No = " + Convert.ToString(sn)
                                       + " AND " + "       SaleKit.Line_No = " + Convert.ToString(ln) + " ", db);

            foreach (DataRow lineKit in rsLineKit.Rows)
            {
                // Charges on Kit items
                var rsLineKitChg = GetRecords("Select *  FROM   SaleKitChg  WHERE  SaleKitChg.Sale_No = "
                                              + Convert.ToString(sn) + " AND " + "       SaleKitChg.Line_No = " + Convert.ToString(ln)
                                              + " AND " + "       SaleKitChg.Kit_Item = \'" + CommonUtility.GetStringValue(lineKit["Kit_Item"]) + "\' ", db);

                var lkc = new K_Charges();
                foreach (DataRow kitCharge in rsLineKitChg.Rows)
                {
                    // Taxes on Charges on Kit items
                    var rsCgt = GetRecords("Select *  FROM   SaleKitChgTax  WHERE  SaleKitChgTax.Sale_No  = "
                                           + Convert.ToString(sn) + " AND " + "       SaleKitChgTax.Line_No  = "
                                           + Convert.ToString(ln) + " AND " + "       SaleKitChgTax.Kit_Item = \'"
                                           + CommonUtility.GetStringValue(lineKit["Kit_Item"]) + "\' AND " + "       SaleKitChgTax.As_Code  = \'"
                                           + CommonUtility.GetStringValue(kitCharge["As_Code"]) + "\' ", db);

                    var cgt = new Charge_Taxes();
                    foreach (DataRow tax in rsCgt.Rows)
                    {
                        cgt.Add(CommonUtility.GetStringValue(tax["Tax_Name"]),
                                CommonUtility.GetStringValue(tax["Tax_Code"]),
                                CommonUtility.GetFloatValue(tax["Tax_Rate"]),
                                CommonUtility.GetBooleanValue(tax["Tax_Included"]), "");
                    }
                    lkc.Add(CommonUtility.GetDoubleValue(kitCharge["price"]),
                            CommonUtility.GetStringValue(kitCharge["Description"]),
                            CommonUtility.GetStringValue(kitCharge["As_Code"]), cgt, "");
                }

                lk.Add(CommonUtility.GetStringValue(lineKit["Kit_Item"]),
                       CommonUtility.GetStringValue(lineKit["Descript"]),
                       CommonUtility.GetFloatValue(lineKit["Quantity"]),
                       CommonUtility.GetFloatValue(lineKit["Base"]),
                       CommonUtility.GetFloatValue(lineKit["Fraction"]),
                       CommonUtility.GetFloatValue(lineKit["Alloc"]),
                       CommonUtility.GetStringValue(lineKit["Serial"]), lkc, "");
            }

            var returnValue = lk;

            return(returnValue);
        }
        /// <summary>
        /// Get whether write to log or not
        /// </summary>
        /// <param name="posId">Pos id</param>
        /// <returns>Ip addresses</returns>
        public bool CanWritePosLog(int posId)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,UtilityService,CanWritePosLog,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            var rs = GetRecords("select WritePOSLog from POS_IP_Address where ID=" + posId, DataSource.CSCAdmin);

            if (rs.Rows.Count == 0)
            {
                return(false);
            }
            _performancelog.Debug($"End,UtilityService,CanWritePosLog,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(CommonUtility.GetBooleanValue(rs.Rows[0]["WritePOSLog"]));
        }
Example #16
0
        /// <summary>
        /// Method to check if limit is required
        /// </summary>
        /// <param name="productType">Product type</param>
        /// <param name="isError">Is error not not</param>
        /// <returns>True or false</returns>
        public bool IsLimitRequired(int productType, out bool isError)
        {
            var sSql = "SELECT LimitProductSale FROM Category WHERE ID= " + Convert.ToString(productType) + " ";

            var oRecs = GetRecords(sSql, DataSource.CSCMaster);

            if (oRecs.Rows.Count == 0)
            {
                isError = true;
                return(false);
            }
            isError = false;
            bool returnValue = CommonUtility.GetBooleanValue(oRecs.Rows[0]["LimitProductSale"]);

            return(returnValue);
        }
Example #17
0
        /// <summary>
        /// Method to get tax free price
        /// </summary>
        /// <param name="blForFuel">For fule price or not</param>
        /// <param name="sProductKey">Product key</param>
        /// <param name="stockcode">Stock code</param>
        /// <param name="quantityPerPkg">Quantity per kg</param>
        /// <param name="baseUnitQty">Base unit quantity</param>
        /// <param name="taxExemptTaxCode">tax code</param>
        /// <param name="productCode">Product code</param>
        /// <param name="eOutCategory">Category</param>
        /// <param name="dOutUnitsPerPkg">Units per kg</param>
        /// <param name="sOutUpcCode">Out up code</param>
        /// <param name="isError">Is error or not</param>
        /// <returns>True or false</returns>
        public bool TeGetTaxFreePriceByRate(bool blForFuel, ref string sProductKey, string stockcode,
                                            ref short quantityPerPkg, ref short baseUnitQty,
                                            ref short taxExemptTaxCode, ref string productCode,
                                            ref mPrivateGlobals.teProductEnum eOutCategory,
                                            ref float dOutUnitsPerPkg, ref string sOutUpcCode,
                                            out bool isError)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,TeGetTaxFreePriceByRate,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            DataTable oRecs;

            if (blForFuel)
            {
                oRecs = GetRecords("SELECT CategoryFK,ProductCode,TAX_CODE,  QuantityPerPkg, BaseUnitQty,  1 As UnitsPerPkg, \'\' As UpcCode  from ProductTaxExempt Where ProductKey =\'" + stockcode + "\' ", DataSource.CSCMaster);
            }
            else
            {
                oRecs = GetRecords("SELECT CategoryFK, ProductCode,UnitsPerPkg, TAX_CODE, QuantityPerPkg, BaseUnitQty, UpcCode FROM ProductTaxExempt Where ProductKey=\'" + sProductKey + "\'", DataSource.CSCMaster);
            }
            if (oRecs.Rows.Count == 0)
            {
                isError = false;
                return(false);
            }

            taxExemptTaxCode = CommonUtility.GetShortValue(oRecs.Rows[0]["Tax_Code"]);
            productCode      = CommonUtility.GetStringValue(oRecs.Rows[0]["ProductCode"]);
            if (CommonUtility.GetBooleanValue(oRecs.Rows[0]["CategoryFK"]))
            {
                eOutCategory = (mPrivateGlobals.teProductEnum)CommonUtility.GetIntergerValue(oRecs.Rows[0]["CategoryFK"]);
            }
            else
            {
                isError = true;
                return(true);
            }
            isError         = false;
            dOutUnitsPerPkg = CommonUtility.GetFloatValue(oRecs.Rows[0]["UnitsPerPkg"]);
            sOutUpcCode     = CommonUtility.GetStringValue(oRecs.Rows[0]["UpcCode"]);
            quantityPerPkg  = CommonUtility.GetShortValue(oRecs.Rows[0]["QuantityPerPkg"]);
            baseUnitQty     = CommonUtility.GetShortValue(oRecs.Rows[0]["BaseUnitQty"]);
            _performancelog.Debug($"End,TaxService,TeGetTaxFreePriceByRate,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(true);
        }
        /// <summary>
        /// Method to get lsit of sounds
        /// </summary>
        /// <returns>List of sounds</returns>
        public List <Sound> GetAllSounds()
        {
            var sounds = new List <Sound>();
            var rs     = GetRecords("SELECT * FROM Sounds", DataSource.CSCMaster);

            foreach (DataRow row in rs.Rows)
            {
                sounds.Add(new Sound
                {
                    ID        = CommonUtility.GetIntergerValue(row["ID"]),
                    Active    = CommonUtility.GetBooleanValue(row["Active"]),
                    SoundName = CommonUtility.GetStringValue(row["soundname"]),
                    SoundType = CommonUtility.GetStringValue(row["soundType"])
                });
            }
            return(sounds);
        }
Example #19
0
        /// <summary>
        /// Method to get orginal saleLines
        /// </summary>
        /// <param name="invoiceId">Sale number</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="dataSource">Data source</param>
        /// <returns>List of sale lines</returns>
        public List <Sale_Line> GetOrginalSaleLines(int invoiceId, int tillNumber, DataSource dataSource)
        {
            var saleLines = new List <Sale_Line>();

            var rsDetail = GetRecords(" SELECT * FROM SaleLine " + " WHERE SaleLine.Sale_No = " + Convert.ToString(invoiceId) + " " + " and TILL_NUM=" + tillNumber + " ORDER BY SaleLine.Line_Num ", dataSource);

            foreach (DataRow row in rsDetail.Rows)
            {
                saleLines.Add(new Sale_Line
                {
                    Dept               = CommonUtility.GetStringValue(row["Dept"]),
                    Sub_Dept           = CommonUtility.GetStringValue(row["Sub_Dept"]),
                    Sub_Detail         = CommonUtility.GetStringValue(row["Sub_Detail"]),
                    Stock_Code         = CommonUtility.GetStringValue(row["Stock_Code"]),
                    PLU_Code           = CommonUtility.GetStringValue(row["PLU_Code"]),
                    Line_Num           = CommonUtility.GetShortValue(row["Line_Num"]),
                    Price_Type         = CommonUtility.GetCharValue(row["Price_Type"]),
                    Quantity           = CommonUtility.GetFloatValue(row["Quantity"]),
                    Amount             = CommonUtility.GetDecimalValue(row["Amount"]),
                    Discount_Adjust    = CommonUtility.GetDoubleValue(row["Disc_adj"]),
                    Line_Discount      = CommonUtility.GetDoubleValue(row["Discount"]),
                    Discount_Type      = CommonUtility.GetStringValue(row["Disc_Type"]),
                    Discount_Code      = CommonUtility.GetStringValue(row["Disc_Code"]),
                    Discount_Rate      = CommonUtility.GetFloatValue(row["Disc_Rate"]),
                    DiscountName       = CommonUtility.GetStringValue(row["DiscountName"]),
                    Associate_Amount   = CommonUtility.GetDecimalValue(row["Assoc_Amt"]),
                    User               = CommonUtility.GetStringValue(row["User"]),
                    Description        = CommonUtility.GetStringValue(row["Descript"]),
                    Loyalty_Save       = CommonUtility.GetFloatValue(row["Loyl_Save"]),
                    Units              = CommonUtility.GetStringValue(row["Units"]),
                    Serial_No          = CommonUtility.GetStringValue(row["Serial_No"]),
                    Prepay             = Convert.ToBoolean(row["Prepay"]),
                    pumpID             = CommonUtility.GetByteValue(row["pumpID"]),
                    GradeID            = CommonUtility.GetByteValue(row["GradeID"]),
                    PositionID         = CommonUtility.GetByteValue(row["PositionID"]),
                    IsTaxExemptItem    = CommonUtility.GetBooleanValue(row["TaxExempt"]),
                    Total_Amount       = CommonUtility.GetDecimalValue(row["Total_Amt"]),
                    Regular_Price      = CommonUtility.GetDoubleValue(row["Reg_Price"]),
                    price              = CommonUtility.GetDoubleValue(row["price"]),
                    FuelRebateEligible = CommonUtility.GetBooleanValue(row["FuelRebateUsed"]),
                    FuelRebate         = CommonUtility.GetDecimalValue(row["RebateDiscount"]),
                    PromoID            = CommonUtility.GetStringValue(row["PromoID"])
                });
            }
            return(saleLines);
        }
Example #20
0
        /// <summary>
        /// Method to get tax exempt tax free price by price
        /// </summary>
        /// <param name="sSql">Query</param>
        /// <param name="dOutPrice">Price</param>
        /// <param name="originalPrice">Original Price</param>
        /// <param name="eOutCategory">Category</param>
        /// <param name="dOutUnitsPerPkg">Units per kg</param>
        /// <param name="sOutUpcCode">UPC code</param>
        /// <param name="bFound">Found or not</param>
        /// <param name="isError">Error or not</param>
        /// <returns>True or false</returns>
        public bool TeGetTaxFreePriceByPrice(string sSql, ref float dOutPrice, double originalPrice,
                                             ref mPrivateGlobals.teProductEnum eOutCategory, ref float dOutUnitsPerPkg,
                                             ref string sOutUpcCode, out bool bFound,
                                             out bool isError)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,TeGetTaxFreePriceByPrice,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            var oRecs = GetRecords(sSql, DataSource.CSCPump);

            //eCategory and bFound are already set.
            if (oRecs.Rows.Count > 0)
            {
                if (CommonUtility.GetIntergerValue(oRecs.Rows[0]["TaxFreePrice"]) != 0)
                {
                    dOutPrice = CommonUtility.GetFloatValue(oRecs.Rows[0]["TaxFreePrice"]);
                }
                else
                {
                    dOutPrice = (float)originalPrice;
                }
                if (CommonUtility.GetBooleanValue(oRecs.Rows[0]["CategoryFK"]))
                {
                    eOutCategory = (mPrivateGlobals.teProductEnum)CommonUtility.GetIntergerValue(oRecs.Rows[0]["CategoryFK"]);
                }
                else
                {
                    isError = true;
                    bFound  = false;
                    return(false);
                }

                dOutUnitsPerPkg = CommonUtility.GetFloatValue(oRecs.Rows[0]["UnitsPerPkg"]);
                sOutUpcCode     = CommonUtility.GetStringValue(oRecs.Rows[0]["UpcCode"]);
                bFound          = true;
                isError         = false;
                return(true);
            }
            bFound  = false;
            isError = false;
            _performancelog.Debug($"End,TaxService,TeGetTaxFreePriceByPrice,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(false);
        }
        //   end
        /// <summary>
        /// Method to find whether to check allow redemption
        /// </summary>
        /// <param name="customerCard">Customer card</param>
        /// <returns>True or false</returns>
        public bool Check_Allowredemption(string customerCard)
        {
            if (string.IsNullOrEmpty(customerCard))
            {
                return(false);
            }

            var dt = GetRecords("select * from ClientCard where CardNum=\'" + customerCard.Trim() + "\'", DataSource.CSCMaster);

            if (dt != null && dt.Rows.Count > 0)
            {
                return(CommonUtility.GetBooleanValue(dt.Rows[0]["AllowRedemption"]));
            }
            else
            {
                return(false);
            }
        }
Example #22
0
        /// <summary>
        /// Method to get list of override codes
        /// </summary>
        /// <param name="isError">Is error not not</param>
        /// <returns>List of override codes</returns>
        public List <OverrideCode> GetOverrideCodes(out bool isError)
        {
            isError = false;
            var sSql  = "SELECT * FROM OverrideCode";
            var oRecs = GetRecords(sSql, DataSource.CSCMaster);

            if (oRecs.Rows.Count == 0)
            {
                isError = true;
                return(null);
            }
            return((from DataRow row in oRecs.Rows
                    select new OverrideCode
            {
                Code = CommonUtility.GetStringValue(row["Code"]),
                Name = CommonUtility.GetStringValue(row["Name"]),
                Id = CommonUtility.GetStringValue(row["ID"]),
                IsTobacco = CommonUtility.GetStringValue(CommonUtility.GetBooleanValue(row["bTobacco"]) ? "True" : "False"),
                CanBeUsedForTobaccoMaxThreshold = CommonUtility.GetStringValue(CommonUtility.GetBooleanValue(row["bCanBeUsedForTobaccoMaxThreshold"]) ? "True" : "False")
            }).ToList());
        }
Example #23
0
        /// <summary>
        /// Method to get line taxes
        /// </summary>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="lineNumber">Line number</param>
        /// <param name="dataSource">Data source</param>
        /// <returns></returns>
        public List <Line_Tax> GetLineTaxes(int saleNumber, int lineNumber, DataSource dataSource)
        {
            var lineTaxes = new List <Line_Tax>();
            var rsLineTax = GetRecords("Select * From   S_LineTax  WHERE  S_LineTax.Sale_No = "
                                       + Convert.ToString(saleNumber) + " AND " + "       S_LineTax.Line_No = " + Convert.ToString(lineNumber)
                                       + " " + "Order By S_LineTax.Tax_Name ", dataSource);

            foreach (DataRow row in rsLineTax.Rows)
            {
                lineTaxes.Add(new Line_Tax
                {
                    Tax_Name        = CommonUtility.GetStringValue(row["Tax_Name"]),
                    Tax_Code        = CommonUtility.GetStringValue(row["Tax_Code"]),
                    Tax_Rate        = CommonUtility.GetFloatValue(row["Tax_Rate"]),
                    Tax_Included    = CommonUtility.GetBooleanValue(row["Tax_Included"]),
                    Tax_Rebate_Rate = CommonUtility.GetFloatValue(row["Tax_Rebate_Rate"]),
                    Tax_Rebate      = CommonUtility.GetDecimalValue(row["Tax_Rebate"])
                });
            }
            return(lineTaxes);
        }
Example #24
0
        /// <summary>
        /// Method to load all taxes
        /// </summary>
        /// <returns>List of tax mast</returns>
        public List <TaxMast> GetAllTaxes()
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,TaxService,GetAllTaxes,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            var taxes = new List <TaxMast>();
            var rs    = GetRecords("SELECT TaxMast.Tax_Name,  TaxMast.Tax_Desc,taxmast.tax_active  FROM   TaxMast ORDER BY TaxMast.Tax_Ord ", DataSource.CSCMaster);

            foreach (DataRow dataRow in rs.Rows)
            {
                taxes.Add(new TaxMast
                {
                    TaxName        = CommonUtility.GetStringValue(dataRow["Tax_Name"]),
                    TaxDescription = CommonUtility.GetStringValue(dataRow["Tax_Desc"]),
                    Active         = CommonUtility.GetBooleanValue(dataRow["Tax_Active"]),
                });
            }
            _performancelog.Debug($"End,TaxService,GetAllTaxes,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(taxes);
        }
        /// <summary>
        /// Get Customer By Client Code
        /// </summary>
        /// <param name="clientCode">code</param>
        /// <returns>Customer</returns>
        public Customer GetClientByClientCode(string clientCode)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,GetClientByClientCode,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            Customer customer = null;

            var dt = GetRecords(" SELECT * FROM   Client WHERE Client.CL_Code = \'" + clientCode + "\'", DataSource.CSCMaster);

            if (dt != null && dt.Rows.Count > 0)
            {
                _performancelog.Debug($"End,CustomerService,GetClientByClientCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
                customer = new Customer
                {
                    Code                  = CommonUtility.GetStringValue(dt.Rows[0]["CL_CODE"]),
                    Name                  = CommonUtility.GetStringValue(dt.Rows[0]["CL_NAME"]),
                    Category              = CommonUtility.GetStringValue(dt.Rows[0]["CL_CATEG"]),
                    Address_1             = CommonUtility.GetStringValue(dt.Rows[0]["CL_ADD1"]),
                    Address_2             = CommonUtility.GetStringValue(dt.Rows[0]["CL_ADD2"]),
                    City                  = CommonUtility.GetStringValue(dt.Rows[0]["CL_CITY"]),
                    Province              = CommonUtility.GetStringValue(dt.Rows[0]["CL_PROV"]),
                    Country               = CommonUtility.GetStringValue(dt.Rows[0]["CL_COUNTRY"]),
                    Postal_Code           = CommonUtility.GetStringValue(dt.Rows[0]["CL_POSTAL"]),
                    Area_Code             = CommonUtility.GetStringValue(dt.Rows[0]["CL_ACODE"]),
                    Phone                 = CommonUtility.GetStringValue(dt.Rows[0]["CL_PHONE"]),
                    Cell_Phone            = CommonUtility.GetStringValue(dt.Rows[0]["CL_CELL"]),
                    Fax                   = CommonUtility.GetStringValue(dt.Rows[0]["CL_FAX"]),
                    Toll_Free             = CommonUtility.GetStringValue(dt.Rows[0]["CL_TOLL"]),
                    E_Mail                = CommonUtility.GetStringValue(dt.Rows[0]["CL_EMAIL"]),
                    Contact_1             = CommonUtility.GetStringValue(dt.Rows[0]["CL_CONT1"]),
                    Contact_2             = CommonUtility.GetStringValue(dt.Rows[0]["CL_CONT2"]),
                    Loyalty_Code          = CommonUtility.GetStringValue(dt.Rows[0]["LO_NUM"]),
                    Loyalty_Points        = CommonUtility.GetDoubleValue(dt.Rows[0]["LO_POINTS"]),
                    AR_Customer           = CommonUtility.GetBooleanValue(dt.Rows[0]["CL_ARCUST"]),
                    Customer_Type         = CommonUtility.GetStringValue(dt.Rows[0]["CL_TYPE"]),
                    Terms                 = CommonUtility.GetShortValue(dt.Rows[0]["TERMS"]),
                    Credit_Limit          = CommonUtility.GetDoubleValue(dt.Rows[0]["CL_LIMIT"]),
                    Current_Balance       = CommonUtility.GetDoubleValue(dt.Rows[0]["CL_CURBAL"]),
                    CL_Status             = CommonUtility.GetStringValue(dt.Rows[0]["CL_STATUS"]),
                    UsePO                 = CommonUtility.GetBooleanValue(dt.Rows[0]["UsePO"]),
                    GroupID               = CommonUtility.GetStringValue(dt.Rows[0]["GroupID"]),
                    UseFuelRebate         = CommonUtility.GetBooleanValue(dt.Rows[0]["UseFuelRebate"]),
                    UseFuelRebateDiscount = CommonUtility.GetBooleanValue(dt.Rows[0]["UseFuelRebateDiscount"]),
                    CL_Note               = CommonUtility.GetStringValue(dt.Rows[0]["CL_Note"]),
                    TaxExempt             = CommonUtility.GetBooleanValue(dt.Rows[0]["TaxExempt"]),
                    PlateNumber           = CommonUtility.GetStringValue(dt.Rows[0]["PlateNumber"]),
                    TECardNumber          = CommonUtility.GetStringValue(dt.Rows[0]["TECardNumber"]),
                    Discount_Code         = CommonUtility.GetByteValue(dt.Rows[0]["CUST_DISC"]),
                    Price_Code            = CommonUtility.GetByteValue(dt.Rows[0]["Price_Code"]),
                    MultiUse_PO           = CommonUtility.GetBooleanValue(dt.Rows[0]["UsePO"]) && CommonUtility.GetBooleanValue(dt.Rows[0]["MultiUse_PO"]),
                };

                if (!string.IsNullOrEmpty(customer.GroupID))
                {
                    var clientDt = GetRecords("select * from ClientGroup  where GroupID=\'" + customer.GroupID + "\'", DataSource.CSCMaster);
                    if (clientDt == null || clientDt.Rows.Count == 0)
                    {
                        customer.GroupID = "";
                    }
                    else
                    {
                        customer.GroupName    = CommonUtility.GetStringValue(clientDt.Rows[0]["GroupName"]);
                        customer.DiscountType = CommonUtility.GetStringValue(clientDt.Rows[0]["DiscountType"]);
                        customer.DiscountRate = CommonUtility.GetFloatValue(clientDt.Rows[0]["DiscountRate"]);
                        customer.Footer       = CommonUtility.GetStringValue(clientDt.Rows[0]["LoyaltyFooter"]);
                        customer.DiscountName = CommonUtility.GetStringValue(clientDt.Rows[0]["DiscountName"]);
                    }
                }
                // var clientCard = GetClientCardForCustomer()
            }
            _performancelog.Debug($"End,CustomerService,GetClientByClientCode,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(customer);
        }
        /// <summary>
        /// Method to load tax exempt
        /// </summary>
        /// <param name="teType">Tax exemption type</param>
        /// <param name="sn">Sale number</param>
        /// <param name="tillId">Till Number</param>
        /// <param name="db">Data base</param>
        /// <param name="checkQuota">Check Quota or not</param>
        /// <returns>Tax exempt sale</returns>
        public TaxExemptSale LoadTaxExempt(string teType, int sn, byte tillId, DataSource db,
                                           bool checkQuota = true)
        {
            var taxExemptSale = new TaxExemptSale();

            if (LoadGstExempt(ref taxExemptSale, sn, tillId, db))
            {
                taxExemptSale.Sale_Num   = sn;
                taxExemptSale.TillNumber = tillId;
            }

            var rsHead = GetRecords("select * from TaxExemptSaleHead " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), db);
            var rsLine = GetRecords("select * from TaxExemptSaleLine " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), db);

            if (teType == "QITE")
            {
                if (rsHead.Rows.Count == 0)
                {
                    return(null);
                }
            }
            else
            {
                if (rsHead.Rows.Count == 0 || rsLine.Rows.Count == 0)
                {
                    return(null);
                }
            }
            var rsHeadField = rsHead.Rows[0];

            taxExemptSale.Sale_Num   = sn;
            taxExemptSale.TillNumber = tillId;

            foreach (DataRow fields in rsLine.Rows)
            {
                var mTeLine = new TaxExemptSaleLine
                {
                    Quantity      = CommonUtility.GetFloatValue(fields["Quantity"]),
                    UnitsPerPkg   = CommonUtility.GetFloatValue(fields["UnitQuantity"]),
                    EquvQuantity  = CommonUtility.GetFloatValue(fields["EquvQuantity"]),
                    OriginalPrice = CommonUtility.GetFloatValue(fields["OriginalPrice"]),
                    TaxFreePrice  = CommonUtility.GetFloatValue(fields["price"]),
                    Line_Num      = CommonUtility.GetShortValue(fields["Line_Num"]),
                    StockCode     = CommonUtility.GetStringValue(fields["Stock_Code"]),
                    TaxInclPrice  = CommonUtility.GetFloatValue(fields["TaxIncludedAmount"]),
                    Amount        = CommonUtility.GetFloatValue(fields["Amount"]),
                    ExemptedTax   = CommonUtility.GetFloatValue(fields["ExemptedTax"]),
                    Description   = CommonUtility.GetStringValue(fields["Description"]),
                    ProductCode   = CommonUtility.GetStringValue(fields["ProductCode"])
                };
                mPrivateGlobals.teProductEnum productType;
                Enum.TryParse(CommonUtility.GetStringValue(fields["ProductType"]), out productType);
                mTeLine.ProductType  = productType;
                mTeLine.RunningQuota = CommonUtility.GetFloatValue(fields["RunningQuota"]);

                mTeLine.OverLimit = CommonUtility.GetBooleanValue(fields["OverLimit"]);

                mTeLine.TaxExemptRate = CommonUtility.GetFloatValue(fields["TaxExemptRate"]);
                var tempCheckOverLimit = false;
                taxExemptSale.Add_a_Line(mTeLine, ref tempCheckOverLimit, ref checkQuota);
                if (!mTeLine.OverLimit)
                {
                    continue;
                }
                switch (mTeLine.ProductType)
                {
                case mPrivateGlobals.teProductEnum.eCigarette:
                case mPrivateGlobals.teProductEnum.eCigar:
                case mPrivateGlobals.teProductEnum.eLooseTobacco:
                    taxExemptSale.TobaccoOverLimit = true;
                    break;

                case mPrivateGlobals.teProductEnum.eGasoline:
                case mPrivateGlobals.teProductEnum.eDiesel:
                case mPrivateGlobals.teProductEnum.emarkedGas:
                case mPrivateGlobals.teProductEnum.emarkedDiesel:

                    taxExemptSale.GasOverLimit = true;
                    break;

                case mPrivateGlobals.teProductEnum.ePropane:
                    taxExemptSale.PropaneOverLimit = true;
                    break;

                case mPrivateGlobals.teProductEnum.eNone:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            taxExemptSale.Amount              = CommonUtility.GetFloatValue(rsHeadField["SaleAmount"]);
            taxExemptSale.ShiftDate           = CommonUtility.GetDateTimeValue(rsHeadField["ShiftDate"]);
            taxExemptSale.Sale_Time           = CommonUtility.GetDateTimeValue(rsHeadField["SaleTime"]);
            taxExemptSale.GasReason           = CommonUtility.GetStringValue(rsHeadField["GasReason"]);
            taxExemptSale.GasReasonDesp       = CommonUtility.GetStringValue(rsHeadField["GasReasonDesp"]);
            taxExemptSale.GasReasonDetail     = CommonUtility.GetStringValue(rsHeadField["GasReasonDetail"]);
            taxExemptSale.PropaneReason       = CommonUtility.GetStringValue(rsHeadField["PropaneReason"]);
            taxExemptSale.PropaneReasonDesp   = CommonUtility.GetStringValue(rsHeadField["PropaneReasonDesp"]);
            taxExemptSale.PropaneReasonDetail = CommonUtility.GetStringValue(rsHeadField["PropaneReasonDetail"]);
            taxExemptSale.TobaccoReason       = CommonUtility.GetStringValue(rsHeadField["TobaccoReason"]);
            taxExemptSale.TobaccoReasonDesp   = CommonUtility.GetStringValue(rsHeadField["TobaccoReasonDesp"]);
            taxExemptSale.TobaccoReasonDetail = CommonUtility.GetStringValue(rsHeadField["TobaccoReasonDetail"]);
            taxExemptSale.Shift    = CommonUtility.GetShortValue(rsHeadField["Shift"]);
            taxExemptSale.UserCode = CommonUtility.GetStringValue(rsHeadField["User"]);
            taxExemptSale.teCardholder.CardholderID = CommonUtility.GetStringValue(rsHeadField["CardholderID"]);
            taxExemptSale.teCardholder.Barcode      = CommonUtility.GetStringValue(rsHeadField["Barcode"]);
            taxExemptSale.teCardholder.CardNumber   = CommonUtility.GetStringValue(rsHeadField["cardnumber"]);
            if (teType == "QITE")
            {
                var rsCardHolder = GetRecords("select * from CLIENT " + " where CL_CODE=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster);
                if (rsCardHolder.Rows.Count > 0)
                {
                    taxExemptSale.teCardholder.Name        = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Cl_Name"]);
                    taxExemptSale.teCardholder.Address     = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Add1"]);
                    taxExemptSale.teCardholder.City        = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_City"]);
                    taxExemptSale.teCardholder.PlateNumber = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["PlateNumber"]);
                    taxExemptSale.teCardholder.PostalCode  = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Postal"]);
                }
            }
            else // For AITE
            {
                var rsCardHolder = GetRecords("select * from TaxExemptCardRegistry " + " where CardholderID=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster);
                if (rsCardHolder.Rows.Count > 0)
                {
                    taxExemptSale.teCardholder.Name = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Name"]);
                }
            }
            return(taxExemptSale);
        }
        /// <summary>
        /// Method to get card holder
        /// </summary>
        /// <param name="isBarCode">Is bar code or not</param>
        /// <param name="strNumber">Number</param>
        /// <param name="matchCount">Match count</param>
        /// <param name="ageRestrict">Age restriction</param>
        /// <returns>Tax exempt card holder</returns>
        public teCardholder GetCardHolder(bool isBarCode, string strNumber, out short matchCount, int ageRestrict)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,GetCardHolder,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");

            string       strSql;
            teCardholder cardHolder = new teCardholder {
                IsValidCardHolder = false
            };

            if (isBarCode)
            {
                strSql = "Select * from TaxExemptCardRegistry where BarCode=\'" + strNumber + "\'  OR AltBarCode=\'" + strNumber + "\'";
            }
            else
            {
                strSql = "Select * from TaxExemptCardRegistry where CardNumber=\'" + strNumber + "\'  OR AltCardNumber=\'" + strNumber + "\'";
            }
            var dt = GetRecords(strSql, DataSource.CSCMaster);

            matchCount = 0;
            if (dt != null && dt.Rows.Count > 0)
            {
                matchCount = Convert.ToInt16(dt.Rows.Count);
                if (matchCount > 1)
                {
                    cardHolder.IsValidCardHolder = false;
                    return(cardHolder);
                }

                DateTime mBirthDate;
                if (CommonUtility.GetBooleanValue(dt.Rows[0]["Birthdate"]))
                {
                    mBirthDate = DateAndTime.DateAdd(DateInterval.Year, Convert.ToDouble(-1 * (ageRestrict + 1)), DateAndTime.Today);
                }
                else
                {
                    mBirthDate = CommonUtility.GetDateTimeValue(dt.Rows[0]["Birthdate"]);
                }
                cardHolder.Birthdate = mBirthDate;


                cardHolder.Name              = CommonUtility.GetStringValue(dt.Rows[0]["Name"]);
                cardHolder.CardholderID      = CommonUtility.GetStringValue(dt.Rows[0]["CardholderID"]);
                cardHolder.IsValidCardHolder = false;
                if (isBarCode)
                {
                    if (CommonUtility.GetStringValue(dt.Rows[0]["Barcode"]) == strNumber)
                    {
                        cardHolder.ValidateMode = 1;
                        cardHolder.CardNumber   = CommonUtility.GetStringValue(dt.Rows[0]["CardNumber"]);
                    }
                    else
                    {
                        cardHolder.ValidateMode = 2;
                        cardHolder.CardNumber   = CommonUtility.GetStringValue(dt.Rows[0]["AltCardNumber"]);
                    }
                    cardHolder.Barcode = strNumber;
                }
                else
                {
                    if (CommonUtility.GetStringValue(dt.Rows[0]["CardNumber"]) == strNumber)
                    {
                        cardHolder.ValidateMode = 3;
                        cardHolder.Barcode      = CommonUtility.GetStringValue(dt.Rows[0]["Barcode"]);
                    }
                    else
                    {
                        cardHolder.ValidateMode = 4;
                        cardHolder.Barcode      = CommonUtility.GetStringValue(dt.Rows[0]["AltBarCode"]);
                    }
                    cardHolder.CardNumber = strNumber;
                }
                cardHolder.GasQuota          = CommonUtility.GetFloatValue(dt.Rows[0]["GasQuota"]);
                cardHolder.PropaneQuota      = CommonUtility.GetFloatValue(dt.Rows[0]["PropaneQuota"]);
                cardHolder.TobaccoQuota      = CommonUtility.GetFloatValue(dt.Rows[0]["TobaccoQuota"]);
                cardHolder.IsValidCardHolder = true;
            }
            _performancelog.Debug($"End,CustomerService,GetCardHolder,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(cardHolder);
        }
        /// <summary>
        /// Search Customers
        /// </summary>
        /// <param name="searchCriteria"></param>
        /// <param name="totalrecords"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public List <Customer> Search(string searchCriteria, out int totalrecords, int pageIndex = 1, int pageSize = 100)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,CustomerService,Search,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}");
            totalrecords = 0;
            var customers = new List <Customer>();
            var query     = "Select * from Client " +
                            " WHERE  (Client.CL_Status IS NULL " +
                            " OR Client.CL_Status IN (\'A\',\'F\',\'\')) " +
                            " AND (CL_NAME like \'%" + searchCriteria + "%\' OR " +
                            " CL_CODE like \'%" + searchCriteria + "%\' OR " +
                            " CL_PHONE like \'%" + searchCriteria + "%\' )" +
                            "ORDER BY CLIENT.CL_CODE, CLIENT.CL_NAME, CLIENT.CL_PHONE";
            var dt = GetPagedRecords(query, DataSource.CSCMaster, pageIndex, pageSize);

            if (dt != null)
            {
                totalrecords = dt.Rows.Count;

                customers.AddRange(from DataRow fields in dt.Rows
                                   select new Customer
                {
                    Code                  = CommonUtility.GetStringValue(fields["CL_CODE"]),
                    Name                  = CommonUtility.GetStringValue(fields["CL_NAME"]),
                    Category              = CommonUtility.GetStringValue(fields["CL_CATEG"]),
                    Address_1             = CommonUtility.GetStringValue(fields["CL_ADD1"]),
                    Address_2             = CommonUtility.GetStringValue(fields["CL_ADD2"]),
                    City                  = CommonUtility.GetStringValue(fields["CL_CITY"]),
                    Province              = CommonUtility.GetStringValue(fields["CL_PROV"]),
                    Country               = CommonUtility.GetStringValue(fields["CL_COUNTRY"]),
                    Postal_Code           = CommonUtility.GetStringValue(fields["CL_POSTAL"]),
                    Area_Code             = CommonUtility.GetStringValue(fields["CL_ACODE"]),
                    Phone                 = CommonUtility.GetStringValue(fields["CL_PHONE"]),
                    Cell_Phone            = CommonUtility.GetStringValue(fields["CL_CELL"]),
                    Fax                   = CommonUtility.GetStringValue(fields["CL_FAX"]),
                    Toll_Free             = CommonUtility.GetStringValue(fields["CL_TOLL"]),
                    E_Mail                = CommonUtility.GetStringValue(fields["CL_EMAIL"]),
                    Contact_1             = CommonUtility.GetStringValue(fields["CL_CONT1"]),
                    Contact_2             = CommonUtility.GetStringValue(fields["CL_CONT2"]),
                    Loyalty_Code          = CommonUtility.GetStringValue(fields["LO_NUM"]),
                    Loyalty_Points        = CommonUtility.GetDoubleValue(fields["LO_POINTS"]),
                    AR_Customer           = CommonUtility.GetBooleanValue(fields["CL_ARCUST"]),
                    Customer_Type         = CommonUtility.GetStringValue(fields["CL_TYPE"]),
                    Terms                 = CommonUtility.GetShortValue(fields["TERMS"]),
                    Credit_Limit          = CommonUtility.GetDoubleValue(fields["CL_LIMIT"]),
                    Current_Balance       = CommonUtility.GetDoubleValue(fields["CL_CURBAL"]),
                    CL_Status             = CommonUtility.GetStringValue(fields["CL_STATUS"]),
                    UsePO                 = CommonUtility.GetBooleanValue(fields["UsePO"]),
                    GroupID               = CommonUtility.GetStringValue(fields["GroupID"]),
                    UseFuelRebate         = CommonUtility.GetBooleanValue(fields["UseFuelRebate"]),
                    UseFuelRebateDiscount = CommonUtility.GetBooleanValue(fields["UseFuelRebateDiscount"]),
                    CL_Note               = CommonUtility.GetStringValue(fields["CL_Note"]),
                    TaxExempt             = CommonUtility.GetBooleanValue(fields["TaxExempt"]),
                    PlateNumber           = CommonUtility.GetStringValue(fields["PlateNumber"]),
                    MultiUse_PO           = CommonUtility.GetBooleanValue(fields["MultiUse_PO"]),
                    TECardNumber          = CommonUtility.GetStringValue(fields["TECardNumber"]),
                    Discount_Code         = CommonUtility.GetByteValue(fields["CUST_DISC"])
                });
            }

            _performancelog.Debug($"End,CustomerService,Search,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(customers);
        }
Example #29
0
        /// <summary>
        /// Get Line Kits
        /// </summary>
        /// <param name="saleNumber"></param>
        /// <param name="lineNumber"></param>
        /// <param name="dataSource"></param>
        /// <returns></returns>
        private Line_Kits GetLineKits(int saleNumber, int lineNumber, DataSource dataSource)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,ReturnSaleService,GetLineKits,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            Line_Kits lineKits = new Line_Kits();

            // Get the kit items in the line
            var rsLineKit = GetRecords("Select *  FROM   SaleKit  WHERE  SaleKit.Sale_No = " + CommonUtility.GetStringValue(saleNumber) + " AND  SaleKit.Line_No = " + CommonUtility.GetStringValue(lineNumber) + " ", dataSource);

            foreach (DataRow rsLineKitFields in rsLineKit.Rows)
            {
                // Charges on Kit items
                var rsLineKitChg = GetRecords("Select * From   SaleKitChg Where  SaleKitChg.Sale_No = " + CommonUtility.GetStringValue(saleNumber) + " AND  SaleKitChg.Line_No = " + CommonUtility.GetStringValue(lineNumber) + " AND  SaleKitChg.Kit_Item = \'" + CommonUtility.GetStringValue(rsLineKitFields["Kit_Item"]) + "\' ", dataSource);
                var lkc          = new K_Charges();
                foreach (DataRow rsLineKitChgFields in rsLineKitChg.Rows)
                {
                    // Taxes on Charges on Kit items
                    var rsCgt = GetRecords("Select * From   SaleKitChgTax Where  SaleKitChgTax.Sale_No  = " + CommonUtility.GetStringValue(saleNumber) + " AND  SaleKitChgTax.Line_No  = " + CommonUtility.GetStringValue(lineNumber) + " AND SaleKitChgTax.Kit_Item = \'" + CommonUtility.GetStringValue(rsLineKitFields["Kit_Item"]) + "\' AND  SaleKitChgTax.As_Code  = \'" + CommonUtility.GetStringValue(rsLineKitChgFields["As_Code"]) + "\' ", dataSource);
                    var cgt   = new Charge_Taxes();
                    foreach (DataRow rsCgtFields in rsCgt.Rows)
                    {
                        cgt.Add(CommonUtility.GetStringValue(rsCgtFields["Tax_Name"]), CommonUtility.GetStringValue(rsCgtFields["Tax_Code"]), CommonUtility.GetFloatValue(rsCgtFields["Tax_Rate"]), CommonUtility.GetBooleanValue(rsCgtFields["Tax_Included"]), "");
                    }
                    lkc.Add(CommonUtility.GetDoubleValue(rsLineKitChgFields["price"]), CommonUtility.GetStringValue(rsLineKitChgFields["Description"]), CommonUtility.GetStringValue(rsLineKitChgFields["As_Code"]), cgt, "");
                }
                lineKits.Add(CommonUtility.GetStringValue(rsLineKitFields["Kit_Item"]), CommonUtility.GetStringValue(rsLineKitFields["Descript"]), CommonUtility.GetFloatValue(rsLineKitFields["Quantity"]), CommonUtility.GetFloatValue(rsLineKitFields["Base"]), CommonUtility.GetFloatValue(rsLineKitFields["Fraction"]), CommonUtility.GetFloatValue(rsLineKitFields["Alloc"]), CommonUtility.GetStringValue(rsLineKitFields["Serial"]), lkc, "");
            }
            _performancelog.Debug($"End,ReturnSaleService,GetLineKits,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(lineKits);
        }
Example #30
0
        /// <summary>
        /// Gets the List of Sale Lines
        /// </summary>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="saleDate">Sale date</param>
        /// <param name="discountType">Discount type</param>
        /// <param name="teType">Tax exempt type</param>
        /// <param name="taxExempt">Tax exempt name</param>
        /// <returns>List of sale lines</returns>
        public List <Sale_Line> GetSaleLineBySaleNumber(int saleNumber, int tillNumber, DateTime saleDate, string discountType, string teType, bool taxExempt)
        {
            var dateStart = DateTime.Now;

            _performancelog.Debug($"Start,ReturnSaleService,GetSaleLineBySaleNumber,{string.Empty},{dateStart:hh.mm.ss.ffffff}");

            List <Sale_Line> saleLines = new List <Sale_Line>();
            DataSource       db        = DataSource.CSCTrans;

            var strSqlHead = " SELECT * FROM   SaleHead Where  SaleHead.Sale_No = " + CommonUtility.GetStringValue(saleNumber) + " AND SaleHead.TILL = " + CommonUtility.GetStringValue(tillNumber) + " AND SaleHead.T_Type IN ( \'SALE\' ,\'REFUND\', \'RUNAWAY\',\'PUMPTEST\' ) and SaleHead.SALE_AMT <> 0 ";
            var strSqlLine = " SELECT * FROM   SaleLine Where SaleLine.Sale_No = " + CommonUtility.GetStringValue(saleNumber) + " AND SaleLine.TILL_NUM = " + CommonUtility.GetStringValue(tillNumber) + "ORDER BY SaleLine.Line_Num ";

            var rsHead = GetRecords(strSqlHead, DataSource.CSCTrans);
            var rsLine = GetRecords(strSqlLine, DataSource.CSCTrans);

            // If SaleNo is not found in Trans.mdb database, then
            // look for this SaleNo in all active Tills
            if (rsHead == null || rsHead.Rows.Count == 0)
            {
                rsHead = GetRecords(strSqlHead, DataSource.CSCTills);
                rsLine = GetRecords(strSqlLine, DataSource.CSCTills);
                // If sale number is found exit for do and use this recordset
                if (rsHead != null && rsHead.Rows.Count != 0)
                {
                    db = DataSource.CSCTills;
                }
            }
            else
            {
                db = DataSource.CSCTrans;
            }
            foreach (DataRow rsLineFields in rsLine.Rows)
            {
                var saleLine = new Sale_Line
                {
                    No_Loading    = true,
                    Stock_Code    = CommonUtility.GetStringValue(rsLineFields["Stock_Code"]),
                    PLU_Code      = CommonUtility.GetStringValue(rsLineFields["PLU_Code"]),
                    Line_Num      = CommonUtility.GetShortValue(rsLineFields["Line_Num"]),
                    Price_Type    = CommonUtility.GetCharValue(rsLineFields["Price_Type"]),
                    Dept          = CommonUtility.GetStringValue(rsLineFields["Dept"]),
                    Sub_Detail    = CommonUtility.GetStringValue(rsLineFields["Sub_Detail"]),
                    Sub_Dept      = CommonUtility.GetStringValue(rsLineFields["Sub_Dept"]),
                    Quantity      = CommonUtility.GetFloatValue(rsLineFields["Quantity"]) * -1,
                    price         = CommonUtility.GetDoubleValue(rsLineFields["price"]),
                    Regular_Price = CommonUtility.GetDoubleValue(rsLineFields["Reg_Price"]),
                    Cost          = CommonUtility.GetDoubleValue(rsLineFields["Cost"]),
                    Amount        = CommonUtility.GetDecimalValue(rsLineFields["Amount"]) * -1,
                    Total_Amount  = CommonUtility.GetDecimalValue(rsLineFields["Total_Amt"]) * -1
                };

                if (!(teType == "QITE" && discountType == "D"))
                {
                    saleLine.Line_Discount = CommonUtility.GetDoubleValue(rsLineFields["Discount"]) * -1;
                }
                saleLine.Discount_Type = CommonUtility.GetStringValue(rsLineFields["Disc_Type"]);
                saleLine.Discount_Code = CommonUtility.GetStringValue(rsLineFields["Disc_Code"]);
                if (!(teType == "QITE" && discountType == "D"))
                {
                    SetDiscountRate(ref saleLine, CommonUtility.GetFloatValue(rsLineFields["Disc_Rate"]));
                }
                saleLine.Associate_Amount = CommonUtility.GetDecimalValue(rsLineFields["Assoc_Amt"]);
                saleLine.Description      = CommonUtility.GetStringValue(rsLineFields["Descript"]);
                saleLine.Loyalty_Save     = CommonUtility.GetFloatValue(rsLineFields["Loyl_Save"]);
                saleLine.Units            = CommonUtility.GetStringValue(rsLineFields["Units"]);
                saleLine.Serial_No        = CommonUtility.GetStringValue(rsLineFields["Serial_No"]);

                saleLine.Stock_Code = CommonUtility.GetStringValue(rsLineFields["Stock_Code"]);
                saleLine.pumpID     = CommonUtility.GetByteValue(rsLineFields["pumpID"]);
                saleLine.PositionID = CommonUtility.GetByteValue(rsLineFields["PositionID"]);

                saleLine.GradeID = CommonUtility.GetByteValue(rsLineFields["GradeID"]);

                saleLine.Prepay = CommonUtility.GetBooleanValue(rsLineFields["Prepay"]);

                saleLine.ManualFuel = CommonUtility.GetBooleanValue(rsLineFields["ManualFuel"]);

                saleLine.IsTaxExemptItem = CommonUtility.GetBooleanValue(rsLineFields["TaxExempt"]);

                saleLine.Gift_Num = CommonUtility.GetStringValue(rsLineFields["GC_Num"]);

                saleLine.FuelRebateEligible = CommonUtility.GetBooleanValue(rsLineFields["FuelRebateUsed"]);

                saleLine.FuelRebate = CommonUtility.GetDecimalValue(rsLineFields["RebateDiscount"]);

                saleLine.EligibleTaxEx = CommonUtility.GetBooleanValue(rsLineFields["ElgTaxExemption"]);

                saleLine.CarwashCode = CommonUtility.GetStringValue(rsLineFields["CarwashCode"]);

                if (saleLine.CarwashCode != "")
                {
                    saleLine.IsCarwashProduct = true;
                }

                if (saleLine.IsTaxExemptItem)
                {
                    if (teType == "SITE")
                    {
                        var rsPurchaseItem = GetRecords(
                            "select * from PurchaseItem Where Sale_No=" + CommonUtility.GetStringValue(saleNumber) +
                            " AND Line_No=" + CommonUtility.GetStringValue(saleLine.Line_Num), db);
                        if (rsPurchaseItem != null && rsPurchaseItem.Rows.Count != 0)
                        {
                            var rsPurchaseItemFields = rsPurchaseItem.Rows[0];

                            saleLine.OriginalPrice =
                                CommonUtility.GetFloatValue(rsPurchaseItemFields["OriginalPrice"]);
                            saleLine.TaxInclPrice = CommonUtility.GetFloatValue(rsPurchaseItemFields["Amount"]);
                        }
                        else
                        {
                            saleLine.OriginalPrice = (float)saleLine.price;
                            saleLine.TaxInclPrice  = (float)(-1 * saleLine.Amount);
                        }
                    }
                    else
                    {
                        var rsTeSaleLine = GetRecords(
                            "select * from TaxExemptSaleLine Where SALE_NO=" +
                            CommonUtility.GetStringValue(saleNumber) + " AND LINE_NUM=" +
                            CommonUtility.GetStringValue(saleLine.Line_Num), db);

                        if (rsTeSaleLine != null && rsTeSaleLine.Rows.Count != 0)
                        {
                            var rsTeSaleLineFields = rsTeSaleLine.Rows[0];

                            saleLine.OriginalPrice =
                                CommonUtility.GetFloatValue(rsTeSaleLineFields["OriginalPrice"]);

                            saleLine.TaxInclPrice =
                                CommonUtility.GetFloatValue(-1 *
                                                            CommonUtility.GetIntergerValue(
                                                                rsTeSaleLineFields["TaxIncludedAmount"]));
                        }
                        else
                        {
                            saleLine.OriginalPrice = (float)saleLine.price;
                            saleLine.TaxInclPrice  = (float)(-1 * saleLine.Amount);
                        }

                        saleLine.IsTaxExemptItem = false;
                    }
                }


                string strPromo = CommonUtility.GetStringValue(rsLineFields["PromoID"]);
                if (strPromo.Length != 0)
                {
                    saleLine.PromoID = strPromo;
                }


                saleLine.Line_Taxes = null;
                var rsLineTax =
                    GetRecords(
                        "Select * From   S_LineTax  WHERE  S_LineTax.Sale_No = " +
                        CommonUtility.GetStringValue(saleNumber) + " AND  S_LineTax.Line_No = " +
                        CommonUtility.GetStringValue(rsLineFields["Line_Num"]) + " " +
                        "Order By S_LineTax.Tax_Name ", db);
                if (rsLineTax == null || rsLineTax.Rows.Count == 0)
                {
                    if (taxExempt && (teType == "AITE" || teType == "QITE"))
                    {
                        rsLineTax =
                            GetRecords(
                                "Select * From   TaxCreditLine  WHERE  TaxCreditLine.Sale_No = " +
                                CommonUtility.GetStringValue(saleNumber) + " AND  TaxCreditLine.Line_No = " +
                                CommonUtility.GetStringValue(rsLineFields["Line_Num"]) + " " +
                                "Order By TaxCreditLine.Tax_Name ", db);
                        if (!saleLine.IsTaxExemptItem && rsLineTax.Rows.Count != 0)
                        {
                        }
                    }
                }

                foreach (DataRow rsLineTaxFields in rsLineTax.Rows)
                {
                    saleLine.Line_Taxes.Add(CommonUtility.GetStringValue(rsLineTaxFields["Tax_Name"]),
                                            CommonUtility.GetStringValue(rsLineTaxFields["Tax_Code"]),
                                            CommonUtility.GetFloatValue(rsLineTaxFields["Tax_Rate"]),
                                            CommonUtility.GetBooleanValue(rsLineTaxFields["Tax_Included"]),
                                            CommonUtility.GetFloatValue(rsLineTaxFields["Tax_Rebate_Rate"]),
                                            CommonUtility.GetDecimalValue(rsLineTaxFields["Tax_Rebate"]), "");
                }

                // Similarly, pick up the charges associated with the line.
                saleLine.Charges = null;
                var rsLineChg =
                    GetRecords(
                        "Select *  FROM   SaleChg  WHERE  SaleChg.Sale_No = " +
                        CommonUtility.GetStringValue(saleNumber) + " AND SaleChg.Line_No = " +
                        CommonUtility.GetStringValue(rsLineFields["Line_Num"]) + " Order By SaleChg.As_Code ",
                        db);
                foreach (DataRow linChrField in rsLineChg.Rows)
                {
                    var rsLcTax =
                        GetRecords(
                            "Select *  FROM   ChargeTax  WHERE  ChargeTax.Sale_No = " +
                            CommonUtility.GetStringValue(saleNumber) + " AND ChargeTax.Line_No = " +
                            CommonUtility.GetStringValue(rsLineFields["Line_Num"]) + " AND ChargeTax.As_Code = \'" +
                            CommonUtility.GetStringValue(linChrField["As_Code"]) + "\' ", db);
                    // Find any taxes that applied to those charges.
                    var lct = new Charge_Taxes();
                    foreach (DataRow rsLcTaxFields in rsLcTax.Rows)
                    {
                        lct.Add(CommonUtility.GetStringValue(rsLcTaxFields["Tax_Name"]),
                                CommonUtility.GetStringValue(rsLcTaxFields["Tax_Code"]),
                                CommonUtility.GetFloatValue(rsLcTaxFields["Tax_Rate"]),
                                CommonUtility.GetBooleanValue(rsLcTaxFields["Tax_Included"]), "");
                    }

                    saleLine.Charges.Add(CommonUtility.GetStringValue(linChrField["As_Code"]),
                                         CommonUtility.GetStringValue(linChrField["Description"]),
                                         CommonUtility.GetFloatValue(linChrField["price"]), lct, "");
                }


                saleLine.Line_Kits = GetLineKits(saleNumber,
                                                 CommonUtility.GetIntergerValue(rsLineFields["Line_Num"]), db);
                saleLines.Add(saleLine);
            }
            _performancelog.Debug($"End,ReturnSaleService,GetSaleLineBySaleNumber,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(saleLines);
        }