Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6af007ae

Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt

  • ID 6af007aef5ff57abc085bf61c6b2d228baac7b25
  • Vorgänger 368f144b
  • Nachfolger ce8306e0

Nummernkreise/Standardkonten in Mandantenkonfigurationsdialog verschoben

Unterschiede anzeigen:

SL/AM.pm
1050 1050
  return $error;
1051 1051
}
1052 1052

  
1053
sub save_defaults {
1054
  $main::lxdebug->enter_sub();
1055

  
1056
  my $self     = shift;
1057
  my %params   = @_;
1058

  
1059
  my $myconfig = \%main::myconfig;
1060
  my $form     = $main::form;
1061

  
1062
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
1063

  
1064
  my %accnos;
1065
  map { ($accnos{$_}) = split(m/--/, $form->{$_}) } qw(inventory_accno income_accno expense_accno fxgain_accno fxloss_accno ar_paid_accno);
1066

  
1067
  # these defaults are database wide
1068

  
1069
  my $query =
1070
    qq|UPDATE defaults SET
1071
        inventory_accno_id = (SELECT c.id FROM chart c WHERE c.accno = ?),
1072
        income_accno_id    = (SELECT c.id FROM chart c WHERE c.accno = ?),
1073
        expense_accno_id   = (SELECT c.id FROM chart c WHERE c.accno = ?),
1074
        fxgain_accno_id    = (SELECT c.id FROM chart c WHERE c.accno = ?),
1075
        fxloss_accno_id    = (SELECT c.id FROM chart c WHERE c.accno = ?),
1076
        ar_paid_accno_id   = (SELECT c.id FROM chart c WHERE c.accno = ?),
1077
        invnumber          = ?,
1078
        cnnumber           = ?,
1079
        sonumber           = ?,
1080
        ponumber           = ?,
1081
        sqnumber           = ?,
1082
        rfqnumber          = ?,
1083
        customernumber     = ?,
1084
        vendornumber       = ?,
1085
        articlenumber      = ?,
1086
        servicenumber      = ?,
1087
        assemblynumber     = ?,
1088
        sdonumber          = ?,
1089
        pdonumber          = ?,
1090
        businessnumber     = ?,
1091
        weightunit         = ?,
1092
        language_id        = ?|;
1093
  my @values = ($accnos{inventory_accno}, $accnos{income_accno}, $accnos{expense_accno},
1094
                $accnos{fxgain_accno},    $accnos{fxloss_accno}, $accnos{ar_paid_accno},
1095
                $form->{invnumber},       $form->{cnnumber},
1096
                $form->{sonumber},        $form->{ponumber},
1097
                $form->{sqnumber},        $form->{rfqnumber},
1098
                $form->{customernumber},  $form->{vendornumber},
1099
                $form->{articlenumber},   $form->{servicenumber},
1100
                $form->{assemblynumber},
1101
                $form->{sdonumber},       $form->{pdonumber},
1102
                $form->{businessnumber},  $form->{weightunit},
1103
                conv_i($form->{language_id}));
1104
  do_query($form, $dbh, $query, @values);
1105

  
1106
  $main::lxdebug->message(0, "es gibt rowcount: " . $form->{rowcount});
1107

  
1108
  for my $i (1..$form->{rowcount}) {
1109
    if ($form->{"curr_$i"} ne $form->{"old_curr_$i"}) {
1110
      $query = qq|UPDATE currencies SET name = ? WHERE name = ?|;
1111
      do_query($form, $dbh, $query, $form->{"curr_$i"}, $form->{"old_curr_$i"});
1112
    }
1113
  }
1114

  
1115
  if (length($form->{new_curr}) > 0) {
1116
    $query = qq|INSERT INTO currencies (name) VALUES (?)|;
1117
    do_query($form, $dbh, $query, $form->{new_curr});
1118
  }
1119

  
1120
  $dbh->commit();
1121

  
1122
  $main::lxdebug->leave_sub();
1123
}
1124

  
1125 1053
sub save_preferences {
1126 1054
  $main::lxdebug->enter_sub();
1127 1055

  
......
1162 1090
  return $defaults;
1163 1091
}
1164 1092

  
1165
sub defaultaccounts {
1166
  $main::lxdebug->enter_sub();
1167

  
1168
  my ($self, $myconfig, $form) = @_;
1169

  
1170
  # connect to database
1171
  my $dbh = $form->dbconnect($myconfig);
1172

  
1173
  # get defaults from defaults table
1174
  my $query = qq|SELECT * FROM defaults|;
1175
  my $sth   = $dbh->prepare($query);
1176
  $sth->execute || $form->dberror($query);
1177

  
1178
  $form->{defaults}               = $sth->fetchrow_hashref("NAME_lc");
1179
  $form->{defaults}{IC}           = $form->{defaults}{inventory_accno_id};
1180
  $form->{defaults}{IC_income}    = $form->{defaults}{income_accno_id};
1181
  $form->{defaults}{IC_expense}   = $form->{defaults}{expense_accno_id};
1182
  $form->{defaults}{FX_gain}      = $form->{defaults}{fxgain_accno_id};
1183
  $form->{defaults}{FX_loss}      = $form->{defaults}{fxloss_accno_id};
1184
  $form->{defaults}{AR_paid}      = $form->{defaults}{ar_paid_accno_id};
1185

  
1186
  $form->{defaults}{weightunit} ||= 'kg';
1187

  
1188
  $sth->finish;
1189

  
1190
  $query = qq|SELECT c.id, c.accno, c.description, c.link
1191
              FROM chart c
1192
              WHERE c.link LIKE '%IC%'
1193
              ORDER BY c.accno|;
1194
  $sth = $dbh->prepare($query);
1195
  $sth->execute || $self->dberror($query);
1196

  
1197
  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
1198
    foreach my $key (split(/:/, $ref->{link})) {
1199
      if ($key =~ /IC/) {
1200
        my $nkey = $key;
1201
        if ($key =~ /cogs/) {
1202
          $nkey = "IC_expense";
1203
        }
1204
        if ($key =~ /sale/) {
1205
          $nkey = "IC_income";
1206
        }
1207
        %{ $form->{IC}{$nkey}{ $ref->{accno} } } = (
1208
                                             id          => $ref->{id},
1209
                                             description => $ref->{description}
1210
        );
1211
      }
1212
    }
1213
  }
