示例#1
0
        public WarehouseHistoryRecordDto Add(int userId, int warehouseId, WarehouseInOutHistoryRecordFormDto warehouseInOutHistoryRecordFormDto)
        {
            var warehouse = _warehouseRepository.GetById(warehouseId);

            if (warehouse == null)
            {
                return(null);
            }

            var warehouseInOutHistoryRecord = _mapper.Map <WarehouseHistoryRecord>(warehouseInOutHistoryRecordFormDto);

            warehouseInOutHistoryRecord.CreatedById = userId;

            var validateResult = warehouse.IsWarehouseInOutHistoryValid(warehouseInOutHistoryRecord);

            if (!validateResult)
            {
                return(null);
            }

            warehouse.Add(warehouseInOutHistoryRecord);
            _unitOfWork.Complete();

            warehouseInOutHistoryRecord = _warehouseInOutHistoryRepository.GetById(warehouseInOutHistoryRecord.Id);

            return(_mapper.Map <WarehouseHistoryRecordDto>(warehouseInOutHistoryRecord));
        }
示例#2
0
        public WarehouseHistoryRecordDto Delete(int warehouseId,
                                                WarehouseInOutHistoryRecordFormDto warehouseInOutHistoryRecordFormDto)
        {
            var warehouse = _warehouseRepository.GetById(warehouseId);

            if (warehouse == null)
            {
                return(null);
            }

            var warehouseInOutHistoryRecord = _mapper.Map <WarehouseHistoryRecord>(warehouseInOutHistoryRecordFormDto);

            var resultOfValidate = warehouse.IsWarehouseInOutHistoryValid(warehouseInOutHistoryRecord);

            if (!resultOfValidate)
            {
                return(null);
            }

            var isReleaseAllowed = warehouse.IsWarehouseReceptionAllowed(warehouseInOutHistoryRecord);

            if (!isReleaseAllowed)
            {
                return(null);
            }

            if (warehouseInOutHistoryRecordFormDto.OrderId.HasValue)
            {
                var order = _orderRepository.GetById(warehouseInOutHistoryRecordFormDto.OrderId.Value);

                if (order == null)
                {
                    return(null);
                }

                if (order.OrderStatus == OrderStatus.Active)
                {
                    order.ChangeStatus(OrderStatus.ActivePartiallyReleased);
                }
            }

            warehouse.Add(warehouseInOutHistoryRecord);

            _unitOfWork.Complete();

            warehouseInOutHistoryRecord = _warehouseInOutHistoryRepository.GetById(warehouseInOutHistoryRecord.Id);

            return(_mapper.Map <WarehouseHistoryRecordDto>(warehouseInOutHistoryRecord));
        }
        public IActionResult AddHistoryRecord(int warehouseId, [FromBody] WarehouseInOutHistoryRecordFormDto warehouseInOutHistoryRecordFormDto)
        {
            var userId = _userManager.GetUserIdAsInt(User);

            if (warehouseInOutHistoryRecordFormDto.Amount > 0)
            {
                var addedWarehouseInOutHistoryRecordDto =
                    _warehouseInOutHistoryService.Add(userId, warehouseId, warehouseInOutHistoryRecordFormDto);

                return(addedWarehouseInOutHistoryRecordDto == null
                    ? (IActionResult)StatusCode(StatusCodes.Status400BadRequest)
                    : StatusCode(StatusCodes.Status200OK, addedWarehouseInOutHistoryRecordDto));
            }

            var deletedWarehouseInOutHistoryRecordDto =
                _warehouseInOutHistoryService.Delete(warehouseId, warehouseInOutHistoryRecordFormDto);

            return(deletedWarehouseInOutHistoryRecordDto == null
                ? (IActionResult)StatusCode(StatusCodes.Status400BadRequest)
                : StatusCode(StatusCodes.Status200OK, deletedWarehouseInOutHistoryRecordDto));
        }