示例#1
0
class StockAccrualWizardLine(osv.osv_memory):
    _name = 'stock.accrual.wizard.line'
    _columns = {
        'wzd_id':
        fields.many2one('stock.accrual.wizard', 'Wizard'),
        'order_id':
        fields.reference('Order', selection=SELECT_ORDER, size=128),
        'line_id':
        fields.reference('Order Line', selection=SELECT_LINE, size=128),
        'product_qty':
        fields.float(
            'Quantity',
            digits_compute=dp.get_precision('Product UoS'),
        ),
        'product_uom':
        fields.many2one(
            'product.uom',
            'Unit of Measure ',
        ),
        'qty_delivered':
        fields.float(
            'Delivered Quantity',
            digits_compute=dp.get_precision('Product UoS'),
        ),
        'qty_invoiced':
        fields.float(
            'Invoiced Quantity',
            digits_compute=dp.get_precision('Product UoS'),
        ),
        'debit':
        fields.float('Debit', digits_compute=dp.get_precision('Account')),
        'credit':
        fields.float('Credit', digits_compute=dp.get_precision('Account')),
    }
示例#2
0
class res_request(osv.osv):
    _name = 'res.request'

    def request_send(self, cr, uid, ids, *args):
        for id in ids:
            cr.execute('update res_request set state=%s,date_sent=%s where id=%s', ('waiting', time.strftime('%Y-%m-%d %H:%M:%S'), id))
            cr.execute('select act_from,act_to,body,date_sent from res_request where id=%s', (id,))
            values = cr.dictfetchone()
            if values['body'] and (len(values['body']) > 128):
                values['name'] = values['body'][:125] + '...'
            else:
                values['name'] = values['body'] or '/'
            values['req_id'] = id
            self.pool.get('res.request.history').create(cr, uid, values)
        return True

    def request_reply(self, cr, uid, ids, *args):
        for id in ids:
            cr.execute("update res_request set state='active', act_from=%s, act_to=act_from, trigger_date=NULL, body='' where id=%s", (uid,id))
        return True

    def request_close(self, cr, uid, ids, *args):
        self.write(cr, uid, ids, {'state':'closed'})
        return True

    def request_get(self, cr, uid):
        cr.execute('select id from res_request where act_to=%s and (trigger_date<=%s or trigger_date is null) and active=True and state != %s', (uid,time.strftime('%Y-%m-%d'), 'closed'))
        ids = map(lambda x:x[0], cr.fetchall())
        cr.execute('select id from res_request where act_from=%s and (act_to<>%s) and (trigger_date<=%s or trigger_date is null) and active=True and state != %s', (uid,uid,time.strftime('%Y-%m-%d'), 'closed'))
        ids2 = map(lambda x:x[0], cr.fetchall())
        return ids, ids2

    _columns = {
        'create_date': fields.datetime('Created Date', readonly=True),
        'name': fields.char('Subject', states={'waiting':[('readonly',True)],'active':[('readonly',True)],'closed':[('readonly',True)]}, required=True, size=128),
        'active': fields.boolean('Active'),
        'priority': fields.selection([('0','Low'),('1','Normal'),('2','High')], 'Priority', states={'waiting':[('readonly',True)],'closed':[('readonly',True)]}, required=True),
        'act_from': fields.many2one('res.users', 'From', required=True, readonly=True, states={'closed':[('readonly',True)]}, select=1),
        'act_to': fields.many2one('res.users', 'To', required=True, states={'waiting':[('readonly',True)],'closed':[('readonly',True)]}, select=1),
        'body': fields.text('Request', states={'waiting':[('readonly',True)],'closed':[('readonly',True)]}),
        'date_sent': fields.datetime('Date', readonly=True),
        'trigger_date': fields.datetime('Trigger Date', states={'waiting':[('readonly',True)],'closed':[('readonly',True)]}, select=1),
        'ref_partner_id':fields.many2one('res.partner', 'Partner Ref.', states={'closed':[('readonly',True)]}),
        'ref_doc1':fields.reference('Document Ref 1', selection=_links_get, size=128, states={'closed':[('readonly',True)]}),
        'ref_doc2':fields.reference('Document Ref 2', selection=_links_get, size=128, states={'closed':[('readonly',True)]}),
        'state': fields.selection([('draft','draft'),('waiting','waiting'),('active','active'),('closed','closed')], 'Status', required=True, readonly=True),
        'history': fields.one2many('res.request.history','req_id', 'History')
    }
    _defaults = {
        'act_from': lambda obj,cr,uid,context=None: uid,
        'state': 'draft',
        'active': True,
        'priority': '1',
    }
    _order = 'priority desc, trigger_date, create_date desc'
    _table = 'res_request'
