otrs-somconnexio 0.4.4__py2.py3-none-any.whl → 0.7.3__py2.py3-none-any.whl

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 (192) hide show
  1. otrs_somconnexio/client.py +110 -42
  2. otrs_somconnexio/exceptions.py +44 -11
  3. otrs_somconnexio/otrs_models/abstract_article.py +3 -0
  4. otrs_somconnexio/otrs_models/adsl_data.py +7 -37
  5. otrs_somconnexio/otrs_models/adsl_dynamic_fields.py +5 -4
  6. otrs_somconnexio/otrs_models/adsl_ticket.py +9 -5
  7. otrs_somconnexio/otrs_models/configurations/changes/__init__.py +0 -0
  8. otrs_somconnexio/otrs_models/configurations/changes/add_data.py +13 -0
  9. otrs_somconnexio/otrs_models/configurations/changes/change_email.py +16 -0
  10. otrs_somconnexio/otrs_models/configurations/changes/change_iban.py +8 -0
  11. otrs_somconnexio/otrs_models/configurations/changes/change_owner.py +19 -0
  12. otrs_somconnexio/otrs_models/configurations/changes/change_pack.py +6 -0
  13. otrs_somconnexio/otrs_models/configurations/changes/change_shared_bond.py +7 -0
  14. otrs_somconnexio/otrs_models/configurations/changes/change_tariff.py +29 -0
  15. otrs_somconnexio/otrs_models/configurations/changes/change_tariff_adsl.py +20 -0
  16. otrs_somconnexio/otrs_models/configurations/changes/change_tariff_fiber.py +11 -0
  17. otrs_somconnexio/otrs_models/configurations/provision/__init__.py +0 -0
  18. otrs_somconnexio/otrs_models/configurations/{adsl_ticket.py → provision/adsl_ticket.py} +2 -2
  19. otrs_somconnexio/otrs_models/configurations/{fiber_ticket.py → provision/fiber_ticket.py} +6 -3
  20. otrs_somconnexio/otrs_models/configurations/provision/mobile_ticket.py +44 -0
  21. otrs_somconnexio/otrs_models/configurations/provision/router_4G_ticket.py +8 -0
  22. otrs_somconnexio/otrs_models/configurations/provision/switchboard_ticket.py +10 -0
  23. otrs_somconnexio/otrs_models/configurations/querys/__init__.py +0 -0
  24. otrs_somconnexio/otrs_models/configurations/querys/check_coverage.py +16 -0
  25. otrs_somconnexio/otrs_models/configurations/querys/we_call_you.py +26 -0
  26. otrs_somconnexio/otrs_models/coverage/adsl.py +1 -1
  27. otrs_somconnexio/otrs_models/coverage/asociatel_fiber.py +6 -0
  28. otrs_somconnexio/otrs_models/coverage/mm_fiber.py +7 -0
  29. otrs_somconnexio/otrs_models/coverage/orange_fiber.py +5 -0
  30. otrs_somconnexio/otrs_models/coverage/vdf_fiber.py +8 -0
  31. otrs_somconnexio/otrs_models/coverage_article.py +20 -4
  32. otrs_somconnexio/otrs_models/coverage_ticket.py +1 -0
  33. otrs_somconnexio/otrs_models/customer_data.py +15 -3
  34. otrs_somconnexio/otrs_models/customer_user.py +3 -9
  35. otrs_somconnexio/otrs_models/fiber_data.py +17 -33
  36. otrs_somconnexio/otrs_models/fiber_dynamic_fields.py +58 -4
  37. otrs_somconnexio/otrs_models/fiber_ticket.py +9 -5
  38. otrs_somconnexio/otrs_models/internet_data.py +79 -0
  39. otrs_somconnexio/otrs_models/internet_dynamic_fields.py +65 -26
  40. otrs_somconnexio/otrs_models/mobile_data.py +49 -5
  41. otrs_somconnexio/otrs_models/mobile_dynamic_fields.py +50 -8
  42. otrs_somconnexio/otrs_models/mobile_ticket.py +20 -4
  43. otrs_somconnexio/otrs_models/process_ticket/internet.py +40 -97
  44. otrs_somconnexio/otrs_models/process_ticket/mobile.py +63 -43
  45. otrs_somconnexio/otrs_models/process_ticket/process_ticket.py +74 -0
  46. otrs_somconnexio/otrs_models/providers.py +4 -3
  47. otrs_somconnexio/otrs_models/provision_article.py +7 -5
  48. otrs_somconnexio/otrs_models/provision_dynamic_fields.py +76 -11
  49. otrs_somconnexio/otrs_models/provision_ticket.py +52 -28
  50. otrs_somconnexio/otrs_models/responsible_data.py +6 -0
  51. otrs_somconnexio/otrs_models/router_4G_data.py +8 -0
  52. otrs_somconnexio/otrs_models/router_4G_dynamic_fields.py +9 -0
  53. otrs_somconnexio/otrs_models/router_4G_ticket.py +26 -0
  54. otrs_somconnexio/otrs_models/service.py +41 -12
  55. otrs_somconnexio/otrs_models/switchboard_data.py +58 -0
  56. otrs_somconnexio/otrs_models/switchboard_dynamic_fields.py +94 -0
  57. otrs_somconnexio/otrs_models/switchboard_header_data.py +18 -0
  58. otrs_somconnexio/otrs_models/switchboard_header_dynamic_fields.py +80 -0
  59. otrs_somconnexio/otrs_models/switchboard_header_ticket.py +30 -0
  60. otrs_somconnexio/otrs_models/switchboard_ticket.py +35 -0
  61. otrs_somconnexio/otrs_models/telecom_company.py +69 -69
  62. otrs_somconnexio/otrs_models/ticket_factory.py +34 -11
  63. otrs_somconnexio/otrs_models/ticket_types/__init__.py +0 -0
  64. otrs_somconnexio/otrs_models/ticket_types/add_data_ticket.py +36 -0
  65. otrs_somconnexio/otrs_models/ticket_types/base_change_tariff_ba_ticket.py +23 -0
  66. otrs_somconnexio/otrs_models/ticket_types/base_change_ticket.py +33 -0
  67. otrs_somconnexio/otrs_models/ticket_types/base_customer_ticket.py +24 -0
  68. otrs_somconnexio/otrs_models/ticket_types/base_ticket.py +147 -0
  69. otrs_somconnexio/otrs_models/ticket_types/change_email_ticket.py +40 -0
  70. otrs_somconnexio/otrs_models/ticket_types/change_iban_ticket.py +39 -0
  71. otrs_somconnexio/otrs_models/ticket_types/change_owner_ticket.py +132 -0
  72. otrs_somconnexio/otrs_models/ticket_types/change_pack_not_shared_data.py +36 -0
  73. otrs_somconnexio/otrs_models/ticket_types/change_personal_email_ticket.py +31 -0
  74. otrs_somconnexio/otrs_models/ticket_types/change_shared_bond_ticket.py +35 -0
  75. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_landline_ticket.py +30 -0
  76. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_out_landline_ticket.py +30 -0
  77. otrs_somconnexio/otrs_models/ticket_types/change_tariff_adsl_ticket.py +42 -0
  78. otrs_somconnexio/otrs_models/ticket_types/change_tariff_fiber_ticket.py +43 -0
  79. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket.py +87 -0
  80. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_mobile_pack.py +51 -0
  81. otrs_somconnexio/otrs_models/ticket_types/change_tariff_ticket_shared_bonds.py +22 -0
  82. otrs_somconnexio/otrs_models/ticket_types/check_coverage_ticket.py +52 -0
  83. otrs_somconnexio/otrs_models/ticket_types/we_call_you_ticket.py +53 -0
  84. otrs_somconnexio/otrs_models/vf_provisioning_article.py +4 -2
  85. otrs_somconnexio/responses/ticket_creation.py +5 -4
  86. otrs_somconnexio/services/activate_change_tarriff_mobile_tickets.py +13 -0
  87. otrs_somconnexio/services/base_get_ticket_by_number.py +22 -0
  88. otrs_somconnexio/services/change_to_confirm_ticket.py +45 -0
  89. otrs_somconnexio/services/get_mobile_related_tickets.py +11 -0
  90. otrs_somconnexio/services/get_sharing_data_mobile_tickets.py +65 -0
  91. otrs_somconnexio/services/get_ticket_title.py +26 -0
  92. otrs_somconnexio/services/mapping_mobile_minutes.py +5 -5
  93. otrs_somconnexio/services/mapping_services.py +8 -6
  94. otrs_somconnexio/services/move_sharing_data_mobile_tickets.py +13 -0
  95. otrs_somconnexio/services/search_tickets_mobile_change_tariff.py +25 -0
  96. otrs_somconnexio/services/search_tickets_service.py +57 -0
  97. otrs_somconnexio/services/set_SIM_recieved_mobile_ticket.py +107 -0
  98. otrs_somconnexio/services/set_SIM_returned_mobile_ticket.py +37 -0
  99. otrs_somconnexio/services/set_fiber_contract_code_mobile_ticket.py +21 -0
  100. otrs_somconnexio/services/unblock_mobile_pack_ticket.py +48 -0
  101. otrs_somconnexio/services/update_process_ticket_with_coverage_tickets_info_service.py +10 -10
  102. otrs_somconnexio/services/update_ticket_DF.py +18 -0
  103. otrs_somconnexio/services/update_ticket_with_provider_info.py +2 -3
  104. otrs_somconnexio/user_management_client/client.py +15 -27
  105. otrs_somconnexio/user_management_client/user_management_response.py +2 -3
  106. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/METADATA +19 -4
  107. otrs_somconnexio-0.7.3.dist-info/RECORD +202 -0
  108. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/WHEEL +1 -1
  109. tests/data/otrs_raw_responses.py +12 -6
  110. tests/integration/test_change_customer_language.py +14 -19
  111. tests/integration/test_ticket_factory.py +383 -106
  112. tests/integration/test_update_ticket_with_coverage_data.py +53 -27
  113. tests/otrs_models/common_helper.py +9 -0
  114. tests/otrs_models/configuration/changes/__init__.py +0 -0
  115. tests/otrs_models/configuration/changes/test_change_tariff_ticket.py +91 -0
  116. tests/otrs_models/configuration/provision/__init__.py +0 -0
  117. tests/otrs_models/configuration/provision/test_adsl_ticket.py +30 -0
  118. tests/otrs_models/configuration/provision/test_fiber_ticket.py +32 -0
  119. tests/otrs_models/configuration/provision/test_mobile_ticket.py +62 -0
  120. tests/otrs_models/process_ticket/test_internet_process_ticket.py +54 -60
  121. tests/otrs_models/process_ticket/test_mobile_process_ticket.py +56 -33
  122. tests/otrs_models/test_abstract_article.py +3 -2
  123. tests/otrs_models/test_adsl_data.py +11 -4
  124. tests/otrs_models/test_adsl_dynamic_fields.py +217 -100
  125. tests/otrs_models/test_adsl_ticket.py +78 -83
  126. tests/otrs_models/test_coverage_article.py +9 -7
  127. tests/otrs_models/test_coverage_ticket.py +4 -2
  128. tests/otrs_models/test_customer_user.py +23 -20
  129. tests/otrs_models/test_fiber_data.py +20 -4
  130. tests/otrs_models/test_fiber_dynamic_fields.py +458 -134
  131. tests/otrs_models/test_fiber_ticket.py +113 -79
  132. tests/otrs_models/test_mobile_data.py +14 -3
  133. tests/otrs_models/test_mobile_dynamic_fields.py +335 -74
  134. tests/otrs_models/test_mobile_paused_ticket.py +35 -0
  135. tests/otrs_models/test_mobile_ticket.py +82 -96
  136. tests/otrs_models/test_provision_article.py +49 -0
  137. tests/otrs_models/test_router_4G_data.py +43 -0
  138. tests/otrs_models/test_router_4G_dynamic_fields.py +619 -0
  139. tests/otrs_models/test_router_4G_ticket.py +135 -0
  140. tests/otrs_models/test_service.py +58 -14
  141. tests/otrs_models/test_switchboard_data.py +37 -0
  142. tests/otrs_models/test_switchboard_dynamic_fields.py +197 -0
  143. tests/otrs_models/test_switchboard_header_data.py +18 -0
  144. tests/otrs_models/test_switchboard_header_dynamic_fields.py +119 -0
  145. tests/otrs_models/test_switchboard_header_ticket.py +127 -0
  146. tests/otrs_models/test_switchboard_ticket.py +147 -0
  147. tests/otrs_models/test_telecom_company.py +16 -16
  148. tests/otrs_models/test_ticket_factory.py +73 -16
  149. tests/otrs_models/test_vf_provisioning_article.py +6 -5
  150. tests/otrs_models/ticket_types/__init__.py +0 -0
  151. tests/otrs_models/ticket_types/test_add_data.py +79 -0
  152. tests/otrs_models/ticket_types/test_change_email.py +163 -0
  153. tests/otrs_models/ticket_types/test_change_iban.py +82 -0
  154. tests/otrs_models/ticket_types/test_change_owner.py +277 -0
  155. tests/otrs_models/ticket_types/test_change_pack_not_shared_data.py +77 -0
  156. tests/otrs_models/ticket_types/test_change_personal_email.py +81 -0
  157. tests/otrs_models/ticket_types/test_change_tariff.py +435 -0
  158. tests/otrs_models/ticket_types/test_change_tariff_adsl_landline.py +115 -0
  159. tests/otrs_models/ticket_types/test_change_tariff_adsl_out_landline.py +115 -0
  160. tests/otrs_models/ticket_types/test_change_tariff_fiber.py +175 -0
  161. tests/otrs_models/ticket_types/test_change_tariff_mobile_pack.py +151 -0
  162. tests/otrs_models/ticket_types/test_change_tariff_shared_bonds.py +65 -0
  163. tests/otrs_models/ticket_types/test_check_coverage.py +106 -0
  164. tests/otrs_models/ticket_types/test_shared_bond.py +80 -0
  165. tests/otrs_models/ticket_types/test_we_call_you.py +108 -0
  166. tests/responses/test_ticket_creation.py +4 -4
  167. tests/services/test_activate_change_tariff_mobile_tickets.py +45 -0
  168. tests/services/test_change_to_confirm_ticket.py +80 -0
  169. tests/services/test_get_mobile_related_tickets.py +39 -0
  170. tests/services/test_get_sharing_data_mobile_tickets.py +127 -0
  171. tests/services/test_mapping_mobile_minutes.py +8 -8
  172. tests/services/{test_mappint_services.py → test_mapping_services.py} +9 -9
  173. tests/services/test_move_sharing_data_mobile_tickets.py +43 -0
  174. tests/services/test_search_tickets_mobile_change_tariff.py +84 -0
  175. tests/services/test_search_tickets_service.py +166 -0
  176. tests/services/test_set_SIM_recieved_mobile_ticket_service.py +211 -0
  177. tests/services/test_set_SIM_returned_mobile_ticket_service.py +59 -0
  178. tests/services/test_set_fiber_contract_code_mobile_ticket_service.py +47 -0
  179. tests/services/test_unblock_mobile_pack_ticket.py +224 -0
  180. tests/services/test_update_process_ticket_with_VF_provisioning.py +15 -14
  181. tests/services/test_update_process_ticket_with_coverage_tickets_info_service.py +22 -10
  182. tests/services/test_update_ticket_with_provider_info.py +16 -15
  183. tests/user_management_client/test_client.py +41 -58
  184. tests/user_management_client/test_user_management_response.py +13 -26
  185. otrs_somconnexio/otrs_models/configurations/mobile_ticket.py +0 -17
  186. otrs_somconnexio/otrs_models/coverage/mm_fibre.py +0 -7
  187. otrs_somconnexio/otrs_models/coverage/vdf_fibre.py +0 -8
  188. otrs_somconnexio-0.4.4.dist-info/RECORD +0 -95
  189. tests/otrs_models/configuration/test_adsl_ticket.py +0 -45
  190. tests/otrs_models/configuration/test_fiber_ticket.py +0 -45
  191. tests/otrs_models/configuration/test_mobile_ticket.py +0 -45
  192. {otrs_somconnexio-0.4.4.dist-info → otrs_somconnexio-0.7.3.dist-info}/top_level.txt +0 -0
