#=====================================================================
-# Lx-Office ERP
+# kivitendo ERP
# Copyright (c) 2004 by Udo Spallek, Aachen
#
# Author: Udo Spallek
# German Tax authority Module and later ELSTER Interface
#======================================================================
+use strict;
use utf8;
require "bin/mozilla/common.pl";
use List::Util qw(first);
+use SL::DB::Default;
use SL::PE;
use SL::RP;
use SL::USTVA;
$::auth->assert('advance_turnover_tax_return');
+ my $defaults = SL::DB::Default->get;
$form->{title} = $locale->text('UStVA');
$form->{kz10} = ''; #Berichtigte Anmeldung? Ja =1 Nein=0
# Einlesen der Finanzamtdaten
my $ustva = USTVA->new();
- $ustva->get_config($::userspath, 'finanzamt.ini');
+ $ustva->get_config($::lx_office_conf{paths}{userspath}, 'finanzamt.ini');
# Hier Einlesen der user-config
# steuernummer entfernt für prerelease
my @a = qw(
- signature name company address businessnumber
+ signature name
tel fax email co_chief co_department
co_custom1 co_custom2 co_custom3 co_custom4 co_custom5
co_name1 co_name2 co_street co_street1 co_zip
co_city co_city1 co_country co_tel co_tel1
co_tel2 co_fax co_fax1 co_email co_email1
- co_url co_url1 ustid duns co_bankname
+ co_url co_url1 co_bankname
co_bankname1 co_bankname2 co_bankname3 co_blz co_blz1
co_blz2 co_blz3 co_accountnr co_accountnr1 co_accountnr2
co_accountnr3
);
- map { $form->{$_} = $myconfig{$_} } @a;
+ $form->{$_} = $myconfig{$_} for @a;
+ $form->{$_} = $defaults->$_ for qw(company address co_ustid duns);
my $openings = $form->{FA_Oeffnungszeiten};
$openings =~ s/\\\\n/<br>/g;
company_given => $company_given,
address_given => $address_given,
taxnumber_given => $taxnumber_given,
- taxnumber => $myconfig{taxnumber},
+ taxnumber => $defaults->taxnumber,
select_year => $select_year,
period_local => $period_local,
method_local => $method_local,
$::auth->assert('advance_turnover_tax_return');
# parse help documents under doc
- my $tmp = $::form->{templates};
$::form->{templates} = 'doc';
$::form->{help} = 'ustva';
$::form->{type} = 'help';
$::form->{format} = 'html';
generate_ustva();
- #$form->{templates} = $tmp;
$::lxdebug->leave_sub();
}
qq| <option value=html selected>|
. $::locale->text('Preview')
. qq|</option>|;
- if ($::latex_templates) {
+ if ($::lx_office_conf{print_templates}{latex}) {
$format .=
qq| <option value=pdf>|
. $::locale->text('UStVA (PDF-Dokument)')
$::auth->assert('advance_turnover_tax_return');
+ my $defaults = SL::DB::Default->get;
+ $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates;
+ $form->{templates} = $defaults->templates;
+
# Aufruf von get_config zum Einlesen der Finanzamtdaten aus finanzamt.ini
my $ustva = USTVA->new();
- $ustva->get_config($::userspath, 'finanzamt.ini');
+ $ustva->get_config($::lx_office_conf{paths}{userspath}, 'finanzamt.ini');
# init some form vars
my @anmeldungszeitraum =
$locale->date(\%myconfig, $form->current_date(\%myconfig), 0, 0, 0);
# setup variables for the form
- my @a = qw(company businessnumber tel fax email
+ my @a = qw(tel fax email
co_chief co_department co_custom1 co_custom2 co_custom3 co_custom4 co_custom5
co_name1 co_name2 co_street co_street1 co_zip co_city co_city1 co_country co_tel co_tel1 co_tel2
- co_fax co_fax1 co_email co_email1 co_url co_url1 ustid duns
+ co_fax co_fax1 co_email co_email1 co_url co_url1
co_bankname co_bankname1 co_bankname2 co_bankname3 co_blz co_blz1
co_blz2 co_blz3 co_accountnr co_accountnr1 co_accountnr2 co_accountnr3);
- map { $form->{$_} = $myconfig{$_} } @a;
+ $form->{$_} = $myconfig{$_} for @a;
+ $form->{$_} = $defaults->$_ for qw(company address co_ustid duns);
if ($form->{address} ne '') {
my $temp = $form->{address};
dec_places => '2',
});
- push @category_cent, qw(83 Z43 Z45 Z53 Z62 Z65 Z67);
+ push @category_cent, qw(Z43 Z45 Z53 Z62 Z65 Z67);
my @category_euro = $ustva->report_variables({
myconfig => \%myconfig,
#file suffix
$file .= '.xml';
$file =~ s|.*/||;
- $form->{tmpfile} = "$::userspath/$file";
$form->{attachment_filename} = $file;
my $temp_numberformat = $myconfig{numberformat};
- # Numberformat must be '1000.00' for Winston
+ # Numberformat must be '1000,00' for Winston
- $myconfig{numberformat} = '1000.00';
+ $myconfig{numberformat} = '1000,00';
foreach my $number (@category_cent) {
$form->{$number} = ( $form->{$number} !=0 ) ? $form->format_amount(\%myconfig, $form->{$number}, '2', '') : '';
# Define serveral filenames
$form->{IN} = 'taxbird.txb';
- $form->{attachment_filename} = "USTVA-" . $form->{period}
- . sprintf("%02d", $form->{year} % 100) . ".txb";
+ $form->{attachment_filename} = "USTVA-" . ($form->{period} * 1) . sprintf("%02d", $form->{year} % 100) . ".txb";
$form->{attachment_filename} =~ s|.*/||;
- $form->{tmpfile} = "$::userspath/" . $form->{attachment_filename};
- # TODO: set Output to UTF-8 or system Preference
- #$form->{"iconv"} = Text::Iconv->new($myconfig{dbcharset}, "UTF-8");
- #my $iconv = $self->{"iconv"};
- #$iconv->convert($variable);
if ($form->{period} =~ /^[4]\d$/ ){
my %periods = ( # Lx => taxbird
'41' => '12',
. '!');
}
- $form->{templates} = $myconfig{templates};
$form->{templates} = "doc" if ( $form->{type} eq 'help' );
if ($form->{format} eq 'generic'){
$form->header();
my $template_ref = {
- taxnumber => $myconfig{taxnumber},
+ taxnumber => $defaults->taxnumber,
};
print($form->parse_html_template('ustva/generic_taxreport', $template_ref));
} else
{
- $form->parse_template(\%myconfig, $::userspath);
+ $form->parse_template(\%myconfig, $::lx_office_conf{paths}{userspath});
}
$::form->header;
my $ustva = USTVA->new();
- $ustva->get_config($::userspath, 'finanzamt.ini');
+ $ustva->get_config($::lx_office_conf{paths}{userspath}, 'finanzamt.ini');
my $land = $::form->{elsterland};
my $amt = $::form->{elsterFFFF};
$::form->{title} = $::locale->text('Tax Office Preferences');
- my $select_tax_office = $ustva->fa_auswahl($land, $amt, $ustva->query_finanzamt(\%::myconfig, $::form));
- my $checked_accrual = q|checked="checked"| if ($::form->{method} eq 'accrual');
- my $checked_cash = q|checked="checked"| if ($::form->{method} eq 'cash');
- my $checked_monthly = "checked" if ($::form->{FA_voranmeld} eq 'month');
- my $checked_quarterly = "checked" if ($::form->{FA_voranmeld} eq 'quarter');
- my $checked_dauerfristverlaengerung = "checked" if ($::form->{FA_dauerfrist} eq '1');
- my $checked_kz_71 = "checked" if ($::form->{FA_71} eq 'X');
+ my $select_tax_office = $ustva->fa_auswahl($land, $amt, $ustva->query_finanzamt(\%::myconfig, $::form));
+ my $checked_accrual = $::form->{method} eq 'accrual' ? q|checked="checked"| : '';
+ my $checked_cash = $::form->{method} eq 'cash' ? q|checked="checked"| : '';
+ my $checked_monthly = $::form->{FA_voranmeld} eq 'month' ? "checked" : '';
+ my $checked_quarterly = $::form->{FA_voranmeld} eq 'quarter' ? "checked" : '';
+ my $checked_dauerfristverlaengerung = $::form->{FA_dauerfrist} eq '1' ? "checked" : '';
+ my $checked_kz_71 = $::form->{FA_71} eq 'X' ? "checked" : '';
my $_hidden_variables_ref;
$form->header();
-# print qq|
-# <body>
-# |;
-
my $elsterland = '';
my $elster_amt = '';
my $elsterFFFF = '';
my $elstersteuernummer = '';
my $ustva = USTVA->new();
- $ustva->get_config($::userspath, 'finanzamt.ini')
+ $ustva->get_config($::lx_office_conf{paths}{userspath}, 'finanzamt.ini')
if ($form->{saved} eq $locale->text('saved'));
# Auf Übergabefehler checken
create_steuernummer();
# rebuild elster_amt
- my $amt = '';
- foreach $amt (keys %{ $elster_init{ $form->{elsterland} } }) {
- $elster_amt = $amt
- if ($elster_init{ $form->{elsterland}{$amt} eq $form->{elsterFFFF} });
- }
+ my $amt = $elster_init{$elsterFFFF};
# load the predefined hash data into the FA_* Vars
my @variables = qw(FA_Name FA_Strasse FA_PLZ FA_Ort
my $patterncount = $form->{patterncount};
my $elster_pattern = $form->{elster_pattern};
my $delimiter = $form->{delimiter};
- my $steuernummer = $form->{steuernummer} if ($stnr eq '');
+ my $steuernummer = $stnr eq '' ? $form->{steuernummer} : '';
$form->{FA_Oeffnungszeiten} =~ s/\\\\n/\n/g;
$::form->{elster} = '1';
- open my $ustvaconfig, ">", "$::userspath/$filename" or $::form->error("$filename : $!");
+ open my $ustvaconfig, ">", "$::lx_office_conf{paths}{userspath}/$filename" or $::form->error("$filename : $!");
# create the config file
print {$ustvaconfig} qq|# Configuration file for USTVA\n\n|;
call_sub($::form->{"lastsub"});
$::lxdebug->leave_sub();
}
-