Jelajahi Sumber

Merge remote-tracking branch 'origin/nick' into kenric

Kenric Nugteren 2 tahun lalu
induk
melakukan
02f6773c7f

+ 6 - 0
prs.classes/Entities/Stock/StockMovement.cs

@@ -154,6 +154,11 @@ namespace Comal.Classes
         [Obsolete("Replaced with Dimensions", true)]
         public double UnitSize { get; set; }
 
+
+        [CurrencyEditor(Visible = Visible.Default)]
+        [EditorSequence(11)]
+        public double Cost { get; set; }
+
         protected override void Init()
         {
             base.Init();
@@ -169,6 +174,7 @@ namespace Comal.Classes
             Batch = new StockMovementBatchLink();
             JobRequisitionItem = new JobRequisitionItemLink();
             Dimensions = new StockDimensions();
+            Cost = 0.0;
         }
 
         private void Product_PropertyChanged(object sender, PropertyChangedEventArgs e)

+ 1 - 6
prs.desktop/Dashboards/Job Requisition Items Review Dashboard/JobRequisitionReviewDashboard.xaml.cs

@@ -148,7 +148,7 @@ namespace PRSDesktop
             AddButton("Include Archived", null, ViewArchived);
             AddButton("Include Cancelled", null, ViewCancelled);
 
-            ActionColumns.Add(new DynamicActionColumn(ViewStockImage, null) { ToolTip = ShowStockToolTip });
+            ActionColumns.Add(new DynamicActionColumn(PRSDesktop.Resources.rack.AsBitmapImage(), null) { ToolTip = ShowStockToolTip });
 
             ColumnsTag = "JobRequisitionReview";
 
@@ -223,11 +223,6 @@ namespace PRSDesktop
             return true;
         }
 