@@ -1,18 +1,62 @@
1
1
  class MobileData:
2
- type = 'mobile'
2
+ service_type = "mobile"
3
3
 
4
4
  def __init__(
5
- self, order_id, phone_number, iban, sc_icc, icc,
6
- portability, previous_owner_vat,
7
- previous_owner_name, previous_owner_surname, previous_provider, product):
5
+ self,
6
+ order_id,
7
+ contact_phone,
8
+ phone_number,
9
+ iban,
10
+ email,
11
+ sc_icc,
12
+ icc,
13
+ has_sim,
14
+ type,
15
+ previous_owner_vat,
16
+ previous_owner_name,
17
+ previous_owner_surname,
18
+ previous_provider,
19
+ product,
20
+ delivery_street,
21
+ delivery_city,
22
+ delivery_zip_code,
23
+ delivery_state,
24
+ technology,
25
+ sim_delivery_tracking_code,
26
+ sales_team,
27
+ activation_notes="",
28
+ notes="",
29
+ is_grouped_with_fiber=False,
30
+ is_from_pack=False,
31
+ fiber_linked="",
32
+ shared_bond_id="",
33
+ confirmed_documentation=False,
34
+ ):
8
35
  self.order_id = order_id
9
36
  self.phone_number = phone_number
10
37
  self.iban = iban