1214
  $sth->finish;
1215

  
1216
  $query = qq|SELECT c.id, c.accno, c.description
1217
              FROM chart c
1218
              WHERE c.category = 'I'
1219
              AND c.charttype = 'A'
1220
              ORDER BY c.accno|;
1221
  $sth = $dbh->prepare($query);
1222
  $sth->execute || $self->dberror($query);
1223

  
1224
  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
1225
    %{ $form->{IC}{FX_gain}{ $ref->{accno} } } = (
1226
                                             id          => $ref->{id},
1227
                                             description => $ref->{description}
1228
    );
1229
  }
1230
  $sth->finish;
1231

  
1232
  $query = qq|SELECT c.id, c.accno, c.description
1233
              FROM chart c
1234
              WHERE c.category = 'E'
1235
              AND c.charttype = 'A'
1236
              ORDER BY c.accno|;
1237
  $sth = $dbh->prepare($query);
1238
  $sth->execute || $self->dberror($query);
1239

  
1240
  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
1241
    %{ $form->{IC}{FX_loss}{ $ref->{accno} } } = (
1242
                                             id          => $ref->{id},
1243
                                             description => $ref->{description}
1244
    );
1245
  }
1246
  $sth->finish;
1247

  
1248
  # now get the tax rates and numbers
1249
  $query = qq|SELECT c.id, c.accno, c.description,
1250
              t.rate * 100 AS rate, t.taxnumber
1251
              FROM chart c, tax t
1252
              WHERE c.id = t.chart_id|;
1253

  
1254
  $sth = $dbh->prepare($query);
1255
  $sth->execute || $form->dberror($query);
1256

  
1257
  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
1258
    $form->{taxrates}{ $ref->{accno} }{id}          = $ref->{id};
1259
    $form->{taxrates}{ $ref->{accno} }{description} = $ref->{description};
1260
    $form->{taxrates}{ $ref->{accno} }{taxnumber}   = $ref->{taxnumber}
1261
      if $ref->{taxnumber};
1262
    $form->{taxrates}{ $ref->{accno} }{rate} = $ref->{rate} if $ref->{rate};
1263
  }
1264
  # Abfrage für Standard Umlaufvermögenskonto
1265
  $query =
1266
    qq|SELECT id, accno, description, link | .
1267
    qq|FROM chart | .
1268
    qq|WHERE link LIKE ? |.
1269
    qq|ORDER BY accno|;
1270
  $sth = prepare_execute_query($form, $dbh, $query, '%AR%');
1271
  $sth->execute || $form->dberror($query);#
1272
  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
1273
    foreach my $item (split(/:/, $ref->{link})) {
1274
      if ($item eq "AR_paid") {
1275
        %{ $form->{IC}{AR_paid}{ $ref->{accno} } } = (
1276
                                             id          => $ref->{id},
1277
                                             description => $ref->{description}
1278
          );
1279
      }
1280
    }
1281
  }
1282

  
1283
  $sth->finish;
1284

  
1285
  #Get currencies:
1286
  $query              = qq|SELECT name AS curr FROM currencies ORDER BY id|;
1287
  $form->{CURRENCIES} = selectall_hashref_query($form, $dbh, $query);
1288

  
1289
  #Which of them is the default currency?
1290
  $query = qq|SELECT name AS defaultcurrency FROM currencies WHERE id = (SELECT currency_id FROM defaults LIMIT 1);|;
1291
  ($form->{defaultcurrency}) = selectrow_query($form, $dbh, $query);
1292

  
1293
  $dbh->disconnect;
1294

  
1295
  $main::lxdebug->leave_sub();
