GithubHelp home page GithubHelp logo

ledermann / datev Goto Github PK

View Code? Open in Web Editor NEW
53.0 53.0 19.0 124 KB

Ruby gem for DATEV exports via CSV

License: MIT License

Ruby 99.80% Shell 0.20%
accounting buchfuehrung buchhaltung csv datev german ruby rubygems

datev's People

Contributors

chriskaun avatar enomotodev avatar georf avatar ledermann avatar mseel avatar mtgrosser avatar sunsations avatar tibra avatar ushis avatar zellnerfinstreet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datev's Issues

Missing Changelog

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!

Default header attribute for "Erzeugt am" is not evaluated at runtime

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?

Datev::BookingExport (Versionsnummer/Formatversion)

We are a happy user of your gem and are in the process for the DATEV "Buchungsstapel"-certification.

The Feedback we got is:

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?

Compatible with datev 8.2x?

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.

Datev Format expects quoting for string fields

According to Datev Spec V.5.0

  • values of type text must be quoted in the output csv
  • if they do not contain a value - quotes must be present
  • if the value of a text column contains a double quote it must be doubled

Invalid chars for Buchungsstapel "Belegfeld 1"

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.