class crm_helpdesk(osv.osv):
    _inherit = "crm.helpdesk"
    _columns = {
        'od_ref3':
        fields.reference(
            'Reference 3',
            selection=openerp.addons.base.res.res_request.referencable_models),
        'od_ref4':
        fields.reference(
            'Reference 4',
            selection=openerp.addons.base.res.res_request.referencable_models),
    }
示例#4
0
class crm_custom_calendar_activity(osv.Model):
    _name = "crm.custom.calendar.activity"

    def _links_get(self, cr, uid, context=None):
        """
            Gets links value for reference field
        """
        links = self.pool.get('links.get')
        return links._links_get(cr, uid, context=context)

    _columns = {
        'name':
        fields.char('Lista', size=128, required=True, readonly=True),
        'category':
        fields.char('Categoria', size=64, readonly=True),
        'date':
        fields.date('Fecha', required=True, readonly=True, select=True),
        'user_id':
        fields.many2one('res.users', 'Responsable', readonly=True),
        'reference':
        fields.reference('Referencia',
                         selection=_links_get,
                         size=128,
                         readonly=True),
    }
示例#5
0
class FetchmailInboxAttachExistingWizard(TransientModel):
    _name = 'fetchmail.inbox.attach.existing.wizard'
    _description= 'Attach mail to existing object'

    _columns = {
            'res_model': fields.char('Model', size=128),
            'res_id': fields.integer('Object', required=True),
            'res_reference': fields.reference(
                'Reference',
                lambda self, cr, uid, context: [(m.model, m.name) for m in
                    self.pool.get('ir.model').browse(
                        cr, uid,
                        self.pool.get('ir.model').search(
                            cr, uid, [], context=context),
                        context)],
                None),
            'mail_id': fields.many2one('mail.message', 'Email', required=True),
    }

    def fields_view_get(self, cr, user, view_id=None, view_type='form',
                        context=None, toolbar=False, submenu=False):
        result = super(FetchmailInboxAttachExistingWizard, self)\
                .fields_view_get(
                        cr, user, view_id=view_id, view_type=view_type, 
                        context=context, toolbar=toolbar, submenu=submenu)
        if context and context.get('default_res_model'):
            result['fields']['res_id']['type'] = 'many2one'
            result['fields']['res_id']['relation'] = \
                    context['default_res_model']
            result['fields']['res_id']['context'] = {}
        return result

    def button_attach(self, cr, uid, ids, context=None):
        for this in self.browse(cr, uid, ids, context=context):
            if this.res_model and this.res_id:
                res_model = this.res_model
                res_id = this.res_id
            elif this.res_reference:
                res_model = this.res_reference._model._name
                res_id = this.res_reference.id
            else:
                raise except_orm(
                        _('Error'), _('You have to select an object!'))

            model = self.pool.get(res_model)
            if hasattr(model, 'message_update'):
                model.message_update(
                        cr, uid, [res_id], 
                        this.mail_id.fetchmail_inbox_to_msg_dict(),
                        context=dict(context, from_fetchmail_inbox=True))

            this.mail_id.fetchmail_inbox_move_to_record(res_model, res_id)

            return {
                    'type': 'ir.actions.act_window',
                    'view_mode': 'form',
                    'res_model':
                        this.res_model or this.res_reference._model._name,
                    'res_id': this.res_id or this.res_reference.id,
                    }
class attribute_option(orm.Model):
    _name = "attribute.option"
    _description = "Attribute Option"
    _order = "sequence"

    _columns = {
        'name':
        fields.char('Name', size=128, translate=True, required=True),
        'value_ref':
        fields.reference('Reference', selection=[], size=128),
        'attribute_id':
        fields.many2one('attribute.attribute',
                        'Product Attribute',
                        required=True),
        'sequence':
        fields.integer('Sequence'),
    }

    def name_change(self, cr, uid, ids, name, relation_model_id, context=None):
        if relation_model_id:
            warning = {
                'title':
                _('Error!'),
                'message':
                _("Use the 'Change Options' button instead to select appropriate model references'"
                  )
            }
            return {"value": {"name": False}, "warning": warning}
        else:
            return True
