Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d030c273

Von Tamino Steinert vor fast 2 Jahren hinzugefügt

  • ID d030c2731e67ef87b8eba6774ae1ba1cca1c730f
  • Vorgänger 2aa88240

Reclamation: multi edit for: delete, reason, res_desc_ext, res_desc_int

Unterschiede anzeigen:

js/kivi.Reclamation.js
800 800
    window.open("controller.pl?action=CustomerVendor/edit&db=" + encodeURIComponent(db) + "&id=" + encodeURIComponent($(id_selector).val()), '_blank');
801 801
  };
802 802

  
803
  ns.get_selected_rows = function() {
804
    let selected_rows = [];
805
    $('[name^="multi_id_"]').each( function() {
806
      if (this.checked) {
807
        selected_rows.push($(this).parents("tr").first());
808
      }
809
    });
810
    return selected_rows;
811
  }
812

  
813
  ns.toggle_selected_rows = function() {
814
    let selected_rows = [];
815
    $('[name^="multi_id_"]').each( function() {
816
      this.checked = !this.checked;
817
    });
818
    return selected_rows;
819
  }
820

  
821
  ns.delete_selected_rows = function() {
822
    selected_rows = ns.get_selected_rows();
823
    let row_count = selected_rows.length;
824
    if (row_count == 0) {
825
      alert(kivi.t8("No row selected."));
826
      return;
827
    }
828
    if (!confirm(kivi.t8("Do you want delete #1 rows?", [row_count]))) {
829
      return;
830
    }
831
    selected_rows.forEach(function(row) {
832
      $(row).remove();
833
    });
834
    ns.renumber_positions();
835
    ns.recalc_amounts_and_taxes();
836
  };
837

  
838
  ns.set_selected_to_reason = function() {
839
    let reason_id = $("#reason_for_selected").val();
840
    let selected_rows = ns.get_selected_rows();
841
    selected_rows.forEach(function(row) {
842
      $(row).find('[name="reclamation.reclamation_items[].reason_id"]').val(
843
        reason_id
844
      );
845
    });
846

  
847
  };
848

  
849
  ns.set_selected_to_reason_description_ext = function() {
850
    desc_ext_text = $("[name=reason_description_ext_for_selected]").val();
851
    let selected_rows = ns.get_selected_rows();
852
    selected_rows.forEach(function(row) {
853
      $(row).find('[name="reclamation.reclamation_items[].reason_description_ext"]').val(
854
        desc_ext_text
855
      );
856
    });
857
  };
858

  
859
  ns.set_selected_to_reason_description_int = function() {
860
    desc_int_text = $("[name=reason_description_int_for_selected]").val();
861
    let selected_rows = ns.get_selected_rows();
862
    selected_rows.forEach(function(row) {
863
      $(row).find('[name="reclamation.reclamation_items[].reason_description_int"]').val(
864
        desc_int_text
865
      );
866
    });
867
  };
868

  
803 869
});
804 870

  
805 871
$(function() {
......
859 925
    return false;
860 926
  });
861 927

  
928
  $('#select_all').click( function() {
929
    var checked = this.checked
930
    $('[name^="multi_id_"]').each(function() {
931
      this.checked =  checked;
932
    });
933
  });
934

  
862 935
  $('.reformat_number_as_null_number').change(kivi.Reclamation.reformat_number_as_null_number);
