Revision 52983c08
Von Sven Schöling vor etwa 17 Jahren hinzugefügt
SL/IS.pm | ||
---|---|---|
1376 | 1376 |
map { $form->{$_} = $ref->{$_} } keys %{ $ref }; |
1377 | 1377 |
|
1378 | 1378 |
|
1379 |
$form->{exchangerate} = |
|
1380 |
$form->get_exchangerate($dbh, $form->{currency}, $form->{invdate}, "buy"); |
|
1379 |
$form->{exchangerate} = $form->get_exchangerate($dbh, $form->{currency}, $form->{invdate}, "buy"); |
|
1381 | 1380 |
|
1382 | 1381 |
# get shipto |
1383 | 1382 |
$query = qq|SELECT * FROM shipto WHERE (trans_id = ?) AND (module = 'AR')|; |
... | ... | |
1387 | 1386 |
|
1388 | 1387 |
foreach my $vc (qw(customer vendor)) { |
1389 | 1388 |
next if !$form->{"delivery_${vc}_id"}; |
1390 |
($form->{"delivery_${vc}_string"}) |
|
1391 |
= selectrow_query($form, $dbh, qq|SELECT name FROM customer WHERE id = ?|, $id); |
|
1389 |
($form->{"delivery_${vc}_string"}) = selectrow_query($form, $dbh, qq|SELECT name FROM customer WHERE id = ?|, $id); |
|
1392 | 1390 |
} |
1393 | 1391 |
|
1394 | 1392 |
# get printed, emailed |
1395 |
$query = |
|
1396 |
qq|SELECT printed, emailed, spoolfile, formname |
|
1397 |
FROM status |
|
1398 |
WHERE trans_id = ?|; |
|
1393 |
$query = qq|SELECT printed, emailed, spoolfile, formname FROM status WHERE trans_id = ?|; |
|
1399 | 1394 |
$sth = prepare_execute_query($form, $dbh, $query, $id); |
1400 | 1395 |
|
1401 | 1396 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
1402 | 1397 |
$form->{printed} .= "$ref->{formname} " if $ref->{printed}; |
1403 | 1398 |
$form->{emailed} .= "$ref->{formname} " if $ref->{emailed}; |
1404 |
$form->{queued} .= "$ref->{formname} $ref->{spoolfile} " |
|
1405 |
if $ref->{spoolfile}; |
|
1399 |
$form->{queued} .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile}; |
|
1406 | 1400 |
} |
1407 | 1401 |
$sth->finish; |
1408 | 1402 |
map { $form->{$_} =~ s/ +$//g } qw(printed emailed queued); |
1409 | 1403 |
|
1410 |
my $transdate = |
|
1411 |
$form->{deliverydate} ? $dbh->quote($form->{deliverydate}) :
|
|
1412 |
$form->{invdate} ? $dbh->quote($form->{invdate}) :
|
|
1413 |
"current_date"; |
|
1404 |
my $transdate = $form->{deliverydate} ? $dbh->quote($form->{deliverydate})
|
|
1405 |
: $form->{invdate} ? $dbh->quote($form->{invdate})
|
|
1406 |
: "current_date";
|
|
1407 |
|
|
1414 | 1408 |
|
1415 | 1409 |
my $taxzone_id = $form->{taxzone_id} *= 1; |
1416 | 1410 |
$taxzone_id = 0 if (0 > $taxzone_id) || (3 < $taxzone_id); |
... | ... | |
1418 | 1412 |
# retrieve individual items |
1419 | 1413 |
$query = |
1420 | 1414 |
qq|SELECT |
1421 |
c1.accno AS inventory_accno, |
|
1422 |
c1.new_chart_id AS inventory_new_chart, |
|
1423 |
date($transdate) - c1.valid_from AS inventory_valid, |
|
1424 |
|
|
1425 |
c2.accno AS income_accno, |
|
1426 |
c2.new_chart_id AS income_new_chart, |
|
1427 |
date($transdate) - c2.valid_from as income_valid, |
|
1428 |
|
|
1429 |
c3.accno AS expense_accno, |
|
1430 |
c3.new_chart_id AS expense_new_chart, |
|
1431 |
date($transdate) - c3.valid_from AS expense_valid, |
|
1415 |
c1.accno AS inventory_accno, c1.new_chart_id AS inventory_new_chart, date($transdate) - c1.valid_from AS inventory_valid, |
|
1416 |
c2.accno AS income_accno, c2.new_chart_id AS income_new_chart, date($transdate) - c2.valid_from as income_valid, |
|
1417 |
c3.accno AS expense_accno, c3.new_chart_id AS expense_new_chart, date($transdate) - c3.valid_from AS expense_valid, |
|
1432 | 1418 |
|
1433 |
i.description, i.longdescription, i.qty, i.fxsellprice AS sellprice, |
|
1434 |
i.discount, i.parts_id AS id, i.unit, i.deliverydate, |
|
1435 |
i.project_id, i.serialnumber, i.id AS invoice_pos, i.pricegroup_id, |
|
1436 |
i.ordnumber, i.transdate, i.cusordnumber, i.subtotal, i.lastcost, |
|
1437 |
|
|
1438 |
p.partnumber, p.assembly, p.bin, p.notes AS partnotes, |
|
1439 |
p.inventory_accno_id AS part_inventory_accno_id, p.formel, |
|
1440 |
|
|
1441 |
pr.projectnumber, |
|
1442 |
pg.partsgroup, |
|
1443 |
prg.pricegroup |
|
1419 |
i.description, i.longdescription, i.qty, i.fxsellprice AS sellprice, i.discount, i.parts_id AS id, i.unit, i.deliverydate, |
|
1420 |
i.project_id, i.serialnumber, i.id AS invoice_pos, i.pricegroup_id, i.ordnumber, i.transdate, i.cusordnumber, i.subtotal, i.lastcost, |
|
1421 |
p.partnumber, p.assembly, p.bin, p.notes AS partnotes, p.inventory_accno_id AS part_inventory_accno_id, p.formel, |
|
1422 |
pr.projectnumber, pg.partsgroup, prg.pricegroup |
|
1444 | 1423 |
|
1445 | 1424 |
FROM invoice i |
1446 | 1425 |
LEFT JOIN parts p ON (i.parts_id = p.id) |
... | ... | |
1448 | 1427 |
LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) |
1449 | 1428 |
LEFT JOIN pricegroup prg ON (i.pricegroup_id = prg.id) |
1450 | 1429 |
|
1451 |
LEFT JOIN chart c1 ON |
|
1452 |
((SELECT inventory_accno_id |
|
1453 |
FROM buchungsgruppen |
|
1454 |
WHERE id = p.buchungsgruppen_id) = c1.id) |
|
1455 |
LEFT JOIN chart c2 ON |
|
1456 |
((SELECT income_accno_id_${taxzone_id} |
|
1457 |
FROM buchungsgruppen |
|
1458 |
WHERE id=p.buchungsgruppen_id) = c2.id) |
|
1459 |
LEFT JOIN chart c3 ON |
|
1460 |
((SELECT expense_accno_id_${taxzone_id} |
|
1461 |
FROM buchungsgruppen |
|
1462 |
WHERE id = p.buchungsgruppen_id) = c3.id) |
|
1463 |
|
|
1464 |
WHERE (i.trans_id = ?) |
|
1465 |
AND NOT (i.assemblyitem = '1') |
|
1466 |
ORDER BY i.id|; |
|
1430 |
LEFT JOIN chart c1 ON ((SELECT inventory_accno_id FROM buchungsgruppen WHERE id = p.buchungsgruppen_id) = c1.id) |
|
1431 |
LEFT JOIN chart c2 ON ((SELECT income_accno_id_${taxzone_id} FROM buchungsgruppen WHERE id = p.buchungsgruppen_id) = c2.id) |
|
1432 |
LEFT JOIN chart c3 ON ((SELECT expense_accno_id_${taxzone_id} FROM buchungsgruppen WHERE id = p.buchungsgruppen_id) = c3.id) |
|
1433 |
|
|
1434 |
WHERE (i.trans_id = ?) AND NOT (i.assemblyitem = '1') ORDER BY i.id|; |
|
1467 | 1435 |
|
1468 | 1436 |
$sth = prepare_execute_query($form, $dbh, $query, $id); |
1469 | 1437 |
|
1470 | 1438 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
1471 |
if (!$ref->{"part_inventory_accno_id"}) { |
|
1472 |
map({ delete($ref->{$_}); } qw(inventory_accno inventory_new_chart inventory_valid)); |
|
1473 |
} |
|
1439 |
map({ delete($ref->{$_}); } qw(inventory_accno inventory_new_chart inventory_valid)) if !$ref->{"part_inventory_accno_id"}; |
|
1474 | 1440 |
delete($ref->{"part_inventory_accno_id"}); |
1475 | 1441 |
|
1476 | 1442 |
foreach my $type (qw(inventory income expense)) { |
1477 | 1443 |
while ($ref->{"${type}_new_chart"} && ($ref->{"${type}_valid"} >=0)) { |
1478 |
my $query = |
|
1479 |
qq|SELECT accno, new_chart_id, date($transdate) - valid_from |
|
1480 |
FROM chart |
|
1481 |
WHERE id = ?|; |
|
1482 |
($ref->{"${type}_accno"}, |
|
1483 |
$ref->{"${type}_new_chart"}, |
|
1484 |
$ref->{"${type}_valid"}) |
|
1485 |
= selectrow_query($form, $dbh, $query, $ref->{"${type}_new_chart"}); |
|
1444 |
my $query = qq|SELECT accno, new_chart_id, date($transdate) - valid_from FROM chart WHERE id = ?|; |
|
1445 |
@$ref{ map $type.$_, qw(_accno _new_chart _valid) } = selectrow_query($form, $dbh, $query, $ref->{"${type}_new_chart"}); |
|
1486 | 1446 |
} |
1487 | 1447 |
} |
1488 | 1448 |
|
1489 | 1449 |
# get tax rates and description |
1490 |
my $accno_id = |
|
1491 |
($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno}; |
|
1450 |
my $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno}; |
|
1492 | 1451 |
$query = |
1493 |
qq|SELECT c.accno, t.taxdescription, t.rate, t.taxnumber |
|
1494 |
FROM tax t |
|
1452 |
qq|SELECT c.accno, t.taxdescription, t.rate, t.taxnumber FROM tax t |
|
1495 | 1453 |
LEFT JOIN chart c ON (c.id = t.chart_id) |
1496 | 1454 |
WHERE t.id IN |
1497 |
(SELECT tk.tax_id |
|
1498 |
FROM taxkeys tk |
|
1499 |
WHERE tk.chart_id = (SELECT id FROM chart WHERE accno = ?) |
|
1455 |
(SELECT tk.tax_id FROM taxkeys tk |
|
1456 |
WHERE tk.chart_id = (SELECT id FROM chart WHERE accno = ?) |
|
1500 | 1457 |
AND startdate <= date($transdate) |
1501 |
ORDER BY startdate DESC |
|
1502 |
LIMIT 1) |
|
1458 |
ORDER BY startdate DESC LIMIT 1) |
|
1503 | 1459 |
ORDER BY c.accno|; |
1504 | 1460 |
my $stw = prepare_execute_query($form, $dbh, $query, $accno_id); |
1505 | 1461 |
$ref->{taxaccounts} = ""; |
1506 | 1462 |
my $i=0; |
1507 | 1463 |
while ($ptr = $stw->fetchrow_hashref(NAME_lc)) { |
1508 | 1464 |
|
1509 |
# if ($customertax{$ref->{accno}}) { |
|
1510 | 1465 |
if (($ptr->{accno} eq "") && ($ptr->{rate} == 0)) { |
1511 | 1466 |
$i++; |
1512 | 1467 |
$ptr->{accno} = $i; |
... | ... | |
1523 | 1478 |
} |
1524 | 1479 |
|
1525 | 1480 |
if ($form->{lizenzen}) { |
1526 |
$query = |
|
1527 |
qq|SELECT l.licensenumber, l.id AS licenseid |
|
1528 |
FROM license l, licenseinvoice li |
|
1529 |
WHERE l.id = li.license_id AND li.trans_id = ?|; |
|
1530 |
my ($licensenumber, $licenseid) |
|
1531 |
= selectrow_query($form, $dbh, $query, conv_i($ref->{invoice_pos})); |
|
1481 |
$query = qq|SELECT l.licensenumber, l.id AS licenseid FROM license l, licenseinvoice li WHERE l.id = li.license_id AND li.trans_id = ?|; |
|
1482 |
my ($licensenumber, $licenseid) = selectrow_query($form, $dbh, $query, conv_i($ref->{invoice_pos})); |
|
1532 | 1483 |
$ref->{lizenzen} = "<option value=\"$licenseid\">$licensenumber</option>"; |
1533 | 1484 |
} |
1534 | 1485 |
|
Auch abrufbar als: Unified diff
Kosmetikmerge aus Revisionen 5187, 5191, 5193, 5194, 5218, 5219, 5222, 5228, 5229