Commit graph

2937 commits

Author SHA1 Message Date
Lance Edgar f1f2b885db Add per-item discounts to trainwreck; importing support
pretty basic so far, can override if more is needed
2022-02-19 17:30:19 -06:00
Lance Edgar 4a8ac33775 Add patronage to trainwreck schema; skeleton for import-self cmd 2022-02-19 13:22:52 -06:00
Lance Edgar cb16e61592 Update changelog 2022-02-15 17:33:38 -06:00
Lance Edgar f90e1ed739 Render empty string if currency value is None
also add `model` attribute for base email class
2022-02-15 17:32:11 -06:00
Lance Edgar fdbdfed586 Add "fuzzy fields" support for int/float/decimal 2022-02-15 15:40:27 -06:00
Lance Edgar 2c290643ff Add AppHandler methods to get/save/delete settings 2022-02-15 10:15:37 -06:00
Lance Edgar 4d5e8f8c73 Update changelog 2022-02-13 21:39:41 -06:00
Lance Edgar e3044f9dfe Stop using legacy syntax to define entry points
been meaning to get around to that, but setuptools v60.9.0 seems to
have forced my hand.  never did find docs saying that the syntax had
been deprecated, but updating that fixed a problem where apparently
none of the entry points were actually being recorded when the package
was installed, when setuptools 60.9 was present

https://setuptools.pypa.io/en/latest/history.html#v60-9-0
2022-02-13 20:19:06 -06:00
Lance Edgar e0186c7dd2 Add AppHandler.render_duration() convenience method 2022-02-12 19:15:26 -06:00
Lance Edgar fdfcd72580 Compare received vs. shipped to check row status
when a row has no received amount yet, it would be "incomplete" unless
there was nothing ordered.  but if the batch has an invoice file then
we would say unless there was nothing *shipped* instead.

this also, finally, splits out the row status setter as separate
method.  probably need even more parts split out yet but it's a start
2022-02-11 15:33:11 -06:00
Lance Edgar 7e58b58180 Make locate_product_for_vendor_code() prefer unit items
i.e. when multiple matches are found, try to return a unit item if
possible.  that at least seems useful for e.g. SMS PO matching, and
presumably is good behavior generally?  can revisit if not
2022-02-11 15:29:26 -06:00
Lance Edgar dc2d7d61fc Add "fuzzy fields" concept for importers
to relax the diff check a little, for certain fields which don't have
the same level of accuracy between systems
2022-02-10 20:29:06 -06:00
Lance Edgar d2316887ca Update changelog 2022-02-10 09:09:15 -06:00
Lance Edgar 95d2b2dab7 Add generic get_next_counter_value() method for importers
useful when autoincrement value is needed, e.g. for pseudo-key
2022-02-09 18:01:27 -06:00
Lance Edgar 2d989e256f Always pass along associated products when printing label batch 2022-02-09 17:19:56 -06:00
Lance Edgar 346c2b6ca6 Update changelog 2022-02-09 12:01:11 -06:00
Lance Edgar 917f1417b4 Show email address for new custorder person autocomplete 2022-02-09 12:00:32 -06:00
Lance Edgar 7ae576ab84 Update changelog 2022-02-08 12:22:31 -06:00
Lance Edgar 2a726760e5 Add common normalize logic to ProductsHandler
about dang time..now still need to enhance and use it everywhere
2022-02-08 12:11:02 -06:00
Lance Edgar 5ad578cbe6 Update changelog 2022-02-07 20:22:14 -06:00
Lance Edgar 4677ba0660 Lower log level when disconnecting IMAP for mailmon
what seems to happen is a) connection fails, then b) attempting to
"close" the connection also fails.  let's just get one email from a)
and not get one from b)
2022-02-07 13:19:22 -06:00
Lance Edgar 4ca0fb73e9 Show pseudo-progress when saving Excel report 2022-02-06 17:40:00 -06:00
Lance Edgar a0d861c0e8 Update changelog 2022-02-06 13:22:00 -06:00
Lance Edgar 86f851c417 Add match_on_time_field for Trainwreck importers
we should match on whichever time field is "most reliable" from the
host transaction data.  for instance some POS systems include an
`upload_time` value which is most preferable, but we use `end_time` as
the default since it's more likely to exist in all systems.
2022-02-06 11:23:24 -06:00
Lance Edgar a2adc03f0a Update changelog 2022-02-05 21:51:47 -06:00
Lance Edgar 71640985d4 Commit (or rollback) local transaction before host, when importing
not exactly sure why it used to commit host before local, but it's
pretty dang frustrating to see a massive import fail at the very end,
which makes for a compelling reason to commit local before host.
2022-02-05 21:39:45 -06:00
Lance Edgar f12ebc3443 Add "all" product locate methods to products handler
should be able to use the handler to get exactly what you need now..

