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,
ar.invoice,
- t.rate AS taxrate,
+ t.rate AS taxrate, t.taxdescription,
'ar' as table,
tc.accno AS tax_accno, tc.description AS tax_accname,
ar.notes
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,
ap.invoice,
- t.rate AS taxrate,
+ t.rate AS taxrate, t.taxdescription,
'ap' as table,
tc.accno AS tax_accno, tc.description AS tax_accname,
ap.notes
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,
FALSE AS invoice,
- t.rate AS taxrate,
+ t.rate AS taxrate, t.taxdescription,
'gl' as table,
tc.accno AS tax_accno, tc.description AS tax_accname,
gl.notes
name => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Name'), },
notes => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Notes'), },
tax => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Tax'), },
+ taxdescription => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('tax_taxdescription'), },
taxkey => { type => 'Rose::DB::Object::Metadata::Column::Integer', text => t8('Taxkey'), },
tax_accname => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Tax Account Name'), },
tax_accno => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Tax Account'), },
transdate => { type => 'Rose::DB::Object::Metadata::Column::Date', text => t8('Invoice Date'), },
vcnumber => { type => 'Rose::DB::Object::Metadata::Column::Text', text => t8('Customer/Vendor Number'), },
- customer_id => { type => 'Rose::DB::Object::Metadata::Column::Integer', text => t8('Customer ID'), },
- vendor_id => { type => 'Rose::DB::Object::Metadata::Column::Integer', text => t8('Vendor ID'), },
+ customer_id => { type => 'Rose::DB::Object::Metadata::Column::Integer', text => t8('Customer (database ID)'), },
+ vendor_id => { type => 'Rose::DB::Object::Metadata::Column::Integer', text => t8('Vendor (database ID)'), },
);
my @datev_columns = qw(
transdate invnumber amount
debit_accno debit_accname
credit_accno credit_accname
- tax
+ taxdescription tax
tax_accno tax_accname taxkey
notes
);
sub datev_columns {
my ($self, $table) = @_;
- my %cols_by_primary_key = partition_by { $datev_column_defs{$_}{primary_key} } @datev_columns;
+ my %cols_by_primary_key = partition_by { 1 * $datev_column_defs{$_}{primary_key} } @datev_columns;
$::lxdebug->dump(0, "cols", \%cols_by_primary_key);
for my $column (@{ $cols_by_primary_key{1} }) {
})
}
- for my $column (@{ $cols_by_primary_key{''} }) {
+ for my $column (@{ $cols_by_primary_key{0} }) {
my $type = $column_types{ $datev_column_defs{$column}{type} };
die "unknown col type @{[ ref $column]}" unless $type;
credit_accno => $haben->{accno},
credit_accname => $haben->{accname},
tax => defined $amount->{net_amount} ? abs($amount->{amount}) - abs($amount->{net_amount}) : 0,
+ taxdescription => defined($soll->{tax_accno}) ? $soll->{taxdescription} : $haben->{taxdescription},
notes => $haben->{notes},
(map { ($_ => $tax->{$_}) } qw(taxkey tax_accname tax_accno)),
(map { ($_ => ($haben->{$_} // $soll->{$_})) } qw(acc_trans_id invnumber name vcnumber transdate)),
'Delivery Order' => 'Lieferschein',
'Delivery Order Date' => 'Lieferscheindatum',
'Delivery Order Date missing!' => 'Lieferscheindatum fehlt!',
- 'Delivery Order Items' => 'Lieferscheinpositionen',
'Delivery Order Number' => 'Lieferscheinnummer',
'Delivery Order created' => 'Lieferschein erstellt',
'Delivery Order deleted!' => 'Lieferschein gelöscht!',
'Export date' => 'Exportdatum',
'Export date from' => 'Exportdatum von',
'Export date to' => 'Exportdatum bis',
- 'Export for tax accountant' => 'Export für Steuerberater',
'Extend automatically by n months' => 'Automatische Verlängerung um x Monate',
'Extended' => 'Gesamt',
'Extended status' => 'Erweiterter Status',
'Gender' => 'Geschlecht',
'General Ledger' => 'Finanzbuchhaltung',
'General Ledger Corrections' => 'Korrekturen im Hauptbuch',
- 'General Ledger Entries' => 'Dialogbuchungen',
'General Ledger Transaction' => 'Dialogbuchung',
'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr',
'General ledger corrections' => 'Korrekturen im Hauptbuch',
'Invoice Duedate' => 'Fälligkeitsdatum',
'Invoice Number' => 'Rechnungsnummer',
'Invoice Number missing!' => 'Rechnungsnummer fehlt!',
- 'Invoice Positions' => 'Rechnungspositionen',
'Invoice deleted!' => 'Rechnung gelöscht!',
'Invoice filter' => 'Rechnungsfilter',
'Invoice for fees' => 'Rechnung über Gebühren',
'No valid number entered for pricegroup "#1".' => 'Für Preisgruppe "#1" wurde keine gültige Nummer eingegeben.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'No warehouse has been created yet or the quantity of the bins is not configured yet.' => 'Es wurde noch kein Lager angelegt, bzw. die dazugehörigen Lagerplätze sind noch nicht konfiguriert.',
- 'No, I really do need checked tables to export.' => 'Nein, ohne Belege die im Bericht aufgeommen werden sollen gibt es auch keinen Export.',
'No.' => 'Position',
'No/individual shipping address' => 'Keine/individuelle Lieferadresse',
'None' => 'Kein',
'Order value periodicity' => 'Auftragswert basiert auf Periodizität',
'Order/Item row name' => 'Name der Auftrag-/Positions-Zeilen',
'OrderItem' => 'Position',
- 'OrderItems' => 'Auftrags- und Angebotspositionen',
'Ordered' => 'Von Kunden bestellt',
'Orders' => 'Aufträge',
'Orders / Delivery Orders deleteable' => 'Aufträge / Lieferscheine löschbar',
- 'Orders and Quotations, Sales and Purchase' => 'Aufträge und Angebote',
'Orientation' => 'Seitenformat',
'Orphaned' => 'Nie benutzt',
'Orphaned currencies' => 'Verwaiste Währungen',
'Parts Master Data' => 'Artikelstammdaten',
'Parts must have an entry type.' => 'Waren müssen eine Buchungsgruppe haben.',
'Parts with existing part numbers' => 'Artikel mit existierender Artikelnummer',
- 'Parts, Services, and Assemblies' => 'Stammdaten für Waren, Dienstleistungen und Erzeugnisse',
'Parts, services and assemblies' => 'Waren, Dienstleistungen und Erzeugnisse',
'Partsgroup (database ID)' => 'Warengruppe (Datenbank-ID)',
'Partsgroup (name)' => 'Warengruppe (Name)',
'Port' => 'Port',
'Portrait' => 'Hochformat',
'Position type in quotation/order' => 'Positionstyp in Angebot/Auftrag',
- 'Positions for all Delivery Orders' => 'Positionenen für alle Lieferscheine',
- 'Positions for all Invoices' => 'Positionen für Verkaufsrechnungen und Einkaufsrechnungen',
- 'Positions for all Orders' => 'Positionen für alle Aufträge und Angebote',
'Post' => 'Buchen',
'Post Payment' => 'Zahlung buchen',
'Post and E-mail' => 'Buchen und E-Mail',
'Purchase Delivery Orders deleteable' => 'Einkaufslieferscheine löschbar',
'Purchase Invoice' => 'Einkaufsrechnung',
'Purchase Invoices' => 'Einkaufsrechnungen',
- 'Purchase Invoices and Accounts Payables' => 'Einkaufsrechnungen und Kreditorenbuchungen',
'Purchase Order' => 'Lieferantenauftrag',
'Purchase Orders' => 'Lieferantenaufträge',
'Purchase Orders deleteable' => 'Lieferantenaufträge löschbar',
'Sales Delivery Orders deleteable' => 'Verkaufslieferscheine löschbar',
'Sales Invoice' => 'Rechnung',
'Sales Invoices' => 'Kundenrechnungen',
- 'Sales Invoices and Accounts Receivables' => 'Verkaufsrechnungen und Debitorenbuchungen',
'Sales Order' => 'Kundenauftrag',
'Sales Orders' => 'Aufträge',
'Sales Orders Advance' => 'Auftragsvorlauf',