863 936

  
864 937
});
js/locale/de.js
55 55
"Do you really want to print?":"Wollen Sie wirklich drucken?",
56 56
"Do you really want to revert to this version?":"Möchten Sie wirklich auf diese Version zurücksetzen?",
57 57
"Do you really want to unimport the selected documents?":"Möchten Sie wirklich diese Dateien an die Quelle zurückgeben?",
58
"Do you want delete #1 rows?":"Wollen Sie #1 Zeilen löschen?",
58 59
"Do you want to carry this shipping address over to the new purchase document so that the vendor can deliver the goods directly to your customer?":"Möchten Sie diese Lieferadresse in den neuen Einkaufsbeleg übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?",
59 60
"Do you want to carry this shipping address over to the new purchase reclamation so that the vendor can deliver the goods directly to your customer?":"Möchten Sie diese Lieferadresse in die neue Einkaufsreklamation übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?",
60 61
"Do you want to set the account number \"#1\" to \"#2\" and the name \"#3\" to \"#4\"?":"Soll die Kontonummer \"#1\" zu \"#2\" und den Name \"#3\" zu \"#4\" geändert werden?",
......
112 113
"No entries have been selected.":"Es wurden keine Einträge ausgewählt.",
113 114
"No file selected, please set one checkbox!":"Kein Element selektiert,bitte eine Box anklicken",
114 115
"No invoices have been selected.":"Es wurden keine Rechnungen ausgewählt.",
116
"No row selected.":"Keine Zeile ausgewählt.",
115 117
"Nov":"Nov",
116 118
"November":"November",
117 119
"Oct":"Okt",
js/locale/en.js
55 55
"Do you really want to print?":"",
56 56
"Do you really want to revert to this version?":"",
57 57
"Do you really want to unimport the selected documents?":"",
58
"Do you want delete #1 rows?":"",
58 59
"Do you want to carry this shipping address over to the new purchase document so that the vendor can deliver the goods directly to your customer?":"",
59 60
"Do you want to carry this shipping address over to the new purchase reclamation so that the vendor can deliver the goods directly to your customer?":"",
60 61
"Do you want to set the account number \"#1\" to \"#2\" and the name \"#3\" to \"#4\"?":"",
......
112 113
"No entries have been selected.":"",
113 114
"No file selected, please set one checkbox!":"",
114 115
"No invoices have been selected.":"",
116
"No row selected.":"",
115 117
"Nov":"",
116 118
"November":"",
117 119
"Oct":"",
locale/de/all
348 348
  'Apply to all parts'          => 'Bei allen Artikeln setzen',
349 349
  'Apply to all transfers'      => 'Bei allen Lagerbewegungen setzen',
350 350
  'Apply to parts without booking group' => 'Bei allen Artikeln ohne gültige Buchungsgruppe setzen',
351
  'Apply to selected rows'      => 'Auf ausgewählte Zeilen anwenden',
351 352
  'Apply to transfers without bin' => 'Bei allen Lagerbewegungen ohne Lagerplatz setzen',
352 353
  'Apply to transfers without comment' => 'Bei allen Lagerbewegungen ohne Kommentar setzen',
353 354
  'Apply to transfers without warehouse' => 'Bei allen Lagerbewegungen ohne Lager setzen',
......
1111 1112
  'Delete profile'              => 'Profil löschen',
1112 1113
  'Delete quotation/order'      => 'Angebot/Auftrag löschen',
1113 1114
  'Delete requirement spec'     => 'Pflichtenheft löschen',
1115
  'Delete selected rows'        => 'Lösche ausgewählte Zeilen',
1114 1116
  'Delete shoporder'            => 'Shopbestellung löschen',
1115 1117
  'Delete template'             => 'Vorlage löschen',
1116 1118
  'Delete text block'           => 'Textblock löschen',
......
1226 1228
  'Do you really want to undo the selected SEPA exports? You have to reassign the export again.' => 'Möchten Sie wirklich die ausgewählten SEPA-Exports rückgängig machen? Der Export muss anschließend neu erzeugt werden.',
1227 1229
  'Do you really want to unimport the selected documents?' => 'Möchten Sie wirklich diese Dateien an die Quelle zurückgeben?',
1228 1230
  'Do you really want undo transfers the stock and set this order to undelivered?' => 'Wollen sie wirklich die Lagerbewegung rückgängig machen und den Beleg als nicht geliefert setzen?',
1231
  'Do you want delete #1 rows?' => 'Wollen Sie #1 Zeilen löschen?',
1229 1232
  'Do you want to <b>limit</b> your search?' => 'Möchten Sie Ihre Suche <b>spezialisieren</b>?',
1230 1233
  'Do you want to carry this shipping address over to the new purchase document so that the vendor can deliver the goods directly to your customer?' => 'Möchten Sie diese Lieferadresse in den neuen Einkaufsbeleg übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?',
1231 1234
  'Do you want to carry this shipping address over to the new purchase reclamation so that the vendor can deliver the goods directly to your customer?' => 'Möchten Sie diese Lieferadresse in die neue Einkaufsreklamation übernehmen, damit der Händler die Waren direkt an Ihren Kunden liefern kann?',
