Beim Erstellen eines Lieferantenauftrages aus einem Kundenauftrag wird überprüft...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 13:21:06 +0000 (13:21 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 13:21:06 +0000 (13:21 +0000)
SL/Common.pm
bin/mozilla/oe.pl
locale/de/all
locale/de/oe
templates/webpages/oe/check_for_direct_delivery_de.html [new file with mode: 0644]
templates/webpages/oe/check_for_direct_delivery_master.html [new file with mode: 0644]

index 4cd1d35..fdf2b28 100644 (file)
@@ -348,4 +348,23 @@ sub get_vc_details {
   return 1;
 }
 
+sub get_shipto_by_id {
+  $main::lxdebug->enter_sub();
+
+  my ($self, $myconfig, $form, $shipto_id, $prefix) = @_;
+
+  $prefix ||= "";
+
+  my $dbh = $form->dbconnect($myconfig);
+
+  my $query = qq|SELECT * FROM shipto WHERE shipto_id = ?|;
+  my $ref   = selectfirst_hashref_query($form, $dbh, $query, $shipto_id);
+
+  map { $form->{"${prefix}${_}"} = $ref->{$_} } keys %{ $ref } if $ref;
+
+  $dbh->disconnect();
+
+  $main::lxdebug->leave_sub();
+}
+
 1;
index 899d263..a6ea2ee 100644 (file)
@@ -2496,9 +2496,61 @@ sub save_as_new {
   $lxdebug->leave_sub();
 }
 
+sub check_for_direct_delivery_yes {
+  $lxdebug->enter_sub();
+
+  $form->{direct_delivery_checked} = 1;
+  delete @{$form}{grep /^shipto/, keys %{ $form }};
+  map { s/^CFDD_//; $form->{$_} = $form->{"CFDD_${_}"} } grep /^CFDD_/, keys %{ $form };
+  $form->{shipto} = 1;
+  purchase_order();
+  $lxdebug->leave_sub();
+}
+
+sub check_for_direct_delivery_no {
+  $lxdebug->enter_sub();
+
+  $form->{direct_delivery_checked} = 1;
+  delete @{$form}{grep /^shipto/, keys %{ $form }};
+  purchase_order();
+
+  $lxdebug->leave_sub();
+}
+
+sub check_for_direct_delivery {
+  $lxdebug->enter_sub();
+
+  if ($form->{direct_delivery_checked}
+      || (!$form->{shiptoname} && !$form->{shiptostreet} && !$form->{shipto_id})) {
+    $lxdebug->leave_sub();
+    return;
+  }
+
+  if ($form->{shipto_id}) {
+    Common->get_shipto_by_id(\%myconfig, $form, $form->{shipto_id}, "CFDD_");
+
+  } else {
+    map { $form->{"CFDD_${_}"} = $form->{$_ } } grep /^shipto/, keys %{ $form };
+  }
+
+  delete $form->{action};
+  $form->{VARIABLES} = [ map { { "key" => $_, "value" => $form->{$_} } } grep { ref $_ eq "" } keys %{ $form } ];
+
+  $form->header();
+  print $form->parse_html_template("oe/check_for_direct_delivery");
+
+  $lxdebug->leave_sub();
+
+  exit 0;
+}
+
 sub purchase_order {
   $lxdebug->enter_sub();
 
+  if ($form->{type} eq 'sales_order') {
+    check_for_direct_delivery();
+  }
+
   if (   $form->{type} eq 'sales_quotation'
       || $form->{type} eq 'request_quotation') {
     OE->close_order(\%myconfig, \%$form);
@@ -2602,3 +2654,10 @@ sub e_mail {
   $lxdebug->leave_sub();
 }
 
+sub yes {
+  call_sub($form->{yes_nextsub});
+}
+
+sub no {
+  call_sub($form->{no_nextsub});
+}
index a8cc8e4..d06a9a8 100644 (file)
@@ -239,6 +239,7 @@ aktualisieren wollen?',
   'Cannot save preferences!'    => 'Benutzereinstellungen können nicht gespeichert werden!',
   'Cannot save quotation!'      => 'Angebot kann nicht gespeichert werden!',
   'Cannot storno storno invoice!' => 'Kann eine Stornorechnung nicht stornieren',
+  'Carry over shipping address' => 'Lieferadresse &uuml;bernehmen',
   'Cash'                        => 'Zahlungsverkehr',
   'Cc'                          => 'Cc',
   'Change Admin Password'       => 'Administratorpasswort ändern',
@@ -374,6 +375,7 @@ aktualisieren wollen?',
   'Display'                     => 'Anzeigen',
   'Display file'                => 'Datei anzeigen',
   'Do you want to <b>limit</b> your search?' => 'Wollen Sie Ihre Suche <b>spezialisieren</b>?',
+  'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?',
   'Done'                        => 'Fertig',
   'Download the backup'         => 'Die Sicherungsdatei herunterladen',
   'Draft saved.'                => 'Entwurf gespeichert.',
@@ -1205,6 +1207,7 @@ gestartet',
   'You cannot continue before all required modules are installed.' => 'Sie k&ouml;nnen nicht fortfahren, bevor alle ben&ouml;tigten Pakete installiert sind.',
   'You cannot continue until all unknown units have been mapped to known ones.' => 'Sie k&ouml;nnen nicht fortfahren, bis alle unbekannten Einheiten in neue Einheiten umgewandelt wurden.',
   'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
+  'You have entered or selected the following shipping address for this customer:' => 'Sie haben die folgende Lieferadresse eingegeben oder ausgew&auml;hlt:',
   'You have to chose a dimension unit and a service unit which will then be assigned to those entries.' => 'Sie m&uuml;ssen eine Ma&szlig;- und eine Dienstleistungseinheit ausw&auml;hlen, die diesen Waren und Dienstleistungen, denen noch keine Einheit zugeordnet ist, zugeordnet wird.',
   'You have to chose which unit to save for each of them.' => 'Sie m&uuml;ssen f&uuml;r jeden Artikel die neue Einheit ausw&auml;hlen.',
   'You have to create new Buchungsgruppen for all the combinations of inventory, income and expense accounts that have been used already.' => 'Sie m&uuml;ssen neue Buchungsgruppen f&uuml;r alle Kombinationen aus Inventar-, Erl&ouml;s- und Aufwandskonto, die bereits benutzt wurden.',
index f41e3f0..c49b06f 100644 (file)
@@ -284,6 +284,9 @@ $self->{subs} = {
   'build_std_url'               => 'build_std_url',
   'calculate_qty'               => 'calculate_qty',
   'call_sub'                    => 'call_sub',
+  'check_for_direct_delivery'   => 'check_for_direct_delivery',
+  'check_for_direct_delivery_no' => 'check_for_direct_delivery_no',
+  'check_for_direct_delivery_yes' => 'check_for_direct_delivery_yes',
   'check_form'                  => 'check_form',
   'check_name'                  => 'check_name',
   'check_project'               => 'check_project',
@@ -308,6 +311,7 @@ $self->{subs} = {
   'name_selected'               => 'name_selected',
   'new_item'                    => 'new_item',
   'new_license'                 => 'new_license',
+  'no'                          => 'no',
   'order'                       => 'order',
   'order_links'                 => 'order_links',
   'orders'                      => 'orders',
@@ -360,6 +364,7 @@ $self->{subs} = {
   'löschen'                     => 'delete',
   'email'                       => 'e_mail',
   'rechnung'                    => 'invoice',
+  'nein'                        => 'no',
   'auftrag'                     => 'order',
   'drucken'                     => 'print',
   'lieferantenauftrag'          => 'purchase_order',
diff --git a/templates/webpages/oe/check_for_direct_delivery_de.html b/templates/webpages/oe/check_for_direct_delivery_de.html
new file mode 100644 (file)
index 0000000..6a307a8
--- /dev/null
@@ -0,0 +1,85 @@
+<body>
+
+ <div class="listtop" width="100%">Lieferadresse &uuml;bernehmen</div>
+
+ <p>Sie haben die folgende Lieferadresse eingegeben oder ausgew&auml;hlt:</p>
+
+ <p>
+  <table>
+   <tr>
+    <th align="right" valign="top">Name:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptoname ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Abteilung:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptodepartment_1 ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">&nbsp;</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptodepartment_2 ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Straße:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptostreet ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">PLZ:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptozipcode ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Stadt:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocity ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Land:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocountry ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Kontakt:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocontact ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Telefon:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptophone ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">Fax:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptofax ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">eMail:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptoemail ESCAPE=HTML></td>
+   </tr>
+  </table>
+ </p>
+
+  Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?
+ </p>
+
+ <form method="post" action="oe.pl">
+
+  <p>
+   <input type="submit" name="action" value="Ja">&nbsp;
+   <input type="submit" name="action" value="Nein">
+  </p>
+
+  <input type="hidden" name="yes_nextsub" value="check_for_direct_delivery_yes">
+  <input type="hidden" name="no_nextsub" value="check_for_direct_delivery_no">
+
+  <TMPL_LOOP VARIABLES>
+   <input type="hidden" name="<TMPL_VAR key ESCAPE=HTML>" value="<TMPL_VAR value ESCAPE=HTML>"></TMPL_LOOP>
+
+ </form>
+
+</body>
+</html>
diff --git a/templates/webpages/oe/check_for_direct_delivery_master.html b/templates/webpages/oe/check_for_direct_delivery_master.html
new file mode 100644 (file)
index 0000000..e9e3d8e
--- /dev/null
@@ -0,0 +1,85 @@
+<body>
+
+ <div class="listtop" width="100%"><translate>Carry over shipping address</translate></div>
+
+ <p><translate>You have entered or selected the following shipping address for this customer:</translate></p>
+
+ <p>
+  <table>
+   <tr>
+    <th align="right" valign="top"><translate>Name</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptoname ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Department</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptodepartment_1 ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top">&nbsp;</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptodepartment_2 ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Street</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptostreet ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Zipcode</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptozipcode ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>City</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocity ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Country</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocountry ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Contact</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptocontact ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Phone</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptophone ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>Fax</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptofax ESCAPE=HTML></td>
+   </tr>
+
+   <tr>
+    <th align="right" valign="top"><translate>E-mail</translate>:</th>
+    <td valign="top"><TMPL_VAR CFDD_shiptoemail ESCAPE=HTML></td>
+   </tr>
+  </table>
+ </p>
+
+  <translate>Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?</translate>
+ </p>
+
+ <form method="post" action="oe.pl">
+
+  <p>
+   <input type="submit" name="action" value="<translate>Yes</translate>">&nbsp;
+   <input type="submit" name="action" value="<translate>No</translate>">
+  </p>
+
+  <input type="hidden" name="yes_nextsub" value="check_for_direct_delivery_yes">
+  <input type="hidden" name="no_nextsub" value="check_for_direct_delivery_no">
+
+  <TMPL_LOOP VARIABLES>
+   <input type="hidden" name="<TMPL_VAR key ESCAPE=HTML>" value="<TMPL_VAR value ESCAPE=HTML>"></TMPL_LOOP>
+
+ </form>
+
+</body>
+</html>