Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 19089836

Von Tamino Steinert vor etwa 1 Jahr hinzugefügt

  • ID 19089836a4a6020cdf37982aadca2f934ed8cac5
  • Vorgänger 65727031
  • Nachfolger bdc4b5cf

Model::Record: Anpassen nach Kunden/Lieferanten-Änderung

Unterschiede anzeigen:

SL/Controller/DeliveryOrder.pm
565 565
sub action_customer_vendor_changed {
566 566
  my ($self) = @_;
567 567

  
568
  setup_order_from_cv($self->order);
568
  $self->order(SL::Model::Record->update_after_customer_vendor_change($self->order));
569 569

  
570 570
  my $cv_method = $self->cv;
571 571

  
......
1375 1375
  my $cv_id_method = $self->cv . '_id';
1376 1376
  if (!$::form->{id} && $::form->{$cv_id_method}) {
1377 1377
    $order->$cv_id_method($::form->{$cv_id_method});
1378
    setup_order_from_cv($order);
1378
    $order = SL::Model::Record->update_after_customer_vendor_change($order);
1379 1379
  }
1380 1380

  
1381 1381
  my $form_orderitems                  = delete $::form->{order}->{orderitems};
......
1530 1530
  return $item;
1531 1531
}
1532 1532

  
1533
sub setup_order_from_cv {
1534
  my ($order) = @_;
1535

  
1536
  $order->$_($order->customervendor->$_) for (qw(taxzone_id payment_id delivery_term_id currency_id));
1537

  
1538
  $order->intnotes($order->customervendor->notes);
1539

  
1540
  if ($order->is_sales) {
1541
    $order->salesman_id($order->customer->salesman_id || SL::DB::Manager::Employee->current->id);
1542
    $order->taxincluded(defined($order->customer->taxincluded_checked)
1543
                        ? $order->customer->taxincluded_checked
1544
                        : $::myconfig{taxincluded_checked});
1545
  }
1546

  
1547
}
1548

  
1549 1533
# setup custom shipto from form
1550 1534
#
1551 1535
# The dialog returns form variables starting with 'shipto' and cvars starting
SL/Controller/Order.pm
918 918
sub action_customer_vendor_changed {
919 919
  my ($self) = @_;
920 920

  
921
  setup_order_from_cv($self->order);
921
  $self->order(SL::Model::Record->update_after_customer_vendor_change($self->order));
922

  
922 923
  $self->recalc();
923 924

  
924 925
  my $cv_method = $self->cv;
......
1808 1809
  my $cv_id_method = $self->cv . '_id';
1809 1810
  if (!$::form->{id} && $::form->{$cv_id_method}) {
1810 1811
    $order->$cv_id_method($::form->{$cv_id_method});
1811
    setup_order_from_cv($order);
1812
    $order = SL::Model::Record->update_after_customer_vendor_change($order);
1812 1813
  }
1813 1814

  
1814 1815
  my $form_orderitems                  = delete $::form->{order}->{orderitems};
......
1920 1921
  return $item;
1921 1922
}
1922 1923

  
1923
sub setup_order_from_cv {
1924
  my ($order) = @_;
1925

  
1926
  $order->$_($order->customervendor->$_) for (qw(taxzone_id payment_id delivery_term_id currency_id language_id));
1927

  
1928
  $order->intnotes($order->customervendor->notes);
1929

  
1930
  return if !$order->is_sales;
1931

  
1932
  $order->salesman_id($order->customer->salesman_id || SL::DB::Manager::Employee->current->id);
1933
  $order->taxincluded(defined($order->customer->taxincluded_checked)
1934
                      ? $order->customer->taxincluded_checked
1935
                      : $::myconfig{taxincluded_checked});
1936

  
1937
  my $address = $order->customer->default_billing_address;;
1938
  $order->billing_address_id($address ? $address->id : undef);
1939
}
1940

  
1941 1924
# setup custom shipto from form
1942 1925
#
1943 1926
# The dialog returns form variables starting with 'shipto' and cvars starting
SL/Controller/Reclamation.pm
666 666
sub action_customer_vendor_changed {
667 667
  my ($self) = @_;
668 668

  
669
  $self->reclamation(
670
    SL::Model::Record->update_after_customer_vendor_change($self->reclamation));
671

  
669 672
  $self->recalc();
670 673

  
671 674
  if ( $self->reclamation->customervendor->contacts
......
1465 1468
                   );
1466 1469
  }
1467 1470

  
1471
  my $cv_id_method = $self->cv . '_id';
1472
  if (!$::form->{id} && $::form->{$cv_id_method}) {
1473
    $reclamation->$cv_id_method($::form->{$cv_id_method});
1474
    $reclamation = SL::Model::Record->update_after_customer_vendor_change($reclamation);
1475
  }
1476

  
1468 1477
  my $form_reclamation_items = delete $::form->{reclamation}->{reclamation_items};
1469 1478

  
1470 1479
  $reclamation->assign_attributes(%{$::form->{reclamation}});
SL/Model/Record.pm
32 32
  return $new_record;
33 33
}
34 34

  
35
sub update_after_customer_vendor_change {
36
  my ($class, $record) = @_;
37
  my $new_customervendor = $record->customervendor;
38

  
39
  $record->$_($new_customervendor->$_) for (qw(
40
    taxzone_id payment_id delivery_term_id currency_id language_id
41
    ));
42

  
43
  $record->intnotes($new_customervendor->notes);
44

  
45
  return if !$record->is_sales;
46
  if ($record->is_sales) {
47
    my $new_customer = $new_customervendor;
48
    $record->salesman_id($new_customer->salesman_id
49
      || SL::DB::Manager::Employee->current->id);
50
    $record->taxincluded(defined($new_customer->taxincluded_checked)
51
      ? $new_customer->taxincluded_checked
52
      : $::myconfig{taxincluded_checked});
53
    if ($record->type_data->features('price_tax')) {
54
      my $address = $new_customer->default_billing_address;;
55
      $record->billing_address_id($address ? $address->id : undef);
56
    }
57
  }
58

  
59
  return $record;
60
}
61

  
35 62
sub new_from_workflow {
36 63
  my ($class, $source_object, $target_type, $target_subtype, %flags) = @_;
37 64

  
......
307 334

  
308 335
Returns the record object.
309 336

  
337
=item C<update_after_customer_vendor_change>
338

  
339
Updates a record_object corresponding to customer/vendor and type_data.
340
Sets taxzone_id, payment_id, delivery_term_id, currency_id, language_id and
341
intnotes to customer/vendor. For sales records salesman and taxincluded is set.
342
Also for sales record with the feature 'price_tax' the billing address is updated.
343

  
344
Returns the record object.
345

  
310 346
=item C<new_from_workflow>
311 347

  
312 348
Expects source_object, target_type, target_subtype and can have flags.
......
416 452

  
417 453
=item *
418 454

  
419
Handling of changed customer/vendor
420

  
421
=item *
422

  
423 455
sellprice changed handling
424 456

  
425 457
=back

Auch abrufbar als: Unified diff