1296
}
1297

  
1298 1093
sub closedto {
1299 1094
  $main::lxdebug->enter_sub();
1300 1095

  
SL/Controller/ClientConfig.pm
3 3
use strict;
4 4
use parent qw(SL::Controller::Base);
5 5

  
6
use List::Util qw(first);
7

  
8
use SL::DB::Chart;
9
use SL::DB::Currency;
6 10
use SL::DB::Default;
11
use SL::DB::Language;
12
use SL::DB::Unit;
7 13
use SL::Helper::Flash;
8 14
use SL::Locale::String qw(t8);
9 15

  
10 16
__PACKAGE__->run_before('check_auth');
11 17

  
12 18
use Rose::Object::MakeMethods::Generic (
13
  'scalar --get_set_init' => [ qw(defaults all_warehouses posting_options payment_options accounting_options inventory_options profit_options) ],
19
  'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies posting_options payment_options accounting_options inventory_options profit_options accounts) ],
14 20
);
15 21

  
16 22
sub action_edit {
......
19 25
}
20 26

  
21 27
sub action_save {
22
  my ($self, %params) = @_;
28
  my ($self, %params)      = @_;
23 29

  
24
  my $defaults = delete($::form->{defaults}) || {};
30
  my $defaults             = delete($::form->{defaults}) || {};
31
  my $entered_currencies   = delete($::form->{currencies}) || [];
32
  my $original_currency_id = $self->defaults->currency_id;
25 33

  
26 34
  # undef several fields if an empty value has been selected.
27 35
  foreach (qw(warehouse_id bin_id warehouse_id_ignore_onhand bin_id_ignore_onhand)) {
28 36
    undef $defaults->{$_} if !$defaults->{$_};
29 37
  }
30 38

  
31
  $self->defaults->update_attributes(%{ $defaults });
39
  $self->defaults->assign_attributes(%{ $defaults });
40

  
41
  my %errors_idx;
42

  
43
  # Handle currencies
44
  my (%new_currency_names);
45
  foreach my $existing_currency (@{ $self->all_currencies }) {
46
    my $new_name     = $existing_currency->name;
47
    my $new_currency = first { $_->{id} == $existing_currency->id } @{ $entered_currencies };
48
    $new_name        = $new_currency->{name} if $new_currency;
49

  
50
    if (!$new_name) {
51
      $errors_idx{0} = t8('Currency names must not be empty.');
52
    } elsif ($new_currency_names{$new_name}) {
53
      $errors_idx{1} = t8('Currency names must be unique.');
54
    }
55

  
56
    if ($new_name) {
57
      $new_currency_names{$new_name} = 1;
58
      $existing_currency->name($new_name);
59
    }
60
  }
61

  
62
  if ($::form->{new_currency} && $new_currency_names{ $::form->{new_currency} }) {
63
    $errors_idx{1} = t8('Currency names must be unique.');
64
  }
65

  
66
  my @errors = map { $errors_idx{$_} } sort keys %errors_idx;
67

  
68
  if (@errors) {
69
    flash('error', @errors);
70
    return $self->edit_form;
71
  }
72

  
73
  # Save currencies. As the names must be unique we cannot simply save
74
  # them as they are -- the user might want to swap to names. So make
75
  # them unique first and assign the actual names in a second step.
76
  my %currency_names_by_id = map { ($_->id => $_->name) } @{ $self->all_currencies };
77
  $_->update_attributes(name => '__039519735__' . $_->{id})        for @{ $self->all_currencies };
78
  $_->update_attributes(name => $currency_names_by_id{ $_->{id} }) for @{ $self->all_currencies };
79

  
80
  # Create new currency if required
81
  my $new_currency;
82
  if ($::form->{new_currency}) {
83
    $new_currency = SL::DB::Currency->new(name => $::form->{new_currency});
84
    $new_currency->save;
85
  }
86

  
87
  # If the user wants the new currency to be the default then replace
88
  # the ID placeholder with the proper value. However, if no new
89
  # currency has been created then don't change the value at all.
90
  if (-1 == $self->defaults->currency_id) {
91
    $self->defaults->currency_id($new_currency ? $new_currency->id : $original_currency_id);
92
  }
93

  
94
  $self->defaults->save;
32 95

  
33 96
  flash_later('info', t8('Client Configuration saved!'));
34 97

  
......
39 102
# initializers
40 103
#
41 104

  
42
sub init_defaults       { SL::DB::Default->get }
43
sub init_all_warehouses { SL::DB::Manager::Warehouse->get_all_sorted }
105
sub init_defaults        { SL::DB::Default->get                                           }
106
sub init_all_warehouses  { SL::DB::Manager::Warehouse->get_all_sorted                     }
107
sub init_all_languages   { SL::DB::Manager::Language->get_all_sorted                      }
108
sub init_all_currencies  { SL::DB::Manager::Currency->get_all_sorted                      }
109
sub init_all_weightunits { SL::DB::Manager::Unit->find_by(name => 'g')->convertible_units }
44 110

  
45 111
sub init_posting_options {
46 112
  [ { title => t8("never"),           value => 0           },
......
69 135
    { title => t8("income"),          value => "income"    }, ]
70 136
}
71 137

  
138
sub init_accounts {
139
  my %accounts;
140

  
141
  foreach my $chart (@{ SL::DB::Manager::Chart->get_all(where => [ link => { like => '%IC%' } ], sort_by => 'accno ASC') }) {
142
    my %added;
143

  
144
    foreach my $link (split m/:/, $chart->link) {
145
      my $key = lc($link =~ /cogs/ ? 'IC_expense' : $link =~ /sale/ ? 'IC_income' : $link);
146
      next if $added{$key};
147

  
148
      $added{$key}      = 1;
149
      $accounts{$key} ||= [];
150
      push @{ $accounts{$key} }, $chart;
151
    }
152
  }
153

  
154
  $accounts{fx_gain} = SL::DB::Manager::Chart->get_all(where => [ category => 'I', charttype => 'A' ], sort_by => 'accno ASC');
155
  $accounts{fx_loss} = SL::DB::Manager::Chart->get_all(where => [ category => 'E', charttype => 'A' ], sort_by => 'accno ASC');
156
  $accounts{ar_paid} = SL::DB::Manager::Chart->get_all(where => [ link => { like => '%AR_paid%' }   ], sort_by => 'accno ASC');
157

  
158
  return \%accounts;
159
}
160

  
72 161
#
73 162
# filters
74 163
#
......
83 172

  
84 173
sub edit_form {
85 174
  my ($self) = @_;
86
  $self->render('client_config/form', title => t8('Client Configuration'));
175
  $self->render('client_config/form', title => t8('Client Configuration'),
176
                make_chart_title => sub { $_[0]->accno . '--' . $_[0]->description });
87 177
}
88 178

  
89 179
1;
bin/mozilla/am.pl
935 935
  $main::lxdebug->leave_sub();
936 936
}
937 937

  
938
sub edit_defaults {
939
  $main::lxdebug->enter_sub();
940

  
941
  my $form     = $main::form;
942
  my %myconfig = %main::myconfig;
943
  my $locale   = $main::locale;
944

  
945
  # get defaults for account numbers and last numbers
946
  AM->defaultaccounts(\%myconfig, \%$form);
947
  $form->{ALL_UNITS} = AM->convertible_units(AM->retrieve_all_units(), 'g');
948

  
949
  map { $form->{"defaults_${_}"} = $form->{defaults}->{$_} } keys %{ $form->{defaults} };
950

  
951
  # default language
952
  my $all_languages = SL::DB::Manager::Language->get_all;
953

  
954
# cash = IST-Versteuerung, accrual = SOLL-Versteuerung
955

  
956
  foreach my $key (keys %{ $form->{IC} }) {
957
    foreach my $accno (sort keys %{ $form->{IC}->{$key} }) {
958
      my $array = "ACCNOS_" . uc($key);
959
      $form->{$array} ||= [];
960

  
961
      my $value = "${accno}--" . $form->{IC}->{$key}->{$accno}->{description};
962
      push @{ $form->{$array} }, {
963
        'name'     => $value,
964
        'value'    => $value,
965
        'selected' => $form->{IC}->{$key}->{$accno}->{id} == $form->{defaults}->{$key},
966
      };
967
    }
968
  }
969

  
970
  $form->{title} = $locale->text('Ranges of numbers and default accounts');
971

  
972
  $form->header();
973
  print $form->parse_html_template('am/edit_defaults',
974
                                   { ALL_LANGUAGES => $all_languages, });
975

  
976
  $main::lxdebug->leave_sub();
977
}
978

  
979
sub save_defaults {
980
  $main::lxdebug->enter_sub();
981

  
982
  my $form     = $main::form;
983
  my $locale   = $main::locale;
984

  
985
  AM->save_defaults();
986

  
987
  $form->redirect($locale->text('Defaults saved.'));
988

  
989
  $main::lxdebug->leave_sub();
990
}
991

  
992 938
sub _build_cfg_options {
993 939
  my $form     = $main::form;
994 940
  my %myconfig = %main::myconfig;
locale/de/all
166 166
  'Add custom variable'         => 'Benutzerdefinierte Variable erfassen',
167 167
  'Add link: select records to link with' => 'Verknüpfungen hinzufügen: zu verknüpfende Belege auswählen',
168 168
  'Add links'                   => 'Verknüpfungen hinzufügen',
169
  'Add new currency'            => 'Neue Währung hinzufügen',
169 170
  'Add note'                    => 'Notiz erfassen',
170 171
  'Add printer'                 => 'Drucker hinzufügen',
171 172
  'Add unit'                    => 'Einheit hinzufügen',
......
462 463
  'Company Name'                => 'Firmenname',
463 464
  'Company name'                => 'Firmenname',
464 465
  'Compare to'                  => 'Gegenüberstellen zu',
465
  'Configuration'               => 'Einstellungen',
466 466
  'Configuration of individual TODO items' => 'Konfiguration für die einzelnen Aufgabenlistenpunkte',
467 467
  'Configure'                   => 'Konfigurieren',
468 468
  'Confirm'                     => 'Bestätigen',
......
552 552
  'Currencies'                  => 'Währungen',
553 553
  'Currency'                    => 'Währung',
554 554
  'Currency (database ID)'      => 'Währung (Datenbank-ID)',
555
  'Currency name'               => 'Währungsname',
556
  'Currency names must be unique.' => 'Währungsnamen müssen eindeutig sein.',
557
  'Currency names must not be empty.' => 'Währungsnamen dürfen nicht leer sein.',
555 558
  'Current / Next Level'        => 'Aktuelles / Nächstes Mahnlevel',
556 559
  'Current Earnings'            => 'Gewinn',
557 560
  'Current assets account'      => 'Konto für Umlaufvermögen',
......
651 654
  'Default template format'     => 'Standardvorlagenformat',
652 655
  'Default unit'                => 'Standardeinheit',
653 656
  'Default value'               => 'Standardwert',
654
  'Defaults saved.'             => 'Die Standardeinstellungen wurden gespeichert.',
655 657
  'Delete'                      => 'Löschen',
656 658
  'Delete Account'              => 'Konto löschen',
657 659
  'Delete Contact'              => 'Ansprechperson löschen',
......
826 828
  'Edit templates'              => 'Vorlagen bearbeiten',
827 829
  'Edit the Delivery Order'     => 'Lieferschein bearbeiten',
828 830
  'Edit the configuration for periodic invoices' => 'Konfiguration für wiederkehrende Rechnungen bearbeiten',
831
  'Edit the currency names in order to rename them.' => 'Bearbeiten Sie den Namen, um eine Währung umzubennen.',
829 832
  'Edit the purchase_order'     => 'Bearbeiten des Lieferantenauftrags',
830 833
  'Edit the request_quotation'  => 'Bearbeiten der Preisanfrage',
831 834
  'Edit the sales_order'        => 'Bearbeiten des Auftrags',
......
1018 1021
  'Hide by default'             => 'Standardmäßig verstecken',
1019 1022
  'Hide help text'              => 'Hilfetext verbergen',
1020 1023
  'Hide settings'               => 'Einstellungen verbergen',
1024
  'Hints'                       => 'Hinweise',
1021 1025
  'History'                     => 'Historie',
1022 1026
  'History Search'              => 'Historien Suche',
1023 1027
  'History Search Engine'       => 'Historien Suchmaschine',
......
1644 1648
  'RFQs'                        => 'Preisanfragen',
1645 1649
  'ROP'                         => 'Mindestlagerbestand',
1646 1650
  'Ranges of numbers'           => 'Nummernkreise',
1647
  'Ranges of numbers and default accounts' => 'Nummernkreise und Standardkonten',
1648 1651
  'Re-run analysis'             => 'Analyse wiederholen',
1649 1652
  'Receipt'                     => 'Zahlungseingang',
1650 1653
  'Receipt posted!'             => 'Beleg gebucht!',
menu.ini
508 508
module=controller.pl
509 509
action=ClientConfig/edit
510 510

  
511
[System--Ranges of numbers and default accounts]
512
module=am.pl
513
action=edit_defaults
514

  
515 511
[System--UStVa Einstellungen]
516 512
module=ustva.pl
517 513
action=config_step1
templates/webpages/am/edit_defaults.html
1
[%- USE T8 %]
2
[%- USE HTML %]
3

  
4
 <div class="listtop">[% title %]</div>
5

  
6
 <form method="post" action="am.pl"name="Form">
7

  
8
  <input type="hidden" name="type" value="defaults">
9

  
10
  <p>
11
   <table>
12
    <tr class="listheading">
13
     <th colspan="4">[% 'Ranges of numbers' | $T8 %]</th>
14
    </tr>
15

  
16
    <tr>
17
     <th align="right" nowrap>[% 'Last Invoice Number' | $T8 %]</th>
18
     <td><input name="invnumber" size="10" value="[% HTML.escape(defaults_invnumber) %]"></td>
19
     <th align="right" nowrap>[% 'Last Customer Number' | $T8 %]</th>
20
     <td><input name="customernumber" size="10" value="[% HTML.escape(defaults_customernumber) %]"></td>
21
    </tr>
22

  
23
    <tr>
24
     <th align="right" nowrap>[% 'Last Credit Note Number' | $T8 %]</th>
25
     <td><input name="cnnumber" size="10" value="[% HTML.escape(defaults_cnnumber) %]"></td>
26
     <th align="right" nowrap>[% 'Last Vendor Number' | $T8 %]</th>
27
     <td><input name="vendornumber" size="10" value="[% HTML.escape(defaults_vendornumber) %]"></td>
28
    </tr>
29

  
30
    <tr>
31
     <th align="right" nowrap>[% 'Last Sales Order Number' | $T8 %]</th>
32
     <td><input name="sonumber" size="10" value="[% HTML.escape(defaults_sonumber) %]"></td>
33
    </tr>
34

  
35
    <tr>
36
     <th align="right" nowrap>[% 'Last Purchase Order Number' | $T8 %]</th>
37
     <td><input name="ponumber" size="10" value="[% HTML.escape(defaults_ponumber) %]"></td>
38
     <th align="right" nowrap>[% 'Last Article Number' | $T8 %]</th>
39
     <td><input name="articlenumber" size="10" value="[% HTML.escape(defaults_articlenumber) %]"></td>
40
    </tr>
41

  
42
    <tr>
43
     <th align="right" nowrap>[% 'Last Sales Quotation Number' | $T8 %]</th>
44
     <td><input name="sqnumber" size="10" value="[% HTML.escape(defaults_sqnumber) %]"></td>
45
     <th align="right" nowrap>[% 'Last Service Number' | $T8 %]</th>
46
     <td><input name="servicenumber" size="10" value="[% HTML.escape(defaults_servicenumber) %]"></td>
47
    </tr>
48

  
49
    <tr>
50
     <th align="right" nowrap>[% 'Last RFQ Number' | $T8 %]</th>
51
     <td><input name="rfqnumber" size="10" value="[% HTML.escape(defaults_rfqnumber) %]"></td>
52
     <th align="right" nowrap>[% 'Last Assembly Number' | $T8 %]</th>
53
     <td><input name="assemblynumber" size="10" value="[% HTML.escape(defaults_assemblynumber) %]"></td>
54
    </tr>
55

  
56
    <tr>
57
     <th align="right" nowrap>[% 'Last Sales Delivery Order Number' | $T8 %]</th>
58
     <td><input name="sdonumber" size="10" value="[% HTML.escape(defaults_sdonumber) %]"></td>
59
    </tr>
60

  
61
    <tr>
62
     <th align="right" nowrap>[% 'Last Purchase Delivery Order Number' | $T8 %]</th>
63
     <td><input name="pdonumber" size="10" value="[% HTML.escape(defaults_pdonumber) %]"></td>
64
    </tr>
65

  
66
    <tr class="listheading">
67
     <th colspan="4">[% 'Default Accounts' | $T8 %]</th>
68
    </tr>
69

  
70
    <tr>
71
     <th align="right" nowrap>[% 'Inventory Account' | $T8 %]</th>
72
     <td colspan="3">
73
      <select name="inventory_accno">
74
       [%- FOREACH row = ACCNOS_IC %]
75
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
76
       [%- END %]
77
      </select>
78
     </td>
79
    </tr>
80

  
81
    <tr>
82
     <th align="right" nowrap>[% 'Revenue Account' | $T8 %]</th>
83
     <td colspan="3">
84
      <select name="income_accno">
85
       [%- FOREACH row = ACCNOS_IC_INCOME %]
86
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
87
       [%- END %]
88
      </select>
89
     </td>
90
    </tr>
91

  
92
    <tr>
93
     <th align="right" nowrap>[% 'Expense Account' | $T8 %]</th>
94
     <td colspan="3">
95
      <select name="expense_accno">
96
       [%- FOREACH row = ACCNOS_IC_EXPENSE %]
97
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
98
       [%- END %]
99
      </select>
100
     </td>
101
    </tr>
102

  
103
    <tr>
104
     <th align="right" nowrap>[% 'Foreign Exchange Gain' | $T8 %]</th>
105
     <td colspan="3">
106
      <select name="fxgain_accno">
107
       [%- FOREACH row = ACCNOS_FX_GAIN %]
108
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
109
       [%- END %]
110
      </select>
111
     </td>
112
    </tr>
113

  
114
    <tr>
115
     <th align="right" nowrap>[% 'Foreign Exchange Loss' | $T8 %]</th>
116
     <td colspan="3">
117
      <select name="fxloss_accno">
118
       [%- FOREACH row = ACCNOS_FX_LOSS %]
119
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
120
       [%- END %]
121
      </select>
122
     </td>
123
    </tr>
124
     <tr>
125
     <th align="right" nowrap>[% 'Current assets account' | $T8 %]</th>
126
     <td colspan="3">
127
      <select name="ar_paid_accno">
128
       [%- FOREACH row = ACCNOS_AR_PAID %]
129
       <option value="[% HTML.escape(row.value) %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.name) %]</option>
130
       [%- END %]
131
      </select>
132
     </td>
133
    </tr>
134

  
135
    <tr class="listheading">
136
     <th colspan="4">[% 'Miscellaneous' | $T8 %]</th>
137
    </tr>
138

  
139
    <tr>
140
     <th align="right">[% 'Business Number' | $T8 %]</th>
141
     <td colspan="3"><input name="businessnumber" size="25" value="[% HTML.escape(defaults_businessnumber) %]"></td>
142
    </tr>
143

  
144
    <tr>
145
     <th align="right">[% 'Default currency' | $T8 %]</th>
146
     <td colspan="3">[% HTML.escape(defaultcurrency) %]</td>
147
    </tr>
148

  
149
    <tr>
150
     <input type="hidden" name="rowcount" value="[% CURRENCIES.size %]">
151
     <th align="right">[% 'Currencies' | $T8 %]</th>
152
     <td colspan="3">[% FOREACH row = CURRENCIES %]<input name="curr_[% loop.count %]" size="3" value="[% HTML.escape(row.curr) %]">
153
                                                   <input type=hidden name="old_curr_[% loop.count %]" value="[% HTML.escape(row.curr) %]">
154
                     [% END %]
155
                     <input name="new_curr" size="3" value="">
156
     </td>
157
    </tr>
158

  
159
    <tr>
160
     <th align="right">[% 'Weight unit' | $T8 %]</th>
161
 <!--    <td colspan="3"><input name="weightunit" size="20" maxlength="5" value="[% HTML.escape(defaults_weightunit) %]"></td> -->
162
     <td>
163
      [%- INCLUDE 'generic/multibox.html'
164
           name          = 'weightunit',
165
           default       = defaults_weightunit,
166
           style         = 'size:20; maxength:5',
167
           DATA          = ALL_UNITS,
168
           id_key        = 'name',
169
           label_key     = 'name',
170
           -%]
171
      </td>
172
    </tr>
173

  
174
    <tr>
175
     <th align="right">[% 'Default Customer/Vendor Language' | $T8 %]</th>
176
     <td>
177
      [%- INCLUDE 'generic/multibox.html'
178
           name          = 'language_id',
179
           default       = defaults_language_id,
180
           style         = 'size:20; maxength:5',
181
           DATA          = ALL_LANGUAGES,
182
           id_key        = 'id',
183
           label_key     = 'description',
184
           show_empty    = 1
185
           -%]
186
      </td>
187
    </tr>
188

  
189
    <tr class="listheading">
190
     <th colspan="4">[% 'Configuration' | $T8 %]</th>
191
    </tr>
192

  
193
    <tr>
194
     <th align="right">[% 'Accounting method' | $T8 %] </th>
195
     <td colspan="3"><input name="accounting_method" size="20" readonly="readonly" value="[% HTML.escape(defaults_accounting_method) | $T8 %]"></td>
196
    </tr>
197

  
198
    <tr>
199
     <th align="right">[% 'Inventory system' | $T8 %] </th>
200
     <td colspan="3"><input name="inventory_system" size="20" readonly="readonly" value="[% HTML.escape(defaults_inventory_system) | $T8 %]"></td>
201
    </tr>
202

  
203
    <tr>
204
     <th align="right">[% 'Profit determination' | $T8 %] </th>
205
     <td colspan="3"><input name="profit_determination" size="20" readonly="readonly" value="[% HTML.escape(defaults_profit_determination) | $T8 %]"></td>
206
    </tr>
207

  
208
    <tr>
209
     <th align="right">[% 'Chart of accounts' | $T8 %] </th>
210
     <td colspan="3"><input name="coa" size="20" readonly="readonly" value="[% HTML.escape(defaults_coa) | $T8 %]"></td>
211
    </tr>
212

  
213

  
214
   </table>
215
  </p>
216

  
217
  <hr height="3" noshade>
218

  
219
  <p><input type="submit" class="submit" name="action" value="[% 'Save' | $T8 %]"></p>
220

  
221
  <hr height="3" noshade>
222

  
223
  </p>
224
 </form>
templates/webpages/client_config/_default_accounts.html
1
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
2
[% SET style="width: 600px" %]
3
<div id="default_accounts">
4
 <div class='listheading'>[% LxERP.t8('Default Accounts') %]</div>
5

  
6
 <table>
7
  <tr>
8
   <td align="right">[% LxERP.t8("Inventory Account") %]</td>
9
   <td>[% L.select_tag('defaults.inventory_accno_id', SELF.accounts.ic, default=SELF.defaults.inventory_accno_id, title_sub=\make_chart_title, style=style) %]</td>
10
  </tr>
11

  
12
  <tr>
13
   <td align="right">[% LxERP.t8("Revenue Account") %]</td>
14
   <td>[% L.select_tag('defaults.income_accno_id', SELF.accounts.ic_income, default=SELF.defaults.income_accno_id, title_sub=\make_chart_title, style=style) %]</td>
15
  </tr>
16

  
17
  <tr>
18
   <td align="right">[% LxERP.t8("Expense Account") %]</td>
19
   <td>[% L.select_tag('defaults.expense_accno_id', SELF.accounts.ic_expense, default=SELF.defaults.expense_accno_id, title_sub=\make_chart_title, style=style) %]</td>
20
  </tr>
21

  
22
  <tr>
23
   <td align="right">[% LxERP.t8("Foreign Exchange Gain") %]</td>
24
   <td>[% L.select_tag('defaults.fxgain_accno_id', SELF.accounts.fx_gain, default=SELF.defaults.fxgain_accno_id, title_sub=\make_chart_title, style=style) %]</td>
25
  </tr>
26

  
27
  <tr>
28
   <td align="right">[% LxERP.t8("Foreign Exchange Loss") %]</td>
29
   <td>[% L.select_tag('defaults.fxloss_accno_id', SELF.accounts.fx_loss, default=SELF.defaults.fxloss_accno_id, title_sub=\make_chart_title, style=style) %]</td>
30
  </tr>
31

  
32
  <tr>
33
   <td align="right">[% LxERP.t8("Current assets account") %]</td>
34
   <td>[% L.select_tag('defaults.ar_paid_accno_id', SELF.accounts.ar_paid, default=SELF.defaults.ar_paid_accno_id, title_sub=\make_chart_title, style=style) %]</td>
35
  </tr>
36
 </table>
37
</div>
templates/webpages/client_config/_miscellaneous.html
1
[%- USE LxERP -%][%- USE L -%]
1
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%]
2
[% SET style="width: 200px" %]
2 3
<div id="miscellaneous">
3
 <div class='listheading'>[% LxERP.t8('Weight') %]</div>
4
 <div class="listheading">[% LxERP.t8("Miscellaneous") %]</div>
4 5

  
5 6
 <table>
6 7
  <tr>
7
   <td align="right">[% LxERP.t8('Show weights') %]</td>
8
   <td>
9
    [% L.yes_no_tag('defaults.show_weight', SELF.defaults.show_weight) %]
8
   <td align="right">[% LxERP.t8("Business Number") %]</td>
9
   <td>[% L.input_tag('defaults.businessnumber', SELF.defaults.businessnumber, style=style) %]</td>
10
  </tr>
11

  
12
  <tr>
13
   <td align="right">[% LxERP.t8('Default Customer/Vendor Language') %]</td>
14
   <td>[% L.select_tag('defaults.language_id', SELF.all_languages, title_key='description', default=SELF.defaults.language_id, with_empty=1, style=style) %]</td>
15
  </tr>
16
 </table>
17

  
18
 <div class="listheading">[% LxERP.t8("Currencies") %]</div>
19

  
20
 <table>
21
  <tr>
22
   <th></th>
23
   <th>[% LxERP.t8("Default currency") %]</th>
24
   <th>[% LxERP.t8("Currency name") %]</th>
25
   <th>[% LxERP.t8("Hints") %]</th>
26
  </tr>
27

  
28
[% FOREACH currency = SELF.all_currencies %]
29
  <tr>
30
   <td align="right">[% IF loop.count == 1 %][% LxERP.t8("Currencies") %][% END %]</td>
31
   <td align="center">
32
    [% L.hidden_tag("currencies[+].id", currency.id) %]
33
    [% L.radio_button_tag('defaults.currency_id', value=currency.id, id='defaults.currency_id_' _ currency.id, checked=(SELF.defaults.currency_id == currency.id)) %]
10 34
   </td>
11 35
   <td>
12
    [% LxERP.t8('Show the weights of articles and the total weight in orders, invoices and delivery notes?') %]<br>
36
    [% L.input_tag("currencies[].name", currency.name, style=style) %]
13 37
   </td>
38
   <td>[% IF loop.count == 1 %][% LxERP.t8("Edit the currency names in order to rename them.") %][%- END %]</td>
39
  </tr>
40
[% END %]
41

  
42
  <tr>
43
   <td align="right">[% LxERP.t8("Add new currency") %]</td>
44
   <td align="center">[% L.radio_button_tag('defaults.currency_id', value=-1, id='defaults.currency_id__1', checked=(SELF.defaults.currency_id == -1)) %]</td>
45
   <td>[% L.input_tag("new_currency", FORM.new_currency, style=style) %]</td>
46
  </tr>
47
 </table>
48

  
49
 <div class="listheading">[% LxERP.t8("Weight") %]</div>
50

  
51
 <table>
52
  <tr>
53
   <td align="right">[% LxERP.t8("Weight unit") %]</td>
54
   <td>[% L.select_tag('defaults.weightunit', SELF.all_weightunits, default=SELF.defaults.weightunit, value_key='name', title_key='name', style=style) %]</td>
55
  </tr>
56

  
57
  <tr>
58
   <td align="right">[% LxERP.t8('Show weights') %]</td>
59
   <td>[% L.yes_no_tag('defaults.show_weight', SELF.defaults.show_weight, style=style) %]</td>
60
   <td>[% LxERP.t8('Show the weights of articles and the total weight in orders, invoices and delivery notes?') %]</td>
14 61
  </tr>
15 62
 </table>
16 63
</div>
templates/webpages/client_config/_ranges_of_numbers.html
1
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%]
2
<div id="ranges_of_numbers">
3
 <div class='listheading'>[% LxERP.t8('Ranges of numbers') %]</div>
