Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
authorG. Richardson <information@lx-office-hosting.de>
Wed, 7 Nov 2012 12:46:21 +0000 (13:46 +0100)
committerG. Richardson <information@lx-office-hosting.de>
Wed, 7 Nov 2012 12:46:21 +0000 (13:46 +0100)
21 files changed:
SL/Controller/ClientConfig.pm
SL/DB/MetaSetup/Default.pm
SL/InstanceConfiguration.pm
bin/mozilla/ap.pl
bin/mozilla/ar.pl
bin/mozilla/gl.pl
bin/mozilla/ir.pl
bin/mozilla/is.pl
locale/de/all
locale/de_DE/all
locale/en/all
sql/Pg-upgrade2/defaults_posting_records_config.sql [new file with mode: 0644]
sql/Pg-upgrade2/defaults_show_delete_on_orders.sql [new file with mode: 0644]
sql/Pg-upgrade2/defaults_show_mark_as_paid_config.sql [new file with mode: 0644]
templates/webpages/ap/form_footer.html
templates/webpages/client_config/form.html
templates/webpages/dbupgrade/footer.html
templates/webpages/do/form_footer.html
templates/webpages/ir/form_footer.html
templates/webpages/is/form_footer.html
templates/webpages/oe/form_footer.html

index 2047077..aaed72f 100644 (file)
@@ -12,6 +12,9 @@ __PACKAGE__->run_before('check_auth');
 sub action_edit {
   my ($self, %params) = @_;
 
+  $self->{posting_options} = [ { title => $::locale->text("never"), value => 0 },
+                               { title => $::locale->text("every time"), value => 1 },
+                               { title => $::locale->text("on the same day"), value => 2 }, ];
   $self->{payment_options} = [ { title => $::locale->text("never"), value => 0 },
                                { title => $::locale->text("every time"), value => 1 },
                                { title => $::locale->text("on the same day"), value => 2 }, ];
@@ -22,8 +25,12 @@ sub action_edit {
   $self->{profit_options} = [ { title => $::locale->text("balance"), value => "balance" },
                               { title => $::locale->text("income"), value => "income" }, ];
 
+  map { $self->{$_} = SL::DB::Default->get->$_ } qw(is_changeable ir_changeable ar_changeable ap_changeable gl_changeable);
+
   $self->{payments_changeable} = SL::DB::Default->get->payments_changeable;
 
+  map { $self->{$_} = SL::DB::Default->get->$_ } qw(is_show_mark_as_paid ir_show_mark_as_paid ar_show_mark_as_paid ap_show_mark_as_paid);
+
   map { $self->{$_} = SL::DB::Default->get->$_ } qw(accounting_method inventory_system profit_determination);
 
   $self->{show_bestbefore}     = SL::DB::Default->get->show_bestbefore;
@@ -34,6 +41,8 @@ sub action_edit {
   #check_on_dunning = 0
   #check_on_sepa_import = 0
 
+  map { $self->{$_} = SL::DB::Default->get->$_ } qw(sales_order_show_delete purchase_order_show_delete sales_delivery_order_show_delete purchase_delivery_order_show_delete);
+
   $self->render('client_config/form', title => $::locale->text('Client Configuration'));
 }
 
@@ -41,14 +50,20 @@ sub action_edit {
 sub action_save {
   my ($self, %params) = @_;
 
+  map { SL::DB::Default->get->update_attributes($_ => $::form->{$_}); } qw(is_changeable ir_changeable ar_changeable ap_changeable gl_changeable);
+
   SL::DB::Default->get->update_attributes('payments_changeable' => $::form->{payments_changeable});
 
+  map { SL::DB::Default->get->update_attributes($_ => $::form->{$_}); } qw(is_show_mark_as_paid ir_show_mark_as_paid ar_show_mark_as_paid ap_show_mark_as_paid);
+
   map { SL::DB::Default->get->update_attributes($_ => $::form->{$_}); } qw(accounting_method inventory_system profit_determination);
 
   SL::DB::Default->get->update_attributes('show_bestbefore'     => $::form->{show_bestbefore});
 
   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);
 
+  map { SL::DB::Default->get->update_attributes($_ => $::form->{$_}); } qw(sales_order_show_delete purchase_order_show_delete sales_delivery_order_show_delete purchase_delivery_order_show_delete);
+
   flash_later('info', $::locale->text('Client Configuration saved!'));
 
   $self->redirect_to(action => 'edit');
index 0822368..9365eac 100644 (file)
@@ -10,50 +10,63 @@ __PACKAGE__->meta->setup(
   table   => 'defaults',
 
   columns => [
-    inventory_accno_id              => { type => 'integer' },
-    income_accno_id                 => { type => 'integer' },
-    expense_accno_id                => { type => 'integer' },
-    fxgain_accno_id                 => { type => 'integer' },
-    fxloss_accno_id                 => { type => 'integer' },
-    invnumber                       => { type => 'text' },
-    sonumber                        => { type => 'text' },
-    weightunit                      => { type => 'varchar', length => 5 },
-    businessnumber                  => { type => 'text' },
-    version                         => { type => 'varchar', length => 8 },
-    curr                            => { type => 'text' },
-    closedto                        => { type => 'date' },
-    revtrans                        => { type => 'boolean', default => 'false' },
-    ponumber                        => { type => 'text' },
-    sqnumber                        => { type => 'text' },
-    rfqnumber                       => { type => 'text' },
-    customernumber                  => { type => 'text' },
-    vendornumber                    => { type => 'text' },
-    audittrail                      => { type => 'boolean', default => 'false' },
-    articlenumber                   => { type => 'text' },
-    servicenumber                   => { type => 'text' },
-    coa                             => { type => 'text' },
-    itime                           => { type => 'timestamp', default => 'now()' },
-    mtime                           => { type => 'timestamp' },
-    rmanumber                       => { type => 'text' },
-    cnnumber                        => { type => 'text' },
-    dunning_ar_amount_fee           => { type => 'integer' },
-    dunning_ar_amount_interest      => { type => 'integer' },
-    dunning_ar                      => { type => 'integer' },
-    pdonumber                       => { type => 'text' },
-    sdonumber                       => { type => 'text' },
-    ar_paid_accno_id                => { type => 'integer' },
-    id                              => { type => 'serial', not_null => 1 },
-    accounting_method               => { type => 'text' },
-    inventory_system                => { type => 'text' },
-    profit_determination            => { type => 'text' },
-    language_id                     => { type => 'integer' },
-    payments_changeable             => { type => 'integer', default => '0', not_null => 1 },
-    show_bestbefore                 => { type => 'boolean', default => 'false' },
-    datev_check_on_sales_invoice    => { type => 'boolean', default => 'true' },
-    datev_check_on_purchase_invoice => { type => 'boolean', default => 'true' },
-    datev_check_on_ar_transaction   => { type => 'boolean', default => 'true' },
-    datev_check_on_ap_transaction   => { type => 'boolean', default => 'true' },
-    datev_check_on_gl_transaction   => { type => 'boolean', default => 'true' },
+    inventory_accno_id                  => { type => 'integer' },
+    income_accno_id                     => { type => 'integer' },
+    expense_accno_id                    => { type => 'integer' },
+    fxgain_accno_id                     => { type => 'integer' },
+    fxloss_accno_id                     => { type => 'integer' },
+    invnumber                           => { type => 'text' },
+    sonumber                            => { type => 'text' },
+    weightunit                          => { type => 'varchar', length => 5 },
+    businessnumber                      => { type => 'text' },
+    version                             => { type => 'varchar', length => 8 },
+    curr                                => { type => 'text' },
+    closedto                            => { type => 'date' },
+    revtrans                            => { type => 'boolean', default => 'false' },
+    ponumber                            => { type => 'text' },
+    sqnumber                            => { type => 'text' },
+    rfqnumber                           => { type => 'text' },
+    customernumber                      => { type => 'text' },
+    vendornumber                        => { type => 'text' },
+    audittrail                          => { type => 'boolean', default => 'false' },
+    articlenumber                       => { type => 'text' },
+    servicenumber                       => { type => 'text' },
+    coa                                 => { type => 'text' },
+    itime                               => { type => 'timestamp', default => 'now()' },
+    mtime                               => { type => 'timestamp' },
+    rmanumber                           => { type => 'text' },
+    cnnumber                            => { type => 'text' },
+    accounting_method                   => { type => 'text' },
+    inventory_system                    => { type => 'text' },
+    profit_determination                => { type => 'text' },
+    dunning_ar_amount_fee               => { type => 'integer' },
+    dunning_ar_amount_interest          => { type => 'integer' },
+    dunning_ar                          => { type => 'integer' },
+    pdonumber                           => { type => 'text' },
+    sdonumber                           => { type => 'text' },
+    ar_paid_accno_id                    => { type => 'integer' },
+    id                                  => { type => 'serial', not_null => 1 },
+    language_id                         => { type => 'integer' },
+    payments_changeable                 => { type => 'integer', default => '0', not_null => 1 },
+    show_bestbefore                     => { type => 'boolean', default => 'false' },
+    datev_check_on_sales_invoice        => { type => 'boolean', default => 'true' },
+    datev_check_on_purchase_invoice     => { type => 'boolean', default => 'true' },
+    datev_check_on_ar_transaction       => { type => 'boolean', default => 'true' },
+    datev_check_on_ap_transaction       => { type => 'boolean', default => 'true' },
+    datev_check_on_gl_transaction       => { type => 'boolean', default => 'true' },
+    is_changeable                       => { type => 'integer', default => 2, not_null => 1 },
+    ir_changeable                       => { type => 'integer', default => 2, not_null => 1 },
+    ar_changeable                       => { type => 'integer', default => 2, not_null => 1 },
+    ap_changeable                       => { type => 'integer', default => 2, not_null => 1 },
+    gl_changeable                       => { type => 'integer', default => 2, not_null => 1 },
+    is_show_mark_as_paid                => { type => 'boolean', default => 'true' },
+    ir_show_mark_as_paid                => { type => 'boolean', default => 'true' },
+    ar_show_mark_as_paid                => { type => 'boolean', default => 'true' },
+    ap_show_mark_as_paid                => { type => 'boolean', default => 'true' },
+    sales_order_show_delete             => { type => 'boolean', default => 'true' },
+    purchase_order_show_delete          => { type => 'boolean', default => 'true' },
+    sales_delivery_order_show_delete    => { type => 'boolean', default => 'true' },
+    purchase_delivery_order_show_delete => { type => 'boolean', default => 'true' },
   ],
 
   primary_key_columns => [ 'id' ],
index 58025ce..ac14b0a 100644 (file)
@@ -49,6 +49,31 @@ sub get_profit_determination {
   return $self->{data}->{profit_determination};
 }
 
+sub get_is_changeable {
+  my ($self) = @_;
+  return $self->{data}->{is_changeable};
+}
+
+sub get_ir_changeable {
+  my ($self) = @_;
+  return $self->{data}->{ir_changeable};
+}
+
+sub get_ar_changeable {
+  my ($self) = @_;
+  return $self->{data}->{ar_changeable};
+}
+
+sub get_ap_changeable {
+  my ($self) = @_;
+  return $self->{data}->{ap_changeable};
+}
+
+sub get_gl_changeable {
+  my ($self) = @_;
+  return $self->{data}->{gl_changeable};
+}
+
 sub get_datev_check_on_sales_invoice {
   my ($self) = @_;
   return $self->{data}->{datev_check_on_sales_invoice};
@@ -79,6 +104,46 @@ sub get_show_bestbefore {
   return $self->{data}->{show_bestbefore};
 }
 
+sub get_is_show_mark_as_paid {
+  my ($self) = @_;
+  return $self->{data}->{is_show_mark_as_paid};
+}
+
+sub get_ir_show_mark_as_paid {
+  my ($self) = @_;
+  return $self->{data}->{ir_show_mark_as_paid};
+}
+
+sub get_ar_show_mark_as_paid {
+  my ($self) = @_;
+  return $self->{data}->{ar_show_mark_as_paid};
+}
+
+sub get_ap_show_mark_as_paid {
+  my ($self) = @_;
+  return $self->{data}->{ap_show_mark_as_paid};
+}
+
+sub get_sales_order_show_delete {
+  my ($self) = @_;
+  return $self->{data}->{sales_order_show_delete};
+}
+
+sub get_purchase_order_show_delete {
+  my ($self) = @_;
+  return $self->{data}->{purchase_order_show_delete};
+}
+
+sub get_sales_delivery_order_show_delete {
+  my ($self) = @_;
+  return $self->{data}->{sales_delivery_order_show_delete};
+}
+
+sub get_purchase_delivery_order_show_delete {
+  my ($self) = @_;
+  return $self->{data}->{purchase_delivery_order_show_delete};
+}
+
 1;
 
 __END__
@@ -131,6 +196,20 @@ Returns the default inventory system, perpetual or periodic
 
 Returns the default profit determination method, balance or income
 
+
+=item C<get_is_changeable>
+
+=item C<get_ir_changeable>
+
+=item C<get_ar_changeable>
+
+=item C<get_ap_changeable>
+
+=item C<get_gl_changeable>
+
+Returns if and when these record types are changeable or deleteable after
+posting. 0 means never, 1 means always and 2 means on the same day.
+
 =item C<get_datev_check_on_sales_invoice>
 
 Returns true if datev check should be performed on sales invoices
@@ -155,6 +234,28 @@ Returns true if datev check should be performed on gl transactions
 
 Returns the default behavior for showing best before date, true or false
 
+=item C<get_is_show_mark_as_paid>
+
+=item C<get_ir_show_mark_as_paid>
+
+=item C<get_ar_show_mark_as_paid>
+
+=item C<get_ap_show_mark_as_paid>
+
+Returns the default behavior for showing the mark as paid button for the
+corresponding record type (true or false).
+
+=item C<get_sales_order_show_delete>
+
+=item C<get_purchase_order_show_delete>
+
+=item C<get_sales_delivery_order_show_delete>
+
+=item C<get_purchase_delivery_order_show_delete>
+
+Returns the default behavior for showing the delete button for the
+corresponding record type (true or false).
+
 =back
 
 =head1 BUGS
index 821949b..732eaed 100644 (file)
@@ -239,7 +239,9 @@ sub form_header {
   }
   my $readonly = ($form->{id}) ? "readonly" : "";
 
-  $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
+  $form->{radier} = ($::instance_conf->get_ap_changeable == 2)
+                      ? ($form->current_date(\%myconfig) eq $form->{gldate})
+                      : ($::instance_conf->get_ap_changeable == 1);
   $readonly       = ($form->{radier}) ? "" : $readonly;
 
   $form->{forex}        = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{transdate}, 'sell');
@@ -853,10 +855,10 @@ sub form_footer {
 
   $::form->header;
   print $::form->parse_html_template('ap/form_footer', {
-    num_due         => $num_due,
-    num_follow_ups  => $num_follow_ups,
-    show_post_draft => ($transdate > $closedto) && !$::form->{id},
-    show_storno     => $storno,
+    num_due           => $num_due,
+    num_follow_ups    => $num_follow_ups,
+    show_post_draft   => ($transdate > $closedto) && !$::form->{id},
+    show_storno       => $storno,
   });
 
   $::lxdebug->leave_sub;
index 1bae80b..be080ea 100644 (file)
@@ -252,7 +252,9 @@ sub form_header {
   #/show history button js
   $readonly = ($form->{id}) ? "readonly" : "";
 
-  $form->{radier} = ($form->current_date(\%myconfig) eq $form->{gldate}) ? 1 : 0;
+  $form->{radier} = ($::instance_conf->get_ar_changeable == 2)
+                      ? ($form->current_date(\%myconfig) eq $form->{gldate})
+                      : ($::instance_conf->get_ar_changeable == 1);
   $readonly = ($form->{radier}) ? "" : $readonly;
 
   # set option selected
@@ -531,7 +533,7 @@ $follow_ups_block
   }
   # /button for saving history
   # mark_as_paid button
-  if($form->{id} ne "") {
+  if(($form->{id} ne "") && $::instance_conf->get_ar_show_mark_as_paid) {
     print qq|<input type="submit" class="submit" name="action" value="|
           . $locale->text('mark as paid') . qq|">|;
   }
index a46cad0..719f222 100644 (file)
@@ -903,7 +903,9 @@ sub form_footer {
     $follow_ups_due = sum map { $_->{due} * 1 } @{ $follow_ups || [] };
   }
 
-  my $radieren = $::form->current_date(\%::myconfig) eq $::form->{gldate};
+  my $radieren = ($::instance_conf->get_gl_changeable == 2)
+                    ? ($::form->current_date(\%::myconfig) eq $::form->{gldate})
+                    : ($::instance_conf->get_gl_changeable == 1);
 
   print $::form->parse_html_template('gl/form_footer', {
     radieren       => $radieren,
index 86910c5..554d2fd 100644 (file)
@@ -440,7 +440,9 @@ sub form_footer {
     totalpaid           => $totalpaid,
     paid_missing        => $form->{invtotal} - $totalpaid,
     show_storno         => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ap") && !$totalpaid,
-    show_delete         => ($form->current_date(\%myconfig) eq $form->{gldate}),
+    show_delete         => ($::instance_conf->get_ir_changeable == 2)
+                             ? ($form->current_date(\%myconfig) eq $form->{gldate})
+                             : ($::instance_conf->get_ir_changeable == 1),
   });
 ##print $form->parse_html_template('ir/_payments'); # parser
 ##print $form->parse_html_template('webdav/_list'); # parser
index bc95adb..14c2420 100644 (file)
@@ -472,7 +472,9 @@ sub form_footer {
     paid_missing        => $form->{invtotal} - $totalpaid,
     print_options       => print_options(inline => 1),
     show_storno         => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && !$totalpaid,
-    show_delete         => ($form->current_date(\%myconfig) eq $form->{gldate}),
+    show_delete         => ($::instance_conf->get_is_changeable == 2)
+                             ? ($form->current_date(\%myconfig) eq $form->{gldate})
+                             : ($::instance_conf->get_is_changeable == 1),
   });
 ##print $form->parse_html_template('is/_payments'); # parser
 ##print $form->parse_html_template('webdav/_list'); # parser
index 048bb84..db5ff2c 100644 (file)
@@ -48,15 +48,17 @@ $self->{texts} = {
   'AP Transaction Storno (one letter abbreviation)' => 'S',
   'AP Transaction with Storno (abbreviation)' => 'K(S)',
   'AP Transactions'             => 'Kreditorenbuchungen',
+  'AP transactions changeable'  => 'Änderbarkeit von Kreditorenbuchungen',
   'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' => 'Kreditorenbuchungen mit Umsatzsteuer-Steuerschlüsseln und/oder Debitorenbuchungen mit Vorsteuer-Steuerschlüsseln',
   'AR'                          => 'Verkauf',
   'AR Aging'                    => 'Offene Forderungen',
   'AR Transaction'              => 'Debitorenbuchung',
   'AR Transaction (abbreviation)' => 'D',
   'AR Transactions'             => 'Debitorenbuchungen',
+  'AR transactions changeable'  => 'Änderbarkeit von Debitorenbuchungen',
   'ASSETS'                      => 'AKTIVA',
   'ATTENTION! If you enabled this feature you can not simply turn it off again without taking care that best_before fields are emptied in the database.' => 'ACHTUNG! Wenn Sie diese Einstellung aktivieren, dann können Sie sie später nicht ohne Weiteres deaktivieren, ohne dafür zu sorgen, dass die Felder der Mindeshaltbarkeitsdaten in der Datenbank leer gemacht werden.',
-  'ATTENTION! You can not simply change it from periodic to perpetual once you started posting.' => 'ACHTUNG!" Es kann nicht ohne Weiteres im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode gewechselt werden.',
+  'ATTENTION! You can not simply change it from periodic to perpetual once you started posting.' => 'ACHTUNG! Es kann nicht ohne Weiteres im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode gewechselt werden.',
   'Abort'                       => 'Abbrechen',
   'Abrechnungsnummer'           => 'Abrechnungsnummer',
   'Abteilung'                   => 'Abteilung',
@@ -912,6 +914,7 @@ $self->{texts} = {
   'Full access to all functions' => 'Vollzugriff auf alle Funktionen',
   'Fwd'                         => 'Vorw&auml;rts',
   'GL Transaction'              => 'Dialogbuchung',
+  'GL transactions changeable'  => 'Änderbarkeit von Dialogbuchungen',
   'Gegenkonto'                  => 'Gegenkonto',
   'Gender'                      => 'Geschlecht',
   'General Ledger'              => 'Finanzbuchhaltung',
@@ -1043,7 +1046,7 @@ $self->{texts} = {
   '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.',
   '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.',
   '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.',
-  '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.',
+  '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 die Einstellung für jeden Buchungstyp getrennt einstellen.',
   'It may optionally be compressed with &quot;gzip&quot;.' => 'Sie darf optional mit &quot;gzip&quot; komprimiert sein.',
   '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.',
   'Item deleted!'               => 'Artikel gelöscht!',
@@ -1326,6 +1329,7 @@ $self->{texts} = {
   'Order Number missing!'       => 'Auftragsnummer fehlt!',
   'Order deleted!'              => 'Auftrag gelöscht!',
   'Ordered'                     => 'Vom Kunde bestellt',
+  'Orders / Delivery Orders deleteable' => 'Aufträge / Lieferscheine löschbar',
   'Orientation'                 => 'Seitenformat',
   'Orphaned'                    => 'Nie benutzt',
   'Other users\' follow-ups'    => 'Wiedervorlagen anderer Benutzer',
@@ -1386,8 +1390,8 @@ $self->{texts} = {
   'Perform check when a gl transaction is posted?' => 'Prüfung durchführen, wenn eine Dialogbuchung gebucht wird?',
   '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?',
   '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?',
-  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn Kreditorenbuchung gebucht wird?',
-  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn Debiotorenbuchung gebucht wird?',
+  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn eine Kreditorenbuchung gebucht wird?',
+  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn eine Debiotorenbuchung gebucht wird?',
   'Period'                      => 'Zeitraum',
   'Period:'                     => 'Zeitraum:',
   'Periodic Invoices'           => 'Wiederkehrende Rechnungen',
@@ -1497,13 +1501,16 @@ $self->{texts} = {
   'Projects'                    => 'Projekte',
   'Projecttransactions'         => 'Projektbuchungen',
   'Prozentual/Absolut'          => 'Prozentual/Absolut',
+  'Purchase Delivery Orders deleteable' => 'Einkaufslieferscheine löschbar',
   'Purchase Invoice'            => 'Einkaufsrechnung',
   'Purchase Order'              => 'Lieferantenauftrag',
   'Purchase Orders'             => 'Lieferantenaufträge',
+  'Purchase Orders deleteable'  => 'Lieferantenaufträge löschbar',
   'Purchase Price'              => 'Einkaufspreis',
   'Purchase Prices'             => 'Einkaufspreise',
   'Purchase delivery order'     => 'Lieferschein (Einkauf)',
   'Purchase invoices'           => 'Einkaufsrechnungen',
+  'Purchase invoices changeable' => 'Änderbarkeit von Einkaufsrechnunen',
   'Purchase net amount'         => 'EK-Betrag',
   'Purchase price'              => 'EK-Preis',
   'Purchase price total'        => 'EK-Betrag',
@@ -1601,16 +1608,19 @@ $self->{texts} = {
   'Saldo neu'                   => 'Saldo neu',
   'Saldo per'                   => 'Saldo per',
   'Sale Prices'                 => 'Verkaufspreise',
+  'Sales Delivery Orders deleteable' => 'Verkaufslieferscheine löschbar',
   'Sales Invoice'               => 'Rechnung',
   'Sales Invoices'              => 'Kundenrechnung',
   'Sales Order'                 => 'Kundenauftrag',
   'Sales Orders'                => 'Aufträge',
+  'Sales Orders deleteable'     => 'Kundenaufträge löschbar',
   'Sales Price information'     => 'Verkaufspreisinformation',
   'Sales Report'                => 'Verkaufsbericht',
   'Sales and purchase invoices with inventory transactions with taxkeys' => 'Einkaufs- und Verkaufsrechnungen mit Warenbestandsbuchungen mit Steuerschlüsseln',
   'Sales delivery order'        => 'Lieferschein (Verkauf)',
   'Sales invoice number'        => 'Ausgangsrechnungsnummer',
   'Sales invoices'              => 'Verkaufsrechnungen',
+  'Sales invoices changeable'   => 'Änderbarkeit von Verkaufsrechnungen',
   'Sales margin'                => 'Marge',
   'Sales margin %'              => 'Marge prozentual',
   'Sales net amount'            => 'VK-Betrag',
@@ -1700,14 +1710,31 @@ $self->{texts} = {
   'Shipto is in use and was flagged invalid.' => 'Lieferadresse ist noch in Verwendung, und wurde als ungültig markiert.',
   'Shopartikel'                 => 'Shopartikel',
   'Short'                       => 'Knapp',
+  'Should ap transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Kreditorenbuchungen nach der Buchung zu ändern oder zu löschen sein?',
+  'Should ar transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Debitorenbuchungen nach der Buchung zu ändern oder zu löschen sein?',
+  'Should gl transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Dialogbuchungen nach der Buchung zu ändern oder zu löschen sein?',
   'Should payments be and when should they be changeable after posting?' => 'Sollen Zahlungen nach dem Buchen änderbar sein, und wenn ja, wann?',
+  'Should purchase invoices be and when should they be deleteable after posting?' => 'Sollen Einkaufsrechnungen nach der Buchung zu löschen sein?',
+  'Should sales invoices be and when should they be changeable or deleteable after posting?' => 'Sollen Verkaufrechnung nach der Buchung zu ändern oder zu löschen sein?',
+  'Should the "mark as paid" button showed in ap transactions?' => 'Soll der Knopf "als bezahlt markieren" bei Kreditorenbuchungen angezeigt werden?',
+  'Should the "mark as paid" button showed in ar transactions?' => 'Soll der Knopf "als bezahlt markieren" bei Debitorenbuchungen angezeigt werden?',
+  'Should the "mark as paid" button showed in purchase invoices?' => 'Soll der Knopf "als bezahlt markieren" bei Einkaufsrechnungen angezeigt werden?',
+  'Should the "mark as paid" button showed on sales invoices?' => 'Soll der Knopf "als bezahlt markieren" bei Verkaufsrechnungen angezeigt werden?',
   'Show'                        => 'Zeigen',
+  'Show "mark as paid" in ap transactions' => '"als bezahlt markieren" bei Kreditorenbuchungen anzeigen',
+  'Show "mark as paid" in ar transactions' => '"als bezahlt markieren" bei Debitorenbuchungen anzeigen',
+  'Show "mark as paid" in purchase invoices' => '"als bezahlt markieren" bei Einkaufsrechnungen anzeigen',
+  'Show "mark as paid" in sales invoices' => '"als bezahlt markieren" bei Verkaufsrechnungen anzeigen',
   'Show Bestbefore'             => 'Mindesthaltbarkeit anzeigen',
   'Show Filter'                 => 'Filter zeigen',
   'Show Salesman'               => 'Verkäufer anzeigen',
   'Show TODO list'              => 'Aufgabenliste anzeigen',
   'Show by default'             => 'Standardm&auml;&szlig;ig anzeigen',
   'Show custom variable search inputs' => 'Suchoptionen für Benutzerdefinierte Variablen verstecken',
+  'Show delete button in purchase delivery orders?' => 'Soll der "Löschen"-Knopf bei Einkaufslieferscheinen angezeigt werden?',
+  'Show delete button in purchase orders?' => 'Soll der "Löschen"-Knopf bei Lieferantenaufträgen angezeigt werden?',
+  'Show delete button in sales delivery orders?' => 'Soll der "Löschen"-Knopf bei Verkaufslieferscheinen angezeigt werden?',
+  'Show delete button in sales orders?' => 'Soll der "Löschen"-Knopf bei Kundenaufträgen angezeigt werden?',
   'Show details'                => 'Detailsanzeige',
   'Show fields used for the best before date?' => 'Felder zur Eingabe des Mindesthaltbarkeitsdatums anzeigen?',
   'Show follow ups...'          => 'Zeige Wiedervorlagen...',
index 9cb56d8..e07e39a 100644 (file)
@@ -48,15 +48,17 @@ $self->{texts} = {
   'AP Transaction Storno (one letter abbreviation)' => 'S',
   'AP Transaction with Storno (abbreviation)' => 'K(S)',
   'AP Transactions'             => 'Eingangsrechnungen',
+  'AP transactions changeable'  => 'Änderbarkeit von Kreditorenbuchungen',
   'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' => 'Kreditorenbuchungen mit Umsatzsteuer-Steuerschlüsseln und/oder Debitorenbuchungen mit Vorsteuer-Steuerschlüsseln',
   'AR'                          => 'Verkauf',
   'AR Aging'                    => 'Forderungen',
   'AR Transaction'              => 'Debitorenbuchung',
   'AR Transaction (abbreviation)' => 'D',
   'AR Transactions'             => 'Debitorenbuchungen',
+  'AR transactions changeable'  => 'Änderbarkeit von Debitorenbuchungen',
   'ASSETS'                      => 'AKTIVA',
   'ATTENTION! If you enabled this feature you can not simply turn it off again without taking care that best_before fields are emptied in the database.' => 'ACHTUNG! Wenn Sie diese Einstellung aktivieren, dann können Sie sie später nicht ohne Weiteres deaktivieren, ohne dafür zu sorgen, dass die Felder der Mindeshaltbarkeitsdaten in der Datenbank leer gemacht werden.',
-  'ATTENTION! You can not simply change it from periodic to perpetual once you started posting.' => 'ACHTUNG!" Es kann nicht ohne Weiteres im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode gewechselt werden.',
+  'ATTENTION! You can not simply change it from periodic to perpetual once you started posting.' => 'ACHTUNG! Es kann nicht ohne Weiteres im laufenden Betrieb von der Aufwandsmethode zur Bestandsmethode gewechselt werden.',
   'Abort'                       => 'Abbrechen',
   'Abrechnungsnummer'           => 'Abrechnungsnummer',
   'Abteilung'                   => 'Abteilung',
@@ -880,6 +882,7 @@ $self->{texts} = {
   'Full access to all functions' => 'Vollzugriff auf alle Funktionen',
   'Fwd'                         => 'Vorw&auml;rts',
   'GL Transaction'              => 'Dialogbuchung',
+  'GL transactions changeable'  => 'Änderbarkeit von Dialogbuchungen',
   'Gegenkonto'                  => 'Gegenkonto',
   'Gender'                      => 'Geschlecht',
   'General Ledger'              => 'Buchhaltung',
@@ -1011,7 +1014,7 @@ $self->{texts} = {
   '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.',
   '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.',
   '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.',
-  '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.',
+  '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 die Einstellung für jeden Buchungstyp getrennt einstellen.',
   'It may optionally be compressed with &quot;gzip&quot;.' => 'Sie darf optional mit &quot;gzip&quot; komprimiert sein.',
   '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.',
   'Item deleted!'               => 'Artikel gelöscht!',
@@ -1291,6 +1294,7 @@ $self->{texts} = {
   'Order Number missing!'       => 'Auftragsnummer fehlt!',
   'Order deleted!'              => 'Auftrag gelöscht!',
   'Ordered'                     => 'Vom Kunde bestellt',
+  'Orders / Delivery Orders deleteable' => 'Aufträge / Lieferscheine löschbar',
   'Orientation'                 => 'Seitenformat',
   'Orphaned'                    => 'Nie benutzt',
   'Other users\' follow-ups'    => 'Wiedervorlagen anderer Benutzer',
@@ -1350,8 +1354,8 @@ $self->{texts} = {
   'Perform check when a gl transaction is posted?' => 'Prüfung durchführen, wenn eine Dialogbuchung gebucht wird?',
   '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?',
   '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?',
-  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn Kreditorenbuchung gebucht wird?',
-  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn Debiotorenbuchung gebucht wird?',
+  'Perform check when an ap transaction is posted?' => 'Prüfung durchführen, wenn eine Kreditorenbuchung gebucht wird?',
+  'Perform check when an ar transaction is posted?' => 'Prüfung durchführen, wenn eine Debiotorenbuchung gebucht wird?',
   'Period'                      => 'Zeitraum',
   'Period:'                     => 'Zeitraum:',
   'Periodic Invoices'           => 'Wiederkehrende Rechnungen',
@@ -1460,13 +1464,16 @@ $self->{texts} = {
   'Projects'                    => 'Projekte',
   'Projecttransactions'         => 'Projektbuchungen',
   'Prozentual/Absolut'          => 'Prozentual/Absolut',
+  'Purchase Delivery Orders deleteable' => 'Einkaufslieferscheine löschbar',
   'Purchase Invoice'            => 'Einkaufsrechnung',
   'Purchase Order'              => 'Lieferantenauftrag',
   'Purchase Orders'             => 'Einkaufsbestellungen',
+  'Purchase Orders deleteable'  => 'Lieferantenaufträge löschbar',
   'Purchase Price'              => 'Einkaufspreis',
   'Purchase Prices'             => 'Einkaufspreise',
   'Purchase delivery order'     => 'Lieferschein (Einkauf)',
   'Purchase invoices'           => 'Einkaufsrechnungen',
+  'Purchase invoices changeable' => 'Änderbarkeit von Einkaufsrechnunen',
   'Purchase net amount'         => 'EK-Summe',
   'Purchase price'              => 'EK-Preis',
   'Purchase price total'        => 'EK-Summe',
@@ -1560,16 +1567,19 @@ $self->{texts} = {
   'Saldo neu'                   => 'Saldo neu',
   'Saldo per'                   => 'Saldo per',
   'Sale Prices'                 => 'Verkaufspreise',
+  'Sales Delivery Orders deleteable' => 'Verkaufslieferscheine löschbar',
   'Sales Invoice'               => 'Rechnung',
   'Sales Invoices'              => 'Ausgangsrechnungen',
   'Sales Order'                 => 'Kundenauftrag',
   'Sales Orders'                => 'Aufträge',
+  'Sales Orders deleteable'     => 'Kundenaufträge löschbar',
   'Sales Price information'     => '',
   'Sales Report'                => 'Verkaufsbericht',
   'Sales and purchase invoices with inventory transactions with taxkeys' => 'Einkaufs- und Verkaufsrechnungen mit Warenbestandsbuchungen mit Steuerschlüsseln',
   'Sales delivery order'        => 'Lieferschein (Verkauf)',
   'Sales invoice number'        => 'Ausgangsrechnungsnummer',
   'Sales invoices'              => 'Verkaufsrechnungen',
+  'Sales invoices changeable'   => 'Änderbarkeit von Verkaufsrechnungen',
   'Sales margin'                => 'Marge',
   'Sales margin %'              => 'Marge prozentual',
   'Sales net amount'            => 'VK-Netto',
@@ -1655,13 +1665,30 @@ $self->{texts} = {
   'Shipto is in use and was flagged invalid.' => 'Lieferadresse ist noch in Verwendung, und wurde als ungültig markiert.',
   'Shopartikel'                 => 'Shopartikel',
   'Short'                       => 'Knapp',
+  'Should ap transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Kreditorenbuchungen nach der Buchung zu ändern oder zu löschen sein?',
+  'Should ar transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Debitorenbuchungen nach der Buchung zu ändern oder zu löschen sein?',
+  'Should gl transactions be and when should they be changeable or deleteable after posting?' => 'Sollen Dialogbuchungen nach der Buchung zu ändern oder zu löschen sein?',
   'Should payments be and when should they be changeable after posting?' => 'Sollen Zahlungen nach dem Buchen änderbar sein, und wenn ja, wann?',
+  'Should purchase invoices be and when should they be deleteable after posting?' => 'Sollen Einkaufsrechnungen nach der Buchung zu löschen sein?',
+  'Should sales invoices be and when should they be changeable or deleteable after posting?' => 'Sollen Verkaufrechnung nach der Buchung zu ändern oder zu löschen sein?',
+  'Should the "mark as paid" button showed in ap transactions?' => 'Soll der Knopf "als bezahlt markieren" bei Kreditorenbuchungen angezeigt werden?',
+  'Should the "mark as paid" button showed in ar transactions?' => 'Soll der Knopf "als bezahlt markieren" bei Debitorenbuchungen angezeigt werden?',
+  'Should the "mark as paid" button showed in purchase invoices?' => 'Soll der Knopf "als bezahlt markieren" bei Einkaufsrechnungen angezeigt werden?',
+  'Should the "mark as paid" button showed on sales invoices?' => 'Soll der Knopf "als bezahlt markieren" bei Verkaufsrechnungen angezeigt werden?',
   'Show'                        => 'Zeigen',
+  'Show "mark as paid" in ap transactions' => '"als bezahlt markieren" bei Kreditorenbuchungen anzeigen',
+  'Show "mark as paid" in ar transactions' => '"als bezahlt markieren" bei Debitorenbuchungen anzeigen',
+  'Show "mark as paid" in purchase invoices' => '"als bezahlt markieren" bei Einkaufsrechnungen anzeigen',
+  'Show "mark as paid" in sales invoices' => '"als bezahlt markieren" bei Verkaufsrechnungen anzeigen',
   'Show Bestbefore'             => 'Mindesthaltbarkeit anzeigen',
   'Show Salesman'               => 'Verkäufer anzeigen',
   'Show TODO list'              => 'Meine Aufgaben',
   'Show by default'             => 'Standardm&auml;&szlig;ig anzeigen',
   'Show custom variable search inputs' => 'Suche in erweiterten Datenfeldern',
+  'Show delete button in purchase delivery orders?' => 'Soll der "Löschen"-Knopf bei Einkaufslieferscheinen angezeigt werden?',
+  'Show delete button in purchase orders?' => 'Soll der "Löschen"-Knopf bei Lieferantenaufträgen angezeigt werden?',
+  'Show delete button in sales delivery orders?' => 'Soll der "Löschen"-Knopf bei Verkaufslieferscheinen angezeigt werden?',
+  'Show delete button in sales orders?' => 'Soll der "Löschen"-Knopf bei Kundenaufträgen angezeigt werden?',
   'Show details'                => 'Detailsanzeige',
   'Show fields used for the best before date?' => 'Felder zur Eingabe des Mindesthaltbarkeitsdatums anzeigen?',
   'Show follow ups...'          => 'Zeige Wiedervorlagen...',
index 915fa37..89a4ddf 100644 (file)
@@ -48,12 +48,14 @@ $self->{texts} = {
   'AP Transaction Storno (one letter abbreviation)' => '',
   'AP Transaction with Storno (abbreviation)' => '',
   'AP Transactions'             => 'Purchase Transactions',
+  'AP transactions changeable'  => '',
   'AP transactions with sales taxkeys and/or AR transactions with input taxkeys' => '',
   'AR'                          => 'Sales',
   'AR Aging'                    => 'Debtor Aging',
   'AR Transaction'              => 'Sales Transaction',
   'AR Transaction (abbreviation)' => '',
   'AR Transactions'             => 'Sales Transactions',
+  'AR transactions changeable'  => '',
   'ASSETS'                      => '',
   'ATTENTION! If you enabled this feature you can not simply turn it off again without taking care that best_before fields are emptied in the database.' => '',
   'ATTENTION! You can not simply change it from periodic to perpetual once you started posting.' => '',
@@ -895,6 +897,7 @@ $self->{texts} = {
   'Full access to all functions' => '',
   'Fwd'                         => 'Forward',
   'GL Transaction'              => '',
+  'GL transactions changeable'  => '',
   'Gegenkonto'                  => '',
   'Gender'                      => '',
   'General Ledger'              => '',
@@ -1307,6 +1310,7 @@ $self->{texts} = {
   'Order Number missing!'       => '',
   'Order deleted!'              => '',
   'Ordered'                     => '',
+  'Orders / Delivery Orders deleteable' => '',
   'Orientation'                 => '',
   'Orphaned'                    => '',
   'Other users\' follow-ups'    => '',
@@ -1477,13 +1481,16 @@ $self->{texts} = {
   'Projects'                    => '',
   'Projecttransactions'         => '',
   'Prozentual/Absolut'          => '',
+  'Purchase Delivery Orders deleteable' => '',
   'Purchase Invoice'            => '',
   'Purchase Order'              => '',
   'Purchase Orders'             => '',
+  'Purchase Orders deleteable'  => '',
   'Purchase Price'              => '',
   'Purchase Prices'             => '',
   'Purchase delivery order'     => '',
   'Purchase invoices'           => '',
+  'Purchase invoices changeable' => '',
   'Purchase net amount'         => '',
   'Purchase price'              => '',
   'Purchase price total'        => '',
@@ -1579,16 +1586,19 @@ $self->{texts} = {
   'Saldo neu'                   => '',
   'Saldo per'                   => '',
   'Sale Prices'                 => '',
+  'Sales Delivery Orders deleteable' => '',
   'Sales Invoice'               => '',
   'Sales Invoices'              => '',
   'Sales Order'                 => '',
   'Sales Orders'                => '',
+  'Sales Orders deleteable'     => '',
   'Sales Price information'     => '',
   'Sales Report'                => '',
   'Sales and purchase invoices with inventory transactions with taxkeys' => '',
   'Sales delivery order'        => '',
   'Sales invoice number'        => '',
   'Sales invoices'              => '',
+  'Sales invoices changeable'   => '',
   'Sales margin'                => '',
   'Sales margin %'              => '',
   'Sales net amount'            => '',
@@ -1677,14 +1687,31 @@ $self->{texts} = {
   'Shipto is in use and was flagged invalid.' => '',
   'Shopartikel'                 => '',
   'Short'                       => '',
+  'Should ap transactions be and when should they be changeable or deleteable after posting?' => '',
+  'Should ar transactions be and when should they be changeable or deleteable after posting?' => '',
+  'Should gl transactions be and when should they be changeable or deleteable after posting?' => '',
   'Should payments be and when should they be changeable after posting?' => '',
+  'Should purchase invoices be and when should they be deleteable after posting?' => '',
+  'Should sales invoices be and when should they be changeable or deleteable after posting?' => '',
+  'Should the "mark as paid" button showed in ap transactions?' => '',
+  'Should the "mark as paid" button showed in ar transactions?' => '',
+  'Should the "mark as paid" button showed in purchase invoices?' => '',
+  'Should the "mark as paid" button showed on sales invoices?' => '',
   'Show'                        => '',
+  'Show "mark as paid" in ap transactions' => '',
+  'Show "mark as paid" in ar transactions' => '',
+  'Show "mark as paid" in purchase invoices' => '',
+  'Show "mark as paid" in sales invoices' => '',
   'Show Bestbefore'             => '',
   'Show Filter'                 => '',
   'Show Salesman'               => '',
   'Show TODO list'              => '',
   'Show by default'             => '',
   'Show custom variable search inputs' => '',
+  'Show delete button in purchase delivery orders?' => '',
+  'Show delete button in purchase orders?' => '',
+  'Show delete button in sales delivery orders?' => '',
+  'Show delete button in sales orders?' => '',
   'Show details'                => '',
   'Show fields used for the best before date?' => '',
   'Show follow ups...'          => '',
diff --git a/sql/Pg-upgrade2/defaults_posting_records_config.sql b/sql/Pg-upgrade2/defaults_posting_records_config.sql
new file mode 100644 (file)
index 0000000..d6ef501
--- /dev/null
@@ -0,0 +1,10 @@
+-- @tag: defaults_posting_records_config
+-- @description: Einstellung, ob und wann Belegbuchungen änderbar/löschbar sind.
+-- @depends: release_2_7_0
+-- @charset: utf-8
+
+ALTER TABLE defaults ADD COLUMN is_changeable integer NOT NULL DEFAULT 2;
+ALTER TABLE defaults ADD COLUMN ir_changeable integer NOT NULL DEFAULT 2;
+ALTER TABLE defaults ADD COLUMN ar_changeable integer NOT NULL DEFAULT 2;
+ALTER TABLE defaults ADD COLUMN ap_changeable integer NOT NULL DEFAULT 2;
+ALTER TABLE defaults ADD COLUMN gl_changeable integer NOT NULL DEFAULT 2;
diff --git a/sql/Pg-upgrade2/defaults_show_delete_on_orders.sql b/sql/Pg-upgrade2/defaults_show_delete_on_orders.sql
new file mode 100644 (file)
index 0000000..6f876eb
--- /dev/null
@@ -0,0 +1,9 @@
+-- @tag: defaults_show_delete_on_orders
+-- @description: Einstellung, ob der "Löschen"-Knopf bei Aufträgen und Lieferscheinen angezeigt wird.
+-- @depends: release_2_7_0
+-- @charset: utf-8
+
+ALTER TABLE defaults ADD COLUMN sales_order_show_delete             boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN purchase_order_show_delete          boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN sales_delivery_order_show_delete    boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN purchase_delivery_order_show_delete boolean DEFAULT TRUE;
diff --git a/sql/Pg-upgrade2/defaults_show_mark_as_paid_config.sql b/sql/Pg-upgrade2/defaults_show_mark_as_paid_config.sql
new file mode 100644 (file)
index 0000000..8635763
--- /dev/null
@@ -0,0 +1,9 @@
+-- @tag: defaults_show_mark_as_paid_config
+-- @description: Einstellung, ob der "als bezahlt markieren"-Knopf angezeigt wird.
+-- @depends: release_2_7_0
+-- @charset: utf-8
+
+ALTER TABLE defaults ADD COLUMN is_show_mark_as_paid boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN ir_show_mark_as_paid boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN ar_show_mark_as_paid boolean DEFAULT TRUE;
+ALTER TABLE defaults ADD COLUMN ap_show_mark_as_paid boolean DEFAULT TRUE;
index 8ac37ec..2408d52 100644 (file)
@@ -42,7 +42,9 @@
 
 [%- IF id %]
   <input type="submit" onclick="set_history_window([% id %]);" name="history" id="history" value="[% 'history' | $T8 %]">
-  <input type="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+  [% IF INSTANCE_CONF.get_ap_show_mark_as_paid %]
+    <input type="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+  [% END %]
 [%- END %]
 
 </form>
index d195e2a..5fc0c04 100644 (file)
  <tr class='listheading'>
    <th colspan="3">[% 'Posting Configuration' | $T8 %]</th>
  </tr>
+
+ <tr>
+   <td align="right">[% 'Sales invoices changeable' | $T8 %]</td>
+   <td>[% L.select_tag('is_changeable', SELF.posting_options, value_key => 'value', title_key => 'title', default => SELF.is_changeable) %]</td>
+   <td>[% 'Should sales invoices be and when should they be changeable or deleteable after posting?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Purchase invoices changeable' | $T8 %]</td>
+   <td>[% L.select_tag('ir_changeable', SELF.posting_options, value_key => 'value', title_key => 'title', default => SELF.ir_changeable) %]</td>
+   <td>[% 'Should purchase invoices be and when should they be deleteable after posting?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'AR transactions changeable' | $T8 %]</td>
+   <td>[% L.select_tag('ar_changeable', SELF.posting_options, value_key => 'value', title_key => 'title', default => SELF.ar_changeable) %]</td>
+   <td>[% 'Should ar transactions be and when should they be changeable or deleteable after posting?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'AP transactions changeable' | $T8 %]</td>
+   <td>[% L.select_tag('ap_changeable', SELF.posting_options, value_key => 'value', title_key => 'title', default => SELF.ap_changeable) %]</td>
+   <td>[% 'Should ap transactions be and when should they be changeable or deleteable after posting?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'GL transactions changeable' | $T8 %]</td>
+   <td>[% L.select_tag('gl_changeable', SELF.posting_options, value_key => 'value', title_key => 'title', default => SELF.gl_changeable) %]</td>
+   <td>[% 'Should gl transactions be and when should they be changeable or deleteable after posting?' | $T8 %]</td>
+ </tr>
+
+ <tr> </tr>
+ <tr> </tr>
+
  <tr>
    <td align="right">[% 'Payments Changeable' | $T8 %]</td>
    <td>[% L.select_tag('payments_changeable', SELF.payment_options, value_key => 'value', title_key => 'title', default => SELF.payments_changeable) %]</td>
    <td>[% 'Should payments be and when should they be changeable after posting?' | $T8 %]</td>
  </tr>
+
+ <tr> </tr>
+ <tr> </tr>
+
+ <tr>
+   <td align="right">[% 'Show "mark as paid" in sales invoices' | $T8 %]</td>
+   <td>[% L.yes_no_tag('is_show_mark_as_paid', SELF.is_show_mark_as_paid) %]</td>
+   <td>[% 'Should the "mark as paid" button showed on sales invoices?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Show "mark as paid" in purchase invoices' | $T8 %]</td>
+   <td>[% L.yes_no_tag('ir_show_mark_as_paid', SELF.ir_show_mark_as_paid) %]</td>
+   <td>[% 'Should the "mark as paid" button showed in purchase invoices?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Show "mark as paid" in ar transactions' | $T8 %]</td>
+   <td>[% L.yes_no_tag('ar_show_mark_as_paid', SELF.ar_show_mark_as_paid) %]</td>
+   <td>[% 'Should the "mark as paid" button showed in ar transactions?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Show "mark as paid" in ap transactions' | $T8 %]</td>
+   <td>[% L.yes_no_tag('ap_show_mark_as_paid', SELF.ap_show_mark_as_paid) %]</td>
+   <td>[% 'Should the "mark as paid" button showed in ap transactions?' | $T8 %]</td>
+ </tr>
+
+ <tr> </tr>
+ <tr> </tr>
+
  <tr>
    <td align="right">[% 'Accounting method' | $T8 %]</td>
    <td>[% L.select_tag('accounting_method', SELF.accounting_options, value_key => 'value', title_key => 'title', default => SELF.accounting_method) %]</td>
  <tr> </tr>
  <tr> </tr>
 
+ <tr class='listheading'>
+   <th colspan="3">[% 'Orders / Delivery Orders deleteable' | $T8 %]</th>
+ </tr>
+ <tr>
+   <td align="right">[% 'Sales Orders deleteable' | $T8 %]</td>
+   <td>[% L.yes_no_tag('sales_order_show_delete', SELF.sales_order_show_delete) %]</td>
+   <td>[% 'Show delete button in sales orders?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Purchase Orders deleteable' | $T8 %]</td>
+   <td>[% L.yes_no_tag('purchase_order_show_delete', SELF.purchase_order_show_delete) %]</td>
+   <td>[% 'Show delete button in purchase orders?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Sales Delivery Orders deleteable' | $T8 %]</td>
+   <td>[% L.yes_no_tag('sales_delivery_order_show_delete', SELF.sales_delivery_order_show_delete) %]</td>
+   <td>[% 'Show delete button in sales delivery orders?' | $T8 %]</td>
+ </tr>
+ <tr>
+   <td align="right">[% 'Purchase Delivery Orders deleteable' | $T8 %]</td>
+   <td>[% L.yes_no_tag('purchase_delivery_order_show_delete', SELF.purchase_delivery_order_show_delete) %]</td>
+   <td>[% 'Show delete button in purchase delivery orders?' | $T8 %]</td>
+ </tr>
+
+ <tr> </tr>
+ <tr> </tr>
+
  <tr class='listheading'>
    <th colspan="3">[% 'Warehouse' | $T8 %]</th>
  </tr>
 [%- L.hidden_tag('action',  'ClientConfig/dispatch')  %]
 [%- L.submit_tag('action_save',  LxERP.t8('Save'))  %]
 
+<br><br>
+
 </form>
index a6e26c6..b1a2a50 100644 (file)
@@ -1,7 +1,7 @@
 [%- USE T8 %]
 [% USE HTML %]<p>[% '...done' | $T8 %]</p>
 
-<form action="[% IF is_admin %]admin.pl[% ELSE %][% login.pl %][% END %]">
+<form action="[% IF is_admin %]admin.pl[% ELSE %]login.pl[% END %]">
 
  <input type="hidden" name="action" value="[% IF is_admin %]login[% ELSE %]company_logo[% END %]">
 
index a37e942..364367b 100644 (file)
@@ -82,8 +82,8 @@
   <p>
    [% 'Workflow Delivery Order' | $T8 %]<br>
    <input class="submit" type="submit" name="action_save_as_new" value="[% 'Save as new' | $T8 %]">
-   [% UNLESS delivered %]
-   <input class="submit" type="submit" name="action_delete" value="[% 'Delete' | $T8 %]">
+   [% UNLESS delivered || (vc == 'customer' && !INSTANCE_CONF.get_sales_delivery_order_show_delete) || (vc == 'vendor' && !INSTANCE_CONF.get_purchase_delivery_order_show_delete) %]
+     <input class="submit" type="submit" name="action_delete" value="[% 'Delete' | $T8 %]">
    [% END %]
    <input class="submit" type="submit" name="action_invoice" value="[% 'Invoice' | $T8 %]">
   </p>
index 2f255f7..b2732a7 100644 (file)
       [%#- button for saving history %]
       <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="[% 'history' | $T8 %]">
 
-      <input type="submit" class="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+      [% IF INSTANCE_CONF.get_ir_show_mark_as_paid %]
+          <input type="submit" class="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+      [% END %]
   [% END %]
 
 <input type="hidden" name="rowcount" value="[% rowcount %]">
index 6cbcd4e..ee093dc 100644 (file)
   [% IF id %]
       [%#- button for saving history %]
       <input type="button" class="submit" onclick="set_history_window([% id | html %]);" name="history" id="history" value="[% 'history' | $T8 %]">
-
-      <input type="submit" class="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+      [% IF INSTANCE_CONF.get_is_show_mark_as_paid %]
+          <input type="submit" class="submit" name="action" value="[% 'mark as paid' | $T8 %]">
+      [% END %]
   [% END %]
 
 <input type="hidden" name="rowcount" value="[% rowcount %]">
index ddf4a53..f83334c 100644 (file)
 
   <br>[% label_workflow %]<br>
   <input class="submit" type="submit" name="action_save_as_new" value="[% 'Save as new' | $T8 %]">
-  <input class="submit" type="submit" name="action_delete" value="[% 'Delete' | $T8 %]">
+
+  [%- UNLESS (is_sales_ord && !INSTANCE_CONF.get_sales_order_show_delete) || (is_pur_ord && !INSTANCE_CONF.get_purchase_order_show_delete) %]
+    <input class="submit" type="submit" name="action_delete" value="[% 'Delete' | $T8 %]">
+  [%- END %]
 
   [%- IF is_sales_quo %]
     <input class="submit" type="submit" name="action_sales_order" value="[% 'Sales Order' | $T8 %]">