Revision 6bb6fe53
Von Bernd Bleßmann vor mehr als 1 Jahr hinzugefügt
SL/BackgroundJob/SetNumberRange.pm | ||
---|---|---|
29 | 29 |
|
30 | 30 |
my $defaults = SL::DB::Default->get; |
31 | 31 |
|
32 |
foreach (qw(invnumber cnnumber soinumber sonumber ponumber sqnumber rfqnumber sdonumber pdonumber)) { |
|
32 |
foreach (qw(invnumber cnnumber soinumber pqinumber sonumber ponumber sqnumber rfqnumber sdonumber pdonumber)) {
|
|
33 | 33 |
my $current_number = SL::PrefixedNumber->new(number => $defaults->{$_}); |
34 | 34 |
$current_number->set_to($next_year * $multiplier); |
35 | 35 |
$defaults->{$_} = $current_number->get_current; |
SL/DB/Helper/TransNumberGenerator.pm | ||
---|---|---|
32 | 32 |
sales_order_intake => { number_column => 'ordnumber', number_range_column => 'soinumber', scoping => \&oe_scoping, }, |
33 | 33 |
sales_order => { number_column => 'ordnumber', number_range_column => 'sonumber', scoping => \&oe_scoping, }, |
34 | 34 |
request_quotation => { number_column => 'quonumber', number_range_column => 'rfqnumber', scoping => \&oe_scoping, }, |
35 |
purchase_quotation_intake => { number_column => 'quonumber', number_range_column => 'pqinumber', scoping => \&oe_scoping, }, |
|
35 | 36 |
purchase_order => { number_column => 'ordnumber', number_range_column => 'ponumber', scoping => \&oe_scoping, }, |
36 | 37 |
sales_delivery_order => { number_column => 'donumber', number_range_column => 'sdonumber', scoping => \&do_scoping, }, |
37 | 38 |
purchase_delivery_order => { number_column => 'donumber', number_range_column => 'pdonumber', scoping => \&do_scoping, }, |
SL/DB/Manager/Order.pm | ||
---|---|---|
29 | 29 |
my $prefix = shift || ''; |
30 | 30 |
|
31 | 31 |
return (and => [ "!${prefix}customer_id" => undef, "${prefix}quotation" => 1 ]) if $type eq 'sales_quotation'; |
32 |
return (and => [ "!${prefix}vendor_id" => undef, "${prefix}quotation" => 1 ]) if $type eq 'request_quotation';
|
|
32 |
return (and => [ "!${prefix}vendor_id" => undef, "${prefix}quotation" => 1, "${prefix}intake" => 0 ]) if $type eq 'request_quotation';
|
|
33 | 33 |
return (and => [ "!${prefix}customer_id" => undef, "${prefix}intake" => 1 ]) if $type eq 'sales_order_intake'; |
34 |
return (and => [ "!${prefix}vendor_id" => undef, "${prefix}intake" => 1, "${prefix}quotation" => 1 ]) if $type eq 'purchase_quotation_intake'; |
|
34 | 35 |
return (and => [ "!${prefix}customer_id" => undef, or => [ "${prefix}quotation" => 0, "${prefix}quotation" => undef ], "${prefix}intake" => 0 ]) if $type eq 'sales_order'; |
35 | 36 |
return (and => [ "!${prefix}vendor_id" => undef, or => [ "${prefix}quotation" => 0, "${prefix}quotation" => undef ] ]) if $type eq 'purchase_order'; |
36 | 37 |
|
SL/DB/MetaSetup/Default.pm | ||
---|---|---|
148 | 148 |
payments_changeable => { type => 'integer', default => '0', not_null => 1 }, |
149 | 149 |
pdonumber => { type => 'text' }, |
150 | 150 |
ponumber => { type => 'text' }, |
151 |
pqinumber => { type => 'text' }, |
|
151 | 152 |
precision => { type => 'numeric', default => '0.01', not_null => 1, precision => 15, scale => 5 }, |
152 | 153 |
print_interpolate_variables_in_positions => { type => 'boolean', default => 'true', not_null => 1 }, |
153 | 154 |
produce_assembly_same_warehouse => { type => 'boolean', default => 'true' }, |
SL/TransNumber.pm | ||
---|---|---|
17 | 17 |
); |
18 | 18 |
|
19 | 19 |
my @SUPPORTED_TYPES = ( |
20 |
qw(invoice invoice_for_advance_payment final_invoice credit_note customer vendor sales_delivery_order purchase_delivery_order sales_order_intake sales_order purchase_order sales_quotation request_quotation part service assembly assortment letter), |
|
20 |
qw(invoice invoice_for_advance_payment final_invoice credit_note customer vendor sales_delivery_order purchase_delivery_order sales_order_intake sales_order purchase_order sales_quotation request_quotation purchase_quotation_intake part service assembly assortment letter),
|
|
21 | 21 |
@{ SL::DB::DeliveryOrder::TypeData::valid_types() }, |
22 | 22 |
); |
23 | 23 |
|
... | ... | |
79 | 79 |
$filters{where} = 'COALESCE(quotation, FALSE)'; |
80 | 80 |
$filters{where} .= $type =~ /^sales/ ? ' AND (customer_id IS NOT NULL)' : ' AND (vendor_id IS NOT NULL)'; |
81 | 81 |
|
82 |
} elsif ($type =~ /^purchase_quotation_intake$/) { |
|
83 |
$filters{trans_number} = "quonumber"; |
|
84 |
$filters{numberfield} = "pqinumber"; |
|
85 |
$filters{table} = "oe"; |
|
86 |
$filters{where} = 'COALESCE(quotation, FALSE) AND (vendor_id IS NOT NULL)'; |
|
87 |
|
|
82 | 88 |
} elsif ($type =~ /^(part|service|assembly|assortment)$/) { |
83 | 89 |
$filters{trans_number} = "partnumber"; |
84 | 90 |
my %numberfield_hash = ( service => 'servicenumber', |
sql/Pg-upgrade2/oe_purchase_quotation_intake.sql | ||
---|---|---|
1 |
-- @tag: oe_purchase_quotation_intake |
|
2 |
-- @description: Neuer Einkaufsbeleg: Angebots-Eingang (purchase_quotation_intake) |
|
3 |
-- @depends: oe_sales_order_intake_type |
|
4 |
|
|
5 |
ALTER TABLE defaults ADD pqinumber TEXT; |
templates/design40_webpages/client_config/_ranges_of_numbers.html | ||
---|---|---|
34 | 34 |
<th>[% LxERP.t8('Order Intake') %]</th> |
35 | 35 |
<td>[% L.input_tag("defaults.soinumber", SELF.defaults.soinumber, size="15", class="wi-normal") %]</td> |
36 | 36 |
</tr> |
37 |
<tr> |
|
38 |
<th>[% LxERP.t8('Quotation Intake') %]</th> |
|
39 |
<td>[% L.input_tag("defaults.pqinumber", SELF.defaults.pqinumber, size="15", class="wi-normal") %]</td> |
|
40 |
</tr> |
|
37 | 41 |
<tr> |
38 | 42 |
<th>[% LxERP.t8('Order') %]</th> |
39 | 43 |
<td>[% L.input_tag("defaults.sonumber", SELF.defaults.sonumber, size="15", class="wi-normal") %]</td> |
templates/webpages/client_config/_ranges_of_numbers.html | ||
---|---|---|
24 | 24 |
<td>[% L.input_tag("defaults.soinumber", SELF.defaults.soinumber, size="15") %]</td> |
25 | 25 |
</tr> |
26 | 26 |
|
27 |
<tr> |
|
28 |
<td align="right" nowrap>[% LxERP.t8('Last Purchase Quotation Intake Number') %]</td> |
|
29 |
<td>[% L.input_tag("defaults.pqinumber", SELF.defaults.pqinumber, size="15") %]</td> |
|
30 |
</tr> |
|
31 |
|
|
27 | 32 |
<tr> |
28 | 33 |
<td align="right" nowrap>[% LxERP.t8('Last Sales Order Number') %]</td> |
29 | 34 |
<td>[% L.input_tag("defaults.sonumber", SELF.defaults.sonumber, size="15") %]</td> |
Auch abrufbar als: Unified diff
Angebots-Eingang: DB und Nummernkreis