~vauxoo/addons-vauxoo/rico-contract_dp-dev_luis

« back to all changes in this revision

Viewing changes to account_analytic_analysis_rent/account_analytic_account_rent.py

  • Committer: Rodo
  • Date: 2013-07-05 13:18:08 UTC
  • Revision ID: rodo@vauxoo.com-20130705131808-gfxs0sqvsm8wbm4n
[IMP]account_analytic_account_rent] add journal and account in create invoice line

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
class account_analytic_product(osv.osv):
37
37
    _name='account.analytic.product'
38
38
    
 
39
    def onchange_product_id(self, cr, uid, ids, product_id, context=None):
 
40
        res={}
 
41
        if context==None:
 
42
            context={}
 
43
        product_obj=self.pool.get('product.product')
 
44
        for prod in product_obj.browse(cr, uid, [product_id], context):
 
45
            type='rent'
 
46
            if prod.accesory_ok:
 
47
                type='accesory'
 
48
        return {'value':{'type': type} }
 
49
    
39
50
    _columns={
40
 
        'product_id':fields.many2one('product.product','Product', domain=[('rent','=',False), ('rent_ok','=',True)]),
 
51
        'product_id':fields.many2one('product.product','Product', domain=['|', ('rent_ok','=',True), ('accesory_ok','=',True), ('rent','=',False) ]),
 
52
        'type': fields.selection([('rent','Rent'),('accesory','Accesory')],'Type'),
41
53
        'analytic_id':fields.many2one('account.analytic.account','Account Analytic')
42
54
    }
43
55
 
45
57
    _inherit='account.analytic.line'
46
58
    
47
59
    def _check_inv(self, cr, uid, ids, vals):
48
 
        print ids,vals,'pero si entra'
49
60
        select = ids
50
61
        if isinstance(select, (int, long)):
51
 
            print "si lo hace"
52
62
            select = [ids]
53
63
        if ( not vals.has_key('invoice_id')) or vals['invoice_id' ] == False:
54
64
            for line in self.browse(cr, uid, select):
55
65
                if line.invoice_id and 'account_id' not in vals:
56
 
                    print line.invoice_id,line.id, "no tiene"
57
66
                    raise osv.except_osv(_('Error !'),
58
67
                        _('You cannot modify an invoiced analytic lines!'))
59
68
        return True
70
79
    }
71
80
 
72
81
 
 
82
class account_invoice_line(osv.osv):
 
83
    _inherit='account.invoice.line'
 
84
    
 
85
    _columns={
 
86
        'w_start': fields.integer('Inicial'),
 
87
        'w_end': fields.integer('Final'),
 
88
    }
 
89
account_invoice_line()
 
90
    
 
91
 
73
92
class account_analytic_account(osv.osv):
74
93
    _inherit='account.analytic.account'
75
94
    
85
104
                            if l.id not in lines:
86
105
                                lines.append(l.id)
87
106
            result[contract.id] = lines
88
 
        print result,"lo mismos"
89
107
        return result
90
108
        
91
109
    def _compute_lines_inv(self, cr, uid, ids, name, args, context=None):
96
114
            for line in contract.line_ids:
97
115
                if line.invoice_id and line.invoice_id.id not in lines:
98
116
                    lines.append(line.invoice_id.id)
99
 
            print lines,"lines"
100
117
            result[contract.id]=lines
101
 
        print result,"si sale"
102
118
        return result
103
119
    
104
120
    _columns={
106
122
        'term_id': fields.many2one('analytic.term','Term'),
107
123
        'voucher_ids': fields.function(_compute_lines, relation='account.move.line', type="many2many", string='Payments'),
108
124
        'invoice_ids': fields.function(_compute_lines_inv, relation='account.invoice', type="many2many", string='Invoice'),
109
 
        'group_product': fields.boolean('Group Product')
 
125
        'group_product': fields.boolean('Group Product'),
 
126
        'journal_id':fields.many2one('account.journal','Journal')
110
127
    }
111
128
    
112
129
    def set_close(self, cr, uid, ids, context=None):
140
157
                move_obj.create(cr, uid, {'name':prod.product_id.name,'product_id':prod.product_id.id,'product_qty':1,'picking_id':picking_id,'product_uom':prod.product_id.uom_id.id,'location_id':warehouse.lot_stock_id.id,'location_dest_id':warehouse.lot_output_id.id}, context=context)
141
158
            for line in range(0,contract.term_id.no_term):
142
159
                for prod in contract.product_ids:
 
160
                    a = prod.product_id.product_tmpl_id.property_account_income.id
 
161
                    if not a:
 
162
                        a = prod.product_id.categ_id.property_account_income_categ.id
143
163
                    for feature in prod.product_id.feature_ids:
144
 
                        line_obj.create(cr, uid, {'date':date_invoice,'name':feature.name.name,'product_id':prod.product_id.id,'product_uom_id':prod.product_id.uom_id.id,'general_account_id':105,'to_invoice':1,'account_id':contract.id,'journal_id':2},context=context)
 
164
                        line_obj.create(cr, uid, {'date':date_invoice,'name':feature.name.name,'product_id':prod.product_id.id,'product_uom_id':prod.product_id.uom_id.id,'general_account_id':a,'to_invoice':1,'account_id':contract.id,'journal_id':contract.journal_id.analytic_journal_id.id},context=context)
145
165
                    product_obj.write(cr, uid, prod.product_id.id, {'rent':True,'contract_id':contract.id}, context=context)
146
166
                date_invoice=(datetime.strptime(date_invoice, "%Y-%m-%d") + relativedelta(months=1)).strftime("%Y-%m-%d")
147
167
        return super(account_analytic_account, self).set_open(cr, uid, ids, context=context)