Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 74959706

Von Sven Schöling vor fast 9 Jahren hinzugefügt

  • ID 74959706407d96a119832a3c807ee4d4d2c53639
  • Vorgänger c0a22ab6
  • Nachfolger 4f3a0ab5

io.pl::display_row: Felddefinitionen vereinheitlicht.

Ob eine Zelle eine volle Spalte bekommt oder in der zweiten Zeile landet
wird jetzt nur noch durch @header_sort und @row2_sort bestimmt.

Unterschiede anzeigen:

bin/mozilla/io.pl
138 138
  my $is_delivery_order  = $form->{type} =~ /_delivery_order$/;
139 139
  my $is_quotation       = $form->{type} =~ /_quotation$/;
140 140
  my $is_invoice         = $form->{type} =~ /invoice/;
141
  my $is_credit_note     = $form->{type} =~ /credit_note/;
141 142
  my $is_s_p_order       = (first { $_ eq $form->{type} } qw(sales_order purchase_order));
142 143
  my $show_ship_missing  = $is_s_p_order && $::instance_conf->get_sales_purchase_order_ship_missing_column;
144
  my $show_marge         = (!$is_purchase || $is_invoice || $is_credit_note) && !$is_delivery_order;
143 145

  
144 146
  if ($is_delivery_order) {
145 147
    if ($form->{type} eq 'sales_delivery_order') {
......
154 156
  }
155 157

  
156 158
  # column_index
157
  my @header_sort = qw(runningnumber partnumber description ship qty unit weight sellprice discount linetotal);
158
  my @HEADER = (
159
    {  id => 'runningnumber', width => 5,     value => $locale->text('No.'),                  display => 1, },
160
    {  id => 'partnumber',    width => 8,     value => $locale->text('Number'),               display => 1, },
161
    {  id => 'description',   width => 30,    value => $locale->text('Part Description'),     display => 1, },
162
    {  id => 'ship',          width => 5,     value => $locale->text('Delivered'),            display => $is_s_p_order, },
163
    {  id => 'ship_missing',  width => 5,     value => $locale->text('Not delivered'),        display => $show_ship_missing, },
164
    {  id => 'qty',           width => 5,     value => $locale->text('Qty'),                  display => 1, },
165
    {  id => 'price_factor',  width => 5,     value => $locale->text('Price Factor'),         display => !$is_delivery_order, },
166
    {  id => 'unit',          width => 5,     value => $locale->text('Unit'),                 display => 1, },
167
    {  id => 'weight',        width => 5,     value => $locale->text('Weight'),               display => $defaults->{show_weight}, },
168
    {  id => 'serialnr',      width => 10,    value => $locale->text('Serial No.'),           display => 0, },
169
    {  id => 'projectnr',     width => 10,    value => $locale->text('Project'),              display => 0, },
170
    {  id => 'price_source',  width => 5,     value => $locale->text('Price Source'),         display => !$is_delivery_order, },
171
    {  id => 'sellprice',     width => 15,    value => $locale->text('Price'),                display => !$is_delivery_order, },
172
    {  id => 'discount',      width => 5,     value => $locale->text('Discount'),             display => !$is_delivery_order, },
173
    {  id => 'linetotal',     width => 10,    value => $locale->text('Extended'),             display => !$is_delivery_order, },
174
    {  id => 'bin',           width => 10,    value => $locale->text('Bin'),                  display => 0, },
175
    {  id => 'stock_in_out',  width => 10,    value => $stock_in_out_title,                   display => $is_delivery_order, },
159
  my @header_sort = qw(
160
    runningnumber partnumber description ship ship_missing qty price_factor
161
    unit weight price_source sellprice discount linetotal
162
    bin stock_in_out
176 163
  );
177
  my @column_index = map { $_->{id} } grep { $_->{display} } @HEADER;
178

  
164
  my @row2_sort   = qw(
165
    serialnr projectnr reqdate subtotal marge listprice lastcost onhand
166
  );
167
  my %column_def = (
168
    runningnumber => { width => 5,     value => $locale->text('No.'),                  display => 1, },
169
    partnumber    => { width => 8,     value => $locale->text('Number'),               display => 1, },
170
    description   => { width => 30,    value => $locale->text('Part Description'),     display => 1, },
171
    ship          => { width => 5,     value => $locale->text('Delivered'),            display => $is_s_p_order, },
172
    ship_missing  => { width => 5,     value => $locale->text('Not delivered'),        display => $show_ship_missing, },
173
    qty           => { width => 5,     value => $locale->text('Qty'),                  display => 1, },
174
    price_factor  => { width => 5,     value => $locale->text('Price Factor'),         display => !$is_delivery_order, },
175
    unit          => { width => 5,     value => $locale->text('Unit'),                 display => 1, },
176
    weight        => { width => 5,     value => $locale->text('Weight'),               display => $defaults->{show_weight}, },
177
    serialnr      => { width => 10,    value => $locale->text('Serial No.'),           display => !$is_quotation },
178
    projectnr     => { width => 10,    value => $locale->text('Project'),              display => 1, },
179
    price_source  => { width => 5,     value => $locale->text('Price Source'),         display => !$is_delivery_order, },
180
    sellprice     => { width => 15,    value => $locale->text('Price'),                display => !$is_delivery_order, },
181
    discount      => { width => 5,     value => $locale->text('Discount'),             display => !$is_delivery_order, },
182
    linetotal     => { width => 10,    value => $locale->text('Extended'),             display => !$is_delivery_order, },
183
    bin           => { width => 10,    value => $locale->text('Bin'),                  display => 0, },
184
    stock_in_out  => { width => 10,    value => $stock_in_out_title,                   display => $is_delivery_order, },
185
    reqdate       => {                 value => $locale->text('Reqdate'),              display => $is_s_p_order || $is_delivery_order || $is_invoice, },
186
    subtotal      => {                 value => $locale->text('Subtotal'),             display => 1, },
187
    marge         => {                 value => $locale->text('Ertrag'),               display => $show_marge, },
188
    listprice     => {                 value => $locale->text('LP'),                   display => $show_marge, },
189
    lastcost      => {                 value => $locale->text('EK'),                   display => $show_marge, },
190
    onhand        => {                 value => $locale->text('On Hand'),              display => 1, },
191
  );
192
  my @HEADER = map { $column_def{$_} } @header_sort;
179 193

  
180 194
  # cache units
181 195
  my $all_units       = AM->retrieve_units(\%myconfig, $form);
182 196

  
183 197
  my %price_factors   = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} };