class budget_operation_history(osv.Model):
    """
    Inherit operation history model to add reference field which present other operation record which create the history
    """
    _inherit = "account.budget.operation.history"

    _columns = {
        'reference':
        fields.reference('Event Ref',
                         selection=[('account.budget.operation',
                                     'account.budget.operation')],
                         size=128),
    }

    def unlink(self, cr, uid, ids, context=None):
        """
        Inherit unlink method to prevent deleting operation history record if it created as result of another operation and has reference
        
        @return: raise an exception if record has reference or delete the record 
        """
        for s in self.read(cr, uid, ids, ['reference'], context=context):
            if s['reference'] is not None:
                raise orm.except_orm(
                    _('Invalid action !'),
                    _('Can not  delete operation history while it has a related operation !'
                      ))
        return super(budget_operation_history, self).unlink(cr,
                                                            uid,
                                                            ids,
                                                            context=context)
示例#8
0
class letter_ref(orm.Model):
    _name = 'letter.ref'

    def _name_get_intref(self, cr, uid, ids, prop, unknow_none, context=None):
        context = context or self.pool['res.users'].context_get(cr, uid)
        if not len(ids):
            return []
        res = []
        for record in self.browse(cr, uid, ids, context=context):
            name = record.int_ref.name_get()[0]
            res.append((record.id, name[1]))
        return dict(res)

    def _links_get(self, cr, uid, context=None):
        context = context or self.pool['res.users'].context_get(cr, uid)
        obj = self.pool['res.request.link']
        ids = obj.search(cr, uid, [], context=context)
        res = obj.browse(cr, uid, ids, context)
        return [(r.object, r.name) for r in res]

    _columns = {
        'name': fields.char('Name', size=128, help="Subject of letter"),
        'int_ref': fields.reference('Reference', selection=_links_get, size=128),
        'ref_name': fields.function(_name_get_intref, method=True, type="char", string="Letter Reference"),
        'letter_id': fields.many2one('res.letter', "Letter"),
    }
    _defaults = {
        'name': lambda self, cr, uid, context: self.pool['ir.sequence'].get(cr, uid, 'letter.ref'),
    }
class cost_type(osv.osv):
    _name = 'cost.type'
    _description = ''
    _columns = {
        'name': fields.char('Cost name', size=255, required=True),
        'cost_type': fields.selection(COST_TYPES, 'Cost type', required=True,
            help="This option is used to define how the cost is calculated.\n" \
            "The 'Total' value means that the cost is a totalizing of the preceding lines in the structure sequence.\n"\
            "The 'BoM' value means that the cost is calculated from the product BoM.\n"\
            "The 'Cost price' value means that the cost is the cost price that currently has the product.\n"\
            "The 'Ratio' value means that the cost is calculated based on a ratio.\n"\
            "The 'Inventory' value means that the cost is as total and when update product cost it will be used as the 'Cost price'."
            ),
        'cost_ratio': fields.float('Cost ratio'),
        'distribution_mode': fields.selection(DISTRIBUTION_MODES, 'Distribution mode'),
#        'budget_item': fields.many2one('budget.item', 'Budget Item'),
        'forecast_type': fields.reference('Forecast', MODELS, size=128),
        'forecast_cost_ratio': fields.float('Forecasted cost ratio', readonly=True), # TODO: campo funcion
        'real_cost_ratio': fields.float('Real cost ratio', readonly=True), # TODO: campo funcion
        'company_id': fields.many2one('res.company', 'Company', required=True),
    }
    _defaults = {
        'cost_type': 'total',
        'company_id': lambda s, cr, uid, c:
        s.pool.get('res.company')._company_default_get(cr, uid, 'cost.type',
                                                       context=c),
    }
