Zajrzałem do lms-payments i z tego co widzę symbole substytucji mogą
być używane w tytułach zobowiązań beztaryfowych.
Fragment kodu:
        my $desc = $comment;
        if ($assign->{'liabilityid'})
        {
                $desc = $assign->{'name'}; # you can use variables in names of tariffless liabilities
        }
        $desc =~ s/\%tariff/$assign->{'name'}/g;
        $desc =~ s/\%desc/$assign->{'description'}/g;
        $desc =~ s/\%period/$txts{$assign->{'period'}}/g;
        $desc =~ s/\%current_month/$current_month/g;
        $desc =~ s/\%current_period/$current_period/g;
        $desc =~ s/\%next_period/$next_period/g;

Możesz zaraz po tym wstawić:
        print "desc=$desc\n";
i zobaczyć co Ci lms-payments wyświetli?

Sprawdziłem

Wychodzi, że
%current_month - wyświetla okres za miesiąc bieżący  2012/03/01 - 2012/03/31 (proponuję wpisać do dokumentacji)
%current_period - wyświetla dany miesiąc (do dokumentacji)
%next_period - wyświetla przyszły miesiąc 04/2012 (do dokumentacji)
%period - wyświetla okres 2012/03/01 - 2012/03/31
%desc - wyświetla całą wpisaną zawartość (czyli nieprzydatne
%tariff - nie działa (co zrozumiałe)

Dalej wystawia mi w j. angielskim, co może być przyczyną ?

I tak się zastanawiałem, czy nie rozważaliście wprowadzenia w skrypcie sprawdzania, czy dana faktura była już wystawiona ?