Kuldeep Joshi(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-import_quickbooks-sale-order-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-sale-order-kjo/+merge/74090
Import Sales Order Data
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-import_quickbooks-sale-order-kjo/+merge/74090
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-import_quickbooks.
=== modified file 'import_quickbooks/__openerp__.py'
--- import_quickbooks/__openerp__.py 2011-08-11 06:00:46 +0000
+++ import_quickbooks/__openerp__.py 2011-09-05 12:18:21 +0000
@@ -28,7 +28,11 @@
'description': """ QuickBooks Wordplace / Intuit Partner Platform / Intuit Data Services """,
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
+<<<<<<< TREE
'depends': ['base','import_base','account','purchase', 'account_voucher'],
+=======
+ 'depends': ['base','import_base','account','product', 'sale', 'purchase'],
+>>>>>>> MERGE-SOURCE
'init_xml': [],
'update_xml': [
'security/quickbooks_login_service_security.xml',
=== modified file 'import_quickbooks/quickbooks/ippids/service/services.py'
--- import_quickbooks/quickbooks/ippids/service/services.py 2011-08-26 05:29:46 +0000
+++ import_quickbooks/quickbooks/ippids/service/services.py 2011-09-05 12:18:21 +0000
@@ -188,6 +188,7 @@
response = IPP._request(context, type, url, action, xml)
return response
+<<<<<<< TREE
class PaymentService(import_quickbooks.quickbooks.ippids.service.abstract.AbstractService):
@@ -290,4 +291,26 @@
</PaymentQuery>'''
response = IPP._request(context, type, url, action, xml)
- return response
\ No newline at end of file
+ return response=======
+
+class SalesOrderService(import_quickbooks.quickbooks.ippids.service.abstract.AbstractService):
+
+ def list_all(self, context, realm=None):
+
+ IPP = context._IPP
+
+ if realm is None:
+ realm = context.get_realm()
+
+ type = import_quickbooks.quickbooks.ippids.IPP.REQUEST_IDS
+ url = "https://services.intuit.com/sb/salesorder/v2/" + str(realm)
+ action = None
+
+ xml = '''<?xml version="1.0" encoding="UTF-8"?>
+<SalesOrderQuery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.intuit.com/sb/cdm/v2">
+</SalesOrderQuery>'''
+
+ response = IPP._request(context, type, url, action, xml)
+
+ return response
+>>>>>>> MERGE-SOURCE
=== modified file 'import_quickbooks/wizard/import_data_from_quickbook.py'
--- import_quickbooks/wizard/import_data_from_quickbook.py 2011-08-30 11:51:37 +0000
+++ import_quickbooks/wizard/import_data_from_quickbook.py 2011-09-05 12:18:21 +0000
@@ -44,17 +44,28 @@
TABLE_CUSTOMER_PAYMENT = 'Payment'
TABLE_SALE_RECEIPT = 'SalesReceipt'
TABLE_ITEM = 'Item'
+ TABLE_SALE_ORDER = 'SalesOrder'
_realm_id = False
_ticket = False
+<<<<<<< TREE
parent_id = []
parent_type = []
+=======
+ parent_id=[]
+ parent_type = []
+>>>>>>> MERGE-SOURCE
def initialize(self):
self._realm_id = self.context.pop('realm_id')
self._ticket = self.context.pop('ticket')
self.set_base_account()
+<<<<<<< TREE
self.parent_id = []
self.parent_type = []
+=======
+ self.parent_id=[]
+ self.parent_type = []
+>>>>>>> MERGE-SOURCE
def get_service(self, table):
vals = {
@@ -66,8 +77,12 @@
self.TABLE_VENDOR: VendorService(),
self.TABLE_PURCHASE: PurchaseOrderService(),
self.TABLE_ITEM: ItemService(),
+<<<<<<< TREE
self.TABLE_CUSTOMER_PAYMENT: PaymentService(),
self.TABLE_SALE_RECEIPT: SalesReceiptService(),
+=======
+ self.TABLE_SALE_ORDER: SalesOrderService(),
+>>>>>>> MERGE-SOURCE
}
return vals.get(table)
@@ -124,8 +139,12 @@
self.TABLE_VENDOR: self.get_values('Vendor'),
self.TABLE_PURCHASE: self.get_values('PurchaseOrder'),
self.TABLE_ITEM: self.get_values('Item'),
+<<<<<<< TREE
self.TABLE_CUSTOMER_PAYMENT: self.get_values('Payment'),
self.TABLE_SALE_RECEIPT: self.get_values('SalesReceipt'),
+=======
+ self.TABLE_SALE_ORDER: self.get_values('SalesOrder'),
+>>>>>>> MERGE-SOURCE
}
return vals.get(table)
@@ -139,8 +158,12 @@
self.TABLE_VENDOR: self.get_vendor_mapping(),
self.TABLE_PURCHASE: self.get_purchase_order_mapping(),
self.TABLE_ITEM: self.get_item_mapping(),
+<<<<<<< TREE
self.TABLE_CUSTOMER_PAYMENT: self.get_customer_payment_mapping(),
self.TABLE_SALE_RECEIPT: self.get_sales_receipt_mapping(),
+=======
+ self.TABLE_SALE_ORDER: self.get_sale_order_mapping(),
+>>>>>>> MERGE-SOURCE
}
def get_all_states(self, external_val, country_id):
@@ -318,9 +341,14 @@
'Non-Posting': 'other',
'Long Term Liability': 'liquidity',
'Other Current Asset': 'other',
- 'Cost of Goods Sold': 'other',
- 'Other Asset': 'other',
- 'Cost of Goods Sold': 'other',
+<<<<<<< TREE
+ 'Cost of Goods Sold': 'other',
+ 'Other Asset': 'other',
+ 'Cost of Goods Sold': 'other',
+=======
+ 'Cost of Goods Sold': 'other',
+ 'Other Asset': 'other',
+>>>>>>> MERGE-SOURCE
'Other Current Liability': 'liquidity',
'Bank': 'liquidity',
'Other Expense': 'other',
@@ -333,8 +361,13 @@
def set_parent_account(self, val):
if val.get('AccountParentName'):
+<<<<<<< TREE
account_parent_id = self.mapped_id_if_exist('account.account', [('name', '=', val.get('AccountParentName'))], self.TABLE_ACCOUNT, val.get('AccountParentId'))
if not account_parent_id:
+=======
+ parent_id = self.mapped_id_if_exist('account.account', [('name', '=', val.get('AccountParentName'))], self.TABLE_ACCOUNT, val.get('AccountParentId'))
+ if not parent_id:
+>>>>>>> MERGE-SOURCE
account_type = self.mapped_id_if_exist('account.account.type', [('name', '=', val.get('Subtype'))], 'account_type', val.get('Id'))
fields = ['name', 'code', 'type', 'user_type/id']
data = [val.get('AccountParentName'), 'QB' + val.get('AccountParentId'), 'view', account_type]
@@ -436,7 +469,11 @@
return partner_id
def get_partner_address_id(self, val, field1):
+<<<<<<< TREE
partner_address_id = self.mapped_id_if_exist('res.partner.address', [('type', '=', 'invoice')], 'res_partner_address', 'invoice' + self.get_value(val, 'Header', field1))
+=======
+ partner_address_id = self.mapped_id_if_exist('res.partner.address', [('type', '=', 'invoice')], 'res_partner_address', 'invoice'+self.get_value(val, 'Header', field1))
+>>>>>>> MERGE-SOURCE
return partner_address_id
def get_line(self, vals, account_id):
@@ -588,6 +625,7 @@
}
}
+<<<<<<< TREE
def get_currency(self, val, field1, field2):
currency_id = self.mapped_id_if_exist('res.currency', [('name', '=', field1)], 'res_currency', field2)
return currency_id
@@ -703,6 +741,91 @@
}
}
+=======
+ def get_location(self, val):
+ # Need To Check in QuickBook for Destination Location
+ location_id = self.mapped_id_if_exist('stock.location', [('name', '=', 'Stock')], 'stock_location', 'STOCK')
+ return location_id
+
+ 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')
+ pricelist_id = self.get_pricelist(val)
+ date = self.get_value(val, 'Header', 'TxnDate')
+ due_date = self.get_value(val, 'Header', 'DueDate')
+ location_id = self.get_location(val)
+ field = ['date_order', 'partner_id/id', 'partner_address_id/id', 'pricelist_id/id', 'invoice_method', 'id', 'minimum_planned_date', 'location_id/id']
+ dic = [date, partner_id, partner_address_id, pricelist_id, 'manual', val.get('Id'), due_date, location_id]
+ name = val.get('Id')
+ self.import_object(field, dic, 'purchase.order', self.TABLE_PURCHASE, name, False)
+ return val
+
+ def get_purchase_order_line(self, vals):
+ val = self.set_purchase_order(vals)
+ line_ids = []
+ purchase_id = self.mapped_id_if_exist('purchase.order', [('invoice_method', '=', 'manual')], self.TABLE_PURCHASE, vals.get('Id'))
+ for val in vals.get('Line'):
+ if val.get('ItemId'):
+ product_id = self.mapped_id_if_exist('product.product', [('name', '=', val.get('ItemName'))], self.TABLE_ITEM, val.get('ItemId')[0])
+ tax_id = False
+ if vals.get('Header', {}).get('TaxName'):
+ tax_id = self.mapped_id_if_exist('account.tax', [('name', '=', vals.get('Header', {}).get('TaxName')[0])], self.TABLE_ACCOUNT_TAX, vals.get('Header', {}).get('TaxId')[0])
+ date = self.get_value(vals, 'Header', 'TxnDate')
+ uom_id = self.mapped_id_if_exist('product.uom', [('name', '=', 'PCE')], 'product_uom', 'PCE')
+ fields = ['name', 'product_qty', 'price_unit', 'product_id/id', 'date_planned', 'product_uom/id', 'order_id/id', 'invoice_line_tax_id/id']
+ data = [val.get('Desc', 'test')[0], val.get('Qty') and val.get('Qty')[0], val.get('UnitPrice') and val.get('UnitPrice')[0], product_id, date, uom_id, purchase_id, tax_id]
+ name = 'Line' + val.get('Id')[0]
+ line_ids.append(self.import_object(fields, data, 'purchase.order.line', 'purchase_order_line', name, False))
+ return ','.join(line_ids)
+
+ def get_purchase_order_mapping(self):
+ return {
+ 'model': 'purchase.order',
+ 'dependencies': [self.TABLE_ITEM],
+ 'map': {
+ 'notes': call(self.get_fieldvalue, value('Header'), 'TotalAmt'),
+ 'order_line/id': self.get_purchase_order_line,
+ }
+ }
+
+ def get_pricelist(self, val):
+ pricelist_id = self.mapped_id_if_exist('product.pricelist', [('name', '=', 'Public Pricelist')], 'product_pricelist', 'id')
+ return pricelist_id
+
+ def get_sale_order(self, val):
+ partner_id = self.get_partner_id(val, 'CustomerName', 'CustomerId')
+ partner_address_id = self.get_partner_address_id(val, 'CustomerId')
+ pricelist_id = self.get_pricelist(val)
+ date = self.get_value(val, 'Header', 'TxnDate')
+ field = ['date_order', 'partner_id/id', 'partner_invoice_id/id', 'partner_order_id/id', 'partner_shipping_id/id', 'id', 'pricelist_id/id']
+ dic = [date, partner_id, partner_address_id, partner_address_id, partner_address_id, val.get('Id'), pricelist_id]
+ name = val.get('Id')
+ return self.import_object(field, dic, 'sale.order', self.TABLE_SALE_ORDER, name, False)
+
+ def get_saleorder_line(self, vals):
+ sale_id = self.get_sale_order(vals)
+ line_ids = []
+ tax_id = self.mapped_id_if_exist('account.tax', [('name', '=', self.get_value(vals, 'TaxLine', 'TaxName'))], self.TABLE_ACCOUNT_TAX, self.get_value(vals, 'TaxLine', 'TaxId'))
+ for val in vals.get('Line'):
+ if val.get('ItemId'):
+ product_id = self.mapped_id_if_exist('product.product', [('name', '=', val.get('ItemName'))], self.TABLE_ITEM, val.get('ItemId')[0])
+ uom_id = self.mapped_id_if_exist('product.uom', [('name', '=', 'PCE')], 'product_uom', 'PCE')
+ fields = ['name', 'product_uom_qty', 'price_unit', 'product_id/id', 'product_uom/id', 'order_id/id', 'tax_id/id']
+ data = [val.get('Desc', 'test')[0], val.get('Qty','0')[0], val.get('UnitPrice','0')[0], product_id, uom_id, sale_id, tax_id]
+ name = 'Line' + val.get('Id')[0]
+ line_ids.append(self.import_object(fields, data, 'sale.order.line', 'sale_order_line', name, False))
+ return ','.join(line_ids)
+
+ def get_sale_order_mapping(self):
+ return {
+ 'model': 'sale.order',
+ 'dependencies': [self.TABLE_ITEM, self.TABLE_CUSTOMER],
+ 'map': {
+ 'order_line/id': self.get_saleorder_line,
+ }
+ }
+
+>>>>>>> MERGE-SOURCE
class import_quickbooks(osv.osv_memory):
_name = 'import.quickbooks'
@@ -715,12 +838,19 @@
'customer': fields.boolean('Customers', help="Import customers."),
'vendor': fields.boolean('Vendors', help="Import vendors."),
'item': fields.boolean('Items & Services', help="Import items."),
+<<<<<<< TREE
# 'sale': fields.boolean('Sale Orders', help="Not implement yet.",readonly=True),
'account': fields.boolean('Accounts', help="Import Accounts."),
'invoice': fields.boolean('Customer Invoices', help="Import Customer Invoices."),
'payment': fields.boolean('Customer Payment', hep="Import Customer Payment"),
'purchase': fields.boolean('Purchase Orders', help="Import Purchase Orders"),
'sale_receipt': fields.boolean('Sales Receipt', help="Import Sales Receipt"),
+=======
+ 'sale': fields.boolean('Sale Orders', help="Import Sale Order"),
+ 'account': fields.boolean('Accounts', help="Import accounts."),
+ 'invoice': fields.boolean('Invoices', help="Import invoices."),
+ 'purchase': fields.boolean('Purchase Orders', help="Import purchase"),
+>>>>>>> MERGE-SOURCE
# 'employee': fields.boolean('Employees', help="Not implement yet.",readonly=True),
'email': fields.char('Notify end of import to', size=64, help="Email address of the user to be notified when the import is complete."),
@@ -745,10 +875,15 @@
nodes.append('Invoice')
if current.purchase:
nodes.append('PurchaseOrder')
+<<<<<<< TREE
if current.payment:
nodes.append('Payment')
if current.sale_receipt:
nodes.append('SalesReceipt')
+=======
+ if current.sale:
+ nodes.append('SalesOrder')
+>>>>>>> MERGE-SOURCE
return nodes
def import_alldata(self, cr, uid, ids, context=None):
@@ -781,7 +916,11 @@
resource_id = model_pool.read(cr, uid, model_data_ids, fields=['res_id'])
tables = self._get_nodes(cr, uid, ids, context)
args = (tables)
+<<<<<<< TREE
vals.update({'name': 'Import QuickBook Datas',
+=======
+ vals.update({'name': 'Import Quickbooks Datas',
+>>>>>>> MERGE-SOURCE
'interval_number': '6',
'interval_type': 'months',
'numbercall': '2',
=== modified file 'import_quickbooks/wizard/import_data_from_quickbook.xml'
--- import_quickbooks/wizard/import_data_from_quickbook.xml 2011-08-09 12:40:43 +0000
+++ import_quickbooks/wizard/import_data_from_quickbook.xml 2011-09-05 12:18:21 +0000
@@ -46,7 +46,15 @@
<separator string="Purchase" colspan="4"/>
<field name="purchase" />
</group>
+<<<<<<< TREE
<group colspan="2" col="2">
+=======
+ <group colspan="2" col="4">
+ <separator string="Sales" colspan="4"/>
+ <field name="sale" />
+ </group>
+ <group colspan="2" col="4">
+>>>>>>> MERGE-SOURCE
<separator string="Product" colspan="4"/>
<field name="item"/>
</group>
_______________________________________________
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