Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 3424bf80

Von Bernd Bleßmann vor etwa 12 Jahren hinzugefügt

  • ID 3424bf80214aede7a8318c39b754290738e4aea0
  • Vorgänger 4b31e6ba
  • Nachfolger d1d96e5d

Option für Datev-Check in Mandantenkonfiguration verschoben.

Unterschiede anzeigen:

SL/AP.pm
355 355
  IO->set_datepaid(table => 'ap', id => $form->{id}, dbh => $dbh);
356 356

  
357 357
  # safety check datev export
358
  if ($::lx_office_conf{datev_check}{check_on_ap_transaction}) {
358
  if ($::instance_conf->get_datev_check_on_ap_transaction) {
359 359
    my $transdate = $::form->{transdate} ? DateTime->from_lxoffice($::form->{transdate}) : undef;
360 360
    $transdate  ||= DateTime->today;
361 361

  
SL/AR.pm
276 276
  IO->set_datepaid(table => 'ar', id => $form->{id}, dbh => $dbh);
277 277

  
278 278
  # safety check datev export
279
  if ($::lx_office_conf{datev_check}{check_on_ar_transaction}) {
279
  if ($::instance_conf->get_datev_check_on_ar_transaction) {
280 280
    my $transdate = $::form->{transdate} ? DateTime->from_lxoffice($::form->{transdate}) : undef;
281 281
    $transdate  ||= DateTime->today;
282 282

  
SL/Controller/ClientConfig.pm
19 19
  $self->{payments_changeable} = SL::DB::Default->get->payments_changeable;
20 20
  $self->{show_bestbefore}     = SL::DB::Default->get->show_bestbefore;
21 21

  
22
  map { $self->{$_} = SL::DB::Default->get->$_ } qw(datev_check_on_sales_invoice datev_check_on_purchase_invoice datev_check_on_ar_transaction datev_check_on_ap_transaction datev_check_on_gl_transaction);
23
  # datev check: not implemented yet:
24
  #check_on_cash_and_receipt = 0
25
  #check_on_dunning = 0
26
  #check_on_sepa_import = 0
27

  
22 28
  $self->render('client_config/form', title => $::locale->text('Client Configuration'));
23 29
}
24 30

  
......
29 35
  SL::DB::Default->get->update_attributes('payments_changeable' => $::form->{payments_changeable});
30 36
  SL::DB::Default->get->update_attributes('show_bestbefore'     => $::form->{show_bestbefore});
31 37

  
38
  map { SL::DB::Default->get->update_attributes($_ => $::form->{$_}); } qw(datev_check_on_sales_invoice datev_check_on_purchase_invoice datev_check_on_ar_transaction datev_check_on_ap_transaction datev_check_on_gl_transaction);
39

  
32 40
  flash_later('info', $::locale->text('Client Configuration saved!'));
33 41

  
34 42
  $self->redirect_to(action => 'edit');
SL/DB/MetaSetup/Default.pm
10 10
  table   => 'defaults',
11 11

  
12 12
  columns => [
13
    inventory_accno_id         => { type => 'integer' },
14
    income_accno_id            => { type => 'integer' },
15
    expense_accno_id           => { type => 'integer' },
16
    fxgain_accno_id            => { type => 'integer' },
17
    fxloss_accno_id            => { type => 'integer' },
18
    invnumber                  => { type => 'text' },
19
    sonumber                   => { type => 'text' },
20
    weightunit                 => { type => 'varchar', length => 5 },
21
    businessnumber             => { type => 'text' },
22
    version                    => { type => 'varchar', length => 8 },
23
    curr                       => { type => 'text' },
24
    closedto                   => { type => 'date' },
25
    revtrans                   => { type => 'boolean', default => 'false' },
26
    ponumber                   => { type => 'text' },
27
    sqnumber                   => { type => 'text' },
28
    rfqnumber                  => { type => 'text' },
29
    customernumber             => { type => 'text' },
30
    vendornumber               => { type => 'text' },
31
    audittrail                 => { type => 'boolean', default => 'false' },
32
    articlenumber              => { type => 'text' },
33
    servicenumber              => { type => 'text' },
34
    coa                        => { type => 'text' },
35
    itime                      => { type => 'timestamp', default => 'now()' },
36
    mtime                      => { type => 'timestamp' },
37
    rmanumber                  => { type => 'text' },
38
    cnnumber                   => { type => 'text' },
39
    dunning_ar_amount_fee      => { type => 'integer' },
40
    dunning_ar_amount_interest => { type => 'integer' },
41
    dunning_ar                 => { type => 'integer' },
42
    pdonumber                  => { type => 'text' },
43
    sdonumber                  => { type => 'text' },
44
    ar_paid_accno_id           => { type => 'integer' },
45
    id                         => { type => 'serial', not_null => 1 },
46
    accounting_method          => { type => 'text' },
47
    inventory_system           => { type => 'text' },
48
    profit_determination       => { type => 'text' },
49
    language_id                => { type => 'integer' },
50
    payments_changeable        => { type => 'integer', default => '0', not_null => 1 },
51
    show_bestbefore            => { type => 'boolean', default => 'false' },
13
    inventory_accno_id              => { type => 'integer' },
14
    income_accno_id                 => { type => 'integer' },
15
    expense_accno_id                => { type => 'integer' },
16
    fxgain_accno_id                 => { type => 'integer' },
17
    fxloss_accno_id                 => { type => 'integer' },
18
    invnumber                       => { type => 'text' },
19
    sonumber                        => { type => 'text' },
20
    weightunit                      => { type => 'varchar', length => 5 },
21
    businessnumber                  => { type => 'text' },
22
    version                         => { type => 'varchar', length => 8 },
23
    curr                            => { type => 'text' },
24
    closedto                        => { type => 'date' },
25
    revtrans                        => { type => 'boolean', default => 'false' },
26
    ponumber                        => { type => 'text' },
27
    sqnumber                        => { type => 'text' },
28
    rfqnumber                       => { type => 'text' },
29
    customernumber                  => { type => 'text' },
30
    vendornumber                    => { type => 'text' },
31
    audittrail                      => { type => 'boolean', default => 'false' },
32
    articlenumber                   => { type => 'text' },
33
    servicenumber                   => { type => 'text' },
34
    coa                             => { type => 'text' },
35
    itime                           => { type => 'timestamp', default => 'now()' },
36
    mtime                           => { type => 'timestamp' },
37
    rmanumber                       => { type => 'text' },
38
    cnnumber                        => { type => 'text' },
39
    dunning_ar_amount_fee           => { type => 'integer' },
40
    dunning_ar_amount_interest      => { type => 'integer' },
41
    dunning_ar                      => { type => 'integer' },
42
    pdonumber                       => { type => 'text' },
43
    sdonumber                       => { type => 'text' },
44
    ar_paid_accno_id                => { type => 'integer' },
45
    id                              => { type => 'serial', not_null => 1 },
46
    accounting_method               => { type => 'text' },
47
    inventory_system                => { type => 'text' },
48
    profit_determination            => { type => 'text' },
49
    language_id                     => { type => 'integer' },
50
    payments_changeable             => { type => 'integer', default => '0', not_null => 1 },
51
    show_bestbefore                 => { type => 'boolean', default => 'false' },
52
    datev_check_on_sales_invoice    => { type => 'boolean', default => 'true' },
53
    datev_check_on_purchase_invoice => { type => 'boolean', default => 'true' },
54
    datev_check_on_ar_transaction   => { type => 'boolean', default => 'true' },
55
    datev_check_on_ap_transaction   => { type => 'boolean', default => 'true' },
56
    datev_check_on_gl_transaction   => { type => 'boolean', default => 'true' },
52 57
  ],
53 58

  
54 59
  primary_key_columns => [ 'id' ],
SL/GL.pm
186 186
  }
187 187

  
188 188
  # safety check datev export
189
  if ($::lx_office_conf{datev_check}{check_on_gl_transaction}) {
189
  if ($::instance_conf->get_datev_check_on_gl_transaction) {
190 190
    my $transdate = $::form->{transdate} ? DateTime->from_lxoffice($::form->{transdate}) : undef;
191 191
    $transdate  ||= DateTime->today;
192 192

  
SL/IR.pm
686 686
                               'table'   => 'ap',);
687 687

  
688 688
  # safety check datev export
689
  if ($::lx_office_conf{datev_check}{check_on_purchase_invoice}) {
689
  if ($::instance_conf->get_datev_check_on_purchase_invoice) {
690 690
    my $transdate = $::form->{invdate} ? DateTime->from_lxoffice($::form->{invdate}) : undef;
691 691
    $transdate  ||= DateTime->today;
692 692

  
SL/IS.pm
1077 1077
                               'table'   => 'ar',);
1078 1078

  
1079 1079
  # safety check datev export
1080
  if ($::lx_office_conf{datev_check}{check_on_sales_invoice}) {
1080
  if ($::instance_conf->get_datev_check_on_sales_invoice) {
1081 1081
    my $transdate = $::form->{invdate} ? DateTime->from_lxoffice($::form->{invdate}) : undef;
1082 1082
    $transdate  ||= DateTime->today;
1083 1083

  
SL/InstanceConfiguration.pm
49 49
  return $self->{data}->{profit_determination};
50 50
}
51 51

  
52
sub get_datev_check_on_sales_invoice {
53
  my ($self) = @_;
54
  return $self->{data}->{datev_check_on_sales_invoice};
55
}
56

  
57
sub get_datev_check_on_purchase_invoice {
58
  my ($self) = @_;
59
  return $self->{data}->{datev_check_on_purchase_invoice};
60
}
61

  
62
sub get_datev_check_on_ar_transaction {
63
  my ($self) = @_;
64
  return $self->{data}->{datev_check_on_ar_transaction};
65
}
66

  
67
sub get_datev_check_on_ap_transaction {
68
  my ($self) = @_;
69
  return $self->{data}->{datev_check_on_ap_transaction};
70
}
71

  
72
sub get_datev_check_on_gl_transaction {
73
  my ($self) = @_;
74
  return $self->{data}->{datev_check_on_gl_transaction};
75
}
76

  
52 77
sub get_show_bestbefore {
53 78
  my ($self) = @_;
54 79
  return $self->{data}->{show_bestbefore};
......
106 131

  
107 132
Returns the default profit determination method, balance or income
108 133

  
134
=item C<get_datev_check_on_sales_invoice>
135

  
136
Returns true if datev check should be performed on sales invoices
137

  
138
=item C<get_datev_check_on_purchase_invoice>
139

  
140
Returns true if datev check should be performed on purchase invoices
141

  
142
=item C<get_datev_check_on_ar_transaction>
143

  
144
Returns true if datev check should be performed on ar transactions
145

  
146
=item C<get_datev_check_on_ap_transaction>
147

  
148
Returns true if datev check should be performed on ap transactions
149

  
150
=item C<get_datev_check_on_gl_transaction>
151

  
152
Returns true if datev check should be performed on gl transactions
153

  
109 154
=item C<get_show_bestbefore>
110 155

  
111 156
Returns the default behavior for showing best before date, true or false
config/kivitendo.conf.default
198 198
# template. currently txt and html templates are recognized and correctly mime send.
199 199
email_template = templates/mail/self_test/status_mail.txt
200 200

  
201
[datev_check]
202
# it is possible to make a quick DATEV export everytime you post a record to ensure things
203
# work nicely with their data requirements. This will result in a slight overhead though
204
# you can enable this for each type of record independantly.
205

  
206
# check when a sales invoice or a payment for a sales invoice is posted
207
check_on_sales_invoice = 1
208
# check when a purchase invoice or a payment for a purchase invoice is posted
209
check_on_purchase_invoice = 1
210
# check when an ar transaction is posted
211
check_on_ar_transaction = 1
212
# check when an ap transaction is posted
213
check_on_ap_transaction = 1
214
# check when a gl transaction is posted
215
check_on_gl_transaction = 1
216

  
217
# not implemented yet:
218
#check_on_cash_and_receipt = 0
219
#check_on_dunning = 0
220
#check_on_sepa_import = 0
221

  
222 201
[console]
223 202
# autologin to use if none is given
224 203
login =
locale/de/all
399 399
  'Check'                       => 'Scheck',
400 400
  'Check Details'               => 'Bitte Angaben überprüfen',
401 401
  'Check for duplicates'        => 'Dublettencheck',
402
  'Check on ap transaction'     => 'Prüfen bei Kreditorenbuchung',
403
  'Check on ar transaction'     => 'Prüfen bei Debitorenbuchung',
404
  'Check on gl transaction'     => 'Prüfen bei Dialogbuchung',
405
  'Check on purchase invoice'   => 'Prüfen bei Einkaufsrechnung',
406
  'Check on sales invoice'      => 'Prüfen bei Verkaufsrechnung',
402 407
  'Checks'                      => 'Schecks',
403 408
  'Choose Customer'             => 'Endkunde wählen:',
404 409
  'Choose Outputformat'         => 'Ausgabeformat auswählen...',
......
542 547
  'DATEV - Export Assistent'    => 'DATEV-Exportassistent',
543 548
  'DATEV Angaben'               => 'DATEV-Angaben',
544 549
  'DATEV Export'                => 'DATEV-Export',
550
  'DATEV check configuration'   => 'Einstellungen für DATEV-Prüfung',
545 551
  'DATEV check returned errors:' => 'Die DATEV Prüfung dieser Buchung ergab Fehler:',
546 552
  'DATEX - Export Assistent'    => 'DATEV-Exportassistent',
547 553
  'DELETED'                     => 'Gelöscht',
......
1036 1042
  'It is possible that even after such a correction there is something wrong with this transaction (e.g. taxes that don\'t match the selected taxkey). Therefore you should re-run the general ledger analysis.' => 'Auch nach einer Korrektur kann es mit dieser Buchung noch weitere Probleme geben (z.B. nicht zum Steuerschlüssel passende Steuern), weshalb ein erneutes Ausführen der Hauptbuchanalyse empfohlen wird.',
1037 1043
  'It is possible to do this automatically for some Buchungsgruppen, but not for all.' => 'Es ist m&ouml;glich, dies f&uuml;r einige, aber nicht f&uuml;r alle Buchungsgruppen automatisch zu erledigen.',
1038 1044
  'It is possible to do this automatically for some units, but for others the user has to chose the new unit.' => 'Das ist f&uuml;r einige Einheiten automatisch m&ouml;glich, aber bei anderen muss der Benutzer die neue Einheit ausw&auml;hlen.',
1045
  'It is possible to make a quick DATEV export everytime you post a record to ensure things work nicely with their data requirements. This will result in a slight overhead though you can enable this for each type of record independantly.' => 'Es ist möglich, bei jeder Buchung einen schnellen DATEV-Export durchzuführen, um sicherzustellen, dass die Datensätze den DATEV-Anforderungen genügen. Da dies einen kleinen Overhead bedeutet, lässt sich dei Einstellung für jeden Buchungstyp getrennt einstellen.',
1039 1046
  'It may optionally be compressed with &quot;gzip&quot;.' => 'Sie darf optional mit &quot;gzip&quot; komprimiert sein.',
1040 1047
  'It will simply set the taxkey to 0 (meaning "no taxes") which is the correct value for such inventory transactions.' => 'Es wird einfach die Steuerschlüssel auf  0 setzen, was "keine Steuer" bedeutet und für solche Warenbestandsbuchungen der richtige Wert ist.',
1041 1048
  'Item deleted!'               => 'Artikel gelöscht!',
......
1375 1382
  'Payments'                    => 'Zahlungsausgänge',
1376 1383
  'Payments Changeable'         => 'Änderbarkeit von Zahlungen',
1377 1384
  'Per. Inv.'                   => 'Wied. Rech.',
1385
  'Perform check when a gl transaction is posted?' => 'Prüfung durchführen, wenn eine Dialogbuchung gebucht wird?',
1386
  'Perform check when a purchase invoice or a payment for a purchase invoice is posted?' => 'Prüfung durchführen, wenn eine Einkaufsrechnung oder ein Zahlungsausgang hierfür gebucht wird?',
1387
  'Perform check when a sales invoice or a payment for a sales invoice is posted?' => 'Prüfung durchführen, wenn eine Verkaufsrechnung oder ein Zahlungseingang hierfür gebucht wird?',
1388
  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn Kreditorenbuchung gebucht wird?',
1389
  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn Debiotorenbuchung gebucht wird?',
1378 1390
  'Period'                      => 'Zeitraum',
1379 1391
  'Period:'                     => 'Zeitraum:',
1380 1392
  'Periodic Invoices'           => 'Wiederkehrende Rechnungen',
......
2353 2365
  'not yet executed'            => 'Noch nicht ausgeführt',
2354 2366
  'number'                      => 'Nummer',
2355 2367
  'oe.pl::search called with unknown type' => 'oe.pl::search mit unbekanntem Typ aufgerufen',
2356
  'one-time execution'          => 'einmalige Ausführung',
2357 2368
  'on the same day'             => 'am selben Tag',
2369
  'one-time execution'          => 'einmalige Ausführung',
2358 2370
  'only OB Transactions'        => 'nur EB-Buchungen',
2359 2371
  'open'                        => 'Offen',
2360 2372
  'order'                       => 'Reihenfolge',
locale/de_DE/all
390 390
  'Check'                       => 'Scheck',
391 391
  'Check Details'               => 'Bitte Angaben überprüfen',
392 392
  'Check for duplicates'        => 'Dublettencheck',
393
  'Check on ap transaction'     => 'Prüfen bei Kreditorenbuchung',
394
  'Check on ar transaction'     => 'Prüfen bei Debitorenbuchung',
395
  'Check on gl transaction'     => 'Prüfen bei Dialogbuchung',
396
  'Check on purchase invoice'   => 'Prüfen bei Einkaufsrechnung',
397
  'Check on sales invoice'      => 'Prüfen bei Verkaufsrechnung',
393 398
  'Checks'                      => 'Schecks',
394 399
  'Choose Customer'             => 'Endkunde wählen:',
395 400
  'Choose Outputformat'         => 'Ausgabeformat auswählen...',
......
520 525
  'Customers'                   => 'Kunden',
521 526
  'Customers and vendors'       => 'Kunden und Lieferanten',
522 527
  'Customized Report'           => 'Vorgewählte Zeiträume',
528
  'DATEV check configuration'   => 'Einstellungen für DATEV-Prüfung',
523 529
  'DATEV - Export Assistent'    => 'DATEV-Exportassistent',
524 530
  'DATEV Angaben'               => 'DATEV-Angaben',
525 531
  'DATEV Export'                => 'DATEV-Export',
......
1004 1010
  'It is possible that even after such a correction there is something wrong with this transaction (e.g. taxes that don\'t match the selected taxkey). Therefore you should re-run the general ledger analysis.' => 'Auch nach einer Korrektur kann es mit dieser Buchung noch weitere Probleme geben (z.B. nicht zum Steuerschlüssel passende Steuern), weshalb ein erneutes Ausführen der Hauptbuchanalyse empfohlen wird.',
1005 1011
  'It is possible to do this automatically for some Buchungsgruppen, but not for all.' => 'Es ist m&ouml;glich, dies f&uuml;r einige, aber nicht f&uuml;r alle Buchungsgruppen automatisch zu erledigen.',
1006 1012
  'It is possible to do this automatically for some units, but for others the user has to chose the new unit.' => 'Das ist f&uuml;r einige Einheiten automatisch m&ouml;glich, aber bei anderen muss der Benutzer die neue Einheit ausw&auml;hlen.',
1013
  'It is possible to make a quick DATEV export everytime you post a record to ensure things work nicely with their data requirements. This will result in a slight overhead though you can enable this for each type of record independantly.' => 'Es ist möglich, bei jeder Buchung einen schnellen DATEV-Export durchzuführen, um sicherzustellen, dass die Datensätze den DATEV-Anforderungen genügen. Da dies einen kleinen Overhead bedeutet, lässt sich dei Einstellung für jeden Buchungstyp getrennt einstellen.',
1007 1014
  'It may optionally be compressed with &quot;gzip&quot;.' => 'Sie darf optional mit &quot;gzip&quot; komprimiert sein.',
1008 1015
  'It will simply set the taxkey to 0 (meaning "no taxes") which is the correct value for such inventory transactions.' => 'Es wird einfach die Steuerschlüssel auf  0 setzen, was "keine Steuer" bedeutet und für solche Warenbestandsbuchungen der richtige Wert ist.',
1009 1016
  'Item deleted!'               => 'Artikel gelöscht!',
......
1339 1346
  'Payments'                    => 'Zahlungsausgänge',
1340 1347
  'Payments Changeable'         => 'Änderbarkeit von Zahlungen',
1341 1348
  'Per. Inv.'                   => 'Wied. Rech.',
1349
  'Perform check when a gl transaction is posted?' => 'Prüfung durchführen, wenn eine Dialogbuchung gebucht wird?',
1350
  'Perform check when a purchase invoice or a payment for a purchase invoice is posted?' => 'Prüfung durchführen, wenn eine Einkaufsrechnung oder ein Zahlungsausgang hierfür gebucht wird?',
1351
  'Perform check when a sales invoice or a payment for a sales invoice is posted?' => 'Prüfung durchführen, wenn eine Verkaufsrechnung oder ein Zahlungseingang hierfür gebucht wird?',
1352
  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn Kreditorenbuchung gebucht wird?',
1353
  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn Debiotorenbuchung gebucht wird?',
1342 1354
  'Period'                      => 'Zeitraum',
1343 1355
  'Period:'                     => 'Zeitraum:',
1344 1356
  'Periodic Invoices'           => 'Wiederkehrende Rechnungen',
locale/en/all
391 391
  'Check'                       => 'Cheque',
392 392
  'Check Details'               => '',
393 393
  'Check for duplicates'        => '',
394
  'Check on ap transaction'     => '',
395
  'Check on ar transaction'     => '',
396
  'Check on gl transaction'     => '',
397
  'Check on purchase invoice'   => '',
398
  'Check on sales invoice'      => '',
394 399
  'Checks'                      => '',
395 400
  'Choose Customer'             => '',
396 401
  'Choose Outputformat'         => '',
......
531 536
  'DATEV - Export Assistent'    => '',
532 537
  'DATEV Angaben'               => '',
533 538
  'DATEV Export'                => '',
539
  'DATEV check configuration'   => '',
534 540
  'DATEV check returned errors:' => '',
535 541
  'DATEX - Export Assistent'    => '',
536 542
  'DELETED'                     => '',
......
1020 1026
  'It is possible that even after such a correction there is something wrong with this transaction (e.g. taxes that don\'t match the selected taxkey). Therefore you should re-run the general ledger analysis.' => '',
1021 1027
  'It is possible to do this automatically for some Buchungsgruppen, but not for all.' => '',
1022 1028
  'It is possible to do this automatically for some units, but for others the user has to chose the new unit.' => '',
1029
  'It is possible to make a quick DATEV export everytime you post a record to ensure things work nicely with their data requirements. This will result in a slight overhead though you can enable this for each type of record independantly.' => '',
1023 1030
  'It may optionally be compressed with &quot;gzip&quot;.' => '',
1024 1031
  'It will simply set the taxkey to 0 (meaning "no taxes") which is the correct value for such inventory transactions.' => '',
1025 1032
  'Item deleted!'               => '',
......
1355 1362
  'Payments'                    => '',
1356 1363
  'Payments Changeable'         => '',
1357 1364
  'Per. Inv.'                   => '',
1365
  'Perform check when a gl transaction is posted?' => '',
1366
  'Perform check when a purchase invoice or a payment for a purchase invoice is posted?' => '',
1367
  'Perform check when a sales invoice or a payment for a sales invoice is posted?' => '',
1368
  'Perform check when an ap transaction is posted?' => '',
1369
  'Perform check when an ar transaction is posted?' => '',
1358 1370
  'Period'                      => '',
1359 1371
  'Period:'                     => '',
1360 1372
  'Periodic Invoices'           => '',
sql/Pg-upgrade2/defaults_datev_check.pl
1
# @tag: defaults_datev_check
2
# @description: Einstellung für DATEV-Überprüfungen (datev_check) vom Config-File in die DB verlagern.
3
# @depends: release_2_7_0
4
# @charset: utf-8
5

  
6
use utf8;
7
use strict;
8

  
9
die("This script cannot be run from the command line.") unless ($main::form);
10

  
11
sub mydberror {
12
  my ($msg) = @_;
13
  die($dbup_locale->text("Database update error:") .
14
      "<br>$msg<br>" . $DBI::errstr);
15
}
16

  
17
sub do_query {
18
  my ($query, $may_fail) = @_;
19

  
20
  if (!$dbh->do($query)) {
21
    mydberror($query) unless ($may_fail);
22
    $dbh->rollback();
23
    $dbh->begin_work();
24
  }
25
}
26

  
27
sub do_update {
28

  
29
  # this query will fail if column already exist (new database)
30
  do_query(qq|ALTER TABLE defaults ADD COLUMN datev_check_on_sales_invoice boolean    DEFAULT true|, 1);
31
  do_query(qq|ALTER TABLE defaults ADD COLUMN datev_check_on_purchase_invoice boolean DEFAULT true|, 1);
32
  do_query(qq|ALTER TABLE defaults ADD COLUMN datev_check_on_ar_transaction boolean   DEFAULT true|, 1);
33
  do_query(qq|ALTER TABLE defaults ADD COLUMN datev_check_on_ap_transaction boolean   DEFAULT true|, 1);
34
  do_query(qq|ALTER TABLE defaults ADD COLUMN datev_check_on_gl_transaction boolean   DEFAULT true|, 1);
35

  
36
  # check current configuration and set default variables accordingly, so that
37
  # kivitendo's behaviour isn't changed by this update
38
  # if checks are not set in config set it to true
39
  foreach my $check (qw(check_on_sales_invoice check_on_purchase_invoice check_on_ar_transaction check_on_ap_transaction check_on_gl_transaction)) {
40
    my $check_set = 1;
41
    if (!$::lx_office_conf{datev_check}->{$check}) {
42
      $check_set = 0;
43
    }
44

  
45
    my $update_column = "UPDATE defaults SET datev_$check = '$check_set';";
46
    do_query($update_column);
47
  }
48

  
49

  
50
  return 1;
51
}
52

  
53
return do_update();
54

  
templates/webpages/client_config/form.html
20 20
 <tr> </tr>
21 21
 <tr> </tr>
22 22

  
23
 <tr class='listheading'>
24
   <th colspan="3">[% 'DATEV check configuration' | $T8 %]</th>
25
 </tr>
26
 <tr>
27
   <td colspan="3">[% 'It is possible to make a quick DATEV export everytime you post a record to ensure things work nicely with their data requirements. This will result in a slight overhead though you can enable this for each type of record independantly.' | $T8 %]</td>
28
 </tr>
29
 <tr>
30
   <td align="right">[% 'Check on sales invoice' | $T8 %]</td>
31
   <td>[% L.yes_no_tag('datev_check_on_sales_invoice', SELF.datev_check_on_sales_invoice) %]</td>
32
   <td>[% 'Perform check when a sales invoice or a payment for a sales invoice is posted?' | $T8 %]</td>
33
 </tr>
34
 <tr>
35
   <td align="right">[% 'Check on purchase invoice' | $T8 %]</td>
36
   <td>[% L.yes_no_tag('datev_check_on_purchase_invoice', SELF.datev_check_on_purchase_invoice) %]</td>
37
   <td>[% 'Perform check when a purchase invoice or a payment for a purchase invoice is posted?' | $T8 %]</td>
38
 </tr>
39
 <tr>
40
   <td align="right">[% 'Check on ar transaction' | $T8 %]</td>
41
   <td>[% L.yes_no_tag('datev_check_on_ar_transaction', SELF.datev_check_on_ar_transaction) %]</td>
42
   <td>[% 'Perform check when an ar transaction is posted?' | $T8 %]</td>
43
 </tr>
44
 <tr>
45
   <td align="right">[% 'Check on ap transaction' | $T8 %]</td>
46
   <td>[% L.yes_no_tag('datev_check_on_ap_transaction', SELF.datev_check_on_ap_transaction) %]</td>
47
   <td>[% 'Perform check when an ap transaction is posted?' | $T8 %]</td>
48
 </tr>
49
 <tr>
50
   <td align="right">[% 'Check on gl transaction' | $T8 %]</td>
51
   <td>[% L.yes_no_tag('datev_check_on_gl_transaction', SELF.datev_check_on_gl_transaction) %]</td>
52
   <td>[% 'Perform check when a gl transaction is posted?' | $T8 %]</td>
53
 </tr>
54

  
55
 <tr> </tr>
56
 <tr> </tr>
57

  
23 58
 <tr class='listheading'>
24 59
   <th colspan="3">[% 'Warehouse' | $T8 %]</th>
25 60
 </tr>

Auch abrufbar als: Unified diff