Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision e71494c1

Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt

  • ID e71494c125864eaeff3afa997189cc4531363034
  • Vorgänger 3b2627d2
  • Nachfolger 89dd4ca8

Die Liste der Kreditorenbuchungen auf die Verwendung der ReportGenerator-Klasse umgestellt.

Unterschiede anzeigen:

bin/mozilla/ap.pl
31 31
#
32 32
#======================================================================
33 33

  
34
use POSIX qw(strftime);
35

  
34 36
use SL::AP;
35 37
use SL::IR;
36 38
use SL::IS;
37 39
use SL::PE;
40
use SL::ReportGenerator;
38 41

  
39 42
require "bin/mozilla/arap.pl";
40 43
require "bin/mozilla/common.pl";
41 44
require "bin/mozilla/drafts.pl";
45
require "bin/mozilla/report_generator.pl";
42 46

  
43 47
1;
44 48

  
......
1308 1312
  $lxdebug->leave_sub();
1309 1313
}
1310 1314

  
1315
sub create_subtotal_row {
1316
  $lxdebug->enter_sub();
1317

  
1318
  my ($totals, $columns, $column_alignment, $subtotal_columns, $class) = @_;
1319

  
1320
  my $row = { map { $_ => { 'data' => '', 'class' => $class, 'align' => $column_alignment->{$_}, } } @{ $columns } };
1321

  
1322
  map { $row->{$_}->{data} = $form->format_amount(\%myconfig, $totals->{$_}, 2) } @{ $subtotal_columns };
1323

  
1324
  $row->{tax}->{data} = $form->format_amount(\%myconfig, $totals->{amount} - $totals->{netamount}, 2);
1325

  
1326
  map { $totals->{$_} = 0 } @{ $subtotal_columns };
1327

  
1328
  $lxdebug->leave_sub();
1329

  
1330
  return $row;
1331
}
1332

  
1311 1333
sub ap_transactions {
1312 1334
  $lxdebug->enter_sub();
1313 1335

  
1314
  $form->{vendor} = $form->unescape($form->{vendor});
1315 1336
  ($form->{vendor}, $form->{vendor_id}) = split(/--/, $form->{vendor});
1316 1337

  
1338
  $form->{sort} ||= 'transdate';
1339

  
1317 1340
  AP->ap_transactions(\%myconfig, \%$form);
1318 1341

  
1319
  $callback =
1320
    "$form->{script}?action=ap_transactions&login=$form->{login}&password=$form->{password}";
1321
  $href = $callback;
1342
  $form->{title} = $locale->text('AP Transactions');
1322 1343

  
1344
  my $report = SL::ReportGenerator->new(\%myconfig, $form);
1345

  
1346
  my @columns =
1347
    qw(transdate id type invnumber ordnumber name netamount tax amount paid datepaid
1348
       due duedate transaction_description notes employee globalprojectnumber);
1349

  
1350
  my @hidden_variables = map { "l_${_}" } @columns;
1351
  push @hidden_variables, "l_subtotal", qw(open closed vendor invnumber ordnumber activity_description notes project_id transdatefrom transdateto);
1352

  
1353
  my $href = build_std_url('action=ap_transactions', grep { $form->{$_} } @hidden_variables);
1354

  
1355
  my %column_defs = (
1356
    'transdate'               => { 'text' => $locale->text('Date'), },
1357
    'id'                      => { 'text' => $locale->text('ID'), },
1358
    'type'                    => { 'text' => $locale->text('Type'), },
1359
    'invnumber'               => { 'text' => $locale->text('Invoice'), },
1360
    'ordnumber'               => { 'text' => $locale->text('Order'), },
1361
    'name'                    => { 'text' => $locale->text('Vendor'), },
1362
    'netamount'               => { 'text' => $locale->text('Amount'), },
1363
    'tax'                     => { 'text' => $locale->text('Tax'), },
1364
    'amount'                  => { 'text' => $locale->text('Total'), },
1365
    'paid'                    => { 'text' => $locale->text('Paid'), },
1366
    'datepaid'                => { 'text' => $locale->text('Date Paid'), },
1367
    'due'                     => { 'text' => $locale->text('Amount Due'), },
1368
    'duedate'                 => { 'text' => $locale->text('Due Date'), },
1369
    'transaction_description' => { 'text' => $locale->text('Transaction description'), },
1370
    'notes'                   => { 'text' => $locale->text('Notes'), },
1371
    'employee'                => { 'text' => $locale->text('Salesperson'), },
1372
    'globalprojectnumber'     => { 'text' => $locale->text('Project Number'), },
1373
  );
1374

  
1375
  foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid
1376
                       employee shippingpoint shipvia)) {
1377
    $column_defs{$name}->{link} = $href . "&sort=$name";
1378
  }