38
+ self.email = email
11
39
  self.sc_icc = sc_icc
12
40
  self.icc = icc
13
- self.portability = portability
41
+ self.has_sim = has_sim
42
+ self.type = type
14
43
  self.previous_provider = previous_provider
15
44
  self.previous_owner_vat = previous_owner_vat
16
45
  self.previous_owner_name = previous_owner_name
17
46
  self.previous_owner_surname = previous_owner_surname
18
47
  self.product = product
48
+ self.delivery_street = delivery_street
49
+ self.delivery_city = delivery_city
50
+ self.delivery_zip_code = delivery_zip_code
51
+ self.delivery_state = delivery_state
52
+ self.technology = technology
53
+ self.sim_delivery_tracking_code = sim_delivery_tracking_code
54
+ self.sales_team = sales_team
55
+ self.activation_notes = activation_notes
56
+ self.notes = notes
57
+ self.is_grouped_with_fiber = is_grouped_with_fiber
58
+ self.is_from_pack = is_from_pack
59
+ self.fiber_linked = fiber_linked
60
+ self.shared_bond_id = shared_bond_id
61
+ self.contact_phone = contact_phone
62
+ self.confirmed_documentation = confirmed_documentation
@@ -4,7 +4,6 @@ from otrs_somconnexio.otrs_models.provision_dynamic_fields import ProvisionDynam
4
4
 
