oneCInteraction 1.4.2__tar.gz → 1.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {onecinteraction-1.4.2/src/oneCInteraction.egg-info → onecinteraction-1.4.4}/PKG-INFO +1 -1
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/log.py +6 -2
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/nomenclature.py +28 -11
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/orders.py +16 -9
- {onecinteraction-1.4.2 → onecinteraction-1.4.4/src/oneCInteraction.egg-info}/PKG-INFO +1 -1
- onecinteraction-1.4.4/src/oneCInteraction.egg-info/scm_version.json +8 -0
- onecinteraction-1.4.2/src/oneCInteraction.egg-info/scm_version.json +0 -8
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/.github/workflows/publish.yml +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/.gitignore +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/LICENSE +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/README.md +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/pyproject.toml +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/setup.cfg +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/__init__.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/categories.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/characteristics.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/connection.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/customers.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/discounts.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/groups.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/properties.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction/structures.py +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/SOURCES.txt +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/dependency_links.txt +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/requires.txt +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/scm_file_list.json +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/top_level.txt +0 -0
- {onecinteraction-1.4.2 → onecinteraction-1.4.4}/tests/test_lib.py +0 -0
|
@@ -2,6 +2,9 @@ import inspect
|
|
|
2
2
|
import os
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
import sys
|
|
5
|
+
import threading
|
|
6
|
+
|
|
7
|
+
_log_lock = threading.Lock()
|
|
5
8
|
|
|
6
9
|
# Determine the root directory of the project importing this library
|
|
7
10
|
main_module = sys.modules.get('__main__')
|
|
@@ -29,5 +32,6 @@ def log_sys(message, errorFlag = 0, user_id = None):
|
|
|
29
32
|
log(log_path, log_text)
|
|
30
33
|
|
|
31
34
|
def log(file_path, log_text):
|
|
32
|
-
with
|
|
33
|
-
|
|
35
|
+
with _log_lock:
|
|
36
|
+
with open(file_path, "a", encoding="utf-8") as f:
|
|
37
|
+
f.write(log_text)
|
|
@@ -335,7 +335,7 @@ class NomenclatureManager:
|
|
|
335
335
|
ON GeneralWholesalePrices.Номенклатура = MainTable.Ссылка
|
|
336
336
|
LEFT JOIN РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&CurrentDate, Номенклатура В (&ProductRefs) AND ТипЦен = &PurchasePriceType AND ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) AS GeneralPurchasePrices
|
|
337
337
|
ON GeneralPurchasePrices.Номенклатура = MainTable.Ссылка
|
|
338
|
-
LEFT JOIN РегистрНакопления.ТоварыНаСкладах.Остатки(
|
|
338
|
+
LEFT JOIN РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&ProductRefs)) AS Stocks
|
|
339
339
|
ON Stocks.Номенклатура = MainTable.Ссылка AND Stocks.ХарактеристикаНоменклатуры = ISNULL(Chars.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
|
|
340
340
|
WHERE
|
|
341
341
|
MainTable.Ссылка В (&ProductRefs)
|
|
@@ -451,7 +451,7 @@ class NomenclatureManager:
|
|
|
451
451
|
|
|
452
452
|
c_query = self.c_v8.NewObject("Query")
|
|
453
453
|
c_query.Text = """
|
|
454
|
-
SELECT Объект AS ProductRef, Ссылка AS ImageRef, ХешФайла AS DataVersion, ИмяФайла AS FileName
|
|
454
|
+
SELECT Объект AS ProductRef, Ссылка AS ImageRef, ХешФайла AS FileHash, ВерсияДанных AS DataVersion, ИмяФайла AS FileName
|
|
455
455
|
FROM Справочник.ХранилищеДополнительнойИнформации
|
|
456
456
|
WHERE Объект В (&ProductRefs) AND ПометкаУдаления = ЛОЖЬ
|
|
457
457
|
ORDER BY Наименование
|
|
@@ -466,15 +466,24 @@ class NomenclatureManager:
|
|
|
466
466
|
while c_sel.Next():
|
|
467
467
|
s_productUuid = self.c_v8.String(c_sel.ProductRef.UUID())
|
|
468
468
|
s_imageUuid = self.c_v8.String(c_sel.ImageRef.UUID())
|
|
469
|
-
|
|
469
|
+
|
|
470
470
|
s_version = ""
|
|
471
471
|
try:
|
|
472
|
-
|
|
472
|
+
# Спершу пробуємо ХешФайла
|
|
473
|
+
s_version = self.c_v8.String(c_sel.FileHash)
|
|
473
474
|
except Exception:
|
|
475
|
+
pass
|
|
476
|
+
|
|
477
|
+
# Якщо ХешФайла пустий, використовуємо ВерсияДанных як фолбек
|
|
478
|
+
if not s_version:
|
|
474
479
|
try:
|
|
475
|
-
s_version = self.c_v8.
|
|
480
|
+
s_version = self.c_v8.XMLСтрока(c_sel.DataVersion)
|
|
476
481
|
except Exception:
|
|
477
|
-
|
|
482
|
+
try:
|
|
483
|
+
s_version = self.c_v8.String(c_sel.DataVersion)
|
|
484
|
+
except Exception:
|
|
485
|
+
pass
|
|
486
|
+
|
|
478
487
|
try:
|
|
479
488
|
s_fname = self.c_v8.String(c_sel.FileName)
|
|
480
489
|
if s_fname:
|
|
@@ -555,7 +564,7 @@ class NomenclatureManager:
|
|
|
555
564
|
ON ИСТИНА
|
|
556
565
|
LEFT JOIN РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&CurrentDate, Номенклатура = &ProductRef AND ТипЦен = &PurchasePriceType AND ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) AS GeneralPurchasePrices
|
|
557
566
|
ON ИСТИНА
|
|
558
|
-
LEFT JOIN РегистрНакопления.ТоварыНаСкладах.Остатки(
|
|
567
|
+
LEFT JOIN РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &ProductRef) AS Stocks
|
|
559
568
|
ON Stocks.ХарактеристикаНоменклатуры = ISNULL(Chars.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
|
|
560
569
|
WHERE
|
|
561
570
|
(Chars.Ссылка ЕСТЬ НЕ NULL)
|
|
@@ -716,7 +725,7 @@ class NomenclatureManager:
|
|
|
716
725
|
|
|
717
726
|
c_query = self.c_v8.NewObject("Query")
|
|
718
727
|
c_query.Text = """
|
|
719
|
-
SELECT Ссылка, ХешФайла AS DataVersion, ИмяФайла AS FileName
|
|
728
|
+
SELECT Ссылка, ХешФайла AS FileHash, ВерсияДанных AS DataVersion, ИмяФайла AS FileName
|
|
720
729
|
FROM Справочник.ХранилищеДополнительнойИнформации
|
|
721
730
|
WHERE Объект = &ProductRef AND ПометкаУдаления = ЛОЖЬ
|
|
722
731
|
ORDER BY Наименование
|
|
@@ -727,14 +736,22 @@ class NomenclatureManager:
|
|
|
727
736
|
c_sel = c_res.Select()
|
|
728
737
|
while c_sel.Next():
|
|
729
738
|
s_imgUuid = self.c_v8.String(c_sel.Ссылка.UUID())
|
|
739
|
+
|
|
730
740
|
s_ver = ""
|
|
731
741
|
try:
|
|
732
|
-
s_ver = self.c_v8.
|
|
742
|
+
s_ver = self.c_v8.String(c_sel.FileHash)
|
|
733
743
|
except Exception:
|
|
744
|
+
pass
|
|
745
|
+
|
|
746
|
+
if not s_ver:
|
|
734
747
|
try:
|
|
735
|
-
s_ver = self.c_v8.
|
|
748
|
+
s_ver = self.c_v8.XMLСтрока(c_sel.DataVersion)
|
|
736
749
|
except Exception:
|
|
737
|
-
|
|
750
|
+
try:
|
|
751
|
+
s_ver = self.c_v8.String(c_sel.DataVersion)
|
|
752
|
+
except Exception:
|
|
753
|
+
pass
|
|
754
|
+
|
|
738
755
|
try:
|
|
739
756
|
s_fname = self.c_v8.String(c_sel.FileName)
|
|
740
757
|
if s_fname:
|
|
@@ -37,15 +37,22 @@ class OrdersManager:
|
|
|
37
37
|
|
|
38
38
|
# Date
|
|
39
39
|
log_sys("Trying to add date to order...")
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
try:
|
|
41
|
+
if getattr(c_orderObjIn, "dt_date", None) is not None:
|
|
42
|
+
order_date = c_orderObjIn.dt_date
|
|
43
|
+
if order_date.tzinfo is not None:
|
|
44
|
+
order_date = order_date.astimezone(self.c_connection.tz_kiev).replace(tzinfo=None)
|
|
45
|
+
c_newOrder.Дата = order_date
|
|
46
|
+
log_sys(f"Date from order object successfully added: {order_date}")
|
|
47
|
+
else:
|
|
48
|
+
c_newOrder.Дата = datetime.now(self.c_connection.tz_kiev).replace(tzinfo=None)
|
|
49
|
+
log_sys("Current date/time successfully added")
|
|
50
|
+
except Exception as e:
|
|
51
|
+
log_sys(f"Failed to set date ({e}), trying fallback", 1)
|
|
52
|
+
try:
|
|
53
|
+
c_newOrder.Дата = datetime.now()
|
|
54
|
+
except Exception:
|
|
55
|
+
pass
|
|
49
56
|
|
|
50
57
|
# Client / Counteragent
|
|
51
58
|
c_clientRef = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
{onecinteraction-1.4.2 → onecinteraction-1.4.4}/src/oneCInteraction.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|