~technofluid-team/openobject-addons/technofluid_multiple_installations

« back to all changes in this revision

Viewing changes to esale_joomla/wizard/wizard_esale_import.py

  • Committer: pinky
  • Date: 2006-12-07 13:41:40 UTC
  • Revision ID: pinky-dedd7f8a42bd4557112a0513082691b8590ad6cc
New trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import netsvc
 
2
import ir
 
3
import time
 
4
import os
 
5
import netsvc
 
6
import xmlrpclib
 
7
import pooler
 
8
 
 
9
import wizard
 
10
from osv import osv
 
11
 
 
12
_import_done_fields = {
 
13
        'num': {'string':'New Sales Orders', 'readonly':True, 'type':'integer'}
 
14
}
 
15
 
 
16
_import_done_form = '''<?xml version="1.0"?>
 
17
<form string="Saleorders import">
 
18
        <separator string="eSale Orders imported" colspan="4" />
 
19
        <field name="num"/>
 
20
</form>'''
 
21
 
 
22
def _do_import(self, cr, uid, data, context):
 
23
        self.pool = pooler.get_pool(cr.dbname)
 
24
        ids = self.pool.get('esale_joomla.web').search(cr, uid, [])
 
25
        total = 0
 
26
        for website in self.pool.get('esale_joomla.web').browse(cr, uid, ids):
 
27
                server = xmlrpclib.ServerProxy("%s/tinyerp-synchro.php" % website.url)
 
28
 
 
29
                cr.execute("select max(web_ref) from esale_joomla_order where web_id=%d", (website.id,))
 
30
                max_web_id=cr.fetchone()[0]
 
31
 
 
32
                saleorders = server.get_saleorders(max_web_id or 0)
 
33
                for so in saleorders:
 
34
                        total += 1
 
35
                        pids = self.pool.get('esale_joomla.partner').search(cr, uid, [('esale_id','=',so['delivery']['esale_id'])])
 
36
                        if pids:
 
37
                                adr_ship = pids[0]
 
38
                                self.pool.get('esale_joomla.partner').write(cr, uid, pids, so['delivery'] )
 
39
                        else:
 
40
                                adr_ship = self.pool.get('esale_joomla.partner').create(cr, uid, so['delivery'] )
 
41
 
 
42
                        pids = self.pool.get('esale_joomla.partner').search(cr, uid, [('esale_id','=',so['billing']['esale_id'])])
 
43
                        if pids:
 
44
                                adr_bill = pids[0]
 
45
                                self.pool.get('esale_joomla.partner').write(cr, uid, pids, so['billing'] )
 
46
                        else:
 
47
                                adr_bill = self.pool.get('esale_joomla.partner').create(cr, uid, so['billing'] )
 
48
 
 
49
                        order_id=self.pool.get('esale_joomla.order').create(cr, uid, {
 
50
                                'web_id': website.id,
 
51
                                'web_ref': so['id'],
 
52
                                'name': so['id'],
 
53
                                'date_order': so['date'] or time.strftime('%Y-%m-%d'),
 
54
                                'note': so['note'] or '',
 
55
                                'epartner_shipping_id': adr_ship,
 
56
                                'epartner_invoice_id': adr_bill,
 
57
                        })
 
58
 
 
59
                        for orderline in so['lines']:
 
60
                                print orderline, website.id
 
61
                                ids=self.pool.get('esale_joomla.product').search(cr, uid, [('esale_joomla_id', '=', orderline['product_id']), ('web_id', '=', website.id)])
 
62
 
 
63
                                print 'Products', ids
 
64
                                if len(ids):
 
65
                                        osc_product_id=ids[0]
 
66
                                        osc_product=self.pool.get('esale_joomla.product').browse(cr, uid, osc_product_id)
 
67
                                        a = {
 
68
                                                'product_id': osc_product.product_id.id,
 
69
                                                'product_qty': orderline['product_qty'],
 
70
                                                'name': osc_product.name,
 
71
                                                'order_id': order_id,
 
72
                                                'product_uom_id': osc_product.product_id.uom_id.id,
 
73
                                                'price_unit': orderline['price'],
 
74
                                        }
 
75
                                        print '-'*50
 
76
                                        print a
 
77
                                        self.pool.get('esale_joomla.order.line').create(cr, uid, {
 
78
                                                'product_id': osc_product.product_id.id,
 
79
                                                'product_qty': orderline['product_qty'],
 
80
                                                'name': osc_product.name,
 
81
                                                'order_id': order_id,
 
82
                                                'product_uom_id': osc_product.product_id.uom_id.id,
 
83
                                                'price_unit': orderline['price'],
 
84
                                        })
 
85
                cr.commit()
 
86
        return {'num':total}
 
87
 
 
88
class wiz_esale_joomla_import_sos(wizard.interface):
 
89
        states = {
 
90
                'init': {
 
91
                        'actions': [_do_import],
 
92
                        'result': {
 
93
                                'type': 'form',
 
94
                                'arch': _import_done_form,
 
95
                                'fields': _import_done_fields,
 
96
                                'state': [('end', 'End')]
 
97
                        }
 
98
                }
 
99
        }
 
100
wiz_esale_joomla_import_sos('esale_joomla.saleorders');