public async Task CancelOrder(int outputId)
        {
            try
            {
                var outputF = await _outputsService.GetById <Model.Outputs>(outputId);

                var order = await _ordersService.GetById <Model.Orders>(outputF.OrderId);

                OrdersUpsertRequest request = new OrdersUpsertRequest
                {
                    Cancel      = !order.Cancel,
                    Date        = order.Date,
                    OrderNumber = order.OrderNumber,
                    Status      = order.Status,
                    UserId      = order.UserId,
                    Id          = order.Id
                };
                await _ordersService.Update <Model.Orders>(order.Id, request);

                await Application.Current.MainPage.DisplayAlert("Success", "Order is canceled!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Cannot cancel now!", "OK");
            }
        }
Пример #2
0
        private async void btnFinished_Click(object sender, EventArgs e)
        {
            try
            {
                OrdersUpsertRequest request = new OrdersUpsertRequest
                {
                    Date        = _orders.Date,
                    OrderNumber = _orders.OrderNumber,
                    Cancel      = _orders.Cancel,
                    Status      = OrderStatusTypes.Finished.ToString(),
                    UserId      = _orders.UserId,
                    Id          = _orders.Id
                };
                await _ordersService.Update <Model.Orders>(_orders.Id, request);

                txtStatus.Text = OrderStatusTypes.Finished.ToString();
                MessageBox.Show("Edited in Finished Status", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

                OutputsSearchRequest outputsSearch = new OutputsSearchRequest
                {
                    OrderId = _orders.Id
                };
                var output = await _outputsService.Get <List <Model.Outputs> >(outputsSearch);

                OutputsUpsertRequest outputsUpsert = new OutputsUpsertRequest
                {
                    Date            = output.FirstOrDefault().Date,
                    Finished        = true,
                    ReceiveNumber   = output.FirstOrDefault().ReceiveNumber,
                    UserId          = output.FirstOrDefault().UserId,
                    ValueWithoutPdv = output.FirstOrDefault().ValueWithoutPdv,
                    ValueWithPdv    = output.FirstOrDefault().ValueWithPdv,
                    Id      = output.FirstOrDefault().Id,
                    OrderId = _orders.Id
                };
                await _outputsService.Update <Model.Outputs>(output.FirstOrDefault().Id, outputsUpsert);

                this.Close();
            }
            catch
            {
                MessageBox.Show("Proccessing for now...", "Waiting...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
        }
Пример #3
0
        private async void btnWaiting_Click(object sender, EventArgs e)
        {
            try
            {
                OrdersUpsertRequest request = new OrdersUpsertRequest
                {
                    Date        = _orders.Date,
                    OrderNumber = _orders.OrderNumber,
                    Cancel      = _orders.Cancel,
                    Status      = OrderStatusTypes.Waiting.ToString(),
                    UserId      = _orders.UserId,
                    Id          = _orders.Id
                };
                await _ordersService.Update <Model.Orders>(_orders.Id, request);

                MessageBox.Show("Edited in Waiting Status", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtStatus.Text = OrderStatusTypes.Waiting.ToString();
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #4
0
        private async void btnSave_Click(object sender, EventArgs e)
        {
            if (_productsAdd.Count == 0)
            {
                MessageBox.Show("No added products!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                Model.Orders        _order       = new Model.Orders();
                OrdersUpsertRequest orderRequest = new OrdersUpsertRequest
                {
                    Date        = DateTime.Now,
                    OrderNumber = Helper.GenerateString(generatedSize),
                    Status      = OrderStatusTypes.Created.ToString(),
                    Cancel      = false,
                    UserId      = _loggedUser.Id
                };
                try
                {
                    _order = await _ordersService.Insert <Model.Orders>(orderRequest);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                if (_order != null)
                {
                    OutputsUpsertRequest outputsRequest = new OutputsUpsertRequest
                    {
                        Date            = DateTime.Now,
                        OrderId         = _order.Id,
                        Finished        = false,
                        UserId          = _loggedUser.Id,
                        ValueWithoutPdv = 0,
                        ValueWithPdv    = 0,
                        ReceiveNumber   = _order.OrderNumber
                    };
                    try
                    {
                        _outputs = await _outputsService.Insert <Model.Outputs>(outputsRequest);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    await Helper.CalculateInputProductsPrice(_productsAdd);

                    List <OutputProductsUpsertRequest> list = new List <OutputProductsUpsertRequest>();
                    foreach (var item in _productsAdd)
                    {
                        OutputProductsUpsertRequest tmp = new OutputProductsUpsertRequest
                        {
                            OutputId  = _outputs.Id,
                            ProductId = item.ProductId,
                            Price     = item.Price,
                            Quantity  = item.Quantity,
                            Discount  = item.Quantity / 2
                        };
                        if (tmp.Quantity > 100)
                        {
                            tmp.Discount = 50;
                        }
                        if (tmp.Quantity < 20)
                        {
                            tmp.Discount = 0;
                        }
                        try
                        {
                            await _outputProductsService.Insert <Model.OutputProducts>(tmp);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    await CalculateOutputValue();

                    MessageBox.Show("Success", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
        }
        public async Task SaveOrder()
        {
            await AddressLenght();
            await CityLenght();
            await StateLenght();

            var user = await _usersService.GetById <Model.Users>(User.Id);

            UserAddress = await _userAddresssesService.GetById <Model.UserAddresses>(user.UserAddressId);

            UserAddressesUpsertRequest userAddressesUpserRequest = new UserAddressesUpsertRequest
            {
                AddressName = AddressName,
                City        = City,
                Country     = Country,
                Id          = UserAddress.Id
            };

            await _userAddresssesService.Update <Model.UserAddresses>(UserAddress.Id, userAddressesUpserRequest);


            OrdersUpsertRequest ordersUpsertRequest = new OrdersUpsertRequest
            {
                Date        = DateTime.Now,
                Cancel      = false,
                OrderNumber = Helper.GenerateString(19),
                Status      = OrderStatusTypes.Created.ToString(),
                UserId      = User.Id
            };

            try
            {
                var order = await _ordersService.Insert <Model.Orders>(ordersUpsertRequest);

                OutputsUpsertRequest outputsUpsertRequest = new OutputsUpsertRequest
                {
                    Date            = DateTime.Now,
                    UserId          = User.Id,
                    Finished        = false,
                    OrderId         = order.Id,
                    ReceiveNumber   = Helper.GenerateString(19),
                    ValueWithoutPdv = TotalNoPDV,
                    ValueWithPdv    = Total
                };
                var outputs = await _outputsService.Insert <Model.Outputs>(outputsUpsertRequest);

                foreach (var item in ProductsList)
                {
                    OutputProductsUpsertRequest request = new OutputProductsUpsertRequest
                    {
                        ProductId = item.Product.Id,
                        Price     = item.Product.Price,
                        OutputId  = outputs.Id,
                        Quantity  = (int)item.Quantity,
                        Discount  = (item.Quantity / 2)
                    };
                    if (request.Quantity > 100)
                    {
                        request.Discount = 50;
                    }
                    if (request.Quantity < 20)
                    {
                        request.Discount = 0;
                    }
                    await _outputProductsService.Insert <Model.OutputProducts>(request);
                }
                ProductsList.Clear();
                CartService.Cart.Clear();
                await Application.Current.MainPage.DisplayAlert("Success", "Order is sent!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "", "OK");
            }
        }