Revision 4d8a6515
Von Philip Reetz vor mehr als 17 Jahren hinzugefügt
SL/AR.pm | ||
---|---|---|
412 | 412 |
qq| a.duedate, a.netamount, a.amount, a.paid, | . |
413 | 413 |
qq| a.invoice, a.datepaid, a.terms, a.notes, a.shipvia, | . |
414 | 414 |
qq| a.shippingpoint, a.storno, a.globalproject_id, | . |
415 |
qq| a.marge_total, a.marge_percent, | . |
|
415 | 416 |
qq| a.transaction_description, | . |
416 | 417 |
qq| pr.projectnumber AS globalprojectnumber, | . |
417 | 418 |
qq| c.name, | . |
SL/IS.pm | ||
---|---|---|
551 | 551 |
my $basefactor; |
552 | 552 |
my $basqty; |
553 | 553 |
|
554 |
$form->{"marge_percent_$i"} = $form->parse_amount($myconfig, $form->{"marge_percent_$i"}) * 1; |
|
555 |
$form->{"marge_absolut_$i"} = $form->parse_amount($myconfig, $form->{"marge_absolut_$i"}) * 1; |
|
556 |
$form->{"lastcost_$i"} = $form->{"lastcost_$i"} * 1; |
|
557 |
|
|
554 | 558 |
if ($form->{storno}) { |
555 | 559 |
$form->{"qty_$i"} *= -1; |
556 | 560 |
} |
... | ... | |
688 | 692 |
qq|INSERT INTO invoice (trans_id, parts_id, description, longdescription, qty, |
689 | 693 |
sellprice, fxsellprice, discount, allocated, assemblyitem, |
690 | 694 |
unit, deliverydate, project_id, serialnumber, pricegroup_id, |
691 |
ordnumber, transdate, cusordnumber, base_qty, subtotal) |
|
692 |
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; |
|
695 |
ordnumber, transdate, cusordnumber, base_qty, subtotal, |
|
696 |
marge_percent, marge_total, lastcost) |
|
697 |
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; |
|
693 | 698 |
|
694 | 699 |
@values = (conv_i($form->{id}), conv_i($form->{"id_$i"}), |
695 | 700 |
$form->{"description_$i"}, $form->{"longdescription_$i"}, $form->{"qty_$i"}, |
... | ... | |
698 | 703 |
$form->{"unit_$i"}, conv_date($form->{"deliverydate_$i"}), conv_i($form->{"project_id_$i"}), |
699 | 704 |
$form->{"serialnumber_$i"}, conv_i($pricegroup_id), |
700 | 705 |
$form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}), |
701 |
$form->{"cusordnumber_$i"}, $baseqty, $subtotal); |
|
706 |
$form->{"cusordnumber_$i"}, $baseqty, $subtotal, |
|
707 |
$form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"}, |
|
708 |
$form->{"lastcost_$i"}); |
|
702 | 709 |
do_query($form, $dbh, $query, @values); |
703 | 710 |
|
704 | 711 |
if ($form->{lizenzen} && $form->{"licensenumber_$i"}) { |
... | ... | |
986 | 993 |
storno = ?, |
987 | 994 |
globalproject_id = ?, |
988 | 995 |
cp_id = ?, |
989 |
transaction_description = ? |
|
996 |
transaction_description = ?, |
|
997 |
marge_total = ?, |
|
998 |
marge_percent = ? |
|
990 | 999 |
WHERE id = ?|; |
991 | 1000 |
@values = ($form->{"invnumber"}, $form->{"ordnumber"}, $form->{"quonumber"}, $form->{"cusordnumber"}, |
992 | 1001 |
conv_date($form->{"invdate"}), conv_date($form->{"orddate"}), conv_date($form->{"quodate"}), |
... | ... | |
1001 | 1010 |
conv_i($form->{"employee_id"}), conv_i($form->{"salesman_id"}), |
1002 | 1011 |
$form->{"storno"} ? 't' : 'f', conv_i($form->{"globalproject_id"}), |
1003 | 1012 |
conv_i($form->{"cp_id"}), $form->{transaction_description}, |
1013 |
$form->{marge_total}, $form->{marge_percent}, |
|
1004 | 1014 |
conv_i($form->{"id"})); |
1005 | 1015 |
do_query($form, $dbh, $query, @values); |
1006 | 1016 |
|
... | ... | |
1477 | 1487 |
i.description, i.longdescription, i.qty, i.fxsellprice AS sellprice, |
1478 | 1488 |
i.discount, i.parts_id AS id, i.unit, i.deliverydate, |
1479 | 1489 |
i.project_id, i.serialnumber, i.id AS invoice_pos, i.pricegroup_id, |
1480 |
i.ordnumber, i.transdate, i.cusordnumber, i.subtotal, |
|
1490 |
i.ordnumber, i.transdate, i.cusordnumber, i.subtotal, i.lastcost,
|
|
1481 | 1491 |
|
1482 | 1492 |
p.partnumber, p.assembly, p.bin, p.notes AS partnotes, |
1483 | 1493 |
p.inventory_accno_id AS part_inventory_accno_id, p.formel, |
SL/OE.pm | ||
---|---|---|
67 | 67 |
qq| o.amount, ct.name, o.netamount, o.${vc}_id, o.globalproject_id, | . |
68 | 68 |
qq| o.closed, o.delivered, o.quonumber, o.shippingpoint, o.shipvia, | . |
69 | 69 |
qq| o.transaction_description, | . |
70 |
qq| o.marge_total, o.marge_percent, | . |
|
70 | 71 |
qq| ex.$rate AS exchangerate, | . |
71 | 72 |
qq| pr.projectnumber AS globalprojectnumber, | . |
72 | 73 |
qq| e.name AS employee | . |
... | ... | |
246 | 247 |
} |
247 | 248 |
my $baseqty = $form->{"qty_$i"} * $basefactor; |
248 | 249 |
|
250 |
$form->{"marge_percent_$i"} = $form->parse_amount($myconfig, $form->{"marge_percent_$i"}) * 1; |
|
251 |
$form->{"marge_absolut_$i"} = $form->parse_amount($myconfig, $form->{"marge_absolut_$i"}) * 1; |
|
252 |
$form->{"lastcost_$i"} = $form->{"lastcost_$i"} * 1; |
|
253 |
|
|
249 | 254 |
# set values to 0 if nothing entered |
250 | 255 |
$form->{"discount_$i"} = |
251 | 256 |
$form->parse_amount($myconfig, $form->{"discount_$i"}) / 100; |
... | ... | |
335 | 340 |
} |
336 | 341 |
$query .= qq|trans_id, parts_id, description, longdescription, qty, base_qty, | . |
337 | 342 |
qq|sellprice, discount, unit, reqdate, project_id, serialnumber, ship, | . |
338 |
qq|pricegroup_id, ordnumber, transdate, cusordnumber, subtotal) | . |
|
343 |
qq|pricegroup_id, ordnumber, transdate, cusordnumber, subtotal, | . |
|
344 |
qq|marge_percent, marge_total, lastcost) | . |
|
339 | 345 |
qq|VALUES (|; |
340 | 346 |
if($form->{"orderitems_id_$i"}) { |
341 | 347 |
$query .= qq|?,|; |
342 | 348 |
push(@values, $form->{"orderitems_id_$i"}); |
343 | 349 |
} |
344 |
$query .= qq|?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; |
|
350 |
$query .= qq|?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
|
|
345 | 351 |
push(@values, |
346 | 352 |
conv_i($form->{id}), conv_i($form->{"id_$i"}), |
347 | 353 |
$form->{"description_$i"}, $form->{"longdescription_$i"}, |
... | ... | |
350 | 356 |
$form->{"unit_$i"}, conv_date($reqdate), conv_i($form->{"project_id_$i"}), |
351 | 357 |
$form->{"serialnumber_$i"}, $form->{"ship_$i"}, conv_i($pricegroup_id), |
352 | 358 |
$form->{"ordnumber_$i"}, conv_date($form->{"transdate_$i"}), |
353 |
$form->{"cusordnumber_$i"}, $subtotal); |
|
359 |
$form->{"cusordnumber_$i"}, $subtotal, |
|
360 |
$form->{"marge_percent_$i"}, $form->{"marge_absolut_$i"}, |
|
361 |
$form->{"lastcost_$i"}); |
|
354 | 362 |
do_query($form, $dbh, $query, @values); |
355 | 363 |
|
356 | 364 |
$form->{"sellprice_$i"} = $fxsellprice; |
... | ... | |
419 | 427 |
qq|shippingpoint = ?, shipvia = ?, notes = ?, intnotes = ?, curr = ?, closed = ?, | . |
420 | 428 |
qq|delivered = ?, proforma = ?, quotation = ?, department_id = ?, language_id = ?, | . |
421 | 429 |
qq|taxzone_id = ?, shipto_id = ?, payment_id = ?, delivery_vendor_id = ?, delivery_customer_id = ?, | . |
422 |
qq|globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ?, transaction_description = ? | .
|
|
430 |
qq|globalproject_id = ?, employee_id = ?, salesman_id = ?, cp_id = ?, transaction_description = ?, marge_total = ?, marge_percent = ?| .
|
|
423 | 431 |
qq|WHERE id = ?|; |
424 | 432 |
|
425 | 433 |
@values = ($form->{ordnumber}, $form->{quonumber}, |
... | ... | |
438 | 446 |
conv_i($form->{globalproject_id}), conv_i($form->{employee_id}), |
439 | 447 |
conv_i($form->{salesman_id}), conv_i($form->{cp_id}), |
440 | 448 |
$form->{transaction_description}, |
449 |
$form->{marge_total}, $form->{marge_percent}, |
|
441 | 450 |
conv_i($form->{id})); |
442 | 451 |
do_query($form, $dbh, $query, @values); |
443 | 452 |
|
... | ... | |
767 | 776 |
qq| oe.ordnumber AS ordnumber_oe, oe.transdate AS transdate_oe, oe.cusordnumber AS cusordnumber_oe, | . |
768 | 777 |
qq| p.partnumber, p.assembly, o.description, o.qty, | . |
769 | 778 |
qq| o.sellprice, o.parts_id AS id, o.unit, o.discount, p.bin, p.notes AS partnotes, p.inventory_accno_id AS part_inventory_accno_id, | . |
770 |
qq| o.reqdate, o.project_id, o.serialnumber, o.ship, | . |
|
779 |
qq| o.reqdate, o.project_id, o.serialnumber, o.ship, o.lastcost, | .
|
|
771 | 780 |
qq| o.ordnumber, o.transdate, o.cusordnumber, o.subtotal, o.longdescription, | . |
772 | 781 |
qq| pr.projectnumber, p.formel, | . |
773 | 782 |
qq| pg.partsgroup, o.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=o.pricegroup_id) as pricegroup | . |
bin/mozilla/ar.pl | ||
---|---|---|
1340 | 1340 |
<td align=right><input name="l_shipvia" class=checkbox type=checkbox value=Y></td> |
1341 | 1341 |
<td nowrap>| . $locale->text('Ship via') . qq|</td> |
1342 | 1342 |
</tr> |
1343 |
<tr> |
|
1344 |
<td align=right><input name="l_marge_total" class=checkbox type=checkbox value=Y></td><td> | |
|
1345 |
. $locale->text('Ertrag') . qq|</td> |
|
1346 |
<td align=right><input name="l_marge_percent" class=checkbox type=checkbox value=Y></td><td> | |
|
1347 |
. $locale->text('Ertrag prozentual') . qq|</td> |
|
1348 |
</tr> |
|
1343 | 1349 |
<tr> |
1344 | 1350 |
<td align=right><input name="l_subtotal" class=checkbox type=checkbox value=Y></td> |
1345 | 1351 |
<td nowrap>| . $locale->text('Subtotal') . qq|</td> |
... | ... | |
1417 | 1423 |
@columns = |
1418 | 1424 |
qw(transdate id type invnumber ordnumber name netamount tax amount paid |
1419 | 1425 |
datepaid due duedate transaction_description notes employee shippingpoint shipvia |
1420 |
globalprojectnumber); |
|
1426 |
marge_total marge_percent globalprojectnumber);
|
|
1421 | 1427 |
|
1422 | 1428 |
my @hidden_variables = map { "l_${_}" } @columns; |
1423 | 1429 |
push @hidden_variables, "l_subtotal", qw(open closed customer invnumber ordnumber transaction_description notes project_id transdatefrom transdateto); |
... | ... | |
1444 | 1450 |
'shippingpoint' => { 'text' => $locale->text('Shipping Point'), }, |
1445 | 1451 |
'shipvia' => { 'text' => $locale->text('Ship via'), }, |
1446 | 1452 |
'globalprojectnumber' => { 'text' => $locale->text('Project Number'), }, |
1453 |
'marge_total' => { 'text' => $locale->text('Ertrag'), }, |
|
1454 |
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), }, |
|
1447 | 1455 |
); |
1448 | 1456 |
|
1449 | 1457 |
foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid |
... | ... | |
1510 | 1518 |
# escape callback for href |
1511 | 1519 |
$callback = $form->escape($href); |
1512 | 1520 |
|
1513 |
my @subtotal_columns = qw(netamount amount paid due); |
|
1521 |
my @subtotal_columns = qw(netamount amount paid due marge_total);
|
|
1514 | 1522 |
|
1515 | 1523 |
my %totals = map { $_ => 0 } @subtotal_columns; |
1516 | 1524 |
my %subtotals = map { $_ => 0 } @subtotal_columns; |
... | ... | |
1524 | 1532 |
map { $subtotals{$_} += $ar->{$_}; |
1525 | 1533 |
$totals{$_} += $ar->{$_} } @subtotal_columns; |
1526 | 1534 |
|
1527 |
map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due); |
|
1535 |
map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due marge_total marge_percent);
|
|
1528 | 1536 |
|
1529 | 1537 |
my $is_storno = $ar->{storno} && IS->is_storno(\%myconfig, $form, 'ar'); |
1530 | 1538 |
my $has_storno = $ar->{storno} && !$is_storno; |
bin/mozilla/io.pl | ||
---|---|---|
241 | 241 |
$delvar = 'reqdate'; |
242 | 242 |
} |
243 | 243 |
|
244 |
$form->{marge_total} = 0; |
|
245 |
$form->{sellprice_total} = 0; |
|
246 |
$form->{lastcost_total} = 0; |
|
244 | 247 |
my %projectnumber_labels = (); |
245 | 248 |
my @projectnumber_values = (""); |
246 | 249 |
foreach my $item (@{ $form->{"ALL_PROJECTS"} }) { |
... | ... | |
300 | 303 |
$linetotal = |
301 | 304 |
$form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces); |
302 | 305 |
$linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2); |
306 |
my $real_sellprice = $form->{"sellprice_$i"} - $discount; |
|
307 |
|
|
308 |
# marge calculations |
|
309 |
my ($marge_font_start, $marge_font_end); |
|
310 |
$form->{"lastcost_$i"} *= 1; |
|
311 |
if ($real_sellprice && ($form->{"qty_$i"} * 1)) { |
|
312 |
$form->{"marge_percent_$i"} = |
|
313 |
($real_sellprice - $form->{"lastcost_$i"}) * 100 / $real_sellprice; |
|
314 |
|
|
315 |
$myconfig{"marge_percent_warn"} = 15 |
|
316 |
unless (defined($myconfig{"marge_percent_warn"})); |
|
317 |
if ($form->{"id_$i"} && |
|
318 |
($form->{"marge_percent_$i"} < |
|
319 |
(1 * $myconfig{"marge_percent_warn"}))) { |
|
320 |
$marge_font_start = "<font color=\"#ff0000\">"; |
|
321 |
$marge_font_end = "</font>"; |
|
322 |
} |
|
323 |
} else { |
|
324 |
$form->{"marge_percent_$i"} = 0; |
|
325 |
} |
|
326 |
$form->{"marge_absolut_$i"} = |
|
327 |
($real_sellprice - $form->{"lastcost_$i"}) * $form->{"qty_$i"}; |
|
328 |
$form->{"marge_total"} += $form->{"marge_absolut_$i"}; |
|
329 |
$form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"}; |
|
330 |
$form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"}; |
|
331 |
|
|
332 |
map { |
|
333 |
$form->{"${_}_$i"} = |
|
334 |
$form->format_amount(\%myconfig, $form->{"${_}_$i"}, |
|
335 |
2) |
|
336 |
} qw(marge_absolut marge_percent); |
|
303 | 337 |
|
304 | 338 |
# convert " to " |
305 | 339 |
map { $form->{"${_}_$i"} =~ s/\"/"/g } |
... | ... | |
439 | 473 |
"id_$i", "inventory_accno_$i", "bin_$i", "partsgroup_$i", "partnotes_$i", |
440 | 474 |
"income_accno_$i", "expense_accno_$i", "listprice_$i", "assembly_$i", |
441 | 475 |
"taxaccounts_$i", "ordnumber_$i", "transdate_$i", "cusordnumber_$i", |
442 |
"longdescription_$i", "basefactor_$i")); |
|
476 |
"longdescription_$i", "basefactor_$i", "marge_absolut_$i", "marge_percent_$i", "lastcost_$i"));
|
|
443 | 477 |
|
444 | 478 |
######################################## |
445 | 479 |
# Eintrag fuer Version 2.2.0 geaendert # |
... | ... | |
492 | 526 |
my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : ""; |
493 | 527 |
print qq| |
494 | 528 |
<b>|.$locale->text('Subtotal').qq|</b> <input type="checkbox" name="subtotal_$i" value="1" "$subtotalchecked"> |
529 |
|; |
|
530 |
|
|
531 |
print qq| |
|
532 |
${marge_font_start}<b>|.$locale->text('Ertrag').qq|</b> $form->{"marge_absolut_$i"} $form->{"marge_percent_$i"} % ${marge_font_end} |
|
533 |
<b>|.$locale->text('LP').qq|</b> |.$form->format_amount(\%myconfig,$form->{"listprice_$i"},2).qq| |
|
534 |
<b>|.$locale->text('EK').qq|</b> |.$form->format_amount(\%myconfig,$form->{"lastcost_$i"},2).qq| |
|
495 | 535 |
</td> |
496 | 536 |
</tr> |
497 |
|
|
498 | 537 |
|; |
499 | 538 |
|
500 | 539 |
############## ENDE Neueintrag ################## |
... | ... | |
511 | 550 |
</tr> |
512 | 551 |
|; |
513 | 552 |
|
553 |
if (0 != ($form->{sellprice_total} * 1)) { |
|
554 |
$form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100; |
|
555 |
} |
|
556 |
|
|
514 | 557 |
$lxdebug->leave_sub(); |
515 | 558 |
} |
516 | 559 |
|
... | ... | |
647 | 690 |
my @new_fields = |
648 | 691 |
qw(bin listprice inventory_accno income_accno expense_accno unit weight |
649 | 692 |
assembly taxaccounts partsgroup formel longdescription not_discountable |
650 |
part_payment_id partnotes id); |
|
693 |
part_payment_id partnotes id lastcost);
|
|
651 | 694 |
push(@new_fields, "lizenzen") if ($lizenzen); |
652 | 695 |
|
653 | 696 |
print join "\n", map { $cgi->hidden("-name" => "new_${_}_$i", "-value" => $ref->{$_}) } @new_fields; |
... | ... | |
946 | 989 |
my @a = (); |
947 | 990 |
my $count = 0; |
948 | 991 |
my @flds = ( |
949 |
qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor) |
|
992 |
qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor marge_absolut marge_percent lastcost )
|
|
950 | 993 |
); |
951 | 994 |
|
952 | 995 |
|
bin/mozilla/is.pl | ||
---|---|---|
923 | 923 |
</tr> |
924 | 924 |
</table> |
925 | 925 |
</td> |
926 |
<td align="right" width="100%"> |
|
926 |
<td> |
|
927 |
<table> |
|
928 |
<tr> |
|
929 |
<th align=left>| . $locale->text('Ertrag') . qq|</th> |
|
930 |
<td>| . $form->format_amount(\%myconfig, $form->{marge_total}, 2, 0) . qq|</td> |
|
931 |
</tr> |
|
932 |
<tr> |
|
933 |
<th align=left>| . $locale->text('Ertrag prozentual') . qq|</th> |
|
934 |
<td>| . $form->format_amount(\%myconfig, $form->{marge_percent}, 2, 0) . qq| %</td> |
|
935 |
</tr> |
|
936 |
<input type=hidden name="marge_total" value="$form->{"marge_total"}"> |
|
937 |
<input type=hidden name="marge_percent" value="$form->{"marge_percent"}"> |
|
938 |
</table> |
|
939 |
</td> |
|
940 |
<td align="right"> |
|
927 | 941 |
$taxincluded |
928 |
<table width="100%">
|
|
942 |
<table> |
|
929 | 943 |
$subtotal |
930 | 944 |
$tax |
931 | 945 |
<tr> |
bin/mozilla/oe.pl | ||
---|---|---|
1010 | 1010 |
</tr> |
1011 | 1011 |
</table> |
1012 | 1012 |
</td> |
1013 |
<td align=right width=100%> |
|
1013 |
<td> |
|
1014 |
<table> |
|
1015 |
<tr> |
|
1016 |
<th align=left>| . $locale->text('Ertrag') . qq|</th> |
|
1017 |
<td>| . $form->format_amount(\%myconfig, $form->{marge_total}, 2, 0) . qq|</td> |
|
1018 |
</tr> |
|
1019 |
<tr> |
|
1020 |
<th align=left>| . $locale->text('Ertrag prozentual') . qq|</th> |
|
1021 |
<td>| . $form->format_amount(\%myconfig, $form->{marge_percent}, 2, 0) . qq| %</td> |
|
1022 |
</tr> |
|
1023 |
<input type=hidden name="marge_total" value="$form->{"marge_total"}"> |
|
1024 |
<input type=hidden name="marge_percent" value="$form->{"marge_percent"}"> |
|
1025 |
</table> |
|
1026 |
</td> |
|
1027 |
<td align=right> |
|
1014 | 1028 |
$taxincluded |
1015 |
<table width=100%>
|
|
1029 |
<table> |
|
1016 | 1030 |
$subtotal |
1017 | 1031 |
$tax |
1018 | 1032 |
<tr> |
... | ... | |
1534 | 1548 |
. $locale->text('Total') . qq|</td> |
1535 | 1549 |
</tr> |
1536 | 1550 |
<tr> |
1551 |
<td><input name="l_marge_total" class=checkbox type=checkbox value=Y> | |
|
1552 |
. $locale->text('Ertrag') . qq|</td> |
|
1553 |
<td><input name="l_marge_percent" class=checkbox type=checkbox value=Y> | |
|
1554 |
. $locale->text('Ertrag prozentual') . qq|</td> |
|
1555 |
</tr> |
|
1556 |
<tr> |
|
1537 | 1557 |
<td><input name="l_globalprojectnumber" class=checkbox type=checkbox value=Y> | |
1538 | 1558 |
. $locale->text('Project Number') . qq|</td> |
1539 | 1559 |
<td><input name="l_transaction_description" class=checkbox type=checkbox value=Y> | |
... | ... | |
1611 | 1631 |
"curr", "employee", |
1612 | 1632 |
"shipvia", "globalprojectnumber", |
1613 | 1633 |
"transaction_description", "open", |
1614 |
"delivered" |
|
1634 |
"delivered", "marge_total", "marge_percent"
|
|
1615 | 1635 |
); |
1616 | 1636 |
|
1617 | 1637 |
# only show checkboxes if gotten here via sales_order form. |
... | ... | |
1669 | 1689 |
'transaction_description' => { 'text' => $locale->text('Transaction description'), }, |
1670 | 1690 |
'open' => { 'text' => $locale->text('Open'), }, |
1671 | 1691 |
'delivered' => { 'text' => $locale->text('Delivered'), }, |
1692 |
'marge_total' => { 'text' => $locale->text('Ertrag'), }, |
|
1693 |
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), } |
|
1672 | 1694 |
); |
1673 | 1695 |
|
1674 | 1696 |
foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee shipvia)) { |
... | ... | |
1742 | 1764 |
# escape callback for href |
1743 | 1765 |
$callback = $form->escape($href); |
1744 | 1766 |
|
1745 |
my @subtotal_columns = qw(netamount amount); |
|
1767 |
my @subtotal_columns = qw(netamount amount marge_total);
|
|
1746 | 1768 |
|
1747 | 1769 |
my %totals = map { $_ => 0 } @subtotal_columns; |
1748 | 1770 |
my %subtotals = map { $_ => 0 } @subtotal_columns; |
... | ... | |
1761 | 1783 |
map { $subtotals{$_} += $oe->{$_}; |
1762 | 1784 |
$totals{$_} += $oe->{$_} } @subtotal_columns; |
1763 | 1785 |
|
1764 |
map { $oe->{$_} = $form->format_amount(\%myconfig, $oe->{$_}, 2) } qw(netamount tax amount); |
|
1786 |
map { $oe->{$_} = $form->format_amount(\%myconfig, $oe->{$_}, 2) } qw(netamount tax amount marge_total marge_percent);
|
|
1765 | 1787 |
|
1766 | 1788 |
my $row = { }; |
1767 | 1789 |
|
locale/de/all | ||
---|---|---|
413 | 413 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
414 | 414 |
'EAN' => 'EAN', |
415 | 415 |
'EAN-Code' => 'EAN-Code', |
416 |
'EK' => 'EK', |
|
416 | 417 |
'ELSE' => 'Zusatz', |
417 | 418 |
'ELSTER Export (Taxbird)' => 'ELSTER-Export nach Taxbird', |
418 | 419 |
'ELSTER Export (Winston)' => 'ELSTER Export nach Winston', |
... | ... | |
475 | 476 |
'Error' => 'Fehler', |
476 | 477 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
477 | 478 |
'Error!' => 'Fehler!', |
479 |
'Ertrag' => 'Ertrag', |
|
480 |
'Ertrag prozentual' => 'Ertrag prozentual', |
|
478 | 481 |
'Escape character' => 'Escape-Zeichen', |
479 | 482 |
'Exch' => 'Wechselkurs.', |
480 | 483 |
'Exchangerate' => 'Wechselkurs', |
... | ... | |
618 | 621 |
'Korrektur' => 'Korrektur', |
619 | 622 |
'Kundennummer' => 'Kundennummer', |
620 | 623 |
'L' => 'L', |
624 |
'LP' => 'LP', |
|
621 | 625 |
'LaTeX Templates' => 'LaTeX-Vorlagen', |
622 | 626 |
'Landscape' => 'Querformat', |
623 | 627 |
'Language' => 'Sprache', |
locale/de/ar | ||
---|---|---|
61 | 61 |
'Edit Accounts Receivables Transaction' => 'Debitorenbuchung bearbeiten', |
62 | 62 |
'Enter longdescription' => 'Langtext eingeben', |
63 | 63 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
64 |
'Ertrag' => 'Ertrag', |
|
65 |
'Ertrag prozentual' => 'Ertrag prozentual', |
|
64 | 66 |
'Exch' => 'Wechselkurs.', |
65 | 67 |
'Exchangerate' => 'Wechselkurs', |
66 | 68 |
'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs f?r die Bezahlung!', |
locale/de/dn | ||
---|---|---|
58 | 58 |
'Dunning overview' => 'Mahnungs?bersicht', |
59 | 59 |
'E-mail' => 'eMail', |
60 | 60 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
61 |
'EK' => 'EK', |
|
61 | 62 |
'ELSE' => 'Zusatz', |
62 | 63 |
'Edit Dunning Process Config' => 'Mahnwesenkonfiguration bearbeiten', |
63 | 64 |
'Enter longdescription' => 'Langtext eingeben', |
64 | 65 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
66 |
'Ertrag' => 'Ertrag', |
|
65 | 67 |
'Extended' => 'Gesamt', |
66 | 68 |
'Falsches Datumsformat!' => 'Falsches Datumsformat!', |
67 | 69 |
'Fax' => 'Fax', |
... | ... | |
85 | 87 |
'Jun' => 'Jun', |
86 | 88 |
'June' => 'Juni', |
87 | 89 |
'L' => 'L', |
90 |
'LP' => 'LP', |
|
88 | 91 |
'License' => 'Lizenz', |
89 | 92 |
'MAILED' => 'Gesendet', |
90 | 93 |
'Mar' => 'M?rz', |
locale/de/ic | ||
---|---|---|
61 | 61 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
62 | 62 |
'EAN' => 'EAN', |
63 | 63 |
'EAN-Code' => 'EAN-Code', |
64 |
'EK' => 'EK', |
|
64 | 65 |
'ELSE' => 'Zusatz', |
65 | 66 |
'Edit ' => 'Bearbeiten', |
66 | 67 |
'Edit Assembly' => 'Erzeugnis bearbeiten', |
... | ... | |
68 | 69 |
'Edit Service' => 'Dienstleistung bearbeiten', |
69 | 70 |
'Enter longdescription' => 'Langtext eingeben', |
70 | 71 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
72 |
'Ertrag' => 'Ertrag', |
|
71 | 73 |
'Expense' => 'Aufwandskonto', |
72 | 74 |
'Extended' => 'Gesamt', |
73 | 75 |
'Fax' => 'Fax', |
... | ... | |
98 | 100 |
'Jun' => 'Jun', |
99 | 101 |
'June' => 'Juni', |
100 | 102 |
'L' => 'L', |
103 |
'LP' => 'LP', |
|
101 | 104 |
'Language Values' => 'Sprach?bersetzungen', |
102 | 105 |
'Last Cost' => 'Einkaufspreis', |
103 | 106 |
'License' => 'Lizenz', |
locale/de/io | ||
---|---|---|
37 | 37 |
'Discount' => 'Rabatt', |
38 | 38 |
'E-mail' => 'eMail', |
39 | 39 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
40 |
'EK' => 'EK', |
|
40 | 41 |
'ELSE' => 'Zusatz', |
41 | 42 |
'Enter longdescription' => 'Langtext eingeben', |
42 | 43 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
44 |
'Ertrag' => 'Ertrag', |
|
43 | 45 |
'Extended' => 'Gesamt', |
44 | 46 |
'Fax' => 'Fax', |
45 | 47 |
'Feb' => 'Feb', |
... | ... | |
58 | 60 |
'Jun' => 'Jun', |
59 | 61 |
'June' => 'Juni', |
60 | 62 |
'L' => 'L', |
63 |
'LP' => 'LP', |
|
61 | 64 |
'License' => 'Lizenz', |
62 | 65 |
'MAILED' => 'Gesendet', |
63 | 66 |
'Mar' => 'M?rz', |
locale/de/ir | ||
---|---|---|
59 | 59 |
'Due Date' => 'F?lligkeitsdatum', |
60 | 60 |
'E-mail' => 'eMail', |
61 | 61 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
62 |
'EK' => 'EK', |
|
62 | 63 |
'ELSE' => 'Zusatz', |
63 | 64 |
'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten', |
64 | 65 |
'Employee' => 'Bearbeiter', |
65 | 66 |
'Enter longdescription' => 'Langtext eingeben', |
66 | 67 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
68 |
'Ertrag' => 'Ertrag', |
|
67 | 69 |
'Exch' => 'Wechselkurs.', |
68 | 70 |
'Exchangerate' => 'Wechselkurs', |
69 | 71 |
'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs f?r die Bezahlung!', |
... | ... | |
92 | 94 |
'Jun' => 'Jun', |
93 | 95 |
'June' => 'Juni', |
94 | 96 |
'L' => 'L', |
97 |
'LP' => 'LP', |
|
95 | 98 |
'License' => 'Lizenz', |
96 | 99 |
'MAILED' => 'Gesendet', |
97 | 100 |
'Mar' => 'M?rz', |
locale/de/is | ||
---|---|---|
71 | 71 |
'Dunning Amount' => 'gemahnter Betrag', |
72 | 72 |
'E-mail' => 'eMail', |
73 | 73 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
74 |
'EK' => 'EK', |
|
74 | 75 |
'ELSE' => 'Zusatz', |
75 | 76 |
'Edit Credit Note' => 'Gutschrift bearbeiten', |
76 | 77 |
'Edit Sales Invoice' => 'Rechnung bearbeiten', |
... | ... | |
79 | 80 |
'Employee' => 'Bearbeiter', |
80 | 81 |
'Enter longdescription' => 'Langtext eingeben', |
81 | 82 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
83 |
'Ertrag' => 'Ertrag', |
|
84 |
'Ertrag prozentual' => 'Ertrag prozentual', |
|
82 | 85 |
'Exch' => 'Wechselkurs.', |
83 | 86 |
'Exchangerate' => 'Wechselkurs', |
84 | 87 |
'Exchangerate for payment missing!' => 'Es fehlt der Wechselkurs f?r die Bezahlung!', |
... | ... | |
108 | 111 |
'Jun' => 'Jun', |
109 | 112 |
'June' => 'Juni', |
110 | 113 |
'L' => 'L', |
114 |
'LP' => 'LP', |
|
111 | 115 |
'License' => 'Lizenz', |
112 | 116 |
'MAILED' => 'Gesendet', |
113 | 117 |
'Mar' => 'M?rz', |
locale/de/oe | ||
---|---|---|
75 | 75 |
'Dunning Amount' => 'gemahnter Betrag', |
76 | 76 |
'E-mail' => 'eMail', |
77 | 77 |
'E-mail address missing!' => 'E-Mail-Adresse fehlt!', |
78 |
'EK' => 'EK', |
|
78 | 79 |
'ELSE' => 'Zusatz', |
79 | 80 |
'Edit Purchase Order' => 'Lieferantenaufrag bearbeiten', |
80 | 81 |
'Edit Quotation' => 'Angebot bearbeiten', |
... | ... | |
87 | 88 |
'Employee' => 'Bearbeiter', |
88 | 89 |
'Enter longdescription' => 'Langtext eingeben', |
89 | 90 |
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s', |
91 |
'Ertrag' => 'Ertrag', |
|
92 |
'Ertrag prozentual' => 'Ertrag prozentual', |
|
90 | 93 |
'Exchangerate' => 'Wechselkurs', |
91 | 94 |
'Exchangerate missing!' => 'Es fehlt der Wechselkurs!', |
92 | 95 |
'Extended' => 'Gesamt', |
... | ... | |
112 | 115 |
'Jun' => 'Jun', |
113 | 116 |
'June' => 'Juni', |
114 | 117 |
'L' => 'L', |
118 |
'LP' => 'LP', |
|
115 | 119 |
'License' => 'Lizenz', |
116 | 120 |
'MAILED' => 'Gesendet', |
117 | 121 |
'Mar' => 'M?rz', |
sql/Pg-upgrade2/marge_initial.sql | ||
---|---|---|
1 |
-- @tag: marge_initial |
|
2 |
-- @description: Anzeigen des Ertrages pro Position bei Rechnungen und Auftraegen |
|
3 |
-- @depends: status_history |
|
4 |
ALTER TABLE ar add column marge_total NUMERIC(15,5); |
|
5 |
ALTER TABLE ar add column marge_percent NUMERIC(15,5); |
|
6 |
|
|
7 |
ALTER TABLE oe add column marge_total NUMERIC(15,5); |
|
8 |
ALTER TABLE oe add column marge_percent NUMERIC(15,5); |
|
9 |
|
|
10 |
ALTER TABLE invoice add column marge_total NUMERIC(15,5); |
|
11 |
ALTER TABLE invoice add column marge_percent NUMERIC(15,5); |
|
12 |
ALTER TABLE invoice add column lastcost NUMERIC(15,5); |
|
13 |
|
|
14 |
ALTER TABLE orderitems add column marge_total NUMERIC(15,5); |
|
15 |
ALTER TABLE orderitems add column marge_percent NUMERIC(15,5); |
|
16 |
ALTER TABLE orderitems add column lastcost NUMERIC(15,5); |
Auch abrufbar als: Unified diff
Erweiterung um Anzeige des Ertrages im Verkauf