Möglichkeit zum Setzen von "Steuer im Preis inbegriffen" als Default
authorThomas Heck <theck@linet-services.de>
Thu, 6 Sep 2012 12:01:34 +0000 (14:01 +0200)
committerThomas Heck <theck@linet-services.de>
Thu, 6 Sep 2012 12:01:34 +0000 (14:01 +0200)
fixt #1985

12 files changed:
SL/CT.pm
SL/DB/MetaSetup/Customer.pm
SL/IS.pm
SL/User.pm
bin/mozilla/is.pl
bin/mozilla/oe.pl
locale/de/all
sql/Pg-upgrade2/customer_add_taxincluded_checked.sql [new file with mode: 0644]
templates/webpages/am/config.html
templates/webpages/ct/form_header.html
templates/webpages/is/form_footer.html
templates/webpages/oe/form_footer.html

index fabc3ca..45745f4 100644 (file)
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -319,7 +319,8 @@ sub save_customer {
     qq|user_password = ?, | .
     qq|c_vendor_id = ?, | .
     qq|klass = ?, | .
-    qq|curr = ? | .
+    qq|curr = ?, | .
+    qq|taxincluded_checked = ? | .
     qq|WHERE id = ?|;
   my @values = (
     $form->{customernumber},
@@ -362,6 +363,7 @@ sub save_customer {
     $form->{c_vendor_id},
     conv_i($form->{klass}),
     substr($form->{currency}, 0, 3),
+    $form->{taxincluded_checked},
     $form->{id}
     );
   do_query( $form, $dbh, $query, @values );
@@ -483,7 +485,8 @@ sub save_vendor {
     qq|  username = ?, | .
     qq|  user_password = ?, | .
     qq|  v_customer_id = ?, | .
-    qq|  curr = ? | .
+    qq|  curr = ?, | .
+    qq|  taxincluded_checked = ? | .
     qq|WHERE id = ?|;
   my @values = (
     $form->{vendornumber},
@@ -524,6 +527,7 @@ sub save_vendor {
     $form->{user_password},
     $form->{v_customer_id},
     substr($form->{currency}, 0, 3),
+    $form->{taxincluded_checked},
     $form->{id}
     );
   do_query($form, $dbh, $query, @values);
index 722ff9d..a1d1dec 100644 (file)
@@ -10,50 +10,51 @@ __PACKAGE__->meta->setup(
   table   => 'customer',
 
   columns => [
-    id             => { type => 'integer', not_null => 1, sequence => 'id' },
-    name           => { type => 'text', not_null => 1 },
-    department_1   => { type => 'varchar', length => 75 },
-    department_2   => { type => 'varchar', length => 75 },
-    street         => { type => 'varchar', length => 75 },
-    zipcode        => { type => 'varchar', length => 10 },
-    city           => { type => 'varchar', length => 75 },
-    country        => { type => 'varchar', length => 75 },
-    contact        => { type => 'text' },
-    phone          => { type => 'text' },
-    fax            => { type => 'varchar', length => 30 },
-    homepage       => { type => 'text' },
-    email          => { type => 'text' },
-    notes          => { type => 'text' },
-    discount       => { type => 'float', precision => 4 },
-    taxincluded    => { type => 'boolean' },
-    creditlimit    => { type => 'numeric', default => '0', precision => 5, scale => 15 },
-    terms          => { type => 'integer', default => '0' },
-    customernumber => { type => 'text' },
-    cc             => { type => 'text' },
-    bcc            => { type => 'text' },
-    business_id    => { type => 'integer' },
-    taxnumber      => { type => 'text' },
-    account_number => { type => 'text' },
-    bank_code      => { type => 'text' },
-    bank           => { type => 'text' },
-    language       => { type => 'varchar', length => 5 },
-    itime          => { type => 'timestamp', default => 'now()' },
-    mtime          => { type => 'timestamp' },
-    obsolete       => { type => 'boolean', default => 'false' },
-    username       => { type => 'varchar', length => 50 },
-    user_password  => { type => 'text' },
-    salesman_id    => { type => 'integer' },
-    c_vendor_id    => { type => 'text' },
-    klass          => { type => 'integer', default => '0' },
-    language_id    => { type => 'integer' },
-    payment_id     => { type => 'integer' },
-    taxzone_id     => { type => 'integer', default => '0', not_null => 1 },
-    greeting       => { type => 'text' },
-    ustid          => { type => 'text' },
-    iban           => { type => 'varchar', length => 100 },
-    bic            => { type => 'varchar', length => 100 },
-    direct_debit   => { type => 'boolean', default => 'false' },
-    curr           => { type => 'character', length => 3 },
+    id                  => { type => 'integer', not_null => 1, sequence => 'id' },
+    name                => { type => 'text', not_null => 1 },
+    department_1        => { type => 'varchar', length => 75 },
+    department_2        => { type => 'varchar', length => 75 },
+    street              => { type => 'varchar', length => 75 },
+    zipcode             => { type => 'varchar', length => 10 },
+    city                => { type => 'varchar', length => 75 },
+    country             => { type => 'varchar', length => 75 },
+    contact             => { type => 'text' },
+    phone               => { type => 'text' },
+    fax                 => { type => 'varchar', length => 30 },
+    homepage            => { type => 'text' },
+    email               => { type => 'text' },
+    notes               => { type => 'text' },
+    discount            => { type => 'float', precision => 4 },
+    taxincluded         => { type => 'boolean' },
+    creditlimit         => { type => 'numeric', default => '0', precision => 5, scale => 15 },
+    terms               => { type => 'integer', default => '0' },
+    customernumber      => { type => 'text' },
+    cc                  => { type => 'text' },
+    bcc                 => { type => 'text' },
+    business_id         => { type => 'integer' },
+    taxnumber           => { type => 'text' },
+    account_number      => { type => 'text' },
+    bank_code           => { type => 'text' },
+    bank                => { type => 'text' },
+    language            => { type => 'varchar', length => 5 },
+    itime               => { type => 'timestamp', default => 'now()' },
+    mtime               => { type => 'timestamp' },
+    obsolete            => { type => 'boolean', default => 'false' },
+    username            => { type => 'varchar', length => 50 },
+    user_password       => { type => 'text' },
+    salesman_id         => { type => 'integer' },
+    c_vendor_id         => { type => 'text' },
+    klass               => { type => 'integer', default => '0' },
+    language_id         => { type => 'integer' },
+    payment_id          => { type => 'integer' },
+    taxzone_id          => { type => 'integer', default => '0', not_null => 1 },
+    greeting            => { type => 'text' },
+    ustid               => { type => 'text' },
+    iban                => { type => 'varchar', length => 100 },
+    bic                 => { type => 'varchar', length => 100 },
+    direct_debit        => { type => 'boolean', default => 'false' },
+    curr                => { type => 'character', length => 3 },
+    taxincluded_checked => { type => 'varchar', length => 1 },
   ],
 
   primary_key_columns => [ 'id' ],
index 32b5171..22080c7 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -1676,6 +1676,7 @@ sub get_customer {
          c.email, c.cc, c.bcc, c.language_id, c.payment_id,
          c.street, c.zipcode, c.city, c.country,
          c.notes AS intnotes, c.klass as customer_klass, c.taxzone_id, c.salesman_id, c.curr,
+         c.taxincluded_checked,
          $duedate + COALESCE(pt.terms_netto, 0) AS duedate,
          b.discount AS tradediscount, b.description AS business
        FROM customer c
index 0ac87fe..2de54ee 100644 (file)
@@ -754,7 +754,7 @@ sub config_vars {
     taxnumber co_ustid duns menustyle template_format default_media
     default_printer_id copies show_form_details favorites
     pdonumber sdonumber hide_cvar_search_options mandatory_departments
-    sepa_creditor_id);
+    sepa_creditor_id taxincluded_checked);
 
   $main::lxdebug->leave_sub();
 
index aefa545..9d48cf2 100644 (file)
@@ -405,6 +405,18 @@ sub form_footer {
   my ($tax, $subtotal);
   $form->{taxaccounts_array} = [ split / /, $form->{taxaccounts} ];
 
+  IS->get_customer(\%myconfig, \%$form) if $form->{type} =~ /sales_(order|quotation)/;
+
+  if ( $form->{vc} eq 'customer' && !$form->{taxincluded_changed_by_user} ) {
+    if ( $form->{taxincluded_checked} eq 'y' ) {
+      $form->{taxincluded} = 1;
+    } elsif ( $form->{taxincluded_checked} eq 'n' ) {
+      $form->{taxincluded} = 0;
+    } else {
+      $form->{taxincluded} = $myconfig{taxincluded_checked};
+    }
+  }
+
   foreach my $item (@{ $form->{taxaccounts_array} }) {
     if ($form->{"${item}_base"}) {
       if ($form->{taxincluded}) {
index c1b281c..73c70b3 100644 (file)
@@ -475,6 +475,18 @@ sub form_footer {
   $TMPL_VAR{notes}    = qq|<textarea name=notes rows="$rows" cols="25">| . H($form->{notes}) . qq|</textarea>|;
   $TMPL_VAR{intnotes} = qq|<textarea name=intnotes rows="$introws" cols="35">| . H($form->{intnotes}) . qq|</textarea>|;
 
+  IS->get_customer(\%myconfig, \%$form) if $form->{type} =~ /sales_(order|quotation)/;
+
+  if ( $form->{vc} eq 'customer' && !$form->{taxincluded_changed_by_user} ) {
+    if ( $form->{taxincluded_checked} eq 'y' ) {
+      $form->{taxincluded} = 1;
+    } elsif ( $form->{taxincluded_checked} eq 'n' ) {
+      $form->{taxincluded} = 0;
+    } else {
+      $form->{taxincluded} = $myconfig{taxincluded_checked};
+    }
+  }
+
   if (!$form->{taxincluded}) {
 
     foreach my $item (split / /, $form->{taxaccounts}) {
index b4b6628..a1f1c9b 100644 (file)
@@ -2398,6 +2398,7 @@ $self->{texts} = {
   'tax_rate'                    => 'Prozent',
   'tax_taxdescription'          => 'Steuername',
   'tax_taxkey'                  => 'Steuerschlüssel',
+  'taxincluded checked'         => '"Steuer im Preis inbegriffen" vorwählen',
   'taxnumber'                   => 'Automatikkonto',
   'terminated'                  => 'gekündigt',
   'to (date)'                   => 'bis',
@@ -2408,6 +2409,7 @@ $self->{texts} = {
   'trial_balance'               => 'susa',
   'up'                          => 'hoch',
   'use program settings'        => 'benutze Programmeinstellungen',
+  'use user config'             => 'Verwende Benutzereinstellung',
   'used'                        => 'Verbraucht',
   'valid from'                  => 'Gültig ab',
   'vendor'                      => 'Lieferant',
diff --git a/sql/Pg-upgrade2/customer_add_taxincluded_checked.sql b/sql/Pg-upgrade2/customer_add_taxincluded_checked.sql
new file mode 100644 (file)
index 0000000..b8b7507
--- /dev/null
@@ -0,0 +1,6 @@
+-- @tag: customer_add_taxincluded_checked
+-- @description: Feld "Steuer im Preis inbegriffen" vormarkierbar machen
+-- @encoding: utf-8
+-- @depends: release_2_7_0
+
+ALTER TABLE customer ADD COLUMN taxincluded_checked varchar(1) DEFAULT '' NOT NULL;
index 7e2293d..29a9687 100644 (file)
       <th align="right">[% 'SEPA creditor ID' | $T8 %]</th>
       <td><input name="sepa_creditor_id" size="30" maxlength="35" value="[% HTML.escape(myconfig_sepa_creditor_id) %]"></td>
      </tr>
+
+       <tr>
+        <th align="right"q>[% 'taxincluded checked' | $T8 %]</th>
+        <td>
+          [% L.yes_no_tag('taxincluded_checked', myconfig_taxincluded_checked) %]
+        </td>
+      </tr>
+
     </table>
 
     <br style="clear: left" />
index 9c3df12..d2e5c35 100644 (file)
       <td>[% L.select_tag('salesman_id', ALL_SALESMEN, default = salesman_id, with_empty = 1, title_key = 'safe_name') %]</td>
       [%- END %]
      </tr>
+
+     <tr>
+      <td>[% 'taxincluded checked' | $T8 %]</td>
+      <td>[% L.select_tag('taxincluded_checked', [[undef, LxERP.t8('use user config')], ['y', LxERP.t8('Yes')], ['n', LxERP.t8('No')]], default = taxincluded_checked) %]</td>
+     </tr>
     </table>
 
     <table>
index 966eafe..cf5c7d4 100644 (file)
@@ -60,7 +60,8 @@
       </td>
       <td align="right">
   [%- IF taxaccounts %]
-       <input name="taxincluded" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
+       <input type="hidden" name="taxincluded_changed_by_user" id="taxincluded_changed_by_user" value="[% taxincluded_changed_by_user ? '1' : '0' %]">
+       <input name="taxincluded" onclick="document.getElementById('taxincluded_changed_by_user').value = '1';" class="checkbox" type="checkbox" [% IF taxincluded %]checked[% END %]>
        <b>[% 'Tax Included' | $T8 %]</b>
        <br>
        <br>
index 19f90cd..6a8e64f 100644 (file)
           </td>
 [%- END %]
           <td align="right">
+
 [%- IF taxaccounts %]
-            <input name="taxincluded" class="checkbox" type="checkbox" value="1"[% IF taxincluded %] checked[% END %]><b>[% 'Tax Included' | $T8 %]</b><br><br>
+            <input type="hidden" name="taxincluded_changed_by_user" id="taxincluded_changed_by_user" value="[% taxincluded_changed_by_user ? '1' : '0' %]">
+            <input name="taxincluded" class="checkbox" onclick="document.getElementById('taxincluded_changed_by_user').value = '1';" type="checkbox" value="1"[% IF taxincluded %] checked[% END %]><b>[% 'Tax Included' | $T8 %]</b><br><br>
 [%- END %]
             <table>
 [%- IF NOT taxincluded %]