Datenbank anlegen: ISO8859-1 als default eingestellt.
[kivitendo-erp.git] / bin / mozilla / oe.pl
index 7209344..10e71ac 100644 (file)
@@ -284,7 +284,6 @@ sub order_links {
 
 sub prepare_order {
   $lxdebug->enter_sub();
-  $form->{media}    = "screen";
   $form->{formname} = $form->{type} unless $form->{formname};
 
   my $i = 0;
@@ -328,8 +327,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/\"/"/g }
     qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname
@@ -380,15 +379,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>
 |;
   }
@@ -432,11 +436,12 @@ sub form_header {
           "<option value=$item->{shipto_id} selected>$item->{shiptoname} $item->{shiptodepartment_1}</option>";
       } else {
         $form->{selectshipto} .=
-          "<option value=$item->{shipto_id}>$item->{shiptoname} $item->{shiptodepartment_1}</option>";
+          "<option value=$item->{shipto_id}>$item->{shiptoname} $item->{shiptodepartment}</option>";
       }
 
     }
   } else {
+    $form->{selectshipto} = $form->unquote($form->{selectshipto});
     $form->{selectshipto} =~ s/ selected//g;
     if ($form->{shipto_id} ne "") {
       $form->{selectshipto} =~ s/value=$form->{shipto_id}/value=$form->{shipto_id} selected/;
@@ -445,9 +450,9 @@ sub form_header {
 
   $shipto = qq|
                <th align=right>| . $locale->text('Shipping Address') . qq|</th>
-               <td><select name=shipto_id>$form->{selectshipto}</select></td>
-               <input type=hidden name=selectshipto value="$form->{selectshipto}">|;
-
+               <td><select name=shipto_id style="width:200px;">$form->{selectshipto}</select></td>|;
+  $form->{selectshipto} = $form->quote($form->{selectshipto});
+  $shipto .= qq| <input type=hidden name=selectshipto value="$form->{selectshipto}">|;
 
 
 
@@ -493,13 +498,7 @@ sub form_header {
   $vclabel = ucfirst $form->{vc};
   $vclabel = $locale->text($vclabel);
 
-  $terms = qq|
-                    <tr>
-                     <th align=right nowrap>| . $locale->text('Terms: Net') . qq|</th>
-                     <td nowrap><input name=terms size="3" maxlength="3" value=$form->{terms}> |
-    . $locale->text('days') . qq|</td>
-                    </tr>
-|;
+
 
   if ($form->{business}) {
     $business = qq|
@@ -600,7 +599,7 @@ sub form_header {
                      <td>$form->{creditlimit}</td>
                      <td width=20%></td>
                      <th nowrap>| . $locale->text('Remaining') . qq|</th>
-                     <td class="plus$n">$form->{creditremaining}</td>
+                     <td class="plus$n" nowrap>$form->{creditremaining}</td>
                    </tr>
                  </table>
                </td>
@@ -630,7 +629,6 @@ sub form_header {
              </tr>
 |;
 
-      $terms = "";
     }
 
     $ordnumber .= qq|
@@ -704,6 +702,8 @@ sub form_header {
     $onload = qq|alert('$credittext')|;
   }
 
+  $form->{"javascript"} .= qq|<script type="text/javascript" src="js/show_form_details.js"></script>|;
+
   $form->header;
 
   print qq|
@@ -807,7 +807,6 @@ print qq|       </table>
              $openclosed
              $employee
              $ordnumber
-             $terms
            </table>
          </td>
        </tr>
@@ -1034,7 +1033,7 @@ sub form_footer {
 </table>
 
 | . $locale->text("Edit the $form->{type}") . qq|<br>
-<input class=submit type=submit name=action value="|
+<input class=submit type=submit name=action id=update_button value="|
     . $locale->text('Update') . qq|">
 <input class=submit type=submit name=action value="|
     . $locale->text('Ship to') . qq|">
@@ -1107,11 +1106,6 @@ sub form_footer {
 |;
   }
 
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
-
   print qq|
 
 <input type=hidden name=rowcount value=$form->{rowcount}>
@@ -1393,6 +1387,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 = "";
@@ -1460,6 +1467,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>
@@ -1535,7 +1543,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);
@@ -1544,17 +1552,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;
@@ -1618,7 +1629,9 @@ sub orders {
     . qq|</a></th>|;
   $column_header{quonumber} =
       qq|<th><a class=listheading href=$href&sort=quonumber>|
-    . $locale->text('Quotation')
+    . ($form->{"type"} eq "request_quotation" ?
+       $locale->text('RFQ') :
+       $locale->text('Quotation'))
     . qq|</a></th>|;
   $column_header{name} =
     qq|<th><a class=listheading href=$href&sort=name>$name</a></th>|;
@@ -1638,6 +1651,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>|;
@@ -1765,6 +1780,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;
@@ -1851,11 +1869,6 @@ sub orders {
       . $locale->text('Add') . qq|">|;
   }
 
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
-
   print qq|
 </form>
 
@@ -2141,6 +2154,13 @@ sub invoice {
 
   $form->{cp_id} *= 1;
 
+  for $i (1 .. $form->{rowcount}) {
+    map({ $form->{"${_}_${i}"} = $form->parse_amount(\%myconfig,
+                                                     $form->{"${_}_${i}"})
+            if ($form->{"${_}_${i}"}) }
+        qw(ship qty sellprice listprice basefactor));
+  }
+
   if (   $form->{type} =~ /_order/
       && $form->{currency} ne $form->{defaultcurrency}) {
 
@@ -2165,8 +2185,7 @@ sub invoice {
   # if not it's most likely a collective order, which can't be saved back
   # so they just have to be closed
   if (($form->{ordnumber} ne '') || ($form->{quonumber} ne '')) {
-    relink_accounts();
-    OE->save(\%myconfig, \%$form);
+    OE->close_order(\%myconfig, \%$form);
   } else {
     OE->close_orders(\%myconfig, \%$form);
   }
@@ -2432,9 +2451,7 @@ sub purchase_order {
 
   if (   $form->{type} eq 'sales_quotation'
       || $form->{type} eq 'request_quotation') {
-    $form->{closed} = 1;
-    relink_accounts();
-    OE->save(\%myconfig, \%$form);
+    OE->close_order(\%myconfig, \%$form);
   }
 
   $form->{cp_id} *= 1;
@@ -2453,9 +2470,7 @@ sub sales_order {
 
   if (   $form->{type} eq 'sales_quotation'
       || $form->{type} eq 'request_quotation') {
-    $form->{closed} = 1;
-    relink_accounts();
-    OE->save(\%myconfig, \%$form);
+    OE->close_order(\%myconfig, $form);
   }
 
   $form->{cp_id} *= 1;
@@ -2842,14 +2857,6 @@ sub display_ship_receive {
 
 <input class=submit type=submit name=action value="|
     . $locale->text('Done') . qq|">
-|;
-
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
-
-  print qq|
 
 <input type=hidden name=rowcount value=$form->{rowcount}>
 
@@ -3121,14 +3128,8 @@ sub list_transfer {
 <input type=hidden name=password value=$form->{password}>
 
 <input class=submit type=submit name=action value="|
-    . $locale->text('Transfer') . qq|">|;
-
-  if ($form->{menubar}) {
-    require "$form->{path}/menu.pl";
-    &menubar;
-  }
+    . $locale->text('Transfer') . qq|">
 
-  print qq|
 </form>
 
 </body>