using System; using System.Windows; using System.Windows.Media.Imaging; using Comal.Classes; using InABox.Core; using InABox.DynamicGrid; using InABox.WPF; using PRSDesktop.Panels.Jobs; namespace PRSDesktop { internal class JobDesignGrid : DynamicDataGrid, IJobControl { private BitmapImage barcode = PRSDesktop.Resources.barcode.AsBitmapImage(); private BitmapImage design = PRSDesktop.Resources.design.AsBitmapImage(); private BitmapImage qacheck = PRSDesktop.Resources.checklist.AsBitmapImage(); private BitmapImage tick = PRSDesktop.Resources.tick.AsBitmapImage(); public JobDesignGrid() { Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows, DynamicGridOption.ImportData); //ActionColumns.Add( // new DynamicTickColumn(PRSDesktop.Resources.design.AsBitmapImage(), x => x.Designed) // { // Action = DesignedClick // } // ); //ActionColumns.Add(new DynamicTickColumn(PRSDesktop.Resources.checklist.AsBitmapImage(), x => x.Checked)); //ActionColumns.Add(new DynamicTickColumn(PRSDesktop.Resources.factory.AsBitmapImage(), x => x.Issued)); //ActionColumns.Add(new DynamicImageColumn() { Image = DesignedImage, Action = DesignedClick }); //ActionColumns.Add(new DynamicImageColumn() { Image = CheckedImage, Action = CheckedClick }); //ActionColumns.Add(new DynamicImageColumn() { Image = BarcodeImage, Action = BarcodeClick }); //HiddenColumns.Add(x => x.Designed); //HiddenColumns.Add(x => x.Checked); //HiddenColumns.Add(x => x.Issued); //OnAddItem += DoAddItem; //OnEditItem += DoEditItem; } public CoreTable Setouts { get; private set; } public Guid ParentID { get; set; } public JobPanelSettings Settings { get; set; } protected override void DoImport() { var window = new JobDesignImportWindow(); if (window.ShowDialog() == true) Refresh(false,true); } protected override void Reload(Filters criteria, Columns columns, ref SortOrder sort, Action action) { criteria.Add(new Filter(x => x.JobLink.ID).IsEqualTo(ParentID)); sort = new SortOrder(x => x.Number, SortDirection.Descending); base.Reload(criteria, columns, ref sort, action); } protected override void DoAdd(bool OpenEditorOnDirectEdit = false) { if (ParentID.Equals(Guid.Empty) || ParentID.Equals(CoreUtils.FullGuid)) MessageBox.Show("Please select a Job first!"); else base.DoAdd(); } protected override Setout CreateItem() { var setout = base.CreateItem(); setout.JobLink.ID = ParentID; //setout.Job = new Client().Load(new Filter(x => x.ID).IsEqualTo(CurrentJobID)).FirstOrDefault(); return setout; } //public override bool EditItems(Setout[] items) //{ // Setout item = items.FirstOrDefault(); // if (item == null) // return false; // SetoutDetails form = new SetoutDetails(item); // return form.ShowDialog() == true; //} //private BitmapImage DesignedImage(DataRow row) //{ // if (row == null) // return design; // DateTime designed = row.Get(x => x.Designed); // //DateTime qachecked = row.Get(x => x.Checked); // //DateTime issued = row.Get(x => x.Issued); // return designed.IsEmpty() /* && qachecked.IsEmpty() && issued.IsEmpty() */ ? null : tick; //} //private bool DesignedClick(CoreRow row) //{ // Setout setout = LoadItem(row); // bool designed = setout.Designed.IsEmpty(); // setout.Designed = designed ? DateTime.Now : DateTime.MinValue; // //setout.Checked = DateTime.MinValue; // //setout.Issued = DateTime.MinValue; // //foreach (SetoutStage stage in setout.Stages) // //{ // // stage.Started = DateTime.MinValue; // // stage.Completed = DateTime.MinValue; // //} // new Client().Save(setout,"Setout Designed Flag set to " + (setout.Designed.IsEmpty()? "false" : "true")); // return true; //} //private BitmapImage CheckedImage(DataRow row) //{ // if (row == null) // return qacheck; // DateTime qachecked = row.Get(x => x.Checked); // //DateTime issued = row.Get(x => x.Issued); // return qachecked.IsEmpty() /* && issued.IsEmpty() */ ? null : tick; //} //private bool CheckedClick(DataRow row) //{ // //Setout setout = LoadItem(row); // //bool qachecked = setout.Checked.IsEmpty(); // //setout.Designed = qachecked ? setout.Designed.IsEmpty() ? DateTime.Now : setout.Designed : setout.Designed; // //setout.Checked = qachecked ? DateTime.Now : DateTime.MinValue; // //setout.Issued = DateTime.MinValue; // //foreach (SetoutStage stage in setout.Stages) // //{ // // stage.Started = DateTime.MinValue; // // stage.Completed = DateTime.MinValue; // //} // ////if (issue) // //// setout.MoveNext(); // //new Client().Save(setout, "Setout QA Flag set to " + (setout.Designed.IsEmpty() ? "false" : "true")); // //return true; // return false; //} //private BitmapImage BarcodeImage(DataRow row) //{ // if (row == null) // return barcode; // DateTime issued = row.Get(x => x.Issued); // return issued.IsEmpty() ? null : barcode; //} //private bool BarcodeClick(DataRow row) //{ // //DateTime issued = row.Get(x => x.Issued); // //if (issued.IsEmpty()) // // return false; // return false; //} } }