@waron97/prbot 1.0.0 → 1.0.1

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.
Files changed (17) hide show
  1. package/index.js +13 -0
  2. package/package.json +2 -1
  3. package/dotenv +0 -85908
  4. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-23 09:21:16.xml +0 -3122
  5. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-23 09:25:03.xml +0 -3122
  6. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-23 09:28:23.xml +0 -3122
  7. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-23 09:31:30.xml +0 -3122
  8. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-26 22:53:31.xml +0 -3170
  9. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-29 09:38:23.xml +0 -3170
  10. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-23 09:21:17.xml +0 -4160
  11. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-23 09:25:05.xml +0 -4160
  12. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-23 09:28:25.xml +0 -4160
  13. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-23 09:31:31.xml +0 -4160
  14. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-26 22:53:34.xml +0 -4208
  15. package/out/xml_data_for_ML - RISOLUZIONE CONTRATTUALE_2026-01-29 09:38:25.xml +0 -4208
  16. package/out/xml_data_for_ML - Taglio Colonna Gas per Morosit/303/240 - Relazioni mancanti: Fasi - Workflow e Fasi - Esiti Consentiti_2026-01-26 22:57:38.xml" +0 -2358
  17. package/out/xml_data_for_ML - Taglio Colonna Gas per Morosit/303/240_2026-01-26 22:57:40.xml" +0 -3667
