Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a3504ba5

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

  • ID a3504ba5a87f8a4e8088daff81b7b3e0755796d0
  • Vorgänger b93214d1
  • Nachfolger 5553f015

DeliveryOrder: erste Version Lager-Dialog

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
4 4
use parent qw(SL::Controller::Base);
5 5

  
6 6
use SL::Helper::Flash qw(flash_later);
7
use SL::Helper::Number qw(_format_number_units);
7
use SL::Helper::Number qw(_format_number_units _parse_number);
8 8
use SL::Presenter::Tag qw(select_tag hidden_tag div_tag);
9 9
use SL::Locale::String qw(t8);
10 10
use SL::SessionFile::Random;
......
886 886

  
887 887
}
888 888

  
889
sub action_stock_in_out_dialog {
890
  my ($self) = @_;
891

  
892
  my $part = SL::DB::Part->load_cached($::form->{parts_id}) or die "need parts_id";
893
  my $stock = $::form->{stock};
894
  my $unit = $::form->{unit};
895
  my $qty = _parse_number($::form->{qty_as_number});
896

  
897
  my $inout = $self->type_data->transfer;
898

  
899
  my @contents   = DO->get_item_availability(parts_id => $part->id);
900
  my $stock_info = DO->unpack_stock_information(packed => $stock);
901

  
902
  $self->merge_stock_data($stock_info, \@contents, $part);
903

  
904
  $self->render("delivery_order/stock_dialog", { layout => 0 },
905
    WHCONTENTS => $self->order->delivered ? $stock_info : \@contents,
906
    part  => $part,
907
    do_qty => $qty,
908
    do_unit => $unit,
909
  );
910

  
911
}
912

  
913
sub merge_stock_data {
914
  my ($self, $stock_info, $contents, $part) = @_;
915
  # TODO rewrite to mapping
916

  
917
  if (!$self->order->delivered) {
918
    for my $row (@$contents) {
919
      $row->{available_qty} = _format_number_units($row->{qty}, $row->{unit}, $part->unit);
920

  
921
      for my $sinfo (@{ $stock_info }) {
922
        next if $row->{bin_id}       != $sinfo->{bin_id} ||
923
                $row->{warehouse_id} != $sinfo->{warehouse_id} ||
924
                $row->{chargenumber} ne $sinfo->{chargenumber} ||
925
                $row->{bestbefore}   ne $sinfo->{bestbefore};
926

  
927
        $row->{"stock_$_"} = $sinfo->{$_}
928
          for qw(qty unit error delivery_order_items_stock_id);
929
      }
930
    }
931

  
932
  } else {
933
    for my $sinfo (@{ $stock_info }) {
934
      my $bin = SL::DB::Bin->load_cached($sinfo->{bin_id});
935
      $sinfo->{warehouse_description} = $bin->warehouse->description;
936
      $sinfo->{bin_description}       = $bin->escription;
937
      map { $sinfo->{"stock_$_"}      = $sinfo->{$_} } qw(qty unit);
938
    }
939
  }
940
}
941

  
889 942
# load the second row for one or more items
890 943
#
891 944
# This action gets the html code for all items second rows by rendering a template for

Auch abrufbar als: Unified diff