X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDATEV.pm;h=0ab044af0e0e00c574c386594f37891d33995a09;hb=76a39ab4f52c7f25d18bb7dc714262ac8d400720;hp=026cbe2af583d33a802a103b690a401bfd8f4ae2;hpb=470cd7228cc266776adaaabe4f4939239cbcfc63;p=kivitendo-erp.git diff --git a/SL/DATEV.pm b/SL/DATEV.pm index 026cbe2af..0ab044af0 100644 --- a/SL/DATEV.pm +++ b/SL/DATEV.pm @@ -18,7 +18,8 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # Datev export module @@ -33,6 +34,7 @@ use SL::DBUtils; use SL::DATEV::KNEFile; use SL::DB; use SL::HTML::Util (); +use SL::Locale::String qw(t8); use Data::Dumper; use DateTime; @@ -383,7 +385,7 @@ sub _get_transactions { my %all_taxchart_ids = selectall_as_map($form, $self->dbh, qq|SELECT DISTINCT chart_id, TRUE AS is_set FROM tax|, 'chart_id', 'is_set'); my $query = - qq|SELECT ac.acc_trans_id, ac.transdate, ac.trans_id,ar.id, ac.amount, ac.taxkey, ac.memo, + qq|SELECT ac.acc_trans_id, ac.transdate, ac.gldate, ac.trans_id,ar.id, ac.amount, ac.taxkey, ac.memo, ar.invnumber, ar.duedate, ar.amount as umsatz, ar.deliverydate, ar.itime::date, ct.name, ct.ustid, ct.customernumber AS vcnumber, ct.id AS customer_id, NULL AS vendor_id, c.accno, c.description AS accname, c.taxkey_id as charttax, c.datevautomatik, c.id, ac.chart_link AS link, @@ -405,7 +407,7 @@ sub _get_transactions { UNION ALL - SELECT ac.acc_trans_id, ac.transdate, ac.trans_id,ap.id, ac.amount, ac.taxkey, ac.memo, + SELECT ac.acc_trans_id, ac.transdate, ac.gldate, ac.trans_id,ap.id, ac.amount, ac.taxkey, ac.memo, ap.invnumber, ap.duedate, ap.amount as umsatz, ap.deliverydate, ap.itime::date, ct.name, ct.ustid, ct.vendornumber AS vcnumber, NULL AS customer_id, ct.id AS vendor_id, c.accno, c.description AS accname, c.taxkey_id as charttax, c.datevautomatik, c.id, ac.chart_link AS link, @@ -427,7 +429,7 @@ sub _get_transactions { UNION ALL - SELECT ac.acc_trans_id, ac.transdate, ac.trans_id,gl.id, ac.amount, ac.taxkey, ac.memo, + SELECT ac.acc_trans_id, ac.transdate, ac.gldate, ac.trans_id,gl.id, ac.amount, ac.taxkey, ac.memo, gl.reference AS invnumber, gl.transdate AS duedate, ac.amount as umsatz, NULL as deliverydate, gl.itime::date, gl.description AS name, NULL as ustid, '' AS vcname, NULL AS customer_id, NULL AS vendor_id, c.accno, c.description AS accname, c.taxkey_id as charttax, c.datevautomatik, c.id, ac.chart_link AS link, @@ -492,14 +494,11 @@ sub _get_transactions { if ($ref2->{trans_id} != $trans->[0]->{trans_id}) { require SL::DB::Manager::AccTransaction; if ( $trans->[0]->{trans_id} ) { - my $acc_trans_old_obj = SL::DB::Manager::AccTransaction->get_first(where => [ trans_id => $trans->[0]->{trans_id} ]); - $self->add_error("Unbalanced ledger! Old: " . $acc_trans_old_obj->transaction_name) if ref($acc_trans_old_obj); + my $acc_trans_obj = SL::DB::Manager::AccTransaction->get_first(where => [ trans_id => $trans->[0]->{trans_id} ]); + $self->add_error(t8("Export error in transaction #1: Unbalanced ledger before next transaction (#2)", + $acc_trans_obj->transaction_name, $ref2->{trans_id}) + ); }; - if ( $ref2->{trans_id} ) { - my $acc_trans_curr_obj = SL::DB::Manager::AccTransaction->get_first(where => [ trans_id => $ref2->{trans_id} ]); - $self->add_error("Unbalanced ledger! New:" . $acc_trans_curr_obj->transaction_name) if ref($acc_trans_curr_obj); - }; - $self->add_error("count: $count"); return; } @@ -670,8 +669,9 @@ sub _get_transactions { if (abs($absumsatz) >= (0.01 * (1 + scalar @taxed))) { require SL::DB::Manager::AccTransaction; my $acc_trans_obj = SL::DB::Manager::AccTransaction->get_first(where => [ trans_id => $trans->[0]->{trans_id} ]); - $self->add_error("Datev-Export fehlgeschlagen! Bei Transaktion " . $acc_trans_obj->transaction_name . " ($absumsatz)"); - + $self->add_error(t8("Export error in transaction #1: Rounding error too large #2", + $acc_trans_obj->transaction_name, $absumsatz) + ); } elsif (abs($absumsatz) >= 0.01) { $self->add_net_gross_differences($absumsatz); }