184 198

  
185
  my $colspan = scalar @column_index;
186 199

  
187 200
  $form->{invsubtotal} = 0;
188 201
  map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
......
193 206
  # /about details
194 207

  
195 208
  # translations, unused commented out
196
#  $runningnumber = $locale->text('No.');
197
#  my $deliverydate  = $locale->text('Delivery Date');
198
  my $serialnumber  = $locale->text('Serial No.');
199
  my $projectnumber = $locale->text('Project');
200
#  $partsgroup    = $locale->text('Group');
201
  my $reqdate       = $locale->text('Reqdate');
202 209
  my $deliverydate  = $locale->text('Required by');
203 210

  
204 211
  # special alignings
......
364 371
      $column_data{stock_in_out} =  calculate_stock_in_out($i);
365 372
    }
366 373

  
367
    my @ROW1 = map { value => $column_data{$_}, align => $align{$_}, nowrap => $nowrap{$_} }, @column_index;
368

  
369
    # second row
370
    my @ROW2 = ();
371
    push @ROW2, { value => qq|<b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">| }
372
      if $form->{type} !~ /_quotation/;
373
    push @ROW2, { value => qq|<b>$projectnumber</b> | . NTI($cgi->popup_menu('-name'  => "project_id_$i",        '-values'  => \@projectnumber_values,
374
                                                                             '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"})) };
375
    push @ROW2, { value => qq|<b>$reqdate</b> <input name="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">| }
376
      if ($form->{type} =~ /order/ ||  $form->{type} =~ /invoice/);
377
    push @ROW2, { value => sprintf qq|<b>%s</b>&nbsp;<input type="checkbox" name="subtotal_$i" value="1" %s>|,
378
                   $locale->text('Subtotal'), $form->{"subtotal_$i"} ? 'checked' : '' };
374
    $column_data{serialnr}  = qq|<input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">|;
375
    $column_data{projectnr} = NTI($cgi->popup_menu(
376
      '-name' => "project_id_$i",
377
      '-values' => \@projectnumber_values,
378
      '-labels' => \%projectnumber_labels,
379
      '-default' => $form->{"project_id_$i"}
380
    ));
381
    $column_data{reqdate}   = qq|<input name="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">|;
382
    $column_data{subtotal}  = sprintf qq|<input type="checkbox" name="subtotal_$i" value="1" %s>|, $form->{"subtotal_$i"} ? 'checked' : '';
379 383

  
380 384
# begin marge calculations
381 385
    $form->{"lastcost_$i"}     *= 1;
......
411 415

  
412 416
    map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent);
413 417

  
414
    push @ROW2, { value => sprintf qq|
415
         <font %s><b>%s</b> %s &nbsp;%s%% </font>
416
        &nbsp;<b>%s</b> %s
417
        &nbsp;<b>%s</b> <input size="5" name="lastcost_$i" value="%s">|,
418
                   $marge_color, $locale->text('Ertrag'),$form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"},
419
                   $locale->text('LP'), $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2),
420
                   $locale->text('EK'), $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces) }
421
      if $form->{"id_$i"} && ($form->{type} =~ /^sales_/ ||  $form->{type} =~ /invoice/ || $form->{type} =~ /^credit_note$/ ) && !$is_delivery_order;
422

  
418
    $column_data{marge} = sprintf qq|<font %s>%s &nbsp;%s%%</font>|,
419
      $marge_color, $form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"};
420
    $column_data{listprice} = $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2);
