Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 626e0240

Von Stephan Köhler vor fast 19 Jahren hinzugefügt

  • ID 626e02403cbcee241b2be41f3c2d827663864523
  • Vorgänger f5a3d9b0
  • Nachfolger a5f30bf0

Merge von 681 aus unstable: Sammelauftraege + Bugfix
Feature Sammelauftraege
- Kann jetzt mehrere Auftraege in der Suchmaske anwaehlen und zusammenfassen zu einem Sammelauftrag.
- Kann diesen Sammelauftrag als neu speichern und eine Rechnung dafuer ausstellen.
- Kann die folgende Rechnung wiederum speichern und buchen.
- Wird Sammelauftraege mit nur einem Auftrag abfangen und wie gehabt als einzelnen behandeln.
- Wird soviele Daten wie moeglich im Header des Sammelauftrags beibehalten, wobei customer, ordnumber und transdate eindeutig sein m
uessen.
- transdate und ordnumber werden bei Bedarf ueberschrieben, nicht eindeutiger customer wird mit Fehlermeldung quittiert

Zusaetzlich:
- Bugfix in Form::get_exchangerate, genauso gefixt wie in Form::check_exchangerate
- neue Routine OE:close_orders, die genau das tut.
- Der Versuch oe::edit ohne eine id aufzurufen wird nun auf oe::add umgeleitet

Unterschiede anzeigen:

SL/Form.pm
1
#=====================================================================
1
#====================================================================
2 2
# LX-Office ERP
3 3
# Copyright (C) 2004
4 4
# Based on SQL-Ledger Version 2.1.9
......
1277 1277
  $main::lxdebug->enter_sub();
1278 1278

  
1279 1279
  my ($self, $dbh, $curr, $transdate, $fld) = @_;
1280
  
1281
  unless ($transdate) {
1282
    $main::lxdebug->leave_sub();
1283
    return "";
1284
  }
1280 1285

  
1281 1286
  my $query = qq|SELECT e.$fld FROM exchangerate e
1282 1287
                 WHERE e.curr = '$curr'
SL/OE.pm
1
#=====================================================================
1
#====================================================================
2 2
# LX-Office ERP
3 3
# Copyright (C) 2004
4 4
# Based on SQL-Ledger Version 2.1.9
......
459 459
  return $rc;
