Bei Auftragsbestätigungen und Lieferantenaufträgen ein Feld "Geliefert" eingeführt...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 30 Jan 2007 08:57:55 +0000 (08:57 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 30 Jan 2007 08:57:55 +0000 (08:57 +0000)
SL/OE.pm
bin/mozilla/oe.pl
locale/de/all
locale/de/oe
sql/Pg-upgrade2/oe_delivered.sql [new file with mode: 0644]

index 7bd3853..e12369e 100644 (file)
--- a/SL/OE.pm
+++ b/SL/OE.pm
@@ -65,7 +65,7 @@ sub transactions {
   my $query = qq|SELECT o.id, o.ordnumber, o.transdate, o.reqdate,
                  o.amount, ct.name, o.netamount, o.$form->{vc}_id,
                 ex.$rate AS exchangerate,
-                o.closed, o.quonumber, o.shippingpoint, o.shipvia,
+                o.closed, o.delivered, o.quonumber, o.shippingpoint, o.shipvia,
                 e.name AS employee
                 FROM oe o
                 JOIN $form->{vc} ct ON (o.$form->{vc}_id = ct.id)
@@ -126,6 +126,12 @@ sub transactions {
     $query .= ($form->{open}) ? " AND o.closed = '0'" : " AND o.closed = '1'";
   }
 
+  if (($form->{"notdelivered"} || $form->{"delivered"}) &&
+      ($form->{"notdelivered"} ne $form->{"delivered"})) {
+    $query .= $form->{"delivered"} ?
+      " AND o.delivered " : " AND NOT o.delivered";
+  }
+
   my $sortorder = join ', ',
     ("o.id", $form->sort_columns(transdate, $ordnumber, name));
   $sortorder = $form->{sort} if $form->{sort};
@@ -460,6 +466,7 @@ Message: $form->{message}\r| if $form->{message};
              intnotes = '$form->{intnotes}',
              curr = '$form->{currency}',
              closed = '$form->{closed}',
+             delivered = '| . ($form->{delivered} ? "t" : "f") . qq|',
              proforma = '$form->{proforma}',
              quotation = '$quotation',
              department_id = $form->{department_id},
@@ -724,7 +731,9 @@ sub retrieve {
                o.curr AS currency, e.name AS employee, o.employee_id,
                o.$form->{vc}_id, cv.name AS $form->{vc}, o.amount AS invtotal,
                o.closed, o.reqdate, o.quonumber, o.department_id, o.cusordnumber,
-               d.description AS department, o.payment_id, o.language_id, o.taxzone_id, o.delivery_customer_id, o.delivery_vendor_id, o.proforma, o.shipto_id
+               d.description AS department, o.payment_id, o.language_id, o.taxzone_id,
+                o.delivery_customer_id, o.delivery_vendor_id, o.proforma, o.shipto_id,
+                o.delivered
                FROM oe o
                JOIN $form->{vc} cv ON (o.$form->{vc}_id = cv.id)
                LEFT JOIN employee e ON (o.employee_id = e.id)
index bb66848..aabb659 100644 (file)
@@ -328,8 +328,8 @@ sub prepare_order {
 sub form_header {
   $lxdebug->enter_sub();
 
-  $checkedopen   = ($form->{closed}) ? ""        : "checked";
-  $checkedclosed = ($form->{closed}) ? "checked" : "";
+  my $checkedclosed = $form->{"closed"} ? "checked" : "";
+  my $checkeddelivered = $form->{"delivered"} ? "checked" : "";
 
   map { $form->{$_} =~ s/\"/&quot;/g }
     qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname
@@ -380,15 +380,20 @@ sub form_header {
     $openclosed = qq|
       <tr>
         <td colspan=2 align=center>
-         <table>
-           <tr>
-             <th nowrap><input name=closed type=radio class=radio value=0 $checkedopen> |
-      . $locale->text('Open') . qq|</th>
-             <th nowrap><input name=closed type=radio class=radio value=1 $checkedclosed> |
-      . $locale->text('Closed') . qq|</th>
-           </tr>
-         </table>
-       </td>
+          <input name="closed" id="closed" type="checkbox" class="checkbox" value="1" $checkedclosed>
+          <label for="closed">| . $locale->text('Closed') . qq|</label>
+|;
+
+    if (($form->{"type"} eq "sales_order") ||
+        ($form->{"type"} eq "purchase_order")) {
+      $openclosed .= qq|
+          <input name="delivered" id="delivered" type="checkbox" class="checkbox" value="1" $checkeddelivered>
+          <label for="delivered">| . $locale->text('Delivered') . qq|</label>
+|;
+    }
+
+    $openclosed .= qq|
+        </td>
       </tr>
 |;
   }
@@ -1383,6 +1388,19 @@ sub search {
 |;
   }
 
+  my $delivered;
+  if (($form->{"type"} eq "sales_order") ||
+      ($form->{"type"} eq "purchase_order")) {
+    $delivered = qq|
+        <tr>
+          <td><input name="notdelivered" id="notdelivered" class="checkbox" type="checkbox" value="1" checked>
+            <label for="notdelivered">|. $locale->text('Not delivered') . qq|</label></td>
+          <td><input name="delivered" id="delivered" class="checkbox" type="checkbox" value="1" checked>
+            <label for="delivered">| . $locale->text('Delivered') . qq|</label></td>
+        </tr>
+|;
+  }
+
   # use JavaScript Calendar or not
   $form->{jsscript} = $jscalendar;
   $jsscript = "";
@@ -1450,6 +1468,7 @@ sub search {
           <td colspan=5>
            <table>
              $openclosed
+        $delivered
              <tr>
                <td><input name="l_id" class=checkbox type=checkbox value=Y>
                | . $locale->text('ID') . qq|</td>
@@ -1525,7 +1544,7 @@ sub orders {
 
   # construct href
   $href =
-    "$form->{script}?path=$form->{path}&action=orders&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&open=$form->{open}&closed=$form->{closed}&$ordnumber=$number&$form->{vc}=$name&department=$department&warehouse=$warehouse";
+    "$form->{script}?path=$form->{path}&action=orders&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&open=$form->{open}&closed=$form->{closed}&notdelivered=$form->{notdelivered}&delivered=$form->{delivered}&$ordnumber=$number&$form->{vc}=$name&department=$department&warehouse=$warehouse";
 
   # construct callback
   $number     = $form->escape($form->{$ordnumber},    1);
@@ -1534,17 +1553,20 @@ sub orders {
   $warehouse  = $form->escape($form->{warehouse},     1);
 
   $callback =
-    "$form->{script}?path=$form->{path}&action=orders&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&open=$form->{open}&closed=$form->{closed}&$ordnumber=$number&$form->{vc}=$name&department=$department&warehouse=$warehouse";
+    "$form->{script}?path=$form->{path}&action=orders&type=$form->{type}&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&transdatefrom=$form->{transdatefrom}&transdateto=$form->{transdateto}&open=$form->{open}&closed=$form->{closed}&notdelivered=$form->{notdelivered}&delivered=$form->{delivered}&$ordnumber=$number&$form->{vc}=$name&department=$department&warehouse=$warehouse";
 
   @columns =
     $form->sort_columns("transdate", "reqdate",   "id",      "$ordnumber",
                         "name",      "netamount", "tax",     "amount",
                         "curr",      "employee",  "shipvia", "open",
-                        "closed");
+                        "closed",    "delivered");
 
   $form->{l_open} = $form->{l_closed} = "Y"
     if ($form->{open} && $form->{closed});
 
+  $form->{"l_delivered"} = "Y"
+    if ($form->{"delivered"} && $form->{"notdelivered"});
+
   foreach $item (@columns) {
     if ($form->{"l_$item"} eq "Y") {
       push @column_index, $item;
@@ -1630,6 +1652,8 @@ sub orders {
     qq|<th class=listheading>| . $locale->text('O') . qq|</th>|;
   $column_header{closed} =
     qq|<th class=listheading>| . $locale->text('C') . qq|</th>|;
+  $column_header{"delivered"} =
+    qq|<th class="listheading">| . $locale->text("Delivered") . qq|</th>|;
 
   $column_header{employee} =
     qq|<th><a class=listheading href=$href&sort=employee>$employee</a></th>|;
@@ -1757,6 +1781,9 @@ sub orders {
       $column_data{closed} = "<td>&nbsp;</td>";
       $column_data{open}   = "<td align=center>X</td>";
     }
+    $column_data{"delivered"} = "<td>" .
+      ($oe->{"delivered"} ? $locale->text("Yes") : $locale->text("No")) .
+      "</td>";
 
     $i++;
     $i %= 2;
index 1632e4e..8d7e7bd 100644 (file)
@@ -317,6 +317,7 @@ aktualisieren wollen?',
   'Delete'                      => 'Löschen',
   'Delete Account'              => 'Konto löschen',
   'Delete Dataset'              => 'Datenbank löschen',
+  'Delivered'                   => 'Geliefert',
   'Delivery Date'               => 'Lieferdatum',
   'Department'                  => 'Abteilung',
   'Department deleted!'         => 'Abteilung gelöscht.',
@@ -658,6 +659,7 @@ gestartet',
   'Non-taxable Purchases'       => 'Nicht zu versteuernde Einkäufe',
   'Non-taxable Sales'           => 'Nicht zu versteuernde Verkäufe',
   'Not Discountable'            => 'Nicht rabattierfähig',
+  'Not delivered'               => 'Nicht geliefert',
   'Notes'                       => 'Bemerkungen',
   'Nothing entered!'            => 'Es wurde nichts eingegeben.',
   'Nothing selected!'           => 'Es wurde nichts ausgewählt!',
index 7b994f0..0581717 100644 (file)
@@ -63,6 +63,7 @@ $self->{texts} = {
   'Dec'                         => 'Dez',
   'December'                    => 'Dezember',
   'Delete'                      => 'Löschen',
+  'Delivered'                   => 'Geliefert',
   'Delivery Date'               => 'Lieferdatum',
   'Department'                  => 'Abteilung',
   'Description'                 => 'Beschreibung',
@@ -116,12 +117,14 @@ $self->{texts} = {
   'May '                        => 'Mai',
   'Message'                     => 'Nachricht',
   'Name'                        => 'Name',
+  'No'                          => 'Nein',
   'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
   'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Händler gefunden',
   'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
   'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
   'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
   'No.'                         => 'Position',
+  'Not delivered'               => 'Nicht geliefert',
   'Notes'                       => 'Bemerkungen',
   'Nothing entered!'            => 'Es wurde nichts eingegeben.',
   'Nothing to transfer!'        => 'Es gibt nichts zum Umlagern!',
diff --git a/sql/Pg-upgrade2/oe_delivered.sql b/sql/Pg-upgrade2/oe_delivered.sql
new file mode 100644 (file)
index 0000000..718c083
--- /dev/null
@@ -0,0 +1,6 @@
+-- @tag: oe_delivered
+-- @description: Neues Feld f&uuml;r Status &quot;geliefert&quot; bei Auftragsbest&auml;tigungen und Lieferantenauftr&auml;gen
+-- @depends: release_2_4_1
+ALTER TABLE oe ADD COLUMN delivered boolean;
+ALTER TABLE oe ALTER COLUMN delivered SET DEFAULT 'f';
+UPDATE oe SET delivered = 'f';