1379

  
1380
  my %column_alignment = map { $_ => 'right' } qw(netamount tax amount paid due);
1381

  
1382
  $form->{"l_type"} = "Y";
1383
  map { $column_defs{$_}->{visible} = $form->{"l_${_}"} ? 1 : 0 } @columns;
1384

  
1385
  $report->set_columns(%column_defs);
1386
  $report->set_column_order(@columns);
1387

  
1388
  $report->set_export_options('ap_transactions', @hidden_variables);
1389

  
1390
  my @options;
1323 1391
  if ($form->{vendor}) {
1324
    $callback .= "&vendor=" . $form->escape($form->{vendor}, 1);
1325
    $href .= "&vendor=" . $form->escape($form->{vendor});
1326
    $option .= $locale->text('Vendor') . " : $form->{vendor}";
1392
    push @options, $locale->text('Vendor') . " : $form->{vendor}";
1327 1393
  }
1328 1394
  if ($form->{department}) {
1329
    $callback .= "&department=" . $form->escape($form->{department}, 1);
1330
    $href .= "&department=" . $form->escape($form->{department});
1331 1395
    ($department) = split /--/, $form->{department};
1332
    $option .= "\n<br>" if ($option);
1333
    $option .= $locale->text('Department') . " : $department";
1396
    push @options, $locale->text('Department') . " : $department";
1334 1397
  }
1335 1398
  if ($form->{invnumber}) {
1336
    $callback .= "&invnumber=" . $form->escape($form->{invnumber}, 1);
1337
    $href .= "&invnumber=" . $form->escape($form->{invnumber});
1338
    $option .= "\n<br>" if ($option);
1339
    $option .= $locale->text('Invoice Number') . " : $form->{invnumber}";
1399
    push @options, $locale->text('Invoice Number') . " : $form->{invnumber}";
1340 1400
  }
1341 1401
  if ($form->{ordnumber}) {
1342
    $callback .= "&ordnumber=" . $form->escape($form->{ordnumber}, 1);
1343
    $href .= "&ordnumber=" . $form->escape($form->{ordnumber});
1344
    $option .= "\n<br>" if ($option);
1345
    $option .= $locale->text('Order Number') . " : $form->{ordnumber}";
1402
    push @options, $locale->text('Order Number') . " : $form->{ordnumber}";
1346 1403
  }
1347 1404
  if ($form->{notes}) {
1348
    $callback .= "&notes=" . $form->escape($form->{notes}, 1);
1349
    $href .= "&notes=" . $form->escape($form->{notes});
1350
    $option .= "\n<br>" if $option;
1351
    $option .= $locale->text('Notes') . " : $form->{notes}";
1405
    push @options, $locale->text('Notes') . " : $form->{notes}";
1406
  }
1407
  if ($form->{transaction_description}) {
1408
    push @options, $locale->text('Transaction description') . " : $form->{transaction_description}";
1352 1409
  }
1353

  
1354 1410
  if ($form->{transdatefrom}) {
1355
    $callback .= "&transdatefrom=$form->{transdatefrom}";
1356
    $href     .= "&transdatefrom=$form->{transdatefrom}";
1357
    $option   .= "\n<br>" if ($option);
1358
    $option   .=
1359
        $locale->text('From') . " "
1360
      . $locale->date(\%myconfig, $form->{transdatefrom}, 1);
1411
    push @options, $locale->text('From') . "&nbsp;" . $locale->date(\%myconfig, $form->{transdatefrom}, 1);
1361 1412
  }