示例#10
0
class account_aged_partner_document(osv.TransientModel):
    _name = 'account.aged.partner.document'
    _inherit = 'account.aged.partner.balance.vw'
    _rec_name = 'partner_id'
    _order = 'partner_id, due_days'

    _columns = {
        'user_id':
        fields.many2one('res.users', 'User', help="User's Document"),
        'date_due':
        fields.date('Due Date', help='Due Date'),
        'due_days':
        fields.integer(u'Due Days'),
        'residual':
        fields.float(u'Residual'),
        'aatb_id':
        fields.many2one('account.aged.trial.balance', ('Aged Trial '
                                                       'Balance'),
                        help='Aged Trail Balance Document'),
        'document_id':
        fields.reference('Document',
                         [('account.invoice', 'Invoice'),
                          ('account.voucher', 'Voucher'),
                          ('account.move.line', 'Journal Entry Line')],
                         size=128,
                         required=False),
    }
示例#11
0
class ir_config_parameter(osv.osv):
    _inherit = 'ir.config_parameter'

    def onchange_od_model_id(self, cr, uid, ids, od_model_id, context=None):
        res = {}
        if od_model_id:
            data = od_model_id.split(',')
            value = self.pool.get(str(data[0])).browse(cr, uid, int(data[1]),
                                                       context).name
            res = {'value': {'value': value}}
        return res

    def _models_field_get(self, cr, uid, field_key, field_value, context=None):
        get = attrgetter(field_key, field_value)
        obj = self.pool.get('ir.model.fields')
        ids = obj.search(cr, uid, [], context=context)
        res = set()
        for o in obj.browse(cr, uid, ids, context=context):
            res.add(get(o))
        return list(res)

    def _models_get(self, cr, uid, context=None):
        return self._models_field_get(cr, uid, 'model', 'model_id.name',
                                      context)

    _columns = {
        'od_model_id':
        fields.reference(
            'Ref Value/Table',
            selection=_models_get,
            size=128,
            help=
            "Select the Resource/Model/Table from where the data has to get"),
    }
示例#12
0
class fi_doc_line_cost(osv.osv):
    def _get_co(self, cr, uid, context=None):
        return [('res.partner', '往来')]

    _name = 'fi.doc.line.cost'
    _description = u'辅助核算行'
    _columns = {
        #凭证行编号
        'line_id':
        fields.many2one('fi.doc.line', u'凭证行'),
        #类别
        'type':
        fields.char(u'辅助核算类别', size=64),
        #辅助核算项目
        'co_obj':
        fields.reference(u'辅助核算项目', selection=_get_co, size=128),
        #借方
        #TODO 这里这个'Account'能否使用当前class的name?
        'debit':
        fields.float(u'借方',
                     help=u'以公司本位币计的金额',
                     digits_compute=dp.get_precision('Account')),
        #贷方
        'credit':
        fields.float(u'贷方',
                     help=u'以公司本位币计的金额',
                     digits_compute=dp.get_precision('Account')),
        #产品相关
        #数量
        'quantity':
        fields.float(u'数量', digits_compute=dp.get_precision('Account')),
        #单价
        'price':
        fields.float(u'单价', digits_compute=dp.get_precision('Account')),
        #业务伙伴相关
        #到期日
        'due':
        fields.date(u'到期日', help=u'往来欠款到期日,用于计算账龄'),
        'period_id':
        fields.related('line_id',
                       'period_id',
                       type='many2one',
                       relation='fi.period',
                       string='期间',
                       store=True),
        'acc_id':
        fields.related('line_id',
                       'acc_id',
                       type='many2one',
                       relation='fi.acc',
                       string='科目',
                       store=True)
    }

    _defaults = {
        'period_id': lambda self, cr, uid, c: c.get('period_id', False),
        'acc_id': lambda self, cr, uid, c: c.get('acc_id', False),
    }
示例#13
0
class subscription_subscription_history(osv.osv):
    _name = "subscription.subscription.history"
    _description = "Subscription history"
    _rec_name = 'date'
    _columns = {
        'date': fields.datetime('Date'),
        'subscription_id': fields.many2one('subscription.subscription', 'Subscription', ondelete='cascade'),
        'document_id': fields.reference('Source Document', required=True, selection=_get_document_types, size=128),
    }
示例#14
0
class account_invoice_line(orm.Model):
    _inherit = 'account.invoice.line'

    _columns = {
        'origin_document':
        fields.reference(_("Origin Document"),
                         selection=base.res.res_request._links_get,
                         size=None)
    }
