/// <summary> /// Method to make default tax exempt sale line /// </summary> /// <param name="saleLine">Sale line</param> /// <param name="theSystem">Tax exempt system</param> /// <returns>True or false</returns> public bool MakeTaxExemptLine(ref TaxExemptSaleLine saleLine, ref teSystem theSystem) { bool bFound = false; if (!_teSystemManager.TeGetTaxFreePrice(ref theSystem, ref saleLine, ref bFound))// mPrivateGlobals.theSystem.teGetTaxFreePrice(mvarProductKey, mvarOriginalPrice, mvarTaxFreePrice, mvarUnitsPerPkg, mvarProductType, mvarUpcCode, bFound, mvarStockCode, mvarProductCode, mvarTaxExemptRate)) { saleLine.LastError = theSystem.teGetLastError(); return(false); } if (!bFound) { return(false); } if ((saleLine.ProductType == mPrivateGlobals.teProductEnum.eCigarette) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.eCigar) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.eLooseTobacco)) { saleLine.EquvQuantity = float.Parse((saleLine.UnitsPerPkg * saleLine.Quantity).ToString("#0.00")); } // hen else if ((saleLine.ProductType == mPrivateGlobals.teProductEnum.eGasoline) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.eDiesel) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.ePropane) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.emarkedGas) || (saleLine.ProductType == mPrivateGlobals.teProductEnum.emarkedDiesel)) { saleLine.EquvQuantity = float.Parse((saleLine.UnitsPerPkg * saleLine.Quantity).ToString("#0.000")); } saleLine.ExemptedTax = theSystem.RoundToHighCent((saleLine.OriginalPrice - saleLine.TaxFreePrice) * saleLine.Quantity); saleLine.Amount = saleLine.TaxInclPrice - saleLine.ExemptedTax - saleLine.TaxCreditAmount; return(true); }
/// <summary> /// Method to initiliase purchase item /// </summary> /// <param name="purchaseItem">Purchase item</param> /// <param name="oTreatyNo">Treaty number</param> /// <param name="sProductKey">Product key</param> /// <param name="dOriginalPrice">Original price</param> /// <param name="dQuantity">Orginal quantity</param> /// <param name="iRowNumberInSalesMainForm">Row number is sale line</param> /// <param name="invoiceId">Invoice Id</param> /// <param name="tillId">Till Id</param> /// <param name="stockcode">Stock code</param> /// <param name="taxInclPrice">Tax included price</param> /// <param name="isFuelItem">Is fuel item or not</param> /// <param name="noRtvp">RTVP or not</param> /// <returns>True or false</returns> public bool Init(ref tePurchaseItem purchaseItem, ref teTreatyNo oTreatyNo, ref string sProductKey, double dOriginalPrice, double dQuantity, short iRowNumberInSalesMainForm, int invoiceId, short tillId, ref string stockcode, double taxInclPrice, bool isFuelItem, bool noRtvp) { purchaseItem.InvoiceID = invoiceId; purchaseItem.TillID = tillId; if (!_teSystemManager.TeGetTaxFreePrice(ref mPrivateGlobals.theSystem, ref purchaseItem, sProductKey, (float)dOriginalPrice, false, stockcode, "", 0)) { return(false); } if (_policyManager.SITE_RTVAL && !noRtvp) // And Not NoRTVP condition { if (Variables.RTVPService == null) { Variables.RTVPService = new RTVP.POSService.Transaction(); // Writing this to solve the issue of products not getting added in DB in tax exempt sale due to cache loss } purchaseItem.LineItem = Convert.ToInt16(Variables.RTVPService.AddLineItem()); WriteToLogFile("Response is " + Convert.ToString(purchaseItem.LineItem) + " from AddLineItem sent with no parameters"); } purchaseItem.Quantity = (float)dQuantity; // if (isFuelItem) { purchaseItem.PsIsFuelItem = true; purchaseItem.PsGradeStockCode = stockcode; var psGradeId = purchaseItem.PsGradeIDpsTreatyNo; var psTierId = purchaseItem.PsTierID; var psLevelId = purchaseItem.PsLevelID; _teSystemManager.TeExtractFuelKey(ref mPrivateGlobals.theSystem, ref sProductKey, ref psGradeId, ref psTierId, ref psLevelId); purchaseItem.PsGradeIDpsTreatyNo = psGradeId; purchaseItem.PsTierID = psTierId; purchaseItem.PsLevelID = psLevelId; } else { purchaseItem.PsIsFuelItem = false; } purchaseItem.PsProductKey = sProductKey; purchaseItem.PdQuantity = (float)dQuantity; purchaseItem.PiRowInSalesMain = iRowNumberInSalesMainForm; purchaseItem.PetaxInclPrice = (float)dOriginalPrice; purchaseItem.PdOriginalPrice = (float)dOriginalPrice; purchaseItem.PiOverrideCode = -1; purchaseItem.PsOverrideFormNumber = (0).ToString(); purchaseItem.PsOverrideDetails = "Not Set"; purchaseItem.PetaxInclPrice = (float)taxInclPrice; purchaseItem.PsTreatyNo = oTreatyNo; purchaseItem.BIsInit = true; if (!_policyManager.SITE_RTVAL) { purchaseItem.PeIsLimitRequired = _teSystemManager.IsLimitRequired(ref mPrivateGlobals.theSystem, purchaseItem.ProdType); } return(true); }