Auftrags-Controller: Kunden-/Lieferantendetails ("D")
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 13 Mar 2018 12:18:16 +0000 (13:18 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 9 May 2018 10:23:06 +0000 (12:23 +0200)
Hier sollte die alte Makse auch umgestellt werden, erstens auf Dialog und
zweitens damit via Rose zugegriffen wird.

SL/Controller/Order.pm
js/kivi.Order.js
js/locale/de.js
templates/webpages/order/tabs/basic_data.html

index 92ef60c..864cc67 100644 (file)
@@ -619,6 +619,40 @@ sub action_customer_vendor_changed {
   $self->js->render();
 }
 
+# open the dialog for customer/vendor details
+sub action_show_customer_vendor_details_dialog {
+  my ($self) = @_;
+
+  my $is_customer = 'customer' eq $::form->{vc};
+  my $cv;
+  if ($is_customer) {
+    $cv = SL::DB::Customer->new(id => $::form->{vc_id})->load;
+  } else {
+    $cv = SL::DB::Vendor->new(id => $::form->{vc_id})->load;
+  }
+
+  my %details = map { $_ => $cv->$_ } @{$cv->meta->columns};
+  $details{discount_as_percent} = $cv->discount_as_percent;
+  $details{creditlimt}          = $cv->creditlimit_as_number;
+  $details{business}            = $cv->business->description      if $cv->business;
+  $details{language}            = $cv->language_obj->description  if $cv->language_obj;
+  $details{delivery_terms}      = $cv->delivery_term->description if $cv->delivery_term;
+  $details{payment_terms}       = $cv->payment->description       if $cv->payment;
+  $details{pricegroup}          = $cv->pricegroup->pricegroup     if $cv->pricegroup;
+
+  foreach my $entry (@{ $cv->shipto }) {
+    push @{ $details{SHIPTO} },   { map { $_ => $entry->$_ } @{$entry->meta->columns} };
+  }
+  foreach my $entry (@{ $cv->contacts }) {
+    push @{ $details{CONTACTS} }, { map { $_ => $entry->$_ } @{$entry->meta->columns} };
+  }
+
+  $_[0]->render('common/show_vc_details', { layout => 0 },
+                is_customer => $is_customer,
+                %details);
+
+}
+
 # called if a unit in an existing item row is changed
 sub action_unit_changed {
   my ($self) = @_;
@@ -1761,8 +1795,6 @@ java script functions
 
 =item * currency
 
-=item * customer/vendor details ('D'-button)
-
 =item * credit limit
 
 =item * more workflows (save as new, quotation, purchase order)
index ef30e13..441a3dc 100644 (file)
@@ -591,6 +591,38 @@ namespace('kivi.Order', function(ns) {
     return true;
   };
 
+  ns.show_vc_details_dialog = function() {
+    if (!ns.check_cv()) return;
+    var vc;
+    var vc_id;
+    var title;
+    if ($('#type').val() == 'sales_order' || $('#type').val() == 'sales_quotation' ) {
+      vc    = 'customer';
+      vc_id = $('#order_customer_id').val();
+      title = kivi.t8('Customer details');
+    } else {
+      vc    = 'vendor';
+      vc_id = $('#order_vendor_id').val();
+      title = kivi.t8('Vendor details');
+    }
+
+    kivi.popup_dialog({
+      url: 'controller.pl',
+      data: { action: 'Order/show_customer_vendor_details_dialog',
+              type  : $('#type').val(),
+              vc    : vc,
+              vc_id : vc_id
+            },
+      id: 'jq_customer_vendor_details_dialog',
+      dialog: {
+        title: title,
+        width:  800,
+        height: 650
+      }
+    });
+    return true;
+  };
+
 });
 
 $(function(){
index a729659..7447111 100644 (file)
@@ -29,6 +29,7 @@ namespace("kivi").setupLocale({
 "Create new quotation/order":"Neues Angebot/neuen Auftrag anlegen",
 "Create new qutoation/order":"Neues Angebot/neuen Auftrag anlegen",
 "Create new version":"Neue Version anlegen",
+"Customer details":"Kundendetails",
 "Customer missing!":"Kundenname fehlt!",
 "Database Connection Test":"Test der Datenbankverbindung",
 "Delete":"Löschen",
@@ -130,6 +131,7 @@ namespace("kivi").setupLocale({
 "Transaction description":"Vorgangsbezeichnung",
 "Update":"Erneuern",
 "Update quotation/order":"Auftrag/Angebot aktualisieren",
+"Vendor details":"Lieferantendetails",
 "Vendor missing!":"Lieferant fehlt!",
 "Version actions":"Aktionen für Versionen",
 "Wrong date format (#1)":"Falsches Datumsformat (#1)",
index c74019a..c968a94 100644 (file)
           <tr>
             <th align="right">[% SELF.cv | $T8 %]</th>
             [% SET cv_id = SELF.cv _ '_id' %]
-            <td>[% P.customer_vendor.picker("order.${SELF.cv}" _ '_id', SELF.order.$cv_id, type=SELF.cv, style='width: 300px') %]</td>
+            <td>
+              [% P.customer_vendor.picker("order.${SELF.cv}" _ '_id', SELF.order.$cv_id, type=SELF.cv, style='width: 300px') %]
+              [% P.button_tag("kivi.Order.show_vc_details_dialog()", LxERP.t8("Details (one letter abbreviation)")) %]
+            </td>
           </tr>
 
           <tr id='cp_row' [%- IF !SELF.order.${SELF.cv}.contacts.size %]style='display:none'[%- END %]>