BusinessCentral.LinterCop icon indicating copy to clipboard operation
BusinessCentral.LinterCop copied to clipboard

False Positive on case statements

Open ElmarFV opened this issue 10 months ago • 1 comments

Hello there, excellent work on the LinterCop so far, big fan! I am getting a false positive on rule LC0069 for case statement that have no empty statements. Here is the actual code.

    Rec.Delivered := true;
    case Rec."Order Status" of
        "WC Order Status"::Open:
            begin
                if not WCOrderLine.Get("Order No.", "Order Line No.") then
                    exit;

                Rec."Resource No." := WCOrderLine."Resource No.";
                Rec.Tons := 0;
                Rec.Price := WCOrderLine.Price;
                Rec.Tax := CalcLoadAmts(WCOrderLine.Tons,
                                        WCOrderLine."Tons per Load",
                                        WCOrderLine.Tax,
                                        WCOrderLine."Haul Price",
                                        Rec.Delivered);
                Rec."Tax Liable" := WCOrderLine."Tax Liable";
                Rec."Tax Group Code" := WCOrderLine."Tax Group Code";
                WCTIK01LoadTicketManagement.GetSourceLocationTaxAreaCode(Rec."Source Location Code", Rec."Tax Liable", Rec."Tax Area Code");
                //<<WC0002
                Rec."Haul Price" := WCOrderLine."Haul Price";
                Rec."Delivered Price" := WCOrderLine."Delivered Price";
                Rec.Cost := WCOrderLine.Cost;
                Rec."Haul Cost" := WCOrderLine."Haul Cost";
                Rec.Comment := WCOrderLine.Comment;  //A01.00 DBJ 080108
                Rec."Unit of Measure Code" := WCOrderLine."Unit of Measure Code";  //A02.00 DBJ 091108
                CalcAmounts();
            end;
        "Order Status"::Posted:
            begin
                if not WCPostedOrderLines.Get("Order No.", "Order Line No.") then
                    exit;

                Rec."Resource No." := WCPostedOrderLines."Resource No.";
                Rec.Tons := 0;
                Rec.Price := WCPostedOrderLines.Price;
                Rec.Tax := CalcLoadAmts(WCPostedOrderLines.Tons,
                                        WCPostedOrderLines."Tons per Load",
                                        WCPostedOrderLines.Tax,
                                        WCPostedOrderLines."Haul Price",
                                        Rec.Delivered);
                Rec."Tax Liable" := WCPostedOrderLines."Tax Liable";
                Rec."Tax Group Code" := WCPostedOrderLines."Tax Group Code";

                WCTIK01LoadTicketManagement.GetSourceLocationTaxAreaCode("Source Location Code", "Tax Liable", "Tax Area Code");

                Rec."Haul Price" := WCPostedOrderLines."Haul Price";
                Rec."Delivered Price" := WCPostedOrderLines."Delivered Price";
                Rec.Cost := WCPostedOrderLines.Cost;
                Rec."Haul Cost" := WCPostedOrderLines."Haul Cost";
                Rec.Comment := WCPostedOrderLines.Comment;  //A01.00 DBJ 080108
                Rec."Unit of Measure Code" := WCOrderLine."Unit of Measure Code";  //A02.00 DBJ 091108
                CalcAmounts();
            end;
    end;

Here is a screenshot showing the false positive for both these case values. image

ElmarFV avatar Dec 16 '24 13:12 ElmarFV