X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/20004cac8f656f67e86e63fdb85f6dc083cf83d7..187c4ee192da9281f42800e6ac8ae08f23d9a9d6:/SL/DB/Part.pm diff --git a/SL/DB/Part.pm b/SL/DB/Part.pm index 9eb76df6a..0f855231e 100644 --- a/SL/DB/Part.pm +++ b/SL/DB/Part.pm @@ -32,7 +32,7 @@ __PACKAGE__->meta->add_relationships( assemblies => { type => 'one to many', class => 'SL::DB::Assembly', - manager_args => { sort_by => 'position, oid' }, + manager_args => { sort_by => 'position' }, column_map => { id => 'id' }, }, prices => { @@ -61,6 +61,7 @@ __PACKAGE__->meta->add_relationships( type => 'one to many', class => 'SL::DB::AssortmentItem', column_map => { id => 'assortment_id' }, + manager_args => { sort_by => 'position' }, }, history_entries => { type => 'one to many', @@ -75,12 +76,19 @@ __PACKAGE__->meta->add_relationships( column_map => { id => 'part_id' }, manager_args => { with_objects => [ 'shop' ] }, }, + last_price_update => { + type => 'one to one', + class => 'SL::DB::PartsPriceHistory', + column_map => { id => 'part_id' }, + manager_args => { sort_by => 'valid_from DESC', limit => 1 }, + }, ); __PACKAGE__->meta->initialize; __PACKAGE__->attr_html('notes'); -__PACKAGE__->attr_sorted({ unsorted => 'makemodels', position => 'sortorder' }); +__PACKAGE__->attr_sorted({ unsorted => 'makemodels', position => 'sortorder' }); +__PACKAGE__->attr_sorted({ unsorted => 'customerprices', position => 'sortorder' }); __PACKAGE__->before_save('_before_save_set_partnumber'); @@ -373,7 +381,7 @@ sub get_simple_stock_sql { LEFT JOIN warehouse w ON (i.warehouse_id = w.id) LEFT JOIN bin b ON (i.bin_id = b.id) WHERE parts_id = ? - GROUP BY w.description, b.description, p.unit, i.parts_id + GROUP BY w.description, w.sortkey, b.description, p.unit, i.parts_id HAVING SUM(qty) != 0 WINDOW pt AS (PARTITION BY i.parts_id ORDER BY w.sortkey, b.description, p.unit), wh AS (PARTITION by w.description ORDER BY w.sortkey, b.description, p.unit)