mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
Adds the interfaces knowledge domain covering AL interfaces and enum-with-implementation: three atomic articles with good/bad AL samples, a new al-interfaces-review leaf skill, and additive wiring into al-code-review and the README. Purely additive; no contract change. Part of #34. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
32 lines
826 B
AL
32 lines
826 B
AL
enum 50204 "Shipping Method Bad"
|
|
{
|
|
Extensible = true;
|
|
|
|
value(0; Standard) { }
|
|
value(1; Express) { }
|
|
}
|
|
|
|
codeunit 50205 "Shipping Charge Bad"
|
|
{
|
|
// Anti-pattern: every call site must 'case' over the enum, and every new
|
|
// shipping method forces a synchronized edit to each of these blocks.
|
|
procedure GetRate(Method: Enum "Shipping Method Bad"; Weight: Decimal): Decimal
|
|
begin
|
|
case Method of
|
|
Method::Standard:
|
|
exit(Weight * 1.5);
|
|
Method::Express:
|
|
exit((Weight * 1.5) + 25);
|
|
end;
|
|
end;
|
|
|
|
procedure GetDeliveryDays(Method: Enum "Shipping Method Bad"): Integer
|
|
begin
|
|
case Method of
|
|
Method::Standard:
|
|
exit(5);
|
|
Method::Express:
|
|
exit(1);
|
|
end;
|
|
end;
|
|
}
|