Kuldeep Joshi(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-import_quickbooks-purchase-order-link-with-purchase-invoice-kjo
into lp:~openerp-dev/openobject-addons/trunk-import_quickbooks.
Requested reviews:
Bhumika (OpenERP) (sbh-openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_quickbooks-purchase-order-link-with-purchase-invoice-kjo/+merge/74965
- Purchase Order Link with Purchase Invoice
- Set Account_id in Customer and Purchase Invoice
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_quickbooks-purchase-order-link-with-purchase-invoice-kjo/+merge/74965
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-import_quickbooks.
=== modified file 'import_base/import_framework.py'
--- import_base/import_framework.py 2011-09-05 11:24:13 +0000
+++ import_base/import_framework.py 2011-09-12 10:38:24 +0000
@@ -213,6 +213,7 @@
To be used to avoid duplication of data that don't have ids
"""
sugar_instance = "import_quickbooks"
+
name = name.replace('.', '_').replace(',', '_')
return sugar_instance + "_" + table + "_" + name
=== modified file 'import_quickbooks/wizard/import_data_from_quickbook.py'
--- import_quickbooks/wizard/import_data_from_quickbook.py 2011-09-07 07:02:30 +0000
+++ import_quickbooks/wizard/import_data_from_quickbook.py 2011-09-12 10:38:24 +0000
@@ -507,7 +507,7 @@
if val.get('ItemId'):
product_id = self.mapped_id_if_exist('product.product', [('name', '=', val.get('ItemName')[0])], self.TABLE_ITEM, val.get('ItemId')[0])
fields = ['name', 'quantity', 'price_unit', 'account_id/id', 'product_id/id']
- data = [val.get('Desc', 'test')[0], val.get('Qty') and val.get('Qty')[0], val.get('UnitPrice') and val.get('UnitPrice')[0], account_id, product_id]
+ data = [val.get('Desc', 'test')[0], val.get('Qty', '0')[0], val.get('UnitPrice', '0')[0], account_id, product_id]
name = 'Invoice Line' + val.get('Id')[0]
line_ids.append(self.import_object(fields, data, 'account.invoice.line', 'account_invoice_line', name, False))
return ','.join(line_ids)
@@ -526,10 +526,41 @@
def get_account_id(self, val, field1, field2):
account_id = self.mapped_id_if_exist('account.account', [('name', '=', self.get_value(val, 'Header', field1))], self.TABLE_ACCOUNT, self.get_value(val, 'Header', field2))
return account_id
+
+ def get_customer_account_id(self, vals):
+ customer_obj= self.obj.pool.get('res.partner')
+ account_db_id = self.get_mapped_id(self.TABLE_CUSTOMER, vals.get('Header',{}).get('CustomerId')[0])
+ account_ids = customer_obj.browse(self.cr, self.uid, [account_db_id], context=None)[0]
+ income_id=account_ids.property_account_receivable or prop_ids.property_account_payable
+ account_id = self.mapped_id_if_exist('account.account',[('name', '=', income_id.name)], self.TABLE_ACCOUNT, income_id.name)
+ return account_id
+
+ def get_invoice_account(self, vals, field1, field2):
+ product_obj = self.obj.pool.get('product.product')
+ for val in vals.get('Line'):
+ if val.get(field1):
+ account_id = self.mapped_id_if_exist('account.account', [('name', '=', val.get(field1)[0])], self.TABLE_ACCOUNT, val.get(field2)[0])
+ return account_id
+ if val.get('ItemId'):
+ product_id = self.mapped_id_if_exist('product.product', [('name', '=', val.get('ItemName')[0])], self.TABLE_ITEM, val.get('ItemId')[0])
+ if not product_id:
+ field = ['name','property_account_income/id']
+ data = [val.get('ItemName')[0], self.get_account_id(vals, 'APAccountName', 'APAccountId')]
+ self.import_object(field, data, 'product.product', self.TABLE_ITEM, val.get('ItemId')[0])
+ product_db_id = self.get_mapped_id(self.TABLE_ITEM, val.get('ItemId')[0])
+ prop_ids = product_obj.browse(self.cr, self.uid, [product_db_id], context=None)[0]
+ income_id=prop_ids.property_account_income or prop_ids.property_account_expense
+ account_id = self.mapped_id_if_exist('account.account',[('name', '=', income_id.name)], self.TABLE_ACCOUNT, income_id.name)
+ if not account_id:
+ return self.get_customer_account_id(vals)
+ return account_id
+ else:
+ return self.get_customer_account_id(vals)
+ return True
def get_invoice_line(self, vals, field1, field2):
if vals.get('Line'):
- account_id = self.get_account_id(vals, field1, field2)
+ account_id = self.get_invoice_account(vals, field1, field2)
return self.get_line(vals, account_id)
return False
@@ -570,7 +601,7 @@
'address_contact_id/id': call(self.get_partner_address_id, 'RemitToId'),
'date_due': call(self.get_fieldvalue, value('Header'), 'DueDate'),
'comment': call(self.get_fieldvalue, value('Header'), 'Msg'),
- 'invoice_line/id': call(self.get_invoice_line, 'ARAccountName', 'ARAccountId'),
+ 'invoice_line/id': call(self.get_invoice_line, 'AccountName', 'AccountId'),
'payment_term/id': self.get_payment_term,
'tax_line/id': self.get_tax_line,
'type': const('out_invoice'),
@@ -598,7 +629,7 @@
'map': {
'id': 'Id',
'name': 'Name',
- }
+ }
}
def get_category(self, val, category):
@@ -729,11 +760,12 @@
'address_contact_id/id': call(self.get_partner_address_id, 'VendorId'),
'date_due': call(self.get_fieldvalue, value('Header'), 'DueDate'),
'comment': call(self.get_fieldvalue, value('Header'), 'Note'),
- 'invoice_line/id': call(self.get_invoice_line, 'APAccountName', 'APAccountId'),
+ 'invoice_line/id': call(self.get_invoice_line, 'AccountName', 'AccountId'),
'payment_term/id': self.get_payment_term,
'type': const('in_invoice'),
}
}
+
def set_purchase_order(self, val):
partner_id = self.get_partner_id(val, 'VendorName', 'VendorId')
partner_address_id = self.get_partner_address_id(val, 'VendorId')
@@ -746,14 +778,19 @@
name = val.get('Id')
self.import_object(field, dic, 'purchase.order', self.TABLE_PURCHASE, name, False)
return val
+
+ def get_invoice(self, val):
+ invoice_id = self.mapped_id_if_exist('account.invoice', [('amount_untaxed', '=', self.get_value(val, 'Header', 'TotalAmt'))], self.TABLE_PURCHASE_INVOICE, self.get_value(val, 'Header', 'TotalAmt'))
+ return invoice_id
def get_purchase_order_mapping(self):
return {
'model': 'purchase.order',
- 'dependencies': [self.TABLE_ITEM],
+ 'dependencies': [self.TABLE_PURCHASE_INVOICE],
'map': {
'notes': call(self.get_fieldvalue, value('Header'), 'TotalAmt'),
'order_line/id': self.get_purchase_order_line,
+ 'invoice_ids/id': self.get_invoice,
}
}
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp