/// <summary> /// Gets tax summary setting. /// </summary> /// <param name="request">The get tax summary setting India data request.</param> /// <returns>Tax summary setting.</returns> private SingleEntityDataServiceResponse <TaxSummarySettingIndia> GetTaxSummarySettingIndia(GetTaxSummarySettingIndiaDataRequest request) { ThrowIf.Null(request, "request"); IndiaTaxL2CacheDataStoreAccessor level2CacheDataAccessor = this.GetIndiaTaxL2CacheDataStoreAccessor(request.RequestContext); bool found; bool updateL2Cache; TaxSummarySettingIndia result = DataManager.GetDataFromCache(() => level2CacheDataAccessor.GetTaxSummarySettingIndia(request.QueryResultSettings.ColumnSet), out found, out updateL2Cache); if (!found) { var query = new SqlPagedQuery(QueryResultSettings.SingleRecord) { Select = request.QueryResultSettings.ColumnSet, From = RetailStoreTableIndiaViewName, Where = "CHANNELID = @channelId", }; query.Parameters["@channelId"] = request.RequestContext.GetPrincipal().ChannelId; using (DatabaseContext databaseContext = new DatabaseContext(request.RequestContext)) { result = databaseContext.ReadEntity <TaxSummarySettingIndia>(query).SingleOrDefault(); } updateL2Cache &= result != null; } if (updateL2Cache) { level2CacheDataAccessor.PutTaxSummarySettingIndia(request.QueryResultSettings.ColumnSet, result); } return(new SingleEntityDataServiceResponse <TaxSummarySettingIndia>(result)); }
/// <summary> /// Populate tax summary for India. /// </summary> /// <param name="salesTransaction">The transaction.</param> /// <param name="taxSummarySettingIndia">Tax summary setting.</param> internal static void PopulateTaxSummaryForIndia(SalesTransaction salesTransaction, TaxSummarySettingIndia taxSummarySettingIndia) { if (salesTransaction == null) { throw new ArgumentNullException("salesTransaction"); } if (taxSummarySettingIndia == null) { throw new ArgumentNullException("taxSummarySettingIndia"); } if (taxSummarySettingIndia.TaxDetailsType == ReceiptTaxDetailsTypeIndia.PerTaxComponent) { IList <TaxLineIndia> indiaTaxItems = new List <TaxLineIndia>(); foreach (SalesLine saleLine in salesTransaction.ActiveSalesLines) { foreach (TaxLine taxLine in saleLine.TaxLines) { TaxLineIndia taxLineIndia = taxLine as TaxLineIndia; if (taxLineIndia != null) { indiaTaxItems.Add(taxLineIndia); } } } if (taxSummarySettingIndia.ShowTaxonTax) { salesTransaction.TaxLines.Clear(); salesTransaction.TaxLines.AddRange(BuildIndiaTaxSummaryPerComponentShowTaxonTax(indiaTaxItems)); } else { salesTransaction.TaxLines.Clear(); salesTransaction.TaxLines.AddRange(BuildIndiaTaxSummaryPerComponentNotShowTaxonTax(indiaTaxItems)); } } else if (taxSummarySettingIndia.TaxDetailsType == ReceiptTaxDetailsTypeIndia.PerLine) { salesTransaction.TaxLines.Clear(); salesTransaction.TaxLines.AddRange(BuildIndiaTaxSummaryPerLine(salesTransaction)); } }