示例#1
0
        /// <summary>
        /// Method to update cash in till
        /// </summary>
        /// <param name="tillNumber">Till number</param>
        /// <param name="amount">Amount</param>
        /// <returns>Updated cash</returns>
        public decimal UpdateCash(int tillNumber, decimal amount)
        {
            decimal updatedCash = 0;
            var     query       = "Select * From Tills Where Tills.Till_Num = " + tillNumber;

            _connection = new SqlConnection(GetConnectionString(DataSource.CSCMaster));
            if (_connection.State == ConnectionState.Closed)
            {
                _connection.Open();
            }
            _dataTable = new DataTable();

            _adapter = new SqlDataAdapter(query, _connection);
            _adapter.Fill(_dataTable);
            if (_dataTable.Rows.Count > 0)
            {
                updatedCash = CommonUtility.GetDecimalValue(_dataTable.Rows[0]["Cash"]) + amount;
                _dataTable.Rows[0]["Cash"] = updatedCash;
                SqlCommandBuilder builder = new SqlCommandBuilder(_adapter);
                _adapter.UpdateCommand = builder.GetUpdateCommand();
                _adapter.Update(_dataTable);
            }
            _connection.Close();
            _adapter?.Dispose();
            return(updatedCash);
        }
示例#2
0
        /// <summary>
        /// Get All Sales
        /// </summary>
        /// <param name="saleDate">Sale date</param>
        /// <param name="timeFormat">Time format</param>
        /// <param name="pageIndex">Page index</param>
        /// <param name="pageSize">Page size</param>
        /// <returns>List of sale head</returns>
        public List <SaleHead> GetAllSales(DateTime saleDate, string timeFormat, int pageIndex, int pageSize)
        {
            var dateStart = DateTime.Now;

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

            var    salesHeads = new List <SaleHead>();
            string strSql;

            if (timeFormat == "24 HOURS") //to format the time according to the policy
            {
                strSql = "(SELECT Till, Sale_No AS [Sale No], Sale_Date AS [Date], convert(varchar,Sale_time, 108) AS [Time] , Sale_Amt AS [Amount] FROM SaleHead A WHERE A.T_Type IN ( \'SALE\' ,\'REFUND\', \'RUNAWAY\', \'PUMPTEST\' ) and A.SALE_AMT <> 0 and A.Sale_Date >= \'" + saleDate.ToString("yyyyMMdd") + "\' UNION ALL SELECT Till, Sale_No AS [Sale No], Sale_Date AS [Date], convert(varchar,Sale_time, 108) AS [Time] , Sale_Amt AS [Amount] FROM CSCTRANS.dbo.SaleHead  A WHERE A.T_Type IN ( \'SALE\' ,\'REFUND\', \'RUNAWAY\' , \'PUMPTEST\') and A.SALE_AMT <> 0 and A.Sale_Date >= \'" + saleDate.ToString("yyyyMMdd") + "\') ORDER BY Sale_No DESC";
            }
            else
            {
                strSql = "(SELECT Till, Sale_No AS [Sale No], Sale_Date AS [Date], RIGHT(CONVERT(CHAR(19),sale_time,100),7) AS [Time] , Sale_Amt AS [Amount] FROM SaleHead A WHERE A.T_Type IN ( \'SALE\' ,\'REFUND\' , \'RUNAWAY\', \'PUMPTEST\') and A.SALE_AMT <> 0 and A.Sale_Date >= \'" + saleDate.ToString("yyyyMMdd") + "\' UNION ALL SELECT Till, Sale_No AS [Sale No], Sale_Date AS [Date], RIGHT(CONVERT(CHAR(19),sale_time,100),7) AS [Time] , Sale_Amt AS [Amount] FROM CSCTRANS.dbo.SaleHead  A WHERE A.T_Type IN ( \'SALE\' ,\'REFUND\', \'RUNAWAY\' , \'PUMPTEST\') and A.SALE_AMT <> 0 and A.Sale_Date >= \'" + saleDate.ToString("yyyyMMdd") + "\') ORDER BY Sale_No DESC";
            }
            var rsSales = GetPagedRecords(strSql, DataSource.CSCTills, pageIndex, pageSize);

            foreach (DataRow fields in rsSales.Rows)
            {
                salesHeads.Add(new SaleHead
                {
                    TillNumber = CommonUtility.GetIntergerValue(fields["Till"]),
                    SaleNumber = CommonUtility.GetIntergerValue(fields["Sale No"]),
                    SaleDate   = CommonUtility.GetDateTimeValue(fields["Date"]),
                    SaleTime   = CommonUtility.GetDateTimeValue(fields["Time"]),
                    SaleAmount = CommonUtility.GetDecimalValue(fields["Amount"])
                });
            }

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

            return(salesHeads);
        }