......
2403 2406
  'No report with id #1'        => 'Es gibt keinen Report mit der Id #1',
2404 2407
  'No requirement spec templates have been created yet.' => 'Es wurden noch keine Pflichtenheftvorlagen angelegt.',
2405 2408
  'No results.'                 => 'Keine Artikel',
2409
  'No row selected.'            => 'Keine Zeile ausgewählt.',
2406 2410
  'No search results found!'    => 'Keine Suchergebnisse gefunden!',
2407 2411
  'No sections created yet'     => 'Keine Abschnitte erstellt',
2408 2412
  'No sections have been created so far.' => 'Bisher wurden noch keine Abschnitte angelegt.',
......
4209 4213
  'To user login'               => 'Zum Benutzerlogin',
4210 4214
  'Today'                       => 'heute',
4211 4215
  'Toggle marker'               => 'Markierung umschalten',
4216
  'Toggle selection'            => 'Auswahl umkehren',
4212 4217
  'Too many results (#1 from #2).' => 'Zu viele Artikel (#1 von #2)',
4213 4218
  'Too much recursions in assembly tree (>100)' => 'Zu tiefe Verschachtelung (>100) des Erzeugnisbaum',
4214 4219
  'Top'                         => 'Oben',
locale/en/all
348 348
  'Apply to all parts'          => '',
349 349
  'Apply to all transfers'      => '',
350 350
  'Apply to parts without booking group' => '',
351
  'Apply to selected rows'      => '',
351 352
  'Apply to transfers without bin' => '',
352 353
  'Apply to transfers without comment' => '',
353 354
  'Apply to transfers without warehouse' => '',
......
1111 1112
  'Delete profile'              => '',
1112 1113
  'Delete quotation/order'      => '',
1113 1114
  'Delete requirement spec'     => '',
1115
  'Delete selected rows'        => '',
1114 1116
  'Delete shoporder'            => '',
1115 1117
  'Delete template'             => '',
1116 1118
  'Delete text block'           => '',
......
1226 1228
  'Do you really want to undo the selected SEPA exports? You have to reassign the export again.' => '',
1227 1229
  'Do you really want to unimport the selected documents?' => '',
1228 1230
  'Do you really want undo transfers the stock and set this order to undelivered?' => '',
1231
  'Do you want delete #1 rows?' => '',
1229 1232
  'Do you want to <b>limit</b> your search?' => '',
1230 1233
  'Do you want to carry this shipping address over to the new purchase document so that the vendor can deliver the goods directly to your customer?' => '',
1231 1234
  'Do you want to carry this shipping address over to the new purchase reclamation so that the vendor can deliver the goods directly to your customer?' => '',
......
2402 2405
  'No report with id #1'        => '',
2403 2406
  'No requirement spec templates have been created yet.' => '',
2404 2407
  'No results.'                 => '',
2408
  'No row selected.'            => '',
2405 2409
  'No search results found!'    => '',
2406 2410
  'No sections created yet'     => '',
2407 2411
  'No sections have been created so far.' => '',
templates/design40_webpages/reclamation/tabs/basic_data.html
301 301
            [%- L.img_tag(src="image/expand.svg", alt=LxERP.t8('Show all details'), title=LxERP.t8('Show all details'), id='expand_all') %]
302 302
          [%- END %]
303 303
        </th>
304
          <th>
305
            [% L.checkbox_tag("select_all_multi_id", checked=0, alt=LxERP.t8('Select/Deselect all'), title=LxERP.t8('Select/Deselect all'), id='select_all') %]
306
          </th>
304 307
        <th>[% 'position' | $T8 %] </th>
305 308
        <th style='text-align:center'><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
306 309
        <th style='text-align:center'><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
......
332 335
        <th id="discount_header_id"><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("discount")'>  [%- 'Discount'    | $T8 %]</a></th>
333 336
        <th>[%- 'Extended' | $T8 %] </th>
334 337
      </tr>
338
      <tr>
339
        <th></th>
340
        <th class="center">
