Sfoglia il codice sorgente

Made PurchaseOrderItem no longer an IJobMaterial, and added POIA to JobMaterial union

Kenric Nugteren 10 mesi fa
parent
commit
6e1da36964

+ 12 - 1
prs.classes/Entities/Job/Materials/JobMaterials.cs

@@ -130,7 +130,18 @@ namespace Comal.Classes
             AddTable<StockMovement>();
             AddTable<JobBillOfMaterialsItem>();
             AddTable<JobRequisitionItem>();
-            AddTable<PurchaseOrderItem>();
+            var poia = AddTable<PurchaseOrderItemAllocation>()
+                .AliasField(x => x.Product.ID, x => x.Item.Product.ID)
+                .AliasField(x => x.Style.ID, x => x.Item.Style.ID);
+
+            var dimColJobMaterial = new Column<IJobMaterial>(x => x.Dimensions);
+            var dimColPOIA = new Column<PurchaseOrderItemAllocation>(x => x.Item.Dimensions);
+            foreach(var column in Dimensions.GetFilterColumns())
+            {
+                poia.AliasField(
+                    CoreUtils.CreateLambdaExpression<IJobMaterial>(dimColJobMaterial + "." + column.Property),
+                    CoreUtils.CreateLambdaExpression<PurchaseOrderItemAllocation>(dimColPOIA + "." + column.Property));
+            }
         }
 
         public override bool Distinct => true;

+ 7 - 1
prs.classes/Entities/Job/Requisitions/JobRequisitionItemPurchaseOrderItem.cs

@@ -14,17 +14,23 @@ namespace Comal.Classes
         [EntityRelationship(DeleteAction.Cascade)]
         public PurchaseOrderItemLink Item { get; set; }
         
+        /// <summary>
+        /// This may not be blank.
+        /// </summary>
         [RequiredColumn]
         [EntityRelationship(DeleteAction.Cascade)]
         public JobLink Job { get; set; }
         
+        /// <summary>
+        /// This may be an empty link. The interface is as such: if there is no JRI, then we are creating a reserve and allocation just against the job. If there is a JRI,
+        /// then received stock is reserved and allocated for the JRI.
+        /// </summary>
         [RequiredColumn]
         [EntityRelationship(DeleteAction.Cascade)]
         public JobRequisitionItemLink JobRequisitionItem { get; set; }
         
         [RequiredColumn]
         public double Quantity { get; set; }
-        
     }
     
     [Caption("Requisition / PO Item Links")]

+ 1 - 1
prs.classes/Entities/PurchaseOrder/PurchaseOrderItem.cs

@@ -39,7 +39,7 @@ namespace Comal.Classes
     [UserTracking(typeof(Bill))]
     [Caption("Purchase Order Items")]
     public class PurchaseOrderItem : StockEntity, IRemotable, IPersistent, IOneToMany<PurchaseOrder>, ITaxable, IOneToMany<Consignment>, IOneToMany<Job>,
-        ILicense<AccountsPayableLicense>, IJobMaterial, IPostableFragment<PurchaseOrder>
+        ILicense<AccountsPayableLicense>, IPostableFragment<PurchaseOrder>
     {
         
         [RequiredColumn]

+ 1 - 0
prs.classes/Entities/PurchaseOrder/PurchaseOrderItemLink.cs

@@ -10,6 +10,7 @@ namespace Comal.Classes
         [PopupEditor(typeof(PurchaseOrderItem), "PurchaseOrderLink.PONumber", "Product.Code", "Description", "Qty", "ExTax", "TaxCode.ID", "TaxCode.Rate", "Tax", "IncTax", "CostCentre.ID", "PurchaseGL.ID")]
         public override Guid ID { get; set; }
 
+        [Obsolete("Replaced with Allocations Aggregate", true)]
         public JobLink Job { get; set; }
 
         [TextBoxEditor(Visible = Visible.Default, Editable = Editable.Hidden)]