示例#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);
        }
示例#4
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);
        }
示例#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);
        }
示例#6
0
        /// <summary>
        /// Method to get original sale head
        /// </summary>
        /// <param name="invoiceId">Sale number</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="db"></param>
        /// <returns>Sale head</returns>
        public SaleHead GetOriginalSaleHead(int invoiceId, int tillNumber, out DataSource db)
        {
            db = DataSource.CSCTills;
            var rsHead = GetRecords(" SELECT * FROM SaleHead " + " WHERE  SaleHead.Sale_No = " + Convert.ToString(invoiceId) + " and TILL=" + tillNumber, db); //, adLockReadOnly)

            if (rsHead.Rows.Count == 0)
            {
                db     = DataSource.CSCTrans;
                rsHead = GetRecords(" SELECT * FROM SaleHead " + " WHERE  SaleHead.Sale_No = " + Convert.ToString(invoiceId) + " and TILL=" + tillNumber, db); //, adLockReadOnly)
            }
            if (rsHead.Rows.Count == 0)
            {
                return(null);
            }
            return(new SaleHead
            {
                SaleNumber = CommonUtility.GetIntergerValue(rsHead.Rows[0]["sale_no"]),
                TillNumber = CommonUtility.GetIntergerValue(rsHead.Rows[0]["Till"]),
                Client = CommonUtility.GetStringValue(rsHead.Rows[0]["Client"]),
                TType = CommonUtility.GetStringValue(rsHead.Rows[0]["T_type"]),
                Deposit = CommonUtility.GetDecimalValue(rsHead.Rows[0]["Deposit"]),
                TreatyNumber = CommonUtility.GetStringValue(rsHead.Rows[0]["TreatyNumber"]),
                Change = CommonUtility.GetDecimalValue(rsHead.Rows[0]["Change"]),
                PennyAdjust = CommonUtility.GetDecimalValue(rsHead.Rows[0]["Penny_Adj"]),
                DiscountType = CommonUtility.GetStringValue(rsHead.Rows[0]["Disc_Type"]),
                INVCDiscount = CommonUtility.GetDecimalValue(rsHead.Rows[0]["Invc_Disc"])
            });
        }
        /// <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);
        }
        /// <summary>
        /// Method to get all coins
        /// </summary>
        /// <returns></returns>
        public List <CashBonus> GetCashBonusCoins()
        {
            var dt    = GetRecords("Select *  FROM   CBonusDrawTypes", DataSource.CSCMaster);
            var coins = new List <CashBonus>();

            foreach (DataRow dr in dt.Rows)
            {
                coins.Add(new CashBonus
                {
                    CurrencyName = CommonUtility.GetStringValue(dr["Currency_Name"]),
                    Value        = CommonUtility.GetDecimalValue(CommonUtility.GetDecimalValue(dr["Value"]).ToString("0.00")),
                    ButtonNumber = CommonUtility.GetIntergerValue(dr["Button_Number"])
                });
            }
            return(coins);
        }
