2
2
3
3
from sqlalchemy import text as sql_text
4
4
5
- from odoo import _ , models
5
+ from odoo import _ , fields , models
6
6
from odoo .exceptions import UserError
7
7
8
8
_logger = logging .getLogger (__name__ )
11
11
class BaseExternalDbsource (models .Model ):
12
12
_inherit = "base.external.dbsource"
13
13
14
+ name = fields .Char (
15
+ size = 10 ,
16
+ )
17
+
18
+ _sql_constraints = [
19
+ (
20
+ "dbsource_unique_name" ,
21
+ "UNIQUE (name)" ,
22
+ _ ("The Name must be unique!" ),
23
+ )
24
+ ]
25
+
26
+ def copy (self , default = None ):
27
+ default = dict (
28
+ default or {},
29
+ name = _ ("%s (copy)" ) % self .name ,
30
+ )
31
+ return super ().copy (default = default )
32
+
14
33
def _pre_insert_product_query (self ):
15
34
self .ensure_one ()
16
35
pre_insert_product_query = (
17
- "DELETE FROM HOST_ARTICOLI WHERE Elaborato = 2 OR Elaborato = 0"
36
+ "DELETE FROM HOST_ARTICOLI WHERE idHost=:idHost AND "
37
+ "(Elaborato = 2 OR Elaborato = 0)"
18
38
)
19
39
self .with_context (no_return = True ).execute_mssql (
20
- sqlquery = sql_text (pre_insert_product_query ), sqlparams = None , metadata = None
40
+ sqlquery = sql_text (pre_insert_product_query ),
41
+ sqlparams = dict (idHost = self .name ),
42
+ metadata = None ,
21
43
)
22
44
return True
23
45
24
46
def _post_insert_product_query (self , last_id ):
25
47
# Set record from Elaborato=0 to Elaborato=1 to be processable from WHS
26
48
self .ensure_one ()
27
49
update_product_query = (
28
- "UPDATE HOST_ARTICOLI SET Elaborato = 1 WHERE Elaborato = 0"
50
+ "UPDATE HOST_ARTICOLI SET Elaborato = 1 "
51
+ "WHERE idHost=:idHost AND Elaborato = 0"
29
52
)
30
53
self .with_context (no_return = True ).execute_mssql (
31
- sqlquery = sql_text (update_product_query ), sqlparams = None , metadata = None
54
+ sqlquery = sql_text (update_product_query ),
55
+ sqlparams = dict (idHost = self .name ),
56
+ metadata = None ,
32
57
)
33
58
return True
34
59
@@ -51,7 +76,8 @@ def _get_insert_product_query(self):
51
76
Profondita,
52
77
DescrizioneBreve,
53
78
ScortaMin,
54
- Id
79
+ Id,
80
+ idHost
55
81
)
56
82
VALUES (
57
83
:Elaborato,
@@ -70,7 +96,8 @@ def _get_insert_product_query(self):
70
96
:Profondita,
71
97
:DescrizioneBreve,
72
98
:ScortaMin,
73
- :Id
99
+ :Id,
100
+ :idHost
74
101
)
75
102
"""
76
103
return insert_product_query
@@ -122,6 +149,7 @@ def _prepare_host_articoli_values(
122
149
"DescrizioneBreve" : " " ,
123
150
"ScortaMin" : product_min_qty , # digits=(18, 3)
124
151
"Id" : last_id + 1 ,
152
+ "idHost" : self .name ,
125
153
}
126
154
return execute_params
127
155
@@ -148,11 +176,16 @@ def whs_check_lists(self):
148
176
whs_liste_query = (
149
177
"SELECT NumLista, NumRiga, Qta, QtaMovimentata, Elaborato "
150
178
"FROM HOST_LISTE "
151
- "WHERE NumLista = '%s' AND NumRiga = '%s'"
152
- % (whs_list .num_lista , whs_list .riga )
179
+ "WHERE idHost=:idHost NumLista=:NumLista AND NumRiga=:NumRiga"
153
180
)
154
181
esiti_liste = dbsource .execute_mssql (
155
- sqlquery = sql_text (whs_liste_query ), sqlparams = None , metadata = None
182
+ sqlquery = sql_text (whs_liste_query ),
183
+ sqlparams = dict (
184
+ idHost = dbsource .name ,
185
+ NumLista = whs_list .num_lista ,
186
+ NumRiga = whs_list .riga ,
187
+ ),
188
+ metadata = None ,
156
189
)
157
190
# esiti_liste[0] contains result
158
191
if not esiti_liste [0 ]:
0 commit comments