modified import data purchases

This commit is contained in:
Camilo Sarmiento 2020-05-25 21:35:31 -05:00
parent eef66ec2b1
commit dc64b1032d

View file

@ -19,67 +19,62 @@ _STATES = {
'readonly': Eval('state') != 'draft',
}
class Purchase:
__metaclass__ = PoolMeta
class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase'
@classmethod
def import_data(cls, fields_names, data):
pool = Pool()
PurchaseLine = pool.get('purchase.line')
Product = pool.get('product.product')
Party = pool.get('party.party')
Address = pool.get('party.address')
PurchaseLine = pool.get('purchase.line')
count = 0
head = data[0]
purchase_date = head[1]
party = head[3]
year, month, day = purchase_date.split('-')
purchase_date = date(int(year), int(month), int(day))
address = Address.search([
('party', '=', party)
])
partys = Party.search([
('id_number', '=', party)
])
if not partys:
return count
else:
party_id = partys[0].id
if not address:
return count
else:
address_id = address[0].id
purchase, = cls.create([{
'purchase_date': purchase_date,
'party': party_id,
'invoice_address': address_id,
'payment_term': 2
}])
lines_to_create = []
for row in data[3:]:
count += 1
products = Product.search([
('code', '=', row[0])
purchase_to_create = {}
create_lines = []
for row in data[1:]:
year, month, day = row[2].split('-')
purchase_date = date(int(year), int(month), int(day))
partys = Party.search([
('id_number', '=', row[1])
])
if not partys:
continue
party_id = partys[0].id
address = Address.search([
('party', '=', party_id)
])
address_id = address[0].id if address else None
if row[0] not in purchase_to_create.keys():
purchase, = cls.create([{
'purchase_date': purchase_date,
'party': party_id,
'reference': row[0],
'invoice_address': address_id,
'payment_term': None,
}])
purchase_to_create[row[0]] = purchase.id
count += 1
lines_to_create.append({
'purchase': purchase,
'product': products[0].id,
'quantity': row[1],
'description': row[2],
products = Product.search([
('code', '=', row[3])
])
if not products:
continue
product = products[0]
product_id = product.id
create_lines.append({
'purchase': purchase_to_create[row[0]],
'product': product_id,
'quantity': row[5],
'description': row[4],
'unit': 1,
'unit_price': Decimal(row[3]),
'unit_price': Decimal(row[6]),
'taxes': [('add', product.supplier_taxes_used)],
})
PurchaseLine.create(lines_to_create)
PurchaseLine.create(create_lines)
return count
class PurchaseLine: