diff --git a/Audit trail.mpr b/Audit trail.mpr index 6436cfd..7b748e1 100644 Binary files a/Audit trail.mpr and b/Audit trail.mpr differ diff --git a/javasource/audittrail/log/CreateLogObject.java b/javasource/audittrail/log/CreateLogObject.java index f7ed6d1..4ef1328 100644 --- a/javasource/audittrail/log/CreateLogObject.java +++ b/javasource/audittrail/log/CreateLogObject.java @@ -1,6 +1,7 @@ package audittrail.log; import java.lang.IllegalArgumentException; +import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -428,25 +429,28 @@ private static List createReferenceSetLogLine(final IMendixObject private static String getMemberValueString(final IMendixObjectMember member, final boolean fromCache, final IContext context) { Object value = null; - // Values from cache - if (fromCache == true) + + if (fromCache == true) { + // Values from cache value = member.getValue(context); - - // Values form DB - else + } else { + // Values form DB value = member.getOriginalValue(context); + } if (value != null) { - - if (value instanceof Date) + if (value instanceof Date) { return parseDate((Date) value, context); - - else if (value instanceof String) + } else if (value instanceof BigDecimal) { + return String.valueOf(((BigDecimal) value).stripTrailingZeros()).trim(); + } else if (value instanceof String) { return (String) value; - - return String.valueOf(value).trim(); - } else - return ""; + } else { + return String.valueOf(value).trim(); + } + } + + return ""; } private static String parseDate(final Date date, final IContext context) { diff --git a/javasource/test_crm/tests/TestAuditInheritance.java b/javasource/test_crm/tests/TestAuditInheritance.java index 175f944..22329cd 100644 --- a/javasource/test_crm/tests/TestAuditInheritance.java +++ b/javasource/test_crm/tests/TestAuditInheritance.java @@ -15,8 +15,10 @@ import test_crm.tests.actual.ActualLog; import test_crm.tests.expected.ExpectedLog; -import static test_crm.proxies.Company.MemberNames.Name; import static test_crm.proxies.Company.MemberNames.CompanyNr; +import static test_crm.proxies.Company.MemberNames.Dec; +import static test_crm.proxies.Company.MemberNames.Name; +import static test_crm.proxies.Company.MemberNames.Number; import static test_crm.proxies.Company.MemberNames.InternNr; import static test_crm.proxies.Company.MemberNames.Company_Group; @@ -50,12 +52,14 @@ public void testChangeRecord() throws CoreException { final Company company = createBaseCompany(); company.setName(NAME2); + company.setDec(new java.math.BigDecimal("0.00000000")); // should not be considered changed company.commit(); // Assert log was created final ExpectedLog expectedLog = createExpectedLog(TypeOfLog.Change, company).changeAttribute(Name, NAME, NAME2); final ActualLog actualLog = ActualLog.getLastLog(context, company.getMendixObject().getId().toLong()); + expectedLog.verify(actualLog); } @@ -170,11 +174,13 @@ private ExpectedLog createExpectedLog(final TypeOfLog typeOfLog, final Company c return new ExpectedLog(typeOfLog, Company.entityName, admin, initialDate, Company.entityName) .addAttribute(Name, NAME).addAttribute(CompanyNr, COMPANY_NR) .addAttribute(InternNr, company.getInternNr()) + .addAttribute(Dec, 0).addAttribute(Number, 0) .addReferences(Company_Group, context, MemberType.ReferenceSet, groupObjects); } else { return new ExpectedLog(typeOfLog, Company.entityName, admin, initialDate, Company.entityName) .keepAttribute(Name, NAME).keepAttribute(CompanyNr, COMPANY_NR) .keepAttribute(InternNr, company.getInternNr()) + .keepAttribute(Dec, 0).keepAttribute(Number, 0) .keepReferences(Company_Group, context, MemberType.ReferenceSet, groupObjects); } } diff --git a/widgets/formatstring.mpk b/widgets/formatstring.mpk index a3a4300..ce866fe 100644 Binary files a/widgets/formatstring.mpk and b/widgets/formatstring.mpk differ