public IActionResult CreateNewWorkWorder([FromBody] NewWorkOrderDto newWork)
        {
            if (newWork == null)
            {
                return(StatusCode(400));
            }

            if (!ModelState.IsValid)
            {
                return(new InvalidInputResponse(ModelState));
            }

            var employee = _employeeQuery.GetEmployeeById(newWork.OrderedBy);

            if (employee == null)
            {
                return(StatusCode(404, "Employee Record Not Found"));
            }

            if (newWork.PurchaseOrderItemId != 0)
            {
                var salesOrder = _salesQuery.GetSalesOrderItemById((uint)newWork.PurchaseOrderItemId);
                if (salesOrder == null)
                {
                    return(StatusCode(404, $"Sales Order with id {newWork.PurchaseOrderItemId} Not Found"));
                }

                if (_query.saleOrderProductionExits((uint)newWork.PurchaseOrderItemId))
                {
                    ModelState.AddModelError("PurchaseOrderId", $"Sale Order With Id : {newWork.PurchaseOrderItemId} already has a manufacturing Order");
                    return(new InvalidInputResponse(ModelState));
                }

                newWork.Quantity = (newWork.Quantity > salesOrder.Quantity) ? salesOrder.Quantity : newWork.Quantity;
            }

            var workorder = _factory.CreateNewWorkOrder(newWork);

            var result = _command.CreateNewWorkOrder(workorder);

            if (result != null)
            {
                var workOrderView = _factory.CreateWorkOrderView(result);
                return(StatusCode(201, workOrderView));
            }
            else
            {
                return(StatusCode(500, "Server error Try Again"));
            }
        }
Пример #2
0
        public NewWorkOrderDto CreateCustomerOrderDto(uint customerOrderId, uint itemId, uint quantity, DateTime startDate, DateTime endDate, uint bookedBy, string description = "")
        {
            NewWorkOrderDto work = new NewWorkOrderDto()
            {
                PurchaseOrderItemId = customerOrderId,
                OrderedBy           = bookedBy,
                ItemId   = itemId,
                Quantity = quantity,
                DueDate  = endDate,
                Start    = startDate
            };

            if (description.Trim() != "")
            {
                work.Description = description.Trim();
            }
            return(work);
        }
Пример #3
0
        public ProductionOrderList CreateNewWorkOrder(NewWorkOrderDto newOrder)
        {
            try {
                ProductionOrderList productionOrder = new ProductionOrderList()
                {
                    Description = newOrder.Description,
                    OrderedBy   = newOrder.OrderedBy,
                    ItemId      = newOrder.ItemId,
                    Quantity    = newOrder.Quantity,
                    DueDate     = newOrder.DueDate,
                    Start       = newOrder.Start
                };

/*
 *              if (newOrder.PurchaseOrderItemId != 0) {
 *                  productionOrder.CustomerOrderItemId = newOrder.PurchaseOrderItemId;
 *              } */

                return(productionOrder);
            } catch (Exception) {
                return(null);
            }
        }