Skip to content

Commit

Permalink
Need to handle lowercase
Browse files Browse the repository at this point in the history
  • Loading branch information
craigedmunds committed Jan 27, 2025
1 parent da2d403 commit eeeb2c6
Show file tree
Hide file tree
Showing 7 changed files with 314 additions and 31 deletions.
27 changes: 2 additions & 25 deletions Btms.Business/Extensions/MovementExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,6 @@ namespace Btms.Business.Extensions;

public static class MovementExtensions
{
public static bool AreNumbersComplete<T>(this IEnumerable<T> source, Func<T, int?> getNumbers)
{
var numbers = source
.Select(getNumbers)
.Where(n => n.HasValue())
.Order()
.ToList();

if (numbers.Distinct().Count() != numbers.Count())
{
//Contains duplicates
return false;
}
else if (numbers.Count() != numbers.Last())
{
//Some missing
// should be contiguous

return false;
}

return true;
}

public static string[] UniqueDocumentReferences(this Movement movement)
{
Expand All @@ -53,15 +30,15 @@ public static List<string> UniqueNotificationRelationshipIds(this Movement movem
public static bool IsChed(this Document doc)
{
return doc.DocumentReference != null &&
doc.DocumentReference.StartsWith("GBCHD");
doc.DocumentReference.ToUpper().StartsWith("GBCHD");
}

public static List<string> UniqueDocumentReferenceIdsThatShouldLink(this Movement movement)
{
return movement.Items
.SelectMany(i => i.Documents ?? [])
// Only CHED document refs should result in links
.Where(IsChed)
.Where(d => d.IsChed())
.Select(d => d.DocumentReference!.TrimUniqueNumber())
.Distinct()
.ToList();
Expand Down
2 changes: 1 addition & 1 deletion Btms.Business/Services/Matching/MatchingService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.Diagnostics;
using Btms.Model;
using Btms.Business.Extensions;
using Btms.Model;

namespace Btms.Business.Services.Matching;

Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,52 @@
{"serviceHeader":{"sourceSystem":"CDS","destinationSystem":"ALVS","correlationId":"1307513","serviceCallTimestamp":1733099125000},"header":{"entryReference":"24GBDC4TW6DUQYIAR5","entryVersionNumber":1,"previousVersionNumber":null,"declarationUCR":"4GB823723242000-SLHA24017238","declarationPartNumber":null,"declarationType":"S","arrivalDateTime":null,"submitterTURN":null,"declarantId":"GB823723242000","declarantName":"GB823723242000","dispatchCountryCode":"IL","goodsLocationCode":"FEMLHRPDX","masterUCR":"HPDX11463348040"},"items":[{"itemNumber":1,"customsProcedureCode":"4000000","taricCommodityCode":"1211908620","goodsDescription":"BASIL","consigneeId":"GB101487738000","consigneeName":"GB101487738000","itemNetMass":640,"itemSupplementaryUnits":0,"itemThirdQuantity":null,"itemOriginCountryCode":"IL","documents":[{"documentCode":"N851","documentReference":"gbchd2024.5229377","documentStatus":"JE","documentControl":"P","documentQuantity":null}],"checks":[{"checkCode":"H219","departmentCode":"PHSI"}]}]}
{
"serviceHeader": {
"sourceSystem": "CDS",
"destinationSystem": "ALVS",
"correlationId": "1307513",
"serviceCallTimestamp": 1733099125000
},
"header": {
"entryReference": "24GBDC4TW6DUQYIAR5",
"entryVersionNumber": 1,
"previousVersionNumber": null,
"declarationUCR": "4GB823723242000-SLHA24017238",
"declarationPartNumber": null,
"declarationType": "S",
"arrivalDateTime": null,
"submitterTURN": null,
"declarantId": "GB823723242000",
"declarantName": "GB823723242000",
"dispatchCountryCode": "IL",
"goodsLocationCode": "FEMLHRPDX",
"masterUCR": "HPDX11463348040"
},
"items": [
{
"itemNumber": 1,
"customsProcedureCode": "4000000",
"taricCommodityCode": "1211908620",
"goodsDescription": "BASIL",
"consigneeId": "GB101487738000",
"consigneeName": "GB101487738000",
"itemNetMass": 640,
"itemSupplementaryUnits": 0,
"itemThirdQuantity": null,
"itemOriginCountryCode": "IL",
"documents": [
{
"documentCode": "N851",
"documentReference": "gbchd2024.5229377",
"documentStatus": "JE",
"documentControl": "P",
"documentQuantity": null
}
],
"checks": [
{
"checkCode": "H219",
"departmentCode": "PHSI"
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -1 +1,52 @@
{"serviceHeader":{"sourceSystem":"CDS","destinationSystem":"ALVS","correlationId":"1307514","serviceCallTimestamp":1733099196000},"header":{"entryReference":"24GBDC4TW6DUQYIAR5","entryVersionNumber":2,"previousVersionNumber":1,"declarationUCR":"4GB823723242000-SLHA24017238","declarationPartNumber":null,"declarationType":"S","arrivalDateTime":null,"submitterTURN":null,"declarantId":"GB823723242000","declarantName":"GB823723242000","dispatchCountryCode":"IL","goodsLocationCode":"FEMLHRPDX","masterUCR":"HPDX11463348040"},"items":[{"itemNumber":1,"customsProcedureCode":"4000000","taricCommodityCode":"1211908620","goodsDescription":"BASIL","consigneeId":"GB101487738000","consigneeName":"GB101487738000","itemNetMass":640,"itemSupplementaryUnits":0,"itemThirdQuantity":null,"itemOriginCountryCode":"IL","documents":[{"documentCode":"N851","documentReference":"gbchd2024.5229377","documentStatus":"JE","documentControl":"P","documentQuantity":null}],"checks":[{"checkCode":"H219","departmentCode":"PHSI"}]}]}
{
"serviceHeader": {
"sourceSystem": "CDS",
"destinationSystem": "ALVS",
"correlationId": "1307514",
"serviceCallTimestamp": 1733099196000
},
"header": {
"entryReference": "24GBDC4TW6DUQYIAR5",
"entryVersionNumber": 2,
"previousVersionNumber": 1,
"declarationUCR": "4GB823723242000-SLHA24017238",
"declarationPartNumber": null,
"declarationType": "S",
"arrivalDateTime": null,
"submitterTURN": null,
"declarantId": "GB823723242000",
"declarantName": "GB823723242000",
"dispatchCountryCode": "IL",
"goodsLocationCode": "FEMLHRPDX",
"masterUCR": "HPDX11463348040"
},
"items": [
{
"itemNumber": 1,
"customsProcedureCode": "4000000",
"taricCommodityCode": "1211908620",
"goodsDescription": "BASIL",
"consigneeId": "GB101487738000",
"consigneeName": "GB101487738000",
"itemNetMass": 640,
"itemSupplementaryUnits": 0,
"itemThirdQuantity": null,
"itemOriginCountryCode": "IL",
"documents": [
{
"documentCode": "N851",
"documentReference": "gbchd2024.5229377",
"documentStatus": "JE",
"documentControl": "P",
"documentQuantity": null
}
],
"checks": [
{
"checkCode": "H219",
"departmentCode": "PHSI"
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -1 +1,69 @@
{"serviceHeader":{"sourceSystem":"ALVS","destinationSystem":"CDS","correlationId":"000","serviceCallTimestamp":1733045601631},"header":{"entryReference":"24GBDB6P6GWPVLKAR7","entryVersionNumber":1,"decisionNumber":1},"items":[{"itemNumber":1,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":2,"documents":[],"checks":[{"checkCode":"H218","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"H01","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":6,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]}]}
{
"serviceHeader": {
"sourceSystem": "ALVS",
"destinationSystem": "CDS",
"correlationId": "000",
"serviceCallTimestamp": 1733045601631
},
"header": {
"entryReference": "24GBDB6P6GWPVLKAR7",
"entryVersionNumber": 1,
"decisionNumber": 1
},
"items": [
{
"itemNumber": 1,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 2,
"documents": [],
"checks": [
{
"checkCode": "H218",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "H01",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 6,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -1 +1,69 @@
{"serviceHeader":{"sourceSystem":"ALVS","destinationSystem":"CDS","correlationId":"000","serviceCallTimestamp":1733062869974},"header":{"entryReference":"24GBDB6P6GWPVLKAR7","entryVersionNumber":2,"decisionNumber":2},"items":[{"itemNumber":1,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":2,"documents":[],"checks":[{"checkCode":"H218","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"H01","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":6,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]}]}
{
"serviceHeader": {
"sourceSystem": "ALVS",
"destinationSystem": "CDS",
"correlationId": "000",
"serviceCallTimestamp": 1733062869974
},
"header": {
"entryReference": "24GBDB6P6GWPVLKAR7",
"entryVersionNumber": 2,
"decisionNumber": 2
},
"items": [
{
"itemNumber": 1,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 2,
"documents": [],
"checks": [
{
"checkCode": "H218",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "H01",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 6,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -1 +1,69 @@
{"serviceHeader":{"sourceSystem":"ALVS","destinationSystem":"CDS","correlationId":"000","serviceCallTimestamp":1733167102171},"header":{"entryReference":"24GBDB6P6GWPVLKAR7","entryVersionNumber":2,"decisionNumber":3},"items":[{"itemNumber":1,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":2,"documents":[],"checks":[{"checkCode":"H218","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]},{"checkCode":"H223","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]},{"itemNumber":6,"documents":[],"checks":[{"checkCode":"H219","decisionCode":"C03","decisionValidUntil":null,"decisionReasons":[]}]}]}
{
"serviceHeader": {
"sourceSystem": "ALVS",
"destinationSystem": "CDS",
"correlationId": "000",
"serviceCallTimestamp": 1733167102171
},
"header": {
"entryReference": "24GBDB6P6GWPVLKAR7",
"entryVersionNumber": 2,
"decisionNumber": 3
},
"items": [
{
"itemNumber": 1,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 2,
"documents": [],
"checks": [
{
"checkCode": "H218",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
},
{
"checkCode": "H223",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
},
{
"itemNumber": 6,
"documents": [],
"checks": [
{
"checkCode": "H219",
"decisionCode": "C03",
"decisionValidUntil": null,
"decisionReasons": []
}
]
}
]
}

0 comments on commit eeeb2c6

Please sign in to comment.