Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5737ce39

Von Bernd Bleßmann vor etwa 8 Jahren hinzugefügt

  • ID 5737ce39a18326f1c3ae70a5afcc2d494fb901c7
  • Vorgänger e0a47f33
  • Nachfolger f2461e14

Auftrags-Controller: Marge in zweiter Zeile

Unterschiede anzeigen:

SL/Controller/Order.pm
387 387

  
388 388
  $self->js
389 389
    ->run('kivi.Order.update_sellprice', $::form->{item_id}, $item->sellprice_as_number);
390
  $self->_js_redisplay_linetotals;
390
  $self->_js_redisplay_line_values;
391 391
  $self->_js_redisplay_amounts_and_taxes;
392 392
  $self->js->render();
393 393
}
......
539 539

  
540 540
  $self->_recalc();
541 541

  
542
  $self->_js_redisplay_linetotals;
542
  $self->_js_redisplay_line_values;
543 543
  $self->_js_redisplay_amounts_and_taxes;
544 544
  $self->js->render();
545 545
}
......
601 601
sub action_load_second_rows {
602 602
  my ($self) = @_;
603 603

  
604
  $self->_recalc() if $self->order->is_sales; # for margin calculation
605

  
604 606
  foreach my $item_id (@{ $::form->{item_ids} }) {
605 607
    my $idx  = first_index { $_ eq $item_id } @{ $::form->{orderitem_ids} };
606 608
    my $item = $self->order->items_sorted->[$idx];
......
631 633
    ->data('.row_entry:has(#item_' . $item_id . ') [name = "second_row"]', 'loaded', 1);
632 634
}
633 635

  
634
sub _js_redisplay_linetotals {
636
sub _js_redisplay_line_values {
635 637
  my ($self) = @_;
636 638

  
637
  my @data = map {$::form->format_amount(\%::myconfig, $_->{linetotal}, 2, 0)} @{ $self->order->items_sorted };
639
  my $is_sales = $self->order->is_sales;
640

  
641
  # sales orders with margins
642
  my @data;
643
  if ($is_sales) {
644
    @data = map {
645
      [
646
       $::form->format_amount(\%::myconfig, $_->{linetotal},     2, 0),
647
       $::form->format_amount(\%::myconfig, $_->{marge_total},   2, 0),
648
       $::form->format_amount(\%::myconfig, $_->{marge_percent}, 2, 0),
649
      ]} @{ $self->order->items_sorted };
650
  } else {
651
    @data = map {
652
      [
653
       $::form->format_amount(\%::myconfig, $_->{linetotal},     2, 0),
654
      ]} @{ $self->order->items_sorted };
655
  }
656

  
638 657
  $self->js
639
    ->run('kivi.Order.redisplay_linetotals', \@data);
658
    ->run('kivi.Order.redisplay_line_values', $is_sales, \@data);
640 659
}
641 660

  
642 661
sub _js_redisplay_amounts_and_taxes {
js/kivi.Order.js
296 296

  
297 297
  };
298 298

  
299
  ns.redisplay_linetotals = function(data) {
300
    $('.row_entry [name="linetotal"]').each(function(idx, elt) {
301
      $(elt).html(data[idx]);
299
  ns.redisplay_line_values = function(is_sales, data) {
300
    $('.row_entry').each(function(idx, elt) {
301
      $(elt).find('[name="linetotal"]').html(data[idx][0]);
302
      if (is_sales && $(elt).find('[name="second_row"]').data('loaded') == 1) {
303
        var mt = data[idx][1];
304
        var mp = data[idx][2];
305
        var h  = '<span';
306
        if (mt[0] === '-') h += ' class="plus0"';
307
        h += '>' + mt + '&nbsp;&nbsp;' + mp + '%';
308
        h += '</span>';
309
        $(elt).find('[name="linemargin"]').html(h);
310
      }
302 311
    });
303 312
  };
304 313

  
templates/webpages/order/tabs/_second_row.html
14 14
    <th>[%- 'Subtotal' | $T8 %]</th>
15 15
    <td>[% L.yes_no_tag("order.orderitems[].subtotal", ITEM.subtotal) %]</td>
16 16
    [%- IF ITEM.order.is_sales %]
17
      <th>[%- 'Ertrag' | $T8 %]</th>
18
      <td>
19
        <div name="linemargin">
20
          <span[%- IF ITEM.marge_total < 0 -%] class="plus0"[%- END -%]>
21
            [%- LxERP.format_amount(ITEM.marge_total, 2, 0) %]&nbsp;&nbsp;
22
            [%- LxERP.format_amount(ITEM.marge_percent, 2, 0) %]%
23
          </span>
24
       </div>
25
      </td>
17 26
      <th>[%- 'LP' | $T8 %]</th>
18 27
      <td>[%- LxERP.format_amount(ITEM.part.listprice, 2, 0) %]</td>
19 28
    [%- END %]

Auch abrufbar als: Unified diff