4

  
5
 <table>
6
  <tr>
7
   <td align="right" nowrap>[% LxERP.t8('Last Invoice Number') %]</td>
8
   <td>[% L.input_tag("defaults.invnumber", SELF.defaults.invnumber, size="15") %]</td>
9
   <td align="right" nowrap>[% LxERP.t8('Last Customer Number') %]</td>
10
   <td>[% L.input_tag("defaults.customernumber", SELF.defaults.customernumber, size="15") %]</td>
11
  </tr>
12

  
13
  <tr>
14
   <td align="right" nowrap>[% LxERP.t8('Last Credit Note Number') %]</td>
15
   <td>[% L.input_tag("defaults.cnnumber", SELF.defaults.cnnumber, size="15") %]</td>
16
   <td align="right" nowrap>[% LxERP.t8('Last Vendor Number') %]</td>
17
   <td>[% L.input_tag("defaults.vendornumber", SELF.defaults.vendornumber, size="15") %]</td>
18
  </tr>
19

  
20
  <tr>
21
   <td align="right" nowrap>[% LxERP.t8('Last Sales Order Number') %]</td>
22
   <td>[% L.input_tag("defaults.sonumber", SELF.defaults.sonumber, size="15") %]</td>
23
  </tr>
24

  
25
  <tr>
