Bug fixes
parent
0e5286c333
commit
8a05d7b10f
|
|
@ -2,8 +2,8 @@ from QT import QtWidgets, QtGui, QT
|
||||||
from QT.Input_Dialog import Input_Dialog
|
from QT.Input_Dialog import Input_Dialog
|
||||||
from _With_Table_Widget_ import _With_Table_Widget_
|
from _With_Table_Widget_ import _With_Table_Widget_
|
||||||
from App_State import App_State
|
from App_State import App_State
|
||||||
from Action_List import Action_Dialog
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import requests
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
@ -217,7 +217,6 @@ class Order_List (_With_Table_Widget_) :
|
||||||
AXE (xset, "ARTICLE_PRICE_INFO4", tax)
|
AXE (xset, "ARTICLE_PRICE_INFO4", tax)
|
||||||
AXE (xset, "ARTICLE_PRICE_INFO5", round (tax_amount, 2))
|
AXE (xset, "ARTICLE_PRICE_INFO5", round (tax_amount, 2))
|
||||||
AXE (xset, "ARTICLE_PRICE_INFO6", round (price + tax_amount, 2))
|
AXE (xset, "ARTICLE_PRICE_INFO6", round (price + tax_amount, 2))
|
||||||
breakpoint ()
|
|
||||||
OR = pathlib.Path (self.config.directories.order_ready)
|
OR = pathlib.Path (self.config.directories.order_ready)
|
||||||
AR = pathlib.Path (self.config.directories.sim_root) / "Archive"
|
AR = pathlib.Path (self.config.directories.sim_root) / "Archive"
|
||||||
## first patch the XML in the archive directory
|
## first patch the XML in the archive directory
|
||||||
|
|
@ -324,16 +323,65 @@ class Order_List (_With_Table_Widget_) :
|
||||||
row_data = self._view.selectedItems ()
|
row_data = self._view.selectedItems ()
|
||||||
if row_data :
|
if row_data :
|
||||||
bno = row_data [0].text ()
|
bno = row_data [0].text ()
|
||||||
self.L.error ("Reset order in webshop %s", bno)
|
dlg = QtWidgets.QMessageBox(self)
|
||||||
|
dlg.setWindowTitle ("Auftrag zurücksetzen")
|
||||||
|
dlg.setText (f"Wollen sie Auftrag {bno} wirklich zurücksetzen?")
|
||||||
|
dlg.setStandardButtons \
|
||||||
|
(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
|
||||||
|
button = dlg.exec ()
|
||||||
|
|
||||||
|
if button != QtWidgets.QMessageBox.Yes :
|
||||||
|
return
|
||||||
|
code = self.config.shop_secret
|
||||||
|
url = f"{self.config.shop_url}/vue/basket/{bno}/reset/{code}/"
|
||||||
|
r = requests.post (url)
|
||||||
|
if r.status_code == 200 :
|
||||||
|
r = r.json ()
|
||||||
|
if r ["status"] :
|
||||||
|
self._move_order_files (bno, "reseted")
|
||||||
|
self.L.info ("Auftrag %s zurückgesetzt", bno)
|
||||||
|
else :
|
||||||
|
self.L.error \
|
||||||
|
( "Fehler beim zurücksetzen von %s:\n %s"
|
||||||
|
, bno, r ["message"]
|
||||||
|
)
|
||||||
|
else :
|
||||||
|
self.L.error \
|
||||||
|
("Fehler beim zurüpcksetzen von %s:\n %s", bno, r.text)
|
||||||
# end def _reset_order_in_webshop
|
# end def _reset_order_in_webshop
|
||||||
|
|
||||||
def _cancel_order (self) :
|
def _cancel_order (self) :
|
||||||
row_data = self._view.selectedItems ()
|
row_data = self._view.selectedItems ()
|
||||||
if row_data :
|
if row_data :
|
||||||
bno = row_data [0].text ()
|
bno = row_data [0].text ()
|
||||||
self.L.error ("Cancel Order %s", bno)
|
dlg = QtWidgets.QMessageBox(self)
|
||||||
|
dlg.setWindowTitle ("Auftrag stornieren ?")
|
||||||
|
dlg.setText (f"Wollen sie Auftra {bno} wirklich stornieren?")
|
||||||
|
dlg.setStandardButtons \
|
||||||
|
(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
|
||||||
|
button = dlg.exec ()
|
||||||
|
|
||||||
|
if button != QtWidgets.QMessageBox.Yes :
|
||||||
|
return
|
||||||
|
self._move_order_files (bno, "canceld")
|
||||||
|
self.L.info ("Auftrag %s storniert von %s", bno, App_State.User)
|
||||||
# end def _cancel_order
|
# end def _cancel_order
|
||||||
|
|
||||||
|
def _move_order_files (self, bno, target_dir) :
|
||||||
|
D = self.config.directories
|
||||||
|
oready = pathlib.Path (D.order_ready)
|
||||||
|
ddir = oready / target_dir
|
||||||
|
ddir.mkdir (parents = True, exist_ok = True)
|
||||||
|
now = App_State.snow ()
|
||||||
|
for ext in ".xml", ".txt" :
|
||||||
|
sf = oready / f"{bno}{ext}"
|
||||||
|
df = ddir / f"{bno}-{now}{ext}"
|
||||||
|
sf.rename (df)
|
||||||
|
sf = pathlib.Path (D.sim_root) / "Archive" / f"{bno}.xml"
|
||||||
|
df = ddir / f"{bno}-ar-{now}.xml"
|
||||||
|
sf.rename (df)
|
||||||
|
# end def _move_order_files
|
||||||
|
|
||||||
def _send_oder_to_odoo (self) :
|
def _send_oder_to_odoo (self) :
|
||||||
row_data = self._view.selectedItems ()
|
row_data = self._view.selectedItems ()
|
||||||
if row_data :
|
if row_data :
|
||||||
|
|
@ -343,8 +391,8 @@ class Order_List (_With_Table_Widget_) :
|
||||||
D = self.config.directories
|
D = self.config.directories
|
||||||
factory = pathlib.Path (D.factory_root)
|
factory = pathlib.Path (D.factory_root)
|
||||||
for ext in ".xml", ".txt" :
|
for ext in ".xml", ".txt" :
|
||||||
sf = factory / D.order_ready / f"{bno}{ext}"
|
sf = pathlib.Path (D.order_ready) / f"{bno}{ext}"
|
||||||
df = factory / D.pgiq_dir / f"{bno}{ext}"
|
df = factory / "OrderXML" / f"{bno}{ext}"
|
||||||
sf.rename (df)
|
sf.rename (df)
|
||||||
self.L.info ("Auftrag %s für Odoo freigegeben", bno)
|
self.L.info ("Auftrag %s für Odoo freigegeben", bno)
|
||||||
# end def _send_oder_to_odoo
|
# end def _send_oder_to_odoo
|
||||||
|
|
|
||||||
|
|
@ -98,16 +98,15 @@ class Order_Handler (Directory_Handler, App_State) :
|
||||||
|
|
||||||
class Order_Watch (App_State) :
|
class Order_Watch (App_State) :
|
||||||
|
|
||||||
order_incomming_dir = r"n:\glueck\watch-me\inbox"
|
|
||||||
|
|
||||||
def __init__ (self, config_file) :
|
def __init__ (self, config_file) :
|
||||||
self.load_config (config_file)
|
self.load_config (config_file)
|
||||||
self.client = self.connect_to_db ()
|
self.client = self.connect_to_db ()
|
||||||
# end def __init__
|
# end def __init__
|
||||||
|
|
||||||
def _start_watchdog (self) :
|
def _start_watchdog (self) :
|
||||||
|
order_incomming_dir = self.config.directories.order_ready
|
||||||
handler = Order_Handler \
|
handler = Order_Handler \
|
||||||
(self.order_incomming_dir, self.client, self.config)
|
(order_incomming_dir, self.client, self.config)
|
||||||
return WindowsApiObserverExcpetionHandler.Start_Directory_Watcher \
|
return WindowsApiObserverExcpetionHandler.Start_Directory_Watcher \
|
||||||
(handler)
|
(handler)
|
||||||
# end def _start_watchdog
|
# end def _start_watchdog
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class WindowsApiObserverExcpetionHandler (Observer, _Logger_) :
|
||||||
return observer
|
return observer
|
||||||
except Exception as e :
|
except Exception as e :
|
||||||
if getattr (e, "errno", None) == 2 :
|
if getattr (e, "errno", None) == 2 :
|
||||||
L.error ("%s does not exists, retry", path)
|
L.error ("%s does not exists, retry", handler.directory)
|
||||||
observer.stop ()
|
observer.stop ()
|
||||||
time.sleep (retry_wait)
|
time.sleep (retry_wait)
|
||||||
else :
|
else :
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
2024-05-23 10:55:53 - INFO - Hello
|
||||||
|
2024-05-23 10:55:53 - WARNING - Hello
|
||||||
|
2024-05-23 10:55:53 - DEBUG - Hello
|
||||||
|
|
@ -11,7 +11,7 @@ database: redis
|
||||||
|
|
||||||
users: users.yaml
|
users: users.yaml
|
||||||
directories:
|
directories:
|
||||||
order_ready: n:\glueck\watch-me\inbox
|
order_ready: n:\IMOS\Test-System\Orders
|
||||||
factory_root: n:\IMOS\Live-System\Factory
|
factory_root: n:\IMOS\Test-System\Factory
|
||||||
sim_root: n:\IMOS\Live-System\SIM
|
sim_root: n:\IMOS\Test-System\SIM
|
||||||
pgiq_dir: n:\glueck\watch-me\odoo
|
pgiq_dir: n:\IMOS\Test-System\Factory\OrderXml
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
mqtt:
|
||||||
|
broker: odoo-test
|
||||||
|
port: 1883
|
||||||
|
user: imos
|
||||||
|
password: gAAAAABmTy4fipVAw10oKCE2aLWq79BF9Id5H8-lEEm8tOgcoaGgIJRWwBdR0nj-lrN-70hcLMHVqNudk7FTJjOvE0KOCkDr0A==
|
||||||
|
topic-root: imos-order
|
||||||
|
redis:
|
||||||
|
host: odoo-test
|
||||||
|
|
||||||
|
database: redis
|
||||||
|
|
||||||
|
users: users.yaml
|
||||||
|
directories:
|
||||||
|
order_ready: c:\IMOS\Test-System\Orders
|
||||||
|
factory_root: c:\IMOS\Test-System\Factory
|
||||||
|
sim_root: c:\IMOS\Test-System\SIM
|
||||||
|
shop_url: https://test-portal.tzaustria.info
|
||||||
|
shop_secret: vkI3ky5ifHCs6uRhC5o2jWmKV5mgnDrBQ46ZO3dd4T4we8Y70fSwGAmdkAIhDh7uecNYJMBKn9AUF9IPEMATvnjnjOl02hoVoueih4JqbRi7WpocoDfjIiYwcn0ELvGJ
|
||||||
Loading…
Reference in New Issue