private BatchReportModel LoadSaleEvents(BatchKey key, int pageNumber) { var events = m_saleEventRepository.GetAllocationsByBatch(key).ToList(); var aggregatedAllocations = new List <SaleEventAllocationModel>(events.Count); foreach (var evt in events) { if (aggregatedAllocations.Any(ag => ag.Populate(evt, m_amountProcessor))) { continue; } var newRecord = new SaleEventAllocationModel(); newRecord.Populate(evt, m_amountProcessor); aggregatedAllocations.Add(newRecord); } var entry = new BatchSaleEventsReportEntry(key); entry.SaleEvents.AddRange(aggregatedAllocations.OrderByDescending(a => a.SortDt)); var result = new BatchReportModel(); result.Report.Add(entry); return(result); }
private BatchReportModel LoadSegments(BatchKey key, int pageNumber) { var segments = m_batchRepository.GetBatches(key).OrderBy(b => b.Created).ToList(); var entry = new BatchSegmentsReportEntry(key); foreach (var b in segments) { entry.Segments.Add(new BatchSegmentModel { SegmentId = b.Id, Amount = new Amount(b.Volume, m_unitRepository.GetUnit(b.UnitId)).ToString(), Author = m_userRepository.GetUserNick(b.AuthorId), Date = StringUtil.FormatDate(b.Created), Price = $"{StringUtil.FormatPrice(b.ProductionWorkPrice ?? 0m)} CZK", HasRecipe = b.RecipeId != null }); } var result = new BatchReportModel(); result.Report.Add(entry); return(result); }
private BatchReportModel LoadOrders(BatchKey key, int ordersPageNumber) { var orders = m_ordersFacade.GetOrdersByUsedBatch(key, c_pageSize, ordersPageNumber).ToList(); var entry = new BatchOrdersReportEntry(key) { CanLoadMoreOrders = orders.Count == c_pageSize, NextOrdersPage = ordersPageNumber + 1 }; foreach (var entity in orders) { entry.Orders.Add(new BatchOrderModel { OrderId = entity.Item1.Id, Customer = entity.Item1.CustomerEmail, OrderNumber = entity.Item1.OrderNumber, PurchaseDate = StringUtil.FormatDateTime(entity.Item1.PurchaseDate), Status = m_orderStatusRepository.Translate(entity.Item1.OrderStatusId), Quantity = StringUtil.FormatDecimal(entity.Item2), IsAllocation = !OrderStatus.IsSent(entity.Item1.OrderStatusId), AllocationHandle = OrderStatus.IsSent(entity.Item1.OrderStatusId) ? null : $"{entity.Item1.Id}|{key.ToString(m_batchFacade)}" }); } var result = new BatchReportModel(); result.Report.Add(entry); return(result); }
public ActionResult GenerateBatchStagesSummatry(BatchReportModel model) { if (ModelState.IsValid) { var dataset = _reportService.BreedingMeasuresFollowUp(model.BatchId, null, DateTime.Today.AbsoluteEnd()); var reportFactory = new ReportFactory(); var parameters = new Dictionary <string, string> { { "BatchId", model.BatchId.ToString() }, { "DateFrom", null }, { "DateTo", null } }; reportFactory.SetPathCompleto(Server.MapPath("~/Reports/BatchStagesSummary.rdl")) .SetDataSource("DataSet1", dataset) .SetParametro(parameters); byte[] archivo = reportFactory.Renderizar(model.ReportType); return(File(archivo, reportFactory.MimeType)); } return(null); }
public ActionResult BatchStagesSummary(BatchReportModel model) { var activeBatches = _batchService.GetAllActiveComplete().OrderBy(b => b.Number).ToList(); ViewBag.BatchesSelectList = new SelectList(activeBatches, "Id", "Name"); return(View(model)); }
private BatchReportModel LoadPriceComponents(BatchKey key, int queryLoadPriceComponentsPage) { var entry = new PriceComponentsReportEntry(key); entry.PriceComponents.AddRange(m_batchFacade.GetPriceComponents(key)); var result = new BatchReportModel(); result.Report.Add(entry); return(result); }
public static void CopyPlotSelection(BatchReportModel oldReport, BatchReportModel newReport) { if (oldReport != null && newReport != null) { foreach (var _plot in oldReport.Plots) { var matchingPlots = newReport.Plots.Where(p => p.Label == _plot.Label); foreach (var _matchingPlot in matchingPlots) { _matchingPlot.Selected = _plot.Selected; } } } }
//TOGGLE FOR TEMPORARY TESTING private void RunBacktestButton_Click(object sender, System.Windows.RoutedEventArgs e) { UnbindInitializationModels(); UnbindReportModels(); _backtest.Clear(); _activityModel.Status = "Backtest started."; var tickDataGroups = BacktestingTickFileControl.GetSelectedFilePaths(); _activityModel.NumberTestsToRun = tickDataGroups.Count; _activityModel.NumberTestsCompleted = 0; foreach (var _tickDataGroup in tickDataGroups) { var _backtestingModel = new BacktestingModel(); _backtestingModel.CacheWait = _backtestingConfigurationModel.CacheWait; var _reportModel = new BatchReportModel(_backtestingModel, _activityModel /*, updatePlots*/); var info = TickFileNameInfo.GetTickFileInfoFromLongName(_tickDataGroup.First()); _reportModel.ReportName = "Y:" + info.Year.ToString() + ",M:" + info.Month.ToString() + ",D:" + info.Day.ToString(); _backtest.AddRun(_backtestingModel, _reportModel); _reportModel.RegisterDispatcher(DispatchableType.Fill, FillsTab.Dispatcher); _reportModel.RegisterDispatcher(DispatchableType.Indicator, IndicatorTab.Dispatcher); _reportModel.RegisterDispatcher(DispatchableType.Message, MessagesTab.Dispatcher); _reportModel.RegisterDispatcher(DispatchableType.Order, OrdersTab.Dispatcher); _reportModel.RegisterDispatcher(DispatchableType.Plot, BacktestPlotter.Dispatcher); _reportModel.RegisterDispatcher(DispatchableType.Position, PositionTab.Dispatcher); BindInitializationModels(); _backtestingModel.LoadResponse(_backtestingConfigurationModel.GetFreshResponseInstance()); _backtestingModel.LoadTickData(_tickDataGroup); _backtestingModel.Play(_backtestingConfigurationModel.SelectedPlayToValue); } Task.Factory.StartNew(() => { _activityModel.AllRunsCompleted.WaitOne(); if (_backtest.BacktestReports.Any()) { _backtest.SelectedReport = _backtest.BacktestReports.First(); BindStatisticsModels("Results"); } }); }
public BatchReportModel QueryBatches(BatchReportQuery query) { if (query.LoadOrdersPage != null) { return(LoadOrders(query.ToKey(), query.LoadOrdersPage.Value)); } else if (query.LoadSaleEventsPage != null) { return(LoadSaleEvents(query.ToKey(), query.LoadSaleEventsPage.Value)); } else if (query.LoadSegmentsPage != null) { return(LoadSegments(query.ToKey(), query.LoadSegmentsPage.Value)); } else if (query.LoadPriceComponentsPage != null) { return(LoadPriceComponents(query.ToKey(), query.LoadPriceComponentsPage.Value)); } var pageSize = query.HasKey ? 1 : c_pageSize; var pageNumber = query.HasKey ? 0 : query.PageNumber; IPurchaseOrder order = null; if (query.RelativeToOrderId != null) { order = m_orderRepository.GetOrder(query.RelativeToOrderId.Value); if (order == null) { throw new InvalidOperationException("Invalid entity reference"); } pageSize = 1000; pageNumber = 0; } var sql = m_database.Sql().Call("LoadBatchesReport") .WithParam("@projectId", m_session.Project.Id) .WithParam("@pageSize", pageSize) .WithParam("@pageNumber", pageNumber) .WithParam("@batchId", query.HasKey ? query.ToKey().UnsafeToString() : null) .WithParam("@materialId", query.MaterialId) .WithParam("@orderNumber", ToProperNull(query.OrderNumber)) .WithParam("@batchNumber", ToProperNull(query.BatchNumberQuery?.Replace("*", "%"))) .WithParam("@dtFrom", query.From) .WithParam("@dtTo", query.To) .WithParam("@closed", query.ClosedBatches) .WithParam("@locked", query.LockedBatches) .WithParam("@inventoryTypeId", query.InventoryTypeId) .WithParam("@onlyProduced", query.ProducedOnly) .WithParam("@onlyBought", query.PurchasedOnly) .WithParam("@compositionId", query.CompositionId) .WithParam("@componentId", query.ComponentId) .WithParam("@orderId", query.RelativeToOrderId) .WithParam("@onlyBlocking", query.BlockedBatchesOnly) .WithParam("@segmentId", query.SegmentId) .WithParam("@invoiceNr", ToProperNull(query.InvoiceNr)); var result = new BatchReportModel { Query = query }; var rawEntries = sql.MapRows(MapEntry); result.Report.AddRange(rawEntries); result.CanLoadMore = (result.Report.Count == c_pageSize); foreach (var b in result.Report.OfType <BatchReportEntry>()) { var material = m_materialRepository.GetMaterialById(b.MaterialId); if (b.IsClosed) { b.AvailableAmount = "0"; } else { /* * var available = m_batchFacade.GetAvailableAmount(b.BatchKey); * b.AvailableAmount = $"{StringUtil.FormatDecimal(available.Value)} {available.Unit.Symbol}"; * b.Available = available; */ var available = new Amount(b.AvailableAmountValue, m_unitRepository.GetUnit(b.AvailableAmountUnitId)); available = m_amountProcessor.Convert(available, material.NominalUnit); b.AvailableAmount = $"{StringUtil.FormatDecimal(available.Value)} {available.Unit.Symbol}"; b.Available = available; } var totalUnit = m_unitRepository.GetUnitBySymbol(b.TotalAmountUnitName); var totalAmount = new Amount(b.TotalAmountValue, totalUnit); totalAmount = m_amountProcessor.Convert(totalAmount, material.NominalUnit); b.BatchVolume = $"{StringUtil.FormatDecimal(totalAmount.Value)} {totalAmount.Unit.Symbol}"; //b.NoDelReason = m_batchFacade.GetDeletionBlockReasons(b.BatchId).FirstOrDefault(); b.CanDelete = !(b.HasStockEvents || b.NumberOfCompositions > 0 || b.NumberOfOrders > 0 || b.NumberOfSaleEvents > 0); if (b.HasStockEvents) { PopulateStockEventCounts(b); } PopulateStockEventSuggestions(b); } if ((query.HasKey) && (result.Report.Count == 0)) { result.Report.Add(new DeletedBatchReportEntry(query.ToKey())); return(result); } if (query.CompositionId != null) { PopulateComponentAmounts(BatchKey.Parse(query.CompositionId), result.Report); result.CustomField1Name = "Použito"; } else if (query.ComponentId != null) { PopulateCompositionAmounts(BatchKey.Parse(query.ComponentId), result.Report); result.CustomField1Name = "Použito"; } else if (query.RelativeToOrderId != null) { result.Report = PopulateRelativeToOrder(order, result.Report); result.CustomField1Name = "Množství"; result.CustomField3Name = "Položka"; result.CustomField2Name = "Balil"; } return(result); }
public void AddRun(BacktestingModel testModel, BatchReportModel reportModel) { _backtestModels.Add(testModel); _backtestReports.Add(reportModel); }