|
@@ -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;
|
|
|
}
|
|
|
|