Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6b87fc69

Von Moritz Bunkus vor mehr als 10 Jahren hinzugefügt

  • ID 6b87fc69acd2056741e1247e46b9d4dcc9db8730
  • Vorgänger aaa2cd92
  • Nachfolger 4d050ca3

Pflichtenhefte: Nummerierungsformate zu Typen verschoben & bearbeitbar gemacht

Unterschiede anzeigen:

SL/DB/MetaSetup/Default.pm
9 9
__PACKAGE__->meta->table('defaults');
10 10

  
11 11
__PACKAGE__->meta->columns(
12
  accounting_method                             => { type => 'text' },
13
  address                                       => { type => 'text' },
14
  ap_changeable                                 => { type => 'integer', default => 2, not_null => 1 },
15
  ap_show_mark_as_paid                          => { type => 'boolean', default => 'true' },
16
  ar_changeable                                 => { type => 'integer', default => 2, not_null => 1 },
17
  ar_paid_accno_id                              => { type => 'integer' },
18
  ar_show_mark_as_paid                          => { type => 'boolean', default => 'true' },
19
  articlenumber                                 => { type => 'text' },
20
  assemblynumber                                => { type => 'text' },
21
  balance_startdate_method                      => { type => 'text' },
22
  bin_id                                        => { type => 'integer' },
23
  bin_id_ignore_onhand                          => { type => 'integer' },
24
  businessnumber                                => { type => 'text' },
25
  closedto                                      => { type => 'date' },
26
  cnnumber                                      => { type => 'text' },
27
  co_ustid                                      => { type => 'text' },
28
  coa                                           => { type => 'text' },
29
  company                                       => { type => 'text' },
30
  currency_id                                   => { type => 'integer', not_null => 1 },
31
  customer_hourly_rate                          => { type => 'numeric', precision => 2, scale => 8 },
32
  customernumber                                => { type => 'text' },
33
  datev_check_on_ap_transaction                 => { type => 'boolean', default => 'true' },
34
  datev_check_on_ar_transaction                 => { type => 'boolean', default => 'true' },
35
  datev_check_on_gl_transaction                 => { type => 'boolean', default => 'true' },
36
  datev_check_on_purchase_invoice               => { type => 'boolean', default => 'true' },
37
  datev_check_on_sales_invoice                  => { type => 'boolean', default => 'true' },
38
  dunning_ar                                    => { type => 'integer' },
39
  dunning_ar_amount_fee                         => { type => 'integer' },
40
  dunning_ar_amount_interest                    => { type => 'integer' },
41
  duns                                          => { type => 'text' },
42
  expense_accno_id                              => { type => 'integer' },
43
  fxgain_accno_id                               => { type => 'integer' },
44
  fxloss_accno_id                               => { type => 'integer' },
45
  gl_changeable                                 => { type => 'integer', default => 2, not_null => 1 },
46
  id                                            => { type => 'serial', not_null => 1 },
47
  income_accno_id                               => { type => 'integer' },
48
  inventory_accno_id                            => { type => 'integer' },
49
  inventory_system                              => { type => 'text' },
50
  invnumber                                     => { type => 'text' },
51
  ir_changeable                                 => { type => 'integer', default => 2, not_null => 1 },
52
  ir_show_mark_as_paid                          => { type => 'boolean', default => 'true' },
53
  is_changeable                                 => { type => 'integer', default => 2, not_null => 1 },
54
  is_show_mark_as_paid                          => { type => 'boolean', default => 'true' },
55
  itime                                         => { type => 'timestamp', default => 'now()' },
56
  language_id                                   => { type => 'integer' },
57
  max_future_booking_interval                   => { type => 'integer', default => 360 },
58
  mtime                                         => { type => 'timestamp' },
59
  normalize_part_descriptions                   => { type => 'boolean', default => 'true' },
60
  normalize_vc_names                            => { type => 'boolean', default => 'true' },
61
  parts_image_css                               => { type => 'text', default => 'border:0;float:left;max-width:250px;margin-top:20px:margin-right:10px;margin-left:10px;' },
62
  parts_listing_image                           => { type => 'boolean', default => 'true' },
63
  parts_show_image                              => { type => 'boolean', default => 'true' },
64
  payments_changeable                           => { type => 'integer', default => '0', not_null => 1 },
65
  pdonumber                                     => { type => 'text' },
66
  ponumber                                      => { type => 'text' },
67
  profit_determination                          => { type => 'text' },
68
  purchase_delivery_order_show_delete           => { type => 'boolean', default => 'true' },
69
  purchase_order_show_delete                    => { type => 'boolean', default => 'true' },
70
  requirement_spec_function_block_number_format => { type => 'text', default => 'FB000', not_null => 1 },
71
  requirement_spec_section_number_format        => { type => 'text', default => 'A00', not_null => 1 },
72
  requirement_spec_section_order_part_id        => { type => 'integer' },
73
  revtrans                                      => { type => 'boolean', default => 'false' },
74
  rfqnumber                                     => { type => 'text' },
75
  rmanumber                                     => { type => 'text' },
76
  sales_delivery_order_show_delete              => { type => 'boolean', default => 'true' },
77
  sales_order_show_delete                       => { type => 'boolean', default => 'true' },
78
  sdonumber                                     => { type => 'text' },
79
  sepa_creditor_id                              => { type => 'text' },
80
  servicenumber                                 => { type => 'text' },
81
  show_bestbefore                               => { type => 'boolean', default => 'false' },
82
  show_weight                                   => { type => 'boolean', default => 'false', not_null => 1 },
83
  signature                                     => { type => 'text' },
84
  sonumber                                      => { type => 'text' },
85
  sqnumber                                      => { type => 'text' },
86
  taxnumber                                     => { type => 'text' },
87
  templates                                     => { type => 'text' },
88
  transfer_default                              => { type => 'boolean', default => 'true' },
89
  transfer_default_ignore_onhand                => { type => 'boolean', default => 'false' },
90
  transfer_default_use_master_default_bin       => { type => 'boolean', default => 'false' },
91
  vendornumber                                  => { type => 'text' },
92
  version                                       => { type => 'varchar', length => 8 },
93
  vertreter                                     => { type => 'boolean', default => 'false' },
94
  warehouse_id                                  => { type => 'integer' },
95
  warehouse_id_ignore_onhand                    => { type => 'integer' },
96
  webdav                                        => { type => 'boolean', default => 'false' },
97
  webdav_documents                              => { type => 'boolean', default => 'false' },
98
  weightunit                                    => { type => 'varchar', length => 5 },
12
  accounting_method                       => { type => 'text' },
13
  address                                 => { type => 'text' },
14
  ap_changeable                           => { type => 'integer', default => 2, not_null => 1 },
15
  ap_show_mark_as_paid                    => { type => 'boolean', default => 'true' },
16
  ar_changeable                           => { type => 'integer', default => 2, not_null => 1 },
17
  ar_paid_accno_id                        => { type => 'integer' },
18
  ar_show_mark_as_paid                    => { type => 'boolean', default => 'true' },
19
  articlenumber                           => { type => 'text' },
20
  assemblynumber                          => { type => 'text' },
21
  balance_startdate_method                => { type => 'text' },
22
  bin_id                                  => { type => 'integer' },
23
  bin_id_ignore_onhand                    => { type => 'integer' },
24
  businessnumber                          => { type => 'text' },
25
  closedto                                => { type => 'date' },
26
  cnnumber                                => { type => 'text' },
27
  co_ustid                                => { type => 'text' },
28
  coa                                     => { type => 'text' },
29
  company                                 => { type => 'text' },
30
  currency_id                             => { type => 'integer', not_null => 1 },
31
  customer_hourly_rate                    => { type => 'numeric', precision => 2, scale => 8 },
32
  customernumber                          => { type => 'text' },
33
  datev_check_on_ap_transaction           => { type => 'boolean', default => 'true' },
34
  datev_check_on_ar_transaction           => { type => 'boolean', default => 'true' },
35
  datev_check_on_gl_transaction           => { type => 'boolean', default => 'true' },
36
  datev_check_on_purchase_invoice         => { type => 'boolean', default => 'true' },
37
  datev_check_on_sales_invoice            => { type => 'boolean', default => 'true' },
38
  dunning_ar                              => { type => 'integer' },
39
  dunning_ar_amount_fee                   => { type => 'integer' },
40
  dunning_ar_amount_interest              => { type => 'integer' },
41
  duns                                    => { type => 'text' },
42
  expense_accno_id                        => { type => 'integer' },
43
  fxgain_accno_id                         => { type => 'integer' },
44
  fxloss_accno_id                         => { type => 'integer' },
45
  gl_changeable                           => { type => 'integer', default => 2, not_null => 1 },
46
  id                                      => { type => 'serial', not_null => 1 },
47
  income_accno_id                         => { type => 'integer' },
48
  inventory_accno_id                      => { type => 'integer' },
49
  inventory_system                        => { type => 'text' },
50
  invnumber                               => { type => 'text' },
51
  ir_changeable                           => { type => 'integer', default => 2, not_null => 1 },
52
  ir_show_mark_as_paid                    => { type => 'boolean', default => 'true' },
53
  is_changeable                           => { type => 'integer', default => 2, not_null => 1 },
54
  is_show_mark_as_paid                    => { type => 'boolean', default => 'true' },
55
  itime                                   => { type => 'timestamp', default => 'now()' },
56
  language_id                             => { type => 'integer' },
57
  max_future_booking_interval             => { type => 'integer', default => 360 },
58
  mtime                                   => { type => 'timestamp' },
59
  normalize_part_descriptions             => { type => 'boolean', default => 'true' },
60
  normalize_vc_names                      => { type => 'boolean', default => 'true' },
61
  parts_image_css                         => { type => 'text', default => 'border:0;float:left;max-width:250px;margin-top:20px:margin-right:10px;margin-left:10px;' },
62
  parts_listing_image                     => { type => 'boolean', default => 'true' },
63
  parts_show_image                        => { type => 'boolean', default => 'true' },
64
  payments_changeable                     => { type => 'integer', default => '0', not_null => 1 },
65
  pdonumber                               => { type => 'text' },
66
  ponumber                                => { type => 'text' },
67
  profit_determination                    => { type => 'text' },
68
  purchase_delivery_order_show_delete     => { type => 'boolean', default => 'true' },
69
  purchase_order_show_delete              => { type => 'boolean', default => 'true' },
70
  requirement_spec_section_order_part_id  => { type => 'integer' },
71
  revtrans                                => { type => 'boolean', default => 'false' },
72
  rfqnumber                               => { type => 'text' },
73
  rmanumber                               => { type => 'text' },
74
  sales_delivery_order_show_delete        => { type => 'boolean', default => 'true' },
75
  sales_order_show_delete                 => { type => 'boolean', default => 'true' },
76
  sdonumber                               => { type => 'text' },
77
  sepa_creditor_id                        => { type => 'text' },
78
  servicenumber                           => { type => 'text' },
79
  show_bestbefore                         => { type => 'boolean', default => 'false' },
80
  show_weight                             => { type => 'boolean', default => 'false', not_null => 1 },
81
  signature                               => { type => 'text' },
82
  sonumber                                => { type => 'text' },
83
  sqnumber                                => { type => 'text' },
84
  taxnumber                               => { type => 'text' },
85
  templates                               => { type => 'text' },
86
  transfer_default                        => { type => 'boolean', default => 'true' },
87
  transfer_default_ignore_onhand          => { type => 'boolean', default => 'false' },
88
  transfer_default_use_master_default_bin => { type => 'boolean', default => 'false' },
89
  vendornumber                            => { type => 'text' },
90
  version                                 => { type => 'varchar', length => 8 },
91
  vertreter                               => { type => 'boolean', default => 'false' },
92
  warehouse_id                            => { type => 'integer' },
93
  warehouse_id_ignore_onhand              => { type => 'integer' },
94
  webdav                                  => { type => 'boolean', default => 'false' },
95
  webdav_documents                        => { type => 'boolean', default => 'false' },
96
  weightunit                              => { type => 'varchar', length => 5 },
99 97
);
100 98

  
101 99
__PACKAGE__->meta->primary_key_columns([ 'id' ]);
SL/DB/MetaSetup/RequirementSpecType.pm
9 9
__PACKAGE__->meta->table('requirement_spec_types');
10 10

  
11 11
__PACKAGE__->meta->columns(
12
  description        => { type => 'text', not_null => 1 },
13
  id                 => { type => 'serial', not_null => 1 },
14
  itime              => { type => 'timestamp', default => 'now()' },
15
  mtime              => { type => 'timestamp' },
16
  position           => { type => 'integer', not_null => 1 },
17
  template_file_name => { type => 'text' },
12
  description                  => { type => 'text', not_null => 1 },
13
  function_block_number_format => { type => 'text', default => 'FB000', not_null => 1 },
14
  id                           => { type => 'serial', not_null => 1 },
15
  itime                        => { type => 'timestamp', default => 'now()' },
16
  mtime                        => { type => 'timestamp' },
17
  position                     => { type => 'integer', not_null => 1 },
18
  section_number_format        => { type => 'text', default => 'A00', not_null => 1 },
19
  template_file_name           => { type => 'text' },
18 20
);
19 21

  
20 22
__PACKAGE__->meta->primary_key_columns([ 'id' ]);
SL/DB/RequirementSpecItem.pm
56 56

  
57 57
  $self->requirement_spec->update_attributes($method => $next_number) || return 0;
