]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Vertretermodus: Immer bisherigen Vertreter anzeigen & nur wahlweise ändern
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 16 Aug 2010 07:51:06 +0000 (09:51 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 16 Aug 2010 07:51:06 +0000 (09:51 +0200)
Neues Verhalten in der Kundenmaske: Wird ein Kunde neu angelegt, so
muss ein Vertreter ausgewählt werden.

Wird ein bestehender Kunde bearbeitet, so wird der Name des bisher für
ihn ausgewählten Vertreters immer angezeigt. Zusätzlich hat der
Bearbeiter die Möglichkeit, den Vertreter über die Drop-Down-Box der
aktuell gültigen Kunden zu ändern. Wird hier kein Vertreter
ausgewählt, so bleibt der bisherige Vertreter bestehen.

bin/mozilla/ct.pl
locale/de/all
templates/webpages/ct/form_header.html

index b6526b933747355e1213a1b7f5b7779b66cd9eb0..07a6d2ec86e537dd6e3b510aa489f62905bc14c2 100644 (file)
@@ -289,7 +289,7 @@ sub form_header {
                    taxzones  => "ALL_TAXZONES");
   $form->get_pricegroup(\%myconfig, { all => 1 });
 
                    taxzones  => "ALL_TAXZONES");
   $form->get_pricegroup(\%myconfig, { all => 1 });
 
-  $form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1, with_obsolete => 1 }) if $::vertreter;
+  $form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::vertreter;
 
   $form->{ALL_SALESMEN}   = $form->{ALL_EMPLOYEES};
   $form->{taxincluded}    = ($form->{taxincluded}) ? "checked" : "";
 
   $form->{ALL_SALESMEN}   = $form->{ALL_EMPLOYEES};
   $form->{taxincluded}    = ($form->{taxincluded}) ? "checked" : "";
@@ -336,6 +336,29 @@ sub form_footer {
   $main::lxdebug->leave_sub();
 }
 
   $main::lxdebug->leave_sub();
 }
 
