X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FTransNumberGenerator.pm;h=4b4fe126d50ad3547b75135af5d630ee2532edc9;hb=dd6282f6e20d531511ae35cadc491a8c7ab8bad5;hp=c060a2f5da480ec48d3da5bc989890c6a64738b6;hpb=e055700faea1906bea6c03184ba4516b57cac887;p=kivitendo-erp.git diff --git a/SL/DB/Helper/TransNumberGenerator.pm b/SL/DB/Helper/TransNumberGenerator.pm index c060a2f5d..4b4fe126d 100644 --- a/SL/DB/Helper/TransNumberGenerator.pm +++ b/SL/DB/Helper/TransNumberGenerator.pm @@ -10,21 +10,30 @@ use List::Util qw(max); use SL::DB::Default; -my $oe_scoping = sub { +sub oe_scoping { SL::DB::Manager::Order->type_filter($_[0]); -}; +} -my $do_scoping = sub { +sub do_scoping { SL::DB::Manager::DeliveryOrder->type_filter($_[0]); -}; - -my %specs = ( ar => { number_column => 'invnumber', fill_holes_in_range => 1 }, - sales_quotation => { number_column => 'quonumber', number_range_column => 'sqnumber', scoping => $oe_scoping, }, - sales_order => { number_column => 'ordnumber', number_range_column => 'sonumber', scoping => $oe_scoping, }, - request_quotation => { number_column => 'quonumber', number_range_column => 'rfqnumber', scoping => $oe_scoping, }, - purchase_order => { number_column => 'ordnumber', number_range_column => 'ponumber', scoping => $oe_scoping, }, - sales_delivery_order => { number_column => 'donumber', number_range_column => 'sdonumber', scoping => $do_scoping, fill_holes_in_range => 1 }, - purchase_delivery_order => { number_column => 'donumber', number_range_column => 'pdonumber', scoping => $do_scoping, fill_holes_in_range => 1 }, +} + +sub parts_scoping { + SL::DB::Manager::Part->type_filter($_[0]); +} + +my %specs = ( ar => { number_column => 'invnumber', fill_holes_in_range => 1 }, + sales_quotation => { number_column => 'quonumber', number_range_column => 'sqnumber', scoping => \&oe_scoping, }, + sales_order => { number_column => 'ordnumber', number_range_column => 'sonumber', scoping => \&oe_scoping, }, + request_quotation => { number_column => 'quonumber', number_range_column => 'rfqnumber', scoping => \&oe_scoping, }, + purchase_order => { number_column => 'ordnumber', number_range_column => 'ponumber', scoping => \&oe_scoping, }, + sales_delivery_order => { number_column => 'donumber', number_range_column => 'sdonumber', scoping => \&do_scoping, fill_holes_in_range => 1 }, + purchase_delivery_order => { number_column => 'donumber', number_range_column => 'pdonumber', scoping => \&do_scoping, fill_holes_in_range => 1 }, + customer => { number_column => 'customernumber', number_range_column => 'customernumber', }, + vendor => { number_column => 'vendornumber', number_range_column => 'vendornumber', }, + part => { number_column => 'partnumber', number_range_column => 'articlenumber', scoping => \&parts_scoping }, + service => { number_column => 'partnumber', number_range_column => 'servicenumber', scoping => \&parts_scoping }, + assembly => { number_column => 'partnumber', number_range_column => 'articlenumber', scoping => \&parts_scoping }, ); sub get_next_trans_number { @@ -93,7 +102,7 @@ SL::DB::Helper::TransNumberGenerator - A mixin for creating unique record number =over 4 -=item C +=item C Generates a new unique record number for the mixing class. Each record type (invoices, sales quotations, purchase orders etc) has its own