-        private BitmapImage? ViewStockImage(CoreRow? arg)
-        {
-            return PRSDesktop.Resources.warehouse.AsBitmapImage();
-        }
-
         protected override void GenerateColumns(DynamicGridColumns columns)
         {
             columns.Add<JobRequisitionItem, DateTime>(x => x.Created, 80, "Date", "", Alignment.MiddleLeft);

+ 1 - 1
prs.desktop/Dashboards/Job Requisition Items Review Dashboard/StockHoldingToolTipGrid.cs

@@ -21,7 +21,7 @@ namespace PRSDesktop
             var columns = new DynamicGridColumns();
             columns.Add<StockHolding, string>(x => x.Location.Description, 110, "Location", "", Alignment.MiddleLeft);
             columns.Add<StockHolding, string>(x => x.Job.JobNumber, 50, "Job", "", Alignment.MiddleLeft);
-            columns.Add<StockHolding, string>(x => x.Style.Description, 150, "Style", "", Alignment.MiddleLeft);
+            columns.Add<StockHolding, string>(x => x.Style.Description, 250, "Style", "", Alignment.MiddleLeft);
             columns.Add<StockHolding, double>(x => x.Units, 50, "Units", "", Alignment.MiddleLeft);
             columns.Add<StockHolding, string>(x => x.Dimensions.UnitSize, 60, "Size", "", Alignment.MiddleLeft);
             return columns;

+ 9 - 5
prs.desktop/Panels/Jobs/JobRequisitionGrid.cs

@@ -16,10 +16,10 @@ namespace PRSDesktop
 {
     internal class JobRequisitionGrid : DynamicDataGrid<JobRequisition>, IJobControl
     {
-        
+
         private readonly Button _approve;
         private readonly Button _createtask;
-        
+
         public JobRequisitionGrid()
         {
             Options.AddRange(
@@ -29,13 +29,13 @@ namespace PRSDesktop
             HiddenColumns.Add(x => x.ID);
             HiddenColumns.Add(x => x.Job.ID);
             HiddenColumns.Add(x => x.Approved);
-            
+
             if (Security.IsAllowed<CanApproveJobRequisitions>())
                 _approve = AddButton("Approve", null, ApproveClick);
 
             _createtask = AddButton("Create Task", null, CreateTask);
         }
-        
+
         private bool ApproveClick(Button button, CoreRow[] rows)
         {
             if (rows == null || !rows.Any())
@@ -99,7 +99,7 @@ namespace PRSDesktop
             }
             Progress.Close();
             var page = new KanbanGrid();
-            page.OnAfterSave += (form, items) => 
+            page.OnAfterSave += (form, items) =>
             {
                 KanbanAfterSave(form, items);
             };
@@ -134,7 +134,11 @@ namespace PRSDesktop
         protected override void Reload(Filters<JobRequisition> criteria, Columns<JobRequisition> columns, ref SortOrder<JobRequisition> sort,
             Action<CoreTable, Exception> action)
         {
+            if (!Security.IsAllowed<CanApproveJobRequisitions>())
+                criteria.Add(new Filter<JobRequisition>(x => x.Approved).IsNotEqualTo(DateTime.MinValue));
+
             criteria.Add(new Filter<JobRequisition>(x => x.Job.ID).IsEqualTo(JobID));
+
             base.Reload(criteria, columns, ref sort, action);
         }
 

+ 15 - 2
prs.mobile/comal.timesheets/Warehousing/Receivals/Receivals.xaml.cs

@@ -287,7 +287,10 @@ namespace comal.timesheets
 
                     CoreTable table = new Client<PurchaseOrderItem>().Query(new Filter<PurchaseOrderItem>(x => x.ID).IsEqualTo(poItemShell.ID),
                         columns);
-                    PurchaseOrderItem purchaseOrderItem = table.Rows.FirstOrDefault().ToObject<PurchaseOrderItem>();
+                    PurchaseOrderItem purchaseOrderItem = table.Rows.FirstOrDefault()?.ToObject<PurchaseOrderItem>();
+
+                    if (purchaseOrderItem == null)
+                        return;
 
                     purchaseOrderItem.ID = Guid.Empty;
                     purchaseOrderItem.Created = DateTime.Now;
@@ -356,6 +359,10 @@ namespace comal.timesheets
                     CoreTable table = new Client<PurchaseOrderItem>().Query(new Filter<PurchaseOrderItem>(x => x.ID).IsEqualTo(poItemShell.ID)
                         , columns);
                     PurchaseOrderItem newPurchaseOrderItem = table.Rows.FirstOrDefault().ToObject<PurchaseOrderItem>();
+
+                    if (newPurchaseOrderItem == null)
+                        return;
+
                     newPurchaseOrderItem.ReceivedDate = DateTime.Now;
                     newPurchaseOrderItem.ID = Guid.Empty;
                     newPurchaseOrderItem.Created = DateTime.Now;
@@ -396,6 +403,7 @@ namespace comal.timesheets
             purchaseOrderItem.Dimensions.Weight = poItemShell.DimensionsWeight;
             purchaseOrderItem.Dimensions.Value = poItemShell.DimensionsValue;
             purchaseOrderItem.Dimensions.UnitSize = poItemShell.DimensionsUnitSize;
+            purchaseOrderItem.Cost = poItemShell.Cost;
             return purchaseOrderItem;
         }
 
@@ -816,7 +824,8 @@ namespace comal.timesheets
                                x => x.Dimensions.Height, //24
                                x => x.Dimensions.Weight, //25
                                x => x.Dimensions.Value, //26
-                               x => x.Dimensions.UnitSize //27
+                               x => x.Dimensions.UnitSize, //27
+                               x => x.Cost //28
                                );
     }
 
@@ -862,6 +871,8 @@ public class POItemShell
     public ImageSource ImageSource { get; set; }
     public double LastRowHeight { get; set; }
 
+    public double Cost { get; set; }
+
     public Guid DimensionsUnitID { get; set; }
     public double DimensionsQuantity { get; set; }
     public double DimensionsLength { get; set; }
@@ -911,6 +922,7 @@ public class POItemShell
         DimensionsWeight = 0;
         DimensionsValue = 0;
         DimensionsUnitSize = "";
+        Cost = 0.0;
     }
 
     public POItemShell DuplicateNewShell(POItemShell poitemshell)
@@ -956,6 +968,7 @@ public class POItemShell
             DimensionsWeight = poitemshell.DimensionsWeight,
             DimensionsValue = poitemshell.DimensionsValue,
             DimensionsUnitSize = poitemshell.DimensionsUnitSize,
+            Cost = poitemshell.Cost
         };
         return shell;
     }

+ 4 - 1
prs.stores/PurchaseOrderItemStore.cs

@@ -26,6 +26,7 @@ namespace Comal.Stores
                 var result = Provider.Query(
                     new Filter<StockMovement>(x => x.OrderItem.ID).IsEqualTo(entity.ID),
                     new Columns<StockMovement>(
+                        x => x.ID,
                         x => x.Date,
                         x => x.Product.ID,
                         x => x.Received,
@@ -41,7 +42,8 @@ namespace Comal.Stores
                         x => x.Dimensions.Width,
                         x => x.Dimensions.Height,
                         x => x.Dimensions.Weight,
-                        x => x.Notes
+                        x => x.Notes,
+                        x => x.Cost
                     )
                 ).Rows.Select(x => x.ToObject<StockMovement>()).ToList();
                 if (!result.Any())
@@ -167,6 +169,7 @@ namespace Comal.Stores
                 movement.Style.Code = entity.Style.Code;
                 movement.Style.Description = entity.Style.Description;
                 movement.Notes = string.Format("Received on PO {0}", entity.PurchaseOrderLink.PONumber);
+                movement.Cost = entity.Cost;
             }
 
             var updates = movements.Where(x => x.IsChanged());