# -*- coding: utf-8 -*- from openerp import models, fields, api class OrdenServicio(models.Model): _inherit = 'orden.servicio' ############################################################ # ACCOUNT INVOICE ############################################################ @api.model def getOrdenServicio(self,domain): OrdenServicio = self.env['orden.servicio'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for servicio in OrdenServicio: values.append({ 'id': servicio.id, 'name': servicio.name, 'state': servicio.state, 'celular_partner': servicio.celular_partner, 'telefono_partner': servicio.telefono_partner, 'planned_start_date': servicio.planned_start_date, 'planned_end_date': servicio.planned_end_date, 'contacto_obra': servicio.contacto_obra, 'responsable': servicio.responsable, 'order_date': servicio.order_date, 'name_obra': servicio.name_obra, 'name_local': servicio.name_local, 'distancia_obra': servicio.distancia_obra, 'croquis': servicio.croquis, 'hrs_total': servicio.hrs_total, 'zona_obra': servicio.zona_obra, 'obs_obra': servicio.obs_obra, 'sale_order_id': servicio.sale_order_id, 'company_id': servicio.company_id, 'currency_id': servicio.currency_id, 'partner_id': [ servicio.partner_id.id, servicio.partner_id.name, servicio.partner_id.ruc, ], 'partner_info': { 'mobile': servicio.partner_id.mobile, 'phone': servicio.partner_id.phone, }, 'user_id': [ servicio.user_id.id, servicio.user_id.name, ], }) return values class ServicioProducto(models.Model): _inherit = 'servicio.producto' ############################################################ # servicio producto ############################################################ @api.model def getServicioProducto(self,domain): ServicioProducto = self.env['servicio.producto'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for line in ServicioProducto: values.append({ 'id': line.id, 'servicio_id':line.servicio_id.id, 'number':line.servicio_id.name, 'order_date': line.servicio_id.order_date, 'user_id': [ line.servicio_id.user_id.id, line.servicio_id.user_id.name, ], 'partner_id': [ line.servicio_id.partner_id.id, line.servicio_id.partner_id.name, line.servicio_id.partner_id.ruc, ], 'invoice_state': line.servicio_id.state, 'product_id': [ line.product_id.id, line.product_id.display_name, line.product_id.categ_id.complete_name, line.product_id.standard_price, line.product_id.lst_price, ], 'product_category_id': line.product_id.categ_id.id, 'price_unit': line.price_unit, 'price_subtotal': line.subtotal, 'quantity': line.quantity, 'price_unit_currency': round(line.price_unit * (line.servicio_id.company_id.currency_id.rate / line.servicio_id.currency_id.rate),decimal_precision), 'price_subtotal_currency': round(line.subtotal * (line.servicio_id.company_id.currency_id.rate / line.servicio_id.currency_id.rate),decimal_precision), 'amount_currency': round((line.quantity * line.price_unit) * (line.servicio_id.company_id.currency_id.rate / line.servicio_id.currency_id.rate),decimal_precision), }) return values class ServicioInsumo(models.Model): _inherit = 'servicio.insumo' ############################################################ # servicio insumo ############################################################ @api.model def getServicioInsumo(self,domain): ServicioInsumo = self.env['servicio.insumo'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for insumo in ServicioInsumo: values.append({ 'id': insumo.id, 'servicio_id':insumo.servicio_id.id, 'number':insumo.servicio_id.name, 'order_date': insumo.servicio_id.order_date, 'user_id': [ insumo.servicio_id.user_id.id, insumo.servicio_id.user_id.name, ], 'partner_id': [ insumo.servicio_id.partner_id.id, insumo.servicio_id.partner_id.name, insumo.servicio_id.partner_id.ruc, ], 'invoice_state': insumo.servicio_id.state, 'product_id': [ insumo.product_id.id, insumo.product_id.display_name, insumo.product_id.categ_id.complete_name, insumo.product_id.standard_price, ], 'product_category_id': insumo.product_id.categ_id.id, 'descripcion': insumo.descripcion, 'price_unit': insumo.price_unit, 'price_subtotal': insumo.subtotal, 'quantity': insumo.quantity, 'price_unit_currency': round(insumo.price_unit * (insumo.servicio_id.company_id.currency_id.rate / insumo.servicio_id.currency_id.rate),decimal_precision), 'price_subtotal_currency': round(insumo.subtotal * (insumo.servicio_id.company_id.currency_id.rate / insumo.servicio_id.currency_id.rate),decimal_precision), 'amount_currency': round((insumo.quantity * insumo.price_unit) * (insumo.servicio_id.company_id.currency_id.rate / insumo.servicio_id.currency_id.rate),decimal_precision), }) return values class ServicioLogistica(models.Model): _inherit = 'servicio.logistica' ############################################################ # servicio logistica ############################################################ @api.model def getServicioLogistica(self,domain): ServicioLogistica = self.env['servicio.logistica'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for logistica in ServicioLogistica: values.append({ 'id': logistica.id, 'servicio_id':logistica.servicio_id.id, 'number':logistica.servicio_id.name, 'order_date': logistica.servicio_id.order_date, 'user_id': [ logistica.servicio_id.user_id.id, logistica.servicio_id.user_id.name, ], 'partner_id': [ logistica.servicio_id.partner_id.id, logistica.servicio_id.partner_id.name, logistica.servicio_id.partner_id.ruc, ], 'invoice_state': logistica.servicio_id.state, 'product_id': [ logistica.product_id.id, logistica.product_id.display_name, logistica.product_id.categ_id.complete_name, logistica.product_id.standard_price, ], 'product_category_id': logistica.product_id.categ_id.id, 'fecha': logistica.fecha, 'descripcion': logistica.descripcion, 'price_unit': logistica.price_unit, 'price_subtotal': logistica.subtotal, 'quantity': logistica.quantity, 'price_unit_currency': round(logistica.price_unit * (logistica.servicio_id.company_id.currency_id.rate / logistica.servicio_id.currency_id.rate),decimal_precision), 'price_subtotal_currency': round(logistica.subtotal * (logistica.servicio_id.company_id.currency_id.rate / logistica.servicio_id.currency_id.rate),decimal_precision), 'amount_currency': round((logistica.quantity * logistica.price_unit) * (logistica.servicio_id.company_id.currency_id.rate / logistica.servicio_id.currency_id.rate),decimal_precision), }) return values class DevolucionInsumo(models.Model): _inherit = 'devolucion.insumo' ############################################################ # servicio logistica ############################################################ @api.model def getDevolucionInsumo(self,domain): DevolucionInsumo = self.env['devolucion.insumo'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for devolucion in DevolucionInsumo: values.append({ 'id': devolucion.id, 'servicio_id':devolucion.servicio_id.id, 'number':devolucion.servicio_id.name, 'order_date': devolucion.servicio_id.order_date, 'user_id': [ devolucion.servicio_id.user_id.id, devolucion.servicio_id.user_id.name, ], 'partner_id': [ devolucion.servicio_id.partner_id.id, devolucion.servicio_id.partner_id.name, devolucion.servicio_id.partner_id.ruc, ], 'invoice_state': devolucion.servicio_id.state, 'product_id': [ devolucion.product_id.id, devolucion.product_id.display_name, devolucion.product_id.categ_id.complete_name, devolucion.product_id.standard_price, ], 'product_category_id': devolucion.product_id.categ_id.id, 'descripcion': devolucion.descripcion, 'price_unit': devolucion.price_unit, 'price_subtotal': devolucion.subtotal, 'quantity': devolucion.quantity, 'price_unit_currency': round(devolucion.price_unit * (devolucion.servicio_id.company_id.currency_id.rate / devolucion.servicio_id.currency_id.rate),decimal_precision), 'price_subtotal_currency': round(devolucion.subtotal * (devolucion.servicio_id.company_id.currency_id.rate / devolucion.servicio_id.currency_id.rate),decimal_precision), 'amount_currency': round((devolucion.quantity * devolucion.price_unit) * (devolucion.servicio_id.company_id.currency_id.rate / devolucion.servicio_id.currency_id.rate),decimal_precision), }) return values class RecepcionFabrica(models.Model): _inherit = 'recepcion.fabrica' ############################################################ # recepciĆ³n fabrica ############################################################ @api.model def getRecepcionFabrica(self,domain): RecepcionFabrica = self.env['recepcion.fabrica'].search(domain) decimal_precision = self.env['decimal.precision'].precision_get('Account') values = [] for fabrica in RecepcionFabrica: values.append({ 'id': fabrica.id, 'servicio_id':fabrica.servicio_id.id, 'number':fabrica.servicio_id.name, 'order_date': fabrica.servicio_id.order_date, 'user_id': [ fabrica.servicio_id.user_id.id, fabrica.servicio_id.user_id.name, ], 'partner_id': [ fabrica.servicio_id.partner_id.id, fabrica.servicio_id.partner_id.name, fabrica.servicio_id.partner_id.ruc, ], 'invoice_state': fabrica.servicio_id.state, 'product_id': [ fabrica.product_id.id, fabrica.product_id.display_name, fabrica.product_id.categ_id.complete_name, fabrica.product_id.standard_price, ], 'product_category_id': fabrica.product_id.categ_id.id, 'price_unit': fabrica.price_unit, 'price_subtotal': fabrica.subtotal, 'quantity': fabrica.quantity, 'price_unit_currency': round(fabrica.price_unit * (fabrica.servicio_id.company_id.currency_id.rate / fabrica.servicio_id.currency_id.rate),decimal_precision), 'price_subtotal_currency': round(fabrica.subtotal * (fabrica.servicio_id.company_id.currency_id.rate / fabrica.servicio_id.currency_id.rate),decimal_precision), 'amount_currency': round((fabrica.quantity * fabrica.price_unit) * (fabrica.servicio_id.company_id.currency_id.rate / fabrica.servicio_id.currency_id.rate),decimal_precision), }) return values class ResCompany(models.Model): _inherit = 'res.company' @api.model def getResCompany(self,domain): ResCompany = self.env['res.company'].search(domain) values = [] for company in ResCompany: values.append({ 'id': company.id, 'name': company.name, 'currency_id': [ company.currency_id.id, company.currency_id.name, ], 'company_ruc': company.partner_id.ruc, 'phone': company.phone, 'logo': company.logo, }) return values class ResCurrency(models.Model): _inherit = 'res.currency' @api.model def getResCurrency(self,domain): ResCurrency = self.env['res.currency'].search(domain) values = [] for currency in ResCurrency: values.append({ 'id': currency.id, 'name': currency.name, 'symbol': currency.symbol, 'rate_silent': currency.rate_silent, 'base': currency.base, 'decimal_separator': currency.decimal_separator, 'decimal_places': currency.decimal_places, 'thousands_separator': currency.thousands_separator, 'symbol_position': currency.symbol_position, }) return values class ResPartner(models.Model): _inherit = 'res.partner' @api.model def getResPartner(self,domain): ResPartner = self.env['res.partner'].search(domain) values = [] for partner in ResPartner: values.append({ 'id': partner.id, 'name': partner.name, 'ruc': partner.ruc, 'street': partner.street, 'city': partner.city, 'phone': partner.phone, 'mobile': partner.mobile, 'email': partner.email, 'property_product_pricelist': partner.property_product_pricelist.name, 'property_product_pricelist_purchase': partner.property_product_pricelist_purchase.name, 'credit': partner.credit, 'debit': partner.debit, 'supplier': partner.supplier, }) return values class ProductProduct(models.Model): _inherit = 'product.product' ############################################################ # PRODUCT PRODUCT ############################################################ @api.model def getProductProduct(self,domain): ProductProduct = self.env['product.product'].search(domain) values = [] for product in ProductProduct: attributeValuesLines = map(lambda x: x.id, product.attribute_value_ids) attributeIDS = [] for arttIds in self.env['product.attribute.value'].search([('id', 'in', attributeValuesLines)]): attributeIDS.append(arttIds.attribute_id.id) try: # sale list price sale_price = map(lambda x: x.id, product.pricelists) saleIDS = [] for item in self.env['product.pricelist'].search([('id', 'in', sale_price)]): saleIDS.append(item.id) # purchase list price buy_price = map(lambda x: x.id, product.purchase_pricelists) buyIDS = [] for item in self.env['product.pricelist'].search([('id', 'in', buy_price)]): buyIDS.append(item.id) except: buyIDS = [] saleIDS = [] try: brand = product.product_brand_id.id except: brand = '' values.append({ 'id': product.id, 'name': product.name, 'display_name': product.display_name, 'standard_price': product.standard_price, 'lst_price': product.lst_price, 'categ_id': { 'id': product.categ_id.id, 'name': product.categ_id.name, 'complete_name': product.categ_id.complete_name, }, 'product_brand_id':brand, 'atribute_value_ids': attributeValuesLines, 'attribute_ids': attributeIDS, 'qty_available': product.qty_available, 'default_code': product.default_code, 'image_medium': product.image_medium, 'pricelists': saleIDS, 'purchase_pricelists':buyIDS, 'product_tmpl_id': product.product_tmpl_id.id, 'image': product.image, 'ean13': product.ean13, }) return values ############################################################ # PRODUCT PRODUCT - STOCK 'minimo_quantity': product.minimo_quantity, ############################################################ @api.model def getProductProductStock(self,domain): ProductProduct = self.env['product.product'].search(domain) values = [] for product in ProductProduct: attributeValuesLines = map(lambda x: x.id, product.attribute_value_ids) attributeIDS = [] for arttIds in self.env['product.attribute.value'].search([('id', 'in', attributeValuesLines)]): attributeIDS.append(arttIds.attribute_id.id) values.append({ 'id': product.id, 'display_name': product.display_name, 'standard_price': product.standard_price, 'lst_price': product.lst_price, 'categ_id': { 'id': product.categ_id.id, 'name': product.categ_id.name, 'complete_name': product.categ_id.complete_name, }, 'atribute_value_ids': attributeValuesLines, 'attribute_ids': attributeIDS, 'default_code': product.default_code, 'ean13': product.ean13, }) return values class ProductCategory(models.Model): _inherit = 'product.category' @api.model def getProductCategory(self,domain): ProductCategory = self.env['product.category'].search(domain) values = [] for category in ProductCategory: values.append({ 'id': category.id, 'name': category.name, 'display_name': category.display_name, 'parent_id': [ category.parent_id.id, category.parent_id.name, ], }) return values class StockLocation(models.Model): _inherit = 'stock.location' @api.model def getStockLocation(self,domain): StockLocation = self.env['stock.location'].search(domain) values = [] for location in StockLocation: values.append({ 'id': location.id, 'name': location.name, 'display_name': location.display_name, 'parent_name': location.location_id.name, 'company_id': [ location.company_id.id, location.company_id.name, ], 'store_id': [ location.store_id.id, location.store_id.name, ], 'usage': location.usage, }) return values