5
5
 
6
6
  class MobileDynamicFields(ProvisionDynamicFields):
7
-
8
7
  def _build_specific_dynamic_fields(self):
9
8
  return [
10
9
  self._line(),
@@ -17,6 +16,16 @@ class MobileDynamicFields(ProvisionDynamicFields):
17
16
  self._zip(),
18
17
  self._city(),
19
18
  self._subdivision(),
19
+ self._sim_received(),
20
+ self._sim_delivery_tracking_code(),
21
+ self._send_sim_type(),
22
+ self._delivery_street(),
23
+ self._delivery_zip_code(),
24
+ self._delivery_city(),
25
+ self._delivery_state(),
26
+ self._fiber_linked(),
27
+ self._shared_bond_id(),
28
+ self._confirm_doc(),
20
29
  ]
21
30
 
22
31
  def _line(self):
@@ -29,21 +38,32 @@ class MobileDynamicFields(ProvisionDynamicFields):
29
38
  return DynamicField("ICCdonant", self.service_data.icc)
30
39
 
31
40
  def _service_type(self):
32
- if self.service_data.portability:
41
+ if self.service_data.type == "portability":
33
42
  return DynamicField("tipusServeiMobil", "portabilitat")
34
43
  else:
35
44
  return DynamicField("tipusServeiMobil", "altaNova")
36
45
 
37
46
  def _previous_provider(self):
38
47
  return DynamicField(
39
- name="operadorDonantMobil",
40
- value=self.service_data.previous_provider
48
+ name="operadorDonantMobil", value=self.service_data.previous_provider
41
49
  )
42
50
 
43
51
  def _previous_owner_vat(self):
44
52
  return DynamicField(
45
- name="dniTitularAnterior",
46
- value=self.service_data.previous_owner_vat
53
+ name="dniTitularAnterior", value=self.service_data.previous_owner_vat
54
+ )
55
+
56
+ def _sim_received(self):
57
+ sim_recieved = "1" if self.service_data.has_sim else "0"
58
+ return DynamicField("SIMrebuda", sim_recieved)
59
+
60
+ def _send_sim_type(self):
61
+ CH_SC_OSO_SIM = "None" if self.service_data.has_sim else "CH_SC_OSO_SIM"
62
+ return DynamicField("tipusEnviamentSIM", CH_SC_OSO_SIM)
63
+
64
+ def _sim_delivery_tracking_code(self):
65
+ return DynamicField(
66
+ "CorreusTrackingCode", self.service_data.sim_delivery_tracking_code
47
67
  )