1362 1413
  if ($form->{transdateto}) {
1363
    $callback .= "&transdateto=$form->{transdateto}";
1364
    $href     .= "&transdateto=$form->{transdateto}";
1365
    $option   .= "\n<br>" if ($option);
1366
    $option   .=
1367
        $locale->text('Bis') . " "
1368
      . $locale->date(\%myconfig, $form->{transdateto}, 1);
1414
    push @options, $locale->text('Bis') . "&nbsp;" . $locale->date(\%myconfig, $form->{transdateto}, 1);
1369 1415
  }
1370 1416
  if ($form->{open}) {
1371
    $callback .= "&open=$form->{open}";
1372
    $href     .= "&open=$form->{open}";
1373
    $option   .= "\n<br>" if ($option);
1374
    $option   .= $locale->text('Open');
1417
    push @options, $locale->text('Open');
1375 1418
  }
1376 1419
  if ($form->{closed}) {
1377
    $callback .= "&closed=$form->{closed}";
1378
    $href     .= "&closed=$form->{closed}";
1379
    $option   .= "\n<br>" if ($option);
1380
    $option   .= $locale->text('Closed');
1381
  }
1382
  if ($form->{globalproject_id}) {
1383
    $callback .= "&globalproject_id=" . E($form->{globalproject_id});
1384
    $href     .= "&globalproject_id=" . E($form->{globalproject_id});
1420
    push @options, $locale->text('Closed');
1385 1421
  }
1386 1422

  
1387
  @columns =
1388
    qw(transdate id type invnumber ordnumber name netamount tax amount paid datepaid
1389
       due duedate notes employee globalprojectnumber);
1423
  $report->set_options('top_info_text'        => join("\n", @options),
1424
                       'raw_bottom_info_text' => $form->parse_html_template('ap/ap_transactions_bottom'),
1425
                       'output_format'        => 'HTML',
1426
                       'title'                => $form->{title},
1427
                       'attachment_basename'  => $locale->text('invoice_list') . strftime('_%Y%m%d', localtime time),
1428
    );
1429
  $report->set_options_from_form();
1390 1430

  
1391
  $form->{"l_type"} = "Y";
1431
  # add sort and escape callback, this one we use for the add sub
1432
  $form->{callback} = $href .= "&sort=$form->{sort}";
1392 1433

  
1393
  foreach $item (@columns) {
1394
    if ($form->{"l_$item"} eq "Y") {
1395
      push @column_index, $item;
1434
  # escape callback for href
1435
  $callback = $form->escape($href);
1396 1436

  
1397
      # add column to href and callback
1398
      $callback .= "&l_$item=Y";
1399
      $href     .= "&l_$item=Y";
1400
    }
1401
  }
1437
  my @subtotal_columns = qw(netamount amount paid due);
1402 1438

  
1403
  if ($form->{l_subtotal} eq 'Y') {
1404
    $callback .= "&l_subtotal=Y";
1405
    $href     .= "&l_subtotal=Y";
1406
  }
1407

  
1408
  $column_header{id} =
1409
      qq|<th><a class=listheading href=$href&sort=id>|
1410
    . $locale->text('ID')
1411
    . qq|</a></th>|;
1412
  $column_header{transdate} =
1413
      qq|<th><a class=listheading href=$href&sort=transdate>|
1414
    . $locale->text('Date')
1415
    . qq|</a></th>|;
1416
  $column_header{type} =
1417
      "<th class=\"listheading\">" . $locale->text('Type') . "</th>";
1418
  $column_header{duedate} =
1419
      qq|<th><a class=listheading href=$href&sort=duedate>|
1420
    . $locale->text('Due Date')
1421
    . qq|</a></th>|;
1422
  $column_header{due} =
1423
    qq|<th class=listheading>| . $locale->text('Amount Due') . qq|</th>|;
1424
  $column_header{invnumber} =
1425
      qq|<th><a class=listheading href=$href&sort=invnumber>|
1426
    . $locale->text('Invoice')
1427
    . qq|</a></th>|;
1428
  $column_header{ordnumber} =