341
          [%- L.button_tag('kivi.Reclamation.toggle_selected_rows();', "🔄",
342
                           title=LxERP.t8("Toggle selection"),
343
                           alt=LxERP.t8("Toggle selection"),
344
                           ) %]
345
        </th>
346
        <th colspan="2"></th>
347
        <th class="center">
348
          [%- L.button_tag('kivi.Reclamation.delete_selected_rows();', LxERP.t8("X"),
349
                           title=LxERP.t8("Delete selected rows"),
350
                           alt=LxERP.t8("Delete selected rows"),
351
                           ) %]
352
        </th>
353
        [%- IF SELF.show_update_button -%]
354
        <th></th>
355
        [%- END -%]
356
        <th colspan="3"></th>
357
        <th>
358
          [% L.select_tag("reason_for_selected",
359
                          SELF.reclamation.valid_reclamation_reasons,
360
                          title_key = 'name',
361
                          value_key = 'id',
362
                          with_empty=1,
363
                          class="wi-small",
364
                          ) %]
365
          [%- L.button_tag('kivi.Reclamation.set_selected_to_reason()', "↓",
366
                           alt=LxERP.t8('Apply to selected rows'),
367
                           title=LxERP.t8('Apply to selected rows'),
368
                           ) %]
369
        </th>
370
        <th>
371
          [% L.areainput_tag("reason_description_ext_for_selected",
372
                             "",
373
                             size='40',
374
                             class="wi-mediumsmall",
375
                             ) %]
376
          [%- L.button_tag('kivi.Reclamation.set_selected_to_reason_description_ext()', "↓",
377
                           alt=LxERP.t8('Apply to selected rows'),
378
                           title=LxERP.t8('Apply to selected rows'),
379
                           ) %]
380
        </th>
381
        <th>
382
          [% L.areainput_tag("reason_description_int_for_selected",
383
                             "",
384
                             size='40',
385
                             class="wi-mediumsmall",
386
                             ) %]
387
          [%- L.button_tag('kivi.Reclamation.set_selected_to_reason_description_int()', "↓",
388
                           alt=LxERP.t8('Apply to selected rows'),
389
                           title=LxERP.t8('Apply to selected rows'),
390
                           ) %]
391
        </th>
392
        <th colspan="7"></th>
393
      </tr>
335 394
    </thead>
336 395

  
337 396
    [%- FOREACH item = SELF.reclamation.items_sorted %]
......
340 399

  
341 400
    <tfoot>
342 401
      <tr id="subtotal_row_id">
343
        <td colspan="13"></td>
402
        <td colspan="14"></td>
344 403
        [%- IF SELF.show_update_button -%]
345 404
        <td></td>
346 405
        [%- END -%]
......
351 410
        [%- PROCESS reclamation/tabs/basic_data/_tax_row.html TAX=tax TAXINCLUDED=SELF.reclamation.taxincluded %]
352 411
      [%- END %]
353 412
      <tr id="amount_row_id">
354
        <td colspan="13"></td>
413
        <td colspan="14"></td>
355 414
        [%- IF SELF.show_update_button -%]
356 415
        <td></td>
357 416
        [%- END -%]
templates/design40_webpages/reclamation/tabs/basic_data/_row.html
21 21
                     alt=LxERP.t8('Show details'), title=LxERP.t8('Show details'), class="expand") %]
22 22
      [%- END %]
23 23
    </td>
24
    <td>
25
      [% L.checkbox_tag('multi_id_' _ ITEM.position, value=ITEM.id, checked=0) %]
26
    </td>
24 27
    <td>
25 28
      <div name="position" class="center">
26 29
        [% HTML.escape(ITEM.position) %]
templates/design40_webpages/reclamation/tabs/basic_data/_tax_row.html
4 4
[%- USE L %]
5 5

  
6 6
<tr class="tax_row">
7
  <td colspan="13"></td>
7
  <td colspan="14"></td>
8 8
  [%- IF SELF.show_update_button -%]
9 9
  <td></td>
10 10
  [%- END -%]
......
13 13
</tr>
14 14
[%- IF TAXINCLUDED %]
15 15
<tr class="tax_row">
16
  <td colspan="13"></td>
16
  <td colspan="14"></td>
17 17
  [%- IF SELF.show_update_button -%]