示例#9
0
        /// <summary>
        /// Method to get all coins
        /// </summary>
        /// <returns></returns>
        public List <Cash> GetCoins()
        {
            var dt    = GetRecords("Select *  FROM   DrawTypes  WHERE  DrawTypes.Currency_Type = \'C\' Order By DrawTypes.Button_Number ", DataSource.CSCMaster);
            var coins = new List <Cash>();

            foreach (DataRow dr in dt.Rows)
            {
                coins.Add(new Cash
                {
                    CurrencyName = CommonUtility.GetStringValue(dr["Currency_Name"]),
                    Value        = CommonUtility.GetDecimalValue(CommonUtility.GetDecimalValue(dr["Value"]).ToString("0.00")),
                    Image        = CommonUtility.GetStringValue(dr["Image"])
                });
            }
            return(coins);
        }
示例#10
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);
        }
示例#11
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);
        }
示例#12
0
        /// <summary>
        /// Get SaleBy SaleNumber
        /// </summary>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="saleDate">Sale date</param>
        /// <param name="defaultCustCode">Default customer code</param>
        /// <param name="isSaleFound">Sale found or not</param>
        /// <param name="isReturnable">Sale returned or not</param>
        /// <param name="teType">Taxe exempt type</param>
        /// <param name="teGetName">Tax exempt name</param>
        /// <param name="taxExemptGa">Tax exempt ga</param>
        /// <param name="pDefaultCustomer">Deafult customer</param>
        /// <returns>Sale</returns>
        public Sale GetSaleBySaleNumber(int saleNumber, int tillNumber, DateTime saleDate, string teType, bool teGetName, bool taxExemptGa, bool pDefaultCustomer, string defaultCustCode, out bool isSaleFound, out bool isReturnable)
        {
            var dateStart = DateTime.Now;

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

            DataSource db        = DataSource.CSCTrans;
            bool       saleFound = false;
            Sale       sale      = new Sale();

            isSaleFound  = true;
            isReturnable = true;

            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 rsHead     = GetRecords(strSqlHead, 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);
                // If sale number is found exit for do and use this recordset
                if (rsHead != null && rsHead.Rows.Count != 0)
                {
                    saleFound = true;
                    db        = DataSource.CSCTills;
                }
            }
            else
            {
                saleFound = true;
                db        = DataSource.CSCTrans;
            }

            if (!saleFound)
            {
                isSaleFound  = false;
                isReturnable = false;
                return(sale);
            }
            var rsHeadFields = rsHead.Rows[0];

            if (saleDate != new DateTime() && CommonUtility.GetDateTimeValue(rsHeadFields["Sale_Date"]) < saleDate)
            {
                isReturnable = false;
                return(sale);
            }
            sale.LoadingTemp    = true;
            sale.TillNumber     = CommonUtility.GetByteValue(tillNumber);
            sale.Sale_Num       = saleNumber;
            sale.Sale_Amount    = CommonUtility.GetDecimalValue(rsHeadFields["SALE_AMT"]);
            sale.Sale_Invc_Disc = CommonUtility.GetDecimalValue(rsHeadFields["INVC_DISC"]);
            sale.TotalTaxSaved  = CommonUtility.GetFloatValue(CommonUtility.GetDecimalValue(rsHeadFields["SALE_AMT"]) - CommonUtility.GetDecimalValue(rsHeadFields["TEND_AMT"]));
            sale.Customer       = LoadCustomer(CommonUtility.GetStringValue(rsHeadFields["Client"]), pDefaultCustomer, defaultCustCode);

            if ((CommonUtility.GetStringValue(rsHeadFields["T_type"]) == "RUNAWAY" || CommonUtility.GetStringValue(rsHeadFields["T_type"]) == "PUMPTEST") && CommonUtility.GetDecimalValue(rsHeadFields["Sale_amt"]) < 0)
            {
                sale.Sale_Type = "SALE";
            }
            else
            {
                sale.Sale_Type = CommonUtility.GetStringValue(rsHeadFields["T_type"]);
            }
            sale.Void_Num     = saleNumber;
            sale.Sale_Deposit = CommonUtility.GetDecimalValue(rsHeadFields["Deposit"]);

            sale.TreatyNumber = CommonUtility.GetStringValue(rsHeadFields["TreatyNumber"]);
            if (teType != "AITE" && teType != "QITE" && teGetName)
            {
                sale.TreatyName = GetTreatyName(CommonUtility.GetStringValue(rsHeadFields["TreatyNumber"]));
            }

            sale.ReferenceNumber = CommonUtility.GetStringValue(rsHeadFields["ReferenceNum"]);
            if (sale.ReferenceNumber != "" && taxExemptGa)
            {
                sale.EligibleTaxEx = true;
            }

            //Added to load the original Loyalty Card
            var rsDiscountTender = GetRecords("select * from DiscountTender where SALE_NO=" + CommonUtility.GetStringValue(saleNumber) + " AND TILL_NUM=" + tillNumber, db);

            if (rsDiscountTender != null && rsDiscountTender.Rows.Count != 0)
            {
                var tenderFields = rsDiscountTender.Rows[0];
                sale.Customer.LoyaltyCard = CommonUtility.GetStringValue(tenderFields["CardNum"]);
                sale.CouponID             = CommonUtility.GetStringValue(tenderFields["CouponID"]);
            }

            sale.ForCorrection = false;

            sale.Sale_Totals.Invoice_Discount_Type = Convert.ToString(rsHeadFields["Disc_Type"]);
            sale.Sale_Totals.Invoice_Discount      = Convert.ToDecimal(Convert.ToInt32(rsHeadFields["Invc_Disc"]) * -1);

            sale.Sale_Totals.Penny_Adj = Convert.ToDecimal(-1 * Convert.ToInt32(DBNull.Value.Equals(rsHeadFields["PENNY_ADJ"]) ? 0 : rsHeadFields["PENNY_ADJ"])); //
            sale.ReverseRunaway        = (string)rsHeadFields["T_type"] == "RUNAWAY" && Convert.ToInt32(rsHeadFields["Sale_amt"]) > 0;                            //
            sale.ReversePumpTest       = (string)rsHeadFields["T_type"] == "PUMPTEST" && Convert.ToInt32(rsHeadFields["Sale_amt"]) > 0;                           //

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

            return(sale);
        }