26
   <td align="right" nowrap>[% LxERP.t8('Last Purchase Order Number') %]</td>
27
   <td>[% L.input_tag("defaults.ponumber", SELF.defaults.ponumber, size="15") %]</td>
28
   <td align="right" nowrap>[% LxERP.t8('Last Article Number') %]</td>
29
   <td>[% L.input_tag("defaults.articlenumber", SELF.defaults.articlenumber, size="15") %]</td>
30
  </tr>
31

  
32
  <tr>
33
   <td align="right" nowrap>[% LxERP.t8('Last Sales Quotation Number') %]</td>
34
   <td>[% L.input_tag("defaults.sqnumber", SELF.defaults.sqnumber, size="15") %]</td>
35
   <td align="right" nowrap>[% LxERP.t8('Last Service Number') %]</td>
36
   <td>[% L.input_tag("defaults.servicenumber", SELF.defaults.servicenumber, size="15") %]</td>
37
  </tr>
38

  
39
  <tr>
40
   <td align="right" nowrap>[% LxERP.t8('Last RFQ Number') %]</td>
41
   <td>[% L.input_tag("defaults.rfqnumber", SELF.defaults.rfqnumber, size="15") %]</td>
42
   <td align="right" nowrap>[% LxERP.t8('Last Assembly Number') %]</td>
