Skip to content

Обмін документами

"Рахівниця" може зберігати будь-який документ у форматі JSON і пізніше відкривати його у тій самій чи іншій базі даних. При цьому логіка роботи документів залишається така ж сама як і при ручному занесенні товарів. Це зокрема означає, що якщо намагатись відкрити розхідну накладну з товарними позиціями яких немає в базі даних, то "Рахівниця" при цьому видасть помилку. З іншого боку, якщо відкривати такий самий документ як прихідну накладну, то всі позиції з невідомими кодами будуть додані як нові товари. УВАГА! Нові товари не додаються ні в яку групу, користувач це має зробити самостійно інакше їх не буде видно у списку вибору товару. Найпростіше побачити такці товари якщо у прихідній накладній зробити видимим стовпчик "Група товару".

По завершенню відкриття документу показується діалогове вікно з повідомленням про те що або документ оброблено без помилок або перелік позицій при відкриванні яких стались помилки.

Формат документу наступний:

{
    "meta":{"document_type":1,"app_version":"3.0.0.1021","structure_version":1},
    "contragent":{"name":"Назва контрагента"},
    "header":{"doc_number":"215","doc_date":"08.04.2024","note":""},
    "items":
    [
        {"TovarID":5,"TovarName":"Бутокс 1мл","TovarCode":"2000000000053","TovarQty":100,"TovarIncPrice":3.38,"TovarOutPrice":5,"TovarSllPrice":5,"Note":""},
        {"TovarID":6,"TovarName":"Віросан 100мл","TovarCode":"4820190480972","TovarQty":2,"TovarIncPrice":96.02,"TovarOutPrice":150,"TovarSllPrice":150,"Note":""}
    ]
}
Всі елементи необхідні, в списку items може бути будь-яка кількість позицій. Значення TovarID на даний момент ігнорується при відкриванні.

Імпорт товарів

Для довідника товарів роззроблено окрему дуже гнучку систему імпорту що дозволяє імпортувати дані з будь-якого файлу у форматі JSON в котрому є структура-перелік подібна до items з прикладу вище. При цьому назва структури може конфігуруватись, у файлі може бути більше однієї стуктури. Кожне з полів стуктури можна прив'язати до будь-якого поля у довіднику товарів і до кожного з полів структури можна підв'язати додаткову дію.

Наприклад, я для власних потреб імпортував базу даних монет з файлу згеренованого програмою OpenNumismat:

{"description": { "author": "", "count": 541, "db_version": 9, "description": "", "title": "Монети", "type": "OpenNumismat"},
"coins": [
{
  "category": "Coin",
  "country": "Australia",
  "material": "Silver",
  "mint": "RAM",
  "obverseimg": "1_obverseimg.jpg",
  "period": "Decimal",
  "reverseimg": "1_reverseimg.jpg",
  "ruler": "Elizabeth II",
  "status": "owned",
  "title": "50 cents 1966 round design",
  "type": "Regular issue",
  "unit": "Cent",
  "value": 50,
  "year": 1966
},
{
  "category": "Coin",
  "country": "Australia",
  "material": "Bronze",
  "mint": "RAM",
  "obverseimg": "2_obverseimg.jpg",
  "period": "Decimal",
  "region": "Oceania",
  "reverseimg": "2_reverseimg.jpg",
  "ruler": "Elizabeth II",
  "status": "owned",
  "title": "1 cent 1966",
  "type": "Regular issue",
  "unit": "Cent",
  "value": 1,
  "year": 1966
},
...
При цьому додатково програма шукає в інтернеті прапор країни відповідно до значення поля Country і підтягує в базу малюнки з локального каталога з іменами вказаними в obverseimg та reverseimg.

Зараз цей функціонал редагується лише в коді програми. Якщо подібний функціонал буде реально потрібен - прошу створювати картку в Трелло, там роботи максимум на день.