Revision 07d71c33
Von Stephan Köhler vor fast 19 Jahren hinzugefügt
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
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