1429
      qq|<th><a class=listheading href=$href&sort=ordnumber>|
1430
    . $locale->text('Order')
1431
    . qq|</a></th>|;
1432
  $column_header{name} =
1433
      qq|<th><a class=listheading href=$href&sort=name>|
1434
    . $locale->text('Vendor')
1435
    . qq|</a></th>|;
1436
  $column_header{netamount} =
1437
    qq|<th class=listheading>| . $locale->text('Amount') . qq|</th>|;
1438
  $column_header{tax} =
1439
    qq|<th class=listheading>| . $locale->text('Tax') . qq|</th>|;
1440
  $column_header{amount} =
1441
    qq|<th class=listheading>| . $locale->text('Total') . qq|</th>|;
1442
  $column_header{paid} =
1443
    qq|<th class=listheading>| . $locale->text('Paid') . qq|</th>|;
1444
  $column_header{datepaid} =
1445
      qq|<th><a class=listheading href=$href&sort=datepaid>|
1446
    . $locale->text('Date Paid')
1447
    . qq|</a></th>|;
1448
  $column_header{notes} =
1449
    qq|<th class=listheading>| . $locale->text('Notes') . qq|</th>|;
1450
  $column_header{employee} =
1451
    "<th><a class=listheading href=$href&sort=employee>"
1452
    . $locale->text('Employee') . "</th>";
1453
  $column_header{globalprojectnumber} =
1454
    qq|<th class="listheading">| . $locale->text('Project Number') . qq|</th>|;
1455

  
1456
  $form->{title} = $locale->text('AP Transactions');
1439
  my %totals    = map { $_ => 0 } @subtotal_columns;
1440
  my %subtotals = map { $_ => 0 } @subtotal_columns;
1457 1441

  
1458
  $form->header;
1459

  
1460
  print qq|
1461
<body>
1462

  
1463
<table width=100%>
1464
  <tr>
1465
    <th class=listtop>$form->{title}</th>
1466
  </tr>
1467
  <tr height="5"></tr>
1468
  <tr>
1469
    <td>$option</td>
1470
  </tr>
1471
  <tr>
1472
    <td>
1473
      <table width=100%>
1474
	<tr class=listheading>
1475
|;
1442
  my $idx = 0;
1476 1443

  
1477
  map { print "\n$column_header{$_}" } @column_index;
