|
@@ -181,6 +181,9 @@ public class StockMovementTimberlineGL : IStockMovementTimberlineLine
|
|
|
|
|
|
public class StockMovementTimberlineSettings : TimberlinePosterSettings<StockMovement>
|
|
|
{
|
|
|
+ [TextBoxEditor]
|
|
|
+ public string StockTakeGL { get; set; }
|
|
|
+
|
|
|
protected override string DefaultScript()
|
|
|
{
|
|
|
return @"
|
|
@@ -311,6 +314,7 @@ public class StockMovementTimberlinePoster : ITimberlinePoster<StockMovement, St
|
|
|
line.Description = product.Name;
|
|
|
line.Amount = movement.Value;
|
|
|
line.CreditAccount = product.PurchaseGL.Code;
|
|
|
+ line.DebitAccount = product.SellGL.Code;
|
|
|
return line;
|
|
|
}
|
|
|
|
|
@@ -319,11 +323,22 @@ public class StockMovementTimberlinePoster : ITimberlinePoster<StockMovement, St
|
|
|
var movements = new List<StockMovement>();
|
|
|
foreach(var movement in transaction)
|
|
|
{
|
|
|
- if (movement.Type == StockMovementType.Issue || movement.Type == StockMovementType.Receive)
|
|
|
+ if (movement.Type == StockMovementType.Receive)
|
|
|
{
|
|
|
// Ignore these ones.
|
|
|
result.AddSuccess(movement, null);
|
|
|
}
|
|
|
+ else if(movement.Type == StockMovementType.Issue)
|
|
|
+ {
|
|
|
+ if(movement.Job.ID == Guid.Empty)
|
|
|
+ {
|
|
|
+ movements.Add(movement);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ result.AddSuccess(movement, null);
|
|
|
+ }
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
// So we only care about transfers and stocktakes
|
|
@@ -335,12 +350,27 @@ public class StockMovementTimberlinePoster : ITimberlinePoster<StockMovement, St
|
|
|
{
|
|
|
var mvt = movements[0];
|
|
|
|
|
|
- if(mvt.Type == StockMovementType.StockTake)
|
|
|
+ if(mvt.Type == StockMovementType.Issue)
|
|
|
+ {
|
|
|
+ var gl = new StockMovementTimberlineGL { };
|
|
|
+ gl = ModifyLine(gl, mvt);
|
|
|
+ gl.DebitAccount = Settings.StockTakeGL;
|
|
|
+ if (ProcessGLLine(model, mvt, gl))
|
|
|
+ {
|
|
|
+ result.AddSuccess(mvt, gl);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ result.AddFailed(mvt, "Failed by script.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(mvt.Type == StockMovementType.StockTake)
|
|
|
{
|
|
|
if(mvt.Job.ID == Guid.Empty)
|
|
|
{
|
|
|
var gl = new StockMovementTimberlineGL { };
|
|
|
gl = ModifyLine(gl, mvt);
|
|
|
+ gl.DebitAccount = Settings.StockTakeGL;
|
|
|
if (ProcessGLLine(model, mvt, gl))
|
|
|
{
|
|
|
result.AddSuccess(mvt, gl);
|