コード例 #1
0
        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));
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 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);
         }
     }
 }
コード例 #6
0
        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);
        }
コード例 #7
0
 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();
 }
コード例 #8
0
 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);
     }
 }
コード例 #9
0
 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)");
     }
 }
コード例 #11
0
        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();
        }
コード例 #12
0
        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)");
            }
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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();
        }
コード例 #15
0
        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));
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        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");
            }
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        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);
        }
コード例 #20
0
        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));
        }