models.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api
  3. class AccountInvoice(models.Model):
  4. _inherit = 'account.invoice'
  5. ############################################################
  6. # ACCOUNT INVOICE
  7. ############################################################
  8. @api.model
  9. def getAccountInvoice(self,domain):
  10. AccountInvoice = self.env['account.invoice'].search(domain)
  11. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  12. values = []
  13. for invoice in AccountInvoice:
  14. values.append({
  15. 'id': invoice.id,
  16. 'type': invoice.type,
  17. 'state': invoice.state,
  18. 'number': invoice.number,
  19. 'journal_id': [
  20. invoice.journal_id.id,
  21. invoice.journal_id.name
  22. ],
  23. 'invoice_currency': [
  24. invoice.currency_id.id,
  25. invoice.currency_id.name,
  26. invoice.currency_id.rate
  27. ],
  28. 'company_currency': [
  29. invoice.company_id.currency_id.id,
  30. invoice.company_id.currency_id.name,
  31. invoice.company_id.currency_id.rate
  32. ],
  33. 'date_invoice': invoice.date_invoice,
  34. 'partner_id': [
  35. invoice.partner_id.id,
  36. invoice.partner_id.name,
  37. invoice.partner_id.ruc,
  38. ],
  39. 'supplier_invoice_number': invoice.supplier_invoice_number,
  40. 'user_id': [
  41. invoice.user_id.id,
  42. invoice.user_id.name
  43. ],
  44. 'period_id': [
  45. invoice.period_id.id,
  46. invoice.period_id.name
  47. ],
  48. 'amount_untaxed': invoice.amount_untaxed,
  49. 'residual': invoice.residual,
  50. 'amount_tax': invoice.amount_tax,
  51. 'amount_total': invoice.amount_total,
  52. 'amount_untaxed_currency': invoice.amount_untaxed * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  53. 'residual_currency': invoice.residual * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  54. 'amount_tax_currency': invoice.amount_tax * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  55. 'amount_total_currency': invoice.amount_total * (invoice.company_id.currency_id.rate / invoice.currency_id.rate),
  56. })
  57. return values
  58. ############################################################
  59. # POS ORDER
  60. ############################################################
  61. @api.model
  62. def getPosOrder(self,domain):
  63. PosOrder = self.env['pos.order'].search(domain)
  64. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  65. values = []
  66. for order in PosOrder:
  67. values.append({
  68. 'id': order.id,
  69. 'name': order.name,
  70. 'date_order': order.date_order,
  71. 'pricelist_id':[
  72. order.pricelist_id.id,
  73. order.pricelist_id.name,
  74. ],
  75. 'partner_id': [
  76. order.partner_id.id,
  77. order.partner_id.name,
  78. order.partner_id.ruc,
  79. ],
  80. 'user_id': [
  81. order.user_id.id,
  82. order.user_id.name
  83. ],
  84. 'order_currency': [
  85. order.pricelist_id.currency_id.id,
  86. order.pricelist_id.currency_id.name,
  87. order.pricelist_id.currency_id.rate
  88. ],
  89. 'company_currency': [
  90. order.company_id.currency_id.id,
  91. order.company_id.currency_id.name,
  92. order.company_id.currency_id.rate
  93. ],
  94. 'amount_tax': order.amount_tax,
  95. 'amount_total': order.amount_total,
  96. 'amount_tax_currency': order.amount_tax * (order.company_id.currency_id.rate / order.pricelist_id.currency_id.rate),
  97. 'amount_total_currency': order.amount_total * (order.company_id.currency_id.rate / order.pricelist_id.currency_id.rate),
  98. })
  99. return values
  100. class AccountInvoiceLine(models.Model):
  101. _inherit = 'account.invoice.line'
  102. ############################################################
  103. # ACCOUNT INVOICE LINE
  104. ############################################################
  105. @api.model
  106. def getAccountInvoiceLine(self,domain):
  107. AccountInvoiceLine = self.env['account.invoice.line'].search(domain)
  108. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  109. values = []
  110. for line in AccountInvoiceLine:
  111. values.append({
  112. 'id': line.id,
  113. 'invoice_id':line.invoice_id.id,
  114. 'number':line.invoice_id.number,
  115. 'supplier_invoice_number':line.invoice_id.supplier_invoice_number,
  116. 'date_invoice': line.invoice_id.date_invoice,
  117. 'user_id': [
  118. line.invoice_id.user_id.id,
  119. line.invoice_id.user_id.name,
  120. ],
  121. 'partner_id': [
  122. line.invoice_id.partner_id.id,
  123. line.invoice_id.partner_id.name,
  124. ],
  125. 'product_id': [
  126. line.product_id.id,
  127. line.product_id.display_name,
  128. line.product_id.categ_id.complete_name,
  129. ],
  130. 'price_unit': line.price_unit,
  131. 'price_subtotal': line.price_subtotal,
  132. 'quantity': line.quantity,
  133. 'company_currency':[
  134. line.invoice_id.company_id.currency_id.id,
  135. line.invoice_id.company_id.currency_id.name,
  136. line.invoice_id.company_id.currency_id.rate,
  137. ],
  138. 'invoice_currency':[
  139. line.invoice_id.currency_id.id,
  140. line.invoice_id.currency_id.name,
  141. line.invoice_id.currency_id.rate,
  142. ],
  143. 'price_unit_currency': round(line.price_unit * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  144. 'price_subtotal_currency': round(line.price_subtotal * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  145. 'tax_currency': round((line.price_unit * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate) * line.quantity) - line.price_subtotal * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  146. 'amount_currency': round((line.quantity * line.price_unit) * (line.invoice_id.company_id.currency_id.rate / line.invoice_id.currency_id.rate),decimal_precision),
  147. })
  148. return values
  149. ############################################################
  150. # POS ORDER LINE
  151. ############################################################
  152. @api.model
  153. def getPosOrderLine(self,domain):
  154. PosOrderLine = self.env['pos.order.line'].search(domain)
  155. decimal_precision = self.env['decimal.precision'].precision_get('Account')
  156. values = []
  157. for line in PosOrderLine:
  158. values.append({
  159. 'id': line.id,
  160. 'order_id': [
  161. line.order_id.id,
  162. line.order_id.name
  163. ],
  164. 'product_id': [
  165. line.product_id.id,
  166. line.product_id.display_name,
  167. ],
  168. 'qty': line.qty,
  169. 'create_date': line.create_date,
  170. 'user_id': [
  171. line.order_id.user_id.id,
  172. line.order_id.user_id.name
  173. ],
  174. 'partner_id': [
  175. line.order_id.partner_id.id,
  176. line.order_id.partner_id.name
  177. ],
  178. 'company_currency':[
  179. line.order_id.company_id.currency_id.id,
  180. line.order_id.company_id.currency_id.name,
  181. line.order_id.company_id.currency_id.rate,
  182. ],
  183. 'order_currency':[
  184. line.order_id.pricelist_id.currency_id.id,
  185. line.order_id.pricelist_id.currency_id.name,
  186. line.order_id.pricelist_id.currency_id.rate,
  187. ],
  188. 'price_unit': line.price_unit,
  189. 'price_subtotal': line.price_subtotal,
  190. 'price_subtotal_incl': line.price_subtotal_incl,
  191. 'price_unit_currency': round(line.price_unit * (line.order_id.company_id.currency_id.rate / line.order_id.pricelist_id.currency_id.rate),decimal_precision),
  192. 'price_subtotal_currency': round(line.price_subtotal * (line.order_id.company_id.currency_id.rate / line.order_id.pricelist_id.currency_id.rate),decimal_precision),
  193. 'price_subtotal_incl_currency': round(line.price_subtotal_incl * (line.order_id.company_id.currency_id.rate / line.order_id.pricelist_id.currency_id.rate),decimal_precision),
  194. # 'amount_currency': round(line.price_subtotal_incl * (line.order_id.company_id.currency_id.rate / line.order_id.pricelist_id.currency_id.rate),decimal_precision)
  195. })
  196. return values
  197. class AccountJournal(models.Model):
  198. _inherit = 'account.journal'
  199. @api.model
  200. def getAccountJournal(self,domain):
  201. AccountJournal = self.env['account.journal'].search(domain)
  202. values = []
  203. for journal in AccountJournal:
  204. values.append({
  205. 'id': journal.id,
  206. 'name': journal.name,
  207. 'store_ids': [
  208. journal.store_ids.id,
  209. ],
  210. 'company_id': [
  211. journal.company_id.id,
  212. journal.company_id.name
  213. ],
  214. })
  215. return values
  216. class ResCompany(models.Model):
  217. _inherit = 'res.company'
  218. @api.model
  219. def getResCompany(self,domain):
  220. ResCompany = self.env['res.company'].search(domain)
  221. values = []
  222. for company in ResCompany:
  223. values.append({
  224. 'id': company.id,
  225. 'name': company.name,
  226. 'currency_id': [
  227. company.currency_id.id,
  228. company.currency_id.name,
  229. ],
  230. 'company_ruc': company.partner_id.ruc,
  231. 'phone': company.phone,
  232. 'logo': company.logo,
  233. })
  234. return values
  235. class ResCurrency(models.Model):
  236. _inherit = 'res.currency'
  237. @api.model
  238. def getResCurrency(self,domain):
  239. ResCurrency = self.env['res.currency'].search(domain)
  240. values = []
  241. for currency in ResCurrency:
  242. values.append({
  243. 'id': currency.id,
  244. 'name': currency.name,
  245. 'symbol': currency.symbol,
  246. 'rate_silent': currency.rate_silent,
  247. 'base': currency.base,
  248. 'decimal_separator': currency.decimal_separator,
  249. 'decimal_places': currency.decimal_places,
  250. 'thousands_separator': currency.thousands_separator,
  251. 'symbol_position': currency.symbol_position,
  252. })
  253. return values
  254. class ResPartner(models.Model):
  255. _inherit = 'res.partner'
  256. @api.model
  257. def getResPartnerMedic(self,domain):
  258. ResPartner = self.env['res.partner'].search(domain)
  259. values = []
  260. for partner in ResPartner:
  261. values.append({
  262. 'id': partner.id,
  263. 'name': partner.name,
  264. 'ruc': partner.ruc,
  265. 'street': partner.street,
  266. 'city': partner.city,
  267. 'phone': partner.phone,
  268. 'mobile': partner.mobile,
  269. 'email': partner.email,
  270. 'property_product_pricelist': partner.property_product_pricelist.name,
  271. 'property_product_pricelist_purchase': partner.property_product_pricelist_purchase.name,
  272. 'credit': partner.credit,
  273. 'debit': partner.debit,
  274. 'supplier': partner.supplier,
  275. 'is_medic': partner.is_medic,
  276. 'medic': [
  277. partner.medic.id,
  278. partner.medic.name,
  279. ],
  280. })
  281. return values
  282. class ProductProduct(models.Model):
  283. _inherit = 'product.product'
  284. ############################################################
  285. # PRODUCT PRODUCT
  286. ############################################################
  287. @api.model
  288. def getProductProduct(self,domain):
  289. ProductProduct = self.env['product.product'].search(domain)
  290. values = []
  291. for product in ProductProduct:
  292. attributeValuesLines = map(lambda x: x.id, product.attribute_value_ids)
  293. attributeIDS = []
  294. for arttIds in self.env['product.attribute.value'].search([('id', 'in', attributeValuesLines)]):
  295. attributeIDS.append(arttIds.attribute_id.id)
  296. try:
  297. brand = product.product_brand_id.id
  298. except:
  299. brand = ''
  300. values.append({
  301. 'id': product.id,
  302. 'name': product.name,
  303. 'display_name': product.display_name,
  304. 'standard_price': product.standard_price,
  305. 'lst_price': product.lst_price,
  306. 'categ_id': {
  307. 'id': product.categ_id.id,
  308. 'name': product.categ_id.name,
  309. 'complete_name': product.categ_id.complete_name,
  310. },
  311. 'product_brand_id': brand,
  312. 'atribute_value_ids': attributeValuesLines,
  313. 'attribute_ids': attributeIDS
  314. })
  315. return values
  316. ############################################################
  317. # PRODUCT BRAND
  318. ############################################################
  319. @api.model
  320. def getProductBrand(self,domain):
  321. ProductBrand = self.env['product.brand'].search(domain)
  322. values = []
  323. for brand in ProductBrand:
  324. values.append({
  325. 'id': brand.id,
  326. 'name': brand.name,
  327. })
  328. return values
  329. class ProductCategory(models.Model):
  330. _inherit = 'product.category'
  331. @api.model
  332. def getProductCategory(self,domain):
  333. ProductCategory = self.env['product.category'].search(domain)
  334. values = []
  335. for category in ProductCategory:
  336. values.append({
  337. 'id': category.id,
  338. 'name': category.name,
  339. 'display_name': category.display_name,
  340. 'parent_id': [
  341. category.parent_id.id,
  342. category.parent_id.name,
  343. ],
  344. })
  345. return values
  346. class ProductAttribute(models.Model):
  347. _inherit = 'product.attribute'
  348. @api.model
  349. def getProductAttribute(self,domain):
  350. ProductAttribute = self.env['product.attribute'].search(domain)
  351. values = []
  352. for attribute in ProductAttribute:
  353. values.append({
  354. 'id': attribute.id,
  355. 'name': attribute.name,
  356. })
  357. return values
  358. class ProductAttributeValue(models.Model):
  359. _inherit = 'product.attribute.value'
  360. @api.model
  361. def getProductAttributeValue(self,domain):
  362. ProductAttributeValue = self.env['product.attribute.value'].search(domain)
  363. values = []
  364. for value in ProductAttributeValue:
  365. values.append({
  366. 'id': value.id,
  367. 'name': value.name,
  368. 'attribute_id': [
  369. value.attribute_id.id,
  370. value.attribute_id.name,
  371. ],
  372. })
  373. return values
  374. class StockLocation(models.Model):
  375. _inherit = 'stock.location'
  376. @api.model
  377. def getStockLocation(self,domain):
  378. StockLocation = self.env['stock.location'].search(domain)
  379. values = []
  380. for location in StockLocation:
  381. values.append({
  382. 'id': location.id,
  383. 'name': location.name,
  384. 'display_name': location.display_name,
  385. 'company_id': [
  386. location.company_id.id,
  387. location.company_id.name,
  388. ],
  389. 'store_id': [
  390. location.store_id.id,
  391. location.store_id.name,
  392. ],
  393. 'usage': location.usage,
  394. })
  395. return values
  396. class StockQuant(models.Model):
  397. _inherit = 'stock.quant'
  398. @api.model
  399. def getStockQuant(self,domain):
  400. StockQuant = self.env['stock.quant'].search(domain)
  401. values = []
  402. for quant in StockQuant:
  403. values.append({
  404. 'id': quant.id,
  405. 'name': quant.name,
  406. 'display_name': quant.display_name,
  407. 'location_id': [
  408. quant.location_id.id,
  409. quant.location_id.name,
  410. ],
  411. 'product_id': [
  412. quant.product_id.id,
  413. quant.product_id.name,
  414. ],
  415. 'qty': quant.qty,
  416. })
  417. return values