43
   <td>[% L.input_tag("defaults.assemblynumber", SELF.defaults.assemblynumber, size="15") %]</td>
44
  </tr>
45

  
46
  <tr>
47
   <td align="right" nowrap>[% LxERP.t8('Last Sales Delivery Order Number') %]</td>
48
   <td>[% L.input_tag("defaults.sdonumber", SELF.defaults.sdonumber, size="15") %]</td>
49
  </tr>
50

  
51
  <tr>
52
   <td align="right" nowrap>[% LxERP.t8('Last Purchase Delivery Order Number') %]</td>
53
   <td>[% L.input_tag("defaults.pdonumber", SELF.defaults.pdonumber, size="15") %]</td>
54
  </tr>
55
 </table>
56
</div>
templates/webpages/client_config/form.html
1
[%- USE T8 %][%- USE L %][% USE LxERP %][% USE HTML %]
2
[%- USE JavaScript -%]
1
[%- USE L %][% USE LxERP %][% USE HTML %][%- USE JavaScript -%]
3 2
 <script type="text/javascript" src="js/common.js"></script>
4 3
 <script type="text/javascript" src="js/parts_language_selection.js"></script>
5 4
 <script type="text/javascript">
......
47 46
<form action='controller.pl' method='POST'>
48 47
 <div class="tabwidget">