示例#15
0
class budget_item(orm.Model):
    MODELS = [('sales.forecast', 'Sales forecast'),
              ('forecast.kg.sold', 'Kg sold forecast'),
              ('mrp.forecast', 'Hour forecast')]
    TYPES = [('euros', '€'), ('units', 'Uds'), ('kg', 'Kg'), ('min', 'Mins')]
    _inherit = "budget.item"
    _columns = {
        'distribution_mode': fields.reference('Forecast', MODELS, size=128),
        'type_c': fields.selection(TYPES, 'type', required=False)
    }
class account_move(osv.osv):
    _inherit = "account.move"

    _columns = {
        'source_id':
        fields.reference('Source',
                         selection=get_model_selection,
                         size=128,
                         select=1),
    }
class account_move_line(osv.Model):
    _inherit = "account.move.line"

    def _get_faktur_pajak_number(self,
                                 cr,
                                 uid,
                                 ids,
                                 field_name,
                                 args,
                                 context=None):
        if not context:
            context = {}
        res = {}
        for mvl in self.browse(cr, uid, ids, context):
            # print "################################",mvl.faktur_pajak_source._name, "##",mvl.faktur_pajak_source.name
            if mvl.faktur_pajak_source._name == 'ext.transaksi.line':
                res.update({
                    mvl.id:
                    mvl.faktur_pajak_source
                    and mvl.faktur_pajak_source.tax_ext_transaksi_id
                    and mvl.faktur_pajak_source.faktur_pajak
                    and mvl.faktur_pajak_source.faktur_pajak or ''
                })
            else:
                res.update({
                    mvl.id:
                    mvl.faktur_pajak_source
                    and mvl.faktur_pajak_source.nomor_faktur_id
                    and mvl.faktur_pajak_source.nomor_faktur_id.name or ''
                })
        return res

    _columns = {
        'ar_ap_tax':
        fields.boolean(
            "AR/AP Tax?",
            help=
            "This field indicates that this journal item record comes from splitted AR/AP Tax"
        ),
        "faktur_pajak_source":
        fields.reference(
            'Source Document',
            required=False,
            selection=_get_tax_source_types,
            size=128,
            help=
            "User can choose the source document on which he wants to create documents"
        ),
        "faktur_pajak_no":
        fields.function(_get_faktur_pajak_number,
                        type="char",
                        size=40,
                        string="Faktur Pajak Number"),
    }
示例#18
0
class cmms_incident(osv.osv):
    _name = "cmms.incident"
    _description = "Incident" 
    _inherit = ['mail.thread','ir.needaction_mixin']
    
    def create(self, cr, user, vals, context=None):
        if ('name' not in vals) or (vals.get('name')=='/'):
            vals['name'] = self.pool.get('ir.sequence').get(cr, user, 'cmms.incident')
        return super(cmms_incident, self).create(cr, user, vals, context)

    def _links_get(self, cr, uid, context={}):
        obj = self.pool.get('cmms.request.link')
        ids = obj.search(cr, uid, [])
        res = obj.read(cr, uid, ids, ['object', 'name'], context)
        return [(r['object'], r['name']) for r in res]
    
    def action_done(self, cr, uid, ids, context=None):
        return self.write(cr,uid,ids,{'state' : 'done'})
    
    def action_cancel(self, cr, uid, ids, context=None):
        return self.write(cr,uid,ids,{'state' : 'cancel'})
    
    def action_draft(self, cr, uid, ids, context=None):
        return self.write(cr,uid,ids,{'state' : 'draft'})

    _columns = {
        'name':fields.char('Work order reference',size=64),
        'state' : fields.selection([('draft',u'En cours'),('done',u'Validé'),('cancel',u'Annulé')],u'Statut',required=True),
        'priority': fields.selection(AVAILABLE_PRIORITIES, 'Priority'),
        'user_id': fields.many2one('res.users', 'Manager', readonly=True),
        'date': fields.datetime('Work order date'),
        'active' : fields.boolean('Active?'),
        'ref' : fields.reference('Work order source', selection=_links_get, size=128),
        'equipment_id': fields.many2one('cmms.equipment', 'Unit of work', required=True),
        'archiving3_ids': fields.one2many('cmms.archiving3', 'incident_id', 'follow-up history'),
    }
    _defaults = {
        'active': lambda * a:True,
        'name': lambda self, cr, uid, context: '/',
        'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
        'priority': lambda *a: AVAILABLE_PRIORITIES[2][0],
        'user_id': lambda object,cr,uid,context: uid,
        'state': lambda * a:'draft',
    }

    def copy(self, cr, uid, id, default=None, context=None):
        if not context:
            context = {}
        if default is None:
            default = {}
        default = default.copy()
        default['name'] = self.pool.get('ir.sequence').get(cr, uid, 'cmms.incident')
        return super(cmms_incident, self).copy(cr, uid, id, default=default, context=context)