460 460
}
461 461

  
462
# this function closes multiple orders given in $form->{ordnumber_#}. 
463
# use this for multiple orders that don't have to be saved back
464
# single orders should use OE::save instead.
465
sub close_orders {
466
  $main::lxdebug->enter_sub();
467

  
468
  my ($self, $myconfig ,$form) = @_;
469

  
470
  # get ids from $form
471
  map { push @ids, $form->{"ordnumber_$_"} if $form->{"ordnumber_$_"} } (1 .. $form->{rowcount});
472
  
473
  my $dbh = $form->dbconnect($myconfig);
474
  $query = qq|UPDATE oe SET
475
              closed = TRUE
476
              WHERE ordnumber IN (|.join(', ', map{ $dbh->quote($_) }@ids).qq|)|;
477
  $dbh->do($query) || $form->dberror($query);
478
  $dbh->disconnect;
479

  
480
  $main::lxdebug->leave_sub();
481
}
482

  
462 483
sub delete {
463 484
  $main::lxdebug->enter_sub();
464 485

  
......
539 560

  
540 561
  my $query;
541 562

  
563
  # translate the ids (given by id_# and trans_id_#) into one array of ids, so we can join them later
564
  map { push @ids, $form->{"trans_id_$_"} if ($form->{"id_$_"}) } (1 .. $form->{"rowcount"});
565

  
566
  # if called in multi id mode, and still only got one id, switch back to single id 
567
  if ($form->{"rowcount"} and $#ids == 0) {
568
    $form->{"id"} = $ids[0];
569
    undef @ids;
570
  }
571

  
542 572
  if ($form->{id}) {
543 573

  
544 574
    # get default accounts and last order number
......
578 608

  
579 609
  ($form->{currency}) = split /:/, $form->{currencies};
580 610

  
581
  if ($form->{id}) {
611
  if ($form->{id} or @ids) {
582 612

  
583
    # retrieve order
584
    $query = qq|SELECT o.cp_id,o.ordnumber, o.transdate, o.reqdate,
613
    # retrieve order for single id
614
    # NOTE: this query is intended to fetch all information only ONCE.
615
    # so if any of these infos is important (or even different) for any item, 
616
    # it will be killed out and then has to be fetched from the item scope query further down
617
    $query = qq|SELECT o.cp_id, o.ordnumber, o.transdate, o.reqdate,
585 618
                o.taxincluded, o.shippingpoint, o.shipvia, o.notes, o.intnotes,
586 619
		o.curr AS currency, e.name AS employee, o.employee_id,
587 620
		o.$form->{vc}_id, cv.name AS $form->{vc}, o.amount AS invtotal,
......
591 624
	        JOIN $form->{vc} cv ON (o.$form->{vc}_id = cv.id)
592 625
	        LEFT JOIN employee e ON (o.employee_id = e.id)
593 626
	        LEFT JOIN department d ON (o.department_id = d.id)
594
		WHERE o.id = $form->{id}|;
595
    $sth = $dbh->prepare($query);
596
    $sth->execute || $form->dberror($query);
627
		|. ($form->{id} 
628
		   ? qq|WHERE o.id = $form->{id}| 
629
                   : qq|WHERE o.id IN (|.join(', ', @ids).qq|)|
630
		   );
597 631

  
598
    $ref = $sth->fetchrow_hashref(NAME_lc);
599
    map { $form->{$_} = $ref->{$_} } keys %$ref;
600
    $sth->finish;
632
#$main::lxdebug->message(0, $query);
601 633

  
602
    $query = qq|SELECT s.* FROM shipto s
603
                WHERE s.trans_id = $form->{id}|;
604 634
    $sth = $dbh->prepare($query);
605 635
    $sth->execute || $form->dberror($query);
606 636

  
607 637
    $ref = $sth->fetchrow_hashref(NAME_lc);
608 638
    map { $form->{$_} = $ref->{$_} } keys %$ref;
609
    $sth->finish;
610

  
611
    # get printed, emailed and queued
612
    $query = qq|SELECT s.printed, s.emailed, s.spoolfile, s.formname
613
                FROM status s
614
		WHERE s.trans_id = $form->{id}|;
615
    $sth = $dbh->prepare($query);
616
    $sth->execute || $form->dberror($query);
617 639

  
640
    # destroy all entries for multiple ids that yield different information
618 641
    while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
619
      $form->{printed} .= "$ref->{formname} " if $ref->{printed};
620
      $form->{emailed} .= "$ref->{formname} " if $ref->{emailed};
621
      $form->{queued} .= "$ref->{formname} $ref->{spoolfile} "
622
        if $ref->{spoolfile};
642
      map { undef $form->{$_} if ($ref->{$_} ne $form->{$_}) } keys %$ref;
623 643
    }
644

  
645
    # if not given, fill transdate with current_date
646
    $form->{transdate} = $form->current_date($myconfig) unless $form->{transdate};
647

  
624 648
    $sth->finish;
625
    map { $form->{$_} =~ s/ +$//g } qw(printed emailed queued);
649

  
650
    # shipto and pinted/mailed/queued status makes only sense for single id retrieve 
651
    if (!@ids) {
652
      $query = qq|SELECT s.* FROM shipto s
653
                  WHERE s.trans_id = $form->{id}|;
654
      $sth = $dbh->prepare($query);
655
      $sth->execute || $form->dberror($query);
656

  
657
      $ref = $sth->fetchrow_hashref(NAME_lc);
658
      map { $form->{$_} = $ref->{$_} } keys %$ref;
659
      $sth->finish;
660

  
661
      # get printed, emailed and queued
662
      $query = qq|SELECT s.printed, s.emailed, s.spoolfile, s.formname
663
                  FROM status s
664
                  WHERE s.trans_id = $form->{id}|;
665
      $sth = $dbh->prepare($query);
666
      $sth->execute || $form->dberror($query);
667

  
668
      while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
669
        $form->{printed} .= "$ref->{formname} " if $ref->{printed};
670
        $form->{emailed} .= "$ref->{formname} " if $ref->{emailed};
671
        $form->{queued} .= "$ref->{formname} $ref->{spoolfile} " if $ref->{spoolfile};
672
      }
673
      $sth->finish;
674
      map { $form->{$_} =~ s/ +$//g } qw(printed emailed queued);
675
    } # if !@ids
626 676

  
627 677
    my %oid = ('Pg'     => 'oid',
628 678
               'Oracle' => 'rowid');
629 679

  
630 680
    # retrieve individual items
681
    # this query looks up all information about the items
682
    # stuff different from the whole will not be overwritten, but saved with a suffix.
631 683
    $query = qq|SELECT o.id AS orderitems_id,
632 684
                c1.accno AS inventory_accno,
633 685
                c2.accno AS income_accno,
634 686
		c3.accno AS expense_accno,
687
		oe.ordnumber, oe.transdate, oe.cusordnumber, 
635 688
                p.partnumber, p.assembly, o.description, o.qty,
636 689
		o.sellprice, o.parts_id AS id, o.unit, o.discount, p.bin, p.notes AS partnotes,
637 690
                o.reqdate, o.project_id, o.serialnumber, o.ship,
......
639 692
		pg.partsgroup, o.pricegroup_id, (SELECT pricegroup FROM pricegroup WHERE id=o.pricegroup_id) as pricegroup
640 693
		FROM orderitems o
641 694
		JOIN parts p ON (o.parts_id = p.id)
695
		JOIN oe ON (o.trans_id = oe.id)
642 696
		LEFT JOIN chart c1 ON (p.inventory_accno_id = c1.id)
643 697
		LEFT JOIN chart c2 ON (p.income_accno_id = c2.id)
644 698
		LEFT JOIN chart c3 ON (p.expense_accno_id = c3.id)
645 699
		LEFT JOIN project pr ON (o.project_id = pr.id)
646 700
		LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id)
647
		WHERE o.trans_id = $form->{id}
701
		|. ($form->{id} 
702
		   ? qq|WHERE o.trans_id = $form->{id}| 
703
		   : qq|WHERE o.trans_id IN (|.join(", ", @ids).qq|)| 
704
		   ).qq|
648 705
                ORDER BY o.$oid{$myconfig->{dbdriver}}|;
706
    
649 707
    $sth = $dbh->prepare($query);
650 708
    $sth->execute || $form->dberror($query);
651 709

  
bin/mozilla/io.pl
357 357
<input type=hidden name="listprice_$i" value="$form->{"listprice_$i"}">
358 358
<input type=hidden name="assembly_$i" value="$form->{"assembly_$i"}">
359 359
<input type=hidden name="taxaccounts_$i" value="$form->{"taxaccounts_$i"}">
360
<input type=hidden name="ordnumber_$i" value="$form->{"ordnumber_$i"}">
361
<input type=hidden name="transdate_$i" value="$form->{"transdate_$i"}">
362
<input type=hidden name="cusordnumber_$i" value="$form->{"cusordnumber_$i"}">
360 363

  
361 364
|;
362 365

  
bin/mozilla/oe.pl
1
#=====================================================================
1
# #=====================================================================
2 2
# LX-Office ERP
3 3
# Copyright (C) 2004
4 4
# Based on SQL-Ledger Version 2.1.9
......
77 77
sub edit {
78 78
  $lxdebug->enter_sub();
79 79

  
80
  # editing without stuff to edit? try adding it first
81
  if ($form->{rowcount}) {
82
    map {$id++ if $form->{"id_$_"}} (1 .. $form->{rowcount});
83
    if (!$id) {
84
      # reset rowcount
85
      undef $form->{rowcount};
86
      &add;
87
      return;
88
    }
89
  } else {
90
    if (!$form->{id}) {
91
      &add;
92
      return;
93
    }
94
  }
95

  
80 96
  if ($form->{type} eq 'purchase_order') {
81 97
    $form->{title}   = $locale->text('Edit Purchase Order');
82 98
    $form->{heading} = $locale->text('Purchase Order');
......
121 137

  
122 138
  OE->retrieve(\%myconfig, \%$form);
123 139

  
140
  # if multiple rowcounts (== collective order) then check if the
141
  # there were more than one customer (in that case OE::retrieve removes 
142
  # the content from the field)
143
  if ($form->{rowcount} && $form->{type} eq 'sales_order' && $form->{customer} eq '') {
144
#    $main::lxdebug->message(0, "Detected Edit order with concurrent customers");
145
    $form->error($locale->text('Collective Orders only work for orders from one customer!'));
146
  }
147

  
124 148
  $taxincluded = $form->{taxincluded};
125 149
  $form->{shipto} = 1 if $form->{id};
126 150

  
......
197 221
  $form->{media}    = "screen";
198 222
  $form->{formname} = $form->{type};
199 223

  
200
  if ($form->{id}) {
201

  
202 224
    map { $form->{$_} =~ s/\"/&quot;/g }
203 225
      qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact);
204 226

  
205 227
    foreach $ref (@{ $form->{form_details} }) {
206
      $i++;
207
      map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref};
208
      $form->{"discount_$i"} =
209
        $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
228
      $form->{rowcount} = ++$i;
210 229

  
211
      ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
212
      $dec           = length $dec;
213
      $decimalplaces = ($dec > 2) ? $dec : 2;
214

  
215
      $form->{"sellprice_$i"} =
216
        $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
217
                             $decimalplaces);
218

  
219
      (my $dec_qty) = ($form->{"qty_$i"} =~ /\.(\d+)/);
220
      $dec_qty      = length $dec_qty;
221

  
222
      $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
223

  
224
      map { $form->{"${_}_$i"} =~ s/\"/&quot;/g }
225
        qw(partnumber description unit);
226
      $form->{rowcount} = $i;
230
      map { $form->{"${_}_$i"} = $ref->{$_} } keys %{$ref};
227 231
    }
228
  } elsif ($form->{rowcount}) {
232
    
229 233
    for my $i (1 .. $form->{rowcount}) {
230 234
       $form->{"discount_$i"} =
231 235
        $form->format_amount(\%myconfig, $form->{"discount_$i"} * 100);
232 236

  
233
      ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
237
      ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);    
234 238
      $dec           = length $dec;
235 239
      $decimalplaces = ($dec > 2) ? $dec : 2;
236 240

  
......
245 249
      map { $form->{"${_}_$i"} =~ s/\"/&quot;/g }
246 250
        qw(partnumber description unit);
247 251
    }
248
  }
249 252

  
250 253
  $lxdebug->leave_sub();
251 254
}
......
860 863
        . $locale->text('Order') . qq|">
861 864
|;
862 865
    }
866
  } elsif ($form->{type} =~ /sales_order$/ && $form->{rowcount}) {
867
    print qq|
868
<br>Workflow  $form->{heading}<br>
869
<input class=submit type=submit name=action value="|
870
      . $locale->text('Save as new') . qq|">
871
<input class=submit type=submit name=action value="|
872
      . $locale->text('Invoice') . qq|">
873
|;
863 874
  }
875
  
864 876

  
865 877
  if ($form->{menubar}) {
866 878
    require "$form->{path}/menu.pl";
......
1312 1324
    }
1313 1325
  }