421
    $column_data{lastcost}  = sprintf qq|<input size="5" name="lastcost_$i" value="%s">|, $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, $decimalplaces);
423 422
# / marge calculations ending
424 423

  
425 424
# Calculate total weight
......
429 428
    if ($form->{"id_$i"}) {
430 429
      my $part         = IC->get_basic_part_info(id => $form->{"id_$i"});
431 430
      my $onhand_color = $part->{onhand} < $part->{rop} ? 'color="#ff0000"' : '';
432
      push @ROW2, { value => sprintf "<b>%s</b> <font %s>%s %s</font>",
433
                      $locale->text('On Hand'),
431
      $column_data{onhand} = sprintf "<font %s>%s %s</font>",
434 432
                      $onhand_color,
435 433
                      $form->format_amount(\%myconfig, $part->{onhand}, 2),
436
                      $part->{unit}
437
      };
434
                      $part->{unit};
438 435
    }
439 436
# / calculate onhand
440 437

  
438
    my @ROW1 = map { { value => $column_data{$_}, align => $align{$_}, nowrap => $nowrap{$_} } } grep { $column_def{$_}{display} } @header_sort;
439
    my @ROW2 = map { { value => sprintf "<b>%s</b> %s", $column_def{$_}{value}, $column_data{$_} } } grep { $column_def{$_}{display} } @row2_sort;
440

  
441 441
    my @hidden_vars;
442 442
    # add hidden ids for persistent (item|invoice)_ids and previous (converted_from*) ids
443 443
    if ($is_quotation) {
......
475 475
    # Benutzerdefinierte Variablen für Waren/Dienstleistungen/Erzeugnisse
476 476
    _render_custom_variables_inputs(ROW2 => \@ROW2, row => $i, part_id => $form->{"id_$i"});
477 477

  
478
    my $colspan = scalar @ROW1;
478 479
    push @ROWS, { ROW1 => \@ROW1, ROW2 => \@ROW2, HIDDENS => \@HIDDENS, colspan => $colspan, error => $form->{"row_error_$i"}, obj => $record_item };
479 480
  }
480 481

  

Auch abrufbar als: Unified diff