示例#19
0
class account_invoice_line(orm.Model):
    _inherit = 'account.invoice.line'

    def _links_get(self, cr, uid, context=None):
        model_obj = self.pool['ir.model']
        ids = model_obj.search(cr, uid, [], context=context)
        res = model_obj.read(cr, uid, ids, ['model', 'name'], context)
        return [(r['model'], r['name']) for r in res]

    _columns = {
        'origin_document':
        fields.reference(_("Origin Document"), selection=_links_get, size=None)
    }
示例#20
0
class file_document(orm.Model):
    _inherit = "file.document"

    def _get_tasks(self, cr, uid, context=None):
        model_obj = self.pool.get('ir.model')
        ids = model_obj.search(cr, uid,
                               [('model', 'in', available_tasks)],
                               context=context)
        res = model_obj.read(cr, uid, ids, ['model', 'name'], context=context)
        return [(r['model'], r['name']) for r in res]

    _columns = {
        'task_id': fields.reference('Task', selection=_get_tasks, size=128),
    }
示例#21
0
class budget_operation_history(osv.Model):
    """
    Inherit budget operation history to add revenue flow as reference option
    """
    _inherit = "account.budget.operation.history"

    _columns = {
        'reference':
        fields.reference('Event Ref',
                         selection=[('account.budget.operation',
                                     'account.budget.operation'),
                                    ('account.revenue.flow',
                                     'account.revenue.flow')],
                         size=128),
    }
示例#22
0
class xml_template_ref(osv.osv):
    _name           = "xml.template.ref"
    _description    = "XML Template Reference"
    _order          = "name"

    def _links_get(self, cr, uid, context={}) :
        obj = self.pool.get("res.request.link")
        ids = obj.search(cr, uid, [])
        res = obj.read(cr, uid, ids, ["object", "name"], context)
        return [(r["object"], r["name"]) for r in res]
    # ende def _links_get

    _columns  = \
        { "xml_template_id" : fields.many2one("xml.template", "XML Template", required=True, ondelete="cascade")
        , "name"            : fields.reference('Reference', selection=_links_get, size=128, required=True)
        }
示例#23
0
class account_move(osv.Model):
    _inherit = "account.move"

    def _links_get(self, cr, uid, context=None):
        """
            Gets links value for reference field
        """
        links = self.pool.get('links.get.request')
        return links._links_get(cr, uid, context=context)

    _columns = {
        'reference':
        fields.reference('Referencia',
                         selection=_links_get,
                         size=128,
                         readonly=True),
    }
示例#24
0
class res_user(osv.osv):
    _columns = {
        'id': fields.integer(),
        'is_base': fields.boolean(),
        'classification': fields.char(),
        'description': fields.text(),
        'architecture': fields.html(),
        'amount': fields.float(),
        'date_rec': fields.date(),
        'expire': fields.datetime(),
        'image': fields.binary(),
        'state': fields.selection(),
        'ref': fields.reference(),
        'inv_ids': fields.many2one(),
        'partner_id': fields.one2many(),
        'relation': fields.many2many(),
    }
示例#25
0
class super_calendar(orm.Model):
    _name = 'super.calendar'
    _columns = {
        'name': fields.char('Description', size=512, required=True),
        'model_description': fields.char('Model Description',
                                         size=128,
                                         required=True),
        'date_start': fields.datetime('Start date', required=True),
        'duration': fields.float('Duration'),
        'user_id': fields.many2one('res.users', 'User'),
        'configurator_id': fields.many2one('super.calendar.configurator',
                                           'Configurator'),
        'res_id': fields.reference('Resource',
                                   selection=_models_get,
                                   size=128),
        'model_id': fields.many2one('ir.model', 'Model'),
    }