1444
  foreach $ap (@{ $form->{AP} }) {
1445
    $ap->{tax} = $ap->{amount} - $ap->{netamount};
1446
    $ap->{due} = $ap->{amount} - $ap->{paid};
1478 1447

  
1479
  print qq|
1480
	</tr>
1481
|;
1448
    map { $subtotals{$_} += $ap->{$_};
1449
          $totals{$_}    += $ap->{$_} } @subtotal_columns;
1482 1450

  
1483
  # add sort and escape callback
1484
  $form->{callback} = "$callback&sort=$form->{sort}";
1485
  $callback = $form->escape($form->{callback});
1451
    map { $ap->{$_} = $form->format_amount(\%myconfig, $ap->{$_}, 2) } qw(netamount tax amount paid due);
1486 1452

  
1487
  if (@{ $form->{AP} }) {
1488
    $sameitem = $form->{AP}->[0]->{ $form->{sort} };
1489
  }
1453
    $ap->{type} =
1454
      $ap->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
1455
                       $locale->text("AP Transaction (abbreviation)");
1490 1456

  
1491
  # sums and tax on reports by Antonio Gallardo
1492
  #
1493
  foreach $ap (@{ $form->{AP} }) {
1457
    my $row = { };
1494 1458

  
1495
    if ($form->{l_subtotal} eq 'Y') {
1496
      if ($sameitem ne $ap->{ $form->{sort} }) {
1497
        &ap_subtotal;
1498
        $sameitem = $ap->{ $form->{sort} };
1499
      }
1459
    foreach my $column (@columns) {
1460
      $row->{$column} = {
1461
        'data'  => $ap->{$column},
1462
        'align' => $column_alignment{$column},
1463
      };
1500 1464
    }
1501 1465

  
1502
    $column_data{netamount} =
1503
        "<td align=right>"
1504
      . $form->format_amount(\%myconfig, $ap->{netamount}, 2, "&nbsp;")
1505
      . "</td>";
1506
    $column_data{tax} = "<td align=right>"
1507
      . $form->format_amount(\%myconfig, $ap->{amount} - $ap->{netamount},
1508
                             2, "&nbsp;")
1509
      . "</td>";
1510
    $column_data{amount} =
1511
      "<td align=right>"
1512
      . $form->format_amount(\%myconfig, $ap->{amount}, 2, "&nbsp;") . "</td>";
1513
    $column_data{paid} =
1514
      "<td align=right>"
1515
      . $form->format_amount(\%myconfig, $ap->{paid}, 2, "&nbsp;") . "</td>";
1516
    $column_data{due} = "<td align=right>"
1517
      . $form->format_amount(\%myconfig, $ap->{amount} - $ap->{paid},
1518
                             2, "&nbsp;")
1519
      . "</td>";
1520

  
1521
    $totalnetamount += $ap->{netamount};
1522
    $totalamount    += $ap->{amount};
1523
    $totalpaid      += $ap->{paid};
1524
    $totaldue       += ($ap->{amount} - $ap->{paid});
1525

  
1526
    $subtotalnetamount += $ap->{netamount};
1527
    $subtotalamount    += $ap->{amount};
1528
    $subtotalpaid      += $ap->{paid};
1529
    $subtotaldue       += ($ap->{amount} - $ap->{paid});
1530

  
1531
    $column_data{transdate} = "<td>$ap->{transdate}&nbsp;</td>";
1532
    $column_data{type} = "<td>" .
1533
      ($ap->{invoice}    ? $locale->text("Invoice (one letter abbreviation)") :
1534
                           $locale->text("AP Transaction (abbreviation)"))
1535
        . "</td>";
1536
    $column_data{duedate}   = "<td>$ap->{duedate}&nbsp;</td>";
1537
    $column_data{datepaid}  = "<td>$ap->{datepaid}&nbsp;</td>";
1538

  
1539
    $module = ($ap->{invoice}) ? "ir.pl" : $form->{script};
1540

  
1541
    $column_data{invnumber} =
1542
      qq|<td><a href="$module?action=edit&id=$ap->{id}&login=$form->{login}&password=$form->{password}&callback=$callback">$ap->{invnumber}</a></td>|;
1543
    $column_data{id}        = "<td>$ap->{id}</td>";
1544
    $column_data{ordnumber} = "<td>$ap->{ordnumber}&nbsp;</td>";
1545
    $column_data{name}      = "<td>$ap->{name}</td>";
1546
    $ap->{notes} =~ s/\r\n/<br>/g;
1547
    $column_data{notes}    = "<td>$ap->{notes}&nbsp;</td>";
1548
    $column_data{employee} = "<td>$ap->{employee}&nbsp;</td>";
1549
    $column_data{globalprojectnumber}  =
1550
      "<td>" . H($ap->{globalprojectnumber}) . "</td>";
1551

  
1552
    $i++;
1553
    $i %= 2;
1554
    print "
1555
        <tr class=listrow$i >
1556
";
1466
    $row->{invnumber}->{link} = build_std_url("script=" . ($ap->{invoice} ? 'ir.pl' : 'ap.pl'), 'action=edit')
1467
      . "&id=" . E($ap->{id}) . "&callback=${callback}";
1557 1468

  
1558
    map { print "\n$column_data{$_}" } @column_index;
1469
    my $row_set = [ $row ];
1559 1470

  
1560
    print qq|
1561
	</tr>
1562
|;
1471
    if (($form->{l_subtotal} eq 'Y')
1472
        && (($idx == (scalar @{ $form->{AP} } - 1))
1473
            || ($ap->{ $form->{sort} } ne $form->{AP}->[$idx + 1]->{ $form->{sort} }))) {
1474
      push @{ $row_set }, create_subtotal_row(\%subtotals, \@columns, \%column_alignment, \@subtotal_columns, 'listsubtotal');
1475
    }
1563 1476

  
1564
  }
1477
    $report->add_data($row_set);
1565 1478

  
1566
  if ($form->{l_subtotal} eq 'Y') {
1567
    &ap_subtotal;
1479
    $idx++;
1568 1480
  }
1569 1481

  
1570
  # print totals
1571
  print qq|
1572
        <tr class=listtotal>
1573
|;
1574

  
1575
  map { $column_data{$_} = "<td>&nbsp;</td>" } @column_index;
1576

  
1577
  $column_data{netamount} =
1578
    "<th class=listtotal align=right>"
1579
    . $form->format_amount(\%myconfig, $totalnetamount, 2, "&nbsp;") . "</th>";
1580
  $column_data{tax} = "<th class=listtotal align=right>"
1581
    . $form->format_amount(\%myconfig, $totalamount - $totalnetamount,
1582
                           2, "&nbsp;")
1583
    . "</th>";
1584
  $column_data{amount} =
1585
    "<th class=listtotal align=right>"
1586
    . $form->format_amount(\%myconfig, $totalamount, 2, "&nbsp;") . "</th>";
1587
  $column_data{paid} =
1588
    "<th class=listtotal align=right>"
1589
    . $form->format_amount(\%myconfig, $totalpaid, 2, "&nbsp;") . "</th>";
1590
  $column_data{due} =
1591
    "<th class=listtotal align=right>"
1592
    . $form->format_amount(\%myconfig, $totaldue, 2, "&nbsp;") . "</th>";
1593

  
1594
  map { print "$column_data{$_}\n" } @column_index;
1595

  
1596
  print qq|
1597
        </tr>
1598
      </table>
1599
    </td>
1600
  </tr>
1601
  <tr>
1602
    <td><hr size=3 noshade></td>
1603
  </tr>
1604
</table>
1482
  $report->add_separator();
1483
  $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal'));
1605 1484

  
1606
<br>
1607
<form method=post action=$form->{script}>
1608

  
1609
<input name=callback type=hidden value="$form->{callback}">
1610

  
1611
<input type=hidden name=login value=$form->{login}>
1612
<input type=hidden name=password value=$form->{password}>
1613

  
1614
<input class=submit type=submit name=action value="|
1615
    . $locale->text('AP Transaction') . qq|">
1616

  
1617
<input class=submit type=submit name=action value="|
1618
    . $locale->text('Vendor Invoice') . qq|">
1619

  
1620
  </form>
1621

  
1622
</body>
1623
</html>
1624
|;
1625

  
1626
  $lxdebug->leave_sub();
1627
}
1628

  
1629
sub ap_subtotal {
1630
  $lxdebug->enter_sub();
1631

  
1632
  map { $column_data{$_} = "<td>&nbsp;</td>" } @column_index;
1633

  
1634
  $column_data{netamount} =
1635
      "<th class=listsubtotal align=right>"
1636
    . $form->format_amount(\%myconfig, $subtotalnetamount, 2, "&nbsp;")
1637
    . "</th>";
1638
  $column_data{tax} = "<th class=listsubtotal align=right>"
1639
    . $form->format_amount(\%myconfig, $subtotalamount - $subtotalnetamount,
1640
                           2, "&nbsp;")
1641
    . "</th>";
1642
  $column_data{amount} =
1643
    "<th class=listsubtotal align=right>"
1644
    . $form->format_amount(\%myconfig, $subtotalamount, 2, "&nbsp;") . "</th>";
1645
  $column_data{paid} =
1646
    "<th class=listsubtotal align=right>"
1647
    . $form->format_amount(\%myconfig, $subtotalpaid, 2, "&nbsp;") . "</th>";
1648
  $column_data{due} =
1649
    "<th class=listsubtotal align=right>"
1650
    . $form->format_amount(\%myconfig, $subtotaldue, 2, "&nbsp;") . "</th>";
1651

  
1652
  $subtotalnetamount = 0;
1653
  $subtotalamount    = 0;
1654
  $subtotalpaid      = 0;
1655
  $subtotaldue       = 0;
1656

  
1657
  print "<tr class=listsubtotal>";
1658

  
1659
  map { print "\n$column_data{$_}" } @column_index;
1660

  
1661
  print qq|
1662
  </tr>
1663
|;
1485
  $report->generate_with_headers();
1664 1486

  
1665 1487
  $lxdebug->leave_sub();
1666 1488
}
locale/de/ap
1 1
$self->{texts} = {
2 2
  'ADDED'                       => 'Hinzugef?gt',
3
  'AP Transaction'              => 'Kreditorenbuchung',
4 3
  'AP Transaction (abbreviation)' => 'K',
5 4
  'AP Transactions'             => 'Kreditorenbuchungen',
6 5
  'Account'                     => 'Konto',
......
17 16
  'Bin List'                    => 'Lagerliste',
18 17
  'Bis'                         => 'bis',
19 18
  'CANCELED'                    => 'Storniert',
19
  'CSV export -- options'       => 'CSV-Export -- Optionen',
20 20
  'Cancel Accounts Payables Transaction' => 'Kreditorenbuchung stornieren',
21 21
  'Cannot delete transaction!'  => 'Buchung kann nicht gel?scht werden!',
22 22
  'Cannot post payment for a closed period!' => 'Es k?nnen keine Zahlungen f?r abgeschlossene B?cher gebucht werden!',
......
27 27
  'Confirm!'                    => 'Best?tigen Sie!',
28 28
  'Confirmation'                => 'Auftragsbest?tigung',
29 29
  'Continue'                    => 'Weiter',
30
  'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
31
  'Could not write the html2ps config file.' => 'Die tempor&auml;re html2ps-Konfigurationsdatei konnte nicht geschrieben werden.',
32
  'Could not write the temporary HTML file.' => 'Eine tempor&auml;re HTML-Datei konnte nicht geschrieben werden.',
30 33
  'Credit Limit'                => 'Kreditlimit',
31 34
  'Credit Note'                 => 'Gutschrift',
32 35
  'Currency'                    => 'W?hrung',
......
107 110
  'Order'                       => 'Auftrag',
108 111
  'Order Number'                => 'Auftragsnummer',
109 112
  'PAYMENT POSTED'              => 'Rechung gebucht',
113
  'PDF export -- options'       => 'PDF-Export -- Optionen',
110 114
  'POSTED'                      => 'Gebucht',
111 115
  'POSTED AS NEW'               => 'Als neu gebucht',
112 116
  'PRINTED'                     => 'Gedruckt',
......
134 138
  'SAVED'                       => 'Gespeichert',
135 139
  'SAVED FOR DUNNING'           => 'Gespeichert',
136 140
  'SCREENED'                    => 'Angezeigt',
141
  'Salesperson'                 => 'Verk?ufer',
137 142
  'Save draft'                  => 'Entwurf speichern',
138 143
  'Select a Customer'           => 'Endkunde ausw?hlen',
139 144
  'Select a part'               => 'Artikel ausw&auml;hlen',
......
155 160
  'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
156 161
  'Total'                       => 'Summe',
157 162
  'Transaction deleted!'        => 'Buchung gel?scht!',
163
  'Transaction description'     => 'Vorgangsbezeichnung',
158 164
  'Transaction has already been cancelled!' => 'Diese Buchung wurde bereits storniert.',
159 165
  'Transaction posted!'         => 'Buchung verbucht!',
160 166
  'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
......
166 172
  'Value'                       => 'Wert',
167 173
  'Variable'                    => 'Variable',
168 174
  'Vendor'                      => 'Lieferant',
169
  'Vendor Invoice'              => 'Einkaufsrechnung',
170 175
  'Vendor details'              => 'Lieferantendetails',
171 176
  'Vendor missing!'             => 'Lieferant fehlt!',
172 177
  'Vendor not on file or locked!' => 'Dieser Lieferant existiert nicht oder ist gesperrt.',
......
177 182
  'button'                      => '?',
178 183
  'history'                     => 'Historie',
179 184
  'invoice'                     => 'Rechnung',
185
  'invoice_list'                => 'debitorenbuchungsliste',
180 186
  'mark as paid'                => 'als bezahlt markieren',
181 187
  'no'                          => 'nein',
182 188
  'packing_list'                => 'Versandliste',
183 189
  'pick_list'                   => 'Entnahmeliste',
184 190
  'proforma'                    => 'Proforma',
185 191
  'purchase_order'              => 'Auftrag',
192
  'report_generator_nextsub is not defined.' => 'report_generator_nextsub ist nicht definiert.',
186 193
  'request_quotation'           => 'Angebotsanforderung',
187 194
  'sales_order'                 => 'Kundenauftrag',
188 195
  'sales_quotation'             => 'Verkaufsangebot',
......
197 204
  'Q'                           => 'Q',
198 205
  'add'                         => 'add',
199 206
  'add_transaction'             => 'add_transaction',
200
  'ap_subtotal'                 => 'ap_subtotal',
201 207
  'ap_transaction'              => 'ap_transaction',
202 208
  'ap_transactions'             => 'ap_transactions',
203 209
  'ar_transaction'              => 'ar_transaction',
......
208 214
  'check_project'               => 'check_project',
209 215
  'continue'                    => 'continue',
210 216
  'create_links'                => 'create_links',
217
  'create_subtotal_row'         => 'create_subtotal_row',
211 218
  'delete'                      => 'delete',
212 219
  'delete_drafts'               => 'delete_drafts',
213 220
  'delivery_customer_selection' => 'delivery_customer_selection',
......
216 223
  'draft_action_dispatcher'     => 'draft_action_dispatcher',
217 224
  'edit'                        => 'edit',
218 225
  'employee_selection_internal' => 'employee_selection_internal',
226
  'export_as_csv'               => 'export_as_csv',
227
  'export_as_pdf'               => 'export_as_pdf',
219 228
  'form_footer'                 => 'form_footer',
220 229
  'form_header'                 => 'form_header',
221 230
  'format_dates'                => 'format_dates',
......
233 242
  'project_selection_internal'  => 'project_selection_internal',
234 243
  'reformat_numbers'            => 'reformat_numbers',
235 244
  'remove_draft'                => 'remove_draft',
245
  'report_generator_do'         => 'report_generator_do',
236 246
  'sales_invoice'               => 'sales_invoice',
237 247
  'save_draft'                  => 'save_draft',
238 248
  'search'                      => 'search',
......
257 267
  'l?schen'                     => 'delete',
258 268
  'entw?rfe_l?schen'            => 'delete_drafts',
259 269
  'kreditorenbuchung_bearbeiten' => 'edit_accounts_payables_transaction',
270
  'als_csv_exportieren'         => 'export_as_csv',
271
  'als_pdf_exportieren'         => 'export_as_pdf',
260 272
  'buchen'                      => 'post',
261 273
  'zahlung_buchen'              => 'post_payment',
262 274
  'entwurf_speichern'           => 'save_draft',
templates/webpages/ap/ap_transactions_bottom_de.html
1
 <form method="post" action="ap.pl">
2

  
3
  <input name="callback" type="hidden" value="<TMPL_VAR callback>">
4

  
5
  <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
6
  <input type="hidden" name="password" value="<TMPL_VAR password ESCAPE=HTML>">
7

  
8
  Neu erfassen<br>
9

  
10
  <input class="submit" type="submit" name="action" value="Kreditorenbuchung">
11
  <input class="submit" type="submit" name="action" value="Einkaufsrechnung">
12

  
13
 </form>
14

  
15
</body>
16
</html>
templates/webpages/ap/ap_transactions_bottom_master.html
1
 <form method="post" action="ap.pl">
2

  
3
  <input name="callback" type="hidden" value="<TMPL_VAR callback>">
4

  
5
  <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
6
  <input type="hidden" name="password" value="<TMPL_VAR password ESCAPE=HTML>">
7

  
8
  <translate>Create new</translate><br>
9

  
10
  <input class="submit" type="submit" name="action" value="<translate>AP Transaction</translate>">
11
  <input class="submit" type="submit" name="action" value="<translate>Vendor Invoice</translate>">
12

  
13
 </form>
14

  
15
</body>
16
</html>

Auch abrufbar als: Unified diff