| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Windows.Controls;
 
- using System.Windows.Media.Imaging;
 
- using Comal.Classes;
 
- using InABox.Clients;
 
- using InABox.Core;
 
- using InABox.DynamicGrid;
 
- using InABox.Wpf;
 
- using InABox.WPF;
 
- namespace PRSDesktop
 
- {
 
-     public class SupplierBillLineGrid : DynamicOneToManyGrid<Bill, BillLine>
 
-     {
 
-         private static readonly BitmapImage pencil = InABox.Wpf.Resources.pencil.AsBitmapImage();
 
-         public SupplierBillLineGrid()
 
-         {
 
-             Options
 
-                 .BeginUpdate()
 
-                 .Clear()
 
-                 .Add(DynamicGridOption.AddRows)
 
-                 .Add(DynamicGridOption.DeleteRows)
 
-                 .Add(DynamicGridOption.SelectColumns)
 
-                 .Add(DynamicGridOption.DirectEdit)
 
-                 .EndUpdate();
 
-             AddButton("Import", PRSDesktop.Resources.purchase.AsBitmapImage(), ImportPOLines);
 
-             HiddenColumns.Add(x => x.TaxCode.ID);
 
-             HiddenColumns.Add(x => x.TaxCode.Code);
 
-             HiddenColumns.Add(x => x.TaxCode.Description);
 
-             HiddenColumns.Add(x => x.TaxCode.Rate);
 
-             HiddenColumns.Add(x => x.TaxRate);
 
-             HiddenColumns.Add(x => x.ExTax);
 
-             HiddenColumns.Add(x => x.Tax);
 
-             HiddenColumns.Add(x => x.IncTax);
 
-             HiddenColumns.Add(x => x.Description);
 
-             ActionColumns.Add(new DynamicImageColumn(pencil, BillLineEdit_Click));
 
-         }
 
-         public override void Load(object item, Func<Type, CoreTable>? PageDataHandler)
 
-         {
 
-             Refresh(true, false);
 
-             base.Load(item, type =>
 
-             {
 
-                 var data = PageDataHandler?.Invoke(type);
 
-                 if(data is null && type == typeof(BillLine))
 
-                 {
 
-                     data = new Client<BillLine>().Query(
 
-                         new Filter<BillLine>(x => x.BillLink.ID).IsEqualTo(Item.ID),
 
-                         DynamicGridUtils.LoadEditorColumns(DataColumns()),
 
-                         LookupFactory.DefineSort<BillLine>());
 
-                 }
 
-                 return data;
 
-             });
 
-         }
 
-         private bool BillLineEdit_Click(CoreRow? row)
 
-         {
 
-             if(row is null)
 
-             {
 
-                 return false;
 
-             }
 
-             var item = LoadItem(row);
 
-             if (EditItems(new BillLine[] { item }))
 
-             {
 
-                 SaveItem(item);
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public override void ConfigureColumns(DynamicGridColumns columns)
 
-         {
 
-             base.ConfigureColumns(columns);
 
-             var orderItemColumn = columns.Find(x => x.ColumnName == $"{nameof(BillLine.OrderItem)}.{nameof(BillLine.OrderItem.ID)}");
 
-             if (orderItemColumn != null)
 
-             {
 
-                 orderItemColumn.Editor.Editable = Editable.DisabledOnDirectEdit;
 
-             }
 
-         }
 
-         private bool ImportPOLines(Button arg1, CoreRow[] arg2)
 
-         {
 
-             MultiSelectDialog<PurchaseOrderItem> dlg = new MultiSelectDialog<PurchaseOrderItem>(
 
-                 new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.SupplierLink.ID).IsEqualTo(Item.SupplierLink.ID)
 
-                     .And(x => x.PurchaseOrderLink.ClosedDate).IsEqualTo(DateTime.MinValue),
 
-                 new Columns<PurchaseOrderItem>
 
-                 (
 
-                     x => x.ID,
 
-                     x => x.Description,
 
-                     x => x.Product.Code,
 
-                     x => x.ReceivedDate,
 
-                     x => x.Consignment.Number,
 
-                     x => x.PurchaseOrderLink.PONumber
 
-             ));
 
-             if (dlg.ShowDialog() == true)
 
-             {
 
-                 var items = new Client<PurchaseOrderItem>().Query(
 
-                     new Filter<PurchaseOrderItem>(x => x.ID).InList(dlg.IDs()),
 
-                     new Columns<PurchaseOrderItem>(x => x.ID)
 
-                         .Add(x => x.Description)
 
-                         .Add(x => x.TaxCode.ID)
 
-                         .Add(x => x.TaxCode.Code)
 
-                         .Add(x => x.TaxCode.Description)
 
-                         .Add(x => x.TaxCode.Rate)
 
-                         .Add(x => x.TaxRate)
 
-                         .Add(x => x.ExTax)
 
-                         .Add(x => x.Tax)
 
-                         .Add(x => x.IncTax)
 
-                         .Add(x => x.Created)
 
-                         .Add(x => x.PurchaseOrderLink.ID)
 
-                         .Add(x => x.PurchaseOrderLink.PONumber)
 
-                         .Add(x => x.Product.ID)
 
-                         .Add(x => x.Product.Code)
 
-                         .Add(x => x.Product.Name)
 
-                 );
 
-                 foreach (var row in items.Rows)
 
-                 {
 
-                     var line = CreateItem();
 
-                     line.OrderItem.ID = row.Get<PurchaseOrderItem, Guid>(x => x.ID);
 
-                     line.OrderItem.PurchaseOrderLink.ID = row.Get<PurchaseOrderItem, Guid>(x => x.PurchaseOrderLink.ID);
 
-                     line.OrderItem.PurchaseOrderLink.PONumber = row.Get<PurchaseOrderItem, String>(x => x.PurchaseOrderLink.PONumber);
 
-                     var description = new List<string>();
 
-                     if (row.Get<PurchaseOrderItem, Guid>(x => x.Product.ID) != Guid.Empty)
 
-                         description.Add(string.Format("{0} : {1}", row.Get<PurchaseOrderItem, string>(x => x.Product.Code),
 
-                             row.Get<PurchaseOrderItem, string>(x => x.Product.Name)));
 
-                     var Description = row.Get<PurchaseOrderItem, string>(x => x.Description);
 
-                     if (!string.IsNullOrEmpty(Description))
 
-                         description.Add(Description);
 
-                     line.Description = string.Join("\n", description);
 
-                     line.ExTax = row.Get<PurchaseOrderItem, double>(x => x.ExTax);
 
-                     line.TaxCode.ID = row.Get<PurchaseOrderItem, Guid>(x => x.TaxCode.ID);
 
-                     line.TaxCode.Code = row.Get<PurchaseOrderItem, string>(x => x.TaxCode.Code);
 
-                     line.TaxCode.Description = row.Get<PurchaseOrderItem, string>(x => x.TaxCode.Description);
 
-                     line.TaxCode.Rate = row.Get<PurchaseOrderItem, double>(x => x.TaxCode.Rate);
 
-                     //line.TaxRate = row.Get<PurchaseOrderItem, double>(x => x.TaxRate);                    
 
-                     //line.Tax = row.Get<PurchaseOrderItem, double>(x => x.Tax);
 
-                     //line.IncTax = row.Get<PurchaseOrderItem, double>(x => x.IncTax);
 
-                     line.OrderItem.Product.ID = row.Get<PurchaseOrderItem, Guid>(x => x.Product.ID);
 
-                     line.OrderItem.Product.Code = row.Get<PurchaseOrderItem, string>(x => x.Product.Code);
 
-                     line.OrderItem.Product.Name = row.Get<PurchaseOrderItem, string>(x => x.Product.Name);
 
-                     Items.Add(line);
 
-                 }
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-     }
 
- }
 
 
  |