示例#26
0
class account_move(osv.Model):
    _inherit = "account.move"
    
    def _links_get(self, cr, uid, context=None):
        """
            Gets links value for reference field
        """
        links = self.pool.get('links.get.request')
        return links._links_get(cr, uid, context=context)
    
    _columns = {
        'reference': fields.reference('Referencia', selection=_links_get, size=128, readonly=True),
    }
    
    def action_view_move_line(self, cr, uid, ids, context=None):
        """
            Redirecciona a la vista lista de los apuntes contables de la poliza por medio de una ventana
        """
        # Obtiene la vista a cargar
        if not ids: return []
        dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'l10n_mx_account_move', 'view_wizard_account_move_edit')
        
        move = self.browse(cr, uid, ids[0], context=context)
        
        return {
            'name':_("Apuntes Contables"),
            'view_mode': 'form',
            'view_id': view_id,
            'view_type': 'form',
            'res_model': 'wizard.account.move.edit',
            'type': 'ir.actions.act_window',
            'target': 'new',
            'domain': "[]",
            'context': {
                'default_move_id': ids[0],
                'default_journal_id': move.journal_id.id or False,
                'manual': True,
                'default_company_id': move.company_id.id or False,
                'journal_id': move.journal_id.id or False,
                'company_id': move.company_id.id or False,
                'period_id': move.period_id.id or False,
                'default_name': move.name,
                'date': move.date
            },
        }
class res_company(osv.osv):
    _inherit = 'res.company'
    _columns = {
        'connected_with' : fields.reference('Connected With', [('res.partner', 'Partner'), ('res.dealer', 'Dealer'), ('crm.lead', 'Lead')], readonly=True),
    }

    def create(self, cr, uid, vals, context=None):
        print '\n create of company',vals,context
        if context.get('connect_with') == 'lead' and context.get('active_id'):
            connect_with = 'crm.lead'+','+str(context.get('active_id'))
            vals['connected_with'] = connect_with
        elif context.get('connect_with') == 'dealer' and context.get('active_id'):
            connect_with = 'res.dealer'+','+str(context.get('active_id'))
            vals['connected_with'] = connect_with
        elif context.get('connect_with') == 'partner' and context.get('active_id'):
            connect_with = 'res.partner'+','+str(context.get('active_id'))
            vals['connected_with'] = connect_with
        return super(res_company, self).create(cr, uid, vals, context=context)
class ir_attachment_ref(osv.osv):
    _name           = "ir.attachment.ref"
    _description    = "Attachment Reference"

    def _links_get(self, cr, uid, context={}) :
        obj = self.pool.get("res.request.link")
        ids = obj.search(cr, uid, [])
        res = obj.read(cr, uid, ids, ["object", "name"], context)
        return [(r["object"], r["name"]) for r in res]
    # ende def _links_get

    _columns  = \
        { "ir_attachment_id" : fields.many2one("ir.attachment", "Attachment", required=True, ondelete="cascade")
        , "name"             : fields.reference('Reference', selection=_links_get, size=128, required=True)
        }
    _sql_constraints = \
        [( "ir_attachment_ref_name_index"
         , "unique (name,ir_attachment_id)"
         , "The Reference has to be unique!"
         )
        ]
示例#29
0
class attach_mail_manually_mail(TransientModel):
    _name = 'fetchmail.attach.mail.manually.mail'

    _columns = {
        'wizard_id':
        fields.many2one('fetchmail.attach.mail.manually', readonly=True),
        'msgid':
        fields.char('Message id', size=16, readonly=True),
        'subject':
        fields.char('Subject', size=128, readonly=True),
        'date':
        fields.datetime('Date', readonly=True),
        'object_id':
        fields.reference(
            'Object',
            selection=lambda self, cr, uid, context: [(
                m.model, m.name) for m in self.pool.get('ir.model').browse(
                    cr, uid,
                    self.pool.get('ir.model').search(cr, uid, []), context)],
            size=128,
        ),
    }
示例#30
0
class budget_operation_history(osv.Model):

    _inherit = "account.budget.operation.history"

    _columns = {
        'reference':
        fields.reference('Event Ref',
                         selection=[('account.budget.operation',
                                     'account.budget.operation')],
                         size=128),
    }

    def unlink(self, cr, uid, ids, context=None):
        for s in self.read(cr, uid, ids, ['reference'], context=context):
            if s['reference'] is not None:
                raise orm.except_orm(
                    _('Invalid action !'),
                    _('Can not  delete operation history while it has a related operation !'
                      ))
        return super(budget_operation_history, self).unlink(cr,
                                                            uid,
                                                            ids,
                                                            context=context)