18 18
  <td></td>
19 19
  [%- END -%]
templates/webpages/reclamation/tabs/basic_data.html
221 221
                    [%- L.img_tag(src="image/expand.svg", alt=LxERP.t8('Show all details'), title=LxERP.t8('Show all details'), id='expand_all') %]
222 222
                  [%- END %]
223 223
                </th>
224
                <th>
225
                  [% L.checkbox_tag("select_all_multi_id", checked=0, alt=LxERP.t8('Select/Deselect all'), title=LxERP.t8('Select/Deselect all'), id='select_all') %]
226
                </th>
224 227
                <th class="listheading" nowrap width="3" >[%- 'position'     | $T8 %] </th>
225 228
                <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
226 229
                <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
......
250 253
                <th id="discount_header_id"    class="listheading" nowrap width="15" ><a href='#' onClick='javascript:kivi.Reclamation.reorder_items("discount")'>  [%- 'Discount'    | $T8 %]</a></th>
251 254
                <th class="listheading" nowrap width="10">[%- 'Extended'     | $T8 %] </th>
252 255
              </tr>
256
              <tr class="listheading">
257
                <th></th>
258
                <th class="center">
259
                  [%- L.button_tag('kivi.Reclamation.toggle_selected_rows();', "🔄",
260
                                   title=LxERP.t8("Toggle selection"),
261
                                   alt=LxERP.t8("Toggle selection"),
262
                                   ) %]
263
                </th>
264
                <th colspan="2"></th>
265
                <th class="center">
266
                  [%- L.button_tag('kivi.Reclamation.delete_selected_rows();', LxERP.t8("X"),
267
                                   title=LxERP.t8("Delete selected rows"),
268
                                   alt=LxERP.t8("Delete selected rows"),
269
                                   ) %]
270
                </th>
271
                [%- IF SELF.show_update_button -%]
272
                <th></th>
273
                [%- END -%]
274
                <th colspan="3"></th>
275
                <th>
276
                  [% L.select_tag("reason_for_selected",
277
                                  SELF.reclamation.valid_reclamation_reasons,
278
                                  title_key = 'name',
279
                                  value_key = 'id',
280
                                  with_empty=1,
281
                                  class="wi-small",
282
                                  ) %]
283
                  [%- L.button_tag('kivi.Reclamation.set_selected_to_reason()', "↓",
284
                                   alt=LxERP.t8('Apply to selected rows'),
285
                                   title=LxERP.t8('Apply to selected rows'),
286
                                   ) %]
287
                </th>
288
                <th>
289
                  [% L.areainput_tag("reason_description_ext_for_selected",
290
                                     "",
291
                                     class="wi-mediumsmall",
292
                                     ) %]
293
                  [%- L.button_tag('kivi.Reclamation.set_selected_to_reason_description_ext()', "↓",
294
                                   alt=LxERP.t8('Apply to selected rows'),
295
                                   title=LxERP.t8('Apply to selected rows'),
296
                                   ) %]
297
                </th>
298
                <th>
299
                  [% L.areainput_tag("reason_description_int_for_selected",
300
                                     "",
301
                                     class="wi-mediumsmall",
302
                                     ) %]
303
                  [%- L.button_tag('kivi.Reclamation.set_selected_to_reason_description_int()', "↓",
304
                                   alt=LxERP.t8('Apply to selected rows'),
305
                                   title=LxERP.t8('Apply to selected rows'),
306
                                   ) %]
307
                </th>
308
                <th colspan="7"></th>
309
              </tr>
253 310
            </thead>
254 311

  
255 312
            [%- FOREACH item = SELF.reclamation.items_sorted %]
templates/webpages/reclamation/tabs/basic_data/_row.html
21 21
                     alt=LxERP.t8('Show details'), title=LxERP.t8('Show details'), class="expand") %]
22 22
      [%- END %]
23 23
    </td>
24
    <td>
25
      [% L.checkbox_tag('multi_id_' _ ITEM.position, value=ITEM.id, checked=0) %]
26
    </td>
24 27
    <td>
25 28
      <div name="position" class="numeric">
26 29
        [% HTML.escape(ITEM.position) %]

Auch abrufbar als: Unified diff