/// <summary> /// Get Sale lines /// </summary> /// <param name="saleNumber"></param> /// <param name="tillNumber"></param> /// <param name="userCode"></param> /// <returns>List of sale lines</returns> public List <Sale_Line> GetSaleLinesFromDbTemp(int saleNumber, int tillNumber, string userCode) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,SaleLineService,GetSaleLinesFromDbTemp,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}"); var saleLines = new List <Sale_Line>(); var rsLine = GetRecords("SELECT * FROM SaleLine WHERE SaleLine.Sale_No = " + Convert.ToString(saleNumber) + " and SaleLine.Till_Num = " + tillNumber + " ORDER BY SaleLine.Line_Num ", DataSource.CSCCurSale); var rsReason = GetRecords("SELECT * FROM SLineReason WHERE SLineReason.Sale_No = " + Convert.ToString(saleNumber) + " and SLineReason.Till_Num = " + tillNumber + " ORDER BY SLineReason.Line_Num", DataSource.CSCCurSale); short ln = 0; foreach (DataRow lineFields in rsLine.Rows) { ln++; var saleLine = new Sale_Line { PLU_Code = Convert.ToString(lineFields["PLU_Code"]) }; if (saleLine.ProductIsFuel && !saleLine.IsPropane) { saleLine.Regular_Price = Convert.ToDouble(lineFields["price"]); } saleLine.Line_Num = ln; saleLine.User = userCode.ToUpper(); saleLine.Quantity = Convert.ToSingle(lineFields["Quantity"]); saleLine.pumpID = Convert.ToByte(lineFields["pumpID"]); // Nicolette saleLine.PositionID = Convert.ToByte(lineFields["PositionID"]); // Nicolette saleLine.GradeID = Convert.ToByte(lineFields["GradeID"]); // Nicolette saleLine.Gift_Certificate = Convert.ToBoolean(lineFields["Gift_Cert"]); saleLine.Gift_Num = Convert.ToString(lineFields["GC_Num"]); saleLine.Serial_No = Convert.ToString(lineFields["Serial_No"]); saleLine.Stock_Code = CommonUtility.GetStringValue(lineFields["Stock_Code"]); saleLine.Prepay = Convert.ToBoolean(lineFields["Prepay"]); saleLine.Amount = Convert.ToDecimal(lineFields["Amount"]); saleLine.PositionID = Convert.ToByte(lineFields["PositionID"]); saleLine.ManualFuel = Convert.ToBoolean(lineFields["ManualFuel"]); saleLine.IsTaxExemptItem = Convert.ToBoolean(lineFields["TaxExempt"]); saleLine.PaidByCard = Convert.ToByte(DBNull.Value.Equals(lineFields["PaidByCard"]) ? 0 : lineFields["PaidByCard"]); saleLine.Upsell = Convert.ToBoolean(DBNull.Value.Equals(lineFields["Upsell"]) ? false : lineFields["Upsell"]); saleLine.ScalableItem = Convert.ToBoolean(DBNull.Value.Equals(lineFields["ScalableItem"]) ? false : lineFields["ScalableItem"]); if (saleLine.Amount < 0) { saleLine.No_Loading = true; } saleLine.No_Loading = true; // Set this property here, otherwise the stock item is a mess in POS screen and no others properties like description, dept, sub_dept, etc are set saleLine.price = Convert.ToDouble(DBNull.Value.Equals(lineFields["price"]) ? 0 : lineFields["price"]); saleLine.TEPrice = Convert.ToDouble(DBNull.Value.Equals(lineFields["TEPrice"]) ? 0 : lineFields["TEPrice"]); if (saleLine.ScalableItem) { saleLine.Regular_Price = saleLine.price; } saleLine.Quantity = Convert.ToSingle(DBNull.Value.Equals(lineFields["Quantity"]) ? 0 : lineFields["Quantity"]); saleLine.Amount = Convert.ToDecimal(DBNull.Value.Equals(lineFields["Amount"]) ? 0 : lineFields["Amount"]); saleLine.Total_Amount = Convert.ToDecimal(-1 * Convert.ToInt32( DBNull.Value.Equals(lineFields["TOTAL_AMT"]) ? 0 : lineFields["TOTAL_AMT"])); saleLine.Discount_Adjust = Convert.ToDouble(lineFields["Disc_Adj"]); saleLine.Line_Discount = Convert.ToDouble(lineFields["Discount"]); saleLine.Discount_Type = Convert.ToString(lineFields["Disc_Type"]); saleLine.Discount_Code = Convert.ToString(DBNull.Value.Equals(lineFields["Disc_Code"]) ? "" : lineFields["Disc_Code"]); saleLine.Discount_Rate = Convert.ToSingle(lineFields["Disc_Rate"]); saleLine.DiscountName = Convert.ToString(DBNull.Value.Equals(lineFields["DiscountName"]) ? "" : lineFields["DiscountName"]); saleLine.CardProfileID = Convert.ToString(DBNull.Value.Equals(lineFields["CardProfileID"]) ? 0 : lineFields["CardProfileID"]); saleLine.No_Loading = false; // It has to be set back to false, otherwise if the user changes the qty or price in the POS screen after unsuspend, the amount will not be right // Nicolette end var strPromo = Convert.ToString(DBNull.Value.Equals(lineFields["PromoID"]) ? "" : lineFields["PromoID"]); if (strPromo.Length != 0) { saleLine.PromoID = strPromo; // } if (rsReason != null) { foreach (DataRow reasonFields in rsReason.Rows) { if ((int)reasonFields["Line_Num"] == ln) { saleLine.Return_Reasons.Add(Convert.ToString(reasonFields["Reason"]), Convert.ToString(reasonFields["Reason_Type"]), Convert.ToString(reasonFields["Reason_Type"])); } } } else { saleLine.Return_Reasons = new Return_Reasons(); } saleLines.Add(saleLine); } _performancelog.Debug($"End,SaleLineService,GetSaleLinesFromDbTemp,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(saleLines); }
/// <summary> /// Load Store information /// </summary> /// <returns></returns> public Store LoadStoreInfo() { var dateStart = DateTime.Now; _performancelog.Debug($"Start,LoginService,LoadStoreInfo,{string.Empty},{DateTime.Now:hh.mm.ss.ffffff}"); var store = new Store(); var rs = GetRecords("Select * from Setup_C", DataSource.CSCAdmin); if (rs != null && rs.Rows.Count > 0) { var fields = rs.Rows[0]; store.Name = CommonUtility.GetStringValue(fields["Company_Name"]); store.RegName = CommonUtility.GetStringValue(fields["Reg_Name"]); store.RegNum = CommonUtility.GetStringValue(fields["Reg_Num"]); store.SecRegName = CommonUtility.GetStringValue(fields["Sec_Reg_Name"]); store.SecRegNum = CommonUtility.GetStringValue(fields["Sec_Reg_Num"]); store.Language = CommonUtility.GetStringValue(fields["Language"]); // Store.Code is used in till close to set Store field in SaleHead table // With a null value in Store field in SaleHead after the till was closed, DTS package that transfers data from Bo to Ho will fail // BackOffice has this property set, so for tills closed from BO there is no problem store.Code = CommonUtility.GetStringValue(fields["Store"]); store.Address.Street1 = CommonUtility.GetStringValue(fields["Address_1"]); store.Address.Street2 = CommonUtility.GetStringValue(fields["Address_2"]); store.Address.City = CommonUtility.GetStringValue(fields["City"]); store.Address.ProvState = CommonUtility.GetStringValue(fields["Province"]); store.Address.Country = CommonUtility.GetStringValue(fields["Country"]); store.Address.PostalCode = CommonUtility.GetStringValue(fields["Postal_Code"]); store.Address.Phones.Add("Tel", "Phone", "", CommonUtility.GetStringValue(fields["Tel_Num"]), ""); store.Address.Phones.Add("Fax", "Fax", "", CommonUtility.GetStringValue(fields["Fax_Num"]), ""); //"Fax","Fax" } if (!string.IsNullOrEmpty(store.Language)) { rs = GetRecords("Select * From Languages WHERE Languages.Language = \'" + store.Language + "\'", DataSource.CSCMaster); if (rs.Rows.Count != 0) { store.OffSet = CommonUtility.GetShortValue(rs.Rows[0]["OffSet"]); } else { store.OffSet = 0; } } else { store.OffSet = 0; } rs = GetRecords("SELECT * FROM Receipt where ID=\'1\'", DataSource.CSCMaster); if (rs != null && rs.Rows.Count > 0) { var fields = rs.Rows[0]; store.Sale_Footer = CommonUtility.GetStringValue(fields["Sale_Foot"]); store.Refund_Footer = CommonUtility.GetStringValue(fields["Ref_Foot"]); } rs = GetRecords("SELECT * FROM Receipt where ID=\'2\'", DataSource.CSCMaster); if (rs == null || rs.Rows.Count == 0) { return(store); } { var fields = rs.Rows[0]; store.TaxExempt_Footer = CommonUtility.GetStringValue(fields["Sale_Foot"]); } _performancelog.Debug($"End,LoginService,LoadStoreInfo,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(store); }
/// <summary> /// Method to get sale line charges /// </summary> /// <param name="saleNumber">Sale number</param> /// <param name="lineNumber">Line number</param> /// <param name="dataSource">Data source</param> /// <returns>Charges</returns> public Charges GetSaleLineCharges(int saleNumber, int lineNumber, DataSource dataSource) { var rsLineChg = GetRecords("Select * FROM SaleChg WHERE SaleChg.Sale_No = " + Convert.ToString(saleNumber) + " AND " + " SaleChg.Line_No = " + Convert.ToString(lineNumber) + " " + "Order By SaleChg.As_Code ", dataSource); var charges = new Charges(); foreach (DataRow charge in rsLineChg.Rows) { var rsLcTax = GetRecords("Select * FROM ChargeTax WHERE ChargeTax.Sale_No = " + Convert.ToString(saleNumber) + " AND " + " ChargeTax.Line_No = " + Convert.ToString(lineNumber) + " AND " + " ChargeTax.As_Code = \'" + CommonUtility.GetStringValue(charge["As_Code"]) + "\' ", dataSource); // Find any taxes that applied to those charges. var lct = new Charge_Taxes(); foreach (DataRow tax in rsLcTax.Rows) { lct.Add(Convert.ToString(tax["Tax_Name"]), Convert.ToString(tax["Tax_Code"]), Convert.ToSingle(tax["Tax_Rate"]), Convert.ToBoolean(tax["Tax_Included"]), ""); } charges.Add(Convert.ToString(charge["As_Code"]), Convert.ToString(charge["Description"]), Convert.ToSingle(charge["price"]), lct, ""); } return(charges); }
/// <summary> /// Method to get tax exempt sale line /// </summary> /// <param name="saleNumber">Sale number</param> /// <param name="tillNumber">Till number</param> /// <returns>Tax exempt sale lines</returns> public List <TaxExemptSaleLine> GetTaxExemptSaleLines(int saleNumber, int tillNumber) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,TaxService,GetTaxExemptSaleLines,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); var taxExemptSalelines = new List <TaxExemptSaleLine>(); var rsSite = GetRecords( "select * from TaxExemptSaleLine a inner join TaxExemptSaleHead b " + " On a.sale_no = b.sale_No and a.till_num = b.till_num Where a.sale_no =" + Convert.ToString(saleNumber) + " and a.Till_num =" + Convert.ToString(tillNumber), DataSource.CSCTills); foreach (DataRow dataRow in rsSite.Rows) { taxExemptSalelines.Add(new TaxExemptSaleLine { ExemptedTax = CommonUtility.GetIntergerValue(dataRow["ExemptedTax"]), ProductType = (mPrivateGlobals.teProductEnum)Enum.Parse(typeof(mPrivateGlobals.teProductEnum), CommonUtility.GetStringValue(dataRow["ProductType"]), true), CardHolderID = CommonUtility.GetStringValue(dataRow["CardholderID"]) }); } _performancelog.Debug($"End,TaxService,GetTaxExemptSaleLines,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(taxExemptSalelines); }
/// <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); }
/// <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); }
/// <summary> /// Is Tank Exists /// </summary> /// <param name="tankno">Tank number</param> /// <param name="gradeId">Grade id</param> /// <returns>True or false</returns> public bool IsTankExists(byte tankno, int gradeId) { var rstank = GetRecords("Select TankCode from TankInfo where ID = " + CommonUtility.GetStringValue(tankno) + "AND GradeID=" + CommonUtility.GetStringValue(gradeId), DataSource.CSCPump); if (rstank != null && rstank.Rows.Count != 0) { return(true); } return(false); }
/// <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); }
/// <summary> /// Method to affix bar code /// </summary> /// <param name="strBarcode">Bar code</param> /// <param name="cardNumber">Card number</param> /// <param name="validateMode">Validation mode</param> /// <returns>True or false</returns> public bool AffixBarcode(string strBarcode, string cardNumber, byte validateMode) { if (string.IsNullOrEmpty(cardNumber)) { return(false); } _connection = new SqlConnection(GetConnectionString(DataSource.CSCMaster)); if (_connection.State == ConnectionState.Closed) { _connection.Open(); } _dataTable = new DataTable(); _adapter = new SqlDataAdapter("Select * from TaxExemptCardRegistry where BarCode=\'" + strBarcode + "\' " + " OR AltBarCode=\'" + strBarcode + "\'", _connection); _adapter.Fill(_dataTable); if (_dataTable.Rows.Count != 0) { return(false); } //since allow affix bar code based on bar code if (validateMode == 3 | validateMode == 1) { _dataTable = new DataTable(); _adapter = new SqlDataAdapter("select * from TaxExemptCardRegistry where CardNumber=\'" + cardNumber + "\' ", _connection); _adapter.Fill(_dataTable); if (_dataTable.Rows.Count == 0) { return(false); } var rsFields = _dataTable.Rows[0]; if (CommonUtility.GetStringValue(rsFields["Barcode"]) != strBarcode || DBNull.Value.Equals(rsFields["Barcode"])) { rsFields["Barcode"] = strBarcode; rsFields["Updated"] = 1; rsFields["UpdateTime"] = DateTime.Now; SqlCommandBuilder builder = new SqlCommandBuilder(_adapter); _adapter.UpdateCommand = builder.GetUpdateCommand(); _adapter.Update(_dataTable); } } else { _dataTable = new DataTable(); _adapter = new SqlDataAdapter("select * from TaxExemptCardRegistry where AltCardNumber=\'" + cardNumber + "\' ", _connection); _adapter.Fill(_dataTable); if (_dataTable.Rows.Count == 0) { return(false); } var rsFields = _dataTable.Rows[0]; if (CommonUtility.GetStringValue(rsFields["AltBarCode"]) != strBarcode) { rsFields["AltBarCode"] = strBarcode; rsFields["Updated"] = 1; rsFields["UpdateTime"] = DateTime.Now; SqlCommandBuilder builder = new SqlCommandBuilder(_adapter); _adapter.UpdateCommand = builder.GetUpdateCommand(); _adapter.Update(_dataTable); } } _connection.Close(); _adapter?.Dispose(); return(true); }
/// <summary> /// Get Bottle Returns to display on Main Grid /// </summary> /// <param name="startIndex">Start index</param> /// <param name="endIndex">End index</param> /// <returns>List of bottles</returns> public List <BottleReturn> GetBottlesFromDbMaster(int startIndex, int endIndex) { var dt = GetRecords("SELECT * FROM HotButtons WHERE HotButtons.Button > " + (startIndex - 1) + " " + " AND HotButtons.Button <" + (endIndex + 1) + "ORDER BY HotButtons.Button ", DataSource.CSCMaster); var bottleReturns = new List <BottleReturn>(); foreach (DataRow dr in dt.Rows) { var bottleReturn = new BottleReturn { Product = CommonUtility.GetStringValue(dr["Product"]), Image_Url = CommonUtility.GetStringValue(dr["Image_Url"]), Description = $"{CommonUtility.GetStringValue(dr["Description_1"])} {CommonUtility.GetStringValue(dr["Description_2"])}", Price = CommonUtility.GetFloatValue(dr["BottlePrice"]), Quantity = CommonUtility.GetFloatValue(dr["DefaultQty"]) }; bottleReturns.Add(bottleReturn); } return(bottleReturns); }
public void Set_Customer_KickBack_Data(string InputValue, bool isPhoneNumber, string PointCardNumber, ref Sale sale, bool doSwipeCheck = false) { var customer = new Customer(); // ADODB.Recordset rsTemp = default(ADODB.Recordset); if (isPhoneNumber) { var query = GetRecords("SELECT CustomerCardNum, PointCardNum FROM KickBack " + "WHERE PhoneNum=\'" + InputValue.Trim() + "\'", DataSource.CSCMaster); if (query.Rows.Count > 0) { var row = query.Rows[0]; sale.Customer.CustomerCardNum = CommonUtility.GetStringValue(row["CustomerCardNum"]); sale.Customer.PointCardNum = CommonUtility.GetStringValue(row["PointCardNum"]); sale.Customer.PointCardPhone = InputValue.Trim(); sale.Customer.PointCardSwipe = doSwipeCheck ? (isPhoneNumber ? "1" : "2") : "1"; //0-from database based on a swiped GK card, 1-from phone number, 2-swiped WriteUDPData(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt") + "Inside setkickback 45 cardno value" + sale.Customer.PointCardNum); } else { // if the phone number is not in the database, send to Kick Back to validate sale.Customer.CustomerCardNum = null; sale.Customer.PointCardNum = null; sale.Customer.PointCardPhone = InputValue.Trim(); sale.Customer.PointCardSwipe = doSwipeCheck ? (isPhoneNumber ? "1" : "2") : "1"; //0-from database based on a swiped GK card, 1-from phone number, 2-swiped } sale.Customer.PointsCard_AllowRedemption = false; // no redemption for phone number } else { var query = GetRecords("SELECT CustomerCardNum, PhoneNum FROM KickBack " + "WHERE PointCardNum=\'" + PointCardNumber.Trim() + "\'", DataSource.CSCMaster); if (query.Rows.Count > 0) { var row = query.Rows[0]; sale.Customer.CustomerCardNum = CommonUtility.GetStringValue(row["CustomerCardNum"]); sale.Customer.PointCardNum = PointCardNumber.Trim(); sale.Customer.PointCardPhone = CommonUtility.GetStringValue(row["phonenum"]); sale.Customer.PointCardSwipe = doSwipeCheck ? (isPhoneNumber ? "1" : "2") : "1"; //0-from database, 1-from phone number, 2-swiped WriteUDPData(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt") + "Inside setkickback 68 cardno value" + sale.Customer.PointCardNum); } else { // if the phone number is not in the database, send to Kick Back to validate sale.Customer.CustomerCardNum = null; sale.Customer.PointCardNum = PointCardNumber.Trim(); sale.Customer.PointCardPhone = null; sale.Customer.PointCardSwipe = doSwipeCheck ? (isPhoneNumber ? "1" : "2") : "1";//0-from database, 1-from phone number, 2-swiped } // Nicolette May 12, 2009: if Kick Back card is swiped then the system should allow redemption // redemption is also based on the KickBack response (card should be registered, otherwise no redemption allowed) sale.Customer.PointsCard_AllowRedemption = true; WriteUDPData(DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt") + "Inside setkickback 82 cardno value" + sale.Customer.PointCardNum); } }
/// <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()); }
/// <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); }
/// <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> /// Get Dip Input values /// </summary> /// <returns>List of dip input</returns> public List <DipInput> GetDipInputValues() { List <DipInput> dipInputs = new List <DipInput>(); var strDate = DateAndTime.Year(DateAndTime.Today) + Strings.Right("00" + CommonUtility.GetStringValue(DateAndTime.Month(DateAndTime.Today)), 2) + Strings.Right("00" + CommonUtility.GetStringValue(DateAndTime.Day(DateAndTime.Today)), 2); var strSql = "select A.ID, A.GradeID, B.FullName from TankInfo as A INNER JOIN Grade as B ON A.GradeID=B.ID where B.FuelType=\'G\'"; var dt = GetRecords(strSql, DataSource.CSCPump); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { DipInput input = new DipInput { TankId = CommonUtility.GetStringValue(dr["ID"]), Grade = CommonUtility.GetStringValue(dr["FullName"]), GradeId = CommonUtility.GetStringValue(dr["GradeID"]) }; string query = "select * from DipInput where TankID=" + CommonUtility.GetStringValue(dr["ID"]) + " and CONVERT(char(8), DipDate, 112)=\'" + strDate + "\'"; var rsDip = GetRecords(query, DataSource.CSCTrans); if (rsDip == null || rsDip.Rows.Count == 0) { input.DipValue = ""; } else { input.DipValue = CommonUtility.GetStringValue(rsDip.Rows[0]["DipValue"]); } dipInputs.Add(input); } } return(dipInputs); }
/// <summary> /// Checks whether correction is allowed /// </summary> /// <param name="saleNumber">Sale number</param> /// <returns>True or false</returns> public bool IsAllowCorrection(int saleNumber) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,ReturnSaleService,IsAllowCorrection,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); //#: we have a transaction processed. We want to do void of it. After voiding the original transaction shouldn’t be available for another void. var strSql = "Select SALE_NO From VoidSale Where Sale_No = " + Convert.ToString(saleNumber) + " OR Void_No = " + Convert.ToString(saleNumber); var rsTmp = GetRecords(strSql, DataSource.CSCTrans); if (rsTmp == null || rsTmp.Rows.Count == 0) { rsTmp = GetRecords(strSql, DataSource.CSCTills); } if (rsTmp != null && rsTmp.Rows.Count != 0) { return(false); } strSql = "Select TENDCLAS From SaleTend Where Sale_No = " + Convert.ToString(saleNumber) + " AND AMTTEND<>0"; rsTmp = GetRecords(strSql, DataSource.CSCTrans); if (rsTmp == null || rsTmp.Rows.Count == 0) { rsTmp = GetRecords(strSql, DataSource.CSCTills); } if (rsTmp == null || rsTmp.Rows.Count == 0) { return(false); } if (rsTmp.Rows.Count != 1) { return(false); } var fields = rsTmp.Rows[0]; if (CommonUtility.GetStringValue(fields["TENDCLAS"]).ToUpper() != "CRCARD" && CommonUtility.GetStringValue(fields["TENDCLAS"]).ToUpper() != "DBCARD") { _performancelog.Debug($"End,ReturnSaleService,IsAllowCorrection,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(false); } _performancelog.Debug($"End,ReturnSaleService,IsAllowCorrection,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); return(true); }
/// <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> /// Checks If Sale Exists /// </summary> /// <param name="saleNumber">Sale number</param> /// <param name="saleDate">Sale date</param> /// <param name="isSaleFound">Sale found</param> /// <param name="isReturnable">Sale returnable or not</param> public void IsSaleExist(int saleNumber, DateTime saleDate, out bool isSaleFound, out bool isReturnable) { var dateStart = DateTime.Now; _performancelog.Debug($"Start,ReturnSaleService,IsSaleExist,{string.Empty},{dateStart:hh.mm.ss.ffffff}"); var saleFound = false; isSaleFound = true; isReturnable = true; var strSqlHead = " SELECT * FROM SaleHead Where SaleHead.Sale_No = " + CommonUtility.GetStringValue(saleNumber) + " 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; } } else { saleFound = true; } if (!saleFound) { isSaleFound = false; isReturnable = false; return; } var rsHeadFields = rsHead.Rows[0]; if (saleDate != new DateTime() && CommonUtility.GetDateTimeValue(rsHeadFields["Sale_Date"]) < saleDate) { isReturnable = false; } _performancelog.Debug($"End,ReturnSaleService,IsSaleExist,{DateTime.Now.Subtract(dateStart).TotalMilliseconds},{DateTime.Now:hh.mm.ss.ffffff}"); }
/// <summary> /// Method to load device /// </summary> /// <returns>Device</returns> public Device LoadDevice() { Device device = null; var query = "select max(DeviceID) as MaxID from Device"; var records = GetRecords(query, DataSource.CSCAdmin); if (records.Rows.Count > 0) { var maxId = CommonUtility.GetIntergerValue(records.Rows[0]["MAXID"]); if (maxId > 0) { device = new Device { DeviceName = new string[maxId + 1] }; var rsDevice = GetRecords("select * from Device", DataSource.CSCAdmin); foreach (DataRow row in rsDevice.Rows) { device.DeviceName[CommonUtility.GetIntergerValue(row["DeviceId"])] = CommonUtility.GetStringValue(row["DeviceName"]); string deviceName = CommonUtility.GetStringValue(row["DeviceName"]); switch (Strings.UCase(deviceName)) { case "SCANNER": device.ScannerID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "RECEIPTPRINTER": device.ReceiptPrinterID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "MSR": device.MSRID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "CASHDRAWER": device.CashDrawerID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "CUSTOMERDISPLAY": device.CustomerDisplayID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "REPORTPRINTER": device.ReportPrinterID = CommonUtility.GetByteValue(row["DeviceID"]); break; case "SCALE": device.ScaleID = CommonUtility.GetByteValue(row["DeviceID"]); break; } } } } return(device); }
/// <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 set register info /// </summary> /// <param name="registerNumber">Register number</param> /// <param name="device">Device</param> /// <returns>Register</returns> public Register SetRegisterInfo(short registerNumber, Device device) { var rs = GetRecords("Select * FROM Register WHERE Register.Reg_No = " + Convert.ToString(registerNumber), DataSource.CSCAdmin); if (rs.Rows.Count == 0) { return(null); } var register = new Register { Register_Num = registerNumber }; foreach (DataRow row in rs.Rows) { if (CommonUtility.GetByteValue(row["DeviceID"]) == device.ScannerID) { register.Scanner = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_Scanner = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.Scanner_Name = CommonUtility.GetStringValue(row["DeviceName"]); register.Scanner_Port = CommonUtility.GetStringValue(row["PortNum"]); register.Scanner_Setting = CommonUtility.GetStringValue(row["PortSetting"]); } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.CashDrawerID) { register.Cash_Drawer = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_Cash_Drawer = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.Cash_Drawer_Name = CommonUtility.GetStringValue(row["DeviceName"]); register.Cash_Drawer_Open_Code = CommonUtility.GetShortValue(row["PortNum"]); } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.CustomerDisplayID) { register.Customer_Display = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_Customer_Display = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.Customer_Display_Name = CommonUtility.GetStringValue(row["DeviceName"]); if (CommonUtility.GetStringValue(row["DriverName"]).Length == 0) { register.Customer_Display_Code = 0; } else { register.Customer_Display_Code = (byte)(Conversion.Val(Strings.Left(CommonUtility.GetStringValue(row["DriverName"]), 1))); } register.Customer_Display_Port = CommonUtility.GetByteValue(row["PortNum"]); if (CommonUtility.GetBooleanValue(row["UseOPOS"])) { register.Customer_Display_Len = 20; } } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.ReceiptPrinterID) { register.Receipt_Printer = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_Receipt_Printer = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.ReceiptPrinterName = CommonUtility.GetStringValue(row["DeviceName"]); register.ReceiptDriver = CommonUtility.GetStringValue(row["DriverName"]); } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.ReportPrinterID) { register.Report_Printer = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_Report_Printer = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.Report_Printer_Name = CommonUtility.GetStringValue(row["DeviceName"]); register.Report_Printer_Driver = CommonUtility.GetStringValue(row["DriverName"]); register.Report_Printer_font = CommonUtility.GetStringValue(row["FontName"]); register.Report_Printer_font_size = CommonUtility.GetIntergerValue(row["FontSize"]); } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.MSRID) { register.MSR = CommonUtility.GetBooleanValue(row["Active"]); register.Opos_MSR = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.MSR_Name = CommonUtility.GetStringValue(row["DeviceName"]); } else if (CommonUtility.GetByteValue(row["DeviceID"]) == device.ScaleID) { register.UseScale = CommonUtility.GetBooleanValue(row["Active"]); register.OPOS_Scale = CommonUtility.GetBooleanValue(row["UseOPOS"]); register.SCALE_Name = CommonUtility.GetStringValue(row["DeviceName"]); } } return(register); }
/// <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> /// 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); }