Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 3f6cbbd5

Von Bernd Bleßmann vor mehr als 1 Jahr hinzugefügt

  • ID 3f6cbbd56ac0faa0caf64f58586419de249cc700
  • Vorgänger 79d1a2cd
  • Nachfolger 1766048a

kundentyp-spezifische Artikelnummern: Position/Reihenfolge

Unterschiede anzeigen:

SL/Controller/Part.pm
540 540
    $self->js->flash('info', t8("This business has already been added."));
541 541
  };
542 542

  
543
  my $position = scalar @{ $self->businessmodels } + 1;
544

  
543 545
  my $bm = SL::DB::BusinessModel->new(#parts_id             => $::form->{part}->{id},
544 546
                                      business             => $business,
545 547
                                      model                => '',
546 548
                                      part_description     => '',
547 549
                                      part_longdescription => '',
550
                                      position             => $position,
548 551
  ) or die "Can't create BusinessModel object";
549 552

  
550 553
  my $row_as_html = $self->p->render('part/_businessmodel_row',
......
1023 1026

  
1024 1027
  $self->part->businessmodels([]);
1025 1028

  
1029
  my $position = 0;
1026 1030
  my $businessmodels = delete($::form->{businessmodels}) || [];
1027 1031
  foreach my $businessmodel ( @{$businessmodels} ) {
1028 1032
    next unless $businessmodel->{business_id};
1029 1033

  
1034
    $position++;
1030 1035
    my $bm = SL::DB::BusinessModel->new( #parts_id            => $self->part->id,            # will be assigned by row add_businessmodels
1031 1036
                                         business_id          => $businessmodel->{business_id},
1032 1037
                                         model                => $businessmodel->{model} || '',
1033 1038
                                         part_description     => $businessmodel->{part_description} || '',
1034 1039
                                         part_longdescription => $businessmodel->{part_longdescription} || '',
1040
                                         position             => $position,
1035 1041
    );
1036 1042

  
1037 1043
    $self->part->add_businessmodels($bm);
SL/DB/BusinessModel.pm
6 6
use strict;
7 7

  
8 8
use SL::DB::MetaSetup::BusinessModel;
9
use SL::DB::Helper::ActsAsList(group_by => [ qw(parts_id) ]);
9 10

  
10 11
__PACKAGE__->meta->initialize;
11 12

  
SL/DB/MetaSetup/BusinessModel.pm
16 16
  part_description     => { type => 'text' },
17 17
  part_longdescription => { type => 'text' },
18 18
  parts_id             => { type => 'integer', not_null => 1 },
19
  position             => { type => 'integer' },
19 20
);
20 21

  
21 22
__PACKAGE__->meta->primary_key_columns([ 'parts_id', 'business_id' ]);
SL/DB/Part.pm
94 94
__PACKAGE__->attr_html('notes');
95 95
__PACKAGE__->attr_sorted({ unsorted => 'makemodels',     position => 'sortorder' });
96 96
__PACKAGE__->attr_sorted({ unsorted => 'customerprices', position => 'sortorder' });
97
__PACKAGE__->attr_sorted('businessmodels');
97 98

  
98 99
__PACKAGE__->before_save('_before_save_set_partnumber');
99 100
__PACKAGE__->before_save('_before_save_set_assembly_weight');
js/kivi.Part.js
265 265
  };
266 266

  
267 267
  // businessmodel
268
  ns.businessmodel_renumber_positions = function() {
269
    $('.businessmodel_row [name="position"]').each(function(idx, elt) {
270
      $(elt).html(idx+1);
271
    });
272
  };
273

  
268 274
  ns.delete_businessmodel_row = function(clicked) {
269 275
    var row = $(clicked).closest('tr');
270 276
    $(row).remove();
277

  
278
    ns.businessmodel_renumber_positions();
271 279
  };
272 280

  
273 281
  ns.add_businessmodel_row = function() {
......
810 818
    kivi.run_once_for('#makemodel_rows', 'makemodel_row_sort_renumber', function(elt) {
811 819
      $(elt).on('sortstop', kivi.Part.makemodel_renumber_positions);
812 820
    });
821

  
822
    kivi.run_once_for('#businessmodel_rows', 'businessmodel_row_sort_renumber', function(elt) {
823
      $(elt).on('sortstop', kivi.Part.businessmodel_renumber_positions);
824
    });
813 825
  };