this also changes autocomplete to only fetch one product by key,
whereas previously multiple matches were *possible* - although they
were presumably not likely.  guess we'll see if there is blowback
2022-02-05 15:58:42 -06:00
Lance Edgar 2e2e2a299f Update changelog 2022-02-04 14:55:34 -06:00
Lance Edgar 41ad03cc23 Add group_ids field for Customer model importer
this should be preferred over the `group_id` and `group_id_2` fields
2022-02-04 14:41:03 -06:00
Lance Edgar 63d16b052c Make sure default phone number is first, when importing 2022-02-04 13:38:43 -06:00
Lance Edgar 9e72303087 Tweak vendor catalog batch input params; fix tests 2022-02-01 20:50:25 -06:00
Lance Edgar 24f1ebfe9d Update changelog 2022-02-01 20:01:34 -06:00
Lance Edgar ae3d120c89 Misc. flexibility improvements for vendor catalog batch
- ExcelReader now should ignore "pseudo-empty" columns
- add `ProductsHandler.get_case_size()` method
- vendor catalog batch input need not contain case sizes (we copy them
  from product master if not)
- vendor catalog batch input need not contain vendor item codes either
- vendor catalog product lookup now tries global default logic
  first (then falls back to its own traditional logic)
- generic catalog parser lets handlers do more of the work
2022-02-01 19:15:11 -06:00
Lance Edgar 449f1e3076 Update changelog 2022-02-01 13:39:59 -06:00
Lance Edgar 3c46e2bb77 Allow rattail watcher to get deleted before new/dirty changes
in particular this hopefully helps rattail -> rattail for certain edge
cases, but we'll see...
2022-02-01 13:38:47 -06:00
Lance Edgar b9e2de0aae Update changelog 2022-01-31 21:17:24 -06:00
Lance Edgar 8b7fc14269 Add CSVReport base class 2022-01-31 21:15:59 -06:00
Lance Edgar 0454551a4a Rename permission for generating new report
per corresponding changes in Tailbone
2022-01-31 19:33:47 -06:00
Lance Edgar 5e5e785e4e Update changelog 2022-01-31 17:52:44 -06:00
Lance Edgar 84987925b3 Add safe_filename() method for reports 2022-01-31 16:56:22 -06:00
Lance Edgar b273737162 Stash docstring for ReportParam in its helptext attr
apparently assigning to `__doc__` was not working?
2022-01-31 16:51:26 -06:00
Lance Edgar 6ec98e0b09 Update changelog 2022-01-31 14:49:48 -06:00
Lance Edgar 90adbb5233 Change default initial delay for luigi OvernightTask datasync wait
for when you invoke e.g. `self.datasync_wait(minutes=5)`
2022-01-30 21:56:35 -06:00
Lance Edgar b11ae21d4d Only delete object if importer allows it, from datasync
i.e. if it allows deleting that particular object
2022-01-30 14:06:48 -06:00
Lance Edgar 6bb8421a4e Avoid cache query when fetching single local object for importer
specifically b/c the cache query can involve a date range, which if so
may not work if fetching object from outside the range
2022-01-29 17:12:33 -06:00
Lance Edgar dbad5cce45 Add tailbone-integration project generator 2022-01-29 14:41:58 -06:00
Lance Edgar 20be1de2cc Add --list-all-models flag for all import/export commands 2022-01-29 14:41:58 -06:00
Lance Edgar 5e1cb14382 Add rattail-integration project generator 2022-01-29 14:41:55 -06:00
Lance Edgar dfb3e64fbe Fix typo for printing batch of labels 2022-01-28 18:13:30 -06:00
Lance Edgar b43d2242a7 Fix importer tests, b/c timezone config is now required 2022-01-28 09:48:47 -06:00