예제 #1
0
        public async Task UpdateOrderItem(UpdateOrderItem model, int corpClientId)
        {
            var item = await orderItemApp.Get(model.OrderItemId, corpClientId);

            var prod = await productApp.Get(corpClientId, model.ProductId);

            model.ProductPrice = item.ProductPrice;
            var units = await measureUnitApp.GetAll();

            var pType = units.FirstOrDefault(u => u.MeasureUnitId == prod.MeasureUnitId).MeasureUnitTypeId;
            var qType = units.FirstOrDefault(u => u.MeasureUnitId == model.MeasureUnitId).MeasureUnitTypeId;

            if (model.OrderItemStatusId == OrderItemStatusEnum.Cancelado)
            {
                model.Cost   = null;
                model.Profit = null;
            }
            else
            {
                await CalculateItem(model, prod.MeasureUnitId, pType, qType, corpClientId);
            }

            await orderItemApp.Update(model, corpClientId);

            var nextStatus = await GetNextOrderStatus(item.Order.OrderNumber, corpClientId);

            await orderApp.ChangeStatus(new UpdateOrderStatus
            {
                OrderNumber   = item.Order.OrderNumber,
                OrderStatusId = nextStatus
            }, corpClientId);
        }
예제 #2
0
 public async Task Update(UpdateOrderItem model, int corpClientId)
 {
     var data = await context.OrderItems
           .Where(i => i.OrderItemId == model.OrderItemId && i.Order.Customer.CorpClientId == corpClientId)
           .FirstOrDefaultAsync();
     if (model.OrderItemStatusId != data.OrderItemStatusId)
         data.LastStatusDate = DateTimeOffset.UtcNow;
     data.MeasureUnitId = model.MeasureUnitId;
     data.Quantity = model.Quantity;
     data.Discount = model.Discount;
     data.AdditionalInfo = model.AdditionalInfo;
     data.OrderItemStatusId = model.OrderItemStatusId;
     data.OriginalPrice = model.OriginalPrice;
     data.PriceAfterDiscount = model.PriceAfterDiscount;
     data.Cost = model.Cost;
     data.Profit = model.Profit;
     data.ProfitPercentage = model.ProfitPercentage;
     context.OrderItems.Update(data);
     await context.SaveChangesAsync();
 }
예제 #3
0
 public async Task Update(UpdateOrderItem model, int corpClientId)
 {
     await repository.Update(model, corpClientId);
 }
예제 #4
0
        public async Task <ActionResult> UpdateItem(UpdateOrderItem model)
        {
            await service.UpdateOrderItem(model, UserData.CorpClientId.Value);

            return(Ok());
        }