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)); }
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)); }