ledermann / datev Goto Github PK
View Code? Open in Web Editor NEWRuby gem for DATEV exports via CSV
License: MIT License
Ruby gem for DATEV exports via CSV
License: MIT License
Hi 👋
Thanks for the work on this gem! Since I'm updating this gem as a dependency right now I would love to see a CHANGELOG.md
or similar to immediately see what changed. Maybe you could consider introducing this? Thanks!
The classes Datev::AccountHeader
, Datev::BookingHeader
and Datev::ContactHeader
use Time.now.utc
for Erzeugt am
. I suggest that the timestamp is evaluated at runtime and not when evaluating the class. Otherwise it uses the timestamp when the server starts and not when generating the export.
You can fix this with a proc in each subclass of Header
, for example:
self.default_attributes = proc do
{ ... }
end
And in the Datev::Base
class the code below could be used to prevent breaking existing code:
attr_writer :default_attributes
def default_attributes
if @default_attributes.is_a?(Proc)
@default_attributes.call
else
@default_attributes
end
end
What do you think?
We are a happy user of your gem and are in the process for the DATEV "Buchungsstapel"-certification.
The Feedback we got is:
Versionsnummer
must be 700
instead of 720
:
Formatversion
must be 9
to 7
:
Feedback in German:
Die Versionsnummer (Feld 2) des Headers beträgt zur Zeit 700. Sie haben 720 aufgezeichnet. Diese Nummer ist ungültig.
Die Formatversion (Feld 5) ist beim Buchungsstapel 9, wenn der Header die Versionsnummer 700 hat.
It's possible to overwrite the defaults in the constructor like
Datev::BookingExport.new(
"Versionsnummer" => 700,
"Formatversion" => 9,
....
)
but I question, whether the defaults should be changed?
We are running into issues when trying to import data via the ASCII Import of the 8.26 "Datev Rechnungswesen compact".
I noticed that the exported data is defined for version 7.2
so I guess the gem currently does not support the newest Datev version.
According to Datev Spec V.5.0
As reported by Datev-Prüfprogramm V5.0. According to the spec, the field "Kreditoren-Skonto 3" does not exist.
This is supposedly due to LF being used as the line separator instead of CRLF.
Another feedback we got from the DATEV-review
In den Belegfeldern sind folgende Zeichen zulässig:
Ziffern: 0 1 2...9
Großbuchstaben: A B C...Z
Kleinbuchstaben: a b c...z
Sonderzeichen: $ & % * + - /
Do you think it would make sense to validate or sanitize the input in the gem directly?
My proposal would be to throw an exception if the input contains invalid chars and leave the sanitization (Umlaut-Replacement and the like) to the caller.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.