|
@@ -30,6 +30,7 @@ namespace Comal.Classes
|
|
public JobLink JobLink { get; set; }
|
|
public JobLink JobLink { get; set; }
|
|
|
|
|
|
[EditorSequence(5)]
|
|
[EditorSequence(5)]
|
|
|
|
+ [RequiredColumn]
|
|
public CustomerLink CustomerLink { get; set; }
|
|
public CustomerLink CustomerLink { get; set; }
|
|
|
|
|
|
private class ClaimedFormula : ComplexFormulaGenerator<Invoice, double>
|
|
private class ClaimedFormula : ComplexFormulaGenerator<Invoice, double>
|
|
@@ -105,6 +106,7 @@ namespace Comal.Classes
|
|
|
|
|
|
[EditorSequence(13)]
|
|
[EditorSequence(13)]
|
|
[LookupDefinition(typeof(AccountsReceivablePaymentTermsLookup<Invoice>))]
|
|
[LookupDefinition(typeof(AccountsReceivablePaymentTermsLookup<Invoice>))]
|
|
|
|
+ [RequiredColumn]
|
|
public PaymentTermsLink Terms { get; set; }
|
|
public PaymentTermsLink Terms { get; set; }
|
|
|
|
|
|
[EditorSequence(14)]
|
|
[EditorSequence(14)]
|
|
@@ -164,27 +166,21 @@ namespace Comal.Classes
|
|
DueDate = CalculateTerms((DateTime)(after ?? ""),Terms.Calculation);
|
|
DueDate = CalculateTerms((DateTime)(after ?? ""),Terms.Calculation);
|
|
else if (name.Equals(TERMSCALCULATION))
|
|
else if (name.Equals(TERMSCALCULATION))
|
|
DueDate = CalculateTerms(Date, (string)(after ?? ""));
|
|
DueDate = CalculateTerms(Date, (string)(after ?? ""));
|
|
- else if (name.Equals(CUSTOMERLINKTERMSCALCULATION))
|
|
|
|
- DueDate = CalculateTerms(Date, (string)(after ?? ""));
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private DateTime CalculateTerms(DateTime date, string calculation)
|
|
private DateTime CalculateTerms(DateTime date, string calculation)
|
|
{
|
|
{
|
|
if (string.IsNullOrWhiteSpace(calculation))
|
|
if (string.IsNullOrWhiteSpace(calculation))
|
|
return date;
|
|
return date;
|
|
|
|
+
|
|
|
|
+ var model = new PaymentTermsCalculationModel { Date = date };
|
|
|
|
|
|
- var variables = new Dictionary<string, object?>()
|
|
|
|
- {
|
|
|
|
- { "Date", date }
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- try
|
|
|
|
|
|
+ var expr = new CoreExpression<PaymentTermsCalculationModel, DateTime>(calculation);
|
|
|
|
+ if(expr.Evaluate(model).Get(out var eval, out var e))
|
|
{
|
|
{
|
|
- var expr = new CoreExpression(calculation);
|
|
|
|
- var eval = expr.Evaluate(variables);
|
|
|
|
- return (DateTime)(CoreUtils.ChangeType(eval, typeof(DateTime)) ?? date);
|
|
|
|
|
|
+ return eval;
|
|
}
|
|
}
|
|
- catch (Exception e)
|
|
|
|
|
|
+ else
|
|
{
|
|
{
|
|
Logger.Send(LogType.Information, "", $"Error in Formula: [{calculation}] ({e.Message})");
|
|
Logger.Send(LogType.Information, "", $"Error in Formula: [{calculation}] ({e.Message})");
|
|
return date;
|
|
return date;
|