Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 78034f24

Von Sven Schöling vor etwa 14 Jahren hinzugefügt

  • ID 78034f2431414b414d171b720bc0438635e19ae5
  • Vorgänger 4aded4e8
  • Nachfolger 4fd22b56

Attribute Helper umgeschrieben.

Siehe Dokumentation SL::DB::Helpers::Attr.

Attributhelper werden jetzt beim Rose Start automatisch geladen.
numeric Felder bekommen immer einen as_number udn einen as_percent helper.
date Felder bekommen immer einen as_date helper.

as_date Helper kann jetzt auch mit 'now' umgehen.

Zusaätzliche Helper können zur Compilezeit mit

PACKAGE->meta->make_attr_helpers(column => 'type');

erstellt werden, wobei 'type' einfach das ist, was auch bei der autdetection
ind er Datenbank erkannt wird, z.B. "numeric(15,5)" oder "date". Die passenden
Helper werden dann installiert.

Unterschiede anzeigen:

t/helper/attr.t
1
use Test::More tests => 25;
1
use Test::More tests => 29;
2 2

  
3 3
use DateTime;
4 4

  
5 5
use_ok 'SL::DB::Part';
6 6
use_ok 'SL::DB::Order';
7
use_ok 'SL::DB::Invoice';
7 8
use_ok 'SL::Dispatcher';
8 9

  
9 10
SL::Dispatcher::pre_startup_setup();
......
30 31
$o->reqdate(DateTime->new(year => 2010, month => 4, day => 12));
31 32
is($o->reqdate_as_date, '12.04.2010');
32 33

  
33
is($o->marge_percent_as_percent('40'), '40,00');
34
is($o->marge_percent_as_percent('40'), '40');
34 35
is($o->marge_percent, 0.40);
35
is($o->marge_percent_as_percent, '40,00');
36
is($o->marge_percent_as_percent('22,4'), '22,40');
36
is($o->marge_percent_as_percent, '40');
37
is($o->marge_percent_as_percent('22,4'), '22');
37 38
is($o->marge_percent, 0.224);
38
is($o->marge_percent_as_percent, '22,40');
39
is($o->marge_percent_as_percent, '22');
39 40
is($o->marge_percent(0.231), 0.231);
40
is($o->marge_percent_as_percent, '23,10');
41
is($o->marge_percent_as_percent, '23');
42

  
43
# overloaded attr: invoice taxamount
44
my $i = new_ok 'SL::DB::Invoice';
45

  
46
is($i->taxamount_as_number, '0,00');
47
$i->amount(12);
48
$i->netamount(10.34);
49
is($i->taxamount_as_number, '1,66');
50

  

Auch abrufbar als: Unified diff