async void Handle_RowTap(object sender, DevExpress.Mobile.DataGrid.RowTapEventArgs e) { int rowindex = grid.GetSourceRowIndex(e.RowHandle); App_RepairPart part = ((ObservableCollection <App_RepairPart>)grid.ItemsSource)[rowindex]; await Navigation.PushAsync(new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Edit, _scheduledAppointment)); }
public PartEditExtdDescPage(App_WorkTicket workTicket, App_RepairPart part, PartsEditPage.PageMode pageMode, App_ScheduledAppointment scheduledAppointment) { _workTicket = workTicket; _part = part; _pageMode = pageMode; _scheduledAppointment = scheduledAppointment; _vm = new PartsEditExtdDescPageViewModel(part, workTicket); InitializeComponent(); labelTitle.FontFamily = Device.OnPlatform("OpenSans-Bold", "sans-serif-black", null); labelItemCode.Text = _part.PartItemCode; labelItemCodeDesc.Text = _part.PartItemCodeDescription; if (_part.ItemCodeDesc != null || _part.ItemCodeDesc.Trim().Length == 0) { CI_Item itm = App.Database.GetItemFromDB(_part.PartItemCode); if (itm.ExtendedDescriptionKey != null && itm.ExtendedDescriptionKey > 0) { CI_ExtendedDescription itmExtdDsc = App.Database.GetExtendedDescription(itm.ExtendedDescriptionKey); } } else { entryExtdDesc.Text = _part.PartItemCodeDescription; } }
private async void ListViewWorkTickets_ItemTapped(object sender, ItemTappedEventArgs e) { App_RepairPart part = e.Item as App_RepairPart; CI_Item partAsItem = App.Database.GetItemFromDB(part.PartItemCode); await Navigation.PushAsync(new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Edit, _scheduledAppointment)); }
public int DeleteRepairPart(App_RepairPart part, App_WorkTicket workTicket, App_Technician technician) { int rows = 0; JT_TransactionImportDetail detail = new JT_TransactionImportDetail(); lock (_locker) { detail.ID = part.ID; detail.RecordType = "P"; detail.SalesOrderNo = workTicket.SalesOrderNo; detail.WTNumber = workTicket.WTNumber; detail.WTStep = workTicket.WTStep; detail.EmployeeDeptNo = technician.TechnicianDeptNo; detail.EmployeeNo = technician.TechnicianNo; detail.TransactionDate = System.DateTime.Now.ToString("yyyy-MM-dd"); detail.ItemCode = part.PartItemCode; detail.WarehouseCode = part.Warehouse; detail.QuantityUsed = part.Quantity; detail.UnitCost = part.UnitCost; detail.UnitPrice = part.UnitPrice; detail.ChargePart = (part.IsChargeable ? "Y" : "N"); detail.PrintPart = (part.IsPrintable ? "Y" : "N"); detail.PurchasePart = (part.IsPurchased ? "Y" : "N"); detail.Overhead = (part.IsOverhead ? "Y" : "N"); detail.UnitOfMeasure = part.UnitOfMeasure; detail.CommentText = part.Comment; detail.LotSerialNo = part.LotSerialNo; rows = _database.Delete <JT_TransactionImportDetail>(detail.ID); } return(rows); }
private void ButtonSearch_Click(object sender, RoutedEventArgs e) { if (searchBarText.Text == null || searchBarText.Text.Length == 0) { _vm.FilterItemList(null); } else { // dch rkl 11/15/2016 add miscellaneous part if (searchBarText.Text.Trim().Substring(0, 1) == "*") { CI_Item ciItem = new CI_Item(); ciItem.ItemCode = searchBarText.Text.Trim(); ciItem.ItemCodeDesc = ""; ciItem.StandardUnitOfMeasure = "EACH"; IM_ItemWarehouse imWhse = new IM_ItemWarehouse(); JT_EquipmentAsset jtAsst = new JT_EquipmentAsset(); App_Item appItem = new App_Item(ciItem, imWhse, jtAsst); App_RepairPart part = new App_RepairPart(appItem, _vm.WorkTicket); ContentControl contentArea = (ContentControl)this.Parent; contentArea.Content = new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Add, _scheduledAppointment); } else { _vm.FilterItemList(searchBarText.Text); } } }
private bool RowSearchCompare(int i) { bool bMatch = false; string findText = textFind.Text.Trim().ToLower(); try { App_RepairPart part = (App_RepairPart)gridParts.Items[i]; if (part != null && (part.PartItemCode.ToLower().IndexOf(textFind.Text) > -1 || part.PartItemCodeDescription.ToLower().IndexOf(findText) > -1)) { object item = gridParts.Items[i]; gridParts.SelectedItem = item; gridParts.ScrollIntoView(item); bMatch = true; } } catch (Exception ex) { // dch rkl 02/03/2017 Log Error ErrorReporting errorReporting = new ErrorReporting(); errorReporting.sendException(ex, "TechDashboard.PartsListPage.RowSearchCompare"); } return(bMatch); }
public PartsEditPage(App_WorkTicket workTicket, App_RepairPart part, PageMode pageMode, App_ScheduledAppointment scheduledAppointment) { _pageMode = pageMode; _vm = new PartsEditPageViewModel(workTicket, part); _scheduledAppointment = scheduledAppointment; BindingContext = _vm.PartToEdit; SetPageLayout(); }
private void gridParts_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (gridParts.SelectedIndex > -1) { App_RepairPart part = new App_RepairPart((App_Item)gridParts.SelectedItem, _vm.WorkTicket); ContentControl contentArea = (ContentControl)this.Parent; contentArea.Content = new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Add, _scheduledAppointment); } }
private void gridParts_PreviewKeyDown(object sender, KeyEventArgs e) { if (gridParts.SelectedIndex > -1 && e.Key == Key.Enter) { App_RepairPart part = new App_RepairPart((App_Item)gridParts.SelectedItem, _vm.WorkTicket); ContentControl contentArea = (ContentControl)this.Parent; contentArea.Content = new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Add, _scheduledAppointment); } }
public PartsEditExtdDescPageViewModel(App_RepairPart partToEdit, App_WorkTicket workTicket) { try { _partToEdit = partToEdit; _workTicket = workTicket; } catch (Exception ex) { // dch rkl 12/07/2016 Log Error App.sendException(ex, "TechDashboard.PartsEditExtdDescPageViewModel(App_RepairPart partToEdit, App_WorkTicket workTicket)"); } }
public PartsEditPage(App_WorkTicket workTicket, App_RepairPart part, PageMode pageMode, App_ScheduledAppointment scheduledAppointment) { _pageMode = pageMode; _vm = new PartsEditPageViewModel(workTicket, part); _scheduledAppointment = scheduledAppointment; _part = part; // dch rkl 12/05/2016 InitializeComponent(); SetPageLayout(); }
public PartsEditLotSerNoPageViewModel(App_RepairPart partToEdit, App_WorkTicket workTicket) { // dch rkl 12/07/2016 catch exception try { _partToEdit = partToEdit; _workTicket = workTicket; double qty = 0; // dch rkl 01/16/2017 if negative quantity, allow them to enter the serial number if (PartToEdit.Quantity < 0) { // Get Lot History for this Serial Number and Part. Use this to select from. _serialNumberList = GetHistParts(partToEdit.PartItemCode); } else { _serialNumberList = App.Database.GetMfgSerialNumbersForItem(_partToEdit.PartItemCode, PartToEdit.Warehouse, workTicket.SalesOrderNo, workTicket.WTNumber, workTicket.WTStep); } // Display previously allocated quantities in grid if (_partToEdit.LotSerialNo != null && _partToEdit.LotSerialNo.Trim().Length > 0) { string[] lotSerQty = _partToEdit.LotSerialNo.Split('|'); foreach (LotQavl lotQ in _serialNumberList) { foreach (string lsq in lotSerQty) { string[] sqty = lsq.Split('~'); if (sqty.GetUpperBound(0) > 0) { if (sqty[0].Trim().ToUpper() == lotQ.LotNo.Trim().ToUpper()) { double.TryParse(sqty[1], out qty); lotQ.QtyUsed = qty; break; } } } } } } catch (Exception ex) { // dch rkl 12/07/2016 Log Error ErrorReporting errorReporting = new ErrorReporting(); errorReporting.sendException(ex, "TechDashboard.PartsEditLotSerNoPageViewModel(App_RepairPart partToEdit, App_WorkTicket workTicket)"); } }
public JT_TransactionImportDetail SaveRepairPart(App_RepairPart part, App_WorkTicket workTicket, App_Technician technician) { int rows = 0; JT_TransactionImportDetail detail = new JT_TransactionImportDetail(); lock (_locker) { detail.ID = part.ID; detail.RecordType = "P"; detail.SalesOrderNo = workTicket.SalesOrderNo; detail.WTNumber = workTicket.WTNumber; detail.ItemCodeDesc = part.ItemCodeDesc; detail.WTStep = workTicket.WTStep; detail.EmployeeDeptNo = technician.TechnicianDeptNo; detail.EmployeeNo = technician.TechnicianNo; detail.TransactionDate = System.DateTime.Now.ToString("yyyy-MM-dd"); detail.TransactionDateAsDateTime = System.DateTime.Now; detail.ItemCode = part.PartItemCode; detail.WarehouseCode = part.Warehouse; detail.QuantityUsed = part.Quantity; detail.UnitCost = part.UnitCost; detail.UnitPrice = part.UnitPrice; detail.ChargePart = (part.IsChargeable ? "Y" : "N"); detail.PrintPart = (part.IsPrintable ? "Y" : "N"); detail.PurchasePart = (part.IsPurchased ? "Y" : "N"); detail.Overhead = (part.IsOverhead ? "Y" : "N"); detail.UnitOfMeasure = part.UnitOfMeasure; detail.CommentText = part.Comment; detail.LotSerialNo = part.LotSerialNo; detail.SOLineKey = part.SoLineKey; // dch rkl 01/23/2017 Save SOLineKey detail.QuantityRequired = (double)part.QuantityReqd; // dch rkl 11/30/2016 save quantity required // dch rkl 02/03/2017 Do not set this, per Jeanne //detail.QuantityCompleted = part.QuantityShipped; // dch rkl 12/05/2016 save quantity shipped // do save if (detail.ID != 0) { // update existing rows = _database.Update(detail); } else { // insert new rows = _database.Insert(detail); } } return(detail); }
public PartsEditExtdDescPage(App_WorkTicket workTicket, App_RepairPart part, PartsEditPage.PageMode pageMode, App_ScheduledAppointment scheduledAppointment) { _workTicket = workTicket; _part = part; _pageMode = pageMode; _scheduledAppointment = scheduledAppointment; _vm = new PartsEditExtdDescPageViewModel(part, workTicket); InitializeComponent(); SetPageLayout(); }
public PartsEditPageViewModel(App_WorkTicket workTicket, App_RepairPart partToEdit) { _workTicket = workTicket; _partToEdit = partToEdit; _warehouseList = new List <string>(); List <IM_Warehouse> lsItmWhse = GetWarehouses(); foreach (IM_Warehouse itemWhse in lsItmWhse) { _warehouseList.Add(string.Format("{0} - {1}", itemWhse.WarehouseCode, itemWhse.WarehouseDesc)); } // dch rkl 01/23/2017 added Unit of Measure List _unitOfMeasureList = App.Database.GetCI_UnitOfMeasureFromDB(); _unitOfMeasureList.Add(new CI_UnitOfMeasure() { UnitOfMeasure = "EACH" }); _unitOfMeasureList.Sort((x, y) => x.UnitOfMeasure.CompareTo(y.UnitOfMeasure)); }
public int DeleteRepairPart(App_RepairPart part) { int rows = 0; JT_TransactionImportDetail detail = new JT_TransactionImportDetail(); lock (_locker) { detail = _database.Table <JT_TransactionImportDetail>().Where( tid => (tid.ID == part.ID) ).FirstOrDefault(); detail.RemovePart = "Y"; detail.TransactionDate = System.DateTime.Now.ToString("yyyy-MM-dd"); detail.TransactionDateAsDateTime = System.DateTime.Now; rows = _database.Update(detail); } return(rows); }
public PartsEditPageViewModel(App_WorkTicket workTicket, App_RepairPart partToEdit) { // dch rkl 12/07/2016 catch exception try { _workTicket = workTicket; _partToEdit = partToEdit; // dch rkl 12/01/2016 Get Warehouse List from IM_Warehouse instead of IM_ItemWarehouse BEGIN //_warehouseList = GetTechnicianWarehouses(); //_warehouseList = new List<string>(); // dch rkl 12/01/2016 Get Warehouse List from IM_Warehouse instead of IM_ItemWarehouse //List<IM_ItemWarehouse> lsItmWhse = GetItemWarehouses(partToEdit.PartItemCode); //foreach (IM_ItemWarehouse itemWhse in lsItmWhse) //{ // _warehouseList.Add(itemWhse.WarehouseCode); //} _warehouseList = GetWarehouses(); foreach (IM_Warehouse whs in _warehouseList) { whs.WarehouseDesc = string.Format("{0} - {1}", whs.WarehouseCode, whs.WarehouseDesc); } // dch rkl 12/01/2016 Get Warehouse List from IM_Warehouse instead of IM_ItemWarehouse END // dch rkl 01/23/2017 added Unit of Measure List _unitOfMeasureList = App.Database.GetCI_UnitOfMeasureFromDB(); _unitOfMeasureList.Add(new CI_UnitOfMeasure() { UnitOfMeasure = "EACH" }); _unitOfMeasureList.Sort((x, y) => x.UnitOfMeasure.CompareTo(y.UnitOfMeasure)); } catch (Exception ex) { // dch rkl 12/07/2016 Log Error ErrorReporting errorReporting = new ErrorReporting(); errorReporting.sendException(ex, "TechDashboard.PartsEditPageViewModel(App_WorkTicket workTicket, App_RepairPart partToEdit"); } }
public List <App_RepairPart> RetrievePartsListFromWorkTicket(App_WorkTicket workTicket) { List <JT_TransactionImportDetail> importDetailList = null; List <SO_SalesOrderDetail> salesOrderDetaillist = null; List <App_RepairPart> partsList = new List <App_RepairPart>(); lock (_locker) { importDetailList = _database.Table <JT_TransactionImportDetail>().Where( tid => (tid.SalesOrderNo == workTicket.SalesOrderNo) && (tid.RecordType == "P") && (tid.WTNumber == workTicket.WTNumber) && (tid.WTStep == workTicket.WTStep) //&& //((tid.RemovePart == null) || (tid.RemovePart.ToUpper() != "Y")) we're going to remove those downstream ).ToList(); if ((importDetailList != null) && (importDetailList.Count > 0)) { partsList = new List <App_RepairPart>(); foreach (JT_TransactionImportDetail detail in importDetailList) { partsList.Add(new App_RepairPart(detail, workTicket)); } } } // now let's check for default parts lock (_locker) { salesOrderDetaillist = _database.Table <SO_SalesOrderDetail>().Where( tid => (tid.SalesOrderNo == workTicket.SalesOrderNo) && (tid.JT158_WTPart == "Y") && (tid.JT158_WTNumber == workTicket.WTNumber) && (tid.JT158_WTStep == workTicket.WTStep)) .ToList(); if ((salesOrderDetaillist != null) && (salesOrderDetaillist.Count > 0)) { foreach (SO_SalesOrderDetail detail in salesOrderDetaillist) { if (importDetailList.Count(x => x.ItemCode == detail.ItemCode) <= 0 && detail.ItemCode != "/EXPENSE") { var servicePart = _database.Table <JT_ServiceEquipmentParts>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); var equipmentAsset = _database.Table <JT_EquipmentAsset>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); var ciItem = _database.Table <CI_Item>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); App_RepairPart newRepairPart = new App_RepairPart(ciItem, workTicket); newRepairPart.PartItemCode = (servicePart != null) ? servicePart.PartItemCode : detail.ItemCode; newRepairPart.ProblemCode = (servicePart != null) ? servicePart.ProblemCode : ""; // dch rkl 11/30/2016 carry the SO Detail CommentText, Unit Price, Unit Cost, Quantity Required to the JT Transaction Import Detail part if (detail.CommentText != null) { newRepairPart.Comment = detail.CommentText; } newRepairPart.UnitPrice = (double)detail.UnitPrice; newRepairPart.UnitCost = (double)detail.UnitCost; newRepairPart.QuantityReqd = detail.QuantityOrdered; newRepairPart.Quantity = servicePart.Quantity; // dch rkl 01/20/2017 If Warehouse on Sales Order, use that if (detail.WarehouseCode != null) { newRepairPart.Warehouse = detail.WarehouseCode; } else { if (ciItem != null) { newRepairPart.Warehouse = ciItem.DefaultWarehouseCode; } else { //bk assuming that this is an expense or the like newRepairPart.Warehouse = ""; } } // dch rkl 01/13/2017 Part Description should come from sales order if (detail.ItemCodeDesc != null) { newRepairPart.PartItemCodeDescription = detail.ItemCodeDesc; } // dch rkl 12/05/2016 newRepairPart.QuantityShipped = (double)detail.QuantityShipped; // dch rkl 11/23/2016 Use Unit of Measure from SO_SalesOrderDetail newRepairPart.UnitOfMeasure = (detail.UnitOfMeasure != null) ? detail.UnitOfMeasure : ""; // dch rkl 01/23/2017 Capture SO Line Key newRepairPart.SoLineKey = detail.LineKey; JT_TransactionImportDetail newdetail = SaveRepairPart(newRepairPart, workTicket, new App_Technician(GetCurrentTechnicianFromDb())); newRepairPart.ID = newdetail.ID; partsList.Add(newRepairPart); } } } } // now let's cull removed parts from our list // dch rkl 12/05/2016 allow for cases where the same part number exists on multiple lines foreach (var part in partsList.ToList()) { var importDetail = _database.Table <JT_TransactionImportDetail>().Where( tid => (tid.SalesOrderNo == workTicket.SalesOrderNo) && (tid.RecordType == "P") && (tid.WTNumber == workTicket.WTNumber) && (tid.WTStep == workTicket.WTStep) && (tid.ItemCode == part.PartItemCode) && (tid.QuantityUsed == part.Quantity) && // dch rkl 12/05/2016 match on qty (tid.WarehouseCode == part.Warehouse) && // dch rkl 12/05/2016 match on whse (tid.LotSerialNo == part.LotSerialNo) && // dch rkl 12/05/2016 match on lot/serial (tid.UnitPrice == part.UnitPrice) && // dch rkl 12/05/2016 match on price (tid.UnitOfMeasure == part.UnitOfMeasure) && // dch rkl 12/05/2016 match on UM (tid.RemovePart == "Y")).FirstOrDefault(); if (importDetail != null) { partsList.Remove(part); } } return(partsList); }
public List <App_RepairPart> GetDefaultPartsFromWorkTicket(App_WorkTicket workTicket, List <App_RepairPart> importDetailList) { List <SO_SalesOrderDetail> salesOrderDetaillist = null; List <App_RepairPart> partsList = new List <App_RepairPart>(); lock (_locker) { salesOrderDetaillist = _database.Table <SO_SalesOrderDetail>().Where( tid => (tid.SalesOrderNo == workTicket.SalesOrderNo) && (tid.JT158_WTPart == "Y") && (tid.JT158_WTNumber == workTicket.WTNumber) && (tid.JT158_WTStep == workTicket.WTStep)) .ToList(); if ((salesOrderDetaillist != null) && (salesOrderDetaillist.Count > 0)) { foreach (SO_SalesOrderDetail detail in salesOrderDetaillist) { //bk get a more accurate pr if (importDetailList.Count(x => x.PartItemCode == detail.ItemCode && x.SoLineKey == detail.LineKey) <= 0 && detail.ItemCode != "/EXPENSE") { try { var servicePart = _database.Table <JT_ServiceEquipmentParts>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); var equipmentAsset = _database.Table <JT_EquipmentAsset>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); var ciItem = _database.Table <CI_Item>().Where(x => x.ItemCode == detail.ItemCode).FirstOrDefault(); App_RepairPart newRepairPart = new App_RepairPart(ciItem, workTicket, detail.ItemCode); newRepairPart.PartItemCode = (servicePart != null) ? servicePart.PartItemCode : detail.ItemCode; newRepairPart.ProblemCode = (servicePart != null) ? servicePart.ProblemCode : ""; // dch rkl 11/30/2016 carry the SO Detail CommentText, Unit Price, Unit Cost, Quantity Required to the JT Transaction Import Detail part if (detail.CommentText != null) { newRepairPart.Comment = detail.CommentText; } newRepairPart.UnitPrice = (double)detail.UnitPrice; newRepairPart.UnitCost = (double)detail.UnitCost; newRepairPart.QuantityReqd = detail.QuantityOrdered; // dch rkl 02/03/2017 Per Jeanne, the quantity used (shipped) on the SO should map to Quantity Used on the ticket. newRepairPart.Quantity = (double)detail.QuantityShipped; // dch rkl 02/03/2017 Handle nulls if (servicePart != null) { newRepairPart.Quantity = servicePart.Quantity; } //newRepairPart.Quantity = servicePart.Quantity; // dch rkl 01/20/2017 If Warehouse on Sales Order, use that if (detail.WarehouseCode != null) { newRepairPart.Warehouse = detail.WarehouseCode; } else { if (ciItem != null) { newRepairPart.Warehouse = ciItem.DefaultWarehouseCode; } else { //bk assuming that this is an expense or the like newRepairPart.Warehouse = ""; } } // dch rkl 01/13/2017 Part Description should come from sales order if (detail.ItemCodeDesc != null) { newRepairPart.PartItemCodeDescription = detail.ItemCodeDesc; } // dch rkl 12/05/2016 newRepairPart.QuantityShipped = (double)detail.QuantityShipped; // dch rkl 11/23/2016 Use Unit of Measure from SO_SalesOrderDetail newRepairPart.UnitOfMeasure = (detail.UnitOfMeasure != null) ? detail.UnitOfMeasure : ""; // dch rkl 01/23/2017 Capture SO Line Key newRepairPart.SoLineKey = detail.LineKey; /*if (newRepairPart.Quantity == 0) * { * JT_TransactionImportDetail newdetail = SaveRepairPart(newRepairPart, workTicket, new App_Technician(GetCurrentTechnicianFromDb())); * newRepairPart.ID = newdetail.ID; * }*/ partsList.Add(newRepairPart); } catch (Exception ex) { // dch rkl 02/03/2017 Log Error //ErrorReporting errorReporting = new ErrorReporting(); //errorReporting.sendException(ex, "TechDashboard.TechDashboardDB_RepairParts.RetrievePartsListFromWorkTicket"); App.sendException(ex, "TechDashboard.techDashboardDB_RepairParts.RetrievePartsListFromWorkTicket"); } } } } } return(partsList); }
private void ListViewItemsList_ItemTapped(object sender, ItemTappedEventArgs e) { App_RepairPart part = new App_RepairPart(e.Item as App_Item, _vm.WorkTicket); Navigation.PushAsync(new PartsEditPage(_vm.WorkTicket, part, PartsEditPage.PageMode.Add, _scheduledAppointment)); }