~openerp-commiter/openobject-addons/trunk-extra-addons

« back to all changes in this revision

Viewing changes to esale_joomla/esale_joomla.py

  • Committer: Mustufa Rangwala
  • Date: 2008-06-11 07:23:21 UTC
  • Revision ID: mra@tinyerp.com-1f024e3ce89987454b17eeada86984fede80dbad
* it defines access rules on crm object
        - some groups only can see the confidential info..
        - it defines some rules on created groups

* based on crm module

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
import time
35
35
import xmlrpclib
 
36
from tools import config
 
37
 
36
38
 
37
39
from mx import DateTime
38
40
 
89
91
                                value={
90
92
                                        'web_id': website.id,
91
93
                                        'esale_joomla_id': category[0],
92
 
                                        'name': category[1]
 
94
                                        'name': len(category[1]) > 64 and category[1][0:61]+'...' or category[1]
93
95
                                }
94
96
                                existing = category_pool.search(cr, uid, [('web_id','=',website.id), ('esale_joomla_id', '=', category[0])])
95
97
                                if len(existing)>0:
175
177
                        create_id = self.pool.get('res.partner').create(cr, uid, {
176
178
                                'name': adr.name,
177
179
                        })
178
 
                        create_id2 = self.pool.get('res.partner.address').create(cr, uid, {
 
180
                        list={
179
181
                                        'street': adr.address,
180
182
                                        'partner_id': create_id,
181
183
                                        'zip': adr.zip,
182
184
                                        'city': adr.city,
183
185
                                        'email': adr.email,
184
 
                                        'country_id': country and country[0][0] or False,
185
 
                                        'state_id': state and state[0][0] or False,
186
 
                        })
 
186
                        }
 
187
                        if adr.country and len(country) == 1:
 
188
                                list['country_id'] = country and country[0][0]
 
189
                        if adr.state and len(state) == 1:
 
190
                                list['state_id'] = state and state[0][0]
 
191
 
 
192
                        create_id2 = self.pool.get('res.partner.address').create(cr, uid, list)
 
193
 
187
194
                        self.write(cr, uid, [adr.id], {'address_id': create_id2} )
188
195
                return True
189
196
esale_joomla_partner()
221
228
        def order_create(self, cr, uid, ids, context={}):
222
229
                for order in self.browse(cr, uid, ids, context):
223
230
                        if not (order.partner_id and order.partner_invoice_id and order.partner_shipping_id):
224
 
                                raise osv.except_osv('No addresses !',
225
 
                                                'You must assign addresses before creating the order.')
 
231
                                raise osv.except_osv('No addresses !', 'You must assign addresses before creating the order.')
 
232
                        #pricelist_id=order.partner_id.property_product_pricelist[0]
226
233
                        pricelist_id=order.partner_id.property_product_pricelist.id
227
234
                        order_lines = []
228
235
                        for line in order.order_lines:
233
240
                                        'product_uom': line.product_uom_id.id,
234
241
                                        'price_unit': line.price_unit,
235
242
                                }
236
 
                                val_new = self.pool.get('sale.order.line').product_id_change(cr, uid, None,
237
 
                                                pricelist_id, line.product_id.id, line.product_qty,
238
 
                                                line.product_uom_id.id, name=line.name,
239
 
                                                partner_id=order.partner_id.id)['value']
 
243
                                val_new = self.pool.get('sale.order.line').product_id_change(cr, uid, None, pricelist_id, line.product_id.id, line.product_qty, line.product_uom_id.id, name=line.name)['value']
240
244
                                del val_new['price_unit']
241
 
                                del val_new['weight']
 
245
                                #del val_new['weight']
 
246
                                del val_new['th_weight']
 
247
                                val_new['product_uos'] = 'product_uos' in val_new and val_new['product_uos'] and val_new['product_uos'][0] or False
242
248
                                val.update( val_new )
243
 
                                val['tax_id'] = [(6,0,val['tax_id'])]
 
249
                                val['tax_id'] = 'tax_id' in val and [(6,0,val['tax_id'])] or False
244
250
                                order_lines.append( (0,0,val) )
245
251
                        order_id = self.pool.get('sale.order').create(cr, uid, {
246
252
                                'name': order.name,
256
262
                                'order_line': order_lines
257
263
                        })
258
264
                        self.write(cr, uid, [order.id], {'state':'done', 'order_id': order_id})
259
 
                        wf_service = netsvc.LocalService("workflow")
260
 
                        wf_service.trg_validate(uid, 'sale.order', order_id, 'order_confirm', cr)
 
265
#                       wf_service = netsvc.LocalService("workflow")
 
266
#                       wf_service.trg_validate(uid, 'sale.order', order_id, 'order_confirm', cr)
261
267
                return True
262
268
 
263
269
        def address_set(self, cr, uid, ids, *args):
271
277
                                'partner_shipping_id': order.epartner_invoice_id.address_id.id,
272
278
                                'partner_id': order.epartner_invoice_id.address_id.partner_id.id,
273
279
                                'partner_invoice_id': order.epartner_shipping_id.address_id.id,
 
280
 
274
281
                        })
275
282
                return True
276
283
 
287
294
                'order_id': fields.many2one('esale_joomla.order', 'eOrder Ref'),
288
295
                'product_qty': fields.float('Quantity', digits=(16,2), required=True),
289
296
                'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], change_default=True),
290
 
                'product_uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True),
291
 
                'price_unit': fields.float('Unit Price', required=True),
 
297
                'product_uom_id': fields.many2one('product.uom', 'Unit of Measure',required=True),
 
298
                'price_unit': fields.float('Unit Price',digits=(16, int(config['price_accuracy'])), required=True),
292
299
        }
293
300
        _defaults = {
294
301
        }
295
302
esale_joomla_order_line()
296
303
 
 
304
class esale_joomla_web_exportlog(osv.osv):
 
305
        _name = 'esale_joomla.web.exportlog'
 
306
        _description = "eSale webshop Synchronisation log"
 
307
        _columns = {
 
308
                'name': fields.char('Synchronisation Log',size=64,required=True),
 
309
                'web_id': fields.many2one('esale_joomla.web', 'Web Ref'),
 
310
                'log_date':fields.datetime('Log date',required=True),
 
311
                'log_type':fields.selection([('product','Product'), ('category','Category'),('lang','Language'),('tax','Tax')], 'Export type',readonly=True),
 
312
                'user_id': fields.many2one('res.users', 'Exported By', required=True),
 
313
        }
 
314
        _defaults = {
 
315
                'log_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
 
316
                'user_id' : lambda obj,cr,uid,context: uid,
 
317
    }
 
318
esale_joomla_web_exportlog()
 
319
 
 
320
class product_product(osv.osv):
 
321
    _name = "product.product"
 
322
    _inherit = "product.product"
 
323
    _columns = {
 
324
                'exportable':fields.boolean('Export to website'),
 
325
        }
 
326
    _defaults = {
 
327
         'exportable':lambda *a: True,
 
328
    }
 
329
product_product()
297
330