@@ -1,4160 +0,0 @@
1
- <odoo>
2
- <data>
3
- <record id="symple_triplet_phase_A1001_-_Apertura_Wizard_Risoluzione_contrattuale" model="symple.triplet.phase">
4
- <field name="active">True</field>
5
- <field name="allowed_process_ids" model="symple.pb.process" eval="[(6, 0, obj().search([('name','in',('ml_cessazioni_point_selection',)),]).ids)]" />
6
- <field name="child_case">False</field>
7
- <field name="code"># Available variables:
8
- # - case_id: the case that just reached this phase
9
- # - request: allows you to make HTTP requests (method, url, headers, data)
10
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
11
- # - json_load: allows you to use JSON.load to convert a json into an object
12
- # - env: Odoo Environment on which the action is triggered
13
- # - time, datetime, dateutil, timezone: useful Python libraries
14
- # - float_compare: Odoo function to compare floats based on specific precisions
15
- # - ValidationError: Warning Exception to use with raise
16
- # - Command: x2Many commands namespace
17
- # - OrderedDict: ordered dictionaries
18
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
19
- # (line = case id, func = phase name)
20
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
21
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
22
- # To return a result, assign: result = {...}
23
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
24
- # phase result will not be set.
25
-
26
-
27
-
28
- </field>
29
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','Customer Care')])" />
30
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
31
- <field name="is_a_postalizer_phase">False</field>
32
- <field name="is_compute_refund">False</field>
33
- <field name="is_dl">False</field>
34
- <field name="is_needs_child_case">False</field>
35
- <field name="is_pick_refund_template">False</field>
36
- <field name="is_process_managed">True</field>
37
- <field name="is_quote_accepted">False</field>
38
- <field name="is_quote_sent">False</field>
39
- <field name="is_timeout">False</field>
40
- <field name="is_voidable">False</field>
41
- <field name="name">A1001 - Apertura Wizard Risoluzione contrattuale</field>
42
- </record>
43
- <record id="symple_triplet_phase_A1709_-_verifica_compatibilit_" model="symple.triplet.phase">
44
- <field name="active">True</field>
45
- <field name="child_case">False</field>
46
- <field name="code">def main():
47
- service_point = case_id.service_point_ids[0]
48
- billing_profile = service_point.billing_profile_id
49
- asset = service_point.asset(active=False)
50
-
51
- if not asset:
52
- asset_id = False
53
- else:
54
- asset_id = asset._id
55
-
56
- (result, incompatible_case_ids) = ( # "OK" | "KO" | "PARTIAL_KO" # List[int]
57
- case_id.check_compatibility_matrix(
58
- asset_id=asset_id,
59
- client_id=case_id.customer_id.user_sequence,
60
- billing_id=billing_profile.name,
61
- # external_id -> default a case.ticket_type_id.univocal_code
62
- )
63
- )
64
-
65
- if incompatible_case_ids:
66
- case_id.write({"incompatible_ticket_ids": incompatible_case_ids})
67
-
68
- if result in ["OK", "PARTIAL_KO"]:
69
- case_id.create_matrix_process(
70
- asset_id=asset_id,
71
- client_id=case_id.customer_id.user_sequence,
72
- billing_id=billing_profile.name,
73
- # external_id -> default a case.ticket_type_id.univocal_code
74
- )
75
-
76
- return result
77
-
78
-
79
- try:
80
- result = main()
81
- except Exception as e:
82
- log(format_exc())
83
- case_id.write({"error_message": str(e)})
84
- </field>
85
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
86
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
87
- <field name="is_a_postalizer_phase">False</field>
88
- <field name="is_compute_refund">False</field>
89
- <field name="is_dl">False</field>
90
- <field name="is_needs_child_case">False</field>
91
- <field name="is_pick_refund_template">False</field>
92
- <field name="is_process_managed">False</field>
93
- <field name="is_quote_accepted">False</field>
94
- <field name="is_quote_sent">False</field>
95
- <field name="is_timeout">False</field>
96
- <field name="is_voidable">False</field>
97
- <field name="name">A1709 - verifica compatibilità</field>
98
- <field name="set_result_automatically">from_code</field>
99
- </record>
100
- <record id="symple_triplet_phase_result_C1401_-_Risoluzione_contrattuale_OK_E-CC01-0002" model="symple.triplet.phase.result">
101
- <field name="active">True</field>
102
- <field name="has_message">False</field>
103
- <field name="is_annulment">False</field>
104
- <field name="is_dl_solicitation_result">False</field>
105
- <field name="is_hidden">False</field>
106
- <field name="is_quote_expired">False</field>
107
- <field name="name">C1401 - Risoluzione contrattuale OK</field>
108
- <field name="next_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
109
- <field name="state_code">E-CC01-0002</field>
110
- <field name="wizard_result">SUCCESS</field>
111
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1001_-_Apertura_Wizard_Risoluzione_contrattuale')])]"/>
112
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
113
- </record>
114
- <record id="symple_triplet_phase_A1710_-_Verifica_compatibilit__KO" model="symple.triplet.phase">
115
- <field name="active">True</field>
116
- <field name="child_case">False</field>
117
- <field name="code"># Available variables:
118
- # - case_id: the case that just reached this phase
119
- # - request: allows you to make HTTP requests (method, url, headers, data)
120
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
121
- # - json_load: allows you to use JSON.load to convert a json into an object
122
- # - env: Odoo Environment on which the action is triggered
123
- # - time, datetime, dateutil, timezone: useful Python libraries
124
- # - float_compare: Odoo function to compare floats based on specific precisions
125
- # - ValidationError: Warning Exception to use with raise
126
- # - Command: x2Many commands namespace
127
- # - OrderedDict: ordered dictionaries
128
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
129
- # (line = case id, func = phase name)
130
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
131
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
132
- # To return a result, assign: result = {...}
133
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
134
- # phase result will not be set.
135
-
136
-
137
-
138
- </field>
139
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','BOT')])" />
140
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
141
- <field name="is_a_postalizer_phase">False</field>
142
- <field name="is_compute_refund">False</field>
143
- <field name="is_dl">False</field>
144
- <field name="is_needs_child_case">False</field>
145
- <field name="is_pick_refund_template">False</field>
146
- <field name="is_process_managed">False</field>
147
- <field name="is_quote_accepted">False</field>
148
- <field name="is_quote_sent">False</field>
149
- <field name="is_timeout">False</field>
150
- <field name="is_voidable">False</field>
151
- <field name="name">A1710 - Verifica compatibilità KO</field>
152
- </record>
153
- <record id="symple_triplet_phase_result_C404_-_KO_-_Incompatibile_E-CC01-0003" model="symple.triplet.phase.result">
154
- <field name="active">True</field>
155
- <field name="has_message">False</field>
156
- <field name="is_annulment">False</field>
157
- <field name="is_dl_solicitation_result">False</field>
158
- <field name="is_hidden">False</field>
159
- <field name="is_quote_expired">False</field>
160
- <field name="name">C404 - KO - Incompatibile</field>
161
- <field name="next_phase_id" ref="symple_triplet_phase_A1710_-_Verifica_compatibilit__KO"/>
162
- <field name="state_code">E-CC01-0003</field>
163
- <field name="wizard_result">KO</field>
164
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1709_-_verifica_compatibilit_')])]"/>
165
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
166
- </record>
167
- <record id="symple_triplet_phase_result_C2410_-_OK_Incompatibilit__Gestita_E-CC01-0007" model="symple.triplet.phase.result">
168
- <field name="active">True</field>
169
- <field name="has_message">False</field>
170
- <field name="is_annulment">False</field>
171
- <field name="is_dl_solicitation_result">False</field>
172
- <field name="is_hidden">False</field>
173
- <field name="is_quote_expired">False</field>
174
- <field name="name">C2410 - OK Incompatibilità Gestita</field>
175
- <field name="next_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
176
- <field name="state_code">E-CC01-0007</field>
177
- <field name="wizard_result">SUCCESS</field>
178
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1710_-_Verifica_compatibilit__KO')])]"/>
179
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
180
- </record>
181
- <record id="symple_triplet_phase_A1672_-_Recupero_dati_a_CRM" model="symple.triplet.phase">
182
- <field name="active">True</field>
183
- <field name="child_case">False</field>
184
- <field name="code"><![CDATA[# Available variables:
185
- # - case_id: the case that just reached this phase
186
- # - request: allows you to make HTTP requests (method, url, headers, data)
187
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
188
- # - json_load: allows you to use JSON.load to convert a json into an object
189
- # - env: Odoo Environment on which the action is triggered
190
- # - time, datetime, dateutil, timezone: useful Python libraries
191
- # - float_compare: Odoo function to compare floats based on specific precisions
192
- # - ValidationError: Warning Exception to use with raise
193
- # - Command: x2Many commands namespace
194
- # - OrderedDict: ordered dictionaries
195
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
196
- # (line = case id, func = phase name)
197
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
198
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
199
- # To return a result, assign: result = {...}
200
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
201
- # phase result will not be set.
202
-
203
-
204
- logs = []
205
-
206
-
207
- def fmt(date):
208
- return date.strftime("%d/%m/%Y")
209
-
210
-
211
- def last_day_of_this_month():
212
- today = datetime.datetime.today()
213
- first_of_next_month = today.replace(day=1) + dateutil.relativedelta.relativedelta(
214
- months=1
215
- )
216
- last_day = first_of_next_month - dateutil.relativedelta.relativedelta(days=1)
217
- return last_day
218
-
219
-
220
- def last_day_of_next_month():
221
- today = datetime.datetime.today()
222
- first_of_next_month = today.replace(day=1) + dateutil.relativedelta.relativedelta(
223
- months=2
224
- )
225
- last_day = first_of_next_month - dateutil.relativedelta.relativedelta(days=1)
226
- return last_day
227
-
228
-
229
- def last_day_of_next_next_month():
230
- today = datetime.datetime.today()
231
- first_of_next_month = today.replace(day=1) + dateutil.relativedelta.relativedelta(
232
- months=3
233
- )
234
- last_day = first_of_next_month - dateutil.relativedelta.relativedelta(days=1)
235
- return last_day
236
-
237
-
238
- def ten_days_from_now():
239
- today = datetime.datetime.today()
240
- return today + dateutil.relativedelta.relativedelta(days=10)
241
-
242
-
243
- # ------------------------------------------------
244
-
245
-
246
- def get_tipologia_risoluzione():
247
- table = {
248
- "CC01-1": ("CAE0", None),
249
- "CC01-2": ("CAE0", None),
250
- "CC02": ("CAE8", "CA7"),
251
- "CC03-1": ("CAE5", "CA5"),
252
- "CC04-1": ("CAE8", "CA4"),
253
- "CC05-1": ("CAE2", "CA6"),
254
- "CC06-1": ("CAE8", "CA7"),
255
- "CC12-1": ("CAE1", "CA1"),
256
- "CC13-1": ("CAE8", "CA7"),
257
- "CC26-1": ("CAE7", "CA3"),
258
- "CC27-1": ("CAE3", "CA2"),
259
- }
260
-
261
- code = case_id.ticket_type_id.code
262
-
263
- if code not in table:
264
- raise ValidationError(
265
- "Non è possibile determinare la tipologia di risoluzione per il dettaglio {}".format(
266
- code
267
- )
268
- )
269
-
270
- power, gas = table.get(code)
271
-
272
- sp = first(case_id.service_point_ids)
273
-
274
- if sp.pod_id and power:
275
- return power
276
-
277
- if sp.pdr_id and gas:
278
- return gas
279
-
280
- raise ValidationError(
281
- "Non è possibile determinare la tipologia di risoluzione per il dettaglio {}".format(
282
- code
283
- )
284
- )
285
-
286
-
287
- def get_data_decorrenza(tipologia_risoluzione):
288
- today = datetime.datetime.today()
289
- code = case_id.ticket_type_id.code
290
-
291
- # -------- Special Case --------
292
-
293
- if tipologia_risoluzione == "CA1":
294
- return fmt(ten_days_from_now())
295
-
296
- if tipologia_risoluzione in ["CA2", "CA3"]:
297
- return fmt(last_day_of_next_next_month())
298
-
299
- if (
300
- tipologia_risoluzione == "CA4"
301
- and code == "CC04-1"
302
- and case_id.customer_id.customer_care_category == "pmi"
303
- ):
304
- voltura_start_date = (
305
- today # TODO get real voltura_start_date, don't yet know how
306
- )
307
- if voltura_start_date <= today:
308
- if today.day <= 10:
309
- return fmt(last_day_of_this_month())
310
- return fmt(last_day_of_next_month())
311
- else:
312
- return fmt(voltura_start_date)
313
-
314
- # -------- Default Case --------
315
-
316
- if today.day <= 10:
317
- return fmt(last_day_of_this_month())
318
- return fmt(last_day_of_next_month())
319
-
320
-
321
- # ------------------------------------------------
322
-
323
-
324
- def main():
325
- tipologia_risoluzione = get_tipologia_risoluzione()
326
-
327
- kv_store = case_id.sudo().kv_store()
328
- data_decorrenza = get_data_decorrenza(tipologia_risoluzione)
329
- ifs_data = {
330
- "tipologia_risoluzione": tipologia_risoluzione,
331
- "data_decorrenza": data_decorrenza,
332
- }
333
- kv_store.sudo().set("ifs_data", ifs_data)
334
- case_id.write(
335
- {
336
- "disconnect_date": datetime.datetime.strptime(
337
- data_decorrenza, "%d/%m/%Y"
338
- ).date()
339
- }
340
- )
341
-
342
- sp = first(case_id.service_point_ids)
343
- asset = sp.asset(active=True) # solo sm_state attivo
344
-
345
- if not asset:
346
- raise Exception("Asset attivo non trovato per il punto {}".format(sp.code))
347
-
348
- case_id.sudo().kv_store().set("asset", asset.data)
349
-
350
- date_fmt = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%f") + "Z"
351
-
352
- sp.sudo().write({"state": "deactivating"})
353
- env["ir.config_parameter"].update_b2w_statemodel(
354
- "in_cessazione",
355
- sm_reason=case_id.ticket_type_id.name,
356
- expected_date=date_fmt,
357
- asset_id=str(asset._id),
358
- )
359
-
360
- return "OK"
361
-
362
-
363
- try:
364
- result = main()
365
- except Exception as e:
366
- logs.append({"message": str(e), "traceback": format_exc()})
367
- case_id.write(
368
- {"error_message": "Errore durante l'esecuzione della fase: {}".format(str(e))}
369
- )
370
-
371
-
372
- if logs:
373
- log(json_dumps(logs))]]></field>
374
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
375
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
376
- <field name="is_a_postalizer_phase">False</field>
377
- <field name="is_compute_refund">False</field>
378
- <field name="is_dl">False</field>
379
- <field name="is_needs_child_case">False</field>
380
- <field name="is_pick_refund_template">False</field>
381
- <field name="is_process_managed">False</field>
382
- <field name="is_quote_accepted">False</field>
383
- <field name="is_quote_sent">False</field>
384
- <field name="is_timeout">False</field>
385
- <field name="is_voidable">False</field>
386
- <field name="name">A1672 - Recupero dati a CRM</field>
387
- <field name="set_result_automatically">from_code</field>
388
- </record>
389
- <record id="symple_triplet_phase_result_C2654_-_Processo_Compatibile_E-CC01-0004" model="symple.triplet.phase.result">
390
- <field name="active">True</field>
391
- <field name="has_message">False</field>
392
- <field name="is_annulment">False</field>
393
- <field name="is_dl_solicitation_result">False</field>
394
- <field name="is_hidden">False</field>
395
- <field name="is_quote_expired">False</field>
396
- <field name="name">C2654 - Processo Compatibile</field>
397
- <field name="next_phase_id" ref="symple_triplet_phase_A1672_-_Recupero_dati_a_CRM"/>
398
- <field name="state_code">E-CC01-0004</field>
399
- <field name="wizard_result">SUCCESS</field>
400
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1709_-_verifica_compatibilit_')])]"/>
401
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
402
- </record>
403
- <record id="symple_triplet_phase_result_C2639_-_Incompatibilit__Non_bloccante_E-CC01-0005" model="symple.triplet.phase.result">
404
- <field name="active">True</field>
405
- <field name="has_message">False</field>
406
- <field name="is_annulment">False</field>
407
- <field name="is_dl_solicitation_result">False</field>
408
- <field name="is_hidden">False</field>
409
- <field name="is_quote_expired">False</field>
410
- <field name="name">C2639 - Incompatibilità Non bloccante</field>
411
- <field name="next_phase_id" ref="symple_triplet_phase_A1672_-_Recupero_dati_a_CRM"/>
412
- <field name="state_code">E-CC01-0005</field>
413
- <field name="wizard_result">PARTIAL_KO</field>
414
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1709_-_verifica_compatibilit_')])]"/>
415
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Partial KO')])" />
416
- </record>
417
- <record id="symple_triplet_phase_A1323_-_Errore_CRM__Recupero_dati_" model="symple.triplet.phase">
418
- <field name="active">True</field>
419
- <field name="child_case">False</field>
420
- <field name="code"># Available variables:
421
- # - case_id: the case that just reached this phase
422
- # - request: allows you to make HTTP requests (method, url, headers, data)
423
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
424
- # - json_load: allows you to use JSON.load to convert a json into an object
425
- # - env: Odoo Environment on which the action is triggered
426
- # - time, datetime, dateutil, timezone: useful Python libraries
427
- # - float_compare: Odoo function to compare floats based on specific precisions
428
- # - ValidationError: Warning Exception to use with raise
429
- # - Command: x2Many commands namespace
430
- # - OrderedDict: ordered dictionaries
431
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
432
- # (line = case id, func = phase name)
433
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
434
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
435
- # To return a result, assign: result = {...}
436
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
437
- # phase result will not be set.
438
-
439
-
440
-
441
- </field>
442
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','AMS')])" />
443
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
444
- <field name="is_a_postalizer_phase">False</field>
445
- <field name="is_compute_refund">False</field>
446
- <field name="is_dl">False</field>
447
- <field name="is_needs_child_case">False</field>
448
- <field name="is_pick_refund_template">False</field>
449
- <field name="is_process_managed">False</field>
450
- <field name="is_quote_accepted">False</field>
451
- <field name="is_quote_sent">False</field>
452
- <field name="is_timeout">False</field>
453
- <field name="is_voidable">False</field>
454
- <field name="name">A1323 - Errore CRM (Recupero dati)</field>
455
- </record>
456
- <record id="symple_triplet_phase_result_C1933_-_Recupero_Dati_KO_E-CC01-0009" model="symple.triplet.phase.result">
457
- <field name="active">True</field>
458
- <field name="has_message">False</field>
459
- <field name="is_annulment">False</field>
460
- <field name="is_dl_solicitation_result">False</field>
461
- <field name="is_hidden">False</field>
462
- <field name="is_quote_expired">False</field>
463
- <field name="name">C1933 - Recupero Dati KO</field>
464
- <field name="next_phase_id" ref="symple_triplet_phase_A1323_-_Errore_CRM__Recupero_dati_"/>
465
- <field name="state_code">E-CC01-0009</field>
466
- <field name="wizard_result">KO</field>
467
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1672_-_Recupero_dati_a_CRM')])]"/>
468
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
469
- </record>
470
- <record id="symple_triplet_phase_result_C1616_-_Risoluzione_Errore_E-CC01-0010" model="symple.triplet.phase.result">
471
- <field name="active">True</field>
472
- <field name="has_message">False</field>
473
- <field name="is_annulment">False</field>
474
- <field name="is_dl_solicitation_result">False</field>
475
- <field name="is_hidden">False</field>
476
- <field name="is_quote_expired">False</field>
477
- <field name="name">C1616 - Risoluzione Errore</field>
478
- <field name="next_phase_id" ref="symple_triplet_phase_A1672_-_Recupero_dati_a_CRM"/>
479
- <field name="state_code">E-CC01-0010</field>
480
- <field name="wizard_result">SUCCESS</field>
481
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1323_-_Errore_CRM__Recupero_dati_')])]"/>
482
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
483
- </record>
484
- <record id="symple_triplet_phase_A1559_-_Invio_alla_Market_Communication" model="symple.triplet.phase">
485
- <field name="active">True</field>
486
- <field name="child_case">False</field>
487
- <field name="code"># Available variables:
488
- # - case_id: the case that just reached this phase
489
- # - request: allows you to make HTTP requests (method, url, headers, data)
490
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
491
- # - json_load: allows you to use JSON.load to convert a json into an object
492
- # - env: Odoo Environment on which the action is triggered
493
- # - time, datetime, dateutil, timezone: useful Python libraries
494
- # - float_compare: Odoo function to compare floats based on specific precisions
495
- # - ValidationError: Warning Exception to use with raise
496
- # - Command: x2Many commands namespace
497
- # - OrderedDict: ordered dictionaries
498
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
499
- # (line = case id, func = phase name)
500
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
501
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
502
- # To return a result, assign: result = {...}
503
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
504
- # phase result will not be set.
505
-
506
-
507
- logs = []
508
-
509
- # ------------------------------
510
-
511
-
512
- def get_addizione_regionale():
513
- return case_id.service_point_ids[0].regional_surcharge_value
514
-
515
-
516
- # ------------------------------
517
-
518
-
519
- def get_resubmit_bindings():
520
- return {
521
- "helpdesk_ticket": {
522
- "ids": [
523
- case_id.id,
524
- ]
525
- },
526
- "billing_profile": {"ids": []},
527
- "service_point": {"ids": []},
528
- "res_partner_pod": {"ids": []},
529
- "res_partner_pdr": {"ids": []},
530
- }
531
-
532
-
533
- def shared_data():
534
- sp = case_id.service_point_ids
535
- ifs_data = case_id.sudo().kv_store().get("ifs_data")
536
- tipologia_risoluzione = ifs_data.get("tipologia_risoluzione")
537
-
538
- return {
539
- "COD_FLUSSO": "0050",
540
- "PIVA": case_id.customer_id.numbers_only_vat or "",
541
- "CF": case_id.customer_id.fiscal_code or "",
542
- "CF_STRANIERO": "0",
543
- "ALIQUOTA_IVA": (
544
- sp.iva_rate if tipologia_risoluzione not in ["CAE1", "CA1"] else ""
545
- ),
546
- "ALIQUOTA_ACCISE": "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else "",
547
- "ADDIZ_PROVINCIALE": (
548
- "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else ""
549
- ),
550
- "ADDIZ_COMUNALE": "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else "",
551
- "TIPOLOGIA_RISOLUZIONE": tipologia_risoluzione,
552
- "DATA_DECORRENZA": ifs_data.get("data_decorrenza"),
553
- "OWNER": "SORGE",
554
- }
555
-
556
-
557
- # ------------------------------
558
-
559
-
560
- def prep_rc1():
561
- message = shared_data()
562
- message.update(
563
- {"COD_SERVIZIO": "RC1", "COD_POD": case_id.service_point_ids[0].pod_id.code}
564
- )
565
- return message
566
-
567
-
568
- def _not_cae1_ca1(value, tipologia_risoluzione):
569
- if tipologia_risoluzione in ["CAE1", "CA1"]:
570
- return ""
571
- return value
572
-
573
-
574
- def prep_rcg1():
575
- ifs_data = case_id.sudo().kv_store().get("ifs_data")
576
- tipologia_risoluzione = ifs_data.get("tipologia_risoluzione")
577
- message = shared_data()
578
- is_person = not case_id.customer_id.is_company
579
- is_ui = message["TIPOLOGIA_RISOLUZIONE"] != "CA4"
580
- service_point = case_id.service_point_ids[0]
581
- invoicing_address = service_point.billing_profile_id.invoicing_address_id
582
- message.update(
583
- {
584
- "COD_SERVIZIO": "RCG1",
585
- "COD_PDR": case_id.service_point_ids[0].pdr_id.code,
586
- "MOTIVAZIONE": "Scelta commerciale Sorgenia",
587
- "PRIORITA": "",
588
- "ALTRE_INFORMAZIONI": "",
589
- "NOME": _not_cae1_ca1(
590
- case_id.customer_id.firstname if is_person else "",
591
- tipologia_risoluzione,
592
- ),
593
- "COGNOME": _not_cae1_ca1(
594
- case_id.customer_id.lastname if is_person else "", tipologia_risoluzione
595
- ),
596
- "EMAIL": _not_cae1_ca1(
597
- case_id.customer_id.email or "", tipologia_risoluzione
598
- ),
599
- "TELEFONO": _not_cae1_ca1(
600
- case_id.customer_id.phone or "", tipologia_risoluzione
601
- ),
602
- "ACCESSO_FUI": _not_cae1_ca1(
603
- "SI" if message["TIPOLOGIA_RISOLUZIONE"] == "CA4" else "NO",
604
- tipologia_risoluzione,
605
- ),
606
- "UI_CF": _not_cae1_ca1(
607
- case_id.customer_id.fiscal_code if is_ui else "", tipologia_risoluzione
608
- ),
609
- "UI_PIVA": _not_cae1_ca1(
610
- case_id.customer_id.vat if is_ui else "", tipologia_risoluzione
611
- ),
612
- "UI_CF_STRANIERO": _not_cae1_ca1("", tipologia_risoluzione),
613
- "UI_NOME": _not_cae1_ca1(
614
- case_id.customer_id.firstname if is_ui and is_person else "",
615
- tipologia_risoluzione,
616
- ),
617
- "UI_COGNOME": _not_cae1_ca1(
618
- case_id.customer_id.lastname if is_ui and is_person else "",
619
- tipologia_risoluzione,
620
- ),
621
- "UI_RAGIONE_SOCIALE_DENOMINAZIONE": _not_cae1_ca1(
622
- case_id.customer_id.name if is_ui and not is_person else "",
623
- tipologia_risoluzione,
624
- ),
625
- "UI_EMAIL": _not_cae1_ca1(
626
- case_id.customer_id.email or "" if is_ui else "", tipologia_risoluzione
627
- ),
628
- "UI_TELEFONO": _not_cae1_ca1(
629
- case_id.customer_id.phone or "" if is_ui else "", tipologia_risoluzione
630
- ),
631
- "UI_AF_CF": _not_cae1_ca1("", tipologia_risoluzione),
632
- "UI_AF_PIVA": _not_cae1_ca1("", tipologia_risoluzione),
633
- "UI_AF_CF_STRANIERO": _not_cae1_ca1("", tipologia_risoluzione),
634
- "UI_AF_NOME": _not_cae1_ca1("", tipologia_risoluzione),
635
- "UI_AF_COGNOME": _not_cae1_ca1("", tipologia_risoluzione),
636
- "UI_AF_RAGIONE_SOCIALE_DENOMINAZIONE": _not_cae1_ca1(
637
- "", tipologia_risoluzione
638
- ),
639
- "UI_FOR_TOPONIMO": _not_cae1_ca1(
640
- service_point.service_toponym_id.name or "", tipologia_risoluzione
641
- ),
642
- "UI_FOR_VIA": _not_cae1_ca1(
643
- service_point.service_street or "", tipologia_risoluzione
644
- ),
645
- "UI_FOR_CIV": _not_cae1_ca1(
646
- service_point.service_street_number or "", tipologia_risoluzione
647
- ),
648
- "UI_FOR_CAP": _not_cae1_ca1(
649
- service_point.service_zip or "40100", tipologia_risoluzione
650
- ),
651
- "UI_FOR_ISTAT": _not_cae1_ca1(
652
- service_point.service_city_id.istat_code or "", tipologia_risoluzione
653
- ),
654
- "UI_FOR_LOCALITA": _not_cae1_ca1(
655
- service_point.service_city_id.name or "", tipologia_risoluzione
656
- ),
657
- "UI_FOR_PROV": _not_cae1_ca1(
658
- service_point.service_state_code or "", tipologia_risoluzione
659
- ),
660
- "UI_FOR_NAZIONE": (
661
- _not_cae1_ca1(
662
- service_point.service_country_id.with_context(
663
- lang="it_IT"
664
- ).name.upper(),
665
- tipologia_risoluzione,
666
- )
667
- )
668
- or "",
669
- "UI_FOR_ALTRO": "",
670
- "UI_ES_TOPONIMO": _not_cae1_ca1(
671
- invoicing_address.toponym_id.name or "", tipologia_risoluzione
672
- ),
673
- "UI_ES_VIA": _not_cae1_ca1(
674
- invoicing_address.street or "", tipologia_risoluzione
675
- ),
676
- "UI_ES_CIV": _not_cae1_ca1(
677
- invoicing_address.street_num or "", tipologia_risoluzione
678
- ),
679
- "UI_ES_CAP": _not_cae1_ca1(
680
- invoicing_address.zip or "", tipologia_risoluzione
681
- ),
682
- "UI_ES_ISTAT": _not_cae1_ca1(
683
- invoicing_address.istat_code or "", tipologia_risoluzione
684
- ),
685
- "UI_ES_LOCALITA": _not_cae1_ca1(
686
- invoicing_address.city_id.name or "", tipologia_risoluzione
687
- ),
688
- "UI_ES_PROV": _not_cae1_ca1(
689
- invoicing_address.state_code or "", tipologia_risoluzione
690
- ),
691
- "UI_ES_NAZIONE": _not_cae1_ca1(
692
- invoicing_address.country_id.with_context(lang="it_IT").name.upper()
693
- or "",
694
- tipologia_risoluzione,
695
- ),
696
- "UI_ES_ALTRO": _not_cae1_ca1("", tipologia_risoluzione),
697
- "UI_CODICE_UFFICIO": service_point.billing_profile_id.office_code or "",
698
- "UI_PAGAMENTO_IVA": "",
699
- "SETT_MERCEOLOGICO": "",
700
- "COD_RICHIESTA": "",
701
- "ADDIZ_REGIONALE": (
702
- get_addizione_regionale()
703
- if message["TIPOLOGIA_RISOLUZIONE"] != "CA1"
704
- else ""
705
- ),
706
- }
707
- )
708
- return message
709
-
710
-
711
- # ------------------------------
712
-
713
-
714
- def main():
715
- ifs_data_message = None
716
- is_ele = case_id.service_point_ids[0].pod_id.exists()
717
-
718
- if is_ele:
719
- ifs_data_message = prep_rc1()
720
- else:
721
- ifs_data_message = prep_rcg1()
722
-
723
- ifs_dict = {
724
- "ifs_code": "RC1" if is_ele else "RCG1",
725
- "case_id": str(case_id.id),
726
- "entity_bindings_resubmit": get_resubmit_bindings(),
727
- "ifs_data_message": ifs_data_message,
728
- }
729
- ifs_json = json_dumps(ifs_dict)
730
- tenant_id = env["ir.config_parameter"].sudo().get_param("m2c_header_tenant_id")
731
- org_token = env["ir.config_parameter"].sudo().get_param("m2c_header_org_token")
732
- headers = {"tenantId": tenant_id, "orgToken": org_token}
733
- btw_url = "http://b2w-symphony-rest-service/api/symphony/process-instances/ml_IFS_passthrough"
734
- response = request("POST", btw_url, headers=headers, data=ifs_json)
735
-
736
- if str(response.status_code) != "200":
737
- raise ValidationError(str(response.status_code) + " " + str(response.text))
738
-
739
- return "OK"
740
-
741
-
742
- try:
743
- result = main()
744
- except Exception as e:
745
- logs.append({"message": str(e), "traceback": format_exc()})
746
- prev = case_id.info_message + "\n" if case_id.info_message else ""
747
- case_id.write({"info_message": prev + str(e)})
748
-
749
- result = "KO"
750
-
751
-
752
- if logs:
753
- log(json_dumps(logs))</field>
754
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
755
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
756
- <field name="is_a_postalizer_phase">False</field>
757
- <field name="is_compute_refund">False</field>
758
- <field name="is_dl">False</field>
759
- <field name="is_needs_child_case">False</field>
760
- <field name="is_pick_refund_template">False</field>
761
- <field name="is_process_managed">False</field>
762
- <field name="is_quote_accepted">False</field>
763
- <field name="is_quote_sent">False</field>
764
- <field name="is_timeout">False</field>
765
- <field name="is_voidable">False</field>
766
- <field name="name">A1559 - Invio alla Market Communication</field>
767
- <field name="set_result_automatically">from_code</field>
768
- </record>
769
- <record id="symple_triplet_phase_result_C2365_-_Recupero_Dati_OK_E-CC01-0008" model="symple.triplet.phase.result">
770
- <field name="active">True</field>
771
- <field name="has_message">False</field>
772
- <field name="is_annulment">False</field>
773
- <field name="is_dl_solicitation_result">False</field>
774
- <field name="is_hidden">False</field>
775
- <field name="is_quote_expired">False</field>
776
- <field name="name">C2365 - Recupero Dati OK</field>
777
- <field name="next_phase_id" ref="symple_triplet_phase_A1559_-_Invio_alla_Market_Communication"/>
778
- <field name="state_code">E-CC01-0008</field>
779
- <field name="wizard_result">SUCCESS</field>
780
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1672_-_Recupero_dati_a_CRM')])]"/>
781
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
782
- </record>
783
- <record id="symple_triplet_phase_A1715_-_In_attesa_check_IFS" model="symple.triplet.phase">
784
- <field name="active">True</field>
785
- <field name="child_case">False</field>
786
- <field name="code"># Available variables:
787
- # - case_id: the case that just reached this phase
788
- # - request: allows you to make HTTP requests (method, url, headers, data)
789
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
790
- # - json_load: allows you to use JSON.load to convert a json into an object
791
- # - env: Odoo Environment on which the action is triggered
792
- # - time, datetime, dateutil, timezone: useful Python libraries
793
- # - float_compare: Odoo function to compare floats based on specific precisions
794
- # - ValidationError: Warning Exception to use with raise
795
- # - Command: x2Many commands namespace
796
- # - OrderedDict: ordered dictionaries
797
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
798
- # (line = case id, func = phase name)
799
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
800
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
801
- # To return a result, assign: result = {...}
802
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
803
- # phase result will not be set.
804
-
805
-
806
-
807
- </field>
808
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
809
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
810
- <field name="is_a_postalizer_phase">False</field>
811
- <field name="is_compute_refund">False</field>
812
- <field name="is_dl">False</field>
813
- <field name="is_needs_child_case">False</field>
814
- <field name="is_pick_refund_template">False</field>
815
- <field name="is_process_managed">False</field>
816
- <field name="is_quote_accepted">False</field>
817
- <field name="is_quote_sent">False</field>
818
- <field name="is_timeout">False</field>
819
- <field name="is_voidable">False</field>
820
- <field name="name">A1715 - In attesa check IFS</field>
821
- </record>
822
- <record id="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0011" model="symple.triplet.phase.result">
823
- <field name="active">True</field>
824
- <field name="has_message">False</field>
825
- <field name="is_annulment">False</field>
826
- <field name="is_dl_solicitation_result">False</field>
827
- <field name="is_hidden">False</field>
828
- <field name="is_quote_expired">False</field>
829
- <field name="name">C1019 - Inviata</field>
830
- <field name="next_phase_id" ref="symple_triplet_phase_A1715_-_In_attesa_check_IFS"/>
831
- <field name="state_code">E-CC01-0011</field>
832
- <field name="wizard_result">SUCCESS</field>
833
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1559_-_Invio_alla_Market_Communication')])]"/>
834
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
835
- </record>
836
- <record id="symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto" model="symple.triplet.phase">
837
- <field name="active">True</field>
838
- <field name="child_case">False</field>
839
- <field name="code"># Available variables:
840
- # - case_id: the case that just reached this phase
841
- # - request: allows you to make HTTP requests (method, url, headers, data)
842
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
843
- # - json_load: allows you to use JSON.load to convert a json into an object
844
- # - env: Odoo Environment on which the action is triggered
845
- # - time, datetime, dateutil, timezone: useful Python libraries
846
- # - float_compare: Odoo function to compare floats based on specific precisions
847
- # - ValidationError: Warning Exception to use with raise
848
- # - Command: x2Many commands namespace
849
- # - OrderedDict: ordered dictionaries
850
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
851
- # (line = case id, func = phase name)
852
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
853
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
854
- # To return a result, assign: result = {...}
855
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
856
- # phase result will not be set.
857
-
858
-
859
-
860
- </field>
861
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
862
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
863
- <field name="is_a_postalizer_phase">False</field>
864
- <field name="is_compute_refund">False</field>
865
- <field name="is_dl">False</field>
866
- <field name="is_needs_child_case">False</field>
867
- <field name="is_pick_refund_template">False</field>
868
- <field name="is_process_managed">False</field>
869
- <field name="is_quote_accepted">False</field>
870
- <field name="is_quote_sent">False</field>
871
- <field name="is_timeout">False</field>
872
- <field name="is_voidable">False</field>
873
- <field name="name">A1717 - Gestione scarti da cruscotto</field>
874
- </record>
875
- <record id="symple_triplet_phase_result_C2225_-_KO_-_Ammissibilit__Hub_E-CC01-0012" model="symple.triplet.phase.result">
876
- <field name="active">True</field>
877
- <field name="has_message">False</field>
878
- <field name="is_annulment">False</field>
879
- <field name="is_dl_solicitation_result">False</field>
880
- <field name="is_hidden">False</field>
881
- <field name="is_quote_expired">False</field>
882
- <field name="name">C2225 - KO - Ammissibilità Hub</field>
883
- <field name="next_phase_id" ref="symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto"/>
884
- <field name="state_code">E-CC01-0012</field>
885
- <field name="wizard_result">KO-HUB</field>
886
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1715_-_In_attesa_check_IFS')])]"/>
887
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO-HUB')])" />
888
- </record>
889
- <record id="symple_triplet_phase_result_C2416_-_risottomessa_da_cruscotto_E-CC01-0015" model="symple.triplet.phase.result">
890
- <field name="active">True</field>
891
- <field name="has_message">False</field>
892
- <field name="is_annulment">False</field>
893
- <field name="is_dl_solicitation_result">False</field>
894
- <field name="is_hidden">False</field>
895
- <field name="is_quote_expired">False</field>
896
- <field name="name">C2416 - risottomessa da cruscotto</field>
897
- <field name="next_phase_id" ref="symple_triplet_phase_A1715_-_In_attesa_check_IFS"/>
898
- <field name="state_code">E-CC01-0015</field>
899
- <field name="wizard_result">RESUBMIT</field>
900
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto')])]"/>
901
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Resubmit')])" />
902
- </record>
903
- <record id="symple_triplet_phase_A2558_-_verifica_avvio_gestione_manuale" model="symple.triplet.phase">
904
- <field name="active">True</field>
905
- <field name="child_case">False</field>
906
- <field name="code"># Available variables:
907
- # - case_id: the case that just reached this phase
908
- # - request: allows you to make HTTP requests (method, url, headers, data)
909
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
910
- # - json_load: allows you to use JSON.load to convert a json into an object
911
- # - env: Odoo Environment on which the action is triggered
912
- # - time, datetime, dateutil, timezone: useful Python libraries
913
- # - float_compare: Odoo function to compare floats based on specific precisions
914
- # - ValidationError: Warning Exception to use with raise
915
- # - Command: x2Many commands namespace
916
- # - OrderedDict: ordered dictionaries
917
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
918
- # (line = case id, func = phase name)
919
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
920
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
921
- # To return a result, assign: result = {...}
922
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
923
- # phase result will not be set.
924
-
925
-
926
-
927
- </field>
928
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','BOT')])" />
929
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
930
- <field name="is_a_postalizer_phase">False</field>
931
- <field name="is_compute_refund">False</field>
932
- <field name="is_dl">False</field>
933
- <field name="is_needs_child_case">False</field>
934
- <field name="is_pick_refund_template">False</field>
935
- <field name="is_process_managed">False</field>
936
- <field name="is_quote_accepted">False</field>
937
- <field name="is_quote_sent">False</field>
938
- <field name="is_timeout">False</field>
939
- <field name="is_voidable">False</field>
940
- <field name="name">A2558 - verifica avvio gestione manuale</field>
941
- </record>
942
- <record id="symple_triplet_phase_result_C2509_-_Da_gestire_nuovo_invio_automatico_E-CC01-0019" model="symple.triplet.phase.result">
943
- <field name="active">True</field>
944
- <field name="has_message">False</field>
945
- <field name="is_annulment">False</field>
946
- <field name="is_dl_solicitation_result">False</field>
947
- <field name="is_hidden">False</field>
948
- <field name="is_quote_expired">False</field>
949
- <field name="name">C2509 - Da gestire nuovo invio automatico</field>
950
- <field name="next_phase_id" ref="symple_triplet_phase_A1559_-_Invio_alla_Market_Communication"/>
951
- <field name="state_code">E-CC01-0019</field>
952
- <field name="wizard_result">KO</field>
953
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2558_-_verifica_avvio_gestione_manuale')])]"/>
954
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
955
- </record>
956
- <record id="symple_triplet_phase_A1879_-_Invio_alla_Market_Comm_Forzato" model="symple.triplet.phase">
957
- <field name="active">True</field>
958
- <field name="child_case">False</field>
959
- <field name="code"># Available variables:
960
- # - case_id: the case that just reached this phase
961
- # - request: allows you to make HTTP requests (method, url, headers, data)
962
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
963
- # - json_load: allows you to use JSON.load to convert a json into an object
964
- # - env: Odoo Environment on which the action is triggered
965
- # - time, datetime, dateutil, timezone: useful Python libraries
966
- # - float_compare: Odoo function to compare floats based on specific precisions
967
- # - ValidationError: Warning Exception to use with raise
968
- # - Command: x2Many commands namespace
969
- # - OrderedDict: ordered dictionaries
970
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
971
- # (line = case id, func = phase name)
972
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
973
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
974
- # To return a result, assign: result = {...}
975
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
976
- # phase result will not be set.
977
-
978
-
979
- logs = []
980
-
981
- # ------------------------------
982
-
983
-
984
- def get_addizione_regionale():
985
- return case_id.service_point_ids[0].regional_surcharge_value
986
-
987
-
988
- # ------------------------------
989
-
990
-
991
- def get_resubmit_bindings():
992
- return {
993
- "helpdesk_ticket": {
994
- "ids": [
995
- case_id.id,
996
- ]
997
- },
998
- "billing_profile": {"ids": []},
999
- "service_point": {"ids": []},
1000
- "res_partner_pod": {"ids": []},
1001
- "res_partner_pdr": {"ids": []},
1002
- }
1003
-
1004
-
1005
- def shared_data():
1006
- sp = case_id.service_point_ids
1007
- ifs_data = case_id.sudo().kv_store().get("ifs_data")
1008
- tipologia_risoluzione = ifs_data.get("tipologia_risoluzione")
1009
-
1010
- return {
1011
- "COD_FLUSSO": "0050",
1012
- "PIVA": case_id.customer_id.numbers_only_vat or "",
1013
- "CF": case_id.customer_id.fiscal_code or "",
1014
- "CF_STRANIERO": "0",
1015
- "ALIQUOTA_IVA": (
1016
- sp.iva_rate if tipologia_risoluzione not in ["CAE1", "CA1"] else ""
1017
- ),
1018
- "ALIQUOTA_ACCISE": "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else "",
1019
- "ADDIZ_PROVINCIALE": (
1020
- "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else ""
1021
- ),
1022
- "ADDIZ_COMUNALE": "0" if tipologia_risoluzione not in ["CAE1", "CA1"] else "",
1023
- "TIPOLOGIA_RISOLUZIONE": tipologia_risoluzione,
1024
- "DATA_DECORRENZA": ifs_data.get("data_decorrenza"),
1025
- "OWNER": "SORGE",
1026
- }
1027
-
1028
-
1029
- # ------------------------------
1030
-
1031
-
1032
- def prep_rc1():
1033
- message = shared_data()
1034
- message.update(
1035
- {
1036
- "COD_SERVIZIO": "RC1",
1037
- "COD_POD": case_id.service_point_ids[0].pod_id.code,
1038
- "bypass": True,
1039
- }
1040
- )
1041
- return message
1042
-
1043
-
1044
- def _not_cae1_ca1(value, tipologia_risoluzione):
1045
- if tipologia_risoluzione in ["CAE1", "CA1"]:
1046
- return ""
1047
- return value
1048
-
1049
-
1050
- def prep_rcg1():
1051
- ifs_data = case_id.sudo().kv_store().get("ifs_data")
1052
- tipologia_risoluzione = ifs_data.get("tipologia_risoluzione")
1053
- message = shared_data()
1054
- is_person = not case_id.customer_id.is_company
1055
- is_ui = message["TIPOLOGIA_RISOLUZIONE"] != "CA4"
1056
- service_point = case_id.service_point_ids[0]
1057
- invoicing_address = service_point.billing_profile_id.invoicing_address_id
1058
- message.update(
1059
- {
1060
- "COD_SERVIZIO": "RCG1",
1061
- "COD_PDR": case_id.service_point_ids[0].pdr_id.code,
1062
- "MOTIVAZIONE": "Scelta commerciale Sorgenia",
1063
- "PRIORITA": "",
1064
- "ALTRE_INFORMAZIONI": "",
1065
- "NOME": _not_cae1_ca1(
1066
- case_id.customer_id.firstname if is_person else "",
1067
- tipologia_risoluzione,
1068
- ),
1069
- "COGNOME": _not_cae1_ca1(
1070
- case_id.customer_id.lastname if is_person else "", tipologia_risoluzione
1071
- ),
1072
- "EMAIL": _not_cae1_ca1(
1073
- case_id.customer_id.email or "", tipologia_risoluzione
1074
- ),
1075
- "TELEFONO": _not_cae1_ca1(
1076
- case_id.customer_id.phone or "", tipologia_risoluzione
1077
- ),
1078
- "ACCESSO_FUI": _not_cae1_ca1(
1079
- "SI" if message["TIPOLOGIA_RISOLUZIONE"] == "CA4" else "NO",
1080
- tipologia_risoluzione,
1081
- ),
1082
- "UI_CF": _not_cae1_ca1(
1083
- case_id.customer_id.fiscal_code if is_ui else "", tipologia_risoluzione
1084
- ),
1085
- "UI_PIVA": _not_cae1_ca1(
1086
- case_id.customer_id.vat if is_ui else "", tipologia_risoluzione
1087
- ),
1088
- "UI_CF_STRANIERO": _not_cae1_ca1("", tipologia_risoluzione),
1089
- "UI_NOME": _not_cae1_ca1(
1090
- case_id.customer_id.firstname if is_ui and is_person else "",
1091
- tipologia_risoluzione,
1092
- ),
1093
- "UI_COGNOME": _not_cae1_ca1(
1094
- case_id.customer_id.lastname if is_ui and is_person else "",
1095
- tipologia_risoluzione,
1096
- ),
1097
- "UI_RAGIONE_SOCIALE_DENOMINAZIONE": _not_cae1_ca1(
1098
- case_id.customer_id.name if is_ui and not is_person else "",
1099
- tipologia_risoluzione,
1100
- ),
1101
- "UI_EMAIL": _not_cae1_ca1(
1102
- case_id.customer_id.email or "" if is_ui else "", tipologia_risoluzione
1103
- ),
1104
- "UI_TELEFONO": _not_cae1_ca1(
1105
- case_id.customer_id.phone or "" if is_ui else "", tipologia_risoluzione
1106
- ),
1107
- "UI_AF_CF": _not_cae1_ca1("", tipologia_risoluzione),
1108
- "UI_AF_PIVA": _not_cae1_ca1("", tipologia_risoluzione),
1109
- "UI_AF_CF_STRANIERO": _not_cae1_ca1("", tipologia_risoluzione),
1110
- "UI_AF_NOME": _not_cae1_ca1("", tipologia_risoluzione),
1111
- "UI_AF_COGNOME": _not_cae1_ca1("", tipologia_risoluzione),
1112
- "UI_AF_RAGIONE_SOCIALE_DENOMINAZIONE": _not_cae1_ca1(
1113
- "", tipologia_risoluzione
1114
- ),
1115
- "UI_FOR_TOPONIMO": _not_cae1_ca1(
1116
- service_point.service_toponym_id.name or "", tipologia_risoluzione
1117
- ),
1118
- "UI_FOR_VIA": _not_cae1_ca1(
1119
- service_point.service_street or "", tipologia_risoluzione
1120
- ),
1121
- "UI_FOR_CIV": _not_cae1_ca1(
1122
- service_point.service_street_number or "", tipologia_risoluzione
1123
- ),
1124
- "UI_FOR_CAP": _not_cae1_ca1(
1125
- service_point.service_zip or "40100", tipologia_risoluzione
1126
- ),
1127
- "UI_FOR_ISTAT": _not_cae1_ca1(
1128
- service_point.service_city_id.istat_code or "", tipologia_risoluzione
1129
- ),
1130
- "UI_FOR_LOCALITA": _not_cae1_ca1(
1131
- service_point.service_city_id.name or "", tipologia_risoluzione
1132
- ),
1133
- "UI_FOR_PROV": _not_cae1_ca1(
1134
- service_point.service_state_code or "", tipologia_risoluzione
1135
- ),
1136
- "UI_FOR_NAZIONE": (
1137
- _not_cae1_ca1(
1138
- service_point.service_country_id.with_context(
1139
- lang="it_IT"
1140
- ).name.upper(),
1141
- tipologia_risoluzione,
1142
- )
1143
- )
1144
- or "",
1145
- "UI_FOR_ALTRO": "",
1146
- "UI_ES_TOPONIMO": _not_cae1_ca1(
1147
- invoicing_address.toponym_id.name or "", tipologia_risoluzione
1148
- ),
1149
- "UI_ES_VIA": _not_cae1_ca1(
1150
- invoicing_address.street or "", tipologia_risoluzione
1151
- ),
1152
- "UI_ES_CIV": _not_cae1_ca1(
1153
- invoicing_address.street_num or "", tipologia_risoluzione
1154
- ),
1155
- "UI_ES_CAP": _not_cae1_ca1(
1156
- invoicing_address.zip or "", tipologia_risoluzione
1157
- ),
1158
- "UI_ES_ISTAT": _not_cae1_ca1(
1159
- invoicing_address.istat_code or "", tipologia_risoluzione
1160
- ),
1161
- "UI_ES_LOCALITA": _not_cae1_ca1(
1162
- invoicing_address.city_id.name or "", tipologia_risoluzione
1163
- ),
1164
- "UI_ES_PROV": _not_cae1_ca1(
1165
- invoicing_address.state_code or "", tipologia_risoluzione
1166
- ),
1167
- "UI_ES_NAZIONE": _not_cae1_ca1(
1168
- invoicing_address.country_id.with_context(lang="it_IT").name.upper()
1169
- or "",
1170
- tipologia_risoluzione,
1171
- ),
1172
- "UI_ES_ALTRO": _not_cae1_ca1("", tipologia_risoluzione),
1173
- "UI_CODICE_UFFICIO": service_point.billing_profile_id.office_code or "",
1174
- "UI_PAGAMENTO_IVA": "",
1175
- "SETT_MERCEOLOGICO": "",
1176
- "COD_RICHIESTA": "",
1177
- "ADDIZ_REGIONALE": (
1178
- get_addizione_regionale()
1179
- if message["TIPOLOGIA_RISOLUZIONE"] != "CA1"
1180
- else ""
1181
- ),
1182
- "bypass": True,
1183
- }
1184
- )
1185
- return message
1186
-
1187
-
1188
- # ------------------------------
1189
-
1190
-
1191
- def main():
1192
- ifs_data_message = None
1193
- is_ele = case_id.service_point_ids[0].pod_id.exists()
1194
-
1195
- if is_ele:
1196
- ifs_data_message = prep_rc1()
1197
- else:
1198
- ifs_data_message = prep_rcg1()
1199
-
1200
- ifs_dict = {
1201
- "ifs_code": "RC1" if is_ele else "RCG1",
1202
- "case_id": str(case_id.id),
1203
- "entity_bindings_resubmit": get_resubmit_bindings(),
1204
- "ifs_data_message": ifs_data_message,
1205
- }
1206
- ifs_json = json_dumps(ifs_dict)
1207
- tenant_id = env["ir.config_parameter"].sudo().get_param("m2c_header_tenant_id")
1208
- org_token = env["ir.config_parameter"].sudo().get_param("m2c_header_org_token")
1209
- headers = {"tenantId": tenant_id, "orgToken": org_token}
1210
- btw_url = "http://b2w-symphony-rest-service/api/symphony/process-instances/ml_IFS_passthrough"
1211
- response = request("POST", btw_url, headers=headers, data=ifs_json)
1212
-
1213
- if str(response.status_code) != "200":
1214
- raise ValidationError(str(response.status_code) + " " + str(response.text))
1215
-
1216
- return "OK"
1217
-
1218
-
1219
- try:
1220
- result = main()
1221
- except Exception as e:
1222
- logs.append({"message": str(e), "traceback": format_exc()})
1223
- prev = case_id.info_message + "\n" if case_id.info_message else ""
1224
- case_id.write({"info_message": prev + str(e)})
1225
-
1226
- result = "KO"
1227
-
1228
-
1229
- if logs:
1230
- log(json_dumps(logs))</field>
1231
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1232
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1233
- <field name="is_a_postalizer_phase">False</field>
1234
- <field name="is_compute_refund">False</field>
1235
- <field name="is_dl">False</field>
1236
- <field name="is_needs_child_case">False</field>
1237
- <field name="is_pick_refund_template">False</field>
1238
- <field name="is_process_managed">False</field>
1239
- <field name="is_quote_accepted">False</field>
1240
- <field name="is_quote_sent">False</field>
1241
- <field name="is_timeout">False</field>
1242
- <field name="is_voidable">False</field>
1243
- <field name="name">A1879 - Invio alla Market Comm Forzato</field>
1244
- <field name="set_result_automatically">from_code</field>
1245
- </record>
1246
- <record id="symple_triplet_phase_result_C2598_-_gestione_manuale_E-CC01-0018" model="symple.triplet.phase.result">
1247
- <field name="active">True</field>
1248
- <field name="has_message">False</field>
1249
- <field name="is_annulment">False</field>
1250
- <field name="is_dl_solicitation_result">False</field>
1251
- <field name="is_hidden">False</field>
1252
- <field name="is_quote_expired">False</field>
1253
- <field name="name">C2598 - gestione manuale</field>
1254
- <field name="next_phase_id" ref="symple_triplet_phase_A1879_-_Invio_alla_Market_Comm_Forzato"/>
1255
- <field name="state_code">E-CC01-0018</field>
1256
- <field name="wizard_result">SUCCESS</field>
1257
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2558_-_verifica_avvio_gestione_manuale')])]"/>
1258
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1259
- </record>
1260
- <record id="symple_triplet_phase_A1806_-_In_Attesa_Check_HUB_Forzato" model="symple.triplet.phase">
1261
- <field name="active">True</field>
1262
- <field name="child_case">False</field>
1263
- <field name="code"># Available variables:
1264
- # - case_id: the case that just reached this phase
1265
- # - request: allows you to make HTTP requests (method, url, headers, data)
1266
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1267
- # - json_load: allows you to use JSON.load to convert a json into an object
1268
- # - env: Odoo Environment on which the action is triggered
1269
- # - time, datetime, dateutil, timezone: useful Python libraries
1270
- # - float_compare: Odoo function to compare floats based on specific precisions
1271
- # - ValidationError: Warning Exception to use with raise
1272
- # - Command: x2Many commands namespace
1273
- # - OrderedDict: ordered dictionaries
1274
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1275
- # (line = case id, func = phase name)
1276
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
1277
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
1278
- # To return a result, assign: result = {...}
1279
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1280
- # phase result will not be set.
1281
-
1282
-
1283
-
1284
- </field>
1285
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1286
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1287
- <field name="is_a_postalizer_phase">False</field>
1288
- <field name="is_compute_refund">False</field>
1289
- <field name="is_dl">False</field>
1290
- <field name="is_needs_child_case">False</field>
1291
- <field name="is_pick_refund_template">False</field>
1292
- <field name="is_process_managed">False</field>
1293
- <field name="is_quote_accepted">False</field>
1294
- <field name="is_quote_sent">False</field>
1295
- <field name="is_timeout">False</field>
1296
- <field name="is_voidable">False</field>
1297
- <field name="name">A1806 - In Attesa Check HUB Forzato</field>
1298
- </record>
1299
- <record id="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0020" model="symple.triplet.phase.result">
1300
- <field name="active">True</field>
1301
- <field name="has_message">False</field>
1302
- <field name="is_annulment">False</field>
1303
- <field name="is_dl_solicitation_result">False</field>
1304
- <field name="is_hidden">False</field>
1305
- <field name="is_quote_expired">False</field>
1306
- <field name="name">C1019 - Inviata</field>
1307
- <field name="next_phase_id" ref="symple_triplet_phase_A1806_-_In_Attesa_Check_HUB_Forzato"/>
1308
- <field name="state_code">E-CC01-0020</field>
1309
- <field name="wizard_result">SUCCESS</field>
1310
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1879_-_Invio_alla_Market_Comm_Forzato')])]"/>
1311
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1312
- </record>
1313
- <record id="symple_triplet_phase_A1834_-_Gestione_scarti_da_cruscotto_forzato" model="symple.triplet.phase">
1314
- <field name="active">True</field>
1315
- <field name="child_case">False</field>
1316
- <field name="code"># Available variables:
1317
- # - case_id: the case that just reached this phase
1318
- # - request: allows you to make HTTP requests (method, url, headers, data)
1319
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1320
- # - json_load: allows you to use JSON.load to convert a json into an object
1321
- # - env: Odoo Environment on which the action is triggered
1322
- # - time, datetime, dateutil, timezone: useful Python libraries
1323
- # - float_compare: Odoo function to compare floats based on specific precisions
1324
- # - ValidationError: Warning Exception to use with raise
1325
- # - Command: x2Many commands namespace
1326
- # - OrderedDict: ordered dictionaries
1327
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1328
- # (line = case id, func = phase name)
1329
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
1330
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
1331
- # To return a result, assign: result = {...}
1332
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1333
- # phase result will not be set.
1334
-
1335
-
1336
-
1337
- </field>
1338
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1339
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1340
- <field name="is_a_postalizer_phase">False</field>
1341
- <field name="is_compute_refund">False</field>
1342
- <field name="is_dl">False</field>
1343
- <field name="is_needs_child_case">False</field>
1344
- <field name="is_pick_refund_template">False</field>
1345
- <field name="is_process_managed">False</field>
1346
- <field name="is_quote_accepted">False</field>
1347
- <field name="is_quote_sent">False</field>
1348
- <field name="is_timeout">False</field>
1349
- <field name="is_voidable">False</field>
1350
- <field name="name">A1834 - Gestione scarti da cruscotto forzato</field>
1351
- </record>
1352
- <record id="symple_triplet_phase_result_C2225_-_KO_-_Ammissibilit__Hub_E-CC01-0021" model="symple.triplet.phase.result">
1353
- <field name="active">True</field>
1354
- <field name="has_message">False</field>
1355
- <field name="is_annulment">False</field>
1356
- <field name="is_dl_solicitation_result">False</field>
1357
- <field name="is_hidden">False</field>
1358
- <field name="is_quote_expired">False</field>
1359
- <field name="name">C2225 - KO - Ammissibilità Hub</field>
1360
- <field name="next_phase_id" ref="symple_triplet_phase_A1834_-_Gestione_scarti_da_cruscotto_forzato"/>
1361
- <field name="state_code">E-CC01-0021</field>
1362
- <field name="wizard_result">KO-HUB</field>
1363
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1806_-_In_Attesa_Check_HUB_Forzato')])]"/>
1364
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO-HUB')])" />
1365
- </record>
1366
- <record id="symple_triplet_phase_result_C2416_-_risottomessa_da_cruscotto_E-CC01-0023" model="symple.triplet.phase.result">
1367
- <field name="active">True</field>
1368
- <field name="has_message">False</field>
1369
- <field name="is_annulment">False</field>
1370
- <field name="is_dl_solicitation_result">False</field>
1371
- <field name="is_hidden">False</field>
1372
- <field name="is_quote_expired">False</field>
1373
- <field name="name">C2416 - risottomessa da cruscotto</field>
1374
- <field name="next_phase_id" ref="symple_triplet_phase_A1806_-_In_Attesa_Check_HUB_Forzato"/>
1375
- <field name="state_code">E-CC01-0023</field>
1376
- <field name="wizard_result">RESUBMIT</field>
1377
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1834_-_Gestione_scarti_da_cruscotto_forzato')])]"/>
1378
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Resubmit')])" />
1379
- </record>
1380
- <record id="symple_triplet_phase_A0816_-_In_attesa_esito_ammissibilit_" model="symple.triplet.phase">
1381
- <field name="active">True</field>
1382
- <field name="child_case">False</field>
1383
- <field name="code"># Available variables:
1384
- # - case_id: the case that just reached this phase
1385
- # - request: allows you to make HTTP requests (method, url, headers, data)
1386
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1387
- # - json_load: allows you to use JSON.load to convert a json into an object
1388
- # - env: Odoo Environment on which the action is triggered
1389
- # - time, datetime, dateutil, timezone: useful Python libraries
1390
- # - float_compare: Odoo function to compare floats based on specific precisions
1391
- # - ValidationError: Warning Exception to use with raise
1392
- # - Command: x2Many commands namespace
1393
- # - OrderedDict: ordered dictionaries
1394
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1395
- # (line = case id, func = phase name)
1396
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
1397
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
1398
- # To return a result, assign: result = {...}
1399
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1400
- # phase result will not be set.
1401
-
1402
-
1403
-
1404
- </field>
1405
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1406
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1407
- <field name="is_a_postalizer_phase">False</field>
1408
- <field name="is_compute_refund">False</field>
1409
- <field name="is_dl">False</field>
1410
- <field name="is_needs_child_case">False</field>
1411
- <field name="is_pick_refund_template">False</field>
1412
- <field name="is_process_managed">False</field>
1413
- <field name="is_quote_accepted">False</field>
1414
- <field name="is_quote_sent">False</field>
1415
- <field name="is_timeout">False</field>
1416
- <field name="is_voidable">False</field>
1417
- <field name="name">A0816 - In attesa esito ammissibilità</field>
1418
- </record>
1419
- <record id="symple_triplet_phase_result_C2224_-_OK_-_Ammissibilit__Hub_E-CC01-0022" model="symple.triplet.phase.result">
1420
- <field name="active">True</field>
1421
- <field name="has_message">False</field>
1422
- <field name="is_annulment">False</field>
1423
- <field name="is_dl_solicitation_result">False</field>
1424
- <field name="is_hidden">False</field>
1425
- <field name="is_quote_expired">False</field>
1426
- <field name="name">C2224 - OK - Ammissibilità Hub</field>
1427
- <field name="next_phase_id" ref="symple_triplet_phase_A0816_-_In_attesa_esito_ammissibilit_"/>
1428
- <field name="state_code">E-CC01-0022</field>
1429
- <field name="wizard_result">OK-HUB</field>
1430
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1806_-_In_Attesa_Check_HUB_Forzato')])]"/>
1431
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','OK-HUB')])" />
1432
- </record>
1433
- <record id="symple_triplet_phase_result_C1038_-_Ammissibilit__KO_E-CC01-0026" model="symple.triplet.phase.result">
1434
- <field name="active">True</field>
1435
- <field name="has_message">False</field>
1436
- <field name="is_annulment">False</field>
1437
- <field name="is_dl_solicitation_result">False</field>
1438
- <field name="is_hidden">False</field>
1439
- <field name="is_quote_expired">False</field>
1440
- <field name="name">C1038 - Ammissibilità KO</field>
1441
- <field name="next_phase_id" ref="symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto"/>
1442
- <field name="state_code">E-CC01-0026</field>
1443
- <field name="wizard_result">KO-100</field>
1444
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0816_-_In_attesa_esito_ammissibilit_')])]"/>
1445
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO-100')])" />
1446
- </record>
1447
- <record id="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza" model="symple.triplet.phase">
1448
- <field name="active">True</field>
1449
- <field name="allowed_process_ids" model="symple.pb.process" eval="[(6, 0, obj().search([('name','in',('ml_annullamento_cessazione',)),]).ids)]" />
1450
- <field name="child_case">False</field>
1451
- <field name="code"># Available variables:
1452
- # - case_id: the case that just reached this phase
1453
- # - request: allows you to make HTTP requests (method, url, headers, data)
1454
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1455
- # - json_load: allows you to use JSON.load to convert a json into an object
1456
- # - env: Odoo Environment on which the action is triggered
1457
- # - time, datetime, dateutil, timezone: useful Python libraries
1458
- # - float_compare: Odoo function to compare floats based on specific precisions
1459
- # - ValidationError: Warning Exception to use with raise
1460
- # - Command: x2Many commands namespace
1461
- # - OrderedDict: ordered dictionaries
1462
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1463
- # (line = case id, func = phase name)
1464
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
1465
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
1466
- # To return a result, assign: result = {...}
1467
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1468
- # phase result will not be set.
1469
-
1470
-
1471
-
1472
- </field>
1473
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1474
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1475
- <field name="is_a_postalizer_phase">False</field>
1476
- <field name="is_compute_refund">False</field>
1477
- <field name="is_dl">False</field>
1478
- <field name="is_needs_child_case">False</field>
1479
- <field name="is_pick_refund_template">False</field>
1480
- <field name="is_process_managed">False</field>
1481
- <field name="is_quote_accepted">False</field>
1482
- <field name="is_quote_sent">False</field>
1483
- <field name="is_timeout">False</field>
1484
- <field name="is_voidable">False</field>
1485
- <field name="name">A1004 - Verifica RCU + Data decorrenza</field>
1486
- </record>
1487
- <record id="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza" model="symple.triplet.phase">
1488
- <field name="active">True</field>
1489
- <field name="child_case">False</field>
1490
- <field name="code"><![CDATA[# RES1 = C1936 - Data raggiunta
1491
-
1492
- RES1 = "RES1"
1493
-
1494
- logs = []
1495
- debug_logs = []
1496
- error_occurred = False
1497
-
1498
-
1499
- def make_log(message, data=None, always=False):
1500
- log_entry = {"message": message}
1501
- if data is not None:
1502
- log_entry["data"] = data
1503
-
1504
- if always:
1505
- logs.append(log_entry)
1506
- else:
1507
- debug_logs.append(log_entry)
1508
-
1509
-
1510
- # --------------------------------------
1511
-
1512
-
1513
- def main():
1514
- date_to_check = case_id.disconnect_date
1515
- today = datetime.date.today()
1516
- cutoff = today.replace(day=1) - datetime.timedelta(days=1)
1517
- date_reached = date_to_check <= cutoff
1518
- if date_reached:
1519
- return RES1
1520
-
1521
-
1522
- try:
1523
- result = main()
1524
- except Exception as e:
1525
- error_occurred = True
1526
- make_log(
1527
- "Error occurred in phase",
1528
- {"error": str(e), "traceback": format_exc()},
1529
- always=True,
1530
- )
1531
- case_id.write({"error_message": str(e)})
1532
-
1533
-
1534
- if error_occurred and debug_logs:
1535
- logs.append({"message": "debug_logs", "logs": debug_logs})
1536
-
1537
- if logs:
1538
- log(json_dumps(logs, indent=2))]]></field>
1539
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1540
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1541
- <field name="is_a_postalizer_phase">False</field>
1542
- <field name="is_compute_refund">False</field>
1543
- <field name="is_dl">False</field>
1544
- <field name="is_needs_child_case">False</field>
1545
- <field name="is_pick_refund_template">False</field>
1546
- <field name="is_process_managed">False</field>
1547
- <field name="is_quote_accepted">False</field>
1548
- <field name="is_quote_sent">False</field>
1549
- <field name="is_timeout">False</field>
1550
- <field name="is_voidable">False</field>
1551
- <field name="name">A2397 - OK RCU + verifica data decorrenza</field>
1552
- <field name="set_result_automatically">from_code</field>
1553
- </record>
1554
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU___Data_decorrenza_E-CC01-0027" model="symple.triplet.phase.result">
1555
- <field name="active">True</field>
1556
- <field name="has_message">False</field>
1557
- <field name="is_annulment">False</field>
1558
- <field name="is_dl_solicitation_result">False</field>
1559
- <field name="is_hidden">False</field>
1560
- <field name="is_quote_expired">False</field>
1561
- <field name="name">C1448 - OK controlli RCU + Data decorrenza</field>
1562
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
1563
- <field name="state_code">E-CC01-0027</field>
1564
- <field name="wizard_result">SUCCESS</field>
1565
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza')])]"/>
1566
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1567
- </record>
1568
- <record id="symple_triplet_phase_A1577_-_Chiusura_Ordine_CRM" model="symple.triplet.phase">
1569
- <field name="active">True</field>
1570
- <field name="child_case">False</field>
1571
- <field name="code"># Available variables:
1572
- # - case_id: the case that just reached this phase
1573
- # - request: allows you to make HTTP requests (method, url, headers, data)
1574
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1575
- # - json_load: allows you to use JSON.load to convert a json into an object
1576
- # - env: Odoo Environment on which the action is triggered
1577
- # - time, datetime, dateutil, timezone: useful Python libraries
1578
- # - float_compare: Odoo function to compare floats based on specific precisions
1579
- # - ValidationError: Warning Exception to use with raise
1580
- # - Command: x2Many commands namespace
1581
- # - OrderedDict: ordered dictionaries
1582
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1583
- # (line = case id, func = phase name)
1584
- # To return a result, assign: result = {...}
1585
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1586
- # phase result will not be set.
1587
-
1588
- logs = []
1589
-
1590
-
1591
- def log_and_parse_response(response, log_message):
1592
- try:
1593
- json_data = response.json()
1594
- logs.append({"message": log_message, "data": json_data})
1595
- return json_data
1596
- except Exception:
1597
- logs.append({"message": log_message, "response_text": response.text})
1598
- return response.text
1599
-
1600
-
1601
- def create_order_disconnect(asset_id, token):
1602
- url = "http://b2w-cpq-order-management-service/v1/order"
1603
- headers = {
1604
- "X-Auth-Request-Access-Token": "" + token,
1605
- "Content-Type": "application/json",
1606
- "generatesession": "true",
1607
- }
1608
- body = {
1609
- "obj_type": "Order",
1610
- "crm_accountcode": case_id.customer_id.user_sequence,
1611
- "accountcode": str(case_id.customer_id.id),
1612
- "type": "Disconnect",
1613
- "subtype": case_id.ticket_type_id.name,
1614
- "industry": "BSP Utility",
1615
- "commodity": "power" if case_id.service_point_ids[0].pod_id else "gas",
1616
- "order_date": case_id.disconnect_date.strftime("%Y-%m-%d"),
1617
- "contract": True,
1618
- "singlecontract": True,
1619
- "assets": [asset_id],
1620
- "options": {
1621
- "userLanguage": "en-US",
1622
- "remotePagination": True,
1623
- "itemsForPage": 10,
1624
- "cartItemsForPage": 10,
1625
- },
1626
- }
1627
-
1628
- logs.append({"message": "Creating order", "data": {"body": body}})
1629
-
1630
- response = request("POST", url, headers=headers, data=json_dumps(body))
1631
- json = log_and_parse_response(
1632
- response,
1633
- "Order creation response",
1634
- )
1635
-
1636
- if response.status_code != 200:
1637
- raise ValidationError("Failed to create order")
1638
-
1639
- return json
1640
-
1641
-
1642
- def bind_catalog(config_id, catalog_id, token):
1643
- logs.append(
1644
- {
1645
- "message": "Binding catalog and order",
1646
- "data": {
1647
- "config_id": config_id,
1648
- "catalog_id": catalog_id,
1649
- },
1650
- }
1651
- )
1652
-
1653
- headers = {
1654
- "X-Auth-Request-Access-Token": "" + token,
1655
- "Content-Type": "application/json",
1656
- "generatesession": "true",
1657
- }
1658
- url = "http://b2w-cpq-catalog-navigator-node-service/v1/configurations/{}/catalogs/{}".format(
1659
- config_id, catalog_id
1660
- )
1661
-
1662
- response = request("GET", url, headers=headers)
1663
- json = log_and_parse_response(
1664
- response,
1665
- "Catalog binding response",
1666
- )
1667
-
1668
- if response.status_code != 200:
1669
- raise ValidationError("Failed to set catalog id on order")
1670
-
1671
- return json
1672
-
1673
-
1674
- def checkout(config_id, token):
1675
- logs.append(
1676
- {
1677
- "message": "Binding catalog and order",
1678
- "data": {
1679
- "config_id": config_id,
1680
- },
1681
- }
1682
- )
1683
-
1684
- headers = {
1685
- "X-Auth-Request-Access-Token": "" + token,
1686
- "Content-Type": "application/json",
1687
- "generatesession": "true",
1688
- }
1689
- url = "http://b2w-cpq-order-management-service/v1/order/{}".format(config_id)
1690
-
1691
- response = request("POST", url, headers=headers, data="{}")
1692
- json = log_and_parse_response(
1693
- response,
1694
- "Checkout response",
1695
- )
1696
-
1697
- if response.status_code != 200:
1698
- raise ValidationError("Failed to checkout")
1699
-
1700
- return json
1701
-
1702
-
1703
- try:
1704
- StagingArea = env["symple.pb.process.data"]
1705
- IrConfigParam = env["ir.config_parameter"].sudo()
1706
- token = IrConfigParam.get_b2w_access_token()
1707
-
1708
- code = case_id.service_point_ids[0].code
1709
- asset = case_id.sudo().kv_store().get("asset")
1710
- catalog_id = asset["catalogid"]
1711
- logs.append({"message": "Asset loaded", "data": asset})
1712
- order = create_order_disconnect(asset["_id"], token)
1713
- order_id = order["_id"]
1714
- config_id = order["conf_id"]
1715
- logs.append({"message": "Order created", "data": order})
1716
- bind_catalog(config_id, catalog_id, token)
1717
- checkout(config_id, token)
1718
-
1719
- kv_store = case_id.sudo().kv_store()
1720
- kv_store.set("order_id", order_id)
1721
- kv_store.set("asset_id", asset["_id"])
1722
- kv_store.set("config_id", order["conf_id"])
1723
- kv_store.set("contract_id", asset["contract_id"])
1724
-
1725
- result = "OK"
1726
-
1727
- except Exception as e:
1728
- logs.append({"message": str(e), "traceback": format_exc()})
1729
- case_id.write(
1730
- {"error_message": "Errore durante l'esecuzione della fase: {}".format(str(e))}
1731
- )
1732
-
1733
-
1734
- if logs:
1735
- log(json_dumps(logs))</field>
1736
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1737
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1738
- <field name="is_a_postalizer_phase">False</field>
1739
- <field name="is_compute_refund">False</field>
1740
- <field name="is_dl">False</field>
1741
- <field name="is_needs_child_case">False</field>
1742
- <field name="is_pick_refund_template">False</field>
1743
- <field name="is_process_managed">False</field>
1744
- <field name="is_quote_accepted">False</field>
1745
- <field name="is_quote_sent">False</field>
1746
- <field name="is_timeout">False</field>
1747
- <field name="is_voidable">False</field>
1748
- <field name="name">A1577 - Chiusura Ordine CRM</field>
1749
- <field name="set_result_automatically">from_code</field>
1750
- </record>
1751
- <record id="symple_triplet_phase_result_C1936_-_Data_raggiunta_E-CC01-0031" model="symple.triplet.phase.result">
1752
- <field name="active">True</field>
1753
- <field name="has_message">False</field>
1754
- <field name="is_annulment">False</field>
1755
- <field name="is_dl_solicitation_result">False</field>
1756
- <field name="is_hidden">False</field>
1757
- <field name="is_quote_expired">False</field>
1758
- <field name="name">C1936 - Data raggiunta</field>
1759
- <field name="next_phase_id" ref="symple_triplet_phase_A1577_-_Chiusura_Ordine_CRM"/>
1760
- <field name="state_code">E-CC01-0031</field>
1761
- <field name="wizard_result">SUCCESS</field>
1762
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza')])]"/>
1763
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1764
- </record>
1765
- <record id="symple_triplet_phase_A1321_-_Errore_CRM__RC1_" model="symple.triplet.phase">
1766
- <field name="active">True</field>
1767
- <field name="child_case">False</field>
1768
- <field name="code"># Available variables:
1769
- # - case_id: the case that just reached this phase
1770
- # - request: allows you to make HTTP requests (method, url, headers, data)
1771
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1772
- # - json_load: allows you to use JSON.load to convert a json into an object
1773
- # - env: Odoo Environment on which the action is triggered
1774
- # - time, datetime, dateutil, timezone: useful Python libraries
1775
- # - float_compare: Odoo function to compare floats based on specific precisions
1776
- # - ValidationError: Warning Exception to use with raise
1777
- # - Command: x2Many commands namespace
1778
- # - OrderedDict: ordered dictionaries
1779
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1780
- # (line = case id, func = phase name)
1781
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
1782
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
1783
- # To return a result, assign: result = {...}
1784
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1785
- # phase result will not be set.
1786
-
1787
-
1788
-
1789
- </field>
1790
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','AMS')])" />
1791
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1792
- <field name="is_a_postalizer_phase">False</field>
1793
- <field name="is_compute_refund">False</field>
1794
- <field name="is_dl">False</field>
1795
- <field name="is_needs_child_case">False</field>
1796
- <field name="is_pick_refund_template">False</field>
1797
- <field name="is_process_managed">False</field>
1798
- <field name="is_quote_accepted">False</field>
1799
- <field name="is_quote_sent">False</field>
1800
- <field name="is_timeout">False</field>
1801
- <field name="is_voidable">False</field>
1802
- <field name="name">A1321 - Errore CRM (RC1)</field>
1803
- </record>
1804
- <record id="symple_triplet_phase_result_C1899_-_Errore_CRM_durante_Chiusura_Ordine_E-CC01-0033" model="symple.triplet.phase.result">
1805
- <field name="active">True</field>
1806
- <field name="has_message">False</field>
1807
- <field name="is_annulment">False</field>
1808
- <field name="is_dl_solicitation_result">False</field>
1809
- <field name="is_hidden">False</field>
1810
- <field name="is_quote_expired">False</field>
1811
- <field name="name">C1899 - Errore CRM durante Chiusura Ordine</field>
1812
- <field name="next_phase_id" ref="symple_triplet_phase_A1321_-_Errore_CRM__RC1_"/>
1813
- <field name="state_code">E-CC01-0033</field>
1814
- <field name="wizard_result">SUCCESS</field>
1815
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1577_-_Chiusura_Ordine_CRM')])]"/>
1816
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1817
- </record>
1818
- <record id="symple_triplet_phase_A2398_-_Invio_ordine_CRM" model="symple.triplet.phase">
1819
- <field name="active">True</field>
1820
- <field name="child_case">False</field>
1821
- <field name="code"># Available variables:
1822
- # - case_id: the case that just reached this phase
1823
- # - request: allows you to make HTTP requests (method, url, headers, data)
1824
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
1825
- # - json_load: allows you to use JSON.load to convert a json into an object
1826
- # - env: Odoo Environment on which the action is triggered
1827
- # - time, datetime, dateutil, timezone: useful Python libraries
1828
- # - float_compare: Odoo function to compare floats based on specific precisions
1829
- # - ValidationError: Warning Exception to use with raise
1830
- # - Command: x2Many commands namespace
1831
- # - OrderedDict: ordered dictionaries
1832
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
1833
- # (line = case id, func = phase name)
1834
- # To return a result, assign: result = {...}
1835
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
1836
- # phase result will not be set.
1837
-
1838
- logs = []
1839
-
1840
-
1841
- def log_and_parse_response(response, log_message):
1842
- try:
1843
- json_data = response.json()
1844
- logs.append({"message": log_message, "data": json_data})
1845
- return json_data
1846
- except Exception:
1847
- logs.append({"message": log_message, "response_text": response.text})
1848
- return response.text
1849
-
1850
-
1851
- def get_contract(contract_id, token):
1852
- response = request(
1853
- "GET",
1854
- "http://b2w-cpq-order-management-service/v1/contract/{}".format(contract_id),
1855
- headers={"X-Auth-Request-Access-Token": "" + token},
1856
- )
1857
-
1858
- json = log_and_parse_response(response, "get_contract")
1859
-
1860
- if response.status_code != 200:
1861
- raise ValidationError("Failed to download contract from B2W API")
1862
-
1863
- return json
1864
-
1865
-
1866
- def write_disconnect_date(asset_id, token):
1867
- dt = "{}T00:00:00.000+00:00".format(case_id.disconnect_date.isoformat())
1868
- body = {"disconnectdate": dt}
1869
-
1870
- response = request(
1871
- "PATCH",
1872
- "http://b2w-cpq-order-management-service/v1/asset/{}".format(asset_id),
1873
- headers={"X-Auth-Request-Access-Token": "" + token},
1874
- data=json_dumps(body),
1875
- )
1876
-
1877
- log_and_parse_response(response, "patch asset")
1878
-
1879
- if response.status_code != 200:
1880
- raise ValidationError("Failed to patch asset")
1881
-
1882
-
1883
- def order2asset(order_id, token):
1884
- url = "http://b2w-cpq-order-management-service/v1/order/asset/{}".format(order_id)
1885
- headers = {
1886
- "X-Auth-Request-Access-Token": "" + token,
1887
- "Content-Type": "application/json",
1888
- "generatesession": "true",
1889
- }
1890
-
1891
- response = request("POST", url, headers=headers, data=json_dumps([]))
1892
- json = log_and_parse_response(
1893
- response,
1894
- "Order2Asset response",
1895
- )
1896
-
1897
- if response.status_code != 200:
1898
- raise ValidationError("Failed to launch order2asset")
1899
-
1900
- return json
1901
-
1902
-
1903
- try:
1904
- IrConfigParam = env["ir.config_parameter"].sudo()
1905
- token = IrConfigParam.get_b2w_access_token()
1906
-
1907
- kv_store = case_id.sudo().kv_store()
1908
-
1909
- order_id = kv_store.get("order_id")
1910
- contract_id = kv_store.get("contract_id")
1911
- asset_id = kv_store.get("asset_id")
1912
-
1913
- if not order_id or not contract_id:
1914
- raise ValidationError("Order ID or Contract ID not found on case")
1915
-
1916
- order2asset(order_id, token)
1917
- logs.append({"message": "order2asset done"})
1918
-
1919
- date_fmt = (case_id.disconnect_date or datetime.datetime.now()).strftime(
1920
- "%Y-%m-%dT%H:%M:%S.%f"
1921
- ) + "Z"
1922
-
1923
- statemodel_result = IrConfigParam.update_b2w_statemodel(
1924
- "cessato",
1925
- sm_reason=case_id.ticket_type_id.name,
1926
- expected_date=date_fmt,
1927
- asset_id=asset_id,
1928
- token=token,
1929
- )
1930
- logs.append({"message": "Statemodel updates on asset", "data": statemodel_result})
1931
-
1932
- write_disconnect_date(asset_id, token)
1933
-
1934
- case_id.service_point_ids[0].sudo().write(
1935
- {
1936
- "state": "inactive",
1937
- "supply_end_date": datetime.datetime.today().strftime("%Y-%m-%d"),
1938
- }
1939
- )
1940
-
1941
- contract = get_contract(contract_id, token)
1942
-
1943
- if contract.get("status") == "disconnected":
1944
- statemodel_result = IrConfigParam.update_b2w_statemodel(
1945
- "cessato",
1946
- sm_reason=case_id.ticket_type_id.name,
1947
- expected_date=date_fmt,
1948
- contract_id=contract_id,
1949
- token=token,
1950
- )
1951
- logs.append(
1952
- {"message": "Statemodel updates on contract", "data": statemodel_result}
1953
- )
1954
- kv_store.set("is_contract_disconnected", True)
1955
- else:
1956
- kv_store.set("is_contract_disconnected", False)
1957
-
1958
- logs.append({"message": "service point updated"})
1959
-
1960
- result = "OK"
1961
-
1962
- except Exception as e:
1963
- logs.append({"message": str(e), "traceback": format_exc()})
1964
- case_id.write(
1965
- {"error_message": "Errore durante l'esecuzione della fase: {}".format(str(e))}
1966
- )
1967
-
1968
-
1969
- if logs:
1970
- log(json_dumps(logs))</field>
1971
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
1972
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
1973
- <field name="is_a_postalizer_phase">False</field>
1974
- <field name="is_compute_refund">False</field>
1975
- <field name="is_dl">False</field>
1976
- <field name="is_needs_child_case">False</field>
1977
- <field name="is_pick_refund_template">False</field>
1978
- <field name="is_process_managed">False</field>
1979
- <field name="is_quote_accepted">False</field>
1980
- <field name="is_quote_sent">False</field>
1981
- <field name="is_timeout">False</field>
1982
- <field name="is_voidable">False</field>
1983
- <field name="name">A2398 - Invio ordine CRM</field>
1984
- <field name="set_result_automatically">from_code</field>
1985
- </record>
1986
- <record id="symple_triplet_phase_result_C2242_-_Chiusura_Ordine_OK_E-CC01-0032" model="symple.triplet.phase.result">
1987
- <field name="active">True</field>
1988
- <field name="has_message">False</field>
1989
- <field name="is_annulment">False</field>
1990
- <field name="is_dl_solicitation_result">False</field>
1991
- <field name="is_hidden">False</field>
1992
- <field name="is_quote_expired">False</field>
1993
- <field name="name">C2242 - Chiusura Ordine OK</field>
1994
- <field name="next_phase_id" ref="symple_triplet_phase_A2398_-_Invio_ordine_CRM"/>
1995
- <field name="state_code">E-CC01-0032</field>
1996
- <field name="wizard_result">SUCCESS</field>
1997
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1577_-_Chiusura_Ordine_CRM')])]"/>
1998
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
1999
- </record>
2000
- <record id="symple_triplet_phase_result_C1616_-_Risoluzione_Errore_E-CC01-0034" model="symple.triplet.phase.result">
2001
- <field name="active">True</field>
2002
- <field name="has_message">False</field>
2003
- <field name="is_annulment">False</field>
2004
- <field name="is_dl_solicitation_result">False</field>
2005
- <field name="is_hidden">False</field>
2006
- <field name="is_quote_expired">False</field>
2007
- <field name="name">C1616 - Risoluzione Errore</field>
2008
- <field name="next_phase_id" ref="symple_triplet_phase_A2398_-_Invio_ordine_CRM"/>
2009
- <field name="state_code">E-CC01-0034</field>
2010
- <field name="wizard_result">SUCCESS</field>
2011
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1321_-_Errore_CRM__RC1_')])]"/>
2012
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2013
- </record>
2014
- <record id="symple_triplet_phase_A0802_-_Integrazione_M2C" model="symple.triplet.phase">
2015
- <field name="active">True</field>
2016
- <field name="child_case">False</field>
2017
- <field name="code"># Available variables:
2018
- # - case_id: the case that just reached this phase
2019
- # - request: allows you to make HTTP requests (method, url, headers, data)
2020
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2021
- # - json_load: allows you to use JSON.load to convert a json into an object
2022
- # - env: Odoo Environment on which the action is triggered
2023
- # - time, datetime, dateutil, timezone: useful Python libraries
2024
- # - float_compare: Odoo function to compare floats based on specific precisions
2025
- # - ValidationError: Warning Exception to use with raise
2026
- # - Command: x2Many commands namespace
2027
- # - OrderedDict: ordered dictionaries
2028
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2029
- # (line = case id, func = phase name)
2030
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2031
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2032
- # To return a result, assign: result = {...}
2033
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2034
- # phase result will not be set.
2035
-
2036
-
2037
- logs = []
2038
-
2039
- ServicePoint = env["service.point"]
2040
-
2041
- try:
2042
- is_contract_done, contract_id = case_id.sudo().kv_store().get_many(
2043
- "is_contract_disconnected", "contract_id"
2044
- )
2045
- date_fmt = case_id.disconnect_date.strftime("%d%m%Y")
2046
-
2047
- logs.append({"date": date_fmt})
2048
-
2049
- next_phase_result = (
2050
- case_id.triplet_active_phase_id.allowed_phase_result_ids.filtered(
2051
- lambda x: x.wizard_result == "SUCCESS"
2052
- )[0]
2053
- )
2054
- ending_phase_result = (
2055
- next_phase_result.next_phase_id.allowed_phase_result_ids.filtered(
2056
- lambda x: x.wizard_result == "SUCCESS"
2057
- )[0].state_code
2058
- )
2059
-
2060
- sp = case_id.service_point_ids[0]
2061
- bp = sp.billing_profile_id
2062
- podPdr = sp.pod_id if sp.pod_id else sp.pdr_id
2063
-
2064
- json_dict = {
2065
- "caseId": str(case_id.id),
2066
- "flow": "m2c_passthrough",
2067
- "azione": {
2068
- "protocollo": str(case_id.id),
2069
- "case": case_id.ticket_type_id.name,
2070
- "cliente": {
2071
- "cCodiceBP": case_id.customer_id.golden_key,
2072
- "cCodiceCrm": case_id.customer_code,
2073
- "contrattiMandato": [
2074
- {
2075
- "cCodiceContrattoMandato": bp.name,
2076
- "contratti": {
2077
- "cCodiceContratto": contract_id,
2078
- "forniture": [
2079
- {
2080
- "cPodPdr": podPdr.code,
2081
- "cCodicePR": sp.code,
2082
- "cCausaleCessazione": case_id.ticket_type_id.name,
2083
- "cStatoFornitura": "CESSATO",
2084
- "dFineContrattoFornitura": date_fmt,
2085
- }
2086
- ],
2087
- },
2088
- }
2089
- ],
2090
- },
2091
- },
2092
- "m2c_callback_esito": ending_phase_result,
2093
- }
2094
-
2095
- if is_contract_done:
2096
- json_dict["azione"]["cliente"]["contrattiMandato"][0]["contratti"][
2097
- "dFineContratto"
2098
- ] = date_fmt
2099
-
2100
- has_active_points = ServicePoint.search(
2101
- [("client_id", "=", case_id.customer_id.id), ("state", "!=", "inactive")]
2102
- ).exists()
2103
-
2104
- if not has_active_points:
2105
- json_dict["azione"]["cliente"]["xStatoBp"] = "CESSATO"
2106
-
2107
- tenant_id = env["ir.config_parameter"].sudo().get_param("m2c_header_tenant_id")
2108
- org_token = env["ir.config_parameter"].sudo().get_param("m2c_header_org_token")
2109
- token = env["symple.pb.launcher"].get_access_token()
2110
- headers = {
2111
- "tenantId": tenant_id,
2112
- "orgToken": org_token,
2113
- "Content-Type": "application/json",
2114
- "X-Auth-Request-Access-Token": token,
2115
- }
2116
-
2117
- logs.append({"message": "m2c", "data": json_dict})
2118
-
2119
- m2c_url = "http://b2w-symphony-rest-service/api/symphony/process-instances/M2C_passthrough"
2120
- response = request("POST", m2c_url, headers=headers, data=json_dumps(json_dict))
2121
- result = "OK"
2122
-
2123
-
2124
- except Exception as e:
2125
- logs.append({"message": str(e), "traceback": format_exc()})
2126
- prev = case_id.info_message + "\n" if case_id.info_message else ""
2127
- case_id.write({"info_message": prev + str(e)})
2128
-
2129
- if logs:
2130
- log(json_dumps(logs))</field>
2131
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2132
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2133
- <field name="is_a_postalizer_phase">False</field>
2134
- <field name="is_compute_refund">False</field>
2135
- <field name="is_dl">False</field>
2136
- <field name="is_needs_child_case">False</field>
2137
- <field name="is_pick_refund_template">False</field>
2138
- <field name="is_process_managed">False</field>
2139
- <field name="is_quote_accepted">False</field>
2140
- <field name="is_quote_sent">False</field>
2141
- <field name="is_timeout">False</field>
2142
- <field name="is_voidable">False</field>
2143
- <field name="name">A0802 - Integrazione M2C</field>
2144
- <field name="set_result_automatically">from_code</field>
2145
- </record>
2146
- <record id="symple_triplet_phase_result_C1900_-_Integrazione_M2C_E-CC01-0035" model="symple.triplet.phase.result">
2147
- <field name="active">True</field>
2148
- <field name="has_message">False</field>
2149
- <field name="is_annulment">False</field>
2150
- <field name="is_dl_solicitation_result">False</field>
2151
- <field name="is_hidden">False</field>
2152
- <field name="is_quote_expired">False</field>
2153
- <field name="name">C1900 - Integrazione M2C</field>
2154
- <field name="next_phase_id" ref="symple_triplet_phase_A0802_-_Integrazione_M2C"/>
2155
- <field name="state_code">E-CC01-0035</field>
2156
- <field name="wizard_result">SUCCESS</field>
2157
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2398_-_Invio_ordine_CRM')])]"/>
2158
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2159
- </record>
2160
- <record id="symple_triplet_phase_A0803_-_In_attesa_esito_M2C" model="symple.triplet.phase">
2161
- <field name="active">True</field>
2162
- <field name="child_case">False</field>
2163
- <field name="code"># Available variables:
2164
- # - case_id: the case that just reached this phase
2165
- # - request: allows you to make HTTP requests (method, url, headers, data)
2166
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2167
- # - json_load: allows you to use JSON.load to convert a json into an object
2168
- # - env: Odoo Environment on which the action is triggered
2169
- # - time, datetime, dateutil, timezone: useful Python libraries
2170
- # - float_compare: Odoo function to compare floats based on specific precisions
2171
- # - ValidationError: Warning Exception to use with raise
2172
- # - Command: x2Many commands namespace
2173
- # - OrderedDict: ordered dictionaries
2174
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2175
- # (line = case id, func = phase name)
2176
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2177
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2178
- # To return a result, assign: result = {...}
2179
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2180
- # phase result will not be set.
2181
-
2182
-
2183
-
2184
- </field>
2185
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2186
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2187
- <field name="is_a_postalizer_phase">False</field>
2188
- <field name="is_compute_refund">False</field>
2189
- <field name="is_dl">False</field>
2190
- <field name="is_needs_child_case">False</field>
2191
- <field name="is_pick_refund_template">False</field>
2192
- <field name="is_process_managed">False</field>
2193
- <field name="is_quote_accepted">False</field>
2194
- <field name="is_quote_sent">False</field>
2195
- <field name="is_timeout">False</field>
2196
- <field name="is_voidable">False</field>
2197
- <field name="name">A0803 - In attesa esito M2C</field>
2198
- </record>
2199
- <record id="symple_triplet_phase_result_C1904_-_In_attesa_esito_M2C_E-CC01-0036" model="symple.triplet.phase.result">
2200
- <field name="active">True</field>
2201
- <field name="has_message">False</field>
2202
- <field name="is_annulment">False</field>
2203
- <field name="is_dl_solicitation_result">False</field>
2204
- <field name="is_hidden">False</field>
2205
- <field name="is_quote_expired">False</field>
2206
- <field name="name">C1904 - In attesa esito M2C</field>
2207
- <field name="next_phase_id" ref="symple_triplet_phase_A0803_-_In_attesa_esito_M2C"/>
2208
- <field name="state_code">E-CC01-0036</field>
2209
- <field name="wizard_result">SUCCESS</field>
2210
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0802_-_Integrazione_M2C')])]"/>
2211
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2212
- </record>
2213
- <record id="symple_triplet_phase_A1836_-_Apertura_case_figlio" model="symple.triplet.phase">
2214
- <field name="active">True</field>
2215
- <field name="child_case">False</field>
2216
- <field name="code"># Available variables:
2217
- # - case_id: the case that just reached this phase
2218
- # - request: allows you to make HTTP requests (method, url, headers, data)
2219
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2220
- # - json_load: allows you to use JSON.load to convert a json into an object
2221
- # - env: Odoo Environment on which the action is triggered
2222
- # - time, datetime, dateutil, timezone: useful Python libraries
2223
- # - float_compare: Odoo function to compare floats based on specific precisions
2224
- # - ValidationError: Warning Exception to use with raise
2225
- # - Command: x2Many commands namespace
2226
- # - OrderedDict: ordered dictionaries
2227
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2228
- # (line = case id, func = phase name)
2229
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2230
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2231
- # To return a result, assign: result = {...}
2232
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2233
- # phase result will not be set.
2234
-
2235
-
2236
-
2237
- </field>
2238
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2239
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2240
- <field name="is_a_postalizer_phase">False</field>
2241
- <field name="is_compute_refund">False</field>
2242
- <field name="is_dl">False</field>
2243
- <field name="is_needs_child_case">False</field>
2244
- <field name="is_pick_refund_template">False</field>
2245
- <field name="is_process_managed">False</field>
2246
- <field name="is_quote_accepted">False</field>
2247
- <field name="is_quote_sent">False</field>
2248
- <field name="is_timeout">False</field>
2249
- <field name="is_voidable">False</field>
2250
- <field name="name">A1836 - Apertura case figlio</field>
2251
- <field name="set_result_automatically">from_code</field>
2252
- </record>
2253
- <record id="symple_triplet_phase_result_C2552_-_Elaborazione_bloccata_nel_M2C_E-CC01-0039" model="symple.triplet.phase.result">
2254
- <field name="active">True</field>
2255
- <field name="has_message">False</field>
2256
- <field name="is_annulment">False</field>
2257
- <field name="is_dl_solicitation_result">False</field>
2258
- <field name="is_hidden">False</field>
2259
- <field name="is_quote_expired">False</field>
2260
- <field name="name">C2552 - Elaborazione bloccata nel M2C</field>
2261
- <field name="next_phase_id" ref="symple_triplet_phase_A1836_-_Apertura_case_figlio"/>
2262
- <field name="state_code">E-CC01-0039</field>
2263
- <field name="wizard_result">SUCCESS</field>
2264
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0803_-_In_attesa_esito_M2C')])]"/>
2265
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2266
- </record>
2267
- <record id="symple_triplet_phase_A1595_-_Invio_Annullamento_alla_Market_Communication" model="symple.triplet.phase">
2268
- <field name="active">True</field>
2269
- <field name="child_case">False</field>
2270
- <field name="code"># Available variables:
2271
- # - case_id: the case that just reached this phase
2272
- # - request: allows you to make HTTP requests (method, url, headers, data)
2273
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2274
- # - json_load: allows you to use JSON.load to convert a json into an object
2275
- # - env: Odoo Environment on which the action is triggered
2276
- # - time, datetime, dateutil, timezone: useful Python libraries
2277
- # - float_compare: Odoo function to compare floats based on specific precisions
2278
- # - ValidationError: Warning Exception to use with raise
2279
- # - Command: x2Many commands namespace
2280
- # - OrderedDict: ordered dictionaries
2281
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2282
- # (line = case id, func = phase name)
2283
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2284
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2285
- # To return a result, assign: result = {...}
2286
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2287
- # phase result will not be set.
2288
-
2289
- logs = []
2290
- bypass = False
2291
-
2292
-
2293
- def get_apr_reason():
2294
- kv_store = case_id.sudo().kv_store()
2295
- reason_code = kv_store.get("annulment_wizard_motivation")
2296
- map_motivazione = {
2297
- "RC01": "Annullamento RC per esecuzione di altra prestazione",
2298
- "RC02": "Annullamento RC per disattivazione della fornitura",
2299
- "RC04": "Revoca risoluzione per pratica errata",
2300
- "RG01": "Revoca RCG per esecuzione di altra prestazione",
2301
- "RG03": "Revoca risoluzione per errata trasmissione",
2302
- }
2303
-
2304
- return reason_code, map_motivazione.get(reason_code, "")
2305
-
2306
-
2307
- try:
2308
- sp = case_id.service_point_ids[0]
2309
- podPdr = sp.pod_id if sp.pod_id else sp.pdr_id
2310
- cod_causale, motivazione = get_apr_reason()
2311
-
2312
- tenant_id = env["ir.config_parameter"].sudo().get_param("m2c_header_tenant_id")
2313
- org_token = env["ir.config_parameter"].sudo().get_param("m2c_header_org_token")
2314
- headers = {"tenantId": tenant_id, "orgToken": org_token}
2315
- ok_payload = {
2316
- "refName": "Annulment",
2317
- "refId": case_id.symphonie_process,
2318
- "messageProcessVars": {
2319
- "ifs_code": "APR",
2320
- "bypass": bypass,
2321
- "aprInfo": {
2322
- "COD_CAUSALE": cod_causale,
2323
- "MOTIVAZIONE": motivazione,
2324
- "COD_POD_PDR": podPdr.code,
2325
- },
2326
- },
2327
- }
2328
-
2329
- url = env["ir.config_parameter"].sudo().get_param("b2w_wake_up_process_url")
2330
- payload = json_dumps(ok_payload)
2331
- response = request("POST", url, data=payload, headers=headers)
2332
-
2333
- if response.status_code != 200:
2334
- raise ValidationError("Failed to launch APR")
2335
-
2336
- result = "OK"
2337
-
2338
- except Exception as e:
2339
- prev = case_id.info_message + "\n" if case_id.info_message else ""
2340
- case_id.write({"info_message": prev + str(e)})
2341
-
2342
- log(json_dumps(logs))</field>
2343
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2344
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2345
- <field name="is_a_postalizer_phase">False</field>
2346
- <field name="is_compute_refund">False</field>
2347
- <field name="is_dl">False</field>
2348
- <field name="is_needs_child_case">False</field>
2349
- <field name="is_pick_refund_template">False</field>
2350
- <field name="is_process_managed">False</field>
2351
- <field name="is_quote_accepted">False</field>
2352
- <field name="is_quote_sent">False</field>
2353
- <field name="is_timeout">False</field>
2354
- <field name="is_voidable">False</field>
2355
- <field name="name">A1595 - Invio Annullamento alla Market Communication</field>
2356
- <field name="set_result_automatically">from_code</field>
2357
- </record>
2358
- <record id="symple_triplet_phase_result_C2549_-_annullamento_attivo_E-CC01-0029" model="symple.triplet.phase.result">
2359
- <field name="active">True</field>
2360
- <field name="has_message">False</field>
2361
- <field name="is_annulment">False</field>
2362
- <field name="is_dl_solicitation_result">False</field>
2363
- <field name="is_hidden">False</field>
2364
- <field name="is_quote_expired">False</field>
2365
- <field name="name">C2549 - annullamento attivo</field>
2366
- <field name="next_phase_id" ref="symple_triplet_phase_A1595_-_Invio_Annullamento_alla_Market_Communication"/>
2367
- <field name="state_code">E-CC01-0029</field>
2368
- <field name="wizard_result">CANCEL</field>
2369
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza')])]"/>
2370
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Cancel')])" />
2371
- </record>
2372
- <record id="symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento" model="symple.triplet.phase">
2373
- <field name="active">True</field>
2374
- <field name="child_case">False</field>
2375
- <field name="code"># Available variables:
2376
- # - case_id: the case that just reached this phase
2377
- # - request: allows you to make HTTP requests (method, url, headers, data)
2378
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2379
- # - json_load: allows you to use JSON.load to convert a json into an object
2380
- # - env: Odoo Environment on which the action is triggered
2381
- # - time, datetime, dateutil, timezone: useful Python libraries
2382
- # - float_compare: Odoo function to compare floats based on specific precisions
2383
- # - ValidationError: Warning Exception to use with raise
2384
- # - Command: x2Many commands namespace
2385
- # - OrderedDict: ordered dictionaries
2386
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2387
- # (line = case id, func = phase name)
2388
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2389
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2390
- # To return a result, assign: result = {...}
2391
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2392
- # phase result will not be set.
2393
-
2394
-
2395
-
2396
- </field>
2397
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2398
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2399
- <field name="is_a_postalizer_phase">False</field>
2400
- <field name="is_compute_refund">False</field>
2401
- <field name="is_dl">False</field>
2402
- <field name="is_needs_child_case">False</field>
2403
- <field name="is_pick_refund_template">False</field>
2404
- <field name="is_process_managed">False</field>
2405
- <field name="is_quote_accepted">False</field>
2406
- <field name="is_quote_sent">False</field>
2407
- <field name="is_timeout">False</field>
2408
- <field name="is_voidable">False</field>
2409
- <field name="name">A1767 - In attesa check IFS Annullamento</field>
2410
- </record>
2411
- <record id="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0041" model="symple.triplet.phase.result">
2412
- <field name="active">True</field>
2413
- <field name="has_message">False</field>
2414
- <field name="is_annulment">False</field>
2415
- <field name="is_dl_solicitation_result">False</field>
2416
- <field name="is_hidden">False</field>
2417
- <field name="is_quote_expired">False</field>
2418
- <field name="name">C1019 - Inviata</field>
2419
- <field name="next_phase_id" ref="symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento"/>
2420
- <field name="state_code">E-CC01-0041</field>
2421
- <field name="wizard_result">SUCCESS</field>
2422
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1595_-_Invio_Annullamento_alla_Market_Communication')])]"/>
2423
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2424
- </record>
2425
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0046" model="symple.triplet.phase.result">
2426
- <field name="active">True</field>
2427
- <field name="has_message">False</field>
2428
- <field name="is_annulment">False</field>
2429
- <field name="is_dl_solicitation_result">False</field>
2430
- <field name="is_hidden">False</field>
2431
- <field name="is_quote_expired">False</field>
2432
- <field name="name">C1448 - OK controlli RCU</field>
2433
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
2434
- <field name="state_code">E-CC01-0046</field>
2435
- <field name="wizard_result">SUCCESS</field>
2436
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
2437
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2438
- </record>
2439
- <record id="symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento" model="symple.triplet.phase">
2440
- <field name="active">True</field>
2441
- <field name="child_case">False</field>
2442
- <field name="code"># Available variables:
2443
- # - case_id: the case that just reached this phase
2444
- # - request: allows you to make HTTP requests (method, url, headers, data)
2445
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2446
- # - json_load: allows you to use JSON.load to convert a json into an object
2447
- # - env: Odoo Environment on which the action is triggered
2448
- # - time, datetime, dateutil, timezone: useful Python libraries
2449
- # - float_compare: Odoo function to compare floats based on specific precisions
2450
- # - ValidationError: Warning Exception to use with raise
2451
- # - Command: x2Many commands namespace
2452
- # - OrderedDict: ordered dictionaries
2453
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2454
- # (line = case id, func = phase name)
2455
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2456
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2457
- # To return a result, assign: result = {...}
2458
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2459
- # phase result will not be set.
2460
-
2461
-
2462
-
2463
- </field>
2464
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','BOT')])" />
2465
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2466
- <field name="is_a_postalizer_phase">False</field>
2467
- <field name="is_compute_refund">False</field>
2468
- <field name="is_dl">False</field>
2469
- <field name="is_needs_child_case">False</field>
2470
- <field name="is_pick_refund_template">False</field>
2471
- <field name="is_process_managed">False</field>
2472
- <field name="is_quote_accepted">False</field>
2473
- <field name="is_quote_sent">False</field>
2474
- <field name="is_timeout">False</field>
2475
- <field name="is_voidable">False</field>
2476
- <field name="name">A2562 - verifica avvio gestione manuale annullamento</field>
2477
- </record>
2478
- <record id="symple_triplet_phase_result_C2509_-_Da_gestire_nuovo_invio_automatico_E-CC01-0049" model="symple.triplet.phase.result">
2479
- <field name="active">True</field>
2480
- <field name="has_message">False</field>
2481
- <field name="is_annulment">False</field>
2482
- <field name="is_dl_solicitation_result">False</field>
2483
- <field name="is_hidden">False</field>
2484
- <field name="is_quote_expired">False</field>
2485
- <field name="name">C2509 - Da gestire nuovo invio automatico</field>
2486
- <field name="next_phase_id" ref="symple_triplet_phase_A1595_-_Invio_Annullamento_alla_Market_Communication"/>
2487
- <field name="state_code">E-CC01-0049</field>
2488
- <field name="wizard_result">SUCCESS</field>
2489
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento')])]"/>
2490
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2491
- </record>
2492
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0051" model="symple.triplet.phase.result">
2493
- <field name="active">True</field>
2494
- <field name="has_message">False</field>
2495
- <field name="is_annulment">False</field>
2496
- <field name="is_dl_solicitation_result">False</field>
2497
- <field name="is_hidden">False</field>
2498
- <field name="is_quote_expired">False</field>
2499
- <field name="name">C1448 - OK controlli RCU</field>
2500
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
2501
- <field name="state_code">E-CC01-0051</field>
2502
- <field name="wizard_result">SUCCESS</field>
2503
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento')])]"/>
2504
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2505
- </record>
2506
- <record id="symple_triplet_phase_A2142_-_Invio_alla_marketcom_annullamento_forzato" model="symple.triplet.phase">
2507
- <field name="active">True</field>
2508
- <field name="child_case">False</field>
2509
- <field name="code"># Available variables:
2510
- # - case_id: the case that just reached this phase
2511
- # - request: allows you to make HTTP requests (method, url, headers, data)
2512
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2513
- # - json_load: allows you to use JSON.load to convert a json into an object
2514
- # - env: Odoo Environment on which the action is triggered
2515
- # - time, datetime, dateutil, timezone: useful Python libraries
2516
- # - float_compare: Odoo function to compare floats based on specific precisions
2517
- # - ValidationError: Warning Exception to use with raise
2518
- # - Command: x2Many commands namespace
2519
- # - OrderedDict: ordered dictionaries
2520
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2521
- # (line = case id, func = phase name)
2522
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2523
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2524
- # To return a result, assign: result = {...}
2525
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2526
- # phase result will not be set.
2527
-
2528
- logs = []
2529
- bypass = True
2530
-
2531
-
2532
- def get_apr_reason():
2533
- kv_store = case_id.sudo().kv_store()
2534
- reason_code = kv_store.get("annulment_wizard_motivation")
2535
- map_motivazione = {
2536
- "RC01": "Annullamento RC per esecuzione di altra prestazione",
2537
- "RC02": "Annullamento RC per disattivazione della fornitura",
2538
- "RC04": "Revoca risoluzione per pratica errata",
2539
- "RG01": "Revoca RCG per esecuzione di altra prestazione",
2540
- "RG03": "Revoca risoluzione per errata trasmissione",
2541
- }
2542
-
2543
- return reason_code, map_motivazione.get(reason_code, "")
2544
-
2545
-
2546
- try:
2547
- sp = case_id.service_point_ids[0]
2548
- podPdr = sp.pod_id if sp.pod_id else sp.pdr_id
2549
- cod_causale, motivazione = get_apr_reason()
2550
-
2551
- tenant_id = env["ir.config_parameter"].sudo().get_param("m2c_header_tenant_id")
2552
- org_token = env["ir.config_parameter"].sudo().get_param("m2c_header_org_token")
2553
- headers = {"tenantId": tenant_id, "orgToken": org_token}
2554
- ok_payload = {
2555
- "refName": "Annulment",
2556
- "refId": case_id.symphonie_process,
2557
- "messageProcessVars": {
2558
- "ifs_code": "APR",
2559
- "bypass": bypass,
2560
- "aprInfo": {
2561
- "COD_CAUSALE": cod_causale,
2562
- "MOTIVAZIONE": motivazione,
2563
- "COD_POD_PDR": podPdr.code,
2564
- },
2565
- },
2566
- }
2567
-
2568
- url = env["ir.config_parameter"].sudo().get_param("b2w_wake_up_process_url")
2569
- payload = json_dumps(ok_payload)
2570
- response = request("POST", url, data=payload, headers=headers)
2571
-
2572
- if response.status_code != 200:
2573
- raise ValidationError("Failed to launch VT.0040")
2574
-
2575
- result = "OK"
2576
-
2577
- except Exception as e:
2578
- prev = case_id.info_message + "\n" if case_id.info_message else ""
2579
- case_id.write({"info_message": prev + str(e)})
2580
-
2581
- log(json_dumps(logs))</field>
2582
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2583
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2584
- <field name="is_a_postalizer_phase">False</field>
2585
- <field name="is_compute_refund">False</field>
2586
- <field name="is_dl">False</field>
2587
- <field name="is_needs_child_case">False</field>
2588
- <field name="is_pick_refund_template">False</field>
2589
- <field name="is_process_managed">False</field>
2590
- <field name="is_quote_accepted">False</field>
2591
- <field name="is_quote_sent">False</field>
2592
- <field name="is_timeout">False</field>
2593
- <field name="is_voidable">False</field>
2594
- <field name="name">A2142 - Invio alla marketcom annullamento forzato</field>
2595
- <field name="set_result_automatically">from_code</field>
2596
- </record>
2597
- <record id="symple_triplet_phase_result_C2508_-_gestione_fuori_linea_E-CC01-0048" model="symple.triplet.phase.result">
2598
- <field name="active">True</field>
2599
- <field name="has_message">False</field>
2600
- <field name="is_annulment">False</field>
2601
- <field name="is_dl_solicitation_result">False</field>
2602
- <field name="is_hidden">False</field>
2603
- <field name="is_quote_expired">False</field>
2604
- <field name="name">C2508 - gestione fuori linea</field>
2605
- <field name="next_phase_id" ref="symple_triplet_phase_A2142_-_Invio_alla_marketcom_annullamento_forzato"/>
2606
- <field name="state_code">E-CC01-0048</field>
2607
- <field name="wizard_result">SUCCESS</field>
2608
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento')])]"/>
2609
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2610
- </record>
2611
- <record id="symple_triplet_phase_A2143_-_In_attesa_check_IFS_Annullamento_forzato" model="symple.triplet.phase">
2612
- <field name="active">True</field>
2613
- <field name="child_case">False</field>
2614
- <field name="code"># Available variables:
2615
- # - case_id: the case that just reached this phase
2616
- # - request: allows you to make HTTP requests (method, url, headers, data)
2617
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2618
- # - json_load: allows you to use JSON.load to convert a json into an object
2619
- # - env: Odoo Environment on which the action is triggered
2620
- # - time, datetime, dateutil, timezone: useful Python libraries
2621
- # - float_compare: Odoo function to compare floats based on specific precisions
2622
- # - ValidationError: Warning Exception to use with raise
2623
- # - Command: x2Many commands namespace
2624
- # - OrderedDict: ordered dictionaries
2625
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2626
- # (line = case id, func = phase name)
2627
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2628
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2629
- # To return a result, assign: result = {...}
2630
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2631
- # phase result will not be set.
2632
-
2633
-
2634
-
2635
- </field>
2636
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2637
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2638
- <field name="is_a_postalizer_phase">False</field>
2639
- <field name="is_compute_refund">False</field>
2640
- <field name="is_dl">False</field>
2641
- <field name="is_needs_child_case">False</field>
2642
- <field name="is_pick_refund_template">False</field>
2643
- <field name="is_process_managed">False</field>
2644
- <field name="is_quote_accepted">False</field>
2645
- <field name="is_quote_sent">False</field>
2646
- <field name="is_timeout">False</field>
2647
- <field name="is_voidable">False</field>
2648
- <field name="name">A2143 - In attesa check IFS Annullamento forzato</field>
2649
- </record>
2650
- <record id="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0053" model="symple.triplet.phase.result">
2651
- <field name="active">True</field>
2652
- <field name="has_message">False</field>
2653
- <field name="is_annulment">False</field>
2654
- <field name="is_dl_solicitation_result">False</field>
2655
- <field name="is_hidden">False</field>
2656
- <field name="is_quote_expired">False</field>
2657
- <field name="name">C1019 - Inviata</field>
2658
- <field name="next_phase_id" ref="symple_triplet_phase_A2143_-_In_attesa_check_IFS_Annullamento_forzato"/>
2659
- <field name="state_code">E-CC01-0053</field>
2660
- <field name="wizard_result">SUCCESS</field>
2661
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2142_-_Invio_alla_marketcom_annullamento_forzato')])]"/>
2662
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2663
- </record>
2664
- <record id="symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento" model="symple.triplet.phase">
2665
- <field name="active">True</field>
2666
- <field name="child_case">False</field>
2667
- <field name="code"># Available variables:
2668
- # - case_id: the case that just reached this phase
2669
- # - request: allows you to make HTTP requests (method, url, headers, data)
2670
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2671
- # - json_load: allows you to use JSON.load to convert a json into an object
2672
- # - env: Odoo Environment on which the action is triggered
2673
- # - time, datetime, dateutil, timezone: useful Python libraries
2674
- # - float_compare: Odoo function to compare floats based on specific precisions
2675
- # - ValidationError: Warning Exception to use with raise
2676
- # - Command: x2Many commands namespace
2677
- # - OrderedDict: ordered dictionaries
2678
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2679
- # (line = case id, func = phase name)
2680
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2681
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2682
- # To return a result, assign: result = {...}
2683
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2684
- # phase result will not be set.
2685
-
2686
-
2687
-
2688
- </field>
2689
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2690
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2691
- <field name="is_a_postalizer_phase">False</field>
2692
- <field name="is_compute_refund">False</field>
2693
- <field name="is_dl">False</field>
2694
- <field name="is_needs_child_case">False</field>
2695
- <field name="is_pick_refund_template">False</field>
2696
- <field name="is_process_managed">False</field>
2697
- <field name="is_quote_accepted">False</field>
2698
- <field name="is_quote_sent">False</field>
2699
- <field name="is_timeout">False</field>
2700
- <field name="is_voidable">False</field>
2701
- <field name="name">A1732 - Gestione scarti da cruscotto annullamento</field>
2702
- </record>
2703
- <record id="symple_triplet_phase_result_C2476_-_KO_-_Ammissibilit__Annullamento_Hub_E-CC01-0043" model="symple.triplet.phase.result">
2704
- <field name="active">True</field>
2705
- <field name="has_message">False</field>
2706
- <field name="is_annulment">False</field>
2707
- <field name="is_dl_solicitation_result">False</field>
2708
- <field name="is_hidden">False</field>
2709
- <field name="is_quote_expired">False</field>
2710
- <field name="name">C2476 - KO - Ammissibilità Annullamento Hub</field>
2711
- <field name="next_phase_id" ref="symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento"/>
2712
- <field name="state_code">E-CC01-0043</field>
2713
- <field name="wizard_result">SUCCESS</field>
2714
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
2715
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2716
- </record>
2717
- <record id="symple_triplet_phase_result_C2416_-_risottomessa_da_cruscotto_E-CC01-0056" model="symple.triplet.phase.result">
2718
- <field name="active">True</field>
2719
- <field name="has_message">False</field>
2720
- <field name="is_annulment">False</field>
2721
- <field name="is_dl_solicitation_result">False</field>
2722
- <field name="is_hidden">False</field>
2723
- <field name="is_quote_expired">False</field>
2724
- <field name="name">C2416 - risottomessa da cruscotto</field>
2725
- <field name="next_phase_id" ref="symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento"/>
2726
- <field name="state_code">E-CC01-0056</field>
2727
- <field name="wizard_result">RESUBMIT</field>
2728
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento')])]"/>
2729
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Resubmit')])" />
2730
- </record>
2731
- <record id="symple_triplet_phase_result_C1931_-_Errore_non_rilavorabile_E-CC01-0057" model="symple.triplet.phase.result">
2732
- <field name="active">True</field>
2733
- <field name="has_message">False</field>
2734
- <field name="is_annulment">False</field>
2735
- <field name="is_dl_solicitation_result">False</field>
2736
- <field name="is_hidden">False</field>
2737
- <field name="is_quote_expired">False</field>
2738
- <field name="name">C1931 - Errore non rilavorabile</field>
2739
- <field name="next_phase_id" ref="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza"/>
2740
- <field name="state_code">E-CC01-0057</field>
2741
- <field name="wizard_result">SUCCESS</field>
2742
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento')])]"/>
2743
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2744
- </record>
2745
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0059" model="symple.triplet.phase.result">
2746
- <field name="active">True</field>
2747
- <field name="has_message">False</field>
2748
- <field name="is_annulment">False</field>
2749
- <field name="is_dl_solicitation_result">False</field>
2750
- <field name="is_hidden">False</field>
2751
- <field name="is_quote_expired">False</field>
2752
- <field name="name">C1448 - OK controlli RCU</field>
2753
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
2754
- <field name="state_code">E-CC01-0059</field>
2755
- <field name="wizard_result">SUCCESS</field>
2756
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento')])]"/>
2757
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2758
- </record>
2759
- <record id="symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato" model="symple.triplet.phase">
2760
- <field name="active">True</field>
2761
- <field name="child_case">False</field>
2762
- <field name="code"># Available variables:
2763
- # - case_id: the case that just reached this phase
2764
- # - request: allows you to make HTTP requests (method, url, headers, data)
2765
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2766
- # - json_load: allows you to use JSON.load to convert a json into an object
2767
- # - env: Odoo Environment on which the action is triggered
2768
- # - time, datetime, dateutil, timezone: useful Python libraries
2769
- # - float_compare: Odoo function to compare floats based on specific precisions
2770
- # - ValidationError: Warning Exception to use with raise
2771
- # - Command: x2Many commands namespace
2772
- # - OrderedDict: ordered dictionaries
2773
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2774
- # (line = case id, func = phase name)
2775
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2776
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2777
- # To return a result, assign: result = {...}
2778
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2779
- # phase result will not be set.
2780
-
2781
-
2782
-
2783
- </field>
2784
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2785
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2786
- <field name="is_a_postalizer_phase">False</field>
2787
- <field name="is_compute_refund">False</field>
2788
- <field name="is_dl">False</field>
2789
- <field name="is_needs_child_case">False</field>
2790
- <field name="is_pick_refund_template">False</field>
2791
- <field name="is_process_managed">False</field>
2792
- <field name="is_quote_accepted">False</field>
2793
- <field name="is_quote_sent">False</field>
2794
- <field name="is_timeout">False</field>
2795
- <field name="is_voidable">False</field>
2796
- <field name="name">A1832 - gestione scarti da cruscotto annullamento forzato</field>
2797
- </record>
2798
- <record id="symple_triplet_phase_result_C2225_-_KO_-_Ammissibilit__Hub_E-CC01-0054" model="symple.triplet.phase.result">
2799
- <field name="active">True</field>
2800
- <field name="has_message">False</field>
2801
- <field name="is_annulment">False</field>
2802
- <field name="is_dl_solicitation_result">False</field>
2803
- <field name="is_hidden">False</field>
2804
- <field name="is_quote_expired">False</field>
2805
- <field name="name">C2225 - KO - Ammissibilità Hub</field>
2806
- <field name="next_phase_id" ref="symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato"/>
2807
- <field name="state_code">E-CC01-0054</field>
2808
- <field name="wizard_result">KO-HUB-ANN</field>
2809
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2143_-_In_attesa_check_IFS_Annullamento_forzato')])]"/>
2810
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO-HUB-ANN')])" />
2811
- </record>
2812
- <record id="symple_triplet_phase_result_C2416_-_risottomessa_da_cruscotto_E-CC01-0061" model="symple.triplet.phase.result">
2813
- <field name="active">True</field>
2814
- <field name="has_message">False</field>
2815
- <field name="is_annulment">False</field>
2816
- <field name="is_dl_solicitation_result">False</field>
2817
- <field name="is_hidden">False</field>
2818
- <field name="is_quote_expired">False</field>
2819
- <field name="name">C2416 - risottomessa da cruscotto</field>
2820
- <field name="next_phase_id" ref="symple_triplet_phase_A2143_-_In_attesa_check_IFS_Annullamento_forzato"/>
2821
- <field name="state_code">E-CC01-0061</field>
2822
- <field name="wizard_result">RESUBMIT</field>
2823
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato')])]"/>
2824
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Resubmit')])" />
2825
- </record>
2826
- <record id="symple_triplet_phase_result_C1931_-_Errore_non_rilavorabile_E-CC01-0062" model="symple.triplet.phase.result">
2827
- <field name="active">True</field>
2828
- <field name="has_message">False</field>
2829
- <field name="is_annulment">False</field>
2830
- <field name="is_dl_solicitation_result">False</field>
2831
- <field name="is_hidden">False</field>
2832
- <field name="is_quote_expired">False</field>
2833
- <field name="name">C1931 - Errore non rilavorabile</field>
2834
- <field name="next_phase_id" ref="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza"/>
2835
- <field name="state_code">E-CC01-0062</field>
2836
- <field name="wizard_result">SUCCESS</field>
2837
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato')])]"/>
2838
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2839
- </record>
2840
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0064" model="symple.triplet.phase.result">
2841
- <field name="active">True</field>
2842
- <field name="has_message">False</field>
2843
- <field name="is_annulment">False</field>
2844
- <field name="is_dl_solicitation_result">False</field>
2845
- <field name="is_hidden">False</field>
2846
- <field name="is_quote_expired">False</field>
2847
- <field name="name">C1448 - OK controlli RCU</field>
2848
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
2849
- <field name="state_code">E-CC01-0064</field>
2850
- <field name="wizard_result">SUCCESS</field>
2851
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato')])]"/>
2852
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2853
- </record>
2854
- <record id="symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento" model="symple.triplet.phase">
2855
- <field name="active">True</field>
2856
- <field name="child_case">False</field>
2857
- <field name="code"># Available variables:
2858
- # - case_id: the case that just reached this phase
2859
- # - request: allows you to make HTTP requests (method, url, headers, data)
2860
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2861
- # - json_load: allows you to use JSON.load to convert a json into an object
2862
- # - env: Odoo Environment on which the action is triggered
2863
- # - time, datetime, dateutil, timezone: useful Python libraries
2864
- # - float_compare: Odoo function to compare floats based on specific precisions
2865
- # - ValidationError: Warning Exception to use with raise
2866
- # - Command: x2Many commands namespace
2867
- # - OrderedDict: ordered dictionaries
2868
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2869
- # (line = case id, func = phase name)
2870
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2871
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2872
- # To return a result, assign: result = {...}
2873
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2874
- # phase result will not be set.
2875
-
2876
-
2877
-
2878
- </field>
2879
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2880
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
2881
- <field name="is_a_postalizer_phase">False</field>
2882
- <field name="is_compute_refund">False</field>
2883
- <field name="is_dl">False</field>
2884
- <field name="is_needs_child_case">False</field>
2885
- <field name="is_pick_refund_template">False</field>
2886
- <field name="is_process_managed">False</field>
2887
- <field name="is_quote_accepted">False</field>
2888
- <field name="is_quote_sent">False</field>
2889
- <field name="is_timeout">False</field>
2890
- <field name="is_voidable">False</field>
2891
- <field name="name">A0833 - In attesa ricezione Ammissibilità Annullamento</field>
2892
- </record>
2893
- <record id="symple_triplet_phase_result_C2224_-_OK_-_Ammissibilit__Hub_E-CC01-0055" model="symple.triplet.phase.result">
2894
- <field name="active">True</field>
2895
- <field name="has_message">False</field>
2896
- <field name="is_annulment">False</field>
2897
- <field name="is_dl_solicitation_result">False</field>
2898
- <field name="is_hidden">False</field>
2899
- <field name="is_quote_expired">False</field>
2900
- <field name="name">C2224 - OK - Ammissibilità Hub</field>
2901
- <field name="next_phase_id" ref="symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento"/>
2902
- <field name="state_code">E-CC01-0055</field>
2903
- <field name="wizard_result">OK-HUB-ANN</field>
2904
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2143_-_In_attesa_check_IFS_Annullamento_forzato')])]"/>
2905
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','OK-HUB-ANN')])" />
2906
- </record>
2907
- <record id="symple_triplet_phase_result_C1038_-_Ammissibilit__KO_E-CC01-0066" model="symple.triplet.phase.result">
2908
- <field name="active">True</field>
2909
- <field name="has_message">False</field>
2910
- <field name="is_annulment">False</field>
2911
- <field name="is_dl_solicitation_result">False</field>
2912
- <field name="is_hidden">False</field>
2913
- <field name="is_quote_expired">False</field>
2914
- <field name="name">C1038 - Ammissibilità KO</field>
2915
- <field name="next_phase_id" ref="symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento"/>
2916
- <field name="state_code">E-CC01-0066</field>
2917
- <field name="wizard_result">SUCCESS</field>
2918
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento')])]"/>
2919
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2920
- </record>
2921
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0068" model="symple.triplet.phase.result">
2922
- <field name="active">True</field>
2923
- <field name="has_message">False</field>
2924
- <field name="is_annulment">False</field>
2925
- <field name="is_dl_solicitation_result">False</field>
2926
- <field name="is_hidden">False</field>
2927
- <field name="is_quote_expired">False</field>
2928
- <field name="name">C1448 - OK controlli RCU</field>
2929
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
2930
- <field name="state_code">E-CC01-0068</field>
2931
- <field name="wizard_result">SUCCESS</field>
2932
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento')])]"/>
2933
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2934
- </record>
2935
- <record id="symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento" model="symple.triplet.phase">
2936
- <field name="active">True</field>
2937
- <field name="child_case">False</field>
2938
- <field name="code"># Available variables:
2939
- # - case_id: the case that just reached this phase
2940
- # - request: allows you to make HTTP requests (method, url, headers, data)
2941
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
2942
- # - json_load: allows you to use JSON.load to convert a json into an object
2943
- # - env: Odoo Environment on which the action is triggered
2944
- # - time, datetime, dateutil, timezone: useful Python libraries
2945
- # - float_compare: Odoo function to compare floats based on specific precisions
2946
- # - ValidationError: Warning Exception to use with raise
2947
- # - Command: x2Many commands namespace
2948
- # - OrderedDict: ordered dictionaries
2949
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
2950
- # (line = case id, func = phase name)
2951
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
2952
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
2953
- # To return a result, assign: result = {...}
2954
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
2955
- # phase result will not be set.
2956
-
2957
-
2958
-
2959
- </field>
2960
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
2961
- <field name="is_a_postalizer_phase">False</field>
2962
- <field name="is_compute_refund">False</field>
2963
- <field name="is_dl">False</field>
2964
- <field name="is_needs_child_case">False</field>
2965
- <field name="is_pick_refund_template">False</field>
2966
- <field name="is_process_managed">False</field>
2967
- <field name="is_quote_accepted">False</field>
2968
- <field name="is_quote_sent">False</field>
2969
- <field name="is_timeout">False</field>
2970
- <field name="is_voidable">False</field>
2971
- <field name="name">A0366 - In attesa Esito finale annullamento</field>
2972
- </record>
2973
- <record id="symple_triplet_phase_result_C1037_-_Ammissibilit__OK_E-CC01-0065" model="symple.triplet.phase.result">
2974
- <field name="active">True</field>
2975
- <field name="has_message">False</field>
2976
- <field name="is_annulment">False</field>
2977
- <field name="is_dl_solicitation_result">False</field>
2978
- <field name="is_hidden">False</field>
2979
- <field name="is_quote_expired">False</field>
2980
- <field name="name">C1037 - Ammissibilità OK</field>
2981
- <field name="next_phase_id" ref="symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento"/>
2982
- <field name="state_code">E-CC01-0065</field>
2983
- <field name="wizard_result">SUCCESS</field>
2984
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento')])]"/>
2985
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
2986
- </record>
2987
- <record id="symple_triplet_phase_result_C1064_-_Esito_finale_Annullamento_KO_E-CC01-0071" model="symple.triplet.phase.result">
2988
- <field name="active">True</field>
2989
- <field name="has_message">False</field>
2990
- <field name="is_annulment">False</field>
2991
- <field name="is_dl_solicitation_result">False</field>
2992
- <field name="is_hidden">False</field>
2993
- <field name="is_quote_expired">False</field>
2994
- <field name="name">C1064 - Esito finale Annullamento KO</field>
2995
- <field name="next_phase_id" ref="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza"/>
2996
- <field name="state_code">E-CC01-0071</field>
2997
- <field name="wizard_result">SUCCESS</field>
2998
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento')])]"/>
2999
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3000
- </record>
3001
- <record id="symple_triplet_phase_result_C1448_-_OK_controlli_RCU_E-CC01-0073" model="symple.triplet.phase.result">
3002
- <field name="active">True</field>
3003
- <field name="has_message">False</field>
3004
- <field name="is_annulment">False</field>
3005
- <field name="is_dl_solicitation_result">False</field>
3006
- <field name="is_hidden">False</field>
3007
- <field name="is_quote_expired">False</field>
3008
- <field name="name">C1448 - OK controlli RCU</field>
3009
- <field name="next_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
3010
- <field name="state_code">E-CC01-0073</field>
3011
- <field name="wizard_result">SUCCESS</field>
3012
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento')])]"/>
3013
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3014
- </record>
3015
- <record id="symple_triplet_phase_A0809_-_Case_Annullato" model="symple.triplet.phase">
3016
- <field name="active">True</field>
3017
- <field name="child_case">False</field>
3018
- <field name="code"># Available variables:
3019
- # - case_id: the case that just reached this phase
3020
- # - request: allows you to make HTTP requests (method, url, headers, data)
3021
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3022
- # - json_load: allows you to use JSON.load to convert a json into an object
3023
- # - env: Odoo Environment on which the action is triggered
3024
- # - time, datetime, dateutil, timezone: useful Python libraries
3025
- # - float_compare: Odoo function to compare floats based on specific precisions
3026
- # - ValidationError: Warning Exception to use with raise
3027
- # - Command: x2Many commands namespace
3028
- # - OrderedDict: ordered dictionaries
3029
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3030
- # (line = case id, func = phase name)
3031
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3032
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3033
- # To return a result, assign: result = {...}
3034
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3035
- # phase result will not be set.
3036
-
3037
- if case_id.matrix_process_id:
3038
- case_id.close_matrix_process()
3039
-
3040
- </field>
3041
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3042
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','Cancelled')])" />
3043
- <field name="is_a_postalizer_phase">False</field>
3044
- <field name="is_compute_refund">False</field>
3045
- <field name="is_dl">False</field>
3046
- <field name="is_needs_child_case">False</field>
3047
- <field name="is_pick_refund_template">False</field>
3048
- <field name="is_process_managed">False</field>
3049
- <field name="is_quote_accepted">False</field>
3050
- <field name="is_quote_sent">False</field>
3051
- <field name="is_timeout">False</field>
3052
- <field name="is_voidable">False</field>
3053
- <field name="name">A0809 - Case Annullato</field>
3054
- <field name="set_result_automatically">from_code</field>
3055
- </record>
3056
- <record id="symple_triplet_phase_result_C1402_-_Annullamento_Risoluzione_contrattuale_E-CC01-0001" model="symple.triplet.phase.result">
3057
- <field name="active">True</field>
3058
- <field name="has_message">False</field>
3059
- <field name="is_annulment">False</field>
3060
- <field name="is_dl_solicitation_result">False</field>
3061
- <field name="is_hidden">False</field>
3062
- <field name="is_quote_expired">False</field>
3063
- <field name="name">C1402 - Annullamento Risoluzione contrattuale</field>
3064
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3065
- <field name="state_code">E-CC01-0001</field>
3066
- <field name="wizard_result">CANCEL</field>
3067
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1001_-_Apertura_Wizard_Risoluzione_contrattuale')])]"/>
3068
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Cancel')])" />
3069
- </record>
3070
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0028" model="symple.triplet.phase.result">
3071
- <field name="active">True</field>
3072
- <field name="has_message">False</field>
3073
- <field name="is_annulment">False</field>
3074
- <field name="is_dl_solicitation_result">False</field>
3075
- <field name="is_hidden">False</field>
3076
- <field name="is_quote_expired">False</field>
3077
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3078
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3079
- <field name="state_code">E-CC01-0028</field>
3080
- <field name="wizard_result">KO</field>
3081
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza')])]"/>
3082
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
3083
- </record>
3084
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0045" model="symple.triplet.phase.result">
3085
- <field name="active">True</field>
3086
- <field name="has_message">False</field>
3087
- <field name="is_annulment">False</field>
3088
- <field name="is_dl_solicitation_result">False</field>
3089
- <field name="is_hidden">False</field>
3090
- <field name="is_quote_expired">False</field>
3091
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3092
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3093
- <field name="state_code">E-CC01-0045</field>
3094
- <field name="wizard_result">SUCCESS</field>
3095
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
3096
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3097
- </record>
3098
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0050" model="symple.triplet.phase.result">
3099
- <field name="active">True</field>
3100
- <field name="has_message">False</field>
3101
- <field name="is_annulment">False</field>
3102
- <field name="is_dl_solicitation_result">False</field>
3103
- <field name="is_hidden">False</field>
3104
- <field name="is_quote_expired">False</field>
3105
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3106
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3107
- <field name="state_code">E-CC01-0050</field>
3108
- <field name="wizard_result">KO</field>
3109
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento')])]"/>
3110
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
3111
- </record>
3112
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0058" model="symple.triplet.phase.result">
3113
- <field name="active">True</field>
3114
- <field name="has_message">False</field>
3115
- <field name="is_annulment">False</field>
3116
- <field name="is_dl_solicitation_result">False</field>
3117
- <field name="is_hidden">False</field>
3118
- <field name="is_quote_expired">False</field>
3119
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3120
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3121
- <field name="state_code">E-CC01-0058</field>
3122
- <field name="wizard_result">SUCCESS</field>
3123
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento')])]"/>
3124
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3125
- </record>
3126
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0063" model="symple.triplet.phase.result">
3127
- <field name="active">True</field>
3128
- <field name="has_message">False</field>
3129
- <field name="is_annulment">False</field>
3130
- <field name="is_dl_solicitation_result">False</field>
3131
- <field name="is_hidden">False</field>
3132
- <field name="is_quote_expired">False</field>
3133
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3134
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3135
- <field name="state_code">E-CC01-0063</field>
3136
- <field name="wizard_result">SUCCESS</field>
3137
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1832_-_gestione_scarti_da_cruscotto_annullamento_forzato')])]"/>
3138
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3139
- </record>
3140
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0067" model="symple.triplet.phase.result">
3141
- <field name="active">True</field>
3142
- <field name="has_message">False</field>
3143
- <field name="is_annulment">False</field>
3144
- <field name="is_dl_solicitation_result">False</field>
3145
- <field name="is_hidden">False</field>
3146
- <field name="is_quote_expired">False</field>
3147
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3148
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3149
- <field name="state_code">E-CC01-0067</field>
3150
- <field name="wizard_result">SUCCESS</field>
3151
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento')])]"/>
3152
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3153
- </record>
3154
- <record id="symple_triplet_phase_result_C1449_-_KO_controlli_RCU___Data_decorrenza_E-CC01-0072" model="symple.triplet.phase.result">
3155
- <field name="active">True</field>
3156
- <field name="has_message">False</field>
3157
- <field name="is_annulment">False</field>
3158
- <field name="is_dl_solicitation_result">False</field>
3159
- <field name="is_hidden">False</field>
3160
- <field name="is_quote_expired">False</field>
3161
- <field name="name">C1449 - KO controlli RCU + Data decorrenza</field>
3162
- <field name="next_phase_id" ref="symple_triplet_phase_A0809_-_Case_Annullato"/>
3163
- <field name="state_code">E-CC01-0072</field>
3164
- <field name="wizard_result">SUCCESS</field>
3165
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento')])]"/>
3166
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3167
- </record>
3168
- <record id="symple_triplet_phase_A0810_-_Case_Lavorato" model="symple.triplet.phase">
3169
- <field name="active">True</field>
3170
- <field name="child_case">False</field>
3171
- <field name="code">if case_id.matrix_process_id:
3172
- case_id.close_matrix_process()</field>
3173
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3174
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','Done')])" />
3175
- <field name="is_a_postalizer_phase">False</field>
3176
- <field name="is_compute_refund">False</field>
3177
- <field name="is_dl">False</field>
3178
- <field name="is_needs_child_case">False</field>
3179
- <field name="is_pick_refund_template">False</field>
3180
- <field name="is_process_managed">False</field>
3181
- <field name="is_quote_accepted">False</field>
3182
- <field name="is_quote_sent">False</field>
3183
- <field name="is_timeout">False</field>
3184
- <field name="is_voidable">False</field>
3185
- <field name="name">A0810 - Case Lavorato</field>
3186
- <field name="set_result_automatically">from_code</field>
3187
- </record>
3188
- <record id="symple_triplet_phase_result_C1006_-_OK_Integrazione_M2C_E-CC01-0037" model="symple.triplet.phase.result">
3189
- <field name="active">True</field>
3190
- <field name="has_message">False</field>
3191
- <field name="is_annulment">False</field>
3192
- <field name="is_dl_solicitation_result">False</field>
3193
- <field name="is_hidden">False</field>
3194
- <field name="is_quote_expired">False</field>
3195
- <field name="name">C1006 - OK Integrazione M2C</field>
3196
- <field name="next_phase_id" ref="symple_triplet_phase_A0810_-_Case_Lavorato"/>
3197
- <field name="state_code">E-CC01-0037</field>
3198
- <field name="wizard_result">SUCCESS</field>
3199
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0803_-_In_attesa_esito_M2C')])]"/>
3200
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3201
- </record>
3202
- <record id="symple_triplet_phase_result_C2551_-_OK_Intregrazione_M2C_-_Fatture_di_Storno_da_emettere_E-CC01-0038" model="symple.triplet.phase.result">
3203
- <field name="active">True</field>
3204
- <field name="has_message">False</field>
3205
- <field name="is_annulment">False</field>
3206
- <field name="is_dl_solicitation_result">False</field>
3207
- <field name="is_hidden">False</field>
3208
- <field name="is_quote_expired">False</field>
3209
- <field name="name">C2551 - OK Intregrazione M2C - Fatture di Storno da emettere</field>
3210
- <field name="next_phase_id" ref="symple_triplet_phase_A0810_-_Case_Lavorato"/>
3211
- <field name="state_code">E-CC01-0038</field>
3212
- <field name="wizard_result">SUCCESS</field>
3213
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0803_-_In_attesa_esito_M2C')])]"/>
3214
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3215
- </record>
3216
- <record id="symple_triplet_phase_result_C2550_-_case_creato_E-CC01-0040" model="symple.triplet.phase.result">
3217
- <field name="active">True</field>
3218
- <field name="has_message">False</field>
3219
- <field name="is_annulment">False</field>
3220
- <field name="is_dl_solicitation_result">False</field>
3221
- <field name="is_hidden">False</field>
3222
- <field name="is_quote_expired">False</field>
3223
- <field name="name">C2550 - case creato</field>
3224
- <field name="next_phase_id" ref="symple_triplet_phase_A0810_-_Case_Lavorato"/>
3225
- <field name="state_code">E-CC01-0040</field>
3226
- <field name="wizard_result">SUCCESS</field>
3227
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1836_-_Apertura_case_figlio')])]"/>
3228
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3229
- </record>
3230
- <record id="symple_triplet_phase_A1833_-_Case_annullato_da_APR" model="symple.triplet.phase">
3231
- <field name="active">True</field>
3232
- <field name="child_case">False</field>
3233
- <field name="code"># Available variables:
3234
- # - case_id: the case that just reached this phase
3235
- # - request: allows you to make HTTP requests (method, url, headers, data)
3236
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3237
- # - json_load: allows you to use JSON.load to convert a json into an object
3238
- # - env: Odoo Environment on which the action is triggered
3239
- # - time, datetime, dateutil, timezone: useful Python libraries
3240
- # - float_compare: Odoo function to compare floats based on specific precisions
3241
- # - ValidationError: Warning Exception to use with raise
3242
- # - Command: x2Many commands namespace
3243
- # - OrderedDict: ordered dictionaries
3244
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3245
- # (line = case id, func = phase name)
3246
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3247
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3248
- # To return a result, assign: result = {...}
3249
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3250
- # phase result will not be set.
3251
-
3252
-
3253
-
3254
- </field>
3255
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3256
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','Cancelled')])" />
3257
- <field name="is_a_postalizer_phase">False</field>
3258
- <field name="is_compute_refund">False</field>
3259
- <field name="is_dl">False</field>
3260
- <field name="is_needs_child_case">False</field>
3261
- <field name="is_pick_refund_template">False</field>
3262
- <field name="is_process_managed">False</field>
3263
- <field name="is_quote_accepted">False</field>
3264
- <field name="is_quote_sent">False</field>
3265
- <field name="is_timeout">False</field>
3266
- <field name="is_voidable">False</field>
3267
- <field name="name">A1833 - Case annullato da APR</field>
3268
- </record>
3269
- <record id="symple_triplet_phase_result_C1063_-_Esito_finale_Annullamento_OK_E-CC01-0070" model="symple.triplet.phase.result">
3270
- <field name="active">True</field>
3271
- <field name="has_message">False</field>
3272
- <field name="is_annulment">False</field>
3273
- <field name="is_dl_solicitation_result">False</field>
3274
- <field name="is_hidden">False</field>
3275
- <field name="is_quote_expired">False</field>
3276
- <field name="name">C1063 - Esito finale Annullamento OK</field>
3277
- <field name="next_phase_id" ref="symple_triplet_phase_A1833_-_Case_annullato_da_APR"/>
3278
- <field name="state_code">E-CC01-0070</field>
3279
- <field name="wizard_result">SUCCESS</field>
3280
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento')])]"/>
3281
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3282
- </record>
3283
- <record id="symple_triplet_phase_result_C2599_-_annullamento_confermato_E-CC01-00082" model="symple.triplet.phase.result">
3284
- <field name="active">True</field>
3285
- <field name="has_message">False</field>
3286
- <field name="is_annulment">False</field>
3287
- <field name="is_dl_solicitation_result">False</field>
3288
- <field name="is_hidden">False</field>
3289
- <field name="is_quote_expired">False</field>
3290
- <field name="name">C2599 - annullamento confermato</field>
3291
- <field name="next_phase_id" ref="symple_triplet_phase_A1833_-_Case_annullato_da_APR"/>
3292
- <field name="state_code">E-CC01-00082</field>
3293
- <field name="wizard_result">SUCCESS</field>
3294
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
3295
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3296
- </record>
3297
- <record id="symple_triplet_phase_A1835_-_Case_annullato_da_APN" model="symple.triplet.phase">
3298
- <field name="active">True</field>
3299
- <field name="child_case">False</field>
3300
- <field name="code"># Available variables:
3301
- # - case_id: the case that just reached this phase
3302
- # - request: allows you to make HTTP requests (method, url, headers, data)
3303
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3304
- # - json_load: allows you to use JSON.load to convert a json into an object
3305
- # - env: Odoo Environment on which the action is triggered
3306
- # - time, datetime, dateutil, timezone: useful Python libraries
3307
- # - float_compare: Odoo function to compare floats based on specific precisions
3308
- # - ValidationError: Warning Exception to use with raise
3309
- # - Command: x2Many commands namespace
3310
- # - OrderedDict: ordered dictionaries
3311
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3312
- # (line = case id, func = phase name)
3313
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3314
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3315
- # To return a result, assign: result = {...}
3316
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3317
- # phase result will not be set.
3318
-
3319
-
3320
-
3321
- </field>
3322
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3323
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','Cancelled')])" />
3324
- <field name="is_a_postalizer_phase">False</field>
3325
- <field name="is_compute_refund">False</field>
3326
- <field name="is_dl">False</field>
3327
- <field name="is_needs_child_case">False</field>
3328
- <field name="is_pick_refund_template">False</field>
3329
- <field name="is_process_managed">False</field>
3330
- <field name="is_quote_accepted">False</field>
3331
- <field name="is_quote_sent">False</field>
3332
- <field name="is_timeout">False</field>
3333
- <field name="is_voidable">False</field>
3334
- <field name="name">A1835 - Case annullato da APN</field>
3335
- </record>
3336
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0017" model="symple.triplet.phase.result">
3337
- <field name="active">True</field>
3338
- <field name="has_message">False</field>
3339
- <field name="is_annulment">False</field>
3340
- <field name="is_dl_solicitation_result">False</field>
3341
- <field name="is_hidden">False</field>
3342
- <field name="is_quote_expired">False</field>
3343
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3344
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3345
- <field name="state_code">E-CC01-0017</field>
3346
- <field name="wizard_result">DEF_SUCCESS</field>
3347
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto')])]"/>
3348
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Definitive Success')])" />
3349
- </record>
3350
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0030" model="symple.triplet.phase.result">
3351
- <field name="active">True</field>
3352
- <field name="has_message">False</field>
3353
- <field name="is_annulment">False</field>
3354
- <field name="is_dl_solicitation_result">False</field>
3355
- <field name="is_hidden">False</field>
3356
- <field name="is_quote_expired">False</field>
3357
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3358
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3359
- <field name="state_code">E-CC01-0030</field>
3360
- <field name="wizard_result">CANCEL-APN</field>
3361
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza')])]"/>
3362
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','CANCEL-APN')])" />
3363
- </record>
3364
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0047" model="symple.triplet.phase.result">
3365
- <field name="active">True</field>
3366
- <field name="has_message">False</field>
3367
- <field name="is_annulment">False</field>
3368
- <field name="is_dl_solicitation_result">False</field>
3369
- <field name="is_hidden">False</field>
3370
- <field name="is_quote_expired">False</field>
3371
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3372
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3373
- <field name="state_code">E-CC01-0047</field>
3374
- <field name="wizard_result">SUCCESS</field>
3375
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
3376
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3377
- </record>
3378
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0052" model="symple.triplet.phase.result">
3379
- <field name="active">True</field>
3380
- <field name="has_message">False</field>
3381
- <field name="is_annulment">False</field>
3382
- <field name="is_dl_solicitation_result">False</field>
3383
- <field name="is_hidden">False</field>
3384
- <field name="is_quote_expired">False</field>
3385
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3386
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3387
- <field name="state_code">E-CC01-0052</field>
3388
- <field name="wizard_result">CANCEL</field>
3389
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento')])]"/>
3390
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Cancel')])" />
3391
- </record>
3392
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0060" model="symple.triplet.phase.result">
3393
- <field name="active">True</field>
3394
- <field name="has_message">False</field>
3395
- <field name="is_annulment">False</field>
3396
- <field name="is_dl_solicitation_result">False</field>
3397
- <field name="is_hidden">False</field>
3398
- <field name="is_quote_expired">False</field>
3399
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3400
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3401
- <field name="state_code">E-CC01-0060</field>
3402
- <field name="wizard_result">SUCCESS</field>
3403
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1732_-_Gestione_scarti_da_cruscotto_annullamento')])]"/>
3404
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3405
- </record>
3406
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0069" model="symple.triplet.phase.result">
3407
- <field name="active">True</field>
3408
- <field name="has_message">False</field>
3409
- <field name="is_annulment">False</field>
3410
- <field name="is_dl_solicitation_result">False</field>
3411
- <field name="is_hidden">False</field>
3412
- <field name="is_quote_expired">False</field>
3413
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3414
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3415
- <field name="state_code">E-CC01-0069</field>
3416
- <field name="wizard_result">SUCCESS</field>
3417
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento')])]"/>
3418
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3419
- </record>
3420
- <record id="symple_triplet_phase_result_C1763_-_Annullamento_passivo_dal_SII_E-CC01-0074" model="symple.triplet.phase.result">
3421
- <field name="active">True</field>
3422
- <field name="has_message">False</field>
3423
- <field name="is_annulment">False</field>
3424
- <field name="is_dl_solicitation_result">False</field>
3425
- <field name="is_hidden">False</field>
3426
- <field name="is_quote_expired">False</field>
3427
- <field name="name">C1763 - Annullamento passivo dal SII</field>
3428
- <field name="next_phase_id" ref="symple_triplet_phase_A1835_-_Case_annullato_da_APN"/>
3429
- <field name="state_code">E-CC01-0074</field>
3430
- <field name="wizard_result">SUCCESS</field>
3431
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0366_-_In_attesa_Esito_finale_annullamento')])]"/>
3432
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3433
- </record>
3434
- <record id="symple_triplet_phase_A0811_-_Lavorato_KO" model="symple.triplet.phase">
3435
- <field name="active">True</field>
3436
- <field name="child_case">False</field>
3437
- <field name="code">if case_id.matrix_process_id:
3438
- case_id.close_matrix_process(status="ERROR")</field>
3439
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3440
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','Done KO')])" />
3441
- <field name="is_a_postalizer_phase">False</field>
3442
- <field name="is_compute_refund">False</field>
3443
- <field name="is_dl">False</field>
3444
- <field name="is_needs_child_case">False</field>
3445
- <field name="is_pick_refund_template">False</field>
3446
- <field name="is_process_managed">False</field>
3447
- <field name="is_quote_accepted">False</field>
3448
- <field name="is_quote_sent">False</field>
3449
- <field name="is_timeout">False</field>
3450
- <field name="is_voidable">False</field>
3451
- <field name="name">A0811 - Lavorato KO</field>
3452
- <field name="set_result_automatically">from_code</field>
3453
- </record>
3454
- <record id="symple_triplet_phase_result_C2409_-_KO_Confermato_E-CC01-0006" model="symple.triplet.phase.result">
3455
- <field name="active">True</field>
3456
- <field name="has_message">False</field>
3457
- <field name="is_annulment">False</field>
3458
- <field name="is_dl_solicitation_result">False</field>
3459
- <field name="is_hidden">False</field>
3460
- <field name="is_quote_expired">False</field>
3461
- <field name="name">C2409 - KO Confermato</field>
3462
- <field name="next_phase_id" ref="symple_triplet_phase_A0811_-_Lavorato_KO"/>
3463
- <field name="state_code">E-CC01-0006</field>
3464
- <field name="wizard_result">KO</field>
3465
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1710_-_Verifica_compatibilit__KO')])]"/>
3466
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO')])" />
3467
- </record>
3468
- <record id="symple_triplet_phase_result_C1931_-_Errore_non_rilavorabile_E-CC01-0016" model="symple.triplet.phase.result">
3469
- <field name="active">True</field>
3470
- <field name="has_message">False</field>
3471
- <field name="is_annulment">False</field>
3472
- <field name="is_dl_solicitation_result">False</field>
3473
- <field name="is_hidden">False</field>
3474
- <field name="is_quote_expired">False</field>
3475
- <field name="name">C1931 - Errore non rilavorabile</field>
3476
- <field name="next_phase_id" ref="symple_triplet_phase_A0811_-_Lavorato_KO"/>
3477
- <field name="state_code">E-CC01-0016</field>
3478
- <field name="wizard_result">DEF-KO</field>
3479
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1717_-_Gestione_scarti_da_cruscotto')])]"/>
3480
- </record>
3481
- <record id="symple_triplet_phase_result_C1931_-_Errore_non_rilavorabile_E-CC01-0024" model="symple.triplet.phase.result">
3482
- <field name="active">True</field>
3483
- <field name="has_message">False</field>
3484
- <field name="is_annulment">False</field>
3485
- <field name="is_dl_solicitation_result">False</field>
3486
- <field name="is_hidden">False</field>
3487
- <field name="is_quote_expired">False</field>
3488
- <field name="name">C1931 - Errore non rilavorabile</field>
3489
- <field name="next_phase_id" ref="symple_triplet_phase_A0811_-_Lavorato_KO"/>
3490
- <field name="state_code">E-CC01-0024</field>
3491
- <field name="wizard_result">DEF-KO</field>
3492
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1834_-_Gestione_scarti_da_cruscotto_forzato')])]"/>
3493
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','DEF-KO')])" />
3494
- </record>
3495
- <record id="symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case" model="symple.triplet.phase">
3496
- <field name="active">True</field>
3497
- <field name="child_case">False</field>
3498
- <field name="code"># Available variables:
3499
- # - case_id: the case that just reached this phase
3500
- # - request: allows you to make HTTP requests (method, url, headers, data)
3501
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3502
- # - json_load: allows you to use JSON.load to convert a json into an object
3503
- # - env: Odoo Environment on which the action is triggered
3504
- # - time, datetime, dateutil, timezone: useful Python libraries
3505
- # - float_compare: Odoo function to compare floats based on specific precisions
3506
- # - ValidationError: Warning Exception to use with raise
3507
- # - Command: x2Many commands namespace
3508
- # - OrderedDict: ordered dictionaries
3509
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3510
- # (line = case id, func = phase name)
3511
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3512
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3513
- # To return a result, assign: result = {...}
3514
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3515
- # phase result will not be set.
3516
- try:
3517
- is_automatic = case_id.is_automatic_case
3518
- if is_automatic:
3519
- result = "AUTOMATICO"
3520
- else:
3521
- result = "MANUALE"
3522
- except Exception as e :
3523
- case_id.write({
3524
- 'info_message':(case_id.info_message + "\n" + str(e)) if case_id.info_message else str(e)
3525
- })
3526
-
3527
-
3528
- </field>
3529
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3530
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','New')])" />
3531
- <field name="is_a_postalizer_phase">False</field>
3532
- <field name="is_compute_refund">False</field>
3533
- <field name="is_dl">False</field>
3534
- <field name="is_needs_child_case">False</field>
3535
- <field name="is_pick_refund_template">False</field>
3536
- <field name="is_process_managed">False</field>
3537
- <field name="is_quote_accepted">False</field>
3538
- <field name="is_quote_sent">False</field>
3539
- <field name="is_timeout">False</field>
3540
- <field name="is_voidable">False</field>
3541
- <field name="name">A1590 - Verifica Tipologia Apertura Case</field>
3542
- <field name="set_result_automatically">from_code</field>
3543
- </record>
3544
- <record id="symple_triplet_phase_result_C2251_-_Apertura_Case_Manuale_E-CC01-0001-01" model="symple.triplet.phase.result">
3545
- <field name="active">True</field>
3546
- <field name="has_message">False</field>
3547
- <field name="is_annulment">False</field>
3548
- <field name="is_dl_solicitation_result">False</field>
3549
- <field name="is_hidden">False</field>
3550
- <field name="is_quote_expired">False</field>
3551
- <field name="name">C2251 - Apertura Case Manuale</field>
3552
- <field name="next_phase_id" ref="symple_triplet_phase_A1001_-_Apertura_Wizard_Risoluzione_contrattuale"/>
3553
- <field name="state_code">E-CC01-0001-01</field>
3554
- <field name="wizard_result">SUCCESS</field>
3555
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case')])]"/>
3556
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3557
- </record>
3558
- <record id="symple_workflow_ML_-_RISOLUZIONE_CONTRATTUALE" model="symple.workflow">
3559
- <field name="active">True</field>
3560
- <field name="code"># Available variables:
3561
- # - case_id: the case that just reached this phase
3562
- # - request: allows you to make HTTP requests (method, url, headers, data)
3563
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3564
- # - json_load: allows you to use JSON.load to convert a json into an object
3565
- # - env: Odoo Environment on which the action is triggered
3566
- # - time, datetime, dateutil, timezone: useful Python libraries
3567
- # - float_compare: Odoo function to compare floats based on specific precisions
3568
- # - ValidationError: Warning Exception to use with raise
3569
- # - Command: x2Many commands namespace
3570
- # - OrderedDict: ordered dictionaries
3571
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3572
- # (line = case id, func = phase name)
3573
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3574
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3575
- # To return a result, assign: result = {...}
3576
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3577
- # phase result will not be set.
3578
-
3579
-
3580
-
3581
- </field>
3582
- <field name="execute_code_every_phase">False</field>
3583
- <field name="is_tiqv">False</field>
3584
- <field name="name">ML - RISOLUZIONE CONTRATTUALE</field>
3585
- <field name="triplet_phase_id" ref="symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case"/>
3586
- <field name="bpmn_diagram"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
3587
- <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
3588
- xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
3589
- xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
3590
- xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
3591
- xmlns:bioc="http://bpmn.io/schema/bpmn/biocolor/1.0"
3592
- xmlns:color="http://www.omg.org/spec/BPMN/non-normative/color/1.0">
3593
- <bpmn:process id="process_458" name="ML - RISOLUZIONE CONTRATTUALE" isExecutable="false"><bpmn:startEvent id="start"/><bpmn:scriptTask id="phase18083" name="A1590 - Verifica Tipologia Apertura Case"/><bpmn:userTask id="phase17995" name="A1001 - Apertura Wizard Risoluzione contrattuale"/><bpmn:scriptTask id="phase18025" name="A0809 - Case Annullato"/><bpmn:scriptTask id="phase17996" name="A1709 - verifica compatibilità"/><bpmn:userTask id="phase17997" name="A1710 - Verifica compatibilità KO"/><bpmn:scriptTask id="phase18029" name="A0811 - Lavorato KO"/><bpmn:scriptTask id="phase17998" name="A1672 - Recupero dati a CRM"/><bpmn:scriptTask id="phase18000" name="A1559 - Invio alla Market Communication"/><bpmn:serviceTask id="phase18001" name="A1715 - In attesa check IFS"/><bpmn:serviceTask id="phase18002" name="A1717 - Gestione scarti da cruscotto"/><bpmn:serviceTask id="phase18028" name="A1835 - Case annullato da APN"/><bpmn:serviceTask id="phase20854" name="A2338 - Inserimento Pratica"/><bpmn:userTask id="phase18003" name="A2558 - verifica avvio gestione manuale"/><bpmn:serviceTask id="phase18004" name="A1879 - Invio alla Market Comm Forzato"/><bpmn:serviceTask id="phase18005" name="A1806 - In Attesa Check HUB Forzato"/><bpmn:serviceTask id="phase18006" name="A1834 - Gestione scarti da cruscotto forzato"/><bpmn:serviceTask id="phase18007" name="A0816 - In attesa esito ammissibilità"/><bpmn:scriptTask id="phase18099" name="A1556 - Verica commodity"/><bpmn:userTask id="phase18008" name="A1004 - Verifica RCU + Data decorrenza"/><bpmn:scriptTask id="phase18009" name="A2397 - OK RCU + verifica data decorrenza"/><bpmn:scriptTask id="phase18010" name="A1577 - Chiusura Ordine CRM"/><bpmn:scriptTask id="phase18012" name="A2398 - Invio ordine CRM"/><bpmn:scriptTask id="phase18013" name="A0802 - Integrazione M2C"/><bpmn:serviceTask id="phase18014" name="A0803 - In attesa esito M2C"/><bpmn:scriptTask id="phase18026" name="A0810 - Case Lavorato"/><bpmn:scriptTask id="phase18015" name="A1836 - Apertura case figlio"/><bpmn:userTask id="phase18011" name="A1321 - Errore CRM (RC1)"/><bpmn:scriptTask id="phase18016" name="A1595 - Invio Annullamento alla Market Communication"/><bpmn:serviceTask id="phase18017" name="A1767 - In attesa check IFS Annullamento"/><bpmn:serviceTask id="phase20855" name="A2561 - verifica stato invio pratica da annullare"/><bpmn:serviceTask id="phase20856" name="A0832 - Invio Richiesta Annullamento"/><bpmn:userTask id="phase18018" name="A2562 - verifica avvio gestione manuale annullamento"/><bpmn:scriptTask id="phase18019" name="A2142 - Invio alla marketcom annullamento forzato"/><bpmn:serviceTask id="phase18020" name="A2143 - In attesa check IFS Annullamento forzato"/><bpmn:serviceTask id="phase18022" name="A1832 - gestione scarti da cruscotto annullamento forzato"/><bpmn:serviceTask id="phase18023" name="A0833 - In attesa ricezione Ammissibilità Annullamento"/><bpmn:serviceTask id="phase18024" name="A0366 - In attesa Esito finale annullamento"/><bpmn:serviceTask id="phase18027" name="A1833 - Case annullato da APR"/><bpmn:serviceTask id="phase18021" name="A1732 - Gestione scarti da cruscotto annullamento"/><bpmn:sendTask id="phase18100" name="A2598 - Invio Pec"/><bpmn:userTask id="phase17999" name="A1323 - Errore CRM (Recupero dati)"/><bpmn:scriptTask id="phase18098" name="A1001 – Creazione Case di Risoluzione Contrattuale Automatica"/><bpmn:sequenceFlow id="flowStart" sourceRef="start" targetRef="phase18083"/><bpmn:sequenceFlow id="flow18083" sourceRef="phase18083" targetRef="gateway18083"/><bpmn:sequenceFlow id="flow31428" name="C2251 - Apertura Case Manuale" sourceRef="gateway18083" targetRef="phase17995"/><bpmn:sequenceFlow id="flow17995" sourceRef="phase17995" targetRef="gateway17995"/><bpmn:sequenceFlow id="flow31312" name="C1402 - Annullamento Risoluzione contrattuale" sourceRef="gateway17995" targetRef="phase18025"/><bpmn:sequenceFlow id="flowEnd18025" sourceRef="phase18025" targetRef="end18025"/><bpmn:sequenceFlow id="flow31313" name="C1401 - Risoluzione contrattuale OK" sourceRef="gateway17995" targetRef="phase17996"/><bpmn:sequenceFlow id="flow17996" sourceRef="phase17996" targetRef="gateway17996"/><bpmn:sequenceFlow id="flow31314" name="C404 - KO - Incompatibile" sourceRef="gateway17996" targetRef="phase17997"/><bpmn:sequenceFlow id="flow17997" sourceRef="phase17997" targetRef="gateway17997"/><bpmn:sequenceFlow id="flow31317" name="C2409 - KO Confermato" sourceRef="gateway17997" targetRef="phase18029"/><bpmn:sequenceFlow id="flowEnd18029" sourceRef="phase18029" targetRef="end18029"/><bpmn:sequenceFlow id="flow31318" name="C2410 - OK Incompatibilità Gestita" sourceRef="gateway17997" targetRef="phase17996"/><bpmn:sequenceFlow id="flow31315" name="C2654 - Processo Compatibile" sourceRef="gateway17996" targetRef="phase17998"/><bpmn:sequenceFlow id="flow17998" sourceRef="phase17998" targetRef="gateway17998"/><bpmn:sequenceFlow id="flow31319" name="C2365 - Recupero Dati OK" sourceRef="gateway17998" targetRef="phase18000"/><bpmn:sequenceFlow id="flow31322" name="C1019 - Inviata" sourceRef="phase18000" targetRef="phase18001"/><bpmn:sequenceFlow id="flow18001" sourceRef="phase18001" targetRef="gateway18001"/><bpmn:sequenceFlow id="flow31323" name="C2225 - KO - Ammissibilità Hub" sourceRef="gateway18001" targetRef="phase18002"/><bpmn:sequenceFlow id="flow18002" sourceRef="phase18002" targetRef="gateway18002"/><bpmn:sequenceFlow id="flow31326" name="C2416 - risottomessa da cruscotto" sourceRef="gateway18002" targetRef="phase18001"/><bpmn:sequenceFlow id="flow31327" name="C1931 - Errore non rilavorabile" sourceRef="gateway18002" targetRef="phase18029"/><bpmn:sequenceFlow id="flow31328" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18002" targetRef="phase18028"/><bpmn:sequenceFlow id="flowEnd18028" sourceRef="phase18028" targetRef="end18028"/><bpmn:sequenceFlow id="flow31324" name="C2224 - OK - Ammissibilità Hub" sourceRef="gateway18001" targetRef="phase20854"/><bpmn:sequenceFlow id="flow20854" sourceRef="phase20854" targetRef="gateway20854"/><bpmn:sequenceFlow id="flow31325" name="C3118 - KO AtoA/pdc" sourceRef="gateway20854" targetRef="phase18003"/><bpmn:sequenceFlow id="flow18003" sourceRef="phase18003" targetRef="gateway18003"/><bpmn:sequenceFlow id="flow31329" name="C2598 - gestione manuale" sourceRef="gateway18003" targetRef="phase18004"/><bpmn:sequenceFlow id="flow31331" name="C1019 - Inviata" sourceRef="phase18004" targetRef="phase18005"/><bpmn:sequenceFlow id="flow18005" sourceRef="phase18005" targetRef="gateway18005"/><bpmn:sequenceFlow id="flow31332" name="C2225 - KO - Ammissibilità Hub" sourceRef="gateway18005" targetRef="phase18006"/><bpmn:sequenceFlow id="flow18006" sourceRef="phase18006" targetRef="gateway18006"/><bpmn:sequenceFlow id="flow31334" name="C2416 - risottomessa da cruscotto" sourceRef="gateway18006" targetRef="phase18005"/><bpmn:sequenceFlow id="flow31335" name="C1931 - Errore non rilavorabile" sourceRef="gateway18006" targetRef="phase18029"/><bpmn:sequenceFlow id="flow31333" name="C2224 - OK - Ammissibilità Hub" sourceRef="gateway18005" targetRef="phase18007"/><bpmn:sequenceFlow id="flow18007" sourceRef="phase18007" targetRef="gateway18007"/><bpmn:sequenceFlow id="flow31336" name="C1037 - Ammissibilità OK" sourceRef="gateway18007" targetRef="phase18099"/><bpmn:sequenceFlow id="flow18099" sourceRef="phase18099" targetRef="gateway18099"/><bpmn:sequenceFlow id="flow31443" name="C2222 – Commodity Gas" sourceRef="gateway18099" targetRef="phase18008"/><bpmn:sequenceFlow id="flow18008" sourceRef="phase18008" targetRef="gateway18008"/><bpmn:sequenceFlow id="flow31338" name="C1448 - OK controlli RCU + Data decorrenza" sourceRef="gateway18008" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31342" name="C1936 - Data raggiunta" sourceRef="phase18009" targetRef="phase18010"/><bpmn:sequenceFlow id="flow18010" sourceRef="phase18010" targetRef="gateway18010"/><bpmn:sequenceFlow id="flow31343" name="C2242 - Chiusura Ordine OK" sourceRef="gateway18010" targetRef="phase18012"/><bpmn:sequenceFlow id="flow31346" name="C1900 - Integrazione M2C" sourceRef="phase18012" targetRef="phase18013"/><bpmn:sequenceFlow id="flow31347" name="C1904 - In attesa esito M2C" sourceRef="phase18013" targetRef="phase18014"/><bpmn:sequenceFlow id="flow18014" sourceRef="phase18014" targetRef="gateway18014"/><bpmn:sequenceFlow id="flow31348" name="C1006 - OK Integrazione M2C" sourceRef="gateway18014" targetRef="phase18026"/><bpmn:sequenceFlow id="flowEnd18026" sourceRef="phase18026" targetRef="end18026"/><bpmn:sequenceFlow id="flow31349" name="C2551 - OK Intregrazione M2C - Fatture di Storno da emettere" sourceRef="gateway18014" targetRef="phase18026"/><bpmn:sequenceFlow id="flow31350" name="C2552 - Elaborazione bloccata nel M2C" sourceRef="gateway18014" targetRef="phase18015"/><bpmn:sequenceFlow id="flow31351" name="C2550 - case creato" sourceRef="phase18015" targetRef="phase18026"/><bpmn:sequenceFlow id="flow31344" name="C1899 - Errore CRM durante Chiusura Ordine" sourceRef="gateway18010" targetRef="phase18011"/><bpmn:sequenceFlow id="flow31345" name="C1616 - Risoluzione Errore" sourceRef="phase18011" targetRef="phase18012"/><bpmn:sequenceFlow id="flow31339" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18008" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31340" name="C2549 - annullamento attivo" sourceRef="gateway18008" targetRef="phase18016"/><bpmn:sequenceFlow id="flow31352" name="C1019 - Inviata" sourceRef="phase18016" targetRef="phase18017"/><bpmn:sequenceFlow id="flow18017" sourceRef="phase18017" targetRef="gateway18017"/><bpmn:sequenceFlow id="flow31353" name="C2475 - OK - Ammissibilità Annullamento Hub" sourceRef="gateway18017" targetRef="phase20855"/><bpmn:sequenceFlow id="flow20855" sourceRef="phase20855" targetRef="gateway20855"/><bpmn:sequenceFlow id="flow37139" name="C3120 - annullamento da gestire" sourceRef="gateway20855" targetRef="phase20856"/><bpmn:sequenceFlow id="flow20856" sourceRef="phase20856" targetRef="gateway20856"/><bpmn:sequenceFlow id="flow31355" name="C3118 - KO AtoA/pdc" sourceRef="gateway20856" targetRef="phase18018"/><bpmn:sequenceFlow id="flow18018" sourceRef="phase18018" targetRef="gateway18018"/><bpmn:sequenceFlow id="flow31359" name="C2508 - gestione fuori linea" sourceRef="gateway18018" targetRef="phase18019"/><bpmn:sequenceFlow id="flow31364" name="C1019 - Inviata" sourceRef="phase18019" targetRef="phase18020"/><bpmn:sequenceFlow id="flow18020" sourceRef="phase18020" targetRef="gateway18020"/><bpmn:sequenceFlow id="flow31365" name="C2225 - KO - Ammissibilità Hub" sourceRef="gateway18020" targetRef="phase18022"/><bpmn:sequenceFlow id="flow18022" sourceRef="phase18022" targetRef="gateway18022"/><bpmn:sequenceFlow id="flow31372" name="C2416 - risottomessa da cruscotto" sourceRef="gateway18022" targetRef="phase18020"/><bpmn:sequenceFlow id="flow31373" name="C1931 - Errore non rilavorabile" sourceRef="gateway18022" targetRef="phase18008"/><bpmn:sequenceFlow id="flow31374" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18022" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31375" name="C1448 - OK controlli RCU" sourceRef="gateway18022" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31366" name="C2224 - OK - Ammissibilità Hub" sourceRef="gateway18020" targetRef="phase18023"/><bpmn:sequenceFlow id="flow18023" sourceRef="phase18023" targetRef="gateway18023"/><bpmn:sequenceFlow id="flow31376" name="C1037 - Ammissibilità OK" sourceRef="gateway18023" targetRef="phase18024"/><bpmn:sequenceFlow id="flow18024" sourceRef="phase18024" targetRef="gateway18024"/><bpmn:sequenceFlow id="flow31381" name="C1063 - Esito finale Annullamento OK" sourceRef="gateway18024" targetRef="phase18027"/><bpmn:sequenceFlow id="flowEnd18027" sourceRef="phase18027" targetRef="end18027"/><bpmn:sequenceFlow id="flow31382" name="C1064 - Esito finale Annullamento KO" sourceRef="gateway18024" targetRef="phase18008"/><bpmn:sequenceFlow id="flow31383" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18024" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31384" name="C1448 - OK controlli RCU" sourceRef="gateway18024" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31385" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18024" targetRef="phase18028"/><bpmn:sequenceFlow id="flow31377" name="C1038 - Ammissibilità KO" sourceRef="gateway18023" targetRef="phase18021"/><bpmn:sequenceFlow id="flow18021" sourceRef="phase18021" targetRef="gateway18021"/><bpmn:sequenceFlow id="flow31367" name="C2416 - risottomessa da cruscotto" sourceRef="gateway18021" targetRef="phase18017"/><bpmn:sequenceFlow id="flow31368" name="C1931 - Errore non rilavorabile" sourceRef="gateway18021" targetRef="phase18008"/><bpmn:sequenceFlow id="flow31369" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18021" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31370" name="C1448 - OK controlli RCU" sourceRef="gateway18021" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31371" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18021" targetRef="phase18028"/><bpmn:sequenceFlow id="flow31378" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18023" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31379" name="C1448 - OK controlli RCU" sourceRef="gateway18023" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31380" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18023" targetRef="phase18028"/><bpmn:sequenceFlow id="flow31360" name="C2509 - Da gestire nuovo invio automatico" sourceRef="gateway18018" targetRef="phase18016"/><bpmn:sequenceFlow id="flow31361" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18018" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31362" name="C1448 - OK controlli RCU" sourceRef="gateway18018" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31363" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18018" targetRef="phase18028"/><bpmn:sequenceFlow id="flow37141" name="C2875 - OK - Inviato Annullamento al SII" sourceRef="gateway20856" targetRef="phase18023"/><bpmn:sequenceFlow id="flow37140" name="C2599 - annullamento confermato" sourceRef="gateway20855" targetRef="phase18027"/><bpmn:sequenceFlow id="flow31354" name="C2476 - KO - Ammissibilità Annullamento Hub" sourceRef="gateway18017" targetRef="phase18021"/><bpmn:sequenceFlow id="flow31356" name="C1449 - KO controlli RCU + Data decorrenza" sourceRef="gateway18017" targetRef="phase18025"/><bpmn:sequenceFlow id="flow31357" name="C1448 - OK controlli RCU" sourceRef="gateway18017" targetRef="phase18009"/><bpmn:sequenceFlow id="flow31358" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18017" targetRef="phase18028"/><bpmn:sequenceFlow id="flow37138" name="C2599 - annullamento confermato" sourceRef="gateway18017" targetRef="phase18027"/><bpmn:sequenceFlow id="flow31341" name="C1763 - Annullamento passivo dal SII" sourceRef="gateway18008" targetRef="phase18028"/><bpmn:sequenceFlow id="flow31445" name="C2221 - Commodity Elettricità" sourceRef="gateway18099" targetRef="phase18100"/><bpmn:sequenceFlow id="flow31444" name="C1019 - Inviata" sourceRef="phase18100" targetRef="phase18008"/><bpmn:sequenceFlow id="flow31337" name="C1038 - Ammissibilità KO" sourceRef="gateway18007" targetRef="phase18002"/><bpmn:sequenceFlow id="flow31330" name="C2509 - Da gestire nuovo invio automatico" sourceRef="gateway18003" targetRef="phase18000"/><bpmn:sequenceFlow id="flow37137" name="C3117 - OK pratica inserita" sourceRef="gateway20854" targetRef="phase18007"/><bpmn:sequenceFlow id="flow31320" name="C1933 - Recupero Dati KO" sourceRef="gateway17998" targetRef="phase17999"/><bpmn:sequenceFlow id="flow31321" name="C1616 - Risoluzione Errore" sourceRef="phase17999" targetRef="phase17998"/><bpmn:sequenceFlow id="flow31316" name="C2639 - Incompatibilità Non bloccante" sourceRef="gateway17996" targetRef="phase17998"/><bpmn:sequenceFlow id="flow31429" name="C2252 - Apertura Case Automatica" sourceRef="gateway18083" targetRef="phase18098"/><bpmn:sequenceFlow id="flow31442" name="C1401 - Risoluzione contrattuale OK" sourceRef="phase18098" targetRef="phase17996"/><bpmn:exclusiveGateway id="gateway18083"/><bpmn:exclusiveGateway id="gateway17995"/><bpmn:exclusiveGateway id="gateway17996"/><bpmn:exclusiveGateway id="gateway17997"/><bpmn:exclusiveGateway id="gateway17998"/><bpmn:exclusiveGateway id="gateway18001"/><bpmn:exclusiveGateway id="gateway18002"/><bpmn:exclusiveGateway id="gateway20854"/><bpmn:exclusiveGateway id="gateway18003"/><bpmn:exclusiveGateway id="gateway18005"/><bpmn:exclusiveGateway id="gateway18006"/><bpmn:exclusiveGateway id="gateway18007"/><bpmn:exclusiveGateway id="gateway18099"/><bpmn:exclusiveGateway id="gateway18008"/><bpmn:exclusiveGateway id="gateway18010"/><bpmn:exclusiveGateway id="gateway18014"/><bpmn:exclusiveGateway id="gateway18017"/><bpmn:exclusiveGateway id="gateway20855"/><bpmn:exclusiveGateway id="gateway20856"/><bpmn:exclusiveGateway id="gateway18018"/><bpmn:exclusiveGateway id="gateway18020"/><bpmn:exclusiveGateway id="gateway18022"/><bpmn:exclusiveGateway id="gateway18023"/><bpmn:exclusiveGateway id="gateway18024"/><bpmn:exclusiveGateway id="gateway18021"/><bpmn:endEvent id="end18025"/><bpmn:endEvent id="end18029"/><bpmn:endEvent id="end18028"/><bpmn:endEvent id="end18026"/><bpmn:endEvent id="end18027"/></bpmn:process><bpmndi:BPMNDiagram id="BPMNDiagram_1">
3594
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="process_458"><bpmndi:BPMNShape id="start_di" bpmnElement="start" ><dc:Bounds x="150" y="-18.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18083_di" bpmnElement="phase18083" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="286" y="-40.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18083_di" bpmnElement="gateway18083" isMarkerVisible="true"><dc:Bounds x="496" y="-25.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase17995_di" bpmnElement="phase17995" bioc:stroke="#0d4372" bioc:fill="#bbdefb" color:background-color="#bbdefb" color:border-color="#0d4372"><dc:Bounds x="646" y="-40.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway17995_di" bpmnElement="gateway17995" isMarkerVisible="true"><dc:Bounds x="856" y="-25.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18025_di" bpmnElement="phase18025" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="1006" y="-40.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="end18025_di" bpmnElement="end18025" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="1216" y="-18.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase17996_di" bpmnElement="phase17996" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="1006" y="110.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway17996_di" bpmnElement="gateway17996" isMarkerVisible="true"><dc:Bounds x="1216" y="125.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase17997_di" bpmnElement="phase17997" ><dc:Bounds x="1366" y="110.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway17997_di" bpmnElement="gateway17997" isMarkerVisible="true"><dc:Bounds x="1576" y="125.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18029_di" bpmnElement="phase18029" bioc:stroke="#831311" bioc:fill="#ffcdd2" color:background-color="#ffcdd2" color:border-color="#831311"><dc:Bounds x="1726" y="110.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="end18029_di" bpmnElement="end18029" bioc:stroke="#831311" bioc:fill="#ffcdd2" color:background-color="#ffcdd2" color:border-color="#831311"><dc:Bounds x="1936" y="132.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase17998_di" bpmnElement="phase17998" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="1366" y="260.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway17998_di" bpmnElement="gateway17998" isMarkerVisible="true"><dc:Bounds x="1576" y="275.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18000_di" bpmnElement="phase18000" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="1726" y="260.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18001_di" bpmnElement="phase18001" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="1936" y="260.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18001_di" bpmnElement="gateway18001" isMarkerVisible="true"><dc:Bounds x="2146" y="275.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18002_di" bpmnElement="phase18002" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="2296" y="260.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18002_di" bpmnElement="gateway18002" isMarkerVisible="true"><dc:Bounds x="2506" y="275.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18028_di" bpmnElement="phase18028" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="2656" y="410.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="end18028_di" bpmnElement="end18028" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="2866" y="432.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase20854_di" bpmnElement="phase20854" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="2296" y="560.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway20854_di" bpmnElement="gateway20854" isMarkerVisible="true"><dc:Bounds x="2506" y="575.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18003_di" bpmnElement="phase18003" ><dc:Bounds x="2656" y="560.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18003_di" bpmnElement="gateway18003" isMarkerVisible="true"><dc:Bounds x="2866" y="575.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18004_di" bpmnElement="phase18004" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="3016" y="560.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18005_di" bpmnElement="phase18005" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="3226" y="560.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18005_di" bpmnElement="gateway18005" isMarkerVisible="true"><dc:Bounds x="3436" y="575.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18006_di" bpmnElement="phase18006" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="3586" y="560.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18006_di" bpmnElement="gateway18006" isMarkerVisible="true"><dc:Bounds x="3796" y="575.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18007_di" bpmnElement="phase18007" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="3586" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18007_di" bpmnElement="gateway18007" isMarkerVisible="true"><dc:Bounds x="3796" y="725.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18099_di" bpmnElement="phase18099" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="3946" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18099_di" bpmnElement="gateway18099" isMarkerVisible="true"><dc:Bounds x="4156" y="725.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18008_di" bpmnElement="phase18008" bioc:stroke="#0d4372" bioc:fill="#bbdefb" color:background-color="#bbdefb" color:border-color="#0d4372"><dc:Bounds x="4306" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18008_di" bpmnElement="gateway18008" isMarkerVisible="true"><dc:Bounds x="4516" y="725.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18009_di" bpmnElement="phase18009" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="4666" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18010_di" bpmnElement="phase18010" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="4876" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18010_di" bpmnElement="gateway18010" isMarkerVisible="true"><dc:Bounds x="5086" y="725.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18012_di" bpmnElement="phase18012" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="5236" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18013_di" bpmnElement="phase18013" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="5446" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18014_di" bpmnElement="phase18014" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="5656" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18014_di" bpmnElement="gateway18014" isMarkerVisible="true"><dc:Bounds x="5866" y="725.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18026_di" bpmnElement="phase18026" bioc:stroke="#205022" bioc:fill="#c8e6c9" color:background-color="#c8e6c9" color:border-color="#205022"><dc:Bounds x="6016" y="710.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="end18026_di" bpmnElement="end18026" bioc:stroke="#205022" bioc:fill="#c8e6c9" color:background-color="#c8e6c9" color:border-color="#205022"><dc:Bounds x="6226" y="732.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18015_di" bpmnElement="phase18015" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="6016" y="860.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18011_di" bpmnElement="phase18011" ><dc:Bounds x="5236" y="1010.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18016_di" bpmnElement="phase18016" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="4666" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18017_di" bpmnElement="phase18017" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="4876" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18017_di" bpmnElement="gateway18017" isMarkerVisible="true"><dc:Bounds x="5086" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase20855_di" bpmnElement="phase20855" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="5236" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway20855_di" bpmnElement="gateway20855" isMarkerVisible="true"><dc:Bounds x="5446" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase20856_di" bpmnElement="phase20856" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="5596" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway20856_di" bpmnElement="gateway20856" isMarkerVisible="true"><dc:Bounds x="5806" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18018_di" bpmnElement="phase18018" ><dc:Bounds x="5956" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18018_di" bpmnElement="gateway18018" isMarkerVisible="true"><dc:Bounds x="6166" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18019_di" bpmnElement="phase18019" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="6316" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18020_di" bpmnElement="phase18020" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="6526" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18020_di" bpmnElement="gateway18020" isMarkerVisible="true"><dc:Bounds x="6736" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18022_di" bpmnElement="phase18022" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="6886" y="1160.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18022_di" bpmnElement="gateway18022" isMarkerVisible="true"><dc:Bounds x="7096" y="1175.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18023_di" bpmnElement="phase18023" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="6886" y="1310.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18023_di" bpmnElement="gateway18023" isMarkerVisible="true"><dc:Bounds x="7096" y="1325.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18024_di" bpmnElement="phase18024" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="7246" y="1310.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18024_di" bpmnElement="gateway18024" isMarkerVisible="true"><dc:Bounds x="7456" y="1325.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18027_di" bpmnElement="phase18027" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="7606" y="1310.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="end18027_di" bpmnElement="end18027" bioc:stroke="#6b3c00" bioc:fill="#ffe0b2" color:background-color="#ffe0b2" color:border-color="#6b3c00"><dc:Bounds x="7816" y="1332.0" width="36" height="36"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18021_di" bpmnElement="phase18021" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="7246" y="1460.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="gateway18021_di" bpmnElement="gateway18021" isMarkerVisible="true"><dc:Bounds x="7456" y="1475.0" width="50" height="50"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18100_di" bpmnElement="phase18100" ><dc:Bounds x="4306" y="1610.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase17999_di" bpmnElement="phase17999" ><dc:Bounds x="1726" y="1760.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNShape id="phase18098_di" bpmnElement="phase18098" bioc:stroke="#5b176d" bioc:fill="#e1bee7" color:background-color="#e1bee7" color:border-color="#5b176d"><dc:Bounds x="646" y="1910.0" width="110" height="80"/></bpmndi:BPMNShape><bpmndi:BPMNEdge id="flowStart_di" bpmnElement="flowStart"><di:waypoint x="186" y="0.0" /><di:waypoint x="286" y="0.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18083_di" bpmnElement="flow18083"><di:waypoint x="396" y="0.0" /><di:waypoint x="496" y="0.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31428_di" bpmnElement="flow31428"><di:waypoint x="546" y="0.0" /><di:waypoint x="646" y="0.0" /><bpmndi:BPMNLabel><dc:Bounds x="546" y="5.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow17995_di" bpmnElement="flow17995"><di:waypoint x="756" y="0.0" /><di:waypoint x="856" y="0.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31312_di" bpmnElement="flow31312"><di:waypoint x="906" y="0.0" /><di:waypoint x="1006" y="0.0" /><bpmndi:BPMNLabel><dc:Bounds x="906" y="5.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flowEnd18025_di" bpmnElement="flowEnd18025"><di:waypoint x="1116" y="0.0" /><di:waypoint x="1216" y="0.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31313_di" bpmnElement="flow31313"><di:waypoint x="881.0" y="25.0" /><di:waypoint x="881.0" y="150.0" /><di:waypoint x="1006" y="150.0" /><bpmndi:BPMNLabel><dc:Bounds x="881.0" y="155.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow17996_di" bpmnElement="flow17996"><di:waypoint x="1116" y="150.0" /><di:waypoint x="1216" y="150.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31314_di" bpmnElement="flow31314"><di:waypoint x="1266" y="150.0" /><di:waypoint x="1366" y="150.0" /><bpmndi:BPMNLabel><dc:Bounds x="1266" y="155.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow17997_di" bpmnElement="flow17997"><di:waypoint x="1476" y="150.0" /><di:waypoint x="1576" y="150.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31317_di" bpmnElement="flow31317"><di:waypoint x="1626" y="150.0" /><di:waypoint x="1726" y="150.0" /><bpmndi:BPMNLabel><dc:Bounds x="1626" y="155.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flowEnd18029_di" bpmnElement="flowEnd18029"><di:waypoint x="1836" y="150.0" /><di:waypoint x="1936" y="150.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31318_di" bpmnElement="flow31318" bioc:stroke="#2a25a4" color:border-color="#2a25a4"><di:waypoint x="1601.0" y="175.0" /><di:waypoint x="1601.0" y="229.0" /><di:waypoint x="976" y="229.0" /><di:waypoint x="976" y="150.01" /><bpmndi:BPMNLabel><dc:Bounds x="1601.0" y="180.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31315_di" bpmnElement="flow31315"><di:waypoint x="1241.0" y="175.0" /><di:waypoint x="1241.0" y="300.0" /><di:waypoint x="1366" y="300.0" /><bpmndi:BPMNLabel><dc:Bounds x="1241.0" y="305.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow17998_di" bpmnElement="flow17998"><di:waypoint x="1476" y="300.0" /><di:waypoint x="1576" y="300.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31319_di" bpmnElement="flow31319"><di:waypoint x="1626" y="300.0" /><di:waypoint x="1726" y="300.0" /><bpmndi:BPMNLabel><dc:Bounds x="1626" y="305.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31322_di" bpmnElement="flow31322"><di:waypoint x="1836" y="300.0" /><di:waypoint x="1936" y="300.0" /><bpmndi:BPMNLabel><dc:Bounds x="1836" y="305.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18001_di" bpmnElement="flow18001"><di:waypoint x="2046" y="300.0" /><di:waypoint x="2146" y="300.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31323_di" bpmnElement="flow31323"><di:waypoint x="2196" y="300.0" /><di:waypoint x="2296" y="300.0" /><bpmndi:BPMNLabel><dc:Bounds x="2196" y="305.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18002_di" bpmnElement="flow18002"><di:waypoint x="2406" y="300.0" /><di:waypoint x="2506" y="300.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31326_di" bpmnElement="flow31326" bioc:stroke="#0194b5" color:border-color="#0194b5"><di:waypoint x="2531.0" y="325.0" /><di:waypoint x="2531.0" y="383.0" /><di:waypoint x="1906" y="383.0" /><di:waypoint x="1906" y="300.01" /><bpmndi:BPMNLabel><dc:Bounds x="2531.0" y="330.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31327_di" bpmnElement="flow31327" bioc:stroke="#b3f345" color:border-color="#b3f345"><di:waypoint x="2531.0" y="325.0" /><di:waypoint x="2531.0" y="383.0" /><di:waypoint x="1696" y="383.0" /><di:waypoint x="1696" y="150.01" /><bpmndi:BPMNLabel><dc:Bounds x="1696" y="383.0" width="31" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31328_di" bpmnElement="flow31328"><di:waypoint x="2531.0" y="325.0" /><di:waypoint x="2531.0" y="450.0" /><di:waypoint x="2656" y="450.0" /><bpmndi:BPMNLabel><dc:Bounds x="2531.0" y="455.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flowEnd18028_di" bpmnElement="flowEnd18028"><di:waypoint x="2766" y="450.0" /><di:waypoint x="2866" y="450.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31324_di" bpmnElement="flow31324"><di:waypoint x="2171.0" y="325.0" /><di:waypoint x="2171.0" y="600.0" /><di:waypoint x="2296" y="600.0" /><bpmndi:BPMNLabel><dc:Bounds x="2171.0" y="605.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow20854_di" bpmnElement="flow20854"><di:waypoint x="2406" y="600.0" /><di:waypoint x="2506" y="600.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31325_di" bpmnElement="flow31325"><di:waypoint x="2556" y="600.0" /><di:waypoint x="2656" y="600.0" /><bpmndi:BPMNLabel><dc:Bounds x="2556" y="605.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18003_di" bpmnElement="flow18003"><di:waypoint x="2766" y="600.0" /><di:waypoint x="2866" y="600.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31329_di" bpmnElement="flow31329"><di:waypoint x="2916" y="600.0" /><di:waypoint x="3016" y="600.0" /><bpmndi:BPMNLabel><dc:Bounds x="2916" y="605.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31331_di" bpmnElement="flow31331"><di:waypoint x="3126" y="600.0" /><di:waypoint x="3226" y="600.0" /><bpmndi:BPMNLabel><dc:Bounds x="3126" y="605.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18005_di" bpmnElement="flow18005"><di:waypoint x="3336" y="600.0" /><di:waypoint x="3436" y="600.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31332_di" bpmnElement="flow31332"><di:waypoint x="3486" y="600.0" /><di:waypoint x="3586" y="600.0" /><bpmndi:BPMNLabel><dc:Bounds x="3486" y="605.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18006_di" bpmnElement="flow18006"><di:waypoint x="3696" y="600.0" /><di:waypoint x="3796" y="600.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31334_di" bpmnElement="flow31334" bioc:stroke="#7a1a12" color:border-color="#7a1a12"><di:waypoint x="3821.0" y="625.0" /><di:waypoint x="3821.0" y="691.0" /><di:waypoint x="3196" y="691.0" /><di:waypoint x="3196" y="600.01" /><bpmndi:BPMNLabel><dc:Bounds x="3821.0" y="630.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31335_di" bpmnElement="flow31335" bioc:stroke="#4ee1ec" color:border-color="#4ee1ec"><di:waypoint x="3821.0" y="625.0" /><di:waypoint x="3821.0" y="691.0" /><di:waypoint x="1696" y="691.0" /><di:waypoint x="1696" y="150.01" /><bpmndi:BPMNLabel><dc:Bounds x="1696" y="691.0" width="31" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31333_di" bpmnElement="flow31333"><di:waypoint x="3461.0" y="625.0" /><di:waypoint x="3461.0" y="750.0" /><di:waypoint x="3586" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="3461.0" y="755.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18007_di" bpmnElement="flow18007"><di:waypoint x="3696" y="750.0" /><di:waypoint x="3796" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31336_di" bpmnElement="flow31336"><di:waypoint x="3846" y="750.0" /><di:waypoint x="3946" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="3846" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18099_di" bpmnElement="flow18099"><di:waypoint x="4056" y="750.0" /><di:waypoint x="4156" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31443_di" bpmnElement="flow31443"><di:waypoint x="4206" y="750.0" /><di:waypoint x="4306" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="4206" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18008_di" bpmnElement="flow18008"><di:waypoint x="4416" y="750.0" /><di:waypoint x="4516" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31338_di" bpmnElement="flow31338"><di:waypoint x="4566" y="750.0" /><di:waypoint x="4666" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="4566" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31342_di" bpmnElement="flow31342"><di:waypoint x="4776" y="750.0" /><di:waypoint x="4876" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="4776" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18010_di" bpmnElement="flow18010"><di:waypoint x="4986" y="750.0" /><di:waypoint x="5086" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31343_di" bpmnElement="flow31343"><di:waypoint x="5136" y="750.0" /><di:waypoint x="5236" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="5136" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31346_di" bpmnElement="flow31346"><di:waypoint x="5346" y="750.0" /><di:waypoint x="5446" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="5346" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31347_di" bpmnElement="flow31347"><di:waypoint x="5556" y="750.0" /><di:waypoint x="5656" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="5556" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18014_di" bpmnElement="flow18014"><di:waypoint x="5766" y="750.0" /><di:waypoint x="5866" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31348_di" bpmnElement="flow31348"><di:waypoint x="5916" y="750.0" /><di:waypoint x="6016" y="750.0" /><bpmndi:BPMNLabel><dc:Bounds x="5916" y="755.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flowEnd18026_di" bpmnElement="flowEnd18026"><di:waypoint x="6126" y="750.0" /><di:waypoint x="6226" y="750.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31349_di" bpmnElement="flow31349" bioc:stroke="#c365c0" color:border-color="#c365c0"><di:waypoint x="5891.0" y="775.0" /><di:waypoint x="5891.0" y="845.0" /><di:waypoint x="5986" y="845.0" /><di:waypoint x="5986" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="5891.0" y="780.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31350_di" bpmnElement="flow31350"><di:waypoint x="5891.0" y="775.0" /><di:waypoint x="5891.0" y="900.0" /><di:waypoint x="6016" y="900.0" /><bpmndi:BPMNLabel><dc:Bounds x="5891.0" y="905.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31351_di" bpmnElement="flow31351" bioc:stroke="#288096" color:border-color="#288096"><di:waypoint x="6071.0" y="940.0" /><di:waypoint x="6071.0" y="1014.0" /><di:waypoint x="5986" y="1014.0" /><di:waypoint x="5986" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="6071.0" y="945.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31344_di" bpmnElement="flow31344"><di:waypoint x="5111.0" y="775.0" /><di:waypoint x="5111.0" y="1050.0" /><di:waypoint x="5236" y="1050.0" /><bpmndi:BPMNLabel><dc:Bounds x="5111.0" y="1055.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31345_di" bpmnElement="flow31345" bioc:stroke="#28135a" color:border-color="#28135a"><di:waypoint x="5291.0" y="1090.0" /><di:waypoint x="5291.0" y="1168.0" /><di:waypoint x="5206" y="1168.0" /><di:waypoint x="5206" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="5291.0" y="1095.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31339_di" bpmnElement="flow31339" bioc:stroke="#2dd981" color:border-color="#2dd981"><di:waypoint x="4541.0" y="775.0" /><di:waypoint x="4541.0" y="853.0" /><di:waypoint x="976" y="853.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="4541.0" y="780.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31340_di" bpmnElement="flow31340"><di:waypoint x="4541.0" y="775.0" /><di:waypoint x="4541.0" y="1200.0" /><di:waypoint x="4666" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="4541.0" y="1205.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31352_di" bpmnElement="flow31352"><di:waypoint x="4776" y="1200.0" /><di:waypoint x="4876" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="4776" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18017_di" bpmnElement="flow18017"><di:waypoint x="4986" y="1200.0" /><di:waypoint x="5086" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31353_di" bpmnElement="flow31353"><di:waypoint x="5136" y="1200.0" /><di:waypoint x="5236" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="5136" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow20855_di" bpmnElement="flow20855"><di:waypoint x="5346" y="1200.0" /><di:waypoint x="5446" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow37139_di" bpmnElement="flow37139"><di:waypoint x="5496" y="1200.0" /><di:waypoint x="5596" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="5496" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow20856_di" bpmnElement="flow20856"><di:waypoint x="5706" y="1200.0" /><di:waypoint x="5806" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31355_di" bpmnElement="flow31355"><di:waypoint x="5856" y="1200.0" /><di:waypoint x="5956" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="5856" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18018_di" bpmnElement="flow18018"><di:waypoint x="6066" y="1200.0" /><di:waypoint x="6166" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31359_di" bpmnElement="flow31359"><di:waypoint x="6216" y="1200.0" /><di:waypoint x="6316" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="6216" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31364_di" bpmnElement="flow31364"><di:waypoint x="6426" y="1200.0" /><di:waypoint x="6526" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="6426" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18020_di" bpmnElement="flow18020"><di:waypoint x="6636" y="1200.0" /><di:waypoint x="6736" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31365_di" bpmnElement="flow31365"><di:waypoint x="6786" y="1200.0" /><di:waypoint x="6886" y="1200.0" /><bpmndi:BPMNLabel><dc:Bounds x="6786" y="1205.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18022_di" bpmnElement="flow18022"><di:waypoint x="6996" y="1200.0" /><di:waypoint x="7096" y="1200.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31372_di" bpmnElement="flow31372" bioc:stroke="#cac043" color:border-color="#cac043"><di:waypoint x="7121.0" y="1225.0" /><di:waypoint x="7121.0" y="1307.0" /><di:waypoint x="6496" y="1307.0" /><di:waypoint x="6496" y="1200.01" /><bpmndi:BPMNLabel><dc:Bounds x="7121.0" y="1230.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31373_di" bpmnElement="flow31373" bioc:stroke="#b9de0e" color:border-color="#b9de0e"><di:waypoint x="7121.0" y="1225.0" /><di:waypoint x="7121.0" y="1307.0" /><di:waypoint x="4276" y="1307.0" /><di:waypoint x="4276" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4276" y="1307.0" width="31" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31374_di" bpmnElement="flow31374" bioc:stroke="#e3fd5f" color:border-color="#e3fd5f"><di:waypoint x="7121.0" y="1225.0" /><di:waypoint x="7121.0" y="1307.0" /><di:waypoint x="976" y="1307.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="976" y="1307.0" width="42" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31375_di" bpmnElement="flow31375" bioc:stroke="#3d5885" color:border-color="#3d5885"><di:waypoint x="7121.0" y="1225.0" /><di:waypoint x="7121.0" y="1307.0" /><di:waypoint x="4636" y="1307.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1307.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31366_di" bpmnElement="flow31366"><di:waypoint x="6761.0" y="1225.0" /><di:waypoint x="6761.0" y="1350.0" /><di:waypoint x="6886" y="1350.0" /><bpmndi:BPMNLabel><dc:Bounds x="6761.0" y="1355.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18023_di" bpmnElement="flow18023"><di:waypoint x="6996" y="1350.0" /><di:waypoint x="7096" y="1350.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31376_di" bpmnElement="flow31376"><di:waypoint x="7146" y="1350.0" /><di:waypoint x="7246" y="1350.0" /><bpmndi:BPMNLabel><dc:Bounds x="7146" y="1355.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18024_di" bpmnElement="flow18024"><di:waypoint x="7356" y="1350.0" /><di:waypoint x="7456" y="1350.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31381_di" bpmnElement="flow31381"><di:waypoint x="7506" y="1350.0" /><di:waypoint x="7606" y="1350.0" /><bpmndi:BPMNLabel><dc:Bounds x="7506" y="1355.0" width="100" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flowEnd18027_di" bpmnElement="flowEnd18027"><di:waypoint x="7716" y="1350.0" /><di:waypoint x="7816" y="1350.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31382_di" bpmnElement="flow31382" bioc:stroke="#510201" color:border-color="#510201"><di:waypoint x="7481.0" y="1375.0" /><di:waypoint x="7481.0" y="1461.0" /><di:waypoint x="4276" y="1461.0" /><di:waypoint x="4276" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="7481.0" y="1380.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31383_di" bpmnElement="flow31383" bioc:stroke="#1006f4" color:border-color="#1006f4"><di:waypoint x="7481.0" y="1375.0" /><di:waypoint x="7481.0" y="1461.0" /><di:waypoint x="976" y="1461.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="976" y="1461.0" width="42" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31384_di" bpmnElement="flow31384" bioc:stroke="#6b96da" color:border-color="#6b96da"><di:waypoint x="7481.0" y="1375.0" /><di:waypoint x="7481.0" y="1461.0" /><di:waypoint x="4636" y="1461.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1461.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31385_di" bpmnElement="flow31385" bioc:stroke="#94a66d" color:border-color="#94a66d"><di:waypoint x="7481.0" y="1375.0" /><di:waypoint x="7481.0" y="1461.0" /><di:waypoint x="2626" y="1461.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="1461.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31377_di" bpmnElement="flow31377"><di:waypoint x="7121.0" y="1375.0" /><di:waypoint x="7121.0" y="1500.0" /><di:waypoint x="7246" y="1500.0" /><bpmndi:BPMNLabel><dc:Bounds x="7121.0" y="1505.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow18021_di" bpmnElement="flow18021"><di:waypoint x="7356" y="1500.0" /><di:waypoint x="7456" y="1500.0" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31367_di" bpmnElement="flow31367" bioc:stroke="#99ddeb" color:border-color="#99ddeb"><di:waypoint x="7481.0" y="1525.0" /><di:waypoint x="7481.0" y="1615.0" /><di:waypoint x="4846" y="1615.0" /><di:waypoint x="4846" y="1200.01" /><bpmndi:BPMNLabel><dc:Bounds x="7481.0" y="1530.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31368_di" bpmnElement="flow31368" bioc:stroke="#6e37f9" color:border-color="#6e37f9"><di:waypoint x="7481.0" y="1525.0" /><di:waypoint x="7481.0" y="1615.0" /><di:waypoint x="4276" y="1615.0" /><di:waypoint x="4276" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4276" y="1615.0" width="31" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31369_di" bpmnElement="flow31369" bioc:stroke="#56defc" color:border-color="#56defc"><di:waypoint x="7481.0" y="1525.0" /><di:waypoint x="7481.0" y="1615.0" /><di:waypoint x="976" y="1615.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="976" y="1615.0" width="42" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31370_di" bpmnElement="flow31370" bioc:stroke="#9a3cae" color:border-color="#9a3cae"><di:waypoint x="7481.0" y="1525.0" /><di:waypoint x="7481.0" y="1615.0" /><di:waypoint x="4636" y="1615.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1615.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31371_di" bpmnElement="flow31371" bioc:stroke="#132fae" color:border-color="#132fae"><di:waypoint x="7481.0" y="1525.0" /><di:waypoint x="7481.0" y="1615.0" /><di:waypoint x="2626" y="1615.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="1615.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31378_di" bpmnElement="flow31378" bioc:stroke="#e055c0" color:border-color="#e055c0"><di:waypoint x="7121.0" y="1375.0" /><di:waypoint x="7121.0" y="1465.0" /><di:waypoint x="976" y="1465.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="7121.0" y="1380.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31379_di" bpmnElement="flow31379" bioc:stroke="#aa7f6e" color:border-color="#aa7f6e"><di:waypoint x="7121.0" y="1375.0" /><di:waypoint x="7121.0" y="1465.0" /><di:waypoint x="4636" y="1465.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1465.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31380_di" bpmnElement="flow31380" bioc:stroke="#161cf9" color:border-color="#161cf9"><di:waypoint x="7121.0" y="1375.0" /><di:waypoint x="7121.0" y="1465.0" /><di:waypoint x="2626" y="1465.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="1465.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31360_di" bpmnElement="flow31360" bioc:stroke="#93a8d9" color:border-color="#93a8d9"><di:waypoint x="6191.0" y="1225.0" /><di:waypoint x="6191.0" y="1315.0" /><di:waypoint x="4636" y="1315.0" /><di:waypoint x="4636" y="1200.01" /><bpmndi:BPMNLabel><dc:Bounds x="6191.0" y="1230.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31361_di" bpmnElement="flow31361" bioc:stroke="#ef091b" color:border-color="#ef091b"><di:waypoint x="6191.0" y="1225.0" /><di:waypoint x="6191.0" y="1315.0" /><di:waypoint x="976" y="1315.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="976" y="1315.0" width="42" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31362_di" bpmnElement="flow31362" bioc:stroke="#4a32de" color:border-color="#4a32de"><di:waypoint x="6191.0" y="1225.0" /><di:waypoint x="6191.0" y="1315.0" /><di:waypoint x="4636" y="1315.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1315.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31363_di" bpmnElement="flow31363" bioc:stroke="#ab0726" color:border-color="#ab0726"><di:waypoint x="6191.0" y="1225.0" /><di:waypoint x="6191.0" y="1315.0" /><di:waypoint x="2626" y="1315.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="1315.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow37141_di" bpmnElement="flow37141" bioc:stroke="#3d6859" color:border-color="#3d6859"><di:waypoint x="5831.0" y="1225.0" /><di:waypoint x="5831.0" y="1315.0" /><di:waypoint x="6856" y="1315.0" /><di:waypoint x="6856" y="1350.01" /><bpmndi:BPMNLabel><dc:Bounds x="5831.0" y="1230.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow37140_di" bpmnElement="flow37140" bioc:stroke="#d83824" color:border-color="#d83824"><di:waypoint x="5471.0" y="1225.0" /><di:waypoint x="5471.0" y="1315.0" /><di:waypoint x="7576" y="1315.0" /><di:waypoint x="7576" y="1350.01" /><bpmndi:BPMNLabel><dc:Bounds x="5471.0" y="1230.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31354_di" bpmnElement="flow31354" bioc:stroke="#ee49e5" color:border-color="#ee49e5"><di:waypoint x="5111.0" y="1225.0" /><di:waypoint x="5111.0" y="1315.0" /><di:waypoint x="7216" y="1315.0" /><di:waypoint x="7216" y="1500.01" /><bpmndi:BPMNLabel><dc:Bounds x="5111.0" y="1230.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31356_di" bpmnElement="flow31356" bioc:stroke="#cf7e9d" color:border-color="#cf7e9d"><di:waypoint x="5111.0" y="1225.0" /><di:waypoint x="5111.0" y="1315.0" /><di:waypoint x="976" y="1315.0" /><di:waypoint x="976" y="0.01" /><bpmndi:BPMNLabel><dc:Bounds x="976" y="1315.0" width="42" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31357_di" bpmnElement="flow31357" bioc:stroke="#388f9f" color:border-color="#388f9f"><di:waypoint x="5111.0" y="1225.0" /><di:waypoint x="5111.0" y="1315.0" /><di:waypoint x="4636" y="1315.0" /><di:waypoint x="4636" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4636" y="1315.0" width="24" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31358_di" bpmnElement="flow31358" bioc:stroke="#1391b5" color:border-color="#1391b5"><di:waypoint x="5111.0" y="1225.0" /><di:waypoint x="5111.0" y="1315.0" /><di:waypoint x="2626" y="1315.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="1315.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow37138_di" bpmnElement="flow37138" bioc:stroke="#cb6aba" color:border-color="#cb6aba"><di:waypoint x="5111.0" y="1225.0" /><di:waypoint x="5111.0" y="1315.0" /><di:waypoint x="7576" y="1315.0" /><di:waypoint x="7576" y="1350.01" /><bpmndi:BPMNLabel><dc:Bounds x="7576" y="1315.0" width="31" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31341_di" bpmnElement="flow31341" bioc:stroke="#359707" color:border-color="#359707"><di:waypoint x="4541.0" y="775.0" /><di:waypoint x="4541.0" y="865.0" /><di:waypoint x="2626" y="865.0" /><di:waypoint x="2626" y="450.01" /><bpmndi:BPMNLabel><dc:Bounds x="2626" y="865.0" width="36" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31445_di" bpmnElement="flow31445"><di:waypoint x="4181.0" y="775.0" /><di:waypoint x="4181.0" y="1650.0" /><di:waypoint x="4306" y="1650.0" /><bpmndi:BPMNLabel><dc:Bounds x="4181.0" y="1655.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31444_di" bpmnElement="flow31444" bioc:stroke="#8f0608" color:border-color="#8f0608"><di:waypoint x="4361.0" y="1690.0" /><di:waypoint x="4361.0" y="1784.0" /><di:waypoint x="4276" y="1784.0" /><di:waypoint x="4276" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="4361.0" y="1695.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31337_di" bpmnElement="flow31337" bioc:stroke="#c5eb56" color:border-color="#c5eb56"><di:waypoint x="3821.0" y="775.0" /><di:waypoint x="3821.0" y="869.0" /><di:waypoint x="2266" y="869.0" /><di:waypoint x="2266" y="300.01" /><bpmndi:BPMNLabel><dc:Bounds x="3821.0" y="780.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31330_di" bpmnElement="flow31330" bioc:stroke="#edbdfb" color:border-color="#edbdfb"><di:waypoint x="2891.0" y="625.0" /><di:waypoint x="2891.0" y="719.0" /><di:waypoint x="1696" y="719.0" /><di:waypoint x="1696" y="300.01" /><bpmndi:BPMNLabel><dc:Bounds x="2891.0" y="630.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow37137_di" bpmnElement="flow37137" bioc:stroke="#0f2695" color:border-color="#0f2695"><di:waypoint x="2531.0" y="625.0" /><di:waypoint x="2531.0" y="719.0" /><di:waypoint x="3556" y="719.0" /><di:waypoint x="3556" y="750.01" /><bpmndi:BPMNLabel><dc:Bounds x="2531.0" y="630.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31320_di" bpmnElement="flow31320"><di:waypoint x="1601.0" y="325.0" /><di:waypoint x="1601.0" y="1800.0" /><di:waypoint x="1726" y="1800.0" /><bpmndi:BPMNLabel><dc:Bounds x="1601.0" y="1805.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31321_di" bpmnElement="flow31321" bioc:stroke="#2fa99b" color:border-color="#2fa99b"><di:waypoint x="1781.0" y="1840.0" /><di:waypoint x="1781.0" y="1938.0" /><di:waypoint x="1336" y="1938.0" /><di:waypoint x="1336" y="300.01" /><bpmndi:BPMNLabel><dc:Bounds x="1781.0" y="1845.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31316_di" bpmnElement="flow31316" bioc:stroke="#e7411c" color:border-color="#e7411c"><di:waypoint x="1241.0" y="175.0" /><di:waypoint x="1241.0" y="273.0" /><di:waypoint x="1336" y="273.0" /><di:waypoint x="1336" y="300.01" /><bpmndi:BPMNLabel><dc:Bounds x="1241.0" y="180.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31429_di" bpmnElement="flow31429"><di:waypoint x="521.0" y="25.0" /><di:waypoint x="521.0" y="1950.0" /><di:waypoint x="646" y="1950.0" /><bpmndi:BPMNLabel><dc:Bounds x="521.0" y="1955.0" width="125.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="flow31442_di" bpmnElement="flow31442" bioc:stroke="#ae68a9" color:border-color="#ae68a9"><di:waypoint x="701.0" y="1990.0" /><di:waypoint x="701.0" y="2092.0" /><di:waypoint x="976" y="2092.0" /><di:waypoint x="976" y="150.01" /><bpmndi:BPMNLabel><dc:Bounds x="701.0" y="1995.0" width="0.0" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNEdge></bpmndi:BPMNPlane> </bpmndi:BPMNDiagram></bpmn:definitions>]]></field>
3595
- <field name="can_update_pod_supply_state">True</field>
3596
- <field name="show_invoice_tab">False</field>
3597
- <field name="use_sla">False</field>
3598
- <field name="wf_code">CC01</field>
3599
- </record>
3600
- <record id="symple_triplet_phase_A1001___Creazione_Case_di_Risoluzione_Contrattuale_Automatica" model="symple.triplet.phase">
3601
- <field name="active">True</field>
3602
- <field name="child_case">False</field>
3603
- <field name="code"># Available variables:
3604
- # - case_id: the case that just reached this phase
3605
- # - request: allows you to make HTTP requests (method, url, headers, data)
3606
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3607
- # - json_load: allows you to use JSON.load to convert a json into an object
3608
- # - env: Odoo Environment on which the action is triggered
3609
- # - time, datetime, dateutil, timezone: useful Python libraries
3610
- # - float_compare: Odoo function to compare floats based on specific precisions
3611
- # - ValidationError: Warning Exception to use with raise
3612
- # - Command: x2Many commands namespace
3613
- # - OrderedDict: ordered dictionaries
3614
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3615
- # (line = case id, func = phase name)
3616
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3617
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3618
- # To return a result, assign: result = {...}
3619
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3620
- # phase result will not be set.
3621
-
3622
-
3623
- logs = []
3624
-
3625
-
3626
- def main():
3627
- if not case_id.service_point_ids:
3628
- raise ValidationError(
3629
- "Il case è stato aperto senza service point"
3630
- )
3631
-
3632
- sp = case_id.service_point_ids[0]
3633
-
3634
- if sp.state != "active":
3635
- raise ValidationError("Il service point non è in stato attivo.")
3636
-
3637
- return "OK"
3638
-
3639
-
3640
- try:
3641
- result = main()
3642
-
3643
-
3644
- except Exception as e:
3645
- logs.append({"message": str(e), "traceback": format_exc()})
3646
- case_id.write(
3647
- {"error_message": "Errore durante l'esecuzione della fase: {}".format(str(e))}
3648
- )
3649
-
3650
- if logs:
3651
- log(json_dumps(logs))</field>
3652
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3653
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
3654
- <field name="is_a_postalizer_phase">False</field>
3655
- <field name="is_compute_refund">False</field>
3656
- <field name="is_dl">False</field>
3657
- <field name="is_needs_child_case">False</field>
3658
- <field name="is_pick_refund_template">False</field>
3659
- <field name="is_process_managed">False</field>
3660
- <field name="is_quote_accepted">False</field>
3661
- <field name="is_quote_sent">False</field>
3662
- <field name="is_timeout">False</field>
3663
- <field name="is_voidable">False</field>
3664
- <field name="name">A1001 – Creazione Case di Risoluzione Contrattuale Automatica</field>
3665
- <field name="set_result_automatically">from_code</field>
3666
- </record>
3667
- <record id="symple_triplet_phase_result_C2252_-_Apertura_Case_Automatica_C" model="symple.triplet.phase.result">
3668
- <field name="active">True</field>
3669
- <field name="has_message">False</field>
3670
- <field name="is_annulment">False</field>
3671
- <field name="is_dl_solicitation_result">False</field>
3672
- <field name="is_hidden">False</field>
3673
- <field name="is_quote_expired">False</field>
3674
- <field name="name">C2252 - Apertura Case Automatica</field>
3675
- <field name="next_phase_id" ref="symple_triplet_phase_A1001___Creazione_Case_di_Risoluzione_Contrattuale_Automatica"/>
3676
- <field name="state_code">C</field>
3677
- <field name="wizard_result">SUCCESS</field>
3678
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case')])]"/>
3679
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3680
- </record>
3681
- <record id="symple_triplet_phase_result_C1401_-_Risoluzione_contrattuale_OK_E-CC01-0001-03" model="symple.triplet.phase.result">
3682
- <field name="active">True</field>
3683
- <field name="has_message">False</field>
3684
- <field name="is_annulment">False</field>
3685
- <field name="is_dl_solicitation_result">False</field>
3686
- <field name="is_hidden">False</field>
3687
- <field name="is_quote_expired">False</field>
3688
- <field name="name">C1401 - Risoluzione contrattuale OK</field>
3689
- <field name="next_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
3690
- <field name="state_code">E-CC01-0001-03</field>
3691
- <field name="wizard_result">SUCCESS</field>
3692
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1001___Creazione_Case_di_Risoluzione_Contrattuale_Automatica')])]"/>
3693
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3694
- </record>
3695
- <record id="symple_triplet_phase_A1556_-_Verica_commodity" model="symple.triplet.phase">
3696
- <field name="active">True</field>
3697
- <field name="child_case">False</field>
3698
- <field name="code"># Available variables:
3699
- # - case_id: the case that just reached this phase
3700
- # - request: allows you to make HTTP requests (method, url, headers, data)
3701
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3702
- # - json_load: allows you to use JSON.load to convert a json into an object
3703
- # - env: Odoo Environment on which the action is triggered
3704
- # - time, datetime, dateutil, timezone: useful Python libraries
3705
- # - float_compare: Odoo function to compare floats based on specific precisions
3706
- # - ValidationError: Warning Exception to use with raise
3707
- # - Command: x2Many commands namespace
3708
- # - OrderedDict: ordered dictionaries
3709
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3710
- # (line = case id, func = phase name)
3711
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3712
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3713
- # To return a result, assign: result = {...}
3714
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3715
- # phase result will not be set.
3716
-
3717
- sp = case_id.service_point_ids[0]
3718
-
3719
- if sp.pod_id:
3720
- result = "ELE"
3721
- elif sp.pdr_id:
3722
- result= "GAS"</field>
3723
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3724
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
3725
- <field name="is_a_postalizer_phase">False</field>
3726
- <field name="is_compute_refund">False</field>
3727
- <field name="is_dl">False</field>
3728
- <field name="is_needs_child_case">False</field>
3729
- <field name="is_pick_refund_template">False</field>
3730
- <field name="is_process_managed">False</field>
3731
- <field name="is_quote_accepted">False</field>
3732
- <field name="is_quote_sent">False</field>
3733
- <field name="is_timeout">False</field>
3734
- <field name="is_voidable">False</field>
3735
- <field name="name">A1556 - Verica commodity</field>
3736
- <field name="set_result_automatically">from_code</field>
3737
- </record>
3738
- <record id="symple_triplet_phase_result_C1037_-_Ammissibilit__OK_E-CC01-0025" model="symple.triplet.phase.result">
3739
- <field name="active">True</field>
3740
- <field name="has_message">False</field>
3741
- <field name="is_annulment">False</field>
3742
- <field name="is_dl_solicitation_result">False</field>
3743
- <field name="is_hidden">False</field>
3744
- <field name="is_quote_expired">False</field>
3745
- <field name="name">C1037 - Ammissibilità OK</field>
3746
- <field name="next_phase_id" ref="symple_triplet_phase_A1556_-_Verica_commodity"/>
3747
- <field name="state_code">E-CC01-0025</field>
3748
- <field name="wizard_result">OK-100</field>
3749
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0816_-_In_attesa_esito_ammissibilit_')])]"/>
3750
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','OK-100')])" />
3751
- </record>
3752
- <record id="symple_triplet_phase_result_C2222___Commodity_Gas_E-CC01-0001-04" model="symple.triplet.phase.result">
3753
- <field name="active">True</field>
3754
- <field name="has_message">False</field>
3755
- <field name="is_annulment">False</field>
3756
- <field name="is_dl_solicitation_result">False</field>
3757
- <field name="is_hidden">False</field>
3758
- <field name="is_quote_expired">False</field>
3759
- <field name="name">C2222 – Commodity Gas</field>
3760
- <field name="next_phase_id" ref="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza"/>
3761
- <field name="state_code">E-CC01-0001-04</field>
3762
- <field name="wizard_result">SUCCESS</field>
3763
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1556_-_Verica_commodity')])]"/>
3764
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3765
- </record>
3766
- <record id="symple_triplet_phase_A2598_-_Invio_Pec" model="symple.triplet.phase">
3767
- <field name="active">True</field>
3768
- <field name="automatic_template_id" model="mail.template" eval="obj().search([('name','=','TEST PEC TG (copia)')])" />
3769
- <field name="child_case">False</field>
3770
- <field name="code"># Available variables:
3771
- # - case_id: the case that just reached this phase
3772
- # - request: allows you to make HTTP requests (method, url, headers, data)
3773
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3774
- # - json_load: allows you to use JSON.load to convert a json into an object
3775
- # - env: Odoo Environment on which the action is triggered
3776
- # - time, datetime, dateutil, timezone: useful Python libraries
3777
- # - float_compare: Odoo function to compare floats based on specific precisions
3778
- # - ValidationError: Warning Exception to use with raise
3779
- # - Command: x2Many commands namespace
3780
- # - OrderedDict: ordered dictionaries
3781
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3782
- # (line = case id, func = phase name)
3783
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3784
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3785
- # To return a result, assign: result = {...}
3786
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3787
- # phase result will not be set.
3788
-
3789
-
3790
-
3791
- </field>
3792
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','Customer Care')])" />
3793
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
3794
- <field name="is_a_postalizer_phase">False</field>
3795
- <field name="is_compute_refund">False</field>
3796
- <field name="is_dl">False</field>
3797
- <field name="is_mail_managed">manually</field>
3798
- <field name="is_needs_child_case">False</field>
3799
- <field name="is_pick_refund_template">False</field>
3800
- <field name="is_process_managed">True</field>
3801
- <field name="is_quote_accepted">False</field>
3802
- <field name="is_quote_sent">False</field>
3803
- <field name="is_timeout">False</field>
3804
- <field name="is_voidable">False</field>
3805
- <field name="name">A2598 - Invio Pec</field>
3806
- <field name="set_result_automatically">from_email</field>
3807
- </record>
3808
- <record id="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0001-05" model="symple.triplet.phase.result">
3809
- <field name="active">True</field>
3810
- <field name="has_message">False</field>
3811
- <field name="is_annulment">False</field>
3812
- <field name="is_dl_solicitation_result">False</field>
3813
- <field name="is_hidden">False</field>
3814
- <field name="is_quote_expired">False</field>
3815
- <field name="name">C1019 - Inviata</field>
3816
- <field name="next_phase_id" ref="symple_triplet_phase_A1004_-_Verifica_RCU___Data_decorrenza"/>
3817
- <field name="state_code">E-CC01-0001-05</field>
3818
- <field name="wizard_result">SUCCESS</field>
3819
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2598_-_Invio_Pec')])]"/>
3820
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3821
- </record>
3822
- <record id="symple_triplet_phase_result_C2221_-_Commodity_Elettricit__E-CC01-0001-06" model="symple.triplet.phase.result">
3823
- <field name="active">True</field>
3824
- <field name="has_message">False</field>
3825
- <field name="is_annulment">False</field>
3826
- <field name="is_dl_solicitation_result">False</field>
3827
- <field name="is_hidden">False</field>
3828
- <field name="is_quote_expired">False</field>
3829
- <field name="name">C2221 - Commodity Elettricità</field>
3830
- <field name="next_phase_id" ref="symple_triplet_phase_A2598_-_Invio_Pec"/>
3831
- <field name="state_code">E-CC01-0001-06</field>
3832
- <field name="wizard_result">SUCCESS</field>
3833
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1556_-_Verica_commodity')])]"/>
3834
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3835
- </record>
3836
- <record id="symple_triplet_phase_A2338_-_Inserimento_Pratica" model="symple.triplet.phase">
3837
- <field name="active">True</field>
3838
- <field name="child_case">False</field>
3839
- <field name="code"># Available variables:
3840
- # - case_id: the case that just reached this phase
3841
- # - request: allows you to make HTTP requests (method, url, headers, data)
3842
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3843
- # - json_load: allows you to use JSON.load to convert a json into an object
3844
- # - env: Odoo Environment on which the action is triggered
3845
- # - time, datetime, dateutil, timezone: useful Python libraries
3846
- # - float_compare: Odoo function to compare floats based on specific precisions
3847
- # - ValidationError: Warning Exception to use with raise
3848
- # - Command: x2Many commands namespace
3849
- # - OrderedDict: ordered dictionaries
3850
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3851
- # (line = case id, func = phase name)
3852
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3853
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3854
- # To return a result, assign: result = {...}
3855
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3856
- # phase result will not be set.
3857
-
3858
-
3859
-
3860
- </field>
3861
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3862
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
3863
- <field name="is_a_postalizer_phase">False</field>
3864
- <field name="is_compute_refund">False</field>
3865
- <field name="is_dl">False</field>
3866
- <field name="is_needs_child_case">False</field>
3867
- <field name="is_pick_refund_template">False</field>
3868
- <field name="is_process_managed">False</field>
3869
- <field name="is_quote_accepted">False</field>
3870
- <field name="is_quote_sent">False</field>
3871
- <field name="is_timeout">False</field>
3872
- <field name="is_voidable">False</field>
3873
- <field name="name">A2338 - Inserimento Pratica</field>
3874
- </record>
3875
- <record id="symple_triplet_phase_result_C2224_-_OK_-_Ammissibilit__Hub_E-CC01-0013" model="symple.triplet.phase.result">
3876
- <field name="active">True</field>
3877
- <field name="has_message">False</field>
3878
- <field name="is_annulment">False</field>
3879
- <field name="is_dl_solicitation_result">False</field>
3880
- <field name="is_hidden">False</field>
3881
- <field name="is_quote_expired">False</field>
3882
- <field name="name">C2224 - OK - Ammissibilità Hub</field>
3883
- <field name="next_phase_id" ref="symple_triplet_phase_A2338_-_Inserimento_Pratica"/>
3884
- <field name="state_code">E-CC01-0013</field>
3885
- <field name="wizard_result">OK-HUB</field>
3886
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1715_-_In_attesa_check_IFS')])]"/>
3887
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','OK-HUB')])" />
3888
- </record>
3889
- <record id="symple_triplet_phase_result_C3118_-_KO_AtoA_pdc_E-CC01-0014" model="symple.triplet.phase.result">
3890
- <field name="active">True</field>
3891
- <field name="has_message">False</field>
3892
- <field name="is_annulment">False</field>
3893
- <field name="is_dl_solicitation_result">False</field>
3894
- <field name="is_hidden">False</field>
3895
- <field name="is_quote_expired">False</field>
3896
- <field name="name">C3118 - KO AtoA/pdc</field>
3897
- <field name="next_phase_id" ref="symple_triplet_phase_A2558_-_verifica_avvio_gestione_manuale"/>
3898
- <field name="state_code">E-CC01-0014</field>
3899
- <field name="wizard_result">KO-PDC-A2A</field>
3900
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2338_-_Inserimento_Pratica')])]"/>
3901
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','KO-PDC-A2A')])" />
3902
- </record>
3903
- <record id="symple_triplet_phase_result_C3117_-_OK_pratica_inserita_E-CC01-00081" model="symple.triplet.phase.result">
3904
- <field name="active">True</field>
3905
- <field name="has_message">False</field>
3906
- <field name="is_annulment">False</field>
3907
- <field name="is_dl_solicitation_result">False</field>
3908
- <field name="is_hidden">False</field>
3909
- <field name="is_quote_expired">False</field>
3910
- <field name="name">C3117 - OK pratica inserita</field>
3911
- <field name="next_phase_id" ref="symple_triplet_phase_A0816_-_In_attesa_esito_ammissibilit_"/>
3912
- <field name="state_code">E-CC01-00081</field>
3913
- <field name="wizard_result">SUCCESS</field>
3914
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2338_-_Inserimento_Pratica')])]"/>
3915
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3916
- </record>
3917
- <record id="symple_triplet_phase_A2561_-_verifica_stato_invio_pratica_da_annullare" model="symple.triplet.phase">
3918
- <field name="active">True</field>
3919
- <field name="child_case">False</field>
3920
- <field name="code"># Available variables:
3921
- # - case_id: the case that just reached this phase
3922
- # - request: allows you to make HTTP requests (method, url, headers, data)
3923
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3924
- # - json_load: allows you to use JSON.load to convert a json into an object
3925
- # - env: Odoo Environment on which the action is triggered
3926
- # - time, datetime, dateutil, timezone: useful Python libraries
3927
- # - float_compare: Odoo function to compare floats based on specific precisions
3928
- # - ValidationError: Warning Exception to use with raise
3929
- # - Command: x2Many commands namespace
3930
- # - OrderedDict: ordered dictionaries
3931
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3932
- # (line = case id, func = phase name)
3933
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
3934
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
3935
- # To return a result, assign: result = {...}
3936
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
3937
- # phase result will not be set.
3938
-
3939
-
3940
-
3941
- </field>
3942
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
3943
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
3944
- <field name="is_a_postalizer_phase">False</field>
3945
- <field name="is_compute_refund">False</field>
3946
- <field name="is_dl">False</field>
3947
- <field name="is_needs_child_case">False</field>
3948
- <field name="is_pick_refund_template">False</field>
3949
- <field name="is_process_managed">False</field>
3950
- <field name="is_quote_accepted">False</field>
3951
- <field name="is_quote_sent">False</field>
3952
- <field name="is_timeout">False</field>
3953
- <field name="is_voidable">False</field>
3954
- <field name="name">A2561 - verifica stato invio pratica da annullare</field>
3955
- </record>
3956
- <record id="symple_triplet_phase_result_C2475_-_OK_-_Ammissibilit__Annullamento_Hub_E-CC01-0042" model="symple.triplet.phase.result">
3957
- <field name="active">True</field>
3958
- <field name="has_message">False</field>
3959
- <field name="is_annulment">False</field>
3960
- <field name="is_dl_solicitation_result">False</field>
3961
- <field name="is_hidden">False</field>
3962
- <field name="is_quote_expired">False</field>
3963
- <field name="name">C2475 - OK - Ammissibilità Annullamento Hub</field>
3964
- <field name="next_phase_id" ref="symple_triplet_phase_A2561_-_verifica_stato_invio_pratica_da_annullare"/>
3965
- <field name="state_code">E-CC01-0042</field>
3966
- <field name="wizard_result">SUCCESS</field>
3967
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A1767_-_In_attesa_check_IFS_Annullamento')])]"/>
3968
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3969
- </record>
3970
- <record id="symple_triplet_phase_result_C2599_-_annullamento_confermato_E-CC01-00084" model="symple.triplet.phase.result">
3971
- <field name="active">True</field>
3972
- <field name="has_message">False</field>
3973
- <field name="is_annulment">False</field>
3974
- <field name="is_dl_solicitation_result">False</field>
3975
- <field name="is_hidden">False</field>
3976
- <field name="is_quote_expired">False</field>
3977
- <field name="name">C2599 - annullamento confermato</field>
3978
- <field name="next_phase_id" ref="symple_triplet_phase_A1833_-_Case_annullato_da_APR"/>
3979
- <field name="state_code">E-CC01-00084</field>
3980
- <field name="wizard_result">SUCCESS</field>
3981
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2561_-_verifica_stato_invio_pratica_da_annullare')])]"/>
3982
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
3983
- </record>
3984
- <record id="symple_triplet_phase_A0832_-_Invio_Richiesta_Annullamento" model="symple.triplet.phase">
3985
- <field name="active">True</field>
3986
- <field name="child_case">False</field>
3987
- <field name="code"># Available variables:
3988
- # - case_id: the case that just reached this phase
3989
- # - request: allows you to make HTTP requests (method, url, headers, data)
3990
- # - json_dumps: allows you to use JSON.dumps to convert an object into a json
3991
- # - json_load: allows you to use JSON.load to convert a json into an object
3992
- # - env: Odoo Environment on which the action is triggered
3993
- # - time, datetime, dateutil, timezone: useful Python libraries
3994
- # - float_compare: Odoo function to compare floats based on specific precisions
3995
- # - ValidationError: Warning Exception to use with raise
3996
- # - Command: x2Many commands namespace
3997
- # - OrderedDict: ordered dictionaries
3998
- # - log: log(message, level='info'): logging function to record debug information in ir.logging table
3999
- # (line = case id, func = phase name)
4000
- # - format_exc: forwarded from traceback.format_exc - returns str stack trace of last exception thrown
4001
- # - first: forwarded from odoo.fields.first - safely gets first element of recordset
4002
- # To return a result, assign: result = {...}
4003
- # WARNING: if return = False or return value is not in the result table or no result is returned at all,
4004
- # phase result will not be set.
4005
-
4006
-
4007
-
4008
- </field>
4009
- <field name="helpdesk_group_id" model="helpdesk.team" eval="obj().search([('name','=','SYSTEM-Sorgenia')])" />
4010
- <field name="helpdesk_stage_id" model="helpdesk.stage" eval="obj().search([('name','=','In Progress')])" />
4011
- <field name="is_a_postalizer_phase">False</field>
4012
- <field name="is_compute_refund">False</field>
4013
- <field name="is_dl">False</field>
4014
- <field name="is_needs_child_case">False</field>
4015
- <field name="is_pick_refund_template">False</field>
4016
- <field name="is_process_managed">False</field>
4017
- <field name="is_quote_accepted">False</field>
4018
- <field name="is_quote_sent">False</field>
4019
- <field name="is_timeout">False</field>
4020
- <field name="is_voidable">False</field>
4021
- <field name="name">A0832 - Invio Richiesta Annullamento</field>
4022
- </record>
4023
- <record id="symple_triplet_phase_result_C3118_-_KO_AtoA_pdc_E-CC01-0044" model="symple.triplet.phase.result">
4024
- <field name="active">True</field>
4025
- <field name="has_message">False</field>
4026
- <field name="is_annulment">False</field>
4027
- <field name="is_dl_solicitation_result">False</field>
4028
- <field name="is_hidden">False</field>
4029
- <field name="is_quote_expired">False</field>
4030
- <field name="name">C3118 - KO AtoA/pdc</field>
4031
- <field name="next_phase_id" ref="symple_triplet_phase_A2562_-_verifica_avvio_gestione_manuale_annullamento"/>
4032
- <field name="state_code">E-CC01-0044</field>
4033
- <field name="wizard_result">SUCCESS</field>
4034
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0832_-_Invio_Richiesta_Annullamento')])]"/>
4035
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
4036
- </record>
4037
- <record id="symple_triplet_phase_result_C3120_-_annullamento_da_gestire_E-CC01-00083" model="symple.triplet.phase.result">
4038
- <field name="active">True</field>
4039
- <field name="has_message">False</field>
4040
- <field name="is_annulment">False</field>
4041
- <field name="is_dl_solicitation_result">False</field>
4042
- <field name="is_hidden">False</field>
4043
- <field name="is_quote_expired">False</field>
4044
- <field name="name">C3120 - annullamento da gestire</field>
4045
- <field name="next_phase_id" ref="symple_triplet_phase_A0832_-_Invio_Richiesta_Annullamento"/>
4046
- <field name="state_code">E-CC01-00083</field>
4047
- <field name="wizard_result">SUCCESS</field>
4048
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A2561_-_verifica_stato_invio_pratica_da_annullare')])]"/>
4049
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
4050
- </record>
4051
- <record id="symple_triplet_phase_result_C2875_-_OK_-_Inviato_Annullamento_al_SII_E-CC01-00085" model="symple.triplet.phase.result">
4052
- <field name="active">True</field>
4053
- <field name="has_message">False</field>
4054
- <field name="is_annulment">False</field>
4055
- <field name="is_dl_solicitation_result">False</field>
4056
- <field name="is_hidden">False</field>
4057
- <field name="is_quote_expired">False</field>
4058
- <field name="name">C2875 - OK - Inviato Annullamento al SII</field>
4059
- <field name="next_phase_id" ref="symple_triplet_phase_A0833_-_In_attesa_ricezione_Ammissibilit__Annullamento"/>
4060
- <field name="state_code">E-CC01-00085</field>
4061
- <field name="wizard_result">SUCCESS</field>
4062
- <field name="starting_phase_ids" model="symple.triplet.phase" eval="[(6, 0, [ref('symple_triplet_phase_A0832_-_Invio_Richiesta_Annullamento')])]"/>
4063
- <field name="result_type_id" model="result.type" eval="obj().search([('name','=','Success')])" />
4064
- </record>
4065
- <record id="result_code_configurator_A1672_-_Recupero_dati_a_CRM_OK" model="result.code.configurator">
4066
- <field name="code_phase_id" ref="symple_triplet_phase_A1672_-_Recupero_dati_a_CRM"/>
4067
- <field name="result_value">OK</field>
4068
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2365_-_Recupero_Dati_OK_E-CC01-0008"/>
4069
- </record>
4070
- <record id="result_code_configurator_A1559_-_Invio_alla_Market_Communication_OK" model="result.code.configurator">
4071
- <field name="code_phase_id" ref="symple_triplet_phase_A1559_-_Invio_alla_Market_Communication"/>
4072
- <field name="result_value">OK</field>
4073
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0011"/>
4074
- </record>
4075
- <record id="result_code_configurator_A1590_-_Verifica_Tipologia_Apertura_Case_AUTOMATICO" model="result.code.configurator">
4076
- <field name="code_phase_id" ref="symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case"/>
4077
- <field name="result_value">AUTOMATICO</field>
4078
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2252_-_Apertura_Case_Automatica_C"/>
4079
- </record>
4080
- <record id="result_code_configurator_A1590_-_Verifica_Tipologia_Apertura_Case_MANUALE" model="result.code.configurator">
4081
- <field name="code_phase_id" ref="symple_triplet_phase_A1590_-_Verifica_Tipologia_Apertura_Case"/>
4082
- <field name="result_value">MANUALE</field>
4083
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2251_-_Apertura_Case_Manuale_E-CC01-0001-01"/>
4084
- </record>
4085
- <record id="result_code_configurator_A1577_-_Chiusura_Ordine_CRM_OK" model="result.code.configurator">
4086
- <field name="code_phase_id" ref="symple_triplet_phase_A1577_-_Chiusura_Ordine_CRM"/>
4087
- <field name="result_value">OK</field>
4088
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2242_-_Chiusura_Ordine_OK_E-CC01-0032"/>
4089
- </record>
4090
- <record id="result_code_configurator_A2398_-_Invio_ordine_CRM_OK" model="result.code.configurator">
4091
- <field name="code_phase_id" ref="symple_triplet_phase_A2398_-_Invio_ordine_CRM"/>
4092
- <field name="result_value">OK</field>
4093
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1900_-_Integrazione_M2C_E-CC01-0035"/>
4094
- </record>
4095
- <record id="result_code_configurator_A0802_-_Integrazione_M2C_OK" model="result.code.configurator">
4096
- <field name="code_phase_id" ref="symple_triplet_phase_A0802_-_Integrazione_M2C"/>
4097
- <field name="result_value">OK</field>
4098
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1904_-_In_attesa_esito_M2C_E-CC01-0036"/>
4099
- </record>
4100
- <record id="result_code_configurator_A2142_-_Invio_alla_marketcom_annullamento_forzato_OK" model="result.code.configurator">
4101
- <field name="code_phase_id" ref="symple_triplet_phase_A2142_-_Invio_alla_marketcom_annullamento_forzato"/>
4102
- <field name="result_value">OK</field>
4103
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0053"/>
4104
- </record>
4105
- <record id="result_code_configurator_A1595_-_Invio_Annullamento_alla_Market_Communication_OK" model="result.code.configurator">
4106
- <field name="code_phase_id" ref="symple_triplet_phase_A1595_-_Invio_Annullamento_alla_Market_Communication"/>
4107
- <field name="result_value">OK</field>
4108
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0041"/>
4109
- </record>
4110
- <record id="result_code_configurator_A1836_-_Apertura_case_figlio_OK" model="result.code.configurator">
4111
- <field name="code_phase_id" ref="symple_triplet_phase_A1836_-_Apertura_case_figlio"/>
4112
- <field name="result_value">OK</field>
4113
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2550_-_case_creato_E-CC01-0040"/>
4114
- </record>
4115
- <record id="result_code_configurator_A1556_-_Verica_commodity_ELE" model="result.code.configurator">
4116
- <field name="code_phase_id" ref="symple_triplet_phase_A1556_-_Verica_commodity"/>
4117
- <field name="result_value">ELE</field>
4118
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2221_-_Commodity_Elettricit__E-CC01-0001-06"/>
4119
- </record>
4120
- <record id="result_code_configurator_A1556_-_Verica_commodity_GAS" model="result.code.configurator">
4121
- <field name="code_phase_id" ref="symple_triplet_phase_A1556_-_Verica_commodity"/>
4122
- <field name="result_value">GAS</field>
4123
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2222___Commodity_Gas_E-CC01-0001-04"/>
4124
- </record>
4125
- <record id="result_code_configurator_A1001___Creazione_Case_di_Risoluzione_Contrattuale_Automatica_OK" model="result.code.configurator">
4126
- <field name="code_phase_id" ref="symple_triplet_phase_A1001___Creazione_Case_di_Risoluzione_Contrattuale_Automatica"/>
4127
- <field name="result_value">OK</field>
4128
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1401_-_Risoluzione_contrattuale_OK_E-CC01-0001-03"/>
4129
- </record>
4130
- <record id="result_code_configurator_A1709_-_verifica_compatibilit__KO" model="result.code.configurator">
4131
- <field name="code_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
4132
- <field name="result_value">KO</field>
4133
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C404_-_KO_-_Incompatibile_E-CC01-0003"/>
4134
- </record>
4135
- <record id="result_code_configurator_A1709_-_verifica_compatibilit__OK" model="result.code.configurator">
4136
- <field name="code_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
4137
- <field name="result_value">OK</field>
4138
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2654_-_Processo_Compatibile_E-CC01-0004"/>
4139
- </record>
4140
- <record id="result_code_configurator_A1709_-_verifica_compatibilit__PARTIAL_KO" model="result.code.configurator">
4141
- <field name="code_phase_id" ref="symple_triplet_phase_A1709_-_verifica_compatibilit_"/>
4142
- <field name="result_value">PARTIAL_KO</field>
4143
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C2639_-_Incompatibilit__Non_bloccante_E-CC01-0005"/>
4144
- </record>
4145
- <record id="result_code_configurator_A2397_-_OK_RCU___verifica_data_decorrenza_RES1" model="result.code.configurator">
4146
- <field name="code_phase_id" ref="symple_triplet_phase_A2397_-_OK_RCU___verifica_data_decorrenza"/>
4147
- <field name="result_value">RES1</field>
4148
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1936_-_Data_raggiunta_E-CC01-0031"/>
4149
- </record>
4150
- <record id="result_code_configurator_A1879_-_Invio_alla_Market_Comm_Forzato_RES1" model="result.code.configurator">
4151
- <field name="code_phase_id" ref="symple_triplet_phase_A1879_-_Invio_alla_Market_Comm_Forzato"/>
4152
- <field name="result_value">RES1</field>
4153
- <field name="triplet_phase_result_id" ref="symple_triplet_phase_result_C1019_-_Inviata_E-CC01-0020"/>
4154
- </record>
4155
-
4156
- </data>
4157
- </odoo>
4158
-
4159
- Processed_records: 146
4160
- Managed records: 146