58 58

  
59
  $method    = 'requirement_spec_' . ($self->parent_id ? 'function_block' : 'section') . '_number_format';
60
  my $format = SL::DB::Default->get->$method;
59
  $method    = ($self->parent_id ? 'function_block' : 'section') . '_number_format';
60
  my $format = $self->requirement_spec->type->$method;
61 61

  
62 62
  $self->fb_number(SL::PrefixedNumber->new(number => $format || 0)->set_to($next_number));
63 63

  
locale/de/all
1116 1116
  'Full access to all functions' => 'Vollzugriff auf alle Funktionen',
1117 1117
  'Function block'              => 'Funktionsblock',
1118 1118
  'Function block actions'      => 'Funktionsblockaktionen',
1119
  'Function block number format' => 'Format der Funktionsblocknummerierung',
1119 1120
  'Function/position'           => 'Funktion/Position',
1120 1121
  'Fwd'                         => 'Vorwärts',
1121 1122
  'GL Transaction'              => 'Dialogbuchung',
......
2021 2022
  'Searchable'                  => 'Durchsuchbar',
2022 2023
  'Secondary sorting'           => 'Untersortierung',
2023 2024
  'Section "#1"'                => 'Abschnitt "#1"',
2025
  'Section number format'       => 'Format der Abschnittsnummerierung',
