public async Task <Result> Billing(OrderBillingRequest request)
        {
            var billing = await _orderBillingRepository.Query().FirstOrDefaultAsync(e => e.OrderId == request.OrderId);

            if (billing != null)
            {
                return(Result.Fail(ResultCodes.RequestParamError, "开票申请已提交,无法重复申请。"));
            }

            var anyOrder = await _orderRepository.Query().AnyAsync(e => e.Id == request.OrderId);

            if (!anyOrder)
            {
                return(Result.Fail(ResultCodes.IdInvalid, "订单不存在"));
            }

            billing = new OrderBilling
            {
                OrderId        = request.OrderId,
                BankAccount    = request.BankAccount,
                BankName       = request.BankName,
                CompanyAddress = request.CompanyAddress,
                Email          = request.Email,
                IsInvoiced     = false,
                TaxNumber      = request.TaxNumber,
                TelePhone      = request.TelePhone,
                Title          = request.Title,
                Createat       = DateTime.Now,
            };

            await _orderBillingRepository.InsertAsync(billing);

            await _adminUserManager.AccountingNotify(new BillingNotify
            {
                Title = request.Title
            });

            return(Result.Ok());
        }
Beispiel #2
0
        private async void Button_Clicked(object sender, EventArgs e)
        {
            activityIndicator.IsVisible = true;

            var    firstname   = first_entry.Text;
            var    lastname    = last_entry.Text;
            var    companyname = company_entry.Text;
            var    country     = country_entry.Text;
            var    address1    = address1_entry.Text;
            var    address2    = address2_entry.Text;
            var    city        = suburb_entry.Text;
            string state       = state_picker.Items[state_picker.SelectedIndex];
            var    postcode    = postcode_entry.Text;
            var    phone       = phone_entry.Text;
            var    email       = email_entry.Text;
            var    note        = note_entry.Text;

            if (String.IsNullOrWhiteSpace(firstname) ||
                String.IsNullOrWhiteSpace(lastname) ||
                String.IsNullOrWhiteSpace(lastname) ||
                String.IsNullOrWhiteSpace(address1) ||
                String.IsNullOrWhiteSpace(city) ||
                String.IsNullOrWhiteSpace(postcode) ||
                String.IsNullOrWhiteSpace(phone) ||
                String.IsNullOrWhiteSpace(email))
            {
                await DisplayAlert("Error", "Please input all the required fields.", "OK");

                activityIndicator.IsVisible = false;
                return;
            }
            content.IsVisible = false;
            if (getways.Count <= 0)
            {
                return;
            }
            var getway = getways[payment_picker.SelectedIndex];

            OrderBilling billing = new OrderBilling
            {
                first_name = firstname,
                last_name  = lastname,
                company    = companyname,
                address_1  = address1,
                address_2  = address2,
                city       = city,
                state      = state,
                postcode   = postcode,
                phone      = phone,
                email      = email
            };

            OrderShipping shipping = new OrderShipping
            {
                first_name = firstname,
                last_name  = lastname,
                company    = companyname,
                address_1  = address1,
                address_2  = address2,
                city       = city,
                state      = state,
                postcode   = postcode
            };


            Order order = new Order
            {
                payment_method       = getway.id,
                payment_method_title = getway.method_title,
                set_paid             = true,
                billing        = billing,
                shipping       = shipping,
                line_items     = lineItemsList,
                shipping_lines = shippingLinesList,
                customer_note  = note
            };

            try
            {
                var response = await App.wc.Order.Add(order);

                await Navigation.PushModalAsync(new CheckoutPage(response));

                await Navigation.PopAsync();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("ERROR {0}", ex.Message);
                activityIndicator.IsVisible = false;
                content.IsVisible           = true;
                await DisplayAlert("Error", "Could not place the order. Please check you input and try again.", "Ok");
            }
        }