Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ef2b5e94

Von Moritz Bunkus vor mehr als 12 Jahren hinzugefügt

  • ID ef2b5e949ac07d4f3258821f781da90761bead1a
  • Vorgänger e4fb6339
  • Nachfolger 4a366d76

Refactoring: Code für OrderItem-Manager von DB-Datei in eigene Manager-Datei ausgelagert

Unterschiede anzeigen:

SL/DB/Manager/OrderItem.pm
package SL::DB::Manager::OrderItem;
use strict;
use SL::DB::Helper::Manager;
use base qw(SL::DB::Helper::Manager);
use SL::DB::Helper::Paginated;
use SL::DB::Helper::Sorted;
sub object_class { 'SL::DB::OrderItem' }
__PACKAGE__->make_manager_methods;
sub _sort_spec {
return ( columns => { delivery_date => [ 'deliverydate', ],
description => [ 'lower(orderitems.description)', ],
partnumber => [ 'part.partnumber', ],
qty => [ 'qty' ],
ordnumber => [ 'order.ordnumber' ],
customer => [ 'lower(customer.name)', ],
position => [ 'trans_id', 'runningnumber' ],
reqdate => [ 'COALESCE(orderitems.reqdate, order.reqdate)' ],
orddate => [ 'order.orddate' ],
sellprice => [ 'sellprice' ],
discount => [ 'discount' ],
transdate => [ 'transdate::date', 'order.reqdate' ],
},
default => [ 'position', 1 ],
nulls => { }
);
}
sub default_objects_per_page { 40 }
1;
SL/DB/OrderItem.pm
use SL::AM;
use SL::DB::MetaSetup::OrderItem;
use SL::DB::Manager::OrderItem;
use SL::DB::Helper::CustomVariables (
sub_module => 'orderitems',
cvars_alias => 1,
......
},
);
# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
__PACKAGE__->meta->make_manager_class;
__PACKAGE__->meta->initialize;
sub is_price_update_available {
......
return sum(map { AM->convert_unit($_->unit => $self->unit) * $_->qty } @doi);
}
package SL::DB::Manager::OrderItem;
use SL::DB::Helper::Paginated;
use SL::DB::Helper::Sorted;
sub _sort_spec {
return ( columns => { delivery_date => [ 'deliverydate', ],
description => [ 'lower(orderitems.description)', ],
partnumber => [ 'part.partnumber', ],
qty => [ 'qty' ],
ordnumber => [ 'order.ordnumber' ],
customer => [ 'lower(customer.name)', ],
position => [ 'trans_id', 'runningnumber' ],
reqdate => [ 'COALESCE(orderitems.reqdate, order.reqdate)' ],
orddate => [ 'order.orddate' ],
sellprice => [ 'sellprice' ],
discount => [ 'discount' ],
transdate => [ 'transdate::date', 'order.reqdate' ],
},
default => [ 'position', 1 ],
nulls => { }
);
}
sub default_objects_per_page { 40 }
1;

Auch abrufbar als: Unified diff