eiru_pos.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # -*- coding: utf-8 -*-
  2. import logging
  3. from openerp import api, fields, models
  4. _logger = logging.getLogger(__name__)
  5. class eiru_pos(models.Model):
  6. _name = 'eiru.pos'
  7. # Get company
  8. @api.model
  9. def get_company(self):
  10. user = self.env.user
  11. return {
  12. 'id': user.company_id.id,
  13. 'name': user.company_id.name,
  14. # 'store': {
  15. # 'id': user.company_id.store_id.id,
  16. # 'name': user.company_id.store_id.name
  17. # }
  18. }
  19. # Get all products
  20. @api.model
  21. def get_products(self):
  22. domain = [('sale_ok', '=', True), ('active', '=', True)]
  23. products = []
  24. for product in self.env['product.template'].search(domain):
  25. variants = []
  26. for variant in product.product_variant_ids:
  27. if not variant.active:
  28. continue
  29. attributes = []
  30. for attribute_line in variant.attribute_line_ids:
  31. values = []
  32. for value in attribute_line.value_ids:
  33. values.append({
  34. 'id': value.id,
  35. 'display_name': value.display_name,
  36. 'name': value.name,
  37. 'price_extra': value.price_extra
  38. })
  39. attributes.append({
  40. 'id': attribute_line.id,
  41. 'attribute': {
  42. 'id': attribute_line.attribute_id.id,
  43. 'name': attribute_line.attribute_id.name
  44. },
  45. 'values': values
  46. })
  47. variants.append({
  48. 'id': variant.id,
  49. 'display_name': variant.display_name,
  50. 'ean13': variant.ean13,
  51. 'image_medium': variant.image_medium,
  52. 'list_price': variant.list_price,
  53. 'name': variant.name,
  54. 'qty_available': variant.qty_available,
  55. 'attributes': attributes
  56. })
  57. products.append({
  58. 'id': product.id,
  59. 'display_name': product.display_name,
  60. 'ean13': product.ean13,
  61. 'image_medium': product.image_medium,
  62. 'list_price': product.list_price,
  63. 'name': product.name,
  64. 'qty_available': product.qty_available,
  65. 'category': {
  66. 'id': product.categ_id.id,
  67. 'display_name': product.categ_id.display_name,
  68. 'name': product.categ_id.name,
  69. 'account_journal': {
  70. 'id': product.categ_id.property_stock_journal.id,
  71. 'code': product.categ_id.property_stock_journal.code,
  72. 'company': {
  73. 'id': product.categ_id.property_stock_journal.company_id.id,
  74. 'name': product.categ_id.property_stock_journal.company_id.name,
  75. 'currency': {
  76. 'id': product.categ_id.property_stock_journal.company_id.currency_id.id,
  77. 'name': product.categ_id.property_stock_journal.company_id.currency_id.name
  78. }
  79. },
  80. 'currency': {
  81. 'id': product.categ_id.property_stock_journal.currency.id,
  82. 'name': product.categ_id.property_stock_journal.currency.name
  83. },
  84. 'display_name': product.categ_id.property_stock_journal.display_name,
  85. 'name': product.categ_id.property_stock_journal.name,
  86. }
  87. },
  88. 'uom': {
  89. 'id': product.uom_id.id,
  90. 'name': product.uom_id.name
  91. },
  92. 'uos': {
  93. 'id': product.uos_id.id,
  94. 'name': product.uos_id.name
  95. },
  96. 'variant_count': product.product_variant_count,
  97. 'variants': variants
  98. })
  99. return products
  100. # Get all currencies
  101. @api.model
  102. def get_currencies(self):
  103. domain = [('active', '=', True)]
  104. currencies = []
  105. # if self.env.user.store_id:
  106. # domain.append(('company_id', '=', self.env.user.store_id.company_id.id))
  107. # else:
  108. # domain.append(('company_id', '=', self.env.user.company_id.id))
  109. # print domain
  110. for currency in self.env['res.currency'].search(domain):
  111. currencies.append({
  112. 'id': currency.id,
  113. 'name': currency.name,
  114. 'display_name': currency.display_name,
  115. 'accuracy': currency.accuracy,
  116. 'base': currency.base,
  117. 'position': currency.position,
  118. 'rate': currency.rate,
  119. 'rounding': currency.rounding,
  120. 'symbol': currency.symbol,
  121. 'company': {
  122. 'id': currency.company_id.id,
  123. 'name': currency.company_id.name
  124. }
  125. })
  126. return currencies
  127. class eiru_pos_session(models.Model):
  128. _name = 'eiru.pos.session'
  129. # Get all sessions
  130. def get_sessions(self):
  131. pass