814 826

  
815 827
  ns.init = function() {
sql/Pg-upgrade2/add_business_models_position.sql
1
-- @tag: add_business_models_position
2
-- @description: Reihenfolge für Kunden-/Lieferantentyp-Artikelnummern
3
-- @depends: add_business_models
4

  
5
ALTER TABLE business_models ADD COLUMN position INTEGER;
templates/design40_webpages/part/_businessmodel_row.html
7 7
  <td style='display:none'>
8 8
    [%- L.hidden_tag("businessmodels[+].business_id", businessmodel.business_id) -%]
9 9
  </td>
10
  <td>[%- L.button_tag("kivi.Part.delete_businessmodel_row(this)", LxERP.t8("X"), class="wi-verytiny neutral") %] [% # , confirm=LxERP.t8("Are you sure?")) %]</td>
10
  <td class="center">
11
    [%- L.button_tag("kivi.Part.delete_businessmodel_row(this)", LxERP.t8("X"), class="wi-verytiny neutral") %] [% # , confirm=LxERP.t8("Are you sure?")) %]
12
  </td>
13
  <td class="center numeric"><span name="position">[% HTML.escape(businessmodel.position) %]</span></td>
14
  <td><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]" class="dragdrop"></td>
15
  <td></td>
11 16
  <td>[% businessmodel.business.description | html %]</td>
12 17
  <td>[% L.input_tag('businessmodels[].model',                    businessmodel.model,                class='wi-mediumsmall', size=30) %]</td>
13 18
  <td>[% L.input_tag('businessmodels[].part_description',         businessmodel.part_description,     class='wi-mediumsmall', size=10) %]</td>
templates/design40_webpages/part/_businessmodels.html
9 9
  <thead>
10 10
    <tr>
11 11
      <th class="center"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
12
      <th class="center">[% 'position' | $T8 %]</th>
13
      <th class="center"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
14
      <th></th>
12 15
      <th>[% 'Business'            | $T8 %]</th>
13 16
      <th>[% 'Business Type Model' | $T8 %]</th>
14 17
      <th>[% 'Part Description'    | $T8 %]</th>
......
22 25
  </tbody>
23 26
  <tfoot>
24 27
    <tr>
28
      <td></td>
29
      <td></td>
25 30
      <td></td>
26 31
      <th class="right"><span class="label">[% 'Business' | $T8 %]</th>
27 32
      <td>[% P.select_tag('add_businessmodel', SELF.all_businesses, title_key="description", with_empty=1, class='wi-mediumsmall', onchange='kivi.Part.add_businessmodel_row()') %]</td>
28 33
      <td>[% L.button_tag('kivi.Part.add_businessmodel_row()', LxERP.t8('Add')) %]</td>
29 34
      <td></td>
35
      <td></td>
30 36
    </tr>
31 37
  </tfoot>
32 38
</table>
39

  
40
[% L.sortable_element('#businessmodel_rows') %]
templates/webpages/part/_businessmodel_row.html
8 8
           [%- L.button_tag("kivi.Part.delete_businessmodel_row(this)",
9 9
                            LxERP.t8("X")) %] [% # , confirm=LxERP.t8("Are you sure?")) %]
10 10
         </td>
11
         <td><span name="position" class="numeric">[% HTML.escape(businessmodel.position) %]</span></td>
12
         <td align="center">
13
           <img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]" class="dragdrop">
14
         </td>
15
         <td></td>
11 16
         <td>[% businessmodel.business.description | html %]</td>
12 17
         <td>[% L.input_tag('businessmodels[].model', businessmodel.model, size=30 ) %]</td>
13 18
         <td>[% L.input_tag('businessmodels[].part_description',         businessmodel.part_description,     size=30 ) %]</td>
templates/webpages/part/_businessmodels.html
11 11
        <thead>
12 12
         <tr>
13 13
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/close.png" alt="[%- LxERP.t8('delete item') %]"></th>
14
          <th class="listheading">[% 'position'            | $T8 %]</th>
15
          <th class="listheading" style='text-align:center' nowrap width="1"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
16
          <th class="listheading"></th>
14 17
          <th class="listheading">[% 'Business'            | $T8 %]</th>
15 18
          <th class="listheading">[% 'Business Type Model' | $T8 %]</th>
16 19
          <th class="listheading">[% 'Part Description'    | $T8 %]</th>
......
18 21
         </tr>
19 22
        </thead>
20 23
        <tbody id="businessmodel_rows">
21
        [%- FOREACH businessmodel = SELF.part.businessmodels %]
24
        [%- FOREACH businessmodel = SELF.part.businessmodels_sorted %]
22 25
          [% PROCESS 'part/_businessmodel_row.html' businessmodel=businessmodel %]
23 26
        [%- END %]
24 27
       </tbody>
25 28
       <tbody>
26 29
        <tr>
30
         <td></td>
31
         <td></td>
27 32
         <td></td>
28 33
         <td align="right">[% 'Business' | $T8 %]</td>
29 34
         <td>[% P.select_tag('add_businessmodel', SELF.all_businesses, title_key="description", with_empty=1, style='width: 300px', onchange='kivi.Part.add_businessmodel_row()') %]</td>
......
34 39
      </table>
35 40
    </td>
36 41
  </tr>
42
  [% L.sortable_element('#businessmodel_rows') %]

Auch abrufbar als: Unified diff