private async void PaymentDetail_Clicked(object sender, EventArgs e)
        {
            Button b = sender as Button;

            if (b != null)
            {
                try
                {
                    WorkOrderResponse workOrder = (WorkOrderResponse)b.CommandParameter;

                    if (workOrder != null)
                    {
                        if (!PageExists(typeof(PaymentPage)))
                        {
                            WorkOrderPaymentDTO payment = await((App)App.Current).GetWorkOrderPayment(workOrder.WorkOrder.WorkOrderId);

                            if (payment.WorkOrderPaymentId > 0)
                            {
                                Navigation.PushAsync(new PaymentPage(workOrder, payment));
                            }
                            else
                            {
                                DisplayAlert("Unpaid", "This work order has not been paid.", "Ok");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }
        }
Example #2
0
        public async Task <WorkOrderResponse> GetWorkOrder(long workOrderId)
        {
            GenericGetRequest request  = new GenericGetRequest("GetWorkOrder", "workOrderId", workOrderId);
            WorkOrderResponse response = await GetRequest <WorkOrderResponse>(request);

            return(response);
        }
Example #3
0
        private void MakePayment(bool saveSuccessful)
        {
            Dispatcher.Invoke(() =>
            {
                MainWindow wnd = Application.Current.MainWindow as MainWindow;

                if (saveSuccessful) // else AddWorkOrder has put a up a msg box
                {
                    WorkOrderResponse wor = new WorkOrderResponse();
                    wor.WorkOrder         = currentWorkOrder.WorkOrder;
                    wor.WorkOrderList     = currentWorkOrder.WorkOrderList;
                    wor.NotInInventory    = currentWorkOrder.NotInInventory;
                    List <GetArrangementResponse> arrangementResponseList = new List <GetArrangementResponse>();
                    foreach (AddArrangementRequest aar in arrangementList)
                    {
                        GetArrangementResponse getArrangement = new GetArrangementResponse();
                        getArrangement.ArrangementList        = aar.ArrangementInventory;
                        getArrangement.NotInInventory         = aar.NotInInventory;
                        arrangementResponseList.Add(getArrangement);
                    }

                    wor.Arrangements = arrangementResponseList;

                    PaymentPage paymentPage = new PaymentPage(wor, Customer);
                    wnd.NavigationStack.Push(paymentPage);
                    wnd.MainContent.Content = new Frame()
                    {
                        Content = paymentPage
                    };
                }
            });
        }
        public async void GetWorkOrderDetail()
        {
            WorkOrderResponse request = new WorkOrderResponse();

            request.WorkOrderList  = currentWorkOrder.WorkOrderList;
            request.NotInInventory = currentWorkOrder.NotInInventory;
            request.Arrangements   = currentWorkOrder.Arrangements;

            ((App)App.Current).PostRequest <WorkOrderResponse, GetWorkOrderSalesDetailResponse>("GetWorkOrderDetail", request).ContinueWith(a => DetailLoaded(a.Result));
        }
Example #5
0
        private void BuyerLoaded(GetPersonResponse response)
        {
            buyer = response.PersonAndAddress;

            WorkOrderResponse request = new WorkOrderResponse();

            request.WorkOrderList  = workOrder.WorkOrderList;
            request.NotInInventory = workOrder.NotInInventory;
            request.Arrangements   = workOrder.Arrangements;

            ((App)App.Current).PostRequest <WorkOrderResponse, GetWorkOrderSalesDetailResponse>("GetWorkOrderDetail", request).ContinueWith(a => WorkOrderDetailLoaded(a.Result));
        }
Example #6
0
        private void WorkOrderPricesLoaded(WorkOrderResponse workOrder, WorkOrderPaymentDTO payment, GetWorkOrderPriceResponse workOrderPriceResponse)
        {
            EmailHelpers emailHelper = new EmailHelpers();

            EOMailMessage mailMessage = new EOMailMessage();

            string emailHtml = emailHelper.ComposeReceipt(workOrder, payment, workOrderPriceResponse);

            mailMessage = new EOMailMessage("*****@*****.**", buyer[0].Person.email, "Elegant Orchids Receipt", emailHtml, "Orchids@5185");

            Email.SendEmail(mailMessage);
        }
        public void ShowInventory_Clicked(object sender, EventArgs e)
        {
            Button b = sender as Button;

            if (b != null)
            {
                long workOrderId = (long)b.CommandParameter;

                if (workOrderId > 0)
                {
                    WorkOrderResponse r = workOrderList.Where(a => a.WorkOrder.WorkOrderId == workOrderId).First();

                    ObservableCollection <WorkOrderViewModel> list1 = new ObservableCollection <WorkOrderViewModel>();

                    foreach (WorkOrderInventoryMapDTO wor in r.WorkOrderList)
                    {
                        list1.Add(new WorkOrderViewModel(wor));
                    }

                    foreach (NotInInventoryDTO nii in r.NotInInventory)
                    {
                        list1.Add(new WorkOrderViewModel(nii));
                    }

                    foreach (GetArrangementResponse arrangement in r.Arrangements)
                    {
                        list1.Add(new WorkOrderViewModel());    //blank line

                        list1.Add(new WorkOrderViewModel()      //"header"
                        {
                            InventoryName = "Arrangement"
                        });

                        foreach (ArrangementInventoryItemDTO ai in arrangement.ArrangementList)
                        {
                            list1.Add(new WorkOrderViewModel(ai, r.WorkOrder.WorkOrderId));
                        }

                        foreach (NotInInventoryDTO anii in arrangement.NotInInventory)
                        {
                            list1.Add(new WorkOrderViewModel(anii));
                        }

                        list1.Add(new WorkOrderViewModel());  //blank line
                    }

                    InventoryList.ItemsSource = list1;
                }
            }
        }
Example #8
0
        public async Task <IActionResult> Get(int id)
        {
            _diagnosticContext.SetWorkOrderId(id);
            try
            {
                WorkOrderResponse workOrderResponse = await _getWorkOrderUseCase.Execute(id);

                return(Ok(workOrderResponse));
            }
            catch (ResourceNotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
        }
Example #9
0
        private void WorkOrderLoaded(WorkOrderResponse response)
        {
            if (response.WorkOrder.CustomerId != 0)
            {
                workOrder = response;

                GetPersonRequest personRequest = new GetPersonRequest()
                {
                    PersonId = workOrder.WorkOrder.CustomerId
                };

                ((App)App.Current).GetCustomers(personRequest).ContinueWith(a => BuyerLoaded(a.Result));
            }
        }
        private async void PaymentDetail_Click(object sender, RoutedEventArgs e)
        {
            //if paid - load payment page with detail
            Button b = sender as Button;

            if (b != null)
            {
                WorkOrderResponse workOrder = (WorkOrderResponse)b.CommandParameter;
                if (workOrder != null && workOrder.WorkOrder != null && workOrder.WorkOrder.WorkOrderId > 0)
                {
                    GenericGetRequest   request = new GenericGetRequest("GetWorkOrderPayment", "workOrderId", workOrder.WorkOrder.WorkOrderId);
                    WorkOrderPaymentDTO payment = await((App)App.Current).GetRequest <WorkOrderPaymentDTO>(request);

                    PaymentDetailLoaded(payment, workOrder);
                }
            }
        }
        private void WorkOrderLoaded(WorkOrderResponse response)
        {
            workOrder = response;

            foreach (var x in workOrder.WorkOrderList)
            {
                siteServiceInventoryList.Add(new WorkOrderInventoryItemDTO()
                {
                    WorkOrderId   = x.WorkOrderId,
                    InventoryId   = x.InventoryId,
                    InventoryName = x.InventoryName,
                    Quantity      = x.Quantity,
                    Size          = x.Size
                });
            }

            ObservableCollection <WorkOrderInventoryItemDTO> list1 = new ObservableCollection <WorkOrderInventoryItemDTO>(siteServiceInventoryList);

            Device.BeginInvokeOnMainThread(() =>
            {
                currentSiteServiceId = workOrder.WorkOrder.WorkOrderId;

                Customer.Text = workOrder.WorkOrder.Buyer;

                customerId = workOrder.WorkOrder.CustomerId;

                DeliveryDate.Date = workOrder.WorkOrder.DeliveryDate;

                SiteServiceInventoryItemsListView.ItemsSource = list1;

                foreach (WorkOrderImageMapDTO imgData in workOrder.ImageMap)
                {
                    imageData.Add(new EOImgData()
                    {
                        ImageId = imgData.ImageId,
                        imgData = imgData.ImageData
                    });
                }

                CreatedBy.SelectedIndex = ((App)App.Current).GetPickerIndex(CreatedBy, workOrder.WorkOrder.SellerId);

                ServicedBy.SelectedIndex = ((App)App.Current).GetPickerIndex(ServicedBy, workOrder.WorkOrder.DeliveryUserId);
            });
        }
        public WorkOrderResponse SaveWorkOrder(WorkOrderRequest workOrderRequest)
        {
            var response    = new WorkOrderResponse();
            var validations = this.workOrderManager.ValidateWorkOrder(workOrderRequest);

            if (validations.Count > 0)
            {
                response.ValidationErrors = validations;
                response.Status           = Status.FAILED_SAVING_ORDER;
            }
            else
            {
                databaseManager.AddWorkDetails(workOrderRequest.WorkOrderDetails);
                response.Status = Status.SAVED_SUCCESS;
            }


            return(response);
        }
Example #13
0
        private List <WorkOrderInventoryDTO> GetWorkOrders()
        {
            List <WorkOrderInventoryDTO> workOrders = new List <WorkOrderInventoryDTO>();

            try
            {
                WorkOrderListFilter filter = new WorkOrderListFilter();
                filter.FromDate = this.FromDatePicker.SelectedDate.Value;
                filter.ToDate   = this.ToDatePicker.SelectedDate.Value;

                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri("http://localhost:9000/");
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                client.DefaultRequestHeaders.Add("EO-Header", wnd.User + " : " + wnd.Pwd);

                string jsonData = JsonConvert.SerializeObject(filter);
                var    content  = new StringContent(jsonData, Encoding.UTF8, "application/json");

                HttpResponseMessage httpResponse =
                    client.PostAsync("api/Login/GetWorkOrders", content).Result;

                if (httpResponse.IsSuccessStatusCode)
                {
                    Stream       streamData = httpResponse.Content.ReadAsStreamAsync().Result;
                    StreamReader strReader  = new StreamReader(streamData);
                    string       strData    = strReader.ReadToEnd();
                    strReader.Close();
                    WorkOrderResponse response = JsonConvert.DeserializeObject <WorkOrderResponse>(strData);
                    workOrders = response.WorkOrderList;
                }
                else
                {
                    MessageBox.Show("There was an error retreiving Work Orders");
                }
            }
            catch (Exception ex)
            {
            }

            return(workOrders);
        }
        private void ShowWorkOrderItems_Clicked(object sender, RoutedEventArgs e)
        {
            Button b = sender as Button;

            ObservableCollection <WorkOrderViewModel> list1 = new ObservableCollection <WorkOrderViewModel>();

            WorkOrderResponse r = b.CommandParameter as WorkOrderResponse;

            foreach (WorkOrderInventoryMapDTO wor in r.WorkOrderList)
            {
                list1.Add(new WorkOrderViewModel(wor));
            }

            foreach (NotInInventoryDTO nii in r.NotInInventory)
            {
                list1.Add(new WorkOrderViewModel(nii));
            }

            foreach (GetArrangementResponse arrangement in r.Arrangements)
            {
                list1.Add(new WorkOrderViewModel());

                list1.Add(new WorkOrderViewModel()
                {
                    InventoryName = "Arrangement"
                });

                foreach (ArrangementInventoryItemDTO ai in arrangement.ArrangementList)
                {
                    list1.Add(new WorkOrderViewModel(ai, r.WorkOrder.WorkOrderId));
                }

                foreach (NotInInventoryDTO anii in arrangement.NotInInventory)
                {
                    list1.Add(new WorkOrderViewModel(anii));
                }

                list1.Add(new WorkOrderViewModel());
            }

            WorkOrderDetailListView.ItemsSource = list1;
        }
 void PaymentDetailLoaded(WorkOrderPaymentDTO payment, WorkOrderResponse workOrder)
 {
     Dispatcher.Invoke(() =>
     {
         if (payment != null && payment.WorkOrderPaymentId > 0)
         {
             MainWindow wnd          = Application.Current.MainWindow as MainWindow;
             PaymentPage paymentPage = new PaymentPage(workOrder, payment);
             wnd.NavigationStack.Push(paymentPage);
             wnd.MainContent.Content = new Frame()
             {
                 Content = paymentPage
             };
         }
         else
         {
             MessageBox.Show(Application.Current.MainWindow, "Work Order has not been paid.", "OK", MessageBoxButton.OK);
         }
     });
 }
        private void EditWorkOrder_Click(object sender, RoutedEventArgs e)
        {
            Button b = sender as Button;

            if (b != null)
            {
                //the button's command parmeter is a WoorkOrderResponse object
                WorkOrderResponse response = (WorkOrderResponse)b.CommandParameter;

                if (response != null)
                {
                    //navigate to the Work Order page and load this selection
                    MainWindow    wnd           = Application.Current.MainWindow as MainWindow;
                    WorkOrderPage workOrderPage = new WorkOrderPage(response);
                    wnd.NavigationStack.Push(workOrderPage);
                    wnd.MainContent.Content = new Frame()
                    {
                        Content = workOrderPage
                    };
                }
            }
        }
Example #17
0
        public async Task <GetWorkOrderSalesDetailResponse> GetWorkOrderDetail()
        {
            WorkOrderResponse request = new WorkOrderResponse();

            request.WorkOrderList  = currentWorkOrder.WorkOrderList;
            request.NotInInventory = currentWorkOrder.NotInInventory;
            List <GetArrangementResponse> arrangementResponseList = new List <GetArrangementResponse>();

            foreach (AddArrangementRequest aar in arrangementList)
            {
                GetArrangementResponse getArrangement = new GetArrangementResponse();
                getArrangement.ArrangementList = aar.ArrangementInventory;
                getArrangement.NotInInventory  = aar.NotInInventory;
                arrangementResponseList.Add(getArrangement);
            }

            request.Arrangements = arrangementResponseList;

            GetWorkOrderSalesDetailResponse response = await((App)App.Current).PostRequest <WorkOrderResponse, GetWorkOrderSalesDetailResponse>("GetWorkOrderDetail", request);

            return(response);
        }
Example #18
0
        public WorkOrderPage(WorkOrderResponse workOrderResponse) : this()
        {
            currentWorkOrder = workOrderResponse;
            arrangementList  = workOrderResponse.ArrangementRequestList();

            if (currentWorkOrder.WorkOrder.WorkOrderId <= 0)
            {
                PayButton.IsEnabled = false;
            }
            else
            {
                PayButton.IsEnabled  = true;
                SaveButton.IsEnabled = true;

                if (currentWorkOrder.WorkOrder.Paid)
                {
                    PayButton.IsEnabled  = false;
                    SaveButton.IsEnabled = false;
                }
            }

            LoadCustomer();
        }
Example #19
0
        public string ComposeReceipt(WorkOrderResponse workOrder, WorkOrderPaymentDTO payment)
        {
            string receiptHtml = String.Empty;

            receiptHtml =
                "<div>" +
                "<h2><center>Elegant Orchids </center></h2> <br>" +
                "<center> 5185 Conklin Drive Delray Beach fl 33484 </center> <br><br>" +
                "Order Placed: " + workOrder.WorkOrder.CreateDate.ToShortDateString() + "<br>" +
                "Order # " + workOrder.WorkOrder.WorkOrderId.ToString() + "<br>" +
                "Order Total: " + String.Format("Order Total: {0:C}", payment.WorkOrderPaymentAmount) + "<br>" + "<br>" +
                "<div style='border:1px; solid; black'>" +
                "<div style='display: inline-block'> Order Detail</div>" +
                "<div style='border:1px solid; black; text-align: center'>";


            receiptHtml += "<div style = 'display: inline-block'>";

            foreach (WorkOrderInventoryMapDTO inventoryMap in workOrder.WorkOrderList)
            {
                receiptHtml += inventoryMap.Quantity.ToString() + " " + inventoryMap.InventoryName + "  " + inventoryMap.Size + "<br>";
            }

            foreach (NotInInventoryDTO notInInventory in workOrder.NotInInventory)
            {
                receiptHtml += notInInventory.NotInInventoryQuantity.ToString() + " " + notInInventory.NotInInventoryName + "  " + notInInventory.NotInInventorySize + "<br>";
            }

            foreach (GetArrangementResponse a in workOrder.Arrangements)
            {
                receiptHtml += "<br> Arrangement <br>";
                foreach (ArrangementInventoryItemDTO b in a.ArrangementList)
                {
                    receiptHtml += b.Quantity.ToString() + " " + b.InventoryName + "  " + b.Size + "<br>";
                }

                foreach (NotInInventoryDTO notInInventory in a.NotInInventory)
                {
                    receiptHtml += notInInventory.NotInInventoryQuantity.ToString() + " " + notInInventory.NotInInventoryName + "  " + notInInventory.NotInInventorySize + "<br>";
                }

                receiptHtml += "<br>";
            }

            receiptHtml += "</div>";

            receiptHtml +=

                "<div style='border:1px solid; black;'>" +
                "<div>" + "</div>" +
                "<div>" + "</div>" +
                "</div> <br>";

            if (workOrder.WorkOrder.DeliveryType == 2)
            {
                receiptHtml += "<br>" +
                               "<div style='border:1px; solid; black'>" +
                               "<div style='border:1px solid; black; text-align: center'>" +
                               "<div style='display: inline-block'> Delivery Detail</div>" +
                               "</div>" +
                               "<div style='border:1px solid; black;'>" +
                               "<div>" + "</div>" +
                               "<div>" + "</div>" +
                               "</div>" +
                               "</div> <br>";
            }

            receiptHtml += "<br>" +
                           "<div style='border:1px; solid; black'>" +
                           "<div style='border:1px solid; black; text-align: center'>" +
                           "<div style='display: inline-block'> Payment Detail</div>" +
                           "</div>" +
                           "<div style='border:1px solid; black;'>" +
                           "<div>" + "</div>" +
                           "<div>" + "</div>" +
                           "</div>" +
                           "</div>";

            if (payment.WorkOrderPaymentType == 2)
            {
                receiptHtml +=
                    "<div style='border:1px; solid; black'>" +
                    "<div style='border:1px solid; black; text-align: center'>" +
                    "<div style='display: inline-block'> Credit Card Payment Detail</div>" +
                    "</div>" +
                    "<div style='border:1px solid; black;'>" +
                    "<div>" + "</div>" +
                    "<div>" + "</div>" +
                    "</div>" +
                    "</div>";
            }

            receiptHtml += "</div>";

            receiptHtml += "<h2><center> Thank you for your business </center></h2>";

            return(receiptHtml);
        }
Example #20
0
 public PaymentPage(WorkOrderResponse workOrder, WorkOrderPaymentDTO payment) : this()
 {
     SetPaymentData(payment);
 }
Example #21
0
 public GetWorkOrderSalesDetailResponse GetWorkOrderDetail(WorkOrderResponse request)
 {
     return(persistence.GetWorkOrderDetail(request));
 }
Example #22
0
 public PaymentPage(WorkOrderResponse workOrder, WorkOrderPaymentDTO payment) : this()
 {
     currentWorkOrder = workOrder;
     Customer.Person  = new PersonDTO();
     SetWorkOrderDetail(payment);
 }
 private void WorkOrderLoaded(WorkOrderResponse workOrderResponse)
 {
     currentWorkOrderId = workOrderResponse.WorkOrder.WorkOrderId;
     ((App)App.Current).GetWorkOrderPayment(currentWorkOrderId).ContinueWith(a => WorkOrderPaymentLoaded(workOrderResponse, a.Result));
 }
        //Load and possibly convert data into relevant data lists
        private void WorkOrderPaymentLoaded(WorkOrderResponse workOrder, WorkOrderPaymentDTO payment)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                currentWorkOrderId = workOrder.WorkOrder.WorkOrderId;

                searchedForPerson = new PersonAndAddressDTO();
                searchedForPerson.Person.person_id = workOrder.WorkOrder.CustomerId;
                customerId = searchedForPerson.Person.person_id;

                currentWorkOrderPaymentId = payment.WorkOrderPaymentId;

                if (currentWorkOrderPaymentId == 0)
                {
                    Save.IsEnabled    = true;
                    Payment.IsEnabled = true;
                }
                else
                {
                    if (workOrder.WorkOrder.Paid)
                    {
                        InventoryItemsListView.IsEnabled = false;
                        Save.IsEnabled         = false;
                        Payment.IsEnabled      = false;
                        AddInventory.IsEnabled = false;
                    }
                    else
                    {
                        Save.IsEnabled = true;
                        if (workOrder.WorkOrderList.Count == 0)
                        {
                            Payment.IsEnabled = false;
                        }
                        else
                        {
                            Payment.IsEnabled = true;
                        }
                    }
                }

                Buyer.Text = workOrder.WorkOrder.Buyer;

                sellerId             = workOrder.WorkOrder.SellerId;
                Seller.SelectedIndex = ((App)App.Current).GetPickerIndex(Seller, workOrder.WorkOrder.SellerId);

                DeliveryType.SelectedIndex = workOrder.WorkOrder.DeliveryType;

                deliveryUserId = workOrder.WorkOrder.DeliveryUserId;
                DeliveryPerson.SelectedIndex = ((App)App.Current).GetPickerIndex(DeliveryPerson, workOrder.WorkOrder.DeliveryUserId);

                DeliveryDate.Date = workOrder.WorkOrder.DeliveryDate;

                deliveryRecipientId = workOrder.WorkOrder.DeliveryRecipientId;

                DeliverTo.Text = workOrder.WorkOrder.DeliverTo;

                WorkOrderDate.Date = workOrder.WorkOrder.CreateDate;

                workOrderList.Clear();

                notInInventory = workOrder.NotInInventory;

                //convert between duplicate types - refactor
                foreach (var x in workOrder.WorkOrderList)
                {
                    WorkOrderInventoryItemDTO dto =
                        new WorkOrderInventoryItemDTO()
                    {
                        WorkOrderId   = x.WorkOrderId,
                        InventoryId   = x.InventoryId,
                        InventoryName = x.InventoryName,
                        Quantity      = x.Quantity,
                        Size          = x.Size,
                        GroupId       = x.GroupId
                    };

                    workOrderInventoryList.Add(dto);
                }

                foreach (GetArrangementResponse ar in workOrder.Arrangements)
                {
                    AddArrangementRequest aaReq = new AddArrangementRequest();

                    aaReq.Arrangement          = ar.Arrangement;
                    aaReq.Inventory            = ar.Inventory;
                    aaReq.ArrangementInventory = ar.ArrangementList;
                    aaReq.GroupId        = ar.Arrangement.ArrangementId;
                    aaReq.NotInInventory = ar.NotInInventory;

                    arrangementList.Add(aaReq);
                }

                RedrawInventoryList();
            });
        }
Example #25
0
 public GetWorkOrderSalesDetailResponse GetWorkOrderDetail(WorkOrderResponse request)
 {
     return(inventoryManager.GetWorkOrderDetail(request));
 }
Example #26
0
 public PaymentPage(WorkOrderResponse workOrder, PersonDTO customer) : this()
 {
     currentWorkOrder = workOrder;
     Customer.Person  = customer;
     GetWorkOrderDetail();
 }