Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1a0c73d3

Von Jan Büren vor fast 13 Jahren hinzugefügt

  • ID 1a0c73d30bcd5d1ceeeef5f84d94de466abf6fcc
  • Vorgänger 5231e61e
  • Nachfolger 2518d79a

Bugfix 1082 - 1760 Bei einem Lieferschein wird die Abteilung nicht mitgespeichert

Der commit e69e3657, hat leider nur den Teil beim erstmaligen Anzeigen des
Lieferscheins mit frischen Werten aus der Datenbank behoben, dafür aber das
Verhalten bei update der Maske (Klick auf Erneuern) zerstört.
Jetzt konsequent von dem sehr alten Verhalten description--id, mit Hilfe von L-Helfer-Funktionen
umgestellt.

Unterschiede anzeigen:

SL/DO.pm
76 76

  
77 77
  push @where, ($form->{type} eq 'sales_delivery_order' ? '' : 'NOT ') . qq|COALESCE(dord.is_sales, FALSE)|;
78 78

  
79
  my $department_id = (split /--/, $form->{department})[1];
80
  if ($department_id) {
79
  if ($form->{department_id}) {
81 80
    push @where,  qq|dord.department_id = ?|;
82
    push @values, conv_i($department_id);
81
    push @values, conv_i($form->{department_id});
83 82
  }
84 83

  
85 84
  if ($form->{project_id}) {
......
326 325
  $h_item->finish();
327 326
  $h_item_stock->finish();
328 327

  
329
  ($null, $form->{department_id}) = split(/--/, $form->{department});
330 328

  
331 329
  # save DO record
332 330
  $query =
bin/mozilla/do.pl
40 40
use SL::IS;
41 41
use SL::ReportGenerator;
42 42
use SL::WH;
43

  
44 43
require "bin/mozilla/arap.pl";
45 44
require "bin/mozilla/common.pl";
46 45
require "bin/mozilla/invoice_io.pl";
......
301 300

  
302 301
  $form->header();
303 302
  # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
304
  $form->{department} .= '--' . $form->{department_id};
305

  
303
  # und Erweiterung für Bug 1760:
304
  # Das war leider nur ein Teil-Fix, da das Verhalten den 'Erneuern'-Knopf
305
  # nicht überlebt. Konsequent jetzt auf L umgestellt 
306
  #   $ perldoc SL::Template::Plugin::L
307
  # Daher entsprechend nur die Anpassung in form_header
308
  # und in DO.pm gemacht. 4 Testfälle:
309
  # department_id speichern                 | i.O.
310
  # department_id lesen                     | i.O.
311
  # department leer überlebt erneuern       | i.O.
312
  # department nicht leer überlebt erneuern | i.O.
313
  # $main::lxdebug->message(0, 'ABTEILUNGS ID in form?' . $form->{department_id});
306 314
  print $form->parse_html_template('do/form_header');
307 315

  
308 316
  $main::lxdebug->leave_sub();
templates/webpages/do/form_header.html
1 1
[%- USE T8 %]
2
[% USE HTML %][% USE LxERP %]<body onload="on_load()">
2
[%- USE HTML %]
3
[%- USE LxERP %]
4
[%- USE L %]
5
<body onload="on_load()">
3 6

  
4 7
 <script type="text/javascript" src="js/show_form_details.js"></script>
5 8
 <script type="text/javascript" src="js/show_history.js"></script>
......
201 204
       <tr>
202 205
        <th align="right" nowrap>[% 'Department' | $T8 %]</th>
203 206
        <td colspan="3">
204
         [%- IF delivered %]
205
         <input type="hidden" name="department" value="[% HTML.escape(department) %]">
206
         [%- FOREACH row = ALL_DEPARTMENTS %]
207
         [% IF department == row.value %][% HTML.escape(row.description) %]--[% HTML.escape(row.id) %][% END %]
208
         [%- END %]
209
         [%- ELSE %]
210
         <select name="department" class="fixed_width">
211
          <option></option>
212
          [%- FOREACH row = ALL_DEPARTMENTS %]
213
          <option[% IF department == row.value %] selected[% END %]>[% HTML.escape(row.description) %]--[% HTML.escape(row.id) %]</option>
214
          [%- END %]
215
         </select>
216
         [%- END %]
217
        </td>
207
         [% L.select_tag('department_id', L.options_for_select(ALL_DEPARTMENTS, default=department_id, title="description", with_empty=1), style='width: 250px', disabled => delivered )%]
208
       </td>
218 209
       </tr>
219 210
       [%- END %]
220 211

  

Auch abrufbar als: Unified diff