Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. import os
  2. import json
  3. import requests
  4. from xmlrpc import client
  5. import ssl
  6.  
  7. class KUDO:
  8. def __init__(self, **config):
  9. self.host = config["host"]
  10. self.key = config["key"]
  11.  
  12. def GetProducts(self):
  13. r = self.get("products")
  14. return r
  15.  
  16. def get(self, path):
  17. headers = {"Authorization": self.key}
  18. s = requests.Session()
  19. response = s.get(self.host.format(path), headers=headers)
  20. return response
  21.  
  22. #def coba():
  23. def coba(product_list, categ_id):
  24. # product_code = "TSV50"
  25.  
  26. if product_list['product_status'] == 'Active':
  27. product_status = True
  28. else:
  29. product_status = False
  30.  
  31. # url = os.getenv('url')
  32. # db = os.getenv('db')
  33. url = os.getenv('URL')
  34. db = os.getenv('DB')
  35. username = os.getenv('USERNAME')
  36. password = os.getenv('PASSWORD')
  37.  
  38. context = ssl.SSLContext()
  39. common = client.ServerProxy('{}/xmlrpc/2/common'.format(url), context=context)
  40. uid = common.authenticate(db, username, password, {})
  41.  
  42. models = client.ServerProxy('{}/xmlrpc/2/object'.format(url), context=context)
  43.  
  44. # product_id = models.execute_kw(db, uid, password, 'product.template', 'search_read', [[['barcode', '=', product_list['product_code']]]],
  45. # {'fields': ['product_tmpl_id']})
  46. # print (product_id[0]['id'])
  47.  
  48. products_id = models.execute_kw(db, uid, password, 'product.template', 'search', [[['default_code', '=', product_list['product_code']]]])
  49.  
  50. product_template = {
  51. "name": product_list["product_name"],
  52. "description": product_list["product_description"],
  53. "type": "service",
  54. "categ_id": categ_id,
  55. "list_price": product_list["product_nominal"],
  56. # "uom": "Pcs",
  57. # "uom_po": "Pcs",
  58. "active": product_status,
  59. "default_code": product_list['product_code'],
  60. "available_in_pos": True,
  61. "invoice_policy": "order",
  62. # "barcode": product_list['product_code'],
  63. #"standard_price": product_list["product_b2b_price"],
  64. "image_medium": False
  65. }
  66.  
  67. if products_id:
  68. for product_id in products_id:
  69. print (product_id)
  70.  
  71. update = models.execute_kw(db, uid, password, 'product.template', 'write', [[product_id], product_template])
  72.  
  73. print (update)
  74.  
  75. product_product = models.execute_kw(db, uid, password, 'product.product', 'search',
  76. [[['product_tmpl_id', '=', product_id]]])
  77. models.execute_kw(db, uid, password, 'product.product', 'write', [[product_product[0]],
  78. {
  79. 'standard_price': product_list["product_b2b_price"]
  80. }])
  81. else:
  82. create = models.execute_kw(db, uid, password, 'product.template', 'create', [product_template])
  83. product_product = models.execute_kw(db, uid, password, 'product.product', 'search',
  84. [[['product_tmpl_id', '=', create[0]]]])
  85. models.execute_kw(db, uid, password, 'product.product', 'write', [[product_product[0]],
  86. {
  87. 'standard_price': product_list["product_b2b_price"]
  88. }])
  89. print (create)
  90.  
  91. def get_products():
  92. #db = repository.Models( connection = CONNECTION)
  93. ppob = KUDO(
  94. host = os.getenv('KUDO_HOST'),
  95. key = os.getenv('KUDO_API_KEY'),
  96. )
  97. resp = ppob.GetProducts()
  98. #print (resp.json())
  99. return resp.json()
  100.  
  101. def main(event, context):
  102.  
  103. data = get_products()
  104. # with open('products-of-kudo.json') as json_data:
  105. # data = json.load(json_data,)
  106. #print (data)
  107.  
  108. product_list = data['data'][0]['product_categories'][0]['product_groups'][0]['product_list'][0]
  109.  
  110. i = 0
  111. for data in data['data']:
  112. for product_categories in data['product_categories']:
  113. for product_groups in product_categories['product_groups']:
  114. for product_list in product_groups['product_list']:
  115. if product_categories['product_category_id'] == 7:
  116. categ_id = 43
  117. # categ_id = 19
  118. categ_id = os.getenv('CATEG_ID_PULSA')
  119. coba(product_list, categ_id)
  120. elif product_categories['product_category_id'] == 8:
  121. categ_id = 44
  122. # categ_id = 20 #
  123. categ_id = os.getenv('PAKETDATA')
  124. coba(product_list, categ_id)
  125. elif product_categories['product_category_id'] == 9 and product_groups['product_group_type'] == 'postpaid':
  126. categ_id = 45
  127. # categ_id = 21 #
  128. categ_id = os.getenv('PLNPASCABAYAR')
  129. coba(product_list, categ_id)
  130. elif product_categories['product_category_id'] == 9 and product_groups['product_group_type'] == 'prepaid':
  131. categ_id = 47
  132. #categ_id = 22 #
  133. categ_id = os.getenv('PLNPRABAYAR')
  134. coba(product_list, categ_id)
  135. else:
  136. categ_id = 0
  137. print ("grup %s" % (categ_id))
  138.  
  139. # response = {
  140. # "statusCode": 200,
  141. # "body": json.dumps(body)
  142. # }
  143.  
  144. # return response
  145.  
  146. if __name__ == '__main__':
  147. data = {"body": "{\n\t\"nama\":\"Karkar\",\n\t\"email\":\"@warungpintar.co\",\n\t\"phone\":\"21432423432432\",\n\t\"domisili\":\"jakarta\",\n\t\"ada_lahan\":\"Ya\",\n\t\"refferal_mitra\":\"Lainnya\",\n\t\"OTHER_REFF\":\"\"\n}"}
  148.  
  149. result = main(data, '')
  150. #print (result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement