Guest User

Untitled

a guest
Jun 21st, 2022
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.82 KB | None | 0 0
  1. from spyne import ComplexModel, String, Integer, Array, Date, Boolean, Decimal, DateTime
  2.  
  3. from exim.models import ExportFSS, ImportFSS
  4. import uuid
  5.  
  6. guid = String.customize(
  7. max_length=36, pattern='[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}',
  8. nullable=True)
  9. send_date_time = DateTime.customize(
  10. format="%Y-%m-%dT%H:%M:%SZ", nullable=False)
  11. status = String.customize(min_occurs=0, max_occurs=1)
  12. status_code = Integer.customize(min_occurs=0, max_occurs=1)
  13. inspector = String.customize(min_occurs=0, max_occurs=1, max_length=255)
  14.  
  15.  
  16. class Man(ComplexModel):
  17. man_name = String.customize(max_length=255, nullable=False)
  18. man_father_name = String.customize(max_length=255, nullable=False)
  19. man_family = String.customize(max_length=255, nullable=False)
  20.  
  21.  
  22. class Consignor(ComplexModel):
  23. code = String.customize(min_occurs=0, max_length=10, nullable=True)
  24. name = String.customize(max_length=255, nullable=False)
  25. identifier = String.customize(max_length=30, nullable=True)
  26. identifier_2 = String.customize(max_length=30, nullable=True)
  27. place = String.customize(max_length=512, nullable=False)
  28. address = String.customize(min_occurs=0, max_length=512, nullable=True)
  29. address_code = String.customize(min_occurs=0, max_length=36, nullable=True)
  30. agent = String.customize(max_length=255, nullable=True)
  31. agent_code = Integer.customize(min_occurs=0, nullable=True)
  32. behalf = String.customize(min_occurs=0, max_length=512, nullable=True)
  33. man = Man
  34. type = Integer
  35.  
  36.  
  37. class Consignee(ComplexModel):
  38. code = String.customize(min_occurs=0, max_length=10, nullable=True)
  39. name = String.customize(max_length=255, nullable=False)
  40. identifier = String.customize(max_length=30, nullable=True)
  41. identifier_2 = String.customize(max_length=30, nullable=True)
  42. place = String.customize(max_length=512, nullable=False)
  43. address = String.customize(min_occurs=0, max_length=512, nullable=True)
  44. address_code = String.customize(min_occurs=0, max_length=36, nullable=True)
  45. agent = String.customize(max_length=255, nullable=True)
  46. agent_code = Integer.customize(min_occurs=0, nullable=True)
  47. behalf = String.customize(min_occurs=0, max_length=512, nullable=True)
  48. man = Man
  49. type = Integer
  50.  
  51.  
  52. class Transport(ComplexModel):
  53. __namespace__ = ''
  54. name = String.customize(min_occurs=0, max_length=255, nullable=True)
  55. number = String.customize(max_length=512, nullable=False)
  56. country_code = String.customize(
  57. min_occurs=0, max_length=2, pattern='[A-Z]', nullable=True)
  58. declared_type = String.customize(max_length=100, nullable=False)
  59. declared_type_code = Integer
  60. arrival_date = Date.customize(
  61. min_occurs=0, format='%Y-%m-%d', nullable=True)
  62. arrival_place = String.customize(
  63. min_occurs=0, max_length=512, nullable=True)
  64. document = String.customize(min_occurs=0, max_length=255, nullable=True)
  65. document_date = Date.customize(
  66. min_occurs=0, format='%Y-%m-%d', nullable=True)
  67. document_number = String.customize(
  68. min_occurs=0, max_length=255, nullable=True)
  69.  
  70.  
  71. class ProductDescription(ComplexModel):
  72. __namespace__ = ''
  73. name_rus = String.customize(max_length=1024, nullable=False)
  74. name_eng = String.customize(min_occurs=0, max_length=1024, nullable=True)
  75. name_botanic = String.customize(
  76. min_occurs=0, max_length=1024, nullable=False)
  77. hs = String.customize(min_occurs=0, max_length=512, nullable=True)
  78. hs_code = String.customize(
  79. min_occurs=0, min_length=4, max_length=10, nullable=False)
  80. origin_place = String.customize(max_length=512, nullable=False)
  81. origin_country = String.customize(max_length=100, nullable=False)
  82. origin_country_code = String.customize(
  83. min_occurs=0, max_length=2, pattern='[A-Z]', nullable=True)
  84. manufacturer = String.customize(
  85. min_occurs=0, max_length=255, nullable=False)
  86. manufacturer_code = Integer.customize(min_occurs=0, nullable=True)
  87. manufacturer_identifier = String.customize(
  88. min_occurs=0, max_length=30, nullable=True)
  89. manufacturer_identifier_2 = String.customize(
  90. min_occurs=0, max_length=30, nullable=True)
  91. manufacturer_place = String.customize(
  92. min_occurs=0, max_length=512, nullable=True)
  93. quantity = Decimal.customize(fraction_digits=3, nullable=False)
  94. quantity_unit = String.customize(max_length=100, nullable=False)
  95. quantity_unit_code = String.customize(
  96. min_occurs=0, max_length=3, nullable=True)
  97. quantity_gross = Decimal.customize(
  98. min_occurs=0, fraction_digits=3, nullable=True)
  99. quantity_gross_unit = String.customize(max_length=100, nullable=True)
  100. quantity_gross_unit_code = String.customize(
  101. min_occurs=0, max_length=3, nullable=True)
  102. quantity_special = Decimal.customize(fraction_digits=3, nullable=True)
  103. quantity_special_unit = String.customize(max_length=100, nullable=True)
  104. quantity_special_unit_code = String.customize(
  105. min_occurs=0, max_length=3, nullable=True)
  106. packages = Integer.customize(min_occurs=0, nullable=True)
  107. packages_unit = String.customize(max_length=100, nullable=True)
  108. packages_unit_code = String.customize(
  109. min_occurs=0, max_length=3, nullable=True)
  110. packages_type = String.customize(max_length=100, nullable=True)
  111. packages_type_code = String.customize(
  112. max_length=2, pattern='[0-9A-Z]', nullable=True)
  113. packages_description = String.customize(
  114. min_occurs=0, max_length=512, nullable=True)
  115. volume = Decimal.customize(min_occurs=0, fraction_digits=3, nullable=True)
  116. volume_unit = String.customize(max_length=100, nullable=True)
  117. volume_unit_code = String.customize(
  118. min_occurs=0, max_length=3, nullable=True)
  119. marking = String.customize(min_occurs=0, max_length=255, nullable=True)
  120. expert_opinion_date = Date.customize(
  121. min_occurs=0, format='%Y-%m-%d', nullable=True)
  122. expert_opinion_number = String.customize(
  123. min_occurs=0, max_length=255, nullable=True)
  124. expert_samples = String.customize(
  125. min_occurs=0, max_length=512, nullable=True)
  126. additional_info = String.customize(
  127. min_occurs=0, max_length=2000, nullable=True)
  128.  
  129.  
  130. class Disinfection(ComplexModel):
  131. date = Date.customize(min_occurs=0, format='%Y-%m-%d', nullable=True)
  132. method = String.customize(min_occurs=0, max_length=100, nullable=True)
  133. chemical = String.customize(min_occurs=0, max_length=100, nullable=True)
  134. temperature_times = String.customize(
  135. min_occurs=0, max_length=100, nullable=True)
  136. concentration = String.customize(
  137. min_occurs=0, max_length=100, nullable=True)
  138. additional_info = String.customize(
  139. min_occurs=0, max_length=2000, nullable=True)
  140.  
  141.  
  142. class CertificateMinimumType(ComplexModel):
  143. guid = guid
  144. send_date_time = send_date_time
  145. date = Date.customize(format='%Y-%m-%d', nullable=False)
  146. number = String.customize(max_length=100, nullable=False)
  147. blanc = String.customize(max_length=100, nullable=False)
  148. country_code = String.customize(
  149. max_length=2, pattern='[A-Z]{2}', nullable=True)
  150. expiration_date = Date.customize(format='%Y-%m-%d', nullable=True)
  151. cancelled = Boolean.customize(nullable=True)
  152. issue_place = String.customize(max_length=255, nullable=True)
  153. inspector = inspector
  154.  
  155. # @staticmethod
  156. # def generate(valid=False):
  157. # return {
  158. # 'date': ExportFSS.given_date,
  159. # 'number': ExportFSS.number,
  160. # 'blanc': ExportFSS.order_number,
  161. # 'country_code': ExportFSS.exporter_country.code,
  162. # 'expiration_date': None,
  163. # 'cancelled': "false",
  164. # 'issue_place': ExportFSS.point.name_ru,
  165. # 'inspector': ExportFSS.inspector_name
  166.  
  167. # } if valid else {
  168. # 'date': None,
  169. # 'number': None,
  170. # 'blanc': None,
  171. # 'country_code': None,
  172. # 'expiration_date': None,
  173. # 'cancelled': None,
  174. # 'issue_place': None,
  175. # 'inspector': None
  176. # }
  177.  
  178. @staticmethod
  179. def generate(valid=False):
  180. return {
  181. 'date': '2022-03-31',
  182. 'number': 'UZ33333',
  183. 'blanc': 'UZ33333',
  184. 'country_code': 'UZ',
  185. 'expiration_date': '0001-01-01',
  186. 'cancelled': "false",
  187. 'issue_place': 'Республика Узбекистан, ',
  188. 'inspector': 'Абдуллаев'
  189.  
  190. } if valid else {
  191. 'date': None,
  192. 'number': None,
  193. 'blanc': None,
  194. 'country_code': None,
  195. 'expiration_date': None,
  196. 'cancelled': None,
  197. 'issue_place': None,
  198. 'inspector': None
  199. }
  200.  
  201. @staticmethod
  202. def guid_generate():
  203. return str(uuid)
  204.  
  205. class CertificateMaximumType(ComplexModel):
  206. guid = guid
  207. send_date_time = send_date_time
  208. date = Date.customize(format='%Y-%m-%d', nullable=False)
  209. number = String.customize(max_length=100, nullable=False)
  210. blanc = String.customize(max_length=100, nullable=False)
  211. country_code = String.customize(
  212. max_length=2, pattern='[A-Z]{2}', nullable=True)
  213. expiration_date = Date.customize(format='%Y-%m-%d', nullable=True)
  214. cancelled = Boolean.customize(nullable=True)
  215. issue_place = String.customize(max_length=255, nullable=True)
  216. inspector = inspector
  217. departure_country = String.customize(max_length=100, nullable=False)
  218. departure_country_code = String.customize(
  219. max_length=2, pattern='[A-Z]{2}', nullable=False)
  220. destination_country = String.customize(max_length=100, nullable=False)
  221. destination_country_code = String.customize(
  222. max_length=2, pattern='[A-Z]{2}', nullable=False)
  223. entry_checkpoint = String.customize(max_length=255, nullable=False)
  224. entry_checkpoint_code = Integer.customize(nullable=True)
  225. consignor = Consignor
  226. consignee = Consignee
  227. transport = Transport
  228. product_description = ProductDescription
  229. general_marking = String.customize(max_length=512, nullable=True)
  230. general_quarantine_condition = String.customize(
  231. max_length=512, nullable=True)
  232. general_base_document = String.customize(max_length=512, nullable=True)
  233. general_additional_declaration = String.customize(
  234. max_length=4000, nullable=True)
  235. general_mandatory_actions = String.customize(max_length=512, nullable=True)
  236. disinfection = Disinfection
  237. additional_info = String.customize(max_length=2000, nullable=True)
  238. annex_doc = String.customize(max_length=100000, nullable=True)
  239. annex_text = String.customize(max_length=4000, nullable=True)
  240.  
  241.  
  242. class ActMinimumType(ComplexModel):
  243. guid = guid
  244. send_date_time = send_date_time
  245. date = Date.customize(format='%Y-%m-%d', nullable=False)
  246. number = String.customize(max_length=100, nullable=False)
  247. blanc = String.customize(max_length=100, nullable=False)
  248. old_date = Date.customize(format='%Y-%m-%d', nullable=True)
  249. old_number = String.customize(max_length=100, nullable=True)
  250. old_blanc = String.customize(max_length=100, nullable=True)
  251. country_code = String.customize(
  252. max_length=2, pattern='[A-Z]{2}', nullable=True)
  253. issue_place = String.customize(max_length=255, nullable=True)
  254. inspector = inspector
  255. inspection_result = String.customize(max_length=255, nullable=False)
  256. inspection_result_code = Integer.customize(nullable=False)
  257. inspection_result_report = String.customize(max_length=512, nullable=False)
  258. inspection_type = String.customize(
  259. min_occurs=0, max_length=255, nullable=True)
  260. inspection_type_code = Integer.customize(min_occurs=0, nullable=True)
  261.  
  262.  
  263. class ActMaximumType(ComplexModel):
  264. guid = guid
  265. send_date_time = send_date_time
  266. date = Date.customize(format='%Y-%m-%d', nullable=False)
  267. number = String.customize(max_length=100, nullable=False)
  268. blanc = String.customize(max_length=100, nullable=False)
  269. old_date = Date.customize(format='%Y-%m-%d', nullable=True)
  270. old_number = String.customize(max_length=100, nullable=True)
  271. old_blanc = String.customize(max_length=100, nullable=True)
  272. country_code = String.customize(
  273. max_length=2, pattern='[A-Z]{2}', nullable=True)
  274. issue_place = String.customize(max_length=255, nullable=True)
  275. inspector = inspector
  276. inspection_result = String.customize(max_length=255, nullable=False)
  277. inspection_result_code = Integer.customize(nullable=False)
  278. inspection_result_report = String.customize(max_length=512, nullable=False)
  279. inspection_type = String.customize(
  280. min_occurs=0, max_length=255, nullable=True)
  281. inspection_type_code = Integer.customize(min_occurs=0, nullable=True)
  282. certificate = CertificateMaximumType
  283. expert_opinion_date = Date.customize(
  284. min_occurs=0, format='%Y-%m-%d', nullable=True)
  285. expert_opinion_number = String.customize(
  286. min_occurs=0, max_length=255, nullable=True)
  287. expert_samples = String.customize(
  288. min_occurs=0, max_length=512, nullable=True)
  289. departure_country = String.customize(max_length=100, nullable=False)
  290. departure_country_code = String.customize(
  291. max_length=2, pattern='[A-Z]{2}', nullable=False)
  292. destination_country = String.customize(max_length=100, nullable=False)
  293. destination_country_code = String.customize(
  294. max_length=2, pattern='[A-Z]{2}', nullable=False)
  295. consignor = Consignor
  296. consignee = Consignee
  297. transport = Transport
  298. general_marking = String.customize(max_length=512, nullable=True)
  299. general_quarantine_condition = String.customize(
  300. max_length=512, nullable=True)
  301. general_base_document = String.customize(max_length=512, nullable=True)
  302. general_additional_declaration = String.customize(
  303. max_length=4000, nullable=True)
  304. general_mandatory_actions = String.customize(max_length=512, nullable=True)
  305. disinfection = Disinfection
  306. additional_info = String.customize(max_length=2000, nullable=True)
  307. annex_doc = String.customize(max_length=100000, nullable=True)
  308. annex_text = String.customize(max_length=4000, nullable=True)
  309.  
  310.  
  311. class Request1Type(ComplexModel):
  312. guid = guid
  313. send_date_time = send_date_time
  314. certificate = CertificateMinimumType
  315. status = status
  316. status_code = status_code
  317. inspector = inspector
  318.  
  319.  
  320. class Request31Type(ComplexModel):
  321. guid = guid
  322. send_date_time = send_date_time
  323. act = ActMaximumType
  324. phytosanitary_checkpoint = String.customize(
  325. min_occurs=0, max_occurs=1, max_length=255)
  326. phytosanitary_checkpoint_code = Integer.customize(
  327. min_occurs=0, max_occurs=1)
  328. status = status
  329. status_code = status_code
  330. inspector = inspector
  331.  
  332.  
  333. class Request91Type(ComplexModel):
  334. guid = guid
  335. send_date_time = send_date_time
  336. certificate = CertificateMaximumType
  337. status = status
  338. status_code = status_code
  339. inspector = inspector
  340.  
  341.  
  342. class Response11Type(ComplexModel):
  343. guid = guid
  344. send_date_time = send_date_time
  345. certificate = CertificateMaximumType
  346. status = status
  347. status_code = status_code
  348. inspector = inspector
  349.  
  350.  
  351. class Response12Type(ComplexModel):
  352. guid = guid
  353. send_date_time = send_date_time
  354. certificate = CertificateMinimumType
  355. status = status
  356. status_code = status_code
  357. inspector = inspector
  358.  
  359.  
  360. class Response3Type(ComplexModel):
  361. guid = guid
  362. send_date_time = send_date_time
  363. act = ActMinimumType
  364. status = status
  365. status_code = status_code
  366. inspector = inspector
  367.  
  368.  
  369. class Response91Type(ComplexModel):
  370. guid = guid
  371. send_date_time = send_date_time
  372. certificate = CertificateMinimumType
  373. status = status
  374. status_code = status_code
  375. inspector = inspector
  376.  
Advertisement
Add Comment
Please, Sign In to add comment