Revision 9d679693
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
SL/AM.pm | ||
---|---|---|
183 | 183 |
if ($form->{id} && $form->{orphaned}) { |
184 | 184 |
$query = qq|UPDATE chart SET |
185 | 185 |
accno = ?, description = ?, charttype = ?, |
186 |
gifi_accno = ?, category = ?, link = ?,
|
|
186 |
gifi_accno = ?, category = ?, link = ?,
|
|
187 | 187 |
taxkey_id = ?, |
188 | 188 |
pos_ustva = ?, pos_bwa = ?, pos_bilanz = ?, |
189 | 189 |
pos_eur = ?, new_chart_id = ?, valid_from = ? |
190 |
WHERE id = ?|;
|
|
190 |
WHERE id = ?|;
|
|
191 | 191 |
@values = ($form->{accno}, $form->{description}, $form->{charttype}, |
192 |
$form->{gifi_accno}, $form->{category}, $form->{link},
|
|
193 |
conv_i($taxkey),
|
|
194 |
conv_i($form->{pos_ustva}), conv_i($form->{pos_bwa}),
|
|
195 |
conv_i($form->{pos_bilanz}), conv_i($form->{pos_eur}),
|
|
196 |
conv_i($form->{new_chart_id}),
|
|
197 |
conv_date($form->{valid_from}),
|
|
198 |
$form->{id});
|
|
192 |
$form->{gifi_accno}, $form->{category}, $form->{link},
|
|
193 |
conv_i($taxkey),
|
|
194 |
conv_i($form->{pos_ustva}), conv_i($form->{pos_bwa}),
|
|
195 |
conv_i($form->{pos_bilanz}), conv_i($form->{pos_eur}),
|
|
196 |
conv_i($form->{new_chart_id}),
|
|
197 |
conv_date($form->{valid_from}),
|
|
198 |
$form->{id});
|
|
199 | 199 |
|
200 | 200 |
} elsif ($form->{id} && !$form->{new_chart_valid}) { |
201 | 201 |
$query = qq|UPDATE chart SET new_chart_id = ?, valid_from = ? |
202 |
WHERE id = ?|;
|
|
202 |
WHERE id = ?|;
|
|
203 | 203 |
@values = (conv_i($form->{new_chart_id}), conv_date($form->{valid_from}), |
204 |
$form->{id});
|
|
204 |
$form->{id});
|
|
205 | 205 |
} else { |
206 | 206 |
$query = qq|INSERT INTO chart |
207 | 207 |
(accno, description, charttype, |
... | ... | |
211 | 211 |
new_chart_id, valid_from) |
212 | 212 |
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; |
213 | 213 |
@values = ($form->{accno}, $form->{description}, $form->{charttype}, |
214 |
$form->{gifi_accno}, $form->{category}, $form->{link},
|
|
215 |
conv_i($taxkey),
|
|
216 |
conv_i($form->{pos_ustva}), conv_i($form->{pos_bwa}),
|
|
217 |
conv_i($form->{pos_bilanz}), conv_i($form->{pos_eur}),
|
|
218 |
conv_i($form->{new_chart_id}),
|
|
219 |
conv_date($form->{valid_from}));
|
|
214 |
$form->{gifi_accno}, $form->{category}, $form->{link},
|
|
215 |
conv_i($taxkey),
|
|
216 |
conv_i($form->{pos_ustva}), conv_i($form->{pos_bwa}),
|
|
217 |
conv_i($form->{pos_bilanz}), conv_i($form->{pos_eur}),
|
|
218 |
conv_i($form->{new_chart_id}),
|
|
219 |
conv_date($form->{valid_from}));
|
|
220 | 220 |
|
221 | 221 |
} |
222 | 222 |
do_query($form, $dbh, $query, @values); |
... | ... | |
228 | 228 |
qq|(chart_id, tax_id, taxkey_id, pos_ustva, startdate) | . |
229 | 229 |
qq|VALUES ((SELECT id FROM chart WHERE accno = ?), ?, ?, ?, ?)|; |
230 | 230 |
do_query($form, $dbh, $query, |
231 |
$form->{accno}, conv_i($tax_id), conv_i($taxkey),
|
|
232 |
conv_i($form->{pos_ustva}), conv_date($startdate));
|
|
231 |
$form->{accno}, conv_i($tax_id), conv_i($taxkey),
|
|
232 |
conv_i($form->{pos_ustva}), conv_date($startdate));
|
|
233 | 233 |
|
234 | 234 |
} else { |
235 | 235 |
$query = qq|DELETE FROM taxkeys WHERE chart_id = ? AND tax_id = ?|; |
... | ... | |
240 | 240 |
qq|(chart_id, tax_id, taxkey_id, pos_ustva, startdate) | . |
241 | 241 |
qq|VALUES (?, ?, ?, ?, ?)|; |
242 | 242 |
do_query($form, $dbh, $query, |
243 |
$form->{id}, conv_i($tax_id), conv_i($taxkey),
|
|
244 |
conv_i($form->{pos_ustva}), conv_date($startdate));
|
|
243 |
$form->{id}, conv_i($tax_id), conv_i($taxkey),
|
|
244 |
conv_i($form->{pos_ustva}), conv_date($startdate));
|
|
245 | 245 |
} |
246 | 246 |
|
247 | 247 |
# commit |
... | ... | |
310 | 310 |
|
311 | 311 |
my $query = qq|SELECT d.id, d.description, d.role |
312 | 312 |
FROM department d |
313 |
ORDER BY 2|;
|
|
313 |
ORDER BY 2|;
|
|
314 | 314 |
|
315 | 315 |
$sth = $dbh->prepare($query); |
316 | 316 |
$sth->execute || $form->dberror($query); |
317 | 317 |
|
318 |
$form->{ALL} = []; |
|
318 | 319 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
319 | 320 |
push @{ $form->{ALL} }, $ref; |
320 | 321 |
} |
... | ... | |
335 | 336 |
|
336 | 337 |
my $query = qq|SELECT d.description, d.role |
337 | 338 |
FROM department d |
338 |
WHERE d.id = $form->{id}|;
|
|
339 |
WHERE d.id = ?|;
|
|
339 | 340 |
my $sth = $dbh->prepare($query); |
340 |
$sth->execute || $form->dberror($query);
|
|
341 |
$sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
|
|
341 | 342 |
|
342 | 343 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
343 | 344 |
|
... | ... | |
347 | 348 |
|
348 | 349 |
# see if it is in use |
349 | 350 |
$query = qq|SELECT count(*) FROM dpt_trans d |
350 |
WHERE d.department_id = $form->{id}|; |
|
351 |
$sth = $dbh->prepare($query); |
|
352 |
$sth->execute || $form->dberror($query); |
|
351 |
WHERE d.department_id = ?|; |
|
352 |
($form->{orphaned}) = selectrow_query($form, $dbh, $query, $form->{id}); |
|
353 | 353 |
|
354 |
($form->{orphaned}) = $sth->fetchrow_array; |
|
355 | 354 |
$form->{orphaned} = !$form->{orphaned}; |
356 | 355 |
$sth->finish; |
357 | 356 |
|
... | ... | |
368 | 367 |
# connect to database |
369 | 368 |
my $dbh = $form->dbconnect($myconfig); |
370 | 369 |
|
371 |
$form->{description} =~ s/\'/\'\'/g; |
|
372 |
|
|
370 |
my @values = ($form->{description}, $form->{role}); |
|
373 | 371 |
if ($form->{id}) { |
374 | 372 |
$query = qq|UPDATE department SET |
375 |
description = '$form->{description}',
|
|
376 |
role = '$form->{role}'
|
|
377 |
WHERE id = $form->{id}|;
|
|
373 |
description = ?, role = ?
|
|
374 |
WHERE id = ?|;
|
|
375 |
push(@values, $form->{id});
|
|
378 | 376 |
} else { |
379 | 377 |
$query = qq|INSERT INTO department |
380 | 378 |
(description, role) |
381 |
VALUES ('$form->{description}', '$form->{role}')|;
|
|
379 |
VALUES (?, ?)|;
|
|
382 | 380 |
} |
383 |
$dbh->do($query) || $form->dberror($query);
|
|
381 |
do_query($form, $dbh, $query, @values);
|
|
384 | 382 |
|
385 | 383 |
$dbh->disconnect; |
386 | 384 |
|
... | ... | |
396 | 394 |
my $dbh = $form->dbconnect($myconfig); |
397 | 395 |
|
398 | 396 |
$query = qq|DELETE FROM department |
399 |
WHERE id = $form->{id}|;
|
|
400 |
$dbh->do($query) || $form->dberror($query);
|
|
397 |
WHERE id = ?|;
|
|
398 |
do_query($form, $dbh, $query, $form->{id});
|
|
401 | 399 |
|
402 | 400 |
$dbh->disconnect; |
403 | 401 |
|
... | ... | |
414 | 412 |
|
415 | 413 |
my $query = qq|SELECT id, lead |
416 | 414 |
FROM leads |
417 |
ORDER BY 2|;
|
|
415 |
ORDER BY 2|;
|
|
418 | 416 |
|
419 | 417 |
$sth = $dbh->prepare($query); |
420 | 418 |
$sth->execute || $form->dberror($query); |
421 | 419 |
|
420 |
$form->{ALL}; |
|
422 | 421 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
423 | 422 |
push @{ $form->{ALL} }, $ref; |
424 | 423 |
} |
... | ... | |
438 | 437 |
my $dbh = $form->dbconnect($myconfig); |
439 | 438 |
|
440 | 439 |
my $query = |
441 |
qq|SELECT l.id, l.lead |
|
442 |
FROM leads l
|
|
443 |
WHERE l.id = $form->{id}|;
|
|
440 |
qq|SELECT l.id, l.lead | .
|
|
441 |
qq|FROM leads l | .
|
|
442 |
qq|WHERE l.id = ?|;
|
|
444 | 443 |
my $sth = $dbh->prepare($query); |
445 |
$sth->execute || $form->dberror($query);
|
|
444 |
$sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
|
|
446 | 445 |
|
447 | 446 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
448 | 447 |
|
... | ... | |
463 | 462 |
# connect to database |
464 | 463 |
my $dbh = $form->dbconnect($myconfig); |
465 | 464 |
|
466 |
$form->{lead} =~ s/\'/\'\'/g; |
|
467 |
|
|
465 |
my @values = ($form->{description}); |
|
468 | 466 |
# id is the old record |
469 | 467 |
if ($form->{id}) { |
470 | 468 |
$query = qq|UPDATE leads SET |
471 |
lead = '$form->{description}' |
|
472 |
WHERE id = $form->{id}|; |
|
469 |
lead = ? |
|
470 |
WHERE id = ?|; |
|
471 |
puhs(@values, $form->{id}); |
|
473 | 472 |
} else { |
474 | 473 |
$query = qq|INSERT INTO leads |
475 | 474 |
(lead) |
476 |
VALUES ('$form->{description}')|;
|
|
475 |
VALUES (?)|;
|
|
477 | 476 |
} |
478 |
$dbh->do($query) || $form->dberror($query);
|
|
477 |
do_query($form, $dbh, $query, @values);
|
|
479 | 478 |
|
480 | 479 |
$dbh->disconnect; |
481 | 480 |
|
... | ... | |
491 | 490 |
my $dbh = $form->dbconnect($myconfig); |
492 | 491 |
|
493 | 492 |
$query = qq|DELETE FROM leads |
494 |
WHERE id = $form->{id}|;
|
|
495 |
$dbh->do($query) || $form->dberror($query);
|
|
493 |
WHERE id = ?|;
|
|
494 |
do_query($form, $dbh, $query, $form->{id});
|
|
496 | 495 |
|
497 | 496 |
$dbh->disconnect; |
498 | 497 |
|
... | ... | |
509 | 508 |
|
510 | 509 |
my $query = qq|SELECT id, description, discount, customernumberinit, salesman |
511 | 510 |
FROM business |
512 |
ORDER BY 2|;
|
|
511 |
ORDER BY 2|;
|
|
513 | 512 |
|
514 | 513 |
$sth = $dbh->prepare($query); |
515 | 514 |
$sth->execute || $form->dberror($query); |
516 | 515 |
|
516 |
$form->{ALL}; |
|
517 | 517 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
518 | 518 |
push @{ $form->{ALL} }, $ref; |
519 | 519 |
} |
... | ... | |
534 | 534 |
|
535 | 535 |
my $query = |
536 | 536 |
qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman |
537 |
FROM business b
|
|
538 |
WHERE b.id = $form->{id}|;
|
|
537 |
FROM business b |
|
538 |
WHERE b.id = ?|;
|
|
539 | 539 |
my $sth = $dbh->prepare($query); |
540 |
$sth->execute || $form->dberror($query);
|
|
540 |
$sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
|
|
541 | 541 |
|
542 | 542 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
543 | 543 |
|
... | ... | |
558 | 558 |
# connect to database |
559 | 559 |
my $dbh = $form->dbconnect($myconfig); |
560 | 560 |
|
561 |
$form->{description} =~ s/\'/\'\'/g; |
|
562 |
$form->{discount} /= 100; |
|
563 |
$form->{salesman} *= 1; |
|
564 |
|
|
561 |
my @values = ($form->{description}, $form->{discount}, |
|
562 |
$form->{customernumberinit}, $form->{salesman} ? 't' : 'f'); |
|
565 | 563 |
# id is the old record |
566 | 564 |
if ($form->{id}) { |
567 | 565 |
$query = qq|UPDATE business SET |
568 |
description = '$form->{description}', |
|
569 |
discount = $form->{discount}, |
|
570 |
customernumberinit = '$form->{customernumberinit}', |
|
571 |
salesman = '$form->{salesman}' |
|
572 |
WHERE id = $form->{id}|; |
|
566 |
description = ?, |
|
567 |
discount = ?, |
|
568 |
customernumberinit = ?, |
|
569 |
salesman = ? |
|
570 |
WHERE id = ?|; |
|
571 |
push(@values, $form->{id}); |
|
573 | 572 |
} else { |
574 | 573 |
$query = qq|INSERT INTO business |
575 | 574 |
(description, discount, customernumberinit, salesman) |
576 |
VALUES ('$form->{description}', $form->{discount}, '$form->{customernumberinit}', '$form->{salesman}')|;
|
|
575 |
VALUES (?, ?, ?, ?)|;
|
|
577 | 576 |
} |
578 |
$dbh->do($query) || $form->dberror($query);
|
|
577 |
do_query($form, $dbh, $query, @values);
|
|
579 | 578 |
|
580 | 579 |
$dbh->disconnect; |
581 | 580 |
|
... | ... | |
591 | 590 |
my $dbh = $form->dbconnect($myconfig); |
592 | 591 |
|
593 | 592 |
$query = qq|DELETE FROM business |
594 |
WHERE id = $form->{id}|;
|
|
595 |
$dbh->do($query) || $form->dberror($query);
|
|
593 |
WHERE id = ?|;
|
|
594 |
do_query($form, $dbh, $query, $form->{id});
|
|
596 | 595 |
|
597 | 596 |
$dbh->disconnect; |
598 | 597 |
|
... | ... | |
672 | 671 |
"SELECT template_code, " . |
673 | 672 |
" output_numberformat, output_dateformat, output_longdates " . |
674 | 673 |
"FROM language WHERE id = ?"; |
675 |
my @res = $dbh->selectrow_array($query, undef, $id);
|
|
674 |
my @res = selectrow_query($form, $dbh, $query, $id);
|
|
676 | 675 |
$dbh->disconnect; |
677 | 676 |
|
678 | 677 |
$main::lxdebug->leave_sub(); |
... | ... | |
709 | 708 |
" output_numberformat, output_dateformat, output_longdates" . |
710 | 709 |
") VALUES (?, ?, ?, ?, ?, ?)"; |
711 | 710 |
} |
712 |
$dbh->do($query, undef, @values) || |
|
713 |
$form->dberror($query . " (" . join(", ", @values) . ")"); |
|
711 |
do_query($form, $dbh, $query, @values); |
|
714 | 712 |
|
715 | 713 |
$dbh->disconnect; |
716 | 714 |
|
... | ... | |
827 | 825 |
qq|SELECT count(id) = 0 AS orphaned |
828 | 826 |
FROM parts |
829 | 827 |
WHERE buchungsgruppen_id = ?|; |
830 |
($form->{orphaned}) = $dbh->selectrow_array($query, undef, $form->{id});
|
|
828 |
($form->{orphaned}) = selectrow_arra($query, undef, $form->{id});
|
|
831 | 829 |
$form->dberror($query . " ($form->{id})") if ($dbh->err); |
832 | 830 |
} |
833 | 831 |
|
... | ... | |
982 | 980 |
|
983 | 981 |
my $query = qq|SELECT id, printer_description, template_code, printer_command |
984 | 982 |
FROM printers |
985 |
ORDER BY 2|;
|
|
983 |
ORDER BY 2|;
|
|
986 | 984 |
|
987 | 985 |
$sth = $dbh->prepare($query); |
988 | 986 |
$sth->execute || $form->dberror($query); |
... | ... | |
1008 | 1006 |
|
1009 | 1007 |
my $query = |
1010 | 1008 |
qq|SELECT p.printer_description, p.template_code, p.printer_command |
1011 |
FROM printers p
|
|
1012 |
WHERE p.id = $form->{id}|;
|
|
1009 |
FROM printers p |
|
1010 |
WHERE p.id = ?|;
|
|
1013 | 1011 |
my $sth = $dbh->prepare($query); |
1014 |
$sth->execute || $form->dberror($query);
|
|
1012 |
$sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
|
|
1015 | 1013 |
|
1016 | 1014 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
1017 | 1015 |
|
... | ... | |
1032 | 1030 |
# connect to database |
1033 | 1031 |
my $dbh = $form->dbconnect($myconfig); |
1034 | 1032 |
|
1035 |
$form->{printer_description} =~ s/\'/\'\'/g; |
|
1036 |
$form->{printer_command} =~ s/\'/\'\'/g; |
|
1037 |
$form->{template_code} =~ s/\'/\'\'/g; |
|
1038 |
|
|
1033 |
my @values = ($form->{printer_description}, |
|
1034 |
$form->{template_code}, |
|
1035 |
$form->{printer_command}); |
|
1039 | 1036 |
|
1040 | 1037 |
# id is the old record |
1041 | 1038 |
if ($form->{id}) { |
1042 | 1039 |
$query = qq|UPDATE printers SET |
1043 |
printer_description = '$form->{printer_description}', |
|
1044 |
template_code = '$form->{template_code}', |
|
1045 |
printer_command = '$form->{printer_command}' |
|
1046 |
WHERE id = $form->{id}|; |
|
1040 |
printer_description = ?, template_code = ?, printer_command = ? |
|
1041 |
WHERE id = ?|; |
|
1042 |
push(@values, $form->{id}); |
|
1047 | 1043 |
} else { |
1048 | 1044 |
$query = qq|INSERT INTO printers |
1049 | 1045 |
(printer_description, template_code, printer_command) |
1050 |
VALUES ('$form->{printer_description}', '$form->{template_code}', '$form->{printer_command}')|;
|
|
1046 |
VALUES (?, ?, ?)|;
|
|
1051 | 1047 |
} |
1052 |
$dbh->do($query) || $form->dberror($query);
|
|
1048 |
do_query($form, $dbh, $query, @values);
|
|
1053 | 1049 |
|
1054 | 1050 |
$dbh->disconnect; |
1055 | 1051 |
|
... | ... | |
1065 | 1061 |
my $dbh = $form->dbconnect($myconfig); |
1066 | 1062 |
|
1067 | 1063 |
$query = qq|DELETE FROM printers |
1068 |
WHERE id = $form->{id}|;
|
|
1069 |
$dbh->do($query) || $form->dberror($query);
|
|
1064 |
WHERE id = ?|;
|
|
1065 |
do_query($form, $dbh, $query, $form->{id});
|
|
1070 | 1066 |
|
1071 | 1067 |
$dbh->disconnect; |
1072 | 1068 |
|
... | ... | |
1120 | 1116 |
qq|WHERE t.payment_terms_id = ? | . |
1121 | 1117 |
qq|UNION | . |
1122 | 1118 |
qq|SELECT l.id AS language_id, NULL AS description_long, | . |
1123 |
qq|l.description AS language | . |
|
1119 |
qq| l.description AS language | .
|
|
1124 | 1120 |
qq|FROM language l|; |
1125 | 1121 |
$sth = $dbh->prepare($query); |
1126 | 1122 |
$sth->execute($form->{"id"}) || $form->dberror($query . " ($form->{id})"); |
... | ... | |
1228 | 1224 |
$main::lxdebug->leave_sub(); |
1229 | 1225 |
} |
1230 | 1226 |
|
1231 |
sub sic { |
|
1232 |
$main::lxdebug->enter_sub(); |
|
1233 |
|
|
1234 |
my ($self, $myconfig, $form) = @_; |
|
1235 |
|
|
1236 |
# connect to database |
|
1237 |
my $dbh = $form->dbconnect($myconfig); |
|
1238 |
|
|
1239 |
my $query = qq|SELECT code, sictype, description |
|
1240 |
FROM sic |
|
1241 |
ORDER BY code|; |
|
1242 |
|
|
1243 |
$sth = $dbh->prepare($query); |
|
1244 |
$sth->execute || $form->dberror($query); |
|
1245 |
|
|
1246 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
1247 |
push @{ $form->{ALL} }, $ref; |
|
1248 |
} |
|
1249 |
|
|
1250 |
$sth->finish; |
|
1251 |
$dbh->disconnect; |
|
1252 |
|
|
1253 |
$main::lxdebug->leave_sub(); |
|
1254 |
} |
|
1255 |
|
|
1256 |
sub get_sic { |
|
1257 |
$main::lxdebug->enter_sub(); |
|
1258 |
|
|
1259 |
my ($self, $myconfig, $form) = @_; |
|
1260 |
|
|
1261 |
# connect to database |
|
1262 |
my $dbh = $form->dbconnect($myconfig); |
|
1263 |
|
|
1264 |
my $query = qq|SELECT s.code, s.sictype, s.description |
|
1265 |
FROM sic s |
|
1266 |
WHERE s.code = '$form->{code}'|; |
|
1267 |
my $sth = $dbh->prepare($query); |
|
1268 |
$sth->execute || $form->dberror($query); |
|
1269 |
|
|
1270 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
|
1271 |
|
|
1272 |
map { $form->{$_} = $ref->{$_} } keys %$ref; |
|
1273 |
|
|
1274 |
$sth->finish; |
|
1275 |
|
|
1276 |
$dbh->disconnect; |
|
1277 |
|
|
1278 |
$main::lxdebug->leave_sub(); |
|
1279 |
} |
|
1280 |
|
|
1281 |
sub save_sic { |
|
1282 |
$main::lxdebug->enter_sub(); |
|
1283 |
|
|
1284 |
my ($self, $myconfig, $form) = @_; |
|
1285 |
|
|
1286 |
# connect to database |
|
1287 |
my $dbh = $form->dbconnect($myconfig); |
|
1288 |
|
|
1289 |
$form->{code} =~ s/\'/\'\'/g; |
|
1290 |
$form->{description} =~ s/\'/\'\'/g; |
|
1291 |
|
|
1292 |
# if there is an id |
|
1293 |
if ($form->{id}) { |
|
1294 |
$query = qq|UPDATE sic SET |
|
1295 |
code = '$form->{code}', |
|
1296 |
sictype = '$form->{sictype}', |
|
1297 |
description = '$form->{description}' |
|
1298 |
WHERE code = '$form->{id}'|; |
|
1299 |
} else { |
|
1300 |
$query = qq|INSERT INTO sic |
|
1301 |
(code, sictype, description) |
|
1302 |
VALUES ('$form->{code}', '$form->{sictype}', '$form->{description}')|; |
|
1303 |
} |
|
1304 |
$dbh->do($query) || $form->dberror($query); |
|
1305 |
|
|
1306 |
$dbh->disconnect; |
|
1307 |
|
|
1308 |
$main::lxdebug->leave_sub(); |
|
1309 |
} |
|
1310 |
|
|
1311 |
sub delete_sic { |
|
1312 |
$main::lxdebug->enter_sub(); |
|
1313 |
|
|
1314 |
my ($self, $myconfig, $form) = @_; |
|
1315 |
|
|
1316 |
# connect to database |
|
1317 |
my $dbh = $form->dbconnect($myconfig); |
|
1318 |
|
|
1319 |
$query = qq|DELETE FROM sic |
|
1320 |
WHERE code = '$form->{code}'|; |
|
1321 |
$dbh->do($query) || $form->dberror($query); |
|
1322 |
|
|
1323 |
$dbh->disconnect; |
|
1324 |
|
|
1325 |
$main::lxdebug->leave_sub(); |
|
1326 |
} |
|
1327 |
|
|
1328 | 1227 |
sub load_template { |
1329 | 1228 |
$main::lxdebug->enter_sub(); |
1330 | 1229 |
|
... | ... | |
1376 | 1275 |
# these defaults are database wide |
1377 | 1276 |
# user specific variables are in myconfig |
1378 | 1277 |
# save defaults |
1379 |
my $query = qq|UPDATE defaults SET
|
|
1380 |
inventory_accno_id =
|
|
1381 |
(SELECT c.id FROM chart c
|
|
1382 |
WHERE c.accno = '$form->{inventory_accno}'),
|
|
1383 |
income_accno_id =
|
|
1384 |
(SELECT c.id FROM chart c
|
|
1385 |
WHERE c.accno = '$form->{income_accno}'),
|
|
1386 |
expense_accno_id =
|
|
1387 |
(SELECT c.id FROM chart c
|
|
1388 |
WHERE c.accno = '$form->{expense_accno}'),
|
|
1389 |
fxgain_accno_id =
|
|
1390 |
(SELECT c.id FROM chart c
|
|
1391 |
WHERE c.accno = '$form->{fxgain_accno}'),
|
|
1392 |
fxloss_accno_id =
|
|
1393 |
(SELECT c.id FROM chart c
|
|
1394 |
WHERE c.accno = '$form->{fxloss_accno}'),
|
|
1395 |
invnumber = '$form->{invnumber}',
|
|
1396 |
cnnumber = '$form->{cnnumber}',
|
|
1397 |
sonumber = '$form->{sonumber}',
|
|
1398 |
ponumber = '$form->{ponumber}',
|
|
1399 |
sqnumber = '$form->{sqnumber}',
|
|
1400 |
rfqnumber = '$form->{rfqnumber}',
|
|
1401 |
customernumber = '$form->{customernumber}',
|
|
1402 |
vendornumber = '$form->{vendornumber}',
|
|
1403 |
articlenumber = '$form->{articlenumber}',
|
|
1404 |
servicenumber = '$form->{servicenumber}',
|
|
1405 |
yearend = '$form->{yearend}',
|
|
1406 |
curr = '$form->{curr}',
|
|
1407 |
businessnumber = '$form->{businessnumber}'
|
|
1408 |
|;
|
|
1409 |
$dbh->do($query) || $form->dberror($query);
|
|
1278 |
my $query = |
|
1279 |
qq|UPDATE defaults SET | .
|
|
1280 |
qq|inventory_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?), | .
|
|
1281 |
qq|income_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?), | .
|
|
1282 |
qq|expense_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?), | .
|
|
1283 |
qq|fxgain_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?), | .
|
|
1284 |
qq|fxloss_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?), | .
|
|
1285 |
qq|invnumber = ?, | .
|
|
1286 |
qq|cnnumber = ?, | .
|
|
1287 |
qq|sonumber = ?, | .
|
|
1288 |
qq|ponumber = ?, | .
|
|
1289 |
qq|sqnumber = ?, | .
|
|
1290 |
qq|rfqnumber = ?, | .
|
|
1291 |
qq|customernumber = ?, | .
|
|
1292 |
qq|vendornumber = ?, | .
|
|
1293 |
qq|articlenumber = ?, | .
|
|
1294 |
qq|servicenumber = ?, | .
|
|
1295 |
qq|yearend = ?, | .
|
|
1296 |
qq|curr = ?, | .
|
|
1297 |
qq|businessnumber = ?|;
|
|
1298 |
my @values = ($form->{inventory_accno}, $form->{income_accno},
|
|
1299 |
$form->{expense_accno},
|
|
1300 |
$form->{fxgain_accno}, $form->{fxloss_accno},
|
|
1301 |
$form->{invnumber}, $form->{cnnumber},
|
|
1302 |
$form->{sonumber}, $form->{ponumber},
|
|
1303 |
$form->{sqnumber}, $form->{rfqnumber},
|
|
1304 |
$form->{customernumber}, $form->{vendornumber},
|
|
1305 |
$form->{articlenumber}, $form->{servicenumber},
|
|
1306 |
$form->{yearend}, $form->{curr},
|
|
1307 |
$form->{businessnumber});
|
|
1308 |
do_query($form, $dbh, $query, @values);
|
|
1410 | 1309 |
|
1411 | 1310 |
# update name |
1412 |
my $name = $form->{name}; |
|
1413 |
$name =~ s/\'/\'\'/g; |
|
1414 | 1311 |
$query = qq|UPDATE employee |
1415 |
SET name = '$name' |
|
1416 |
WHERE login = '$form->{login}'|; |
|
1417 |
$dbh->do($query) || $form->dberror($query); |
|
1418 |
|
|
1419 |
# foreach my $item (split(/ /, $form->{taxaccounts})) { |
|
1420 |
# $query = qq|UPDATE tax |
|
1421 |
# SET rate = | . ($form->{$item} / 100) . qq|, |
|
1422 |
# taxnumber = '$form->{"taxnumber_$item"}' |
|
1423 |
# WHERE chart_id = $item|; |
|
1424 |
# $dbh->do($query) || $form->dberror($query); |
|
1425 |
# } |
|
1312 |
SET name = ? |
|
1313 |
WHERE login = ?|; |
|
1314 |
do_query($form, $dbh, $query, $form->{name}, $form->{login}); |
|
1426 | 1315 |
|
1427 | 1316 |
my $rc = $dbh->commit; |
1428 | 1317 |
$dbh->disconnect; |
... | ... | |
1528 | 1417 |
|
1529 | 1418 |
$query = qq|SELECT c.id, c.accno, c.description |
1530 | 1419 |
FROM chart c |
1531 |
WHERE c.category = 'I'
|
|
1532 |
AND c.charttype = 'A'
|
|
1420 |
WHERE c.category = 'I'
|
|
1421 |
AND c.charttype = 'A'
|
|
1533 | 1422 |
ORDER BY c.accno|; |
1534 | 1423 |
$sth = $dbh->prepare($query); |
1535 | 1424 |
$sth->execute || $self->dberror($query); |
... | ... | |
1544 | 1433 |
|
1545 | 1434 |
$query = qq|SELECT c.id, c.accno, c.description |
1546 | 1435 |
FROM chart c |
1547 |
WHERE c.category = 'E'
|
|
1548 |
AND c.charttype = 'A'
|
|
1436 |
WHERE c.category = 'E'
|
|
1437 |
AND c.charttype = 'A'
|
|
1549 | 1438 |
ORDER BY c.accno|; |
1550 | 1439 |
$sth = $dbh->prepare($query); |
1551 | 1440 |
$sth->execute || $self->dberror($query); |
... | ... | |
1562 | 1451 |
$query = qq|SELECT c.id, c.accno, c.description, |
1563 | 1452 |
t.rate * 100 AS rate, t.taxnumber |
1564 | 1453 |
FROM chart c, tax t |
1565 |
WHERE c.id = t.chart_id|;
|
|
1454 |
WHERE c.id = t.chart_id|;
|
|
1566 | 1455 |
|
1567 | 1456 |
$sth = $dbh->prepare($query); |
1568 | 1457 |
$sth->execute || $form->dberror($query); |
... | ... | |
1581 | 1470 |
$main::lxdebug->leave_sub(); |
1582 | 1471 |
} |
1583 | 1472 |
|
1584 |
sub backup { |
|
1585 |
$main::lxdebug->enter_sub(); |
|
1586 |
|
|
1587 |
my ($self, $myconfig, $form, $userspath) = @_; |
|
1588 |
|
|
1589 |
my $mail; |
|
1590 |
my $err; |
|
1591 |
my $boundary = time; |
|
1592 |
my $tmpfile = |
|
1593 |
"$userspath/$boundary.$myconfig->{dbname}-$form->{dbversion}.sql"; |
|
1594 |
my $out = $form->{OUT}; |
|
1595 |
$form->{OUT} = ">$tmpfile"; |
|
1596 |
|
|
1597 |
if ($form->{media} eq 'email') { |
|
1598 |
|
|
1599 |
use SL::Mailer; |
|
1600 |
$mail = new Mailer; |
|
1601 |
|
|
1602 |
$mail->{to} = qq|"$myconfig->{name}" <$myconfig->{email}>|; |
|
1603 |
$mail->{from} = qq|"$myconfig->{name}" <$myconfig->{email}>|; |
|
1604 |
$mail->{subject} = |
|
1605 |
"Lx-Office Backup / $myconfig->{dbname}-$form->{dbversion}.sql"; |
|
1606 |
@{ $mail->{attachments} } = ($tmpfile); |
|
1607 |
$mail->{version} = $form->{version}; |
|
1608 |
$mail->{fileid} = "$boundary."; |
|
1609 |
|
|
1610 |
$myconfig->{signature} =~ s/\\n/\r\n/g; |
|
1611 |
$mail->{message} = "--\n$myconfig->{signature}"; |
|
1612 |
|
|
1613 |
} |
|
1614 |
|
|
1615 |
open(OUT, "$form->{OUT}") or $form->error("$form->{OUT} : $!"); |
|
1616 |
|
|
1617 |
# get sequences, functions and triggers |
|
1618 |
open(FH, "sql/lx-office.sql") or $form->error("sql/lx-office.sql : $!"); |
|
1619 |
|
|
1620 |
my @sequences = (); |
|
1621 |
my @functions = (); |
|
1622 |
my @triggers = (); |
|
1623 |
my @indices = (); |
|
1624 |
my %tablespecs; |
|
1625 |
|
|
1626 |
my $query = ""; |
|
1627 |
my @quote_chars; |
|
1628 |
|
|
1629 |
while (<FH>) { |
|
1630 |
|
|
1631 |
# Remove DOS and Unix style line endings. |
|
1632 |
s/[\r\n]//g; |
|
1633 |
|
|
1634 |
# ignore comments or empty lines |
|
1635 |
next if /^(--.*|\s+)$/; |
|
1636 |
|
|
1637 |
for (my $i = 0; $i < length($_); $i++) { |
|
1638 |
my $char = substr($_, $i, 1); |
|
1639 |
|
|
1640 |
# Are we inside a string? |
|
1641 |
if (@quote_chars) { |
|
1642 |
if ($char eq $quote_chars[-1]) { |
|
1643 |
pop(@quote_chars); |
|
1644 |
} |
|
1645 |
$query .= $char; |
|
1646 |
|
|
1647 |
} else { |
|
1648 |
if (($char eq "'") || ($char eq "\"")) { |
|
1649 |
push(@quote_chars, $char); |
|
1650 |
|
|
1651 |
} elsif ($char eq ";") { |
|
1652 |
|
|
1653 |
# Query is complete. Check for triggers and functions. |
|
1654 |
if ($query =~ /^create\s+function\s+\"?(\w+)\"?/i) { |
|
1655 |
push(@functions, $query); |
|
1656 |
|
|
1657 |
} elsif ($query =~ /^create\s+trigger\s+\"?(\w+)\"?/i) { |
|
1658 |
push(@triggers, $query); |
|
1659 |
|
|
1660 |
} elsif ($query =~ /^create\s+sequence\s+\"?(\w+)\"?/i) { |
|
1661 |
push(@sequences, $1); |
|
1662 |
|
|
1663 |
} elsif ($query =~ /^create\s+table\s+\"?(\w+)\"?/i) { |
|
1664 |
$tablespecs{$1} = $query; |
|
1665 |
|
|
1666 |
} elsif ($query =~ /^create\s+index\s+\"?(\w+)\"?/i) { |
|
1667 |
push(@indices, $query); |
|
1668 |
|
|
1669 |
} |
|
1670 |
|
|
1671 |
$query = ""; |
|
1672 |
$char = ""; |
|
1673 |
} |
|
1674 |
|
|
1675 |
$query .= $char; |
|
1676 |
} |
|
1677 |
} |
|
1678 |
} |
|
1679 |
close(FH); |
|
1680 |
|
|
1681 |
# connect to database |
|
1682 |
my $dbh = $form->dbconnect($myconfig); |
|
1683 |
|
|
1684 |
# get all the tables |
|
1685 |
my @tables = $dbh->tables('', '', 'customer', '', { noprefix => 0 }); |
|
1686 |
|
|
1687 |
my $today = scalar localtime; |
|
1688 |
|
|
1689 |
$myconfig->{dbhost} = 'localhost' unless $myconfig->{dbhost}; |
|
1690 |
|
|
1691 |
print OUT qq|-- Lx-Office Backup |
|
1692 |
-- Dataset: $myconfig->{dbname} |
|
1693 |
-- Version: $form->{dbversion} |
|
1694 |
-- Host: $myconfig->{dbhost} |
|
1695 |
-- Login: $form->{login} |
|
1696 |
-- User: $myconfig->{name} |
|
1697 |
-- Date: $today |
|
1698 |
-- |
|
1699 |
-- set options |
|
1700 |
$myconfig->{dboptions}; |
|
1701 |
-- |
|
1702 |
|; |
|
1703 |
|
|
1704 |
print OUT "-- DROP Sequences\n"; |
|
1705 |
my $item; |
|
1706 |
foreach $item (@sequences) { |
|
1707 |
print OUT qq|DROP SEQUENCE $item;\n|; |
|
1708 |
} |
|
1709 |
|
|
1710 |
print OUT "-- DROP Triggers\n"; |
|
1711 |
|
|
1712 |
foreach $item (@triggers) { |
|
1713 |
if ($item =~ /^create\s+trigger\s+\"?(\w+)\"?\s+.*on\s+\"?(\w+)\"?\s+/i) { |
|
1714 |
print OUT qq|DROP TRIGGER "$1" ON "$2";\n|; |
|
1715 |
} |
|
1716 |
} |
|
1717 |
|
|
1718 |
print OUT "-- DROP Functions\n"; |
|
1719 |
|
|
1720 |
foreach $item (@functions) { |
|
1721 |
if ($item =~ /^create\s+function\s+\"?(\w+)\"?/i) { |
|
1722 |
print OUT qq|DROP FUNCTION "$1" ();\n|; |
|
1723 |
} |
|
1724 |
} |
|
1725 |
|
|
1726 |
foreach $table (@tables) { |
|
1727 |
if (!($table =~ /^sql_.*/)) { |
|
1728 |
my $query = qq|SELECT * FROM $table|; |
|
1729 |
|
|
1730 |
my $sth = $dbh->prepare($query); |
|
1731 |
$sth->execute || $form->dberror($query); |
|
1732 |
|
|
1733 |
$query = "INSERT INTO $table ("; |
|
1734 |
map { $query .= qq|$sth->{NAME}->[$_],| } |
|
1735 |
(0 .. $sth->{NUM_OF_FIELDS} - 1); |
|
1736 |
chop $query; |
|
1737 |
|
|
1738 |
$query .= ") VALUES"; |
|
1739 |
|
|
1740 |
if ($tablespecs{$table}) { |
|
1741 |
print(OUT "--\n"); |
|
1742 |
print(OUT "DROP TABLE $table;\n"); |
|
1743 |
print(OUT $tablespecs{$table}, ";\n"); |
|
1744 |
} else { |
|
1745 |
print(OUT "--\n"); |
|
1746 |
print(OUT "DELETE FROM $table;\n"); |
|
1747 |
} |
|
1748 |
while (my @arr = $sth->fetchrow_array) { |
|
1749 |
|
|
1750 |
$fields = "("; |
|
1751 |
foreach my $item (@arr) { |
|
1752 |
if (defined $item) { |
|
1753 |
$item =~ s/\'/\'\'/g; |
|
1754 |
$fields .= qq|'$item',|; |
|
1755 |
} else { |
|
1756 |
$fields .= 'NULL,'; |
|
1757 |
} |
|
1758 |
} |
|
1759 |
|
|
1760 |
chop $fields; |
|
1761 |
$fields .= ")"; |
|
1762 |
|
|
1763 |
print OUT qq|$query $fields;\n|; |
|
1764 |
} |
|
1765 |
|
|
1766 |
$sth->finish; |
|
1767 |
} |
|
1768 |
} |
|
1769 |
|
|
1770 |
# create indices, sequences, functions and triggers |
|
1771 |
|
|
1772 |
print(OUT "-- CREATE Indices\n"); |
|
1773 |
map({ print(OUT "$_;\n"); } @indices); |
|
1774 |
|
|
1775 |
print OUT "-- CREATE Sequences\n"; |
|
1776 |
foreach $item (@sequences) { |
|
1777 |
$query = qq|SELECT last_value FROM $item|; |
|
1778 |
$sth = $dbh->prepare($query); |
|
1779 |
$sth->execute || $form->dberror($query); |
|
1780 |
my ($id) = $sth->fetchrow_array; |
|
1781 |
$sth->finish; |
|
1782 |
|
|
1783 |
print OUT qq|-- |
|
1784 |
CREATE SEQUENCE $item START $id; |
|
1785 |
|; |
|
1786 |
} |
|
1787 |
|
|
1788 |
print OUT "-- CREATE Functions\n"; |
|
1789 |
|
|
1790 |
# functions |
|
1791 |
map { print(OUT $_, ";\n"); } @functions; |
|
1792 |
|
|
1793 |
print OUT "-- CREATE Triggers\n"; |
|
1794 |
|
|
1795 |
# triggers |
|
1796 |
map { print(OUT $_, ";\n"); } @triggers; |
|
1797 |
|
|
1798 |
close(OUT); |
|
1799 |
|
|
1800 |
$dbh->disconnect; |
|
1801 |
|
|
1802 |
# compress backup |
|
1803 |
my @args = ("gzip", "$tmpfile"); |
|
1804 |
system(@args) == 0 or $form->error("$args[0] : $?"); |
|
1805 |
|
|
1806 |
$tmpfile .= ".gz"; |
|
1807 |
|
|
1808 |
if ($form->{media} eq 'email') { |
|
1809 |
@{ $mail->{attachments} } = ($tmpfile); |
|
1810 |
$err = $mail->send($out); |
|
1811 |
} |
|
1812 |
|
|
1813 |
if ($form->{media} eq 'file') { |
|
1814 |
|
|
1815 |
open(IN, "$tmpfile") or $form->error("$tmpfile : $!"); |
|
1816 |
open(OUT, ">-") or $form->error("STDOUT : $!"); |
|
1817 |
|
|
1818 |
print OUT qq|Content-Type: application/x-tar-gzip; |
|
1819 |
Content-Disposition: attachment; filename="$myconfig->{dbname}-$form->{dbversion}.sql.gz" |
|
1820 |
|
|
1821 |
|; |
|
1822 |
|
|
1823 |
while (<IN>) { |
|
1824 |
print OUT $_; |
|
1825 |
} |
|
1826 |
|
|
1827 |
close(IN); |
|
1828 |
close(OUT); |
|
1829 |
|
|
1830 |
} |
|
1831 |
|
|
1832 |
unlink "$tmpfile"; |
|
1833 |
|
|
1834 |
$main::lxdebug->leave_sub(); |
|
1835 |
} |
|
1836 |
|
|
1837 | 1473 |
sub closedto { |
1838 | 1474 |
$main::lxdebug->enter_sub(); |
1839 | 1475 |
|
... | ... | |
1861 | 1497 |
|
1862 | 1498 |
my $dbh = $form->dbconnect($myconfig); |
1863 | 1499 |
|
1500 |
my ($query, @values); |
|
1501 |
|
|
1864 | 1502 |
if ($form->{revtrans}) { |
1503 |
$query = qq|UPDATE defaults SET closedto = NULL, revtrans = '1'|; |
|
1865 | 1504 |
|
1866 |
$query = qq|UPDATE defaults SET closedto = NULL, |
|
1867 |
revtrans = '1'|; |
|
1868 | 1505 |
} elsif ($form->{closedto}) { |
1506 |
$query = qq|UPDATE defaults SET closedto = ?, revtrans = '0'|; |
|
1507 |
@values = (conv_date($form->{closedto})); |
|
1869 | 1508 |
|
1870 |
$query = qq|UPDATE defaults SET closedto = '$form->{closedto}', |
|
1871 |
revtrans = '0'|; |
|
1872 | 1509 |
} else { |
1873 |
|
|
1874 |
$query = qq|UPDATE defaults SET closedto = NULL, |
|
1875 |
revtrans = '0'|; |
|
1510 |
$query = qq|UPDATE defaults SET closedto = NULL, revtrans = '0'|; |
|
1876 | 1511 |
} |
1877 | 1512 |
|
1878 | 1513 |
# set close in defaults |
1879 |
$dbh->do($query) || $form->dberror($query);
|
|
1514 |
do_query($form, $dbh, $query, @values);
|
|
1880 | 1515 |
|
1881 | 1516 |
$dbh->disconnect; |
1882 | 1517 |
|
... | ... | |
1987 | 1622 |
|
1988 | 1623 |
my $dbh = $form->dbconnect($myconfig); |
1989 | 1624 |
|
1625 |
map({ $_->{"in_use"} = 0; } values(%{$units})); |
|
1626 |
|
|
1990 | 1627 |
foreach my $unit (values(%{$units})) { |
1991 | 1628 |
my $base_unit = $unit->{"original_base_unit"}; |
1992 | 1629 |
while ($base_unit) { |
1630 |
$units->{$base_unit}->{"in_use"} = 1; |
|
1993 | 1631 |
$units->{$base_unit}->{"DEPENDING_UNITS"} = [] unless ($units->{$base_unit}->{"DEPENDING_UNITS"}); |
1994 | 1632 |
push(@{$units->{$base_unit}->{"DEPENDING_UNITS"}}, $unit->{"name"}); |
1995 | 1633 |
$base_unit = $units->{$base_unit}->{"original_base_unit"}; |
... | ... | |
1997 | 1635 |
} |
1998 | 1636 |
|
1999 | 1637 |
foreach my $unit (values(%{$units})) { |
2000 |
$unit->{"in_use"} = 0; |
|
2001 | 1638 |
map({ $_ = $dbh->quote($_); } @{$unit->{"DEPENDING_UNITS"}}); |
2002 | 1639 |
|
2003 | 1640 |
foreach my $table (qw(parts invoice orderitems)) { |
... | ... | |
2006 | 1643 |
if (0 == scalar(@{$unit->{"DEPENDING_UNITS"}})) { |
2007 | 1644 |
$query .= "= " . $dbh->quote($unit->{"name"}); |
2008 | 1645 |
} else { |
2009 |
$query .= "IN (" . $dbh->quote($unit->{"name"}) . "," . join(",", @{$unit->{"DEPENDING_UNITS"}}) . ")"; |
|
1646 |
$query .= "IN (" . $dbh->quote($unit->{"name"}) . "," . |
|
1647 |
join(",", map({ $dbh->quote($_) } @{$unit->{"DEPENDING_UNITS"}})) . ")"; |
|
2010 | 1648 |
} |
2011 | 1649 |
|
2012 | 1650 |
my ($count) = $dbh->selectrow_array($query); |
Auch abrufbar als: Unified diff
Verhinderung von SQL injection durch Verwendung von parametrisierten Abfragen. Entfernen der Verwaltungsfunktionen für "SIC".