def create(self, products, attributes, attribute_columns, odoo): ids = [] if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] product_list = [] for product in products: dup = self.search_for_duplicate(product, attributes, attribute_columns, odoo) if len(dup) == 1: ids.append(dup[0]) else: record = {} record['name'] = product['NAME'] record['product_tmpl_id'] = product['product_tmpl_id'] record['attribute_value_ids'] = [(6, '_', dup)] idm = self.model.create(record) ids.append(idm) # record = {} # record['name'] = product['NAME'] # record['product_tmpl_id'] = product['product_tmpl_id'] # record['attribute_value_ids'] = self.create_attribute_value_ids(product,attributes,attribute_columns) # idm = self.model.create(record) # ids.append(idm) return ids
def get_product_product_list(self, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) model = odoo.env[self._name] ids = model.search([]) ids.sort() return ids
def create(self, purchase_list, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] for po in purchase_list: po['order_line'] = self.create_order_line(po) odoo.run(self._name, 'create', purchase_list)
def find_product(self, name, values, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) if not name or not values: return criteria = [('name', '=', name), ('attribute_value_ids', 'in', values)] model = odoo.env[self._name] ids = model.search(criteria) return ids
def create(self, vehicles, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] for vehicle in vehicles: veh = self.model.search([('name', '=', vehicle.get('name'))]) if not veh: self.model.create(vehicle) else: continue
def create(self, values, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) if not values or len(values) < 1: return for lead in values: if not lead['partner_id']: print("Invalid Enquiry - creation FAILED") return model = odoo.env[self._name] model.create(values)
def create(self, values, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) if not values or len(values) < 1: return for vendor in values: vendor['supplier'] = True vendor['is_company'] = True vendor['customer'] = False model = odoo.env[self._name] ids = model.create(values) ids.sort() return ids
def create(self, sale_list, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] for so in sale_list: so_dup = self.model.search([('name', '=', so.get('name'))]) if not so_dup: print("no duplicate") so['order_line'] = self.create_order_line(so) self.model.create(so) else: print("duplicate sale order") continue
def create(self,name,company,odoo): print("Hello from pricelist create") pricelist = {"active":True,"discount_policy":"with_discount","currency_id":20,"country_group_ids":[[6,False,[]]]} pricelist.update({"name":name,"comany_id":company}) if not odoo: odoo = tools.login(self.conf['odoo']) id_exists = odoo.env[self._name].search([('name','=',name)],limit=1) if id_exists: _logger.info(" %s Pricelist Already Exists %s",name,id_exists) old_pricelist = odoo.env[self._name].browse(id_exists) old_pricelist.unlink() self.model = odoo.env[self._name] ids = self.model.create(pricelist) return ids
def _create_attribute_lines(self, product_values, attribute_values, pro): attribute_lines = [] for vals in product_values: attribute, values = vals if len(pro) > 0: od = tools.login(self.conf['odoo']) model = od.env['product.template.attribute.value'] mod = od.env['product.template.attribute.line'] pro_att_val = od.env['product.attribute.value'] line = mod.search([('product_tmpl_id', '=', pro[0]), ('attribute_id', '=', attribute_values[attribute]['id'])]) if len(line) <= 0: attribute_line = [ 0, '_', { 'attribute_id': attribute_values[attribute]['id'], 'value_ids': self._create_value_ids( values, attribute_values[attribute]['values'], pro, attribute_values[attribute]['id']) } ] attribute_lines.append(attribute_line) else: attribute_line = [ 1, line[0], { 'attribute_id': attribute_values[attribute]['id'], 'value_ids': self._create_value_ids( values, attribute_values[attribute]['values'], pro, attribute_values[attribute]['id']) } ] attribute_lines.append(attribute_line) else: attribute_line = [ 0, '_', { 'attribute_id': attribute_values[attribute]['id'], 'value_ids': self._create_value_ids( values, attribute_values[attribute]['values'], pro, attribute_values[attribute]['id']) } ] attribute_lines.append(attribute_line) return attribute_lines
def create(self, products, attribute_values, odoo): conf = self.conf['products'] if not conf['columns'] or not attribute_values or not products: raise Exception( "Invalid Configuration - Cannot find Products to create") columns = conf['columns'].upper().split(',') if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] ids = self._create_records(products, attribute_values, self.model) print( ids, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" ) return ids
def create(self, customers, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] customers_list = [] for customer in customers: cust = self.model.search([('name', '=', customer.get('name')), ('mobile', '=', customer.get('mobile'))]) if not cust: customers_list.append(self.model.create(customer)) else: customers_list.append(cust[0]) # customers_list = odoo.run(self._name,'create',customers) print(customers_list) return customers_list
def get_attribute_values(self,odoo): if not odoo: odoo = tools.login(self.conf['odoo']) conf = self.conf['attributes'] if not conf['columns'] or not conf['fields']: raise Exception("Invalid Configuration - Cannot find Attributes to create") columns = conf['columns'].upper().split(',') model = odoo.env[self._name] res = {} for column in columns: attr = odoo.env['product.attribute'] attr_id = attr.search([('name','=',column)],limit=1) value_ids = attr.browse(attr_id).value_ids if value_ids: values = [] for value_id in value_ids: print(value_id) print(value_id.name) values.append(value_id.name) res[column] = {'id':attr_id[0],'values':{values[index]:value_ids[index].id for index in range(len(value_ids))}} return res
def create(self,attribute_values,odoo): print("########################################################") conf = self.conf['attributes'] if not conf['columns'] or not conf['fields']: raise Exception("Invalid Configuration - Cannot find Attributes to create") columns = conf['columns'].upper().split(',') values = ProductAttributeValues(self.conf) if not odoo: odoo = tools.login(self.conf['odoo']) model = odoo.env[self._name] attribute_list = self._create_records(columns) write_ids = [] for attribute in attribute_list: att = model.search([('name','=',attribute['name'])]) print(attribute['name'],"llllllllllllllllllllllllllllllllllllllllllllllllllll") if len(att) == 0: att = model.create(attribute) self.ids.append(att) else: self.ids.append(att[0]) return values.create([{'name':columns[index],'id':self.ids[index],'values':attribute_values[columns[index]]} for index in range(len(columns))],odoo)
def _create_value_ids(self, product_values, attribute_values, pro, attribute_id): od = tools.login(self.conf['odoo']) mod = od.env['product.template.attribute.line'] value_ids = [] temp = [] if len(pro) > 0: val_ids = mod.search_read([('product_tmpl_id', '=', pro[0]), ('attribute_id', '=', attribute_id)]) for val_id in val_ids: for i in val_id['value_ids']: #value_ids.append([6,False,i]) temp.append(i) value_id = [] for x in product_values: if attribute_values[x] not in temp: temp.append(attribute_values[x]) #value_id = [6,False,[attribute_values[x]]] value_id = [6, False, temp] value_ids.append(value_id) print(value_ids) return value_ids
def create(self,items,pricelist_id,component_columns,odoo): #print("items",items) components = PriceListComponentType(self.conf).getComponents()# to fetch update data from table components_names = [x['name'] for x in self.components] if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] for comp in component_columns: if not comp in components_names: print("comp",comp) component_fields = self._component_field_list component_fields.update({"name":comp,"description":comp }) PriceListComponentType(self.conf).create(component_fields,None) components = PriceListComponentType(self.conf).getComponents() price_lists = [] for pricelist in items: pricelist_items = {} fields = self._field_list.copy() fields.update({"fixed_price":str(pricelist['Ex S/R Price']), "pricelist_id":pricelist_id, "product_id" : pricelist['product_id']}) pricelist_items.update({'item':fields}) item_components = [ {'item_id':'','type_id':[x['id'] for x in components if x['name'] == comp][0], 'price':pricelist[comp]} for comp in component_columns] _logger.debug("the components %s",item_components) pricelist_items.update({'components':item_components}) price_lists.append(pricelist_items) price_list_item_ids = self.model.create([ x['item'] for x in price_lists]) for index in range(len(price_lists)): components = price_lists[index]['components'] for component in components: component.update({'item_id':price_list_item_ids[index]}) price_lists[index].update({'item_id':price_list_item_ids[index]}) final_comps = [] for pricelist in price_lists: final_comps = final_comps + pricelist['components'] component_ids = PricelistComponent(self.conf).create(final_comps,None) return price_lists
def create(self,values,odoo): if not odoo: odoo = tools.login(conf['odoo']) model = odoo.env[self._name] res = {} for lines in range(len(values)): ids = [] attr_id = values[lines]['id'] name = values[lines]['name'] vals = values[lines]['values'] print(name,vals) count = 0 for val in vals: mod = model.search([('attribute_id','=',attr_id),('name','=',val)]) if not mod: record = {} record['name'] = val record['attribute_id'] = attr_id ids.append(model.create(record)) else: ids.append(mod[0]) #ids = model.create([{'attribute_id':attr_id,'name':vals[index]} for index in range(len(vals))]) res[name] = {'id':attr_id,'values':{vals[index]:ids[index] for index in range(len(ids))}} return res
def get_customer_list(self): odoo = tools.login(self.conf['odoo']) model = odoo.env[self._name] ids = model.search([('customer', '=', True)]) ids.sort() return ids
def create(self,items,odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] ids = self.model.create(items) return ids
def getComponents(self): odoo = tools.login(self.conf['odoo']) return odoo.execute_kw(self._name,'search_read',[],{'fields':['id','name']})
def findProduct(self,model,variant,color): model_name = 'product.product' odoo = tools.login(self.conf['odoo']) if odoo and model and variant and color: ids = odoo.env[model_name].search([('product_tmpl_id','=',model),('variant_value','=',variant),('color_value','=',color)]) return ids
def confirm_sale_orders(self, inventories, odoo): if not odoo: odoo = tools.login(self.conf['odoo']) self.model = odoo.env[self._name] odoo.run(self._name, 'confirm_sale_orders', inventories)