2024 2026
  'Section/Function block actions' => 'Abschnitts-/Funktionsblockaktionen',
2025 2027
  'Sections'                    => 'Abschnitte',
2026 2028
  'Sections that are not assigned to any of the items above will be added as new positions.' => 'Abschnitte, die keiner der oben aufgeführten Positionen zugeordnet sind, werden als neue Positionen ergänzt.',
......
2398 2400
  'The name must only consist of letters, numbers and underscores and start with a letter.' => 'Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.',
2399 2401
  'The new requirement spec will be a copy of \'#1\' for customer \'#2\'.' => 'Das neue Pflichtenheft wird eine Kopie von \'#1\' für Kunde \'#2\' sein.',
2400 2402
  'The number of days for full payment' => 'Die Anzahl Tage, bis die Rechnung in voller Höhe bezahlt werden muss',
2403
  'The numbering will start at 1 with each requirement spec.' => 'Die Nummerierung beginnt bei jedem Pflichtenheft bei 1.',
2401 2404
  'The option field is empty.'  => 'Das Optionsfeld ist leer.',
2402 2405
  'The package name is invalid.' => 'Der Paketname ist ungültig.',
2403 2406
  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
sql/Pg-upgrade2/requirement_spec_types_number_formats.sql
1
-- @tag: requirement_spec_types_number_formats
2
-- @description: Nummerierungsformate für Pflichtenhefte in Typentabelle verschieben
3
-- @depends: requirement_specs
4
ALTER TABLE requirement_spec_types ADD   COLUMN section_number_format        TEXT;
5
ALTER TABLE requirement_spec_types ALTER COLUMN section_number_format        SET DEFAULT 'A00';
6
ALTER TABLE requirement_spec_types ADD   COLUMN function_block_number_format TEXT;
7
ALTER TABLE requirement_spec_types ALTER COLUMN function_block_number_format SET DEFAULT 'FB000';
8

  
9
UPDATE requirement_spec_types SET section_number_format        = (SELECT requirement_spec_section_number_format        FROM defaults);
10
UPDATE requirement_spec_types SET function_block_number_format = (SELECT requirement_spec_function_block_number_format FROM defaults);
11

  
12
ALTER TABLE requirement_spec_types ALTER COLUMN section_number_format        SET NOT NULL;
13
ALTER TABLE requirement_spec_types ALTER COLUMN function_block_number_format SET NOT NULL;
14

  
15
ALTER TABLE defaults DROP COLUMN requirement_spec_section_number_format;
16
ALTER TABLE defaults DROP COLUMN requirement_spec_function_block_number_format;
templates/webpages/requirement_spec_type/form.html
15 15
    <td>[% LxERP.t8('Print template base file name') %]<sup>(1)</sup></td>
