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

Reply via email to