Revision fd32682e
Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt
| SL/Controller/CsvImport/DeliveryOrder.pm | ||
|---|---|---|
|
{ name => 'language', description => $::locale->text('Language (name)') },
|
||
|
{ name => 'language_id', description => $::locale->text('Language (database ID)') },
|
||
|
{ name => 'notes', description => $::locale->text('Notes') },
|
||
|
{ name => 'order_type', description => $::locale->text('Delivery Order Type') },
|
||
|
{ name => 'record_type', description => $::locale->text('Delivery Order Type') },
|
||
|
{ name => 'ordnumber', description => $::locale->text('Order Number') },
|
||
|
{ name => 'payment', description => $::locale->text('Payment terms (name)') },
|
||
|
{ name => 'payment_id', description => $::locale->text('Payment terms (database ID)') },
|
||
| ... | ... | |
|
parts_id => $item_obj->parts_id,
|
||
|
warehouse_id => $object->warehouse_id,
|
||
|
bin_id => $object->bin_id,
|
||
|
trans_type_id => $trans_type_id,
|
||
|
PURCHASE_DELIVERY_ORDER_TYPE() => $trans_type_id,
|
||
|
qty => $qty,
|
||
|
chargenumber => $object->chargenumber,
|
||
|
employee_id => $order_obj->employee_id,
|
||
| ... | ... | |
|
sub handle_type {
|
||
|
my ($self, $entry) = @_;
|
||
|
|
||
|
if (!exists $entry->{raw_data}->{order_type}) {
|
||
|
if (!exists $entry->{raw_data}->{record_type}) {
|
||
|
# if no type is present - set to sales delivery order or purchase delivery
|
||
|
# order depending on is_sales or customer/vendor
|
||
|
|
||
|
$entry->{object}->order_type(
|
||
|
$entry->{object}->record_type(
|
||
|
$entry->{object}->customer_id ? SALES_DELIVERY_ORDER_TYPE :
|
||
|
$entry->{object}->vendor_id ? PURCHASE_DELIVERY_ORDER_TYPE :
|
||
|
$entry->{raw_data}->{is_sales} ? SALES_DELIVERY_ORDER_TYPE :
|
||
| SL/DB/DeliveryOrder.pm | ||
|---|---|---|
|
employee => SL::DB::Manager::Employee->current,
|
||
|
closed => 0,
|
||
|
delivered => 0,
|
||
|
order_type => $params{destination_type},
|
||
|
record_type => $params{destination_type},
|
||
|
transdate => DateTime->today_local,
|
||
|
);
|
||
|
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
# infer type from legacy fields if not given
|
||
|
$record_args{order_type} //= $source->customer_id ? SALES_DELIVERY_ORDER_TYPE()
|
||
|
: $source->vendor_id ? PURCHASE_DELIVERY_ORDER_TYPE()
|
||
|
: $source->is_sales ? SALES_DELIVERY_ORDER_TYPE()
|
||
|
: croak "need some way to set delivery order type from source";
|
||
|
$record_args{record_type} //= $source->customer_id ? SALES_DELIVERY_ORDER_TYPE()
|
||
|
: $source->vendor_id ? PURCHASE_DELIVERY_ORDER_TYPE()
|
||
|
: $source->is_sales ? SALES_DELIVERY_ORDER_TYPE()
|
||
|
: croak "need some way to set delivery order type from source";
|
||
|
|
||
|
my $delivery_order = $class->new(%record_args);
|
||
|
$delivery_order->assign_attributes(%{ $params{attributes} }) if $params{attributes};
|
||
| ... | ... | |
|
|
||
|
} else {
|
||
|
my %args = (
|
||
|
order_type => SALES_DELIVERY_ORDER_TYPE,
|
||
|
record_type => SALES_DELIVERY_ORDER_TYPE,
|
||
|
delivered => 0,
|
||
|
customer_id => $sources->[0]->customer_id,
|
||
|
taxzone_id => $sources->[0]->customer->taxzone_id,
|
||
| ... | ... | |
|
# legacy for compatibility
|
||
|
# use type_data cusomtervendor and transfer direction instead
|
||
|
sub is_sales {
|
||
|
if ($_[0]->order_type) {
|
||
|
return SL::DB::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer");
|
||
|
if ($_[0]->record_type) {
|
||
|
return SL::DB::DeliveryOrder::TypeData::get3($_[0]->record_type, "properties", "is_customer");
|
||
|
}
|
||
|
return $_[0]{is_sales};
|
||
|
}
|
||
|
|
||
|
sub customervendor {
|
||
|
SL::DB::DeliveryOrder::TypeData::get3($_[0]->order_type, "properties", "is_customer") ? $_[0]->customer : $_[0]->vendor;
|
||
|
SL::DB::DeliveryOrder::TypeData::get3($_[0]->record_type, "properties", "is_customer") ? $_[0]->customer : $_[0]->vendor;
|
||
|
}
|
||
|
|
||
|
sub convert_to_invoice {
|
||
| SL/DB/Manager/DeliveryOrder.pm | ||
|---|---|---|
|
my $type = lc(shift || '');
|
||
|
my $prefix = shift // '';
|
||
|
|
||
|
return "${prefix}order_type" => validate_type($type);
|
||
|
return "${prefix}record_type" => validate_type($type);
|
||
|
}
|
||
|
|
||
|
sub _sort_spec {
|
||
| SL/Dev/Record.pm | ||
|---|---|---|
|
die "illegal customer" unless ref($customer) eq 'SL::DB::Customer';
|
||
|
|
||
|
my $delivery_order = SL::DB::DeliveryOrder->new(
|
||
|
order_type => SALES_DELIVERY_ORDER_TYPE,
|
||
|
record_type => SALES_DELIVERY_ORDER_TYPE,
|
||
|
'closed' => undef,
|
||
|
customer_id => $customer->id,
|
||
|
taxzone_id => $customer->taxzone_id,
|
||
| ... | ... | |
|
die "illegal vendor" unless ref($vendor) eq 'SL::DB::Vendor';
|
||
|
|
||
|
my $delivery_order = SL::DB::DeliveryOrder->new(
|
||
|
order_type => PURCHASE_DELIVERY_ORDER_TYPE,
|
||
|
record_type => PURCHASE_DELIVERY_ORDER_TYPE,
|
||
|
'closed' => undef,
|
||
|
vendor_id => $vendor->id,
|
||
|
taxzone_id => $vendor->taxzone_id,
|
||
| t/workflow/delivery_order_reclamation.t | ||
|---|---|---|
|
# clean different values
|
||
|
foreach (qw(
|
||
|
customer_id vendor_id
|
||
|
id order_type
|
||
|
id record_type
|
||
|
donumber salesman_id
|
||
|
transaction_description
|
||
|
itime mtime
|
||
| ... | ... | |
|
## converted should be nearly the same
|
||
|
my @different_record_values = qw(
|
||
|
id employee_id itime mtime reqdate
|
||
|
order_type ordnumber oreqnumber
|
||
|
ordnumber oreqnumber
|
||
|
amount exchangerate netamount
|
||
|
order_type record_type
|
||
|
record_type
|
||
|
cp_id contact_id
|
||
|
cusordnumber cv_record_number
|
||
|
donumber record_number
|
||
Auch abrufbar als: Unified diff
DB::DeliveryOrder: Nutze record_type