/// <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 get tax free price /// </summary> /// <param name="oTeSystem">Tax exempt system</param> /// <param name="saleLine">Sale line</param> /// <param name="bFound">Value found</param> /// <returns>True or falses</returns> public bool TeGetTaxFreePrice(ref teSystem oTeSystem, ref TaxExemptSaleLine saleLine, ref bool bFound) { var returnValue = false; string sProductKey = saleLine.ProductKey; float originalPrice = saleLine.OriginalPrice; var dOutPrice = saleLine.TaxFreePrice; var dOutUnitsPerPkg = saleLine.UnitsPerPkg; var eOutCategory = saleLine.ProductType; var sOutUpcCode = saleLine.UpcCode; var stockcode = saleLine.StockCode; var productCode = saleLine.ProductCode; var outTaxExemptRate = saleLine.TaxExemptRate; if (_policyManager.TE_ByRate && _policyManager.TE_Type != "SITE") //sghiny dec15, 2009 { if (TeGetTaxFreePriceByRate(ref sProductKey, originalPrice, ref dOutPrice, ref dOutUnitsPerPkg, ref eOutCategory, ref sOutUpcCode, ref bFound, ref outTaxExemptRate, stockcode, ref productCode)) { returnValue = true; } } else { if (TeGetTaxFreePriceByPrice(ref oTeSystem, ref sProductKey, originalPrice, ref dOutPrice, ref dOutUnitsPerPkg, ref eOutCategory, ref sOutUpcCode, ref bFound, stockcode)) { returnValue = true; } } saleLine.ProductKey = sProductKey; saleLine.OriginalPrice = originalPrice; saleLine.TaxFreePrice = dOutPrice; saleLine.UnitsPerPkg = dOutUnitsPerPkg; saleLine.ProductType = eOutCategory; saleLine.UpcCode = sOutUpcCode; saleLine.StockCode = stockcode; saleLine.ProductCode = productCode; saleLine.TaxExemptRate = outTaxExemptRate; return(returnValue); }
/// <summary> /// Method to load tax exempt for delete preapay /// </summary> /// <param name="taxExemptSale">Tax exempt sale</param> /// <param name="teType">Tax exempt type</param> /// <param name="till">Till</param> /// <param name="user">User</param> /// <param name="sn">Sale number</param> /// <param name="tillId">Till number</param> /// <param name="lineNum">Line number</param> /// <param name="newSaleNo">New sale number</param> /// <returns>True or false</returns> public bool LoadTaxExemptForDeletePrepay(ref TaxExemptSale taxExemptSale, string teType, Till till, User user, int sn, byte tillId, short lineNum, int newSaleNo) { var rsHead = GetRecords("select * from TaxExemptSaleHead " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), DataSource.CSCTills); var rsLine = GetRecords("select * from TaxExemptSaleLine " + " where SALE_NO=" + Convert.ToString(sn) + " AND LINE_NUM=" + Convert.ToString(lineNum) + " AND TILL_NUM=" + Convert.ToString(tillId), DataSource.CSCTills); if (teType == "QITE") { if (rsHead.Rows.Count == 0) { return(false); } } else // { if (rsHead.Rows.Count == 0 || rsLine.Rows.Count == 0) { return(false); } } taxExemptSale = new TaxExemptSale { Sale_Num = newSaleNo, TillNumber = tillId, Shift = Convert.ToInt16(till.Shift), UserCode = Convert.ToString(user.Code), teCardholder = { CardholderID = CommonUtility.GetStringValue(rsHead.Rows[0]["CardholderID"]), Barcode = CommonUtility.GetStringValue(rsHead.Rows[0]["Barcode"]), CardNumber = CommonUtility.GetStringValue(rsHead.Rows[0]["cardnumber"]) } }; //ShinyFeb26,2009- QITE development if (teType == "QITE") { var rsCardHolder = GetRecords("select * from CLIENT " + " where CL_CODE=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster); if (rsCardHolder.Rows.Count != 0) { taxExemptSale.teCardholder.Name = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Cl_Name"]); taxExemptSale.teCardholder.Address = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Add1"]); taxExemptSale.teCardholder.City = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_City"]); taxExemptSale.teCardholder.PlateNumber = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["PlateNumber"]); taxExemptSale.teCardholder.PostalCode = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Postal"]); } // } else // For AITE { var rsCardHolder = GetRecords("select * from TaxExemptCardRegistry " + " where CardholderID=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster); if (rsCardHolder.Rows.Count != 0) { taxExemptSale.teCardholder.Name = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Name"]); taxExemptSale.teCardholder.GasQuota = CommonUtility.GetFloatValue(rsCardHolder.Rows[0]["GasQuota"]); taxExemptSale.teCardholder.PropaneQuota = CommonUtility.GetFloatValue(rsCardHolder.Rows[0]["PropaneQuota"]); taxExemptSale.teCardholder.TobaccoQuota = CommonUtility.GetFloatValue(rsCardHolder.Rows[0]["TobaccoQuota"]); } } if (rsLine.Rows.Count != 0) { foreach (DataRow line in rsLine.Rows) { var mTeLine = new TaxExemptSaleLine { Quantity = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["Quantity"])), UnitsPerPkg = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["UnitQuantity"])), EquvQuantity = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["EquvQuantity"])), OriginalPrice = CommonUtility.GetFloatValue(line["OriginalPrice"]), TaxFreePrice = CommonUtility.GetFloatValue(line["price"]), Line_Num = 1, StockCode = CommonUtility.GetStringValue(line["Stock_Code"]), TaxInclPrice = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["TaxIncludedAmount"])), Amount = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["Amount"])), ExemptedTax = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(line["ExemptedTax"])), Description = CommonUtility.GetStringValue(line["Description"]), ProductCode = CommonUtility.GetStringValue(line["ProductCode"]) }; mPrivateGlobals.teProductEnum productType; Enum.TryParse(CommonUtility.GetStringValue(line["ProductType"]), out productType); mTeLine.ProductType = productType; mTeLine.TaxExemptRate = CommonUtility.GetFloatValue(line["TaxExemptRate"]); bool tempCheckOverLimit = true; var tempCheckQuota = true; taxExemptSale.Add_a_Line(mTeLine, ref tempCheckOverLimit, ref tempCheckQuota); } } taxExemptSale.Amount = CommonUtility.GetFloatValue(-1 * CommonUtility.GetIntergerValue(rsHead.Rows[0]["SaleAmount"])); LoadGstExemptForDeletePrepay(ref taxExemptSale, sn, tillId, DataSource.CSCTills); return(true); }
/// <summary> /// Method to load tax exempt /// </summary> /// <param name="teType">Tax exemption type</param> /// <param name="sn">Sale number</param> /// <param name="tillId">Till Number</param> /// <param name="db">Data base</param> /// <param name="checkQuota">Check Quota or not</param> /// <returns>Tax exempt sale</returns> public TaxExemptSale LoadTaxExempt(string teType, int sn, byte tillId, DataSource db, bool checkQuota = true) { var taxExemptSale = new TaxExemptSale(); if (LoadGstExempt(ref taxExemptSale, sn, tillId, db)) { taxExemptSale.Sale_Num = sn; taxExemptSale.TillNumber = tillId; } var rsHead = GetRecords("select * from TaxExemptSaleHead " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), db); var rsLine = GetRecords("select * from TaxExemptSaleLine " + " where SALE_NO=" + Convert.ToString(sn) + " AND TILL_NUM=" + Convert.ToString(tillId), db); if (teType == "QITE") { if (rsHead.Rows.Count == 0) { return(null); } } else { if (rsHead.Rows.Count == 0 || rsLine.Rows.Count == 0) { return(null); } } var rsHeadField = rsHead.Rows[0]; taxExemptSale.Sale_Num = sn; taxExemptSale.TillNumber = tillId; foreach (DataRow fields in rsLine.Rows) { var mTeLine = new TaxExemptSaleLine { Quantity = CommonUtility.GetFloatValue(fields["Quantity"]), UnitsPerPkg = CommonUtility.GetFloatValue(fields["UnitQuantity"]), EquvQuantity = CommonUtility.GetFloatValue(fields["EquvQuantity"]), OriginalPrice = CommonUtility.GetFloatValue(fields["OriginalPrice"]), TaxFreePrice = CommonUtility.GetFloatValue(fields["price"]), Line_Num = CommonUtility.GetShortValue(fields["Line_Num"]), StockCode = CommonUtility.GetStringValue(fields["Stock_Code"]), TaxInclPrice = CommonUtility.GetFloatValue(fields["TaxIncludedAmount"]), Amount = CommonUtility.GetFloatValue(fields["Amount"]), ExemptedTax = CommonUtility.GetFloatValue(fields["ExemptedTax"]), Description = CommonUtility.GetStringValue(fields["Description"]), ProductCode = CommonUtility.GetStringValue(fields["ProductCode"]) }; mPrivateGlobals.teProductEnum productType; Enum.TryParse(CommonUtility.GetStringValue(fields["ProductType"]), out productType); mTeLine.ProductType = productType; mTeLine.RunningQuota = CommonUtility.GetFloatValue(fields["RunningQuota"]); mTeLine.OverLimit = CommonUtility.GetBooleanValue(fields["OverLimit"]); mTeLine.TaxExemptRate = CommonUtility.GetFloatValue(fields["TaxExemptRate"]); var tempCheckOverLimit = false; taxExemptSale.Add_a_Line(mTeLine, ref tempCheckOverLimit, ref checkQuota); if (!mTeLine.OverLimit) { continue; } switch (mTeLine.ProductType) { case mPrivateGlobals.teProductEnum.eCigarette: case mPrivateGlobals.teProductEnum.eCigar: case mPrivateGlobals.teProductEnum.eLooseTobacco: taxExemptSale.TobaccoOverLimit = true; break; case mPrivateGlobals.teProductEnum.eGasoline: case mPrivateGlobals.teProductEnum.eDiesel: case mPrivateGlobals.teProductEnum.emarkedGas: case mPrivateGlobals.teProductEnum.emarkedDiesel: taxExemptSale.GasOverLimit = true; break; case mPrivateGlobals.teProductEnum.ePropane: taxExemptSale.PropaneOverLimit = true; break; case mPrivateGlobals.teProductEnum.eNone: break; default: throw new ArgumentOutOfRangeException(); } } taxExemptSale.Amount = CommonUtility.GetFloatValue(rsHeadField["SaleAmount"]); taxExemptSale.ShiftDate = CommonUtility.GetDateTimeValue(rsHeadField["ShiftDate"]); taxExemptSale.Sale_Time = CommonUtility.GetDateTimeValue(rsHeadField["SaleTime"]); taxExemptSale.GasReason = CommonUtility.GetStringValue(rsHeadField["GasReason"]); taxExemptSale.GasReasonDesp = CommonUtility.GetStringValue(rsHeadField["GasReasonDesp"]); taxExemptSale.GasReasonDetail = CommonUtility.GetStringValue(rsHeadField["GasReasonDetail"]); taxExemptSale.PropaneReason = CommonUtility.GetStringValue(rsHeadField["PropaneReason"]); taxExemptSale.PropaneReasonDesp = CommonUtility.GetStringValue(rsHeadField["PropaneReasonDesp"]); taxExemptSale.PropaneReasonDetail = CommonUtility.GetStringValue(rsHeadField["PropaneReasonDetail"]); taxExemptSale.TobaccoReason = CommonUtility.GetStringValue(rsHeadField["TobaccoReason"]); taxExemptSale.TobaccoReasonDesp = CommonUtility.GetStringValue(rsHeadField["TobaccoReasonDesp"]); taxExemptSale.TobaccoReasonDetail = CommonUtility.GetStringValue(rsHeadField["TobaccoReasonDetail"]); taxExemptSale.Shift = CommonUtility.GetShortValue(rsHeadField["Shift"]); taxExemptSale.UserCode = CommonUtility.GetStringValue(rsHeadField["User"]); taxExemptSale.teCardholder.CardholderID = CommonUtility.GetStringValue(rsHeadField["CardholderID"]); taxExemptSale.teCardholder.Barcode = CommonUtility.GetStringValue(rsHeadField["Barcode"]); taxExemptSale.teCardholder.CardNumber = CommonUtility.GetStringValue(rsHeadField["cardnumber"]); if (teType == "QITE") { var rsCardHolder = GetRecords("select * from CLIENT " + " where CL_CODE=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster); if (rsCardHolder.Rows.Count > 0) { taxExemptSale.teCardholder.Name = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Cl_Name"]); taxExemptSale.teCardholder.Address = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Add1"]); taxExemptSale.teCardholder.City = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_City"]); taxExemptSale.teCardholder.PlateNumber = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["PlateNumber"]); taxExemptSale.teCardholder.PostalCode = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["CL_Postal"]); } } else // For AITE { var rsCardHolder = GetRecords("select * from TaxExemptCardRegistry " + " where CardholderID=\'" + taxExemptSale.teCardholder.CardholderID + "\'", DataSource.CSCMaster); if (rsCardHolder.Rows.Count > 0) { taxExemptSale.teCardholder.Name = CommonUtility.GetStringValue(rsCardHolder.Rows[0]["Name"]); } } return(taxExemptSale); }