Commit Graph

24 Commits

Author SHA1 Message Date
Henrik Genssen 896ac2abc0 Add ProductInformation() class and examples/products.py
This allows the user to re-generate (update) the price list in
products.json using ProdWS API, which is a separate API provided by DPAG
to obtain the product catalogue including pricing information.
2019-07-11 23:59:42 +08:00
Henrik Genssen 114b6c036b make gen_1c4a_hdr() and get_product_price_by_id() class methods 2019-07-11 23:59:42 +08:00
Harald Welte 999c0b713b Fix utf-8 parsing of json data files 2019-07-11 23:59:42 +08:00
Henrik Genssen 103c0f4059 Add coding/utf8 annotations to fix special characters for python 2.7 2019-07-11 23:59:42 +08:00
Harald Welte 2646fdc889 bump version to 0.7 2019-07-11 23:59:42 +08:00
Georg Sauthoff 539148021e bump to version 0.6 2019-03-25 14:29:45 +01:00
Harald Welte fc2365d3d7 Add PEP-0396 compatible __version__ to the module and bump to 0.5 2019-01-16 16:08:32 +01:00
Harald Welte e464545a89 Fix company addresses with contact person
When using the build_comp_addr() method 'person' argument, we need
to pass in a PersonName object, and not a string name of the contact.

Add a public build_pers_name() method to produce that PersonName object,
and use it from the example code.
2016-12-13 14:08:29 +01:00
Matthias Bilger 04cdf054c4 Allow no sender and receiver 2016-11-30 17:49:11 +01:00
Harald Welte 325d2efa08 use round() to avoid truncation errros when doing int(5.1 * 100) = 5.09
Before this commit, a postage of 5.10 EUR would actually be reported as
postage of 5.09 EUR and subsequently rejected by DPAG.
2016-10-25 14:56:02 +02:00
Georg Sauthoff 2f0f298075 add preview pdf call 2016-09-26 20:26:15 +02:00
Georg Sauthoff a013f6c4c6 Store pdf in result, also store manifest
- since multiple vouchers yield one PDF, storing it directly in the
  result object makes more sense
- the manifest is also available when buying PDFs, thus retrieve it as
  well
2016-09-26 16:02:01 +02:00
Georg Sauthoff af78ec1c53 support building ShoppingCartPDFPosition positions 2016-09-23 18:37:58 +02:00
Georg Sauthoff bf758177bf add formats retrieval method
and cache the result as json
2016-09-23 18:36:32 +02:00
Georg Sauthoff 19c48360cb convert class variable into an instance one
Otherwise, you can't have multiple connections with different
authentications and basket contents. Also, re-constructing the
object didn't clear the positions which isn't very intuitive.
2016-09-23 11:38:01 +02:00
Georg Sauthoff d5220f809e fix Python 3 compatibiltiy
the result still is compatible with Python 2 (tested with 2.7)

- use relative import in `__init__.py` such that the import of `inema`
  also works with `PYTHONPATH` set to the repository
- use another method to load the json file, i.e. one that also works
  when the package isn't installed
- replace some deprecated imports (that aren't available in Python 3)
  with their sucessors
- replace some Python 2 specific constructs (e.g. `map` that implicitly
  converts to a list in Python 2 but just returns a map object in Python 3)
2016-09-23 11:30:18 +02:00
Harald Welte c136b66a31 fix setup.py / install on FreeBSD 2016-07-24 12:48:20 +02:00
Harald Welte 3a643f54b5 port to python-zeep >= 0.12.0 which uses _soapheaders
Prior to this commit, we useda custom modified versin of python-zeep
that accepts a list of headesr as part of the _soapheader argument.
Recent changes to python-zeep include that support natively using the
_soapeheaders [plural] argument.  Port the code to that.
2016-07-24 12:29:29 +02:00
Harald Welte bdb60a861b log how many positions in the basket we are submitting 2016-07-15 23:24:21 +02:00
Harald Welte eb03095932 add new clear_positions() method to clear a shopping basket 2016-07-15 23:24:05 +02:00
Harald Welte 4a87cb7d57 fix logger statements in terms of format string use 2016-07-15 15:53:27 +02:00
Harald Welte 9b3187c6a9 remove 'print' statements and use python logging instead 2016-07-15 15:03:46 +02:00
Harald Welte 36120fbd7d Always use German time zone, even if system time zone is different
The 1C4A hash is computed based (among other things) the current German
time.  Let's use German time no matter which timezone the executing
system is using.
2016-07-15 13:49:20 +02:00
Harald Welte 6b4c0683a2 initial import of code 2016-07-14 01:32:12 +02:00