public async Task Excute(RegisterDeliveryInput _input)
        {
            if (_input == null)
            {
                _outputHandler.Error("Input is null.");
                return;
            }

            var delivery = new Delivery()
            {
                OrderId     = _input.OrderId,
                DriverId    = _input.DriverId,
                StartPlace  = _input.StartPlace,
                FinishPlace = _input.FinishPlace
            };
            await _parcelRepository.SetWeight(_input.OrderId, _input.Weight);

            await _deliveryRepository.AddDelivery(delivery);

            var order          = _orderRepository.GetOrderById(_input.OrderId);
            var driver         = _driverRepository.GetDriverById(_input.DriverId);
            var deliveryOutput = new RegisterDeliveryOutput(order.Result, driver.Result, _input.StartPlace, _input.FinishPlace);

            _outputHandler.Standard(deliveryOutput);
        }
        public IActionResult PostDelivery([FromBody] DeliveryForOperationsDto deli, int accountId = -1)
        {
            if (deli is null)
            {
                return(BadRequest());
            }
            if (!_arepo.AuthorizeUser(accountId, Permission.EditInventoryDetail))
            {
                return(Unauthorized());
            }

            var(isValid, errors) = deli.Validate();
            if (!isValid)
            {
                return(BadRequest(errors));
            }

            foreach (var item in deli.Shipments)
            {
                (isValid, errors) = item.Validate();
                if (!isValid)
                {
                    return(BadRequest(errors));
                }
                (isValid, errors) = item.ProductDetail.Validate();
                if (!isValid)
                {
                    return(BadRequest(errors));
                }
                if (_prepo.ProductDetailExists(item.ProductDetail.BarCode))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
            }

            var deliToPost = Mapper.Map <Delivery>(deli);

            return(_repo.AddDelivery(deliToPost) ?
                   new StatusCodeResult(StatusCodes.Status201Created) :
                   new StatusCodeResult(StatusCodes.Status500InternalServerError));
        }
Example #3
0
        public ActionResult FinalizeOrder(OrderModel orderdetails)                                                                                   //Finalizowanie zamówienia.
        {
            cart = (Cart)Session["cart"];                                                                                                            //Przypisanie koszyka użytkownika.
            bool AnyValueIsNull = orderdetails.DeliveryDetails.GetType().GetProperties().All(p => p.GetValue(orderdetails.DeliveryDetails) != null); //Sprawdza czy wszystkie dane adresowe zostały uzupełnione.

            if (cart.Products.Count() != 0 && AnyValueIsNull == false)                                                                               //Jeżeli koszyk nie jest pusty i wszystkie dane adresowe zostały uzupełnione.
            {
                int id      = ordersRepository.Orders.Select(x => x.Delivery_ID).DefaultIfEmpty().Max() + 1;                                         //ID nowego zamówienia.
                int user_id = (int)Session["ID_User"];                                                                                               //Przypisanie ID użytkownika.
                ordersRepository.AddOrder(user_id, cart.ComputeTotalValue());                                                                        //Dodanie nowego zamówienia.
                foreach (var item in cart.Products)                                                                                                  //Dla każdego produktu w koszyku.
                {
                    orderDetails = new OrderDetails                                                                                                  //Nowy szczegół zamówienia.
                    {
                        Order_ID   = id,
                        Product_ID = item.ProductID,
                        User_ID    = user_id,
                        Quantity   = item.Quantity,
                        Category   = item.Category
                    };
                    productRepository.SellProduct(orderDetails);              //Usuwanie przedmiotu z magazynu.
                    orderDetailsRepository.AddOrderDetail(orderDetails);      //Dodanie nowego szczegółu zamówienia.
                }
                deliveryRepository.AddDelivery(orderdetails.DeliveryDetails); //Dodanie danych adresowych zamówienia.
                Session["cart"] = new Cart();                                 //Wyczyszczenie koszyka.
                return(View("Success"));                                      //Wygenerowanie widoku potwierdzającego złożenie zamówienia.
            }
            else if (AnyValueIsNull == true)                                  //Jeżeli nie wszystkie wartości zostały uzupełnione.
            {
                orderdetails.Cart = cart;                                     //Przypisanie wartości do modelu
                return(View(orderdetails));                                   //Wygenerowanie widoku z przekazaniem modelu.
            }
            else
            {
                return(RedirectToAction("Index", "Home"));   //W każdym innym przypadku.
            }
        }
Example #4
0
        public HttpResponseMessage Post([FromBody] DeliveryModel deliveryModel)
        {
            try
            {
                //if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.delivery_date))
                //{
                //    var formatter = RequestFormat.JsonFormaterString();
                //    return Request.CreateResponse(HttpStatusCode.OK, new Confirmation { output = "error", msg = "Delivery Date Empty !!" }, formatter);

                //}

                if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.party_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select Party !!"
                    }, formatter));
                }
                if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.requisition_master_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select Requisition No !!"
                    }, formatter));
                }
                if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.from_warehouse_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select From Warehouse !!"
                    }, formatter));
                }
                if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.to_warehouse_id.ToString()))
                {
                    var formatter = RequestFormat.JsonFormaterString();
                    return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                        output = "error", msg = "Please Select To Warehouse !!"
                    }, formatter));
                }
                //if (string.IsNullOrEmpty(deliveryModel.DeliveryMasterData.lot_no))
                //{
                //    var formatter = RequestFormat.JsonFormaterString();
                //    return Request.CreateResponse(HttpStatusCode.OK, new Confirmation { output = "error", msg = "Lot No Empty !!" }, formatter);

                //}
                else
                {
                    var x = deliveryRepository.AddDelivery(deliveryModel);
                    if (x == 1)
                    {
                        var formatter = RequestFormat.JsonFormaterString();
                        return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                            output = "success", msg = "Delivery save successfully"
                        }, formatter));
                    }
                    else if (x == 0)
                    {
                        var formatter = RequestFormat.JsonFormaterString();
                        return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                            output = "error", msg = "IMEI Already Delivered !!!"
                        }, formatter));
                    }
                    else if (x == 3)
                    {
                        var formatter = RequestFormat.JsonFormaterString();
                        return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                            output = "error", msg = "IMEI Scan For Wrong Product Or Color !!!"
                        }, formatter));
                    }
                    else
                    {
                        var formatter = RequestFormat.JsonFormaterString();
                        return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                            output = "error", msg = "IMEI Not Found !!!"
                        }, formatter));
                    }
                }
            }
            catch (Exception ex)
            {
                var formatter = RequestFormat.JsonFormaterString();
                return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation {
                    output = "error", msg = ex.ToString()
                }, formatter));
            }
        }