16 16
    <td>[% L.input_tag("requirement_spec_type.template_file_name", SELF.requirement_spec_type.template_file_name) %]</td>
17 17
   </tr>
18

  
19
   <tr>
20
    <td>[% LxERP.t8('Section number format') %]<sup>(2)</sup></td>
21
    <td>[% L.input_tag("requirement_spec_type.section_number_format", SELF.requirement_spec_type.section_number_format, size="15") %]</td>
22
   </tr>
23

  
24
   <tr>
25
    <td>[% LxERP.t8('Function block number format') %]<sup>(2)</sup></td>
26
    <td>[% L.input_tag("requirement_spec_type.function_block_number_format", SELF.requirement_spec_type.function_block_number_format, size="15") %]</td>
27
   </tr>
18 28
  </table>
19 29

  
20 30
  <p>
......
29 39

  
30 40
  <p>
31 41
   <sup>(1)</sup>: [% LxERP.t8("The base file name without a path or an extension to be used for printing for this type of requirement spec.") %]
42
   <br>
43
   <sup>(2)</sup>: [% LxERP.t8('The numbering will start at 1 with each requirement spec.') %]
32 44
  </p>
33 45
 </form>
templates/webpages/requirement_spec_type/list.html
16 16
    <tr class="listheading">
17 17
     <th align="center"><img src="image/updown.png" alt="[ LxERP.t8('reorder item') %]"></th>
18 18
     <th>[%- LxERP.t8('Description') %]</th>
19
     <th>[%- LxERP.t8('Section number format') %]</th>
20
     <th>[%- LxERP.t8('Function block number format') %]</th>
19 21
    </tr>
20 22
    </thead>
21 23

  
......
28 30
       [%- HTML.escape(requirement_spec_type.description) %]
29 31
      </a>
30 32
     </td>
33

  
34
     <td>[% HTML.escape(requirement_spec_type.section_number_format) %]</td>
35
     <td>[% HTML.escape(requirement_spec_type.function_block_number_format) %]</td>
31 36
    </tr>
32 37
    [%- END %]
33 38
    </tbody>

Auch abrufbar als: Unified diff