48
68
 
49
69
  def _street(self):
@@ -58,8 +78,30 @@ class MobileDynamicFields(ProvisionDynamicFields):
58
78
  def _subdivision(self):
59
79
  return DynamicField("provinciaMobil", self.customer_data.subdivision)
60
80
 
81
+ def _delivery_street(self):
82
+ return DynamicField("direccioEnviament", self.service_data.delivery_street)
83
+
84
+ def _delivery_city(self):
85
+ return DynamicField("poblacioEnviament", self.service_data.delivery_city)
86
+
87
+ def _delivery_zip_code(self):
88
+ return DynamicField("CPenviament", self.service_data.delivery_zip_code)
89
+
90
+ def _delivery_state(self):
91
+ return DynamicField("provinciaEnviament", self.service_data.delivery_state)
92
+
61
93
  def _product(self):
94
+ return DynamicField(name="productMobil", value=self.service_data.product)
95
+
96
+ def _fiber_linked(self):
62
97
  return DynamicField(
63
- name="productMobil",
64
- value=self.service_data.product
98
+ name="OdooContractRefRelacionat", value=self.service_data.fiber_linked
65
99
  )
100
+
101
+ def _shared_bond_id(self):
102
+ return DynamicField(
103
+ name="IDAbonamentCompartit", value=self.service_data.shared_bond_id
104
+ )
105
+
106
+ def _confirm_doc(self):
107
+ return DynamicField(name="confirmDoc", value="no")
@@ -1,22 +1,38 @@
1
1
  # coding: utf-8
2
- from otrs_somconnexio.otrs_models.configurations.mobile_ticket import MobileTicketConfiguration
2
+ from otrs_somconnexio.otrs_models.configurations.provision.mobile_ticket import (
3
+ MobileTicketConfiguration,
4
+ MobileTicketPausedConfiguration,
5
+ )
3
6
  from otrs_somconnexio.otrs_models.mobile_dynamic_fields import MobileDynamicFields
4
7
  from otrs_somconnexio.otrs_models.provision_ticket import ProvisionTicket
5
8
 
6
9
 
7
10
  class MobileTicket(ProvisionTicket):
8
- def __init__(self, service_data, customer_data, otrs_configuration=None):
11
+ def __init__(
12
+ self, service_data, customer_data, responsible_data, otrs_configuration=None
13
+ ):
14
+ super(MobileTicket, self).__init__(responsible_data)
9
15
  self.service_data = service_data
10
16
  self.customer_data = customer_data
11
17
  self.otrs_configuration = MobileTicketConfiguration(otrs_configuration)
12
18
 
13
19
  def service_type(self):
14
- return 'mobile'
20
+ return "mobile"
15
21
 
16
22
  def _build_dynamic_fields(self):
17
23
  return MobileDynamicFields(
18
24
  self.service_data,
19
25
  self.customer_data,
20
26
  self._ticket_process_id(),
21
- self._ticket_activity_id()
27
+ self._ticket_activity_id(),
22
28
  ).all()
29
+
30
+
31
+ class MobilePausedTicket(MobileTicket):
32
+ def __init__(
33
+ self, service_data, customer_data, responsible_data, otrs_configuration=None
34
+ ):
35
+ super().__init__(
36
+ service_data, customer_data, responsible_data, otrs_configuration
37
+ )
38
+ self.otrs_configuration = MobileTicketPausedConfiguration(otrs_configuration)
@@ -1,67 +1,31 @@
1
- from datetime import datetime
2
-
3
- from otrs_somconnexio.services.mapping_services import ServiceMappingServices
4
1
  from otrs_somconnexio.otrs_models.process_ticket.mobile import MobileProcessTicket
2
+ from otrs_somconnexio.otrs_models.process_ticket.process_ticket import ProcessTicket
5
3
 
6
4
 
7
- class InternetProcessTicket():
8
- def __init__(self, otrs_response, service):
9
- self.response = otrs_response
10
- self.service = service
11
-
12
- @property
13
- def id(self):
14
- return self.response.field_get('TicketID')
15
-
16
- @property
17
- def number(self):
18
- return self.response.field_get('TicketNumber')
19
-
20
- @property
21
- def state(self):
22
- return self.response.field_get('State')
23
-
24
- @property
25
- def contract_id(self):
26
- return self.response.dynamic_field_get('IDContracte').value
27
-
28
- # Partner
29
- @property
30
- def partner_name(self):
31
- return self.response.dynamic_field_get('nomSoci').value
32
-
33
- @property
34
- def partner_surname(self):
35
- return self.response.dynamic_field_get('cognom1').value
36
-
37
- @property
38
- def partner_vat_number(self):
39
- return self.response.dynamic_field_get('NIFNIESoci').value
40
-
41
- # Service
42
- @property
43
- def owner_vat_number(self):
44
- return self.response.dynamic_field_get('NIFNIEtitular').value
45
-
5
+ class InternetProcessTicket(ProcessTicket):
46
6
  @property
47
7
  def previous_provider(self):
48
- return self.response.dynamic_field_get('proveidorPrevi').value
8
+ return self.response.dynamic_field_get("proveidorPrevi").value
49
9
 
50
10
  @property
51
11
  def service_address(self):
52
- return self.response.dynamic_field_get('direccioServei').value
12
+ return self.response.dynamic_field_get("direccioServei").value
53
13
 
54
14
  @property
55
15
  def service_city(self):