示例#13
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);
        }
        /// <summary>
        /// Method to get suspended sale
        /// </summary>
        /// <param name="tillNumber">Till number</param>
        /// <param name="saleNumber">Sale number</param>
        /// <param name="shareSusp">Share suspended sale</param>
        /// <returns>Sale</returns>
        public Sale GetSuspendedSale(int tillNumber, int saleNumber, bool shareSusp)
        {
            var dateStart = DateTime.Now;

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

            var       sale = new Sale();
            DataTable uHead;
            DataTable uLine;

            if (shareSusp)
            {
                uHead = GetRecords("select * from SusHead  WHERE SALE_NO=" + Convert.ToString(saleNumber), DataSource.CSCTills);
                uLine = GetRecords("select * from SusLine WHERE SALE_NO=" + Convert.ToString(saleNumber) + " ORDER BY SusLine.Line_Num ", DataSource.CSCTills);
            }
            else
            {
                uHead = GetRecords("select * from SusHead where TILL=" + tillNumber + " AND SALE_NO=" + Convert.ToString(saleNumber), DataSource.CSCTills);
                uLine = GetRecords("select * from SusLine where TILL_NUM=" + tillNumber + " AND SALE_NO=" + Convert.ToString(saleNumber) + " ORDER BY SusLine.Line_Num ", DataSource.CSCTills);
            }

            if (uHead.Rows.Count > 0)
            {
                sale.Sale_Num             = CommonUtility.GetIntergerValue(uHead.Rows[0]["SALE_NO"]);
                sale.TillNumber           = (byte)tillNumber;
                sale.Register             = CommonUtility.GetByteValue(uHead.Rows[0]["Regist"]);
                sale.Customer.Code        = CommonUtility.GetStringValue(uHead.Rows[0]["Client"]);
                sale.Sale_Type            = CommonUtility.GetStringValue(uHead.Rows[0]["T_type"]);
                sale.Return_Reason.Reason = CommonUtility.GetStringValue(uHead.Rows[0]["Reason"]);
                sale.Return_Reason.RType  = CommonUtility.GetStringValue(uHead.Rows[0]["Reason_Type"]);
                sale.Sale_Totals.Invoice_Discount_Type = CommonUtility.GetStringValue(uHead.Rows[0]["Disc_Type"]);
                sale.Sale_Totals.Invoice_Discount      = CommonUtility.GetDecimalValue(uHead.Rows[0]["Invc_Disc"]);
                sale.Sale_Totals.Discount_Percent      = CommonUtility.GetFloatValue(uHead.Rows[0]["Discount_Percent"]);
                sale.Void_Num = CommonUtility.GetIntergerValue(uHead.Rows[0]["Void_No"]);

                sale.Customer.LoyaltyCard    = CommonUtility.GetStringValue(uHead.Rows[0]["LoyaltyCard"]);
                sale.Customer.LoyaltyExpDate = CommonUtility.GetStringValue(uHead.Rows[0]["LoyaltyExpDate"]);
                sale.CouponID = CommonUtility.GetStringValue(uHead.Rows[0]["CouponID"]);
                sale.Upsell   = CommonUtility.GetBooleanValue(uHead.Rows[0]["Upsell"]);
                var ln = (short)0;

                foreach (DataRow row in uLine.Rows)
                {
                    ln++;
                    var sl = new Sale_Line
                    {
                        Sale_Num = CommonUtility.GetStringValue(row["sale_no"]),
                        Till_Num = sale.TillNumber
                    };
                    sale.Sale_Num       = CommonUtility.GetIntergerValue(row["sale_no"]);
                    sl.Line_Num         = ln;
                    sl.PLU_Code         = CommonUtility.GetStringValue(row["PLU_Code"]);
                    sl.Quantity         = CommonUtility.GetFloatValue(row["Quantity"]);
                    sl.price            = CommonUtility.GetDoubleValue(row["price"]);
                    sl.Amount           = CommonUtility.GetDecimalValue(row["Amount"]);
                    sl.Line_Discount    = CommonUtility.GetDoubleValue(row["Discount"]);
                    sl.Discount_Type    = CommonUtility.GetStringValue(row["Disc_Type"]);
                    sl.Discount_Adjust  = CommonUtility.GetDoubleValue(row["Disc_Adj"]);
                    sl.Discount_Code    = CommonUtility.GetStringValue(row["Disc_Code"]);
                    sl.Discount_Rate    = CommonUtility.GetFloatValue(row["Disc_Rate"]);
                    sl.DiscountName     = CommonUtility.GetStringValue(row["DiscountName"]);
                    sl.Price_Type       = CommonUtility.GetCharValue(row["Price_Type"]);
                    sl.Loyalty_Save     = CommonUtility.GetFloatValue(row["Loyl_Save"]);
                    sl.Units            = CommonUtility.GetStringValue(row["Units"]);
                    sl.Serial_No        = CommonUtility.GetStringValue(row["Serial_No"]);
                    sl.User             = CommonUtility.GetStringValue(row["User"]);
                    sl.pumpID           = CommonUtility.GetByteValue(row["pumpID"]);
                    sl.PositionID       = CommonUtility.GetByteValue(row["PositionID"]);
                    sl.GradeID          = CommonUtility.GetByteValue(row["GradeID"]);
                    sl.Gift_Certificate = CommonUtility.GetBooleanValue(row["Gift_Cert"]);
                    sl.Gift_Num         = CommonUtility.GetStringValue(row["GC_Num"]);
                    sale.TillNumber     = (byte)tillNumber;
                    sl.ManualFuel       = CommonUtility.GetBooleanValue(row["ManualFuel"]);

                    sl.IsTaxExemptItem = CommonUtility.GetBooleanValue(row["TaxExempt"]);

                    var strPromo = CommonUtility.GetStringValue(row["PromoID"]);
                    if (!string.IsNullOrEmpty(strPromo))
                    {
                        sl.PromoID = strPromo;
                    }
                    sl.Upsell       = CommonUtility.GetBooleanValue(row["Upsell"]);
                    sl.ScalableItem = CommonUtility.GetBooleanValue(row["ScalableItem"]);
                    DataTable uReason;
                    if (shareSusp)
                    {
                        uReason =
                            GetRecords(
                                "select * from SusReas  WHERE SALE_NO=" + Convert.ToString(saleNumber) +
                                " AND LINE_Num = " + ln + " ORDER BY SusReas.Line_Num", DataSource.CSCTills);
                    }
                    else
                    {
                        uReason =
                            GetRecords(
                                "select * from SusReas where TILL_NUM=" + tillNumber + " AND SALE_NO=" +
                                Convert.ToString(saleNumber) + " AND LINE_Num = " + ln +
                                " ORDER BY SusReas.Line_Num", DataSource.CSCTills);
                    }
                    var returnReason = new Return_Reason();

                    foreach (DataRow dataRow in uReason.Rows)
                    {
                        if (CommonUtility.GetStringValue(dataRow["Reason"]) != "" &
                            CommonUtility.GetStringValue(dataRow["Reason_Type"]) != "")
                        {
                            returnReason.Reason = CommonUtility.GetStringValue(dataRow["Reason"]);
                            returnReason.RType  = CommonUtility.GetStringValue(dataRow["Reason_Type"]);
                        }
                        sl.Return_Reasons.Add(returnReason.Reason, returnReason.RType, ln.ToString());
                    }
                    sale.Sale_Lines.AddLine(ln, sl, "");
                }
                _performancelog.Debug($"End,SuspendedSaleService,GetSuspendedSale,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

                return(sale);
            }
            _performancelog.Debug($"End,SuspendedSaleService,GetSuspendedSale,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");

            return(new Sale());
        }
示例#15
0
        /// <summary>
        /// Get the list of tills
        /// </summary>
        /// <param name="posId">Pos id</param>
        /// <param name="tillNumber">Till number</param>
        /// <param name="shiftDate">Shift date</param>
        /// <param name="userCode">User code</param>
        /// <param name="active">Is active or not</param>
        /// <param name="process">Is processing or not</param>
        /// <returns>Tills</returns>
        public List <Till> GetTills(int?posId, int?tillNumber, DateTime?shiftDate,
                                    string userCode, int?active, int?process)
        {
            var dateStart = DateTime.Now;

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

            var    whereClause = new StringBuilder();
            string query;

            if (posId.HasValue)
            {
                whereClause.Append($" AND POSID={posId.Value}");
            }

            if (tillNumber.HasValue)
            {
                whereClause.Append($" AND TILL_NUM={tillNumber.Value} ");
            }

            if (shiftDate.HasValue)
            {
                whereClause.Append($" AND ShiftDate={shiftDate.Value}");
            }

            if (!string.IsNullOrEmpty(userCode))
            {
                whereClause.Append($" AND UserLoggedOn='{userCode}'");
            }
            if (active.HasValue)
            {
                whereClause.Append($" AND ACTIVE={active.Value}");
            }
            if (process.HasValue)
            {
                whereClause.Append($" AND PROCESS={process.Value}");
            }
            if (whereClause.Length != 0)
            {
                var condition = whereClause.ToString().Substring(5, whereClause.Length - 5);
                query = $"Select * from Tills where {condition}";
            }
            else
            {
                query = "Select * from Tills";
            }
            var sTills = GetRecords(query, 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,GetTills,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}");
            return(tills);
        }