Projekt

Allgemein

Profil

Herunterladen (2,09 KB) Statistiken
| Zweig: | Markierung: | Revision:
4fd22b56 Sven Schöling
# This file has been auto-generated only because it didn't exist.
# Feel free to modify it at will; it will not be overwritten automatically.

f97b0778 Sven Schöling
package SL::DB::Inventory;
4fd22b56 Sven Schöling
use strict;
b24583b6 Sven Schöling
use Carp;
use DateTime;
4fd22b56 Sven Schöling
b24583b6 Sven Schöling
use SL::DBUtils qw(selectrow_query);
f97b0778 Sven Schöling
use SL::DB::MetaSetup::Inventory;
6c59b08a Bernd Bleßmann
use SL::DB::Manager::Inventory;
4fd22b56 Sven Schöling
2d7e4203 Sven Schöling
__PACKAGE__->meta->initialize;

14672a1d Sven Schöling
__PACKAGE__->before_save(\&_before_save_create_trans_id);
__PACKAGE__->before_save(\&_before_save_set_shippingdate);
__PACKAGE__->before_save(\&_before_save_set_employee);

719696e4 Sven Schöling
# part accessor is badly named
sub part {
goto &parts;
}

b24583b6 Sven Schöling
sub new_from {
my ($class, $obj) = @_;

if ('SL::DB::DeliveryOrderItemsStock' eq ref $obj) {
return $class->new_from_delivery_order_stock($obj);
}

croak "unknown obj type (@{[ ref $obj ]}) for SL::DB::Inventory::new_from";
}

sub new_from_delivery_order_stock {
e73048f9 Sven Schöling
my ($class, $stock) = @_;
b24583b6 Sven Schöling
my $project = $stock->delivery_order_item->effective_project;

e73048f9 Sven Schöling
return $class->new(
b24583b6 Sven Schöling
delivery_order_items_stock_id => $stock->id,
parts_id => $stock->delivery_order_item->parts_id,
e73048f9 Sven Schöling
qty => $stock->unit_obj->convert_to($stock->qty => $stock->delivery_order_item->part->unit_obj),
b24583b6 Sven Schöling
warehouse_id => $stock->warehouse_id,
bin_id => $stock->bin_id,
chargenumber => $stock->chargenumber,
bestbefore => $stock->bestbefore,
project_id => $project ? $project->id : undef,
# trans_type - not set here, set in controller
);
}

14672a1d Sven Schöling
sub _before_save_create_trans_id {
my ($self, %params) = @_;

return 1 if $self->trans_id;

my ($trans_id) = selectrow_query($::form, SL::DB->client->dbh, qq|SELECT nextval('id')|);

$self->trans_id($trans_id);

return 1;
}

sub _before_save_set_shippingdate {
my ($self, %params) = @_;

return 1 if $self->shippingdate;

$self->shippingdate(DateTime->now);

return 1;
}

sub _before_save_set_employee {
my ($self, %params) = @_;

eccf9705 Sven Schöling
return 1 if $self->employee_id;
14672a1d Sven Schöling
$self->employee(SL::DB::Manager::Employee->current);

return 1;
}
4fd22b56 Sven Schöling
1;