Browse Source

Added code for exporting AccountingDate and setting TransactionType, and also adding all movements to Post Result

Kenric Nugteren 1 year ago
parent
commit
2fd26a42b4
1 changed files with 6 additions and 101 deletions
  1. 6 101
      prs.shared/Posters/Timberline/StockMovementTimberlinePoster.cs

+ 6 - 101
prs.shared/Posters/Timberline/StockMovementTimberlinePoster.cs

@@ -305,7 +305,7 @@ public class Module
                     Category = "",
                     Units = movement.Units,
                     UnitCost = movement.Cost,
-                    // TransactionType = ???
+                    TransactionType = StockMovementTimberlineTransactionType.IVCost
                 };
                 return ModifyLine(directCost, movement);
             }
@@ -316,6 +316,7 @@ public class Module
                 var batch = batches.GetValueOrDefault(movement.Batch.ID);
 
                 line.TransactionDate = movement.Date;
+                line.AccountingDate = movement.Date;
                 line.Description = product.Name;
                 line.Amount = movement.Value;
                 line.CreditAccount = product.PurchaseGL.Code;
@@ -398,11 +399,13 @@ public class Module
                         var directCost = CreateDirectCost(jobMvt);
                         if(ProcessDirectCostLine(model, jobMvt, directCost))
                         {
-                            result.AddSuccess(jobMvt, directCost);
+                            result.AddSuccess(mvtFrom, directCost);
+                            result.AddSuccess(mvtTo, directCost);
                         }
                         else
                         {
-                            result.AddFailed(jobMvt, "Failed by script.");
+                            result.AddFailed(mvtFrom, "Failed by script.");
+                            result.AddFailed(mvtTo, "Failed by script.");
                         }
                     }
                     else
@@ -430,104 +433,6 @@ public class Module
                 }
             }
 
-            /*var lines = model.GetTable<PurchaseOrderItem>("PurchaseOrder_PurchaseOrderItem").ToObjects<PurchaseOrderItem>()
-                .GroupBy(x => x.PurchaseOrderLink.ID).ToDictionary(x => x.Key, x => x.ToList());
-            foreach (var purchaseOrder in model.GetTable<PurchaseOrder>().ToObjects<PurchaseOrder>())
-            {
-                var c = new PurchaseOrderTimberlineHeader
-                {
-                    CommitmentID = purchaseOrder.PONumber,
-                    CommitmentType = PurchaseOrderTimberlineCommitmentType.PO,
-                    Description = purchaseOrder.Description,
-                    VendorID = purchaseOrder.SupplierLink.Code,
-                    Date = purchaseOrder.IssuedDate,
-                    // RetainagePercent
-                    // Committed to JC
-                    Closed = purchaseOrder.ClosedDate != DateTime.MinValue,
-                    // Printed
-                };
-                if (!ProcessHeader(model, purchaseOrder, c))
-                {
-                    cs.AddFailed(purchaseOrder, "Failed by script.");
-                }
-                else
-                {
-                    // Dictionary from line number to POItem.
-                    var items = new Dictionary<int, PurchaseOrderItem>();
-                    var POItems = lines.GetValueOrDefault(purchaseOrder.ID)?.ToList() ?? new List<PurchaseOrderItem>();
-                    foreach (var purchaseOrderItem in POItems)
-                    {
-                        if (int.TryParse(purchaseOrderItem.PostedReference, out var itemNumber))
-                        {
-                            if (items.TryGetValue(itemNumber, out var oldItem))
-                            {
-                                // Theoretically shouldn't happen, but just in case.
-                                MessageBox.Show($"Warning: Multiple PurchaseOrder Items have the same line number for export; the line number for '{purchaseOrderItem.Description}' will be changed in the export.");
-                                Logger.Send(LogType.Error, "", $"Purchase Order Post: Multiple POItems with the same Line Number; changing line number of POItem {purchaseOrderItem.ID}");
-                                purchaseOrderItem.PostedReference = "";
-                            }
-                            else
-                            {
-                                items[itemNumber] = purchaseOrderItem;
-                            }
-                        }
-                    }
-
-                    var success = true;
-                    foreach (var purchaseOrderItem in POItems)
-                    {
-                        if (!int.TryParse(purchaseOrderItem.PostedReference, out var itemNumber))
-                        {
-                            itemNumber = 1;
-                            while (items.ContainsKey(itemNumber))
-                            {
-                                ++itemNumber;
-                            }
-
-                            items[itemNumber] = purchaseOrderItem;
-                            purchaseOrderItem.PostedReference = itemNumber.ToString();
-                        }
-                        var ci = new PurchaseOrderTimberlineLine
-                        {
-                            CommitmentID = purchaseOrder.PONumber,
-                            ItemNumber = itemNumber,
-                            Description = purchaseOrderItem.Description,
-                            // RetainagePercent = ,
-                            DeliveryDate = purchaseOrderItem.ReceivedDate,
-                            //ScopeOfWork
-                            Job = purchaseOrderItem.Job.JobNumber,
-                            //Extra = purchaseOrderItem.Job
-                            CostCode = purchaseOrderItem.CostCentre.Code,
-                            //Category = purchaseOrderItem.cat
-                            TaxGroup = purchaseOrderItem.TaxCode.Code,
-                            Units = purchaseOrderItem.Qty,
-                            UnitCost = purchaseOrderItem.Cost,
-                            UnitDescription = purchaseOrderItem.Dimensions.UnitSize,
-                            Amount = purchaseOrderItem.IncTax,
-                            // BoughtOut
-                        };
-
-                        if (!ProcessLine(model, purchaseOrderItem, ci))
-                        {
-                            success = false;
-                            break;
-                        }
-                        c.Lines.Add(ci);
-                    }
-                    if (success)
-                    {
-                        foreach (var item in POItems)
-                        {
-                            cs.AddFragment(item);
-                        }
-                        cs.AddSuccess(purchaseOrder, c);
-                    }
-                    else
-                    {
-                        cs.AddFailed(purchaseOrder, "Failed by script.");
-                    }
-                }
-            }*/
             return result;
         }