56
- return self.response.dynamic_field_get('poblacioServei').value
16
+ return self.response.dynamic_field_get("poblacioServei").value
57
17
 
58
18
  @property
59
19
  def service_subdivision(self):
60
- return self.response.dynamic_field_get('provinciaServei').value
20
+ return self.response.dynamic_field_get("provinciaServei").value
21
+
22
+ @property
23
+ def service_subdivision_code(self):
24
+ return self.response.dynamic_field_get("codiProvinciaServei").value
61
25
 
62
26
  @property
63
27
  def service_zip(self):
64
- return self.response.dynamic_field_get('CPservei').value
28
+ return self.response.dynamic_field_get("CPservei").value
65
29
 
66
30
  @property
67
31
  def extid(self):
@@ -69,17 +33,20 @@ class InternetProcessTicket():
69
33
  ADSL: IDcomanda ?
70
34
  Fiber: IDhogar ?
71
35
  """
72
- if self.response.dynamic_field_get('IDcomanda').value and self.response.dynamic_field_get('IDhogar').value:
36
+ if (
37
+ self.response.dynamic_field_get("IDcomanda").value
38
+ and self.response.dynamic_field_get("IDhogar").value
39
+ ):
73
40
  # TODO: Log possible error?
74
41
  pass
75
- if self.response.dynamic_field_get('IDcomanda').value:
76
- return self.response.dynamic_field_get('IDcomanda').value
77
- elif self.response.dynamic_field_get('IDhogar').value:
78
- return self.response.dynamic_field_get('IDhogar').value
42
+ if self.response.dynamic_field_get("IDcomanda").value:
43
+ return self.response.dynamic_field_get("IDcomanda").value
44
+ elif self.response.dynamic_field_get("IDhogar").value:
45
+ return self.response.dynamic_field_get("IDhogar").value
79
46
 
80
47
  @property
81
48
  def mac_address(self):
82
- return self.response.dynamic_field_get('MACaddress').value
49
+ return self.response.dynamic_field_get("MACaddress").value
83
50
 
84
51
  @property
85
52
  def reference(self):
@@ -87,87 +54,63 @@ class InternetProcessTicket():
87
54
  ADSL: numAdministratiuJazztel
88
55
  Fiber: pon
89
56
  """
90
- if self.response.dynamic_field_get('pon').value and \
91
- self.response.dynamic_field_get('numAdministratiuJazztel').value:
57
+ if (
58
+ self.response.dynamic_field_get("pon").value
59
+ and self.response.dynamic_field_get("numAdministratiuJazztel").value
60
+ ):
92
61
  # TODO: Log possible error?
93
62
  pass
94
- if self.response.dynamic_field_get('pon').value:
95
- return self.response.dynamic_field_get('pon').value
96
- elif self.response.dynamic_field_get('numAdministratiuJazztel').value:
97
- return self.response.dynamic_field_get('numAdministratiuJazztel').value
63
+ if self.response.dynamic_field_get("pon").value:
64
+ return self.response.dynamic_field_get("pon").value
65
+ elif self.response.dynamic_field_get("numAdministratiuJazztel").value:
66
+ return self.response.dynamic_field_get("numAdministratiuJazztel").value
98
67
 
99
68
  @property
100
69
  def endpoint_user(self):
101
- return self.response.dynamic_field_get('usuariEndpoint').value
70
+ return self.response.dynamic_field_get("usuariEndpoint").value
102
71
 
103
72
  @property
104
73
  def endpoint_password(self):
105
- return self.response.dynamic_field_get('contrasenyaEndpoint').value
74
+ return self.response.dynamic_field_get("contrasenyaEndpoint").value
106
75
 
107
76
  @property
108
77
  def ppp_user(self):
109
- return self.response.dynamic_field_get('usuariPPP').value
78
+ return self.response.dynamic_field_get("usuariPPP").value
110
79
 
111
80
  @property
112
81
  def ppp_password(self):
113
- return self.response.dynamic_field_get('serialNumber').value
114
-
115
- @property
116
- def invoices_start_date(self):
117
- """ Convert the string in a datetime object to be returned """
118
- invoices_start_date = self.response.dynamic_field_get('dataIniciFacturacio').value
119
- return datetime.strptime(invoices_start_date, '%Y-%m-%d %H:%M:%S')
120
-
121
- @property
122
- def service_technology(self):
123
- """ Return is the service is fiber or adsl """
124
- service_tech = self.response.dynamic_field_get('TecDelServei').value
125
- return ServiceMappingServices.service(service_tech)
82
+ return self.response.dynamic_field_get("serialNumber").value
126
83
 
127
84
  @property
128
85
  def msisdn(self):
129
- """ Return the assigned number. """
130
- return self.response.dynamic_field_get('telefonFixAssignat').value
86
+ """Return the assigned number."""
87
+ return self.response.dynamic_field_get("telefonFixAssignat").value
131
88
 
132
89
  # ADSL
133
90
  @property
134
91
  def landline(self):
135
- return self.response.dynamic_field_get('serveiFix').value
92
+ return self.response.dynamic_field_get("serveiFix").value
136
93
 
137
94
  @property
138
95
  def landline_minutes(self):
139
- return self.response.dynamic_field_get('minutsInclosos').value
96
+ return self.response.dynamic_field_get("minutsInclosos").value
140
97
 
141
98
  @property
142
99
  def keep_landline_number(self):
143
- return self.response.dynamic_field_get('mantenirFix').value
100
+ return self.response.dynamic_field_get("mantenirFix").value
144
101
 
