Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
 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
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
 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
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 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
Ejemplo n.º 16
0
    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

            
           
Ejemplo n.º 17
0
 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
Ejemplo n.º 18
0
 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
Ejemplo n.º 19
0
 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
Ejemplo n.º 20
0
 def getComponents(self):
     odoo = tools.login(self.conf['odoo'])
     return odoo.execute_kw(self._name,'search_read',[],{'fields':['id','name']})
Ejemplo n.º 21
0
 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
Ejemplo n.º 22
0
 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)