Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4765620

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

  • ID c476562051ded27445ac9072bd1efabe18dbb3e3
  • Vorgänger 72589ebe
  • Nachfolger 744c5deb

DeliveryOrder: Einlagern/Auslagern

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
26 26
use SL::DB::RecordLink;
27 27
use SL::DB::Shipto;
28 28
use SL::DB::Translation;
29
use SL::DB::TransferType;
29 30

  
30 31
use SL::Helper::CreatePDF qw(:all);
31 32
use SL::Helper::PrintOptions;
......
950 951
  $self->js->render();
951 952
}
952 953

  
954
sub action_transfer_stock {
955
  my ($self) = @_;
956

  
957
  if ($self->order->delivered) {
958
    return $self->js->flash("error", t8('The parts for this order have already been transferred'))->render;
959
  }
960

  
961
  my $errors = $self->save;
962

  
963
  if (@$errors) {
964
    $self->js->flash('error', $_) for @$errors;
965
    return $self->js->render;
966
  }
967

  
968
  my $order = $self->order;
969

  
970
  # TODO move to type data
971
  my $trans_type = $self->type_data->properties('transfer') eq 'in'
972
    ? SL::DB::Manager::TransferType->find_by(direction => "id", description => "stock")
973
    : SL::DB::Manager::TransferType->find_by(direction => "out", deescription => "shipped");
974

  
975
  my @transfer_requests;
976

  
977
  for my $item (@{ $order->items_sorted }) {
978
    for my $stock (@{ $item->delivery_order_stock_entries }) {
979
      my $transfer = SL::DB::Inventory->new_from($stock);
980
      $transfer->trans_type($trans_type);
981

  
982
      push @transfer_requests, $transfer;
983
    };
984
  }
985

  
986
  if (!@transfer_requests) {
987
    $self->js->flash("error", t8("No stock to transfer"))->render;
988
  }
989

  
990
  SL::DB->with_transaction(sub {
991
    $_->save for @transfer_requests;
992
    $self->order->update_attributes(deliverd => 1);
993
  });
994

  
995
  $self->js->flash("info", t8("Stock transfered"))->render;
996
}
997

  
953 998
sub js_load_second_row {
954 999
  my ($self, $item, $item_id, $do_parse) = @_;
955 1000

  
......
1541 1586
  );
1542 1587
}
1543 1588

  
1544

  
1545 1589
sub pre_render {
1546 1590
  my ($self) = @_;
1547 1591

  
......
1707 1751
        only_if  => $self->type_data->show_menu("delete"),
1708 1752
      ],
1709 1753

  
1754
      combobox => [
1755
        action => [
1756
          t8('Transfer out'),
1757
          submit   => [ '#order_form', { action => "DeliveryOrder/transfer_stock" } ],
1758
          disabled => $self->order->delivered ? t8('The parts for this order have already been transferred') : undef,
1759
          only_if => $self->type_data->properties('transfer') eq 'out',
1760
          confirm  => t8('Do you really want to transfer the stock and set this order to delivered?'),
1761
        ],
1762
        action => [
1763
          t8('Transfer in'),
1764
          submit   => [ '#order_form', { action => "DeliveryOrder/transfer_stock" } ],
1765
          disabled => $self->order->delivered ? t8('The parts for this order have already been transferred') : undef,
1766
          only_if => $self->type_data->properties('transfer') eq 'in',
1767
          confirm  => t8('Do you really want to transfer the stock and set this order to delivered?'),
1768
        ],
1769
      ],
1770

  
1710 1771
      combobox => [
1711 1772
        action => [
1712 1773
          t8('more')

Auch abrufbar als: Unified diff