public InvoiceFormsGenerationContext(ILog log, IInvoiceFormsRepository invoiceFormsRepository, int collectionId, IBatchPriceBulkProvider batchPriceBulkProvider) { m_log = log; m_invoiceFormsRepository = invoiceFormsRepository; m_collectionId = collectionId; m_batchPriceBulkProvider = batchPriceBulkProvider; }
public BatchPrice GetBatchPrice(IMaterialBatch batch, IBatchPriceBulkProvider provider) { var compos = provider.GetBatchPriceComponents(batch.Id); var bp = new BatchPrice(batch); foreach (var c in compos) { bp.AddComponent(c.IsWarning, c.SourceBatchId, c.Text, c.RawValue); } return(bp); }
public Tuple <decimal, BatchPrice> GetPriceOfAmount(IMaterialBatch batch, Amount amount, IBatchPriceBulkProvider provider) { var batchPrice = GetBatchPrice(batch, provider); var totalAmount = m_conversionHelper.ConvertAmount(new Amount(batchPrice.Batch.Volume, m_unitRepository.GetUnit(batchPrice.Batch.UnitId)), amount.Unit.Id); var pricePerUnit = batchPrice.TotalPriceInPrimaryCurrency / totalAmount.Value; return(new Tuple <decimal, BatchPrice>(pricePerUnit * amount.Value, batchPrice)); }