145
102
  # Fiber
146
103
  @property
147
104
  def speed(self):
148
- return self.response.dynamic_field_get('velocitatSollicitada').value
149
-
150
- @property
151
- def notes(self):
152
- return self.response.dynamic_field_get('notes').value
105
+ return self.response.dynamic_field_get("velocitatSollicitada").value
153
106
 
154
107
  @property
155
108
  def icc(self):
156
109
  return MobileProcessTicket(self.response).icc
157
110
 
158
- @property
159
- def iban(self):
160
- return self.response.dynamic_field_get('IBAN').value
161
-
162
111
  @property
163
112
  def product_code(self):
164
- return self.response.dynamic_field_get('productBA').value
165
-
166
- def confirmed(self):
167
- return self.state == 'closed successful'
168
-
169
- def cancelled(self):
170
- return self.state == 'closed unsuccessful'
113
+ return self.response.dynamic_field_get("productBA").value
171
114
 
172
115
  def paused_without_coverage(self):
173
- return (not self.service.has_coverage())
116
+ return not self.service.has_coverage()
@@ -1,89 +1,109 @@
1
1
  from datetime import datetime
2
2
 
3
+ from otrs_somconnexio.otrs_models.process_ticket.process_ticket import ProcessTicket
3
4
  from otrs_somconnexio.services.mapping_mobile_minutes import ServiceMappingMobileMinutes
4
5
 
5
6
 
6
- class MobileProcessTicket:
7
- def __init__(self, otrs_response, _):
8
- self.response = otrs_response
7
+ class MobileProcessTicket(ProcessTicket):
8
+ @property
9
+ def msisdn(self):
10
+ """Return the assigned number."""
11
+ return self.response.dynamic_field_get("liniaMobil").value
9
12
 
10
13
  @property
11
- def id(self):
12
- return self.response.field_get('TicketID')
14
+ def service_type(self):
15
+ """Return the mobile service type."""
16
+ return self.response.dynamic_field_get("tipusServeiMobil").value
13
17
 
14
18
  @property
15
- def number(self):
16
- return self.response.field_get('TicketNumber')
19
+ def data(self):
20
+ return self.response.dynamic_field_get("dadesMobil").value
17
21
 
18
22
  @property
19
- def state(self):
20
- return self.response.field_get('State')
23
+ def minutes(self):
24
+ return ServiceMappingMobileMinutes.minutes(
25
+ self.response.dynamic_field_get("minutsMobil").value
26
+ )
21
27
 
22
28
  @property
23
- def partner_name(self):
24
- return self.response.dynamic_field_get('nomSoci').value
29
+ def icc(self):
30
+ return self.response.dynamic_field_get("ICCSC").value
25
31
 
26
32
  @property
27
- def partner_surname(self):
28
- return self.response.dynamic_field_get('cognom1').value
33
+ def donor_icc(self):
34
+ return self.response.dynamic_field_get("ICCdonant").value
29
35
 
30
36
  @property
31
- def owner_vat_number(self):
32
- return self.response.dynamic_field_get('NIFNIEtitular').value
37
+ def previous_owner_name(self):
38
+ return self.response.dynamic_field_get("titular").value
33
39
 
34
40
  @property
35
- def partner_vat_number(self):
36
- return self.response.dynamic_field_get('NIFNIESoci').value
41
+ def previous_owner_surname(self):
42
+ return self.response.dynamic_field_get("cognom1Titular").value
37
43
 
38
44
  @property
39
- def contract_id(self):
40
- return self.response.dynamic_field_get('IDContracte').value
45
+ def previous_owner_docid(self):
46
+ return self.response.dynamic_field_get("dniTitularAnterior").value
41
47
 
42
48
  @property
43
- def invoices_start_date(self):
44
- """ Convert the string into a datetime object to be returned """
45
- invoices_start_date = self.response.dynamic_field_get('dataIniciFacturacio').value
46
- return datetime.strptime(invoices_start_date, '%Y-%m-%d %H:%M:%S')
49
+ def previous_provider(self):
50
+ return self.response.dynamic_field_get("operadorDonantMobil").value
47
51
 
48
52
  @property
49
- def notes(self):
50
- return self.response.dynamic_field_get('notes').value
53
+ def iban(self):
54
+ return self.response.dynamic_field_get("IBAN").value
51
55
 
52
56
  @property
53
- def service_technology(self):
54
- """ Return is the service is fiber or adsl """
55
- return 'mobile'
57
+ def product_code(self):
58
+ return self.response.dynamic_field_get("productMobil").value
56
59
 
57
60
  @property
58
- def msisdn(self):
59
- """ Return the assigned number. """
60
- return self.response.dynamic_field_get('liniaMobil').value
61
+ def delivery_street(self):
62
+ return self.response.dynamic_field_get("direccioEnviament").value
61
63
 
62
64
  @property
63
- def data(self):
64
- return self.response.dynamic_field_get('dadesMobil').value
65
+ def delivery_city(self):
66
+ return self.response.dynamic_field_get("poblacioEnviament").value
65
67
 
66
68
  @property
67
- def minutes(self):
68
- return ServiceMappingMobileMinutes.minutes(self.response.dynamic_field_get('minutsMobil').value)
69
+ def delivery_zip_code(self):
70
+ return self.response.dynamic_field_get("CPenviament").value
69
71
 
70
72
  @property
