private void EditWorkOrderItem_Click(object sender, RoutedEventArgs e) { Button b = sender as Button; if (b != null) { WorkOrderViewModel vm = (WorkOrderViewModel)b.CommandParameter; if (vm != null) { if (arrangementList.Where(a => a.Arrangement.ArrangementId == vm.GroupId).Any()) { AddArrangementRequest aar = arrangementList.Where(a => a.Arrangement.ArrangementId == vm.GroupId).First(); MainWindow wnd = Application.Current.MainWindow as MainWindow; ArrangementPage arrangementPage = new ArrangementPage(aar); wnd.NavigationStack.Push(arrangementPage); wnd.MainContent.Content = new Frame() { Content = arrangementPage }; } } } }
public ApiResponse UpdateArrangement(AddArrangementRequest request) { ApiResponse response = new ApiResponse(); response.Id = inventoryManager.UpdateArrangement(request); return(response); }
private void InventoryItemsListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { //if the item selected has GroupId != null - the clicked on item is a member in an arrangement //reload the entire arrangement back to the Arrangement page. ListView lv = sender as ListView; if (lv != null && lv.SelectedItem != null) { WorkOrderViewModel dto = lv.SelectedItem as WorkOrderViewModel; if (dto != null) { if (dto.GroupId.HasValue) { if (!PageExists(typeof(TabbedArrangementPage))) { AddArrangementRequest aar = arrangementList.Where(a => a.GroupId == dto.GroupId).FirstOrDefault(); //get all members with same group id and load Arrangement page Navigation.PushAsync(new TabbedArrangementPage(aar, searchedForPerson)); } } } } }
public long UpdateArrangement(AddArrangementRequest request) { long arrangementId = 0; try { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(LAN_Address); //client.DefaultRequestHeaders.Add("appkey", "myapp_key"); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("EO-Header", User + " : " + Pwd); string jsonData = JsonConvert.SerializeObject(request); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage httpResponse = client.PostAsync("api/Login/UpdateArrangement", content).Result; if (httpResponse.IsSuccessStatusCode) { string strData = httpResponse.Content.ReadAsStringAsync().Result; ApiResponse response = JsonConvert.DeserializeObject <ApiResponse>(strData); arrangementId = response.Id; } } catch (Exception ex) { Exception ex2 = new Exception("UpdateArrangement", ex); LogError(ex2.Message, JsonConvert.SerializeObject(request)); } return(arrangementId); }
public WorkOrderMessage() { Person = new PersonDTO(); Inventory = new WorkOrderInventoryMapDTO(); NotInInventory = new NotInInventoryDTO(); Arrangement = new AddArrangementRequest(); CustomerContainer = new CustomerContainerDTO(); }
public TabbedArrangementPage(AddArrangementRequest aar, PersonAndAddressDTO customer = null) { if (customer == null) { customer = new PersonAndAddressDTO(); //don't pass null } this.customer = customer; this.forWorkOrder = true; this.aar = aar; Initialize(); }
/// <summary> /// Called when arrangement data is "added" to a work order - need to use groupId variable in arrangement DTOs if PKs don't yet exist /// This function is always called in OnAppearing which calls as it's last job the Redraw function /// </summary> void GetSearchedArrangement() { if (((App)App.Current).searchedForArrangement != null) { AddArrangementRequest aar = ((App)App.Current).searchedForArrangement; //when an arrangement is being created "on the fly" for a work order, //we need a way to group all the arrangement parts so that we can go back and forth // between the work order page and the arrangement page, if we need to. long?groupId = null; var rand = new Random(); if (aar.Arrangement.ArrangementId == 0) { if (!aar.GroupId.HasValue) { groupId = rand.Next(255); aar.GroupId = groupId; } else { groupId = aar.GroupId; } } else { groupId = aar.Arrangement.ArrangementId; } if (aar.Arrangement.ArrangementId == 0) { arrangementList.Add(aar); } else { if (arrangementList.Where(a => a.Arrangement.ArrangementId == aar.Arrangement.ArrangementId).Any()) { AddArrangementRequest temp2 = arrangementList.Where(a => a.Arrangement.ArrangementId == aar.Arrangement.ArrangementId).First(); arrangementList.Remove(temp2); arrangementList.Add(aar); } } ((App)App.Current).searchedForArrangement = null; } }
public ArrangementPage(AddArrangementRequest arrangementRequest) { InitializeComponent(); currentArrangement = arrangementRequest; GetUsers(); ObservableCollection <KeyValuePair <long, string> > list2 = new ObservableCollection <KeyValuePair <long, string> >(); list2.Add(new KeyValuePair <long, string>(0, "180")); list2.Add(new KeyValuePair <long, string>(1, "360")); Style.ItemsSource = list2; containers.Add(new KeyValuePair <long, string>(1, "New container")); Container.ItemsSource = containers; MainWindow wnd = Application.Current.MainWindow as MainWindow; if (wnd.PageIsOnStack(typeof(WorkOrderPage))) { WorkOrderPage wo = (WorkOrderPage)wnd.GetPageFromStack(typeof(WorkOrderPage)); if (wo != null) { currentArrangement.Arrangement.WorkOrderId = wo.CurrentWorkOrderId; Customer = wo.Customer; if (Customer != null && Customer.person_id != 0) { LoadCustomerContainers(Customer.person_id); } } } ObservableCollection <WorkOrderViewModel> list3 = new ObservableCollection <WorkOrderViewModel>(); arrangementInventoryList = currentArrangement.ArrangementInventory; notInInventory = currentArrangement.NotInInventory; ArrangementInventoryListView.ItemsSource = new ObservableCollection <WorkOrderViewModel>(); ReloadListData(); }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { WorkOrderViewModel dto = (sender as Button).CommandParameter as WorkOrderViewModel; if (dto != null) { if (dto.InventoryId != 0) { if (dto.GroupId.HasValue && dto.GroupId.Value != 0) { if (arrangementList.Where(a => a.Arrangement.ArrangementId == dto.GroupId.Value).Any()) { AddArrangementRequest aar = arrangementList.Where(b => b.Arrangement.ArrangementId == dto.GroupId.Value).First(); if (aar.ArrangementInventory.Where(c => c.InventoryId == dto.InventoryId).Any()) { ArrangementInventoryItemDTO item = aar.ArrangementInventory.Where(c => c.InventoryId == dto.InventoryId).First(); aar.ArrangementInventory.Remove(item); } } } else { if (currentWorkOrder.WorkOrderList.Where(a => a.InventoryId == dto.InventoryId).Any()) { WorkOrderInventoryMapDTO map = currentWorkOrder.WorkOrderList.Where(b => b.InventoryId == dto.InventoryId).First(); currentWorkOrder.WorkOrderList.Remove(map); } } } else if (dto.NotInInventoryId != 0) { if (currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == dto.NotInInventoryId).Any()) { NotInInventoryDTO notIn = currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == dto.NotInInventoryId).First(); currentWorkOrder.NotInInventory.Remove(notIn); } } ReloadItemList(); SetWorkOrderSalesData(); } }
void ProcessArrangementData(WorkOrderMessage msg) { if (msg.Arrangement.Arrangement.ArrangementId != 0) { if (currentWorkOrder.Arrangements.Where(a => a.Arrangement.ArrangementId == msg.Arrangement.Arrangement.ArrangementId).Any()) { AddArrangementRequest aar = arrangementList.Where(a => a.Arrangement.ArrangementId == msg.Arrangement.Arrangement.ArrangementId).First(); arrangementList.Remove(aar); } arrangementList.Add(msg.Arrangement); } else if (msg.Arrangement.Arrangement.UnsavedId != 0) { if (arrangementList.Where(a => a.Arrangement.UnsavedId == msg.Arrangement.Arrangement.UnsavedId).Any()) { AddArrangementRequest aar = arrangementList.Where(a => a.Arrangement.UnsavedId == msg.Arrangement.Arrangement.UnsavedId).First(); arrangementList.Remove(aar); } arrangementList.Add(msg.Arrangement); } }
public ApiResponse AddArrangement(AddArrangementRequest request) { ApiResponse response = new ApiResponse(); if (inventoryManager.InventoryNameIsNotUnique(request.Inventory.InventoryName)) { response.AddMessage("InventoryName", new List <string>() { "This inventory name is in use. Please choose another." }); } else if (inventoryManager.ArrangementNameIsnotUnique(request.Arrangement)) { response.AddMessage("ArrangementName", new List <string>() { "This arrangement name is in use. Please choose another." }); } else { long arrangement_id = inventoryManager.AddArrangement(request); if (arrangement_id == 0) { response.AddMessage("DbError", new List <string>() { "There was an error saving this arrangement." }); } else { response.Id = arrangement_id; } } return(response); }
//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(); }); }
public long UpdateArrangement(AddArrangementRequest arrangementrequest) { return(persistence.UpdateArrangement(arrangementrequest)); }
public void OnSaveArrangementsClicked(object sender, EventArgs e) { try { string validationMessage = String.Empty; long arrangementId = 0; //(long)((Button)sender).CommandParameter; if (!ValidateArrangement(ref validationMessage)) { DisplayAlert("Error", validationMessage, "Cancel"); return; } if (TabParent.ForWorkOrder) { //get quantities from ArrangementItemsListView ItemsSource AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementId = TabParent.CurrentArrangement != null ? TabParent.CurrentArrangement.Arrangement.ArrangementId : 0; request.Arrangement.ArrangementName = Name.Text; request.Arrangement.DesignerName = Designer.SelectedItem != null ? ((KeyValuePair <long, string>)Designer.SelectedItem).Value : String.Empty; request.Arrangement._180or360 = Style.SelectedItem != null ? (int)((KeyValuePair <long, string>)Style.SelectedItem).Key : 1; request.Arrangement.Container = Container.SelectedItem != null ? (int)((KeyValuePair <long, string>)Style.SelectedItem).Key : 1; //1 = new container (db default) request.Arrangement.CustomerContainerId = customerContainerId; request.Arrangement.LocationName = Location.Text; request.Arrangement.UpdateDate = DateTime.Now; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; Random r = new Random(); long tempArrangementId = r.Next(1, 100); foreach (ArrangementInventoryItemDTO dto in arrangementInventoryList) { if (dto.ArrangementId != 0) { arrangementId = dto.ArrangementId; break; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).Any()) { wovm = ((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).First(); dto.Quantity = wovm.Quantity; } } request.ArrangementInventory = arrangementInventoryList; foreach (NotInInventoryDTO dto in notInInventoryList) { //group them for the work order if (!dto.ArrangementId.HasValue || dto.ArrangementId == 0) { dto.ArrangementId = tempArrangementId; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.NotInInventoryId == dto.NotInInventoryId).Any()) { wovm = ((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.NotInInventoryId == dto.NotInInventoryId).First(); dto.NotInInventoryQuantity = wovm.Quantity; } } request.NotInInventory = notInInventoryList; request.Inventory = new InventoryDTO() { InventoryName = String.IsNullOrEmpty(Name.Text) ? "Arrangement_" + Convert.ToString(tempArrangementId) : Name.Text, InventoryTypeId = 5, ServiceCodeId = 365, NotifyWhenLowAmount = 0, Quantity = 1 }; MessagingCenter.Send <AddArrangementRequest>(request, "AddArrangementToWorkOrder"); if (!PopToPage("TabbedWorkOrderPage")) { Navigation.PopAsync(); } return; } if (arrangementInventoryList.Count > 0) { foreach (ArrangementInventoryItemDTO dto in arrangementInventoryList) { if (dto.ArrangementId != 0) { arrangementId = dto.ArrangementId; break; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).Any()) { dto.Quantity = wovm.Quantity; } } if (arrangementId == 0) { AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementName = Name.Text; request.Arrangement._180or360 = (int)((KeyValuePair <long, string>)Style.SelectedItem).Key; request.Arrangement.Container = (int)((KeyValuePair <long, string>)Container.SelectedItem).Key; request.Arrangement.CustomerContainerId = null; request.Arrangement.DesignerName = ((KeyValuePair <long, string>)Designer.SelectedItem).Value; request.Arrangement.LocationName = Location.Text; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; request.Arrangement.UpdateDate = DateTime.Now; request.ArrangementInventory = arrangementInventoryList.Where(a => a.InventoryId != 0).ToList(); // "Not In Inventory" items may have been added to the display list; request.Inventory = new InventoryDTO() { InventoryName = Name.Text, InventoryTypeId = 5, }; request.NotInInventory = notInInventoryList; request.ArrangementInventory = arrangementInventoryList.Where(a => a.InventoryId != 0).ToList(); arrangementId = ((App)App.Current).AddArrangement(request); if (arrangementId > 0) { List <EOImgData> imageData = ((App)App.Current).GetImageData(); if (imageData.Count > 0) { foreach (EOImgData img in imageData) { AddArrangementImageRequest imgRequest = new AddArrangementImageRequest() { ArrangementId = arrangementId, Image = img.imgData }; ((App)App.Current).AddArrangementImage(imgRequest); } } DisplayAlert("Success", "New arrangement saved!", "OK"); ClearArrangements(); } else { DisplayAlert("Error", "Problem saving arrangement", "OK"); } } else { GetSimpleArrangementResponse simpleArrangement = arrangementList.Where(a => a.Arrangement.ArrangementId == arrangementId).FirstOrDefault(); AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementId = arrangementId; request.Arrangement.ArrangementName = Name.Text; request.Arrangement._180or360 = (int)((KeyValuePair <long, string>)Style.SelectedItem).Key; request.Arrangement.Container = (int)((KeyValuePair <long, string>)Container.SelectedItem).Key; request.Arrangement.CustomerContainerId = null; request.Arrangement.DesignerName = ((KeyValuePair <long, string>)Designer.SelectedItem).Value; request.Arrangement.LocationName = Location.Text; request.Arrangement.UpdateDate = DateTime.Now; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; request.Inventory = simpleArrangement.Inventory; request.ArrangementInventory = arrangementInventoryList; request.NotInInventory = notInInventoryList; arrangementId = ((App)App.Current).UpdateArrangement(request); if (arrangementId == request.Arrangement.ArrangementId) { //only saves new images List <EOImgData> imageData = ((App)App.Current).GetImageData(); if (imageData.Count > 0) { foreach (EOImgData img in imageData) { AddArrangementImageRequest imgRequest = new AddArrangementImageRequest() { ArrangementId = arrangementId, Image = img.imgData }; ((App)App.Current).AddArrangementImage(imgRequest); } } DisplayAlert("Success", "Arrangement updated!", "OK"); ClearArrangements(); } else { DisplayAlert("Error", "Problem updating arrangement", "OK"); } } } } catch (Exception ex) { } }
public void AddArrangement() { long image_id = 0; try { AddArrangementRequest addArrangementRequest = new AddArrangementRequest(); //save image if the user has selected one if (fileStreamContent != null) { var url = "http://localhost:9000/api/Login/UploadPlantImage"; fileStreamContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") { Name = "file", FileName = fileName }; fileStreamContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); using (var client1 = new HttpClient()) { client1.DefaultRequestHeaders.Add("EO-Header", wnd.User + " : " + wnd.Pwd); using (var formData = new MultipartFormDataContent()) { formData.Add(fileStreamContent); var response = client1.PostAsync(url, formData).Result; string strImageId = response.Content.ReadAsStringAsync().Result; Int64.TryParse(strImageId, out image_id); } } } String arrangementName = this.ArrangementName.Text; //KeyValuePair<long, string> serviceCode = (KeyValuePair<long, string>)this.ServiceCodes.SelectedValue; ArrangementDTO aDTO = new ArrangementDTO(); aDTO.ArrangementName = arrangementName; addArrangementRequest.Arrangement = aDTO; InventoryDTO iDTO = new InventoryDTO(); iDTO.InventoryName = arrangementName; iDTO.InventoryTypeId = 3; //"Arrangements" //iDTO.ServiceCodeId = serviceCode.Key; foreach (ArrangementInventoryItemDTO ai in arrangementInventoryList) { addArrangementRequest.InventoryIds.Add(ai.InventoryId); } addArrangementRequest.Arrangement = aDTO; addArrangementRequest.Inventory = iDTO; if (image_id > 0) { addArrangementRequest.ImageId = image_id; } HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:9000/"); //client.DefaultRequestHeaders.Add("appkey", "myapp_key"); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("EO-Header", wnd.User + " : " + wnd.Pwd); string jsonData = JsonConvert.SerializeObject(addArrangementRequest); var content = new StringContent(jsonData, Encoding.UTF8, "application/json"); HttpResponseMessage httpResponse = client.PostAsync("api/Login/AddArrangement", content).Result; if (httpResponse.IsSuccessStatusCode) { Reload(); } else { MessageBox.Show("Error adding arrangement"); } } catch (Exception ex) { } }
public void AddArrangementToWorkOrder(AddArrangementRequest arg) { searchedForArrangement = arg; }