Revision c123e944
Von Tamino Steinert vor 4 Monaten hinzugefügt
SL/DB/Helper/ALL.pm | ||
---|---|---|
97 | 97 |
use SL::DB::PaymentTerm; |
98 | 98 |
use SL::DB::PeriodicInvoice; |
99 | 99 |
use SL::DB::PeriodicInvoicesConfig; |
100 |
use SL::DB::PeriodicInvoiceItemsConfig; |
|
100 | 101 |
use SL::DB::PriceFactor; |
101 | 102 |
use SL::DB::Pricegroup; |
102 | 103 |
use SL::DB::Price; |
SL/DB/Helper/Mappings.pm | ||
---|---|---|
176 | 176 |
payment_terms => 'payment_term', |
177 | 177 |
periodic_invoices => 'periodic_invoice', |
178 | 178 |
periodic_invoices_configs => 'periodic_invoices_config', |
179 |
periodic_invoice_items_configs => 'PeriodicInvoiceItemsConfig', |
|
179 | 180 |
prices => 'price', |
180 | 181 |
price_factors => 'price_factor', |
181 | 182 |
price_rules => 'price_rule', |
SL/DB/Manager/PeriodicInvoiceItemsConfig.pm | ||
---|---|---|
1 |
# This file has been auto-generated only because it didn't exist. |
|
2 |
# Feel free to modify it at will; it will not be overwritten automatically. |
|
3 |
|
|
4 |
package SL::DB::Manager::PeriodicInvoiceItemsConfig; |
|
5 |
|
|
6 |
use strict; |
|
7 |
|
|
8 |
use parent qw(SL::DB::Helper::Manager); |
|
9 |
|
|
10 |
sub object_class { 'SL::DB::PeriodicInvoiceItemsConfig' } |
|
11 |
|
|
12 |
__PACKAGE__->make_manager_methods; |
|
13 |
|
|
14 |
1; |
SL/DB/MetaSetup/OrderItem.pm | ||
---|---|---|
9 | 9 |
__PACKAGE__->meta->table('orderitems'); |
10 | 10 |
|
11 | 11 |
__PACKAGE__->meta->columns( |
12 |
active_discount_source => { type => 'text', default => '', not_null => 1 }, |
|
13 |
active_price_source => { type => 'text', default => '', not_null => 1 }, |
|
14 |
base_qty => { type => 'float', precision => 4, scale => 4 }, |
|
15 |
cusordnumber => { type => 'text' }, |
|
16 |
description => { type => 'text' }, |
|
17 |
discount => { type => 'float', precision => 4, scale => 4 }, |
|
18 |
id => { type => 'integer', not_null => 1, sequence => 'orderitemsid' }, |
|
19 |
itime => { type => 'timestamp', default => 'now()' }, |
|
20 |
lastcost => { type => 'numeric', precision => 15, scale => 5 }, |
|
21 |
longdescription => { type => 'text' }, |
|
22 |
marge_percent => { type => 'numeric', precision => 15, scale => 5 }, |
|
23 |
marge_price_factor => { type => 'numeric', default => 1, precision => 15, scale => 5 }, |
|
24 |
marge_total => { type => 'numeric', precision => 15, scale => 5 }, |
|
25 |
mtime => { type => 'timestamp' }, |
|
26 |
optional => { type => 'boolean', default => 'false' }, |
|
27 |
orderer_id => { type => 'integer' }, |
|
28 |
ordnumber => { type => 'text' }, |
|
29 |
parts_id => { type => 'integer' }, |
|
30 |
position => { type => 'integer', not_null => 1 }, |
|
31 |
price_factor => { type => 'numeric', default => 1, precision => 15, scale => 5 }, |
|
32 |
price_factor_id => { type => 'integer' }, |
|
33 |
pricegroup_id => { type => 'integer' }, |
|
34 |
project_id => { type => 'integer' }, |
|
35 |
qty => { type => 'numeric', precision => 25, scale => 5 }, |
|
36 |
recurring_billing_invoice_id => { type => 'integer' }, |
|
37 |
recurring_billing_mode => { type => 'enum', check_in => [ 'never', 'once', 'always' ], db_type => 'items_recurring_billing_mode', default => 'always', not_null => 1 }, |
|
38 |
reqdate => { type => 'date' }, |
|
39 |
sellprice => { type => 'numeric', precision => 15, scale => 5 }, |
|
40 |
serialnumber => { type => 'text' }, |
|
41 |
ship => { type => 'float', precision => 4, scale => 4 }, |
|
42 |
subtotal => { type => 'boolean', default => 'false' }, |
|
43 |
trans_id => { type => 'integer' }, |
|
44 |
transdate => { type => 'text' }, |
|
45 |
unit => { type => 'varchar', length => 20 }, |
|
12 |
active_discount_source => { type => 'text', default => '', not_null => 1 }, |
|
13 |
active_price_source => { type => 'text', default => '', not_null => 1 }, |
|
14 |
base_qty => { type => 'float', precision => 4, scale => 4 }, |
|
15 |
cusordnumber => { type => 'text' }, |
|
16 |
description => { type => 'text' }, |
|
17 |
discount => { type => 'float', precision => 4, scale => 4 }, |
|
18 |
id => { type => 'integer', not_null => 1, sequence => 'orderitemsid' }, |
|
19 |
itime => { type => 'timestamp', default => 'now()' }, |
|
20 |
lastcost => { type => 'numeric', precision => 15, scale => 5 }, |
|
21 |
longdescription => { type => 'text' }, |
|
22 |
marge_percent => { type => 'numeric', precision => 15, scale => 5 }, |
|
23 |
marge_price_factor => { type => 'numeric', default => 1, precision => 15, scale => 5 }, |
|
24 |
marge_total => { type => 'numeric', precision => 15, scale => 5 }, |
|
25 |
mtime => { type => 'timestamp' }, |
|
26 |
optional => { type => 'boolean', default => 'false' }, |
|
27 |
orderer_id => { type => 'integer' }, |
|
28 |
ordnumber => { type => 'text' }, |
|
29 |
parts_id => { type => 'integer' }, |
|
30 |
position => { type => 'integer', not_null => 1 }, |
|
31 |
price_factor => { type => 'numeric', default => 1, precision => 15, scale => 5 }, |
|
32 |
price_factor_id => { type => 'integer' }, |
|
33 |
pricegroup_id => { type => 'integer' }, |
|
34 |
project_id => { type => 'integer' }, |
|
35 |
qty => { type => 'numeric', precision => 25, scale => 5 }, |
|
36 |
reqdate => { type => 'date' }, |
|
37 |
sellprice => { type => 'numeric', precision => 15, scale => 5 }, |
|
38 |
serialnumber => { type => 'text' }, |
|
39 |
ship => { type => 'float', precision => 4, scale => 4 }, |
|
40 |
subtotal => { type => 'boolean', default => 'false' }, |
|
41 |
trans_id => { type => 'integer' }, |
|
42 |
transdate => { type => 'text' }, |
|
43 |
unit => { type => 'varchar', length => 20 }, |
|
46 | 44 |
); |
47 | 45 |
|
48 | 46 |
__PACKAGE__->meta->primary_key_columns([ 'id' ]); |
... | ... | |
80 | 78 |
key_columns => { project_id => 'id' }, |
81 | 79 |
}, |
82 | 80 |
|
83 |
recurring_billing_invoice => { |
|
84 |
class => 'SL::DB::Invoice', |
|
85 |
key_columns => { recurring_billing_invoice_id => 'id' }, |
|
86 |
}, |
|
87 |
|
|
88 | 81 |
unit_obj => { |
89 | 82 |
class => 'SL::DB::Unit', |
90 | 83 |
key_columns => { unit => 'name' }, |
SL/DB/MetaSetup/PeriodicInvoiceItemsConfig.pm | ||
---|---|---|
1 |
# This file has been auto-generated. Do not modify it; it will be overwritten |
|
2 |
# by rose_auto_create_model.pl automatically. |
|
3 |
package SL::DB::PeriodicInvoiceItemsConfig; |
|
4 |
|
|
5 |
use strict; |
|
6 |
|
|
7 |
use parent qw(SL::DB::Object); |
|
8 |
|
|
9 |
__PACKAGE__->meta->table('periodic_invoice_items_configs'); |
|
10 |
|
|
11 |
__PACKAGE__->meta->columns( |
|
12 |
end_date => { type => 'date' }, |
|
13 |
extend_automatically_by => { type => 'integer' }, |
|
14 |
once_invoice_id => { type => 'integer' }, |
|
15 |
order_item_id => { type => 'integer', not_null => 1 }, |
|
16 |
periodicity => { type => 'varchar', length => 10, not_null => 1 }, |
|
17 |
start_date => { type => 'date' }, |
|
18 |
terminated => { type => 'boolean' }, |
|
19 |
); |
|
20 |
|
|
21 |
__PACKAGE__->meta->primary_key_columns([ 'order_item_id' ]); |
|
22 |
|
|
23 |
__PACKAGE__->meta->foreign_keys( |
|
24 |
once_invoice => { |
|
25 |
class => 'SL::DB::Invoice', |
|
26 |
key_columns => { once_invoice_id => 'id' }, |
|
27 |
}, |
|
28 |
|
|
29 |
order_item => { |
|
30 |
class => 'SL::DB::OrderItem', |
|
31 |
key_columns => { order_item_id => 'id' }, |
|
32 |
rel_type => 'one to one', |
|
33 |
}, |
|
34 |
); |
|
35 |
|
|
36 |
1; |
|
37 |
; |
SL/DB/PeriodicInvoiceItemsConfig.pm | ||
---|---|---|
1 |
# This file has been auto-generated only because it didn't exist. |
|
2 |
# Feel free to modify it at will; it will not be overwritten automatically. |
|
3 |
|
|
4 |
package SL::DB::PeriodicInvoiceItemsConfig; |
|
5 |
|
|
6 |
use strict; |
|
7 |
|
|
8 |
use SL::DB::MetaSetup::PeriodicInvoiceItemsConfig; |
|
9 |
use SL::DB::Manager::PeriodicInvoiceItemsConfig; |
|
10 |
|
|
11 |
__PACKAGE__->meta->initialize; |
|
12 |
|
|
13 |
1; |
sql/Pg-upgrade2/periodic_invoices_items.sql | ||
---|---|---|
1 |
-- @tag: periodic_invoices_items |
|
2 |
-- @description: Separate Tabelle für Positionen von Wiederkehrende Rechnungen |
|
3 |
-- @depends: periodic_invoices sales_orders_recurring_billing_mode |
|
4 |
CREATE TABLE periodic_invoice_items_configs ( |
|
5 |
order_item_id INTEGER NOT NULL REFERENCES orderitems (id) ON DELETE CASCADE, |
|
6 |
periodicity VARCHAR(10) NOT NULL, |
|
7 |
terminated BOOLEAN, |
|
8 |
start_date DATE, |
|
9 |
end_date DATE, |
|
10 |
extend_automatically_by INTEGER, |
|
11 |
once_invoice_id INTEGER REFERENCES ar (id) ON DELETE SET NULL, |
|
12 |
|
|
13 |
PRIMARY KEY (order_item_id) |
|
14 |
); |
|
15 |
|
|
16 |
INSERT INTO periodic_invoice_items_configs ( |
|
17 |
order_item_id, periodicity, once_invoice_id |
|
18 |
) SELECT id, 'o', recurring_billing_invoice_id |
|
19 |
FROM orderitems |
|
20 |
WHERE recurring_billing_mode = 'once'; |
|
21 |
|
|
22 |
INSERT INTO periodic_invoice_items_configs ( |
|
23 |
order_item_id, periodicity, once_invoice_id |
|
24 |
) SELECT id, 'n', recurring_billing_invoice_id |
|
25 |
FROM orderitems |
|
26 |
WHERE recurring_billing_mode = 'never'; |
|
27 |
|
|
28 |
INSERT INTO periodic_invoice_items_configs ( |
|
29 |
order_item_id, periodicity, once_invoice_id |
|
30 |
) SELECT id, 'p', recurring_billing_invoice_id |
|
31 |
FROM orderitems |
|
32 |
WHERE recurring_billing_mode = 'always' and recurring_billing_invoice_id IS NOT NULL; |
|
33 |
|
|
34 |
ALTER TABLE orderitems DROP COLUMN recurring_billing_invoice_id; |
|
35 |
ALTER TABLE orderitems DROP COLUMN recurring_billing_mode; |
Auch abrufbar als: Unified diff
S:D:PeriodicInvoiceItemsConfig: DB-Tabelle erstellt