71
- def icc(self):
72
- return self.response.dynamic_field_get('ICCSC').value
73
+ def delivery_state(self):
74
+ return self.response.dynamic_field_get("provinciaEnviament").value
73
75
 
74
76
  @property
75
- def iban(self):
76
- return self.response.dynamic_field_get('IBAN').value
77
+ def international_minutes(self):
78
+ return self.response.dynamic_field_get("abonamentInternacional").value
77
79
 
78
80
  @property
79
- def product_code(self):
80
- return self.response.dynamic_field_get('productMobil').value
81
+ def fiber_contract_code(self):
82
+ return self.response.dynamic_field_get("OdooContractRefRelacionat").value
83
+
84
+ @property
85
+ def shared_bond_id(self):
86
+ return self.response.dynamic_field_get("IDAbonamentCompartit").value
87
+
88
+ @property
89
+ def activation_date(self):
90
+ """Convert the string in a datetime object to be returned"""
91
+ date = self.response.dynamic_field_get("dataActivacioLiniaMobil").value
92
+ return datetime.strptime(date, "%Y-%m-%d %H:%M:%S")
93
+
94
+ @property
95
+ def mobile_service_type(self):
96
+ return self.response.dynamic_field_get("tipusServeiMobil").value
97
+
98
+ @property
99
+ def confirmed_documentation(self):
100
+ return self.response.dynamic_field_get("confirmDoc").value
81
101
 
82
102
  def confirmed(self):
83
- return self.state == 'closed successful'
103
+ return self.state == "closed successful"
84
104
 
85
105
  def cancelled(self):
86
- return self.state == 'closed unsuccessful'
106
+ return self.state == "closed unsuccessful"
87
107
 
88
108
  def paused_without_coverage(self):
89
109
  return False
@@ -0,0 +1,74 @@
1
+ from datetime import datetime
2
+ from otrs_somconnexio.services.mapping_services import ServiceMappingServices
3
+
4
+
5
+ class ProcessTicket:
6
+ def __init__(self, otrs_response, service=None):
7
+ self.response = otrs_response
8
+ self.service = service
9
+
10
+ @property
11
+ def id(self):
12
+ return self.response.field_get("TicketID")
13
+
14
+ @property
15
+ def number(self):
16
+ return self.response.field_get("TicketNumber")
17
+
18
+ @property
19
+ def queue(self):
20
+ return self.response.field_get("Queue")
21
+
22
+ @property
23
+ def queue_id(self):
24
+ return self.response.field_get("QueueID")
25
+
26
+ @property
27
+ def state(self):
28
+ return self.response.field_get("State")
29
+
30
+ @property
31
+ def contract_id(self):
32
+ return self.response.dynamic_field_get("IDContracte").value
33
+
34
+ # Partner
35
+ @property
36
+ def partner_name(self):
37
+ return self.response.dynamic_field_get("nomSoci").value
38
+
39
+ @property
40
+ def partner_surname(self):
41
+ return self.response.dynamic_field_get("cognom1").value
42
+
43
+ @property
44
+ def partner_vat_number(self):
45
+ return self.response.dynamic_field_get("NIFNIESoci").value
46
+
47
+ # Service
48
+ @property
49
+ def owner_vat_number(self):
50
+ return self.response.dynamic_field_get("NIFNIEtitular").value
51
+
52
+ @property
53
+ def iban(self):
54
+ return self.response.dynamic_field_get("IBAN").value
55
+
56
+ @property
57
+ def invoices_start_date(self):
58
+ """Convert the string in a datetime object to be returned"""
59
+ invoices_start_date = self.response.dynamic_field_get(
60
+ "dataIniciFacturacio"
61
+ ).value
62
+ return datetime.strptime(invoices_start_date, "%Y-%m-%d %H:%M:%S")
63
+
64
+ @property
65
+ def service_technology(self):
66
+ """Return is the service is fiber or adsl"""
67
+ service_tech = self.response.dynamic_field_get("TecDelServei").value
68
+ return ServiceMappingServices.service(service_tech)
69
+
70
+ def confirmed(self):
71
+ return self.state == "closed successful"
72
+
73
+ def cancelled(self):
74
+ return self.state == "closed unsuccessful"
@@ -1,6 +1,7 @@
1
1
  class Providers:
2
2
  VALUES = [
3
- ('scJazztel', 'SC-Jazztel (ADSL)'),
4
- ('scMM', 'SC-MM'),
5
- ('scVdf', 'SC-Vdf')
3
+ ("scJazztel", "SC-Jazztel (ADSL)"),
4
+ ("scMM", "SC-MM"),
5
+ ("scVdf", "SC-Vdf"),
6
+ ("scOrange", "SC-Orange (Fiber)"),
6
7
  ]
@@ -1,10 +1,12 @@
1
1
  # coding: utf-8
2
2
  from otrs_somconnexio.otrs_models.abstract_article import AbstractArticle
3
+ from otrs_somconnexio.services.get_ticket_title import GetTicketTitle
3
4
 
4
5
 
5
6
  class ProvisionArticle(AbstractArticle):
6
- def __init__(self, service_type, order_id):
7
- self.subject = "Sol·licitud {} {}".format(
8
- service_type,
9
- order_id
10
- )
7
+ def __init__(self, technology, order_id, service_type, notes=""):
8
+ subject = GetTicketTitle(technology, order_id, service_type).build()
9
+ self.subject = subject
10
+ if notes:
11
+ self.isVisibleForCustomer = "0"
12
+ self.body = notes