1314 1326

  
1327
  # only show checkboxes if gotten here via sales_order form.
1328
  if ($form->{type} =~ /sales_order/) {
1329
    unshift @column_index, "ids";
1330
  }
1331

  
1315 1332
  if ($form->{l_subtotal} eq 'Y') {
1316 1333
    $callback .= "&l_subtotal=Y";
1317 1334
    $href     .= "&l_subtotal=Y";
......
1384 1401
  $column_header{employee} =
1385 1402
    qq|<th><a class=listheading href=$href&sort=employee>$employee</a></th>|;
1386 1403

  
1404
  $column_header{ids} = qq|<th></th>|;
1405

  
1387 1406
  if ($form->{ $form->{vc} }) {
1388 1407
    $option = $locale->text(ucfirst $form->{vc});
1389 1408
    $option .= " : $form->{$form->{vc}}";
......
1423 1442
  print qq|
1424 1443
<body>
1425 1444

  
1445
<form method="post" action="oe.pl">
1426 1446
<table width=100%>
1427 1447
  <tr>
1428 1448
    <th class=listtop>$form->{title}</th>
......
1443 1463
|;
1444 1464

  
1445 1465
  # add sort and escape callback
1446
  $callback = $form->escape($callback . "&sort=$form->{sort}");
1466
  $callback_escaped = $form->escape($callback . "&sort=$form->{sort}");
1447 1467

  
1448 1468
  if (@{ $form->{OE} }) {
1449 1469
    $sameitem = $form->{OE}->[0]->{ $form->{sort} };
......
1455 1475
  $warehouse = $form->escape($form->{warehouse});
1456 1476

  
1457 1477
  foreach $oe (@{ $form->{OE} }) {
1478
    $form->{rowcount} = ++$j;
1458 1479

  
1459 1480
    if ($form->{l_subtotal} eq 'Y') {
1460 1481
      if ($sameitem ne $oe->{ $form->{sort} }) {
......
1483 1504
    $subtotalnetamount += $oe->{netamount};
1484 1505
    $subtotalamount    += $oe->{amount};
1485 1506

  
1507
    $column_data{ids}    = qq|<td><input name="id_$j" class=checkbox type=checkbox><input type="hidden" name="trans_id_$j" value="$oe->{id}"></td>|;
1486 1508
    $column_data{id}        = "<td>$oe->{id}</td>";
1487 1509
    $column_data{transdate} = "<td>$oe->{transdate}&nbsp;</td>";
1488 1510
    $column_data{reqdate}   = "<td>$oe->{reqdate}&nbsp;</td>";
1489 1511

  
1490 1512
    $column_data{$ordnumber} =
1491
      "<td><a href=oe.pl?path=$form->{path}&action=$action&type=$form->{type}&id=$oe->{id}&warehouse=$warehouse&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&callback=$callback>$oe->{$ordnumber}</a></td>";
1513
      "<td><a href=oe.pl?path=$form->{path}&action=$action&type=$form->{type}&id=$oe->{id}&warehouse=$warehouse&vc=$form->{vc}&login=$form->{login}&password=$form->{password}&callback=$callback_escaped>$oe->{$ordnumber}</a></td>";
1492 1514
    $column_data{name} = "<td>$oe->{name}</td>";
1493 1515

  
1494 1516
    $column_data{employee} = "<td>$oe->{employee}&nbsp;</td>";
......
1546 1568
  <tr>
1547 1569
    <td><hr size=3 noshade></td>
1548 1570
  </tr>
1549
</table>
1571
</table>|;
1572

  
1573
# multiple invoice edit button only if gotten there via sales_order form.
1574

  
1575
if ($form->{type} =~ /sales_order/) {
1576
print qq|
1577
  <input type="hidden" name="path" value="$form->{path}">
1578
  <input class"submit" type="submit" name="action" value="|
1579
. $locale->text('Continue') .qq|">
1580
  <input type="hidden" name="nextsub" value="edit">
1581
  <input type="hidden" name="type" value="$form->{type}">
1582
  <input type="hidden" name="warehouse" value="$warehouse">
1583
  <input type="hidden" name="vc" value="$form->{vc}">
1584
  <input type="hidden" name="login" value="$form->{login}">
1585
  <input type="hidden" name="password" value="$form->{password}">
1586
  <input type="hidden" name="callback" value="$callback">
1587
  <input type="hidden" name="rowcount" value="$form->{rowcount}">|;
1588
}
1589

  
1590
print qq|
1591
</form>
1550 1592

  
1551 1593
<br>
1552 1594
<form method=post action=$form->{script}>
......
1751 1793
  $lxdebug->enter_sub();
1752 1794

  
1753 1795
  if ($form->{type} =~ /_order$/) {
1754
    $form->isblank("ordnumber", $locale->text('Order Number missing!'));
1755
    $form->isblank("transdate", $locale->text('Order Date missing!'));
1796
    # these checks only apply if the items don't bring their own ordnumbers/transdates.
1797
    # The if clause ensures that by searching for empty ordnumber_#/transdate_# fields.
1798
    $form->isblank("ordnumber", $locale->text('Order Number missing!')) if ( +{ map { $form->{"ordnumber_$_"}, 1 } ( 1 .. $form->{rowcount}-1 ) }->{''} );
1799
    $form->isblank("transdate", $locale->text('Order Date missing!'))   if ( +{ map { $form->{"transdate_$_"}, 1 } ( 1 .. $form->{rowcount}-1 ) }->{''} );
1756 1800

  
1757 1801
  } else {
1758 1802
    $form->isblank("quonumber", $locale->text('Quotation Number missing!'));
......
1788 1832

  
1789 1833
  # close orders/quotations
1790 1834
  $form->{closed} = 1;
1791
  OE->save(\%myconfig, \%$form);
1835

  
1836
  # save order iff one ordnumber has been given 
1837
  # if not it's most likely a collective order, which can't be saved back
1838
  # so they just have to be closed
1839
  if ($form->{ordnumber} ne '') {
1840
    OE->save(\%myconfig, \%$form);
1841
  } else {
1842
    OE->close_orders(\%myconfig, \%$form);
1843
  }
1792 1844

  
1793 1845
  $form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);
1794 1846
  $form->{duedate} =
locale/de/admin
39 39
  'Hostname missing!'           => 'Computername fehlt!',
40 40
  'Incorrect Password!'         => 'Ung?ltiges Passwort!',
41 41
  'Language'                    => 'Sprache',
42
  'Leave host and port field empty unless you want to make a remote connection.' => 'Leave host and port field empty unless you want to make a remote connection.',
42 43
  'Lock System'                 => 'System sperren',
43 44
  'Lockfile created!'           => 'System gesperrt!',
44 45
  'Lockfile removed!'           => 'System entsperrt!',
......
70 71
  'Templates'                   => 'Vorlagen',
71 72
  'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und k?nnen gel?scht werden',
72 73
  'The following Datasets need to be updated' => 'Folgende Datenbanken m?ssen aktualisiert werden',
73
  'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine ?nderungen vorgenommen!',
74
  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzuf?gen, ?ndern und speichern Sie am einfachsten einen bestehenden Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
74
  'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!',
75
  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => 'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.',
75 76
  'Unlock System'               => 'System entsperren',
76 77
  'Update Dataset'              => 'Datenbank aktualisieren',
77 78
  'Use Templates'               => 'benutze Vorlagen',
......
81 82
  'Ust-IDNr'                    => 'USt-IdNr.',
82 83
  'Version'                     => 'Version',
83 84
  'WEBDAV-Zugriff'              => 'WEBDAV-Zugriff',
85
  'You must enter a host and port for local and remote connections!' => 'You must enter a host and port for local and remote connections!',
84 86
  'does not exist'              => 'existiert nicht',
85 87
  'is already a member!'        => 'ist bereits ein Mitglied!',
86 88
  'localhost'                   => 'lokaler Rechner',
locale/de/all
174 174
  'Closed'                      => 'Geschlossen',
175 175
  'Code'                        => 'kode',
176 176
  'Code missing!'               => 'kode fehlt!',
177
  'Collective Orders only work for orders from one customer!' => 'Sammelauftr?ge funktionieren nur f?r Auftr?ge von einem Kunden!',
177 178
  'Comment'                     => 'Kommentar',
178 179
  'Company'                     => 'Firma',
179 180
  'Company Name'                => 'Firmenname',
......
429 430
  'Last Sales Quotation Number' => 'Letzte Angebotsnummer',
430 431
  'Last Service Number'         => 'Letzte Dienstleistungsnr.',
431 432
  'Last Vendor Number'          => 'Letzte Lieferantennummer',
433
  'Leave host and port field empty unless you want to make a remote connection.' => '',
432 434
  'Liability'                   => 'Passiva',
433 435
  'License'                     => 'Lizenz',
434 436
  'License key'                 => 'Lizenzschl?ssel',
......
707 709
  'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und k?nnen gel?scht werden',
708 710
  'The following Datasets need to be updated' => 'Folgende Datenbanken m?ssen aktualisiert werden',
709 711
  'The licensing module has been deactivated in lx-erp.conf.' => 'Das Lizenzverwaltungsmodul wurde in lx-erp.conf deaktiviert.',
712
  'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => '',
710 713
  'Title'                       => 'Titel',
711 714
  'To'                          => 'An',
715
  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => '',
712 716
  'Top 100'                     => 'Top 100',
713 717
  'Top 100 hinzufuegen'         => 'Top 100 hinzuf?gen',
714 718
  'Top Level'                   => 'Hauptartikelbezeichnung',
......
776 780
  'Yes'                         => 'Ja',
777 781
  'You are logged out!'         => 'Auf Wiedersehen!',
778 782
  'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
783
  'You must enter a host and port for local and remote connections!' => '',
779 784
  'Zeitraum'                    => 'Zeitraum',
780 785
  'Zipcode'                     => 'PLZ',
781 786
  'accrual'                     => 'Bilanzierung (Soll-Versteuerung)',
locale/en_GB/all
114 114
  'Click on login name to edit!' => '',
115 115
  'Close Books up to'           => '',
116 116
  'Closed'                      => '',
117
  'Collective Orders only work for orders from one customer!' => '',
117 118
  'Company'                     => '',
118 119
  'Compare to'                  => '',
119 120
  'Confirm!'                    => '',

Auch abrufbar als: Unified diff