49 48
  <ul>
50
   <li><a href="#posting_configuration">[% 'Posting Configuration' | $T8 %]</a></li>
51
   <li><a href="#datev_check_configuration">[% 'DATEV check configuration' | $T8 %]</a></li>
52
   <li><a href="#orders_deleteable">[% 'Orders / Delivery Orders deleteable' | $T8 %]</a></li>
53
   <li><a href="#warehouse">[% 'Warehouse' | $T8 %]</a></li>
54
   <li><a href="#miscellaneous">[% 'Miscellaneous' | $T8 %]</a></li>
49
   <li><a href="#miscellaneous">[% LxERP.t8('Miscellaneous') %]</a></li>
50
   <li><a href="#ranges_of_numbers">[% LxERP.t8('Ranges of numbers') %]</a></li>
51
   <li><a href="#default_accounts">[% LxERP.t8('Default Accounts') %]</a></li>
52
   <li><a href="#posting_configuration">[% LxERP.t8('Posting Configuration') %]</a></li>
53
   <li><a href="#datev_check_configuration">[% LxERP.t8('DATEV check configuration') %]</a></li>
54
   <li><a href="#orders_deleteable">[% LxERP.t8('Orders / Delivery Orders deleteable') %]</a></li>
55
   <li><a href="#warehouse">[% LxERP.t8('Warehouse') %]</a></li>
55 56
  </ul>
56 57

  
58
[% PROCESS 'client_config/_ranges_of_numbers.html' %]
59
[% PROCESS 'client_config/_default_accounts.html' %]
57 60
[% PROCESS 'client_config/_posting_configuration.html' %]
58 61
[% PROCESS 'client_config/_datev_check_configuration.html' %]
59 62
[% PROCESS 'client_config/_orders_deleteable.html' %]

Auch abrufbar als: Unified diff