예제 #1
0
        public decimal QueryTransactionsTotalCost(QueryTransactionsPreviewRequest queryTransactionsPreviewRequest)
        {
            var operationsQuery = QueryPurchaseOperations();

            if (queryTransactionsPreviewRequest != null && queryTransactionsPreviewRequest.StartDate.HasValue)
            {
                var startDate = queryTransactionsPreviewRequest.StartDate.Value;
                operationsQuery = operationsQuery.Where(m => m.Date >= startDate);
            }

            if (queryTransactionsPreviewRequest != null && queryTransactionsPreviewRequest.EndDate.HasValue)
            {
                var endDate = queryTransactionsPreviewRequest.EndDate.Value;
                operationsQuery = operationsQuery.Where(m => m.Date <= endDate);
            }

            return(operationsQuery.Select(op => op.Cost).Sum());
        }
예제 #2
0
        public TransactionsPreviewResult ReadMaterialPurchasePreview(QueryTransactionsPreviewRequest queryTransactionsPreviewRequest)
        {
            var transactionsRequest = _mapper.Map <QueryTransactionsRequest>(queryTransactionsPreviewRequest);
            var transactions        = _supplyQueryRepository.QueryTransactions(transactionsRequest).ToList();
            var userIds             = transactions.Select(r => r.ResponsibleUserId);
            var userViews           = FetchUsers(userIds);

            foreach (var transaction in transactions)
            {
                transaction.ResponsibleUser = userViews?.Where(uv => uv.UserId == transaction.ResponsibleUserId).FirstOrDefault();
            }

            return(new TransactionsPreviewResult()
            {
                TotalCost = _supplyQueryRepository.QueryTransactionsTotalCost(queryTransactionsPreviewRequest),
                Transactions = transactions.Select(t => new MaterialPurchasePreviewView()
                {
                    Id = t.Id,
                    Description = t.ResponsibleUser.FirstName + " " + t.ResponsibleUser.LastName
                                  + " purchased " + t.Capacity + " " + t.Material.Name + " for " + t.Cost,
                    Cost = t.Cost
                })
            });
        }
예제 #3
0
 public IHttpActionResult GetPreview([FromBody] QueryTransactionsPreviewRequest queryTransactionsPreviewRequest)
 {
     return(ApiOk(_supplyService.ReadMaterialPurchasePreview(queryTransactionsPreviewRequest)));
 }