Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 07d71c33

Von Stephan Köhler vor fast 19 Jahren hinzugefügt

  • ID 07d71c33315605fcfc450d3b9abf0fd10e92bed5
  • Vorgänger becc49b1
  • Nachfolger ee583bd5

Merge von 599-602,605,614,615 aus unstable: Preisgruppen Teil 1
--Preisgruppenerweiterung auf Basis von Andres Patch - Thanks
-Preisgruppenverwaltung
-Preiseingabe der Preisgruppen in Masken Waren,etc.
-Auswahl der Preisgruppen in den Verkaufsmasken
-Erweiterung Datenbankschema
-Übersetzungen für Preisgruppen
-Bugfix Preisgruppen, in der Warenmaske zeigte er eine Preisgruppe a
"Gruppe 1" als "Gruppe" an
-Anpassung locale
--Fehler bei negativen Umsaetzen behoben
--Fehler beim Speichern von Rechnungen und Angeboten/Auftraegen wenn keine Preisgruppen vorhanden
--Fehler bei Drucken und Buchen und Preisgruppen behoben, Preisgruppen Quelltext ein wenig modifiziert

Unterschiede anzeigen:

SL/IC.pm
33 33
#======================================================================
34 34

  
35 35
package IC;
36

  
36
use Data::Dumper;
37 37
sub get_part {
38 38
  $main::lxdebug->enter_sub();
39 39

  
......
101 101
  $form->{amount}{IC_expense} = $form->{expense_accno};
102 102
  $form->{amount}{IC_cogs}    = $form->{expense_accno};
103 103

  
104
  # get prices
105
  $query =
106
    qq|SELECT p.parts_id, p.pricegroup_id, p.price, (SELECT pg.pricegroup FROM pricegroup pg WHERE pg.id=p.pricegroup_id) AS pricegroup FROM prices p
107
              WHERE parts_id = $form->{id}
108
              ORDER by pricegroup|;
109

  
110
  $sth = $dbh->prepare($query);
111
  $sth->execute || $form->dberror($query);
112

  
113
  @pricegroups          = ();
114
  @pricegroups_not_used = ();
115

  
116
  #for pricegroups
117
  my $i = 1;
118
  while (
119
         ($form->{"klass_$i"}, $form->{"pricegroup_id_$i"},
120
          $form->{"price_$i"}, $form->{"pricegroup_$i"})
121
         = $sth->fetchrow_array
122
    ) {
123
    $form->{"price_$i"} = $form->round_amount($form->{"price_$i"}, 5);
124
    $form->{"price_$i"} =
125
      $form->format_amount($myconfig, $form->{"price_$i"}, 5);
126
    push @pricegroups, $form->{"pricegroup_id_$i"};
127
    $i++;
128
  }
129

  
130
  $sth->finish;
131

  
132
  # get pricegroups
133
  $query = qq|SELECT p.id, p.pricegroup FROM pricegroup p|;
134

  
135
  $pkq = $dbh->prepare($query);
136
  $pkq->execute || $form->dberror($query);
137
  while ($pkr = $pkq->fetchrow_hashref(NAME_lc)) {
138
    push @{ $form->{PRICEGROUPS} }, $pkr;
139
  }
140
  $pkq->finish;
141

  
142
  #find not used pricegroups
143
  while ($tmp = pop @{ $form->{PRICEGROUPS} }) {
144
    my $insert = 0;
145
    foreach $item (@pricegroups) {
146
      if ($item eq $tmp->{id}) {
147

  
148
        #drop
149
        $insert = 1;
150
      }
151
    }
152
    if ($insert == 0) {
153
      push @pricegroups_not_used, $tmp;
154
    }
155
  }
156

  
157
  # if not used pricegroups are avaible
158
  if (@pricegroups_not_used) {
159

  
160
    foreach $name (@pricegroups_not_used) {
161
      $form->{"klass_$i"} = "$name->{id}";
162
      $form->{"price_$i"} = $form->round_amount($form->{sellprice}, 5);
163
      $form->{"price_$i"} =
164
        $form->format_amount($myconfig, $form->{"price_$i"}, 5);
165
      $form->{"pricegroup_id_$i"} = "$name->{id}";
166
      $form->{"pricegroup_$i"}    = "$name->{pricegroup}\n";
167
      $i++;
168
    }
169
  }
170

  
171
  #correct rows
172
  $form->{price_rows} = $i - 1;
173

  
104 174
  unless ($form->{item} eq 'service') {
105 175

  
106 176
    # get makes
......
161 231
  $main::lxdebug->leave_sub();
162 232
}
163 233

  
234
sub get_pricegroups {
235
  $main::lxdebug->enter_sub();
236

  
237
  my ($self, $myconfig, $form) = @_;
238
  my $dbh = $form->dbconnect($myconfig);
239
  my $i = 1;
240
  my @pricegroups_not_used = ();
241

  
242
  # get pricegroups
243
  my $query = qq|SELECT p.id, p.pricegroup FROM pricegroup p|;
244

  
245
  my $pkq = $dbh->prepare($query);
246
  $pkq->execute || $form->dberror($query);
247
  while ($pkr = $pkq->fetchrow_hashref(NAME_lc)) {
248
    push @{ $form->{PRICEGROUPS} }, $pkr;
249
  }
250
  $pkq->finish;
251

  
252
  #find not used pricegroups
253
  while ($tmp = pop @{ $form->{PRICEGROUPS} }) {
254
    push @pricegroups_not_used, $tmp;
255
  }
256

  
257
  # if not used pricegroups are avaible
258
  if (@pricegroups_not_used) {
259

  
260
    foreach $name (@pricegroups_not_used) {
261
      $form->{"klass_$i"} = "$name->{id}";
262
      $form->{"price_$i"} = $form->round_amount($form->{sellprice}, 5);
263
      $form->{"price_$i"} =
264
        $form->format_amount($myconfig, $form->{"price_$i"}, 5);
265
      $form->{"pricegroup_id_$i"} = "$name->{id}";
266
      $form->{"pricegroup_$i"}    = "$name->{pricegroup}\n";
267
      $i++;
268
    }
269
  }
270

  
271
  #correct rows
272
  $form->{price_rows} = $i - 1;
273

  
274
  $dbh->disconnect;
275

  
276
  $main::lxdebug->leave_sub();
277
}
278

  
279

  
164 280
sub save {
165 281
  $main::lxdebug->enter_sub();
166 282

  
......
332 448
	      WHERE id = $form->{id}|;
333 449
  $dbh->do($query) || $form->dberror($query);
334 450

  
451
  # delete price records
452
  $query = qq|DELETE FROM prices
453
              WHERE parts_id = $form->{id}|;
454
  $dbh->do($query) || $form->dberror($query);
455

  
456
  # insert price records only if different to sellprice
457
  for my $i (1 .. $form->{price_rows}) {
458
    if ($form->{"price_$i"} eq "0") {
459
       $form->{"price_$i"} = $form->{sellprice};
460
    }
461
    if ((   $form->{"price_$i"} 
462
        || $form->{"klass_$i"}
463
        || $form->{"pricegroup_id_$i"}) and $form->{"price_$i"} != $form->{sellprice}) {
464
      $klass = $form->parse_amount($myconfig, $form->{"klass_$i"});
465
      $price = $form->parse_amount($myconfig, $form->{"price_$i"});
466
      $pricegroup_id =
467
        $form->parse_amount($myconfig, $form->{"pricegroup_id_$i"});
468
      $query = qq|INSERT INTO prices (parts_id, pricegroup_id, price)
469
                  VALUES($form->{id},$pricegroup_id,$price)|;
470
      $dbh->do($query) || $form->dberror($query);
471
    }
472
  }
473

  
335 474
  # insert makemodel records
336 475
  unless ($form->{item} eq 'service') {
337 476
    for my $i (1 .. $form->{makemodel_rows}) {

Auch abrufbar als: Unified diff