public Task UpdateAsync(
     StockConsumption consumption,
     Dictionary <string, string> headers = default,
     CancellationToken ct = default)
 {
     return(_factory.PatchAsync(_host + "/Stock/Consumptions/v1/Update", null, consumption, headers, ct));
 }
Ejemplo n.º 2
0
        public async Task <ActionResult <Guid> > Create(StockConsumption consumption, CancellationToken ct = default)
        {
            consumption.AccountId = _userContext.AccountId;

            var id = await _stockConsumptionsService.CreateAsync(_userContext.UserId, consumption, ct);

            return(Created(nameof(Get), id));
        }
Ejemplo n.º 3
0
 public StockConsumptionBuilder(
     IDefaultRequestHeadersService defaultRequestHeadersService,
     IStockConsumptionsClient consumptionsClient)
 {
     _consumptionsClient           = consumptionsClient;
     _defaultRequestHeadersService = defaultRequestHeadersService;
     _consumption = new StockConsumption
     {
         Id        = Guid.NewGuid(),
         Type      = StockConsumptionType.SaleToCustomer,
         IsDeleted = false
     };
 }
Ejemplo n.º 4
0
        public async Task <ActionResult> Update(StockConsumption consumption, CancellationToken ct = default)
        {
            var oldConsumption = await _stockConsumptionsService.GetAsync(consumption.Id, true, ct);

            if (oldConsumption == null)
            {
                return(NotFound(consumption.Id));
            }

            return(await ActionIfAllowed(
                       () => _stockConsumptionsService.UpdateAsync(_userContext.UserId, oldConsumption, consumption, ct),
                       Roles.Stock,
                       oldConsumption.AccountId));
        }
        public static StockConsumptionChange CreateWithLog(
            this StockConsumption consumption,
            Guid userId,
            Action <StockConsumption> action)
        {
            action(consumption);

            return(new StockConsumptionChange
            {
                StockConsumptionId = consumption.Id,
                ChangerUserId = userId,
                CreateDateTime = DateTime.UtcNow,
                OldValueJson = string.Empty,
                NewValueJson = consumption.ToJsonString()
            });
        }
Ejemplo n.º 6
0
 public static bool FilterByAdditional(
     this StockConsumption consumption,
     StockConsumptionGetPagedListRequest request)
 {
     return((request.Types == null || !request.Types.Any() ||
             request.Types.Any(x => TypesPredicate(consumption, x))) &&
            (request.CreateUserIds == null || !request.CreateUserIds.Any() ||
             request.CreateUserIds.Any(x => CreateUserIdsPredicate(consumption, x))) &&
            (request.SupplierIds == null || !request.SupplierIds.Any() ||
             request.SupplierIds.Any(x => SupplierIdsPredicate(consumption, x))) &&
            (request.OrderIds == null || !request.OrderIds.Any() ||
             request.OrderIds.Any(x => OrderIdsPredicate(consumption, x))) &&
            (request.InventoryIds == null || !request.InventoryIds.Any() ||
             request.InventoryIds.Any(x => InventoryIdsPredicate(consumption, x))) &&
            (request.ItemsRoomIds == null || !request.ItemsRoomIds.Any() ||
             request.ItemsRoomIds.Any(x => ItemsRoomIdsPredicate(consumption, x))) &&
            (request.ItemsProductIds == null || !request.ItemsProductIds.Any() ||
             request.ItemsProductIds.Any(x => ItemsProductIdsPredicate(consumption, x))));
 }
Ejemplo n.º 7
0
        public async Task UpdateAsync(
            Guid userId,
            StockConsumption oldConsumption,
            StockConsumption newConsumption,
            CancellationToken ct)
        {
            var change = oldConsumption.UpdateWithLog(userId, x =>
            {
                x.AccountId      = newConsumption.AccountId;
                x.Type           = newConsumption.Type;
                x.OrderId        = newConsumption.OrderId;
                x.IsDeleted      = newConsumption.IsDeleted;
                x.ModifyDateTime = DateTime.UtcNow;
                x.Items          = newConsumption.Items.Map(x.Id);
            });

            _storage.Update(oldConsumption);
            await _storage.AddAsync(change, ct);

            await _storage.SaveChangesAsync(ct);
        }
Ejemplo n.º 8
0
        public async Task <Guid> CreateAsync(Guid userId, StockConsumption consumption, CancellationToken ct)
        {
            var newStockConsumption = new StockConsumption();

            var change = newStockConsumption.CreateWithLog(userId, x =>
            {
                x.Id             = consumption.Id;
                x.AccountId      = consumption.AccountId;
                x.CreateUserId   = userId;
                x.Type           = consumption.Type;
                x.OrderId        = consumption.OrderId;
                x.IsDeleted      = consumption.IsDeleted;
                x.CreateDateTime = DateTime.UtcNow;
                x.Items          = consumption.Items.Map(x.Id);
            });

            var entry = await _storage.AddAsync(newStockConsumption, ct);

            await _storage.AddAsync(change, ct);

            await _storage.SaveChangesAsync(ct);

            return(entry.Entity.Id);
        }
Ejemplo n.º 9
0
 private static bool ItemsProductIdsPredicate(StockConsumption consumption, Guid id)
 {
     return(consumption.Items == null || !consumption.Items.Any() ||
            consumption.Items.Any(x => x.ProductId == id));
 }
Ejemplo n.º 10
0
 private static bool CreateUserIdsPredicate(StockConsumption consumption, Guid id)
 {
     return(consumption.CreateUserId == id);
 }
Ejemplo n.º 11
0
 private static bool InventoryIdsPredicate(StockConsumption consumption, Guid id)
 {
     return(consumption.InventoryId == id);
 }
Ejemplo n.º 12
0
 private static bool OrderIdsPredicate(StockConsumption consumption, Guid id)
 {
     return(consumption.OrderId == id);
 }
Ejemplo n.º 13
0
 private static bool TypesPredicate(StockConsumption consumption, StockConsumptionType type)
 {
     return(consumption.Type == type);
 }