+sub _do_save {
+  $main::auth->assert('customer_vendor_edit & ' .
+                      '(general_ledger         | invoice_edit         | vendor_invoice_edit | ' .
+                      ' request_quotation_edit | sales_quotation_edit | sales_order_edit    | purchase_order_edit)');
+
+  $::form->isblank("name", $::locale->text("Name missing!"));
+
+  if ($::form->{new_salesman_id} && $::vertreter) {
+    $::form->{salesman_id} = $::form->{new_salesman_id};
+    delete $::form->{new_salesman_id};
+  }
+
+  my $res = $::form->{db} eq 'customer' ? CT->save_customer(\%::myconfig, $::form) : CT->save_vendor(\%::myconfig, $::form);
+
+  if (3 == $res) {
+    if ($::form->{"db"} eq "customer") {
+      $::form->error($::locale->text('This customer number is already in use.'));
+    } else {
+      $::form->error($::locale->text('This vendor number is already in use.'));
+    }
+  }
+}
+
 sub add_transaction {
   $main::lxdebug->enter_sub();
 
 sub add_transaction {
   $main::lxdebug->enter_sub();
 
@@ -354,12 +377,7 @@ sub add_transaction {
 #  }
 #  # /saving the history
 
 #  }
 #  # /saving the history
 
-  $form->isblank("name", $locale->text("Name missing!"));
-  if ($form->{"db"} eq "customer") {
-    CT->save_customer(\%myconfig, \%$form);
-  } else {
-    CT->save_vendor(\%myconfig, \%$form);
-  }
+  _do_save();
 
   $form->{callback} = $form->escape($form->{callback}, 1);
   my $name = $form->escape("$form->{name}", 1);
 
   $form->{callback} = $form->escape($form->{callback}, 1);
   my $name = $form->escape("$form->{name}", 1);
@@ -516,16 +534,8 @@ sub save_and_close {
   my $msg = ucfirst $form->{db};
   $msg .= " saved!";
 
   my $msg = ucfirst $form->{db};
   $msg .= " saved!";
 
-  $form->isblank("name", $locale->text("Name missing!"));
-  my $rc;
-  if ($form->{"db"} eq "customer") {
-    $rc = CT->save_customer(\%myconfig, \%$form);
-  } else {
-    $rc = CT->save_vendor(\%myconfig, \%$form);
-  }
-  if ($rc == 3) {
-    $form->error($locale->text('customernumber not unique!'));
-  }
+  _do_save();
+
   # saving the history
   if(!exists $form->{addition}) {
     $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
   # saving the history
   if(!exists $form->{addition}) {
     $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
@@ -550,22 +560,8 @@ sub save {
   my $msg = ucfirst $form->{db};
   $msg .= " saved!";
 
   my $msg = ucfirst $form->{db};
   $msg .= " saved!";
 
-  $form->isblank("name", $locale->text("Name missing!"));
-
-  my $res;
-  if ($form->{"db"} eq "customer") {
-    $res = CT->save_customer(\%myconfig, \%$form);
-  } else {
-    $res = CT->save_vendor(\%myconfig, \%$form);
-  }
+  _do_save();
 
 
-  if (3 == $res) {
-    if ($form->{"db"} eq "customer") {
-      $form->error($locale->text('This customer number is already in use.'));
-    } else {
-      $form->error($locale->text('This vendor number is already in use.'));
-    }
-  }
   # saving the history
   if(!exists $form->{addition}) {
     $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
   # saving the history
   if(!exists $form->{addition}) {
     $form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber});
index e88c5e231d63d34c1f4bd0a87ce7b1b333f7e7ca..50fa6001a2a2d89606502dfa8a82d81f8c650ec8 100644 (file)
@@ -343,6 +343,7 @@ $self->{texts} = {
   'Cash'                        => 'Zahlungsverkehr',
   'Cc'                          => 'Cc',
   'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
   'Cash'                        => 'Zahlungsverkehr',
   'Cc'                          => 'Cc',
   'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
+  'Change representative to'    => 'Vertreter ändern in',
   'Charge Number'               => 'Chargennummer',
   'Charge number'               => 'Chargennummer',
   'Chart'                       => 'Buchungskonto',
   'Charge Number'               => 'Chargennummer',
   'Charge number'               => 'Chargennummer',
   'Chart'                       => 'Buchungskonto',
@@ -1925,7 +1926,6 @@ $self->{texts} = {
   'cp_greeting to cp_gender migration' => 'Datenumwandlung von Titel nach Geschlecht (cp_greeting to cp_gender)',
   'customer'                    => 'Kunde',
   'customer_list'               => 'kundenliste',
   'cp_greeting to cp_gender migration' => 'Datenumwandlung von Titel nach Geschlecht (cp_greeting to cp_gender)',
   'customer'                    => 'Kunde',
   'customer_list'               => 'kundenliste',
-  'customernumber not unique!'  => 'Die Kundennummer ist schon vergeben',
   'debug'                       => 'Debug',
   'delete'                      => 'Löschen',
   'deliverydate'                => 'Lieferdatum',
   'debug'                       => 'Debug',
   'delete'                      => 'Löschen',
   'deliverydate'                => 'Lieferdatum',
index 71a2a165b3962a8e027cebff2db679230085f4ce..2c95fac4088c454f21b942174e0cdf12531268aa 100644 (file)
         -%]
        </td>
       </tr>
         -%]
        </td>
       </tr>
+      [%- IF id %]
       <tr>
        <th align="right">[% 'Representative' | $T8 %]</th>
       <tr>
        <th align="right">[% 'Representative' | $T8 %]</th>
+       <td>
+        <input type="hidden" name="salesman_id" value="[%- HTML.escape(salesman_id) %]"%>
+        [%- HTML.escape(salesman) %]
+       </td>
+      </tr>
+      [%- END %]
+      <tr>
+       <th align="right">
+        [%- IF !id %]
+         [% 'Representative' | $T8 %]
+        [%- ELSE %]
+         [% 'Change representative to' | $T8 %]
+        [%- END %]
+       </th>
        <td>
         [%- INCLUDE generic/multibox.html
        <td>
         [%- INCLUDE generic/multibox.html
-              name      = 'salesman_id',
-              DATA      = ALL_SALESMAN_CUSTOMERS,
-              id_key    = 'id',
-              label_key = 'name',
+              name       = 'new_salesman_id',
+              DATA       = ALL_SALESMAN_CUSTOMERS,
+              id_key     = 'id',
+              label_key  = 'name',
+              show_empty = id,
         -%]
        </td>
       </tr>
         -%]
        </td>
       </tr>