Обмін документами
"Рахівниця" може зберігати будь-який документ у форматі 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":""}
]
}
Імпорт товарів
Для довідника товарів роззроблено окрему дуже гнучку систему імпорту що дозволяє імпортувати дані з будь-якого файлу у форматі 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.
Зараз цей функціонал редагується лише в коді програми. Якщо подібний функціонал буде реально потрібен - прошу створювати картку в Трелло, там роботи максимум на день.