~vauxoo/addons-vauxoo/7.0_test_hr_expense_dev_jorge

« back to all changes in this revision

Viewing changes to cost_structure/wizard/compute_cost.py

  • Committer: Jose Morales
  • Date: 2013-03-20 15:50:17 UTC
  • mto: This revision was merged to the branch mainline in revision 519.
  • Revision ID: jose@vauxoo.com-20130320155017-uvzmypl3ujrck6f2
 
[IMP] Remove sale model in cost module  to work without price in cost module beacase it is only compute the average cost in products 

Show diffs side-by-side

added added

removed removed

Lines of Context:
155
155
                
156
156
                if qty > 0 :
157
157
                    cost = price / qty
158
 
                    aux.update({i:[price,qty,cost and cost,dic_comp[i] and dic_comp[i][0] and dic_comp[i][0][4] or [] ]})
 
158
                    aux.update({i:[price,qty,cost and \
 
159
                            cost,dic_comp[i] and \
 
160
                            dic_comp[i][0] and dic_comp[i][0][4] or [] ]})
159
161
                    date = dic_comp.get(i)[-1] and dic_comp.get(i)[-1][0] and \
160
162
                           invoice_obj.browse(cr,uid,dic_comp.get(i)[-1][0],context=context).date_invoice
161
163
                    date = date and date.split('-') or False
168
170
                        pass
169
171
                    else:
170
172
                        if context.get('invoice_cancel',False):
171
 
                            product_obj.write(cr,uid,[product_brw.id],{'cost_ult':cost,'date_cost_ult':date ,'qty_ult':aux.get(i) and aux.get(i)[1] ,'ult_om':aux.get(i)[-1] or [] ,'date_ult_om': date },context=context)
 
173
                            product_obj.write(cr, uid, [product_brw.id],
 
174
                                              {'cost_ult':cost, 
 
175
                                               'date_cost_ult':date , 
 
176
                                               'qty_ult':aux.get(i) \
 
177
                                                         and aux.get(i)[1] ,
 
178
                                               'ult_om':aux.get(i)[-1] or [] ,
 
179
                                               'date_ult_om': date },
 
180
                                                context=context)
172
181
                       
173
182
                        if product_brw.property_cost_structure and product_brw.cost_ult > 0:
174
 
                            product_obj.write(cr,uid,[product_brw.id],{'cost_ult':cost,'date_cost_ult':date ,'qty_ult':aux.get(i) and aux.get(i)[1]  , 'cost_ant':product_brw.cost_ult ,'qty_ant':product_brw.qty_ult ,'date_cost_ant':product_brw.date_cost_ult ,'ult_om':aux.get(i)[-1] or [] ,'date_ult_om': date , 'ant_om':product_brw.ult_om and product_brw.ult_om.id or [],'date_ant_om':product_brw.date_ult_om },context=context)
 
183
                            product_obj.write(cr, uid, [product_brw.id], 
 
184
                                      {'cost_ult':cost,
 
185
                                       'date_cost_ult':date ,
 
186
                                       'qty_ult':aux.get(i) \
 
187
                                                 and aux.get(i)[1],
 
188
                                       'cost_ant':product_brw.cost_ult,
 
189
                                       'qty_ant':product_brw.qty_ult ,
 
190
                                       'date_cost_ant':product_brw.date_cost_ult ,
 
191
                                       'ult_om':aux.get(i)[-1] or [] ,
 
192
                                       'date_ult_om': date , 
 
193
                                       'ant_om':product_brw.ult_om \
 
194
                                               and product_brw.ult_om.id \
 
195
                                               or [],
 
196
                                       'date_ant_om':product_brw.date_ult_om },
 
197
                                      context=context)
175
198
                        else:
176
 
                            product_obj.write(cr,uid,[product_brw.id],{'cost_ult':cost,'date_cost_ult':date,'qty_ult':aux.get(i) and aux.get(i)[1]  ,'ult_om':aux.get(i)[-1] or [] ,'date_ult_om': date },context=context)
 
199
                            product_obj.write(cr, uid, [product_brw.id],
 
200
                                    {'cost_ult':cost,
 
201
                                     'date_cost_ult':date,
 
202
                                     'qty_ult':aux.get(i) \
 
203
                                               and aux.get(i)[1] ,
 
204
                                     'ult_om':aux.get(i)[-1] or [] ,
 
205
                                     'date_ult_om': date },context=context)
177
206
        return aux
178
207
        
179
208
    def update_dictionary(self,cr,uid,ids,dict,inv_ids,purchase,context=None):
185
214
            context = {}
186
215
        invo_obj = self.pool.get('account.invoice')
187
216
        if purchase:
188
 
            [dict[line.product_id.id].append((invo.id,line.price_unit,line.price_subtotal,
189
 
                                                      line.quantity, line.uos_id and \
190
 
                                                      line.uos_id.id,invo.date_invoice,line.id,line.aux_financial,line.aux_qty,invo.cancel_check)) \
191
 
                for invo in invo_obj.browse(cr,uid,inv_ids,context=context) for line in invo.invoice_line if line and \
 
217
            [dict[line.product_id.id].append((invo.id,line.price_unit,
 
218
                                              line.price_subtotal,
 
219
                                              line.quantity, line.uos_id and \
 
220
                                              line.uos_id.id, invo.date_invoice, 
 
221
                                              line.id, line.aux_financial, 
 
222
                                              line.aux_qty,invo.cancel_check)) \
 
223
                for invo in invo_obj.browse(cr,uid,inv_ids,context=context) \
 
224
                for line in invo.invoice_line if line and \
192
225
                line.product_id and \
193
226
                line.product_id.id in dict and \
194
227
                type(dict[line.product_id.id]) is list ]
196
229
        
197
230
        else:
198
231
            
199
 
            [dict[line.product_id.id].append((invo.id,line.price_unit,line.price_subtotal, line.quantity, line.uos_id and line.uos_id.id,invo.date_invoice)) \
200
 
                for invo in invo_obj.browse(cr,uid,inv_ids,context=context) for line in invo.invoice_line if line and \
 
232
            [dict[line.product_id.id].append((invo.id, line.price_unit, 
 
233
                                              line.price_subtotal, line.quantity, 
 
234
                                              line.uos_id and line.uos_id.id, 
 
235
                                              invo.date_invoice)) \
 
236
                for invo in invo_obj.browse(cr,uid,inv_ids,context=context) \
 
237
                     for line in invo.invoice_line if line and \
201
238
                line.product_id and \
202
239
                line.product_id.id in dict and \
203
240
                type(dict[line.product_id.id]) is list ]
249
286
                        date = aux2[5]
250
287
                        qty_aux = cost and qty
251
288
                        price_aux = cost and price
252
 
                        aux[i].append((cost,aux2[5]))
 
289
                        aux[i].append((cost,aux2[5],qty))
253
290
                        list.append((cost,aux2[5]))
254
 
                        aux2[6] and invoice_line_obj.write(cr,uid,aux2[6],{'aux_financial':cost*qty,'aux_qty':qty},context=context)
255
 
                        evalu = 'DateTime(a[5]) > DateTime(date) and  DateTime(a[5]) <= DateTime(aux2[5])'
 
291
                        aux2[6] and invoice_line_obj.write(cr, uid, aux2[6], 
 
292
                                                    {'aux_financial':cost*qty, 
 
293
                                                     'aux_qty':qty}, 
 
294
                                                    context=context)
 
295
                        evalu = 'DateTime(a[5]) > DateTime(date) and  \
 
296
                                 DateTime(a[5]) <= DateTime(aux2[5])'
256
297
                        d = d + 1
257
298
                        
258
299
                    else:
262
303
                        date = aux2[5]
263
304
                        qty_aux = cost and qty
264
305
                        price_aux = cost and price
265
 
                        aux[i].append((cost,aux2[5]))
 
306
                        aux[i].append((cost,aux2[5],qty))
266
307
                        list.append((cost,aux2[5]))
267
 
                        aux2[6] and invoice_line_obj.write(cr,uid,aux2[6],{'aux_financial':cost*qty,'aux_qty':qty},context=context)
268
 
                        evalu = 'DateTime(a[5]) > DateTime(date) and  DateTime(a[5]) <= DateTime(aux2[5])'
 
308
                        aux2[6] and invoice_line_obj.write(cr, uid, aux2[6],
 
309
                                                {'aux_financial':cost*qty, 
 
310
                                                 'aux_qty':qty},context=context)
 
311
                        
 
312
                        evalu = 'DateTime(a[5]) > DateTime(date) and  \
 
313
                                DateTime(a[5]) <= DateTime(aux2[5])'
 
314
                        
269
315
                        d = d + 1
270
316
        
271
317
        return aux
283
329
            invoice_obj = self.pool.get('account.invoice')
284
330
            invoice_line_obj = self.pool.get('account.invoice.line')
285
331
            invo_brw = invoice_obj.browse(cr,uid,d[0],context={})
286
 
            if invo_brw.type == 'out_refund' and invo_brw.parent_id and invo_brw.parent_id.id in invo_cost:
287
 
                lista.append((d[3], d[3] * invo_cost.get(invo_brw.parent_id.id), invo_cost.get(invo_brw.parent_id.id) or 0, d[4],d[0],d[5] ))
288
 
                invoice_line_obj.write(cr,uid,d[6],{'aux_financial':invo_cost.get(invo_brw.parent_id.id)},context=context)
 
332
            if invo_brw.type == 'out_refund' and \
 
333
               invo_brw.parent_id and invo_brw.parent_id.id in invo_cost:
 
334
                lista.append((d[3], d[3] * invo_cost.get(invo_brw.parent_id.id),
 
335
                   invo_cost.get(invo_brw.parent_id.id) or 0, d[4],d[0],d[5] ))
 
336
                invoice_line_obj.write(cr, uid, d[6], 
 
337
                        {'aux_financial':invo_cost.get(invo_brw.parent_id.id)},
 
338
                        context=context)
289
339
                return lista
290
340
 
291
 
            if invo_brw.type == 'out_refund' and invo_brw.parent_id and invo_brw.parent_id.id not in invo_cost:
 
341
            if invo_brw.type == 'out_refund' \
 
342
                    and invo_brw.parent_id and invo_brw.parent_id.id \
 
343
                    not in invo_cost:
292
344
                inv_ids = invoice_obj.search(cr,uid,[('invoice_line.product_id','=', product_id),
293
345
                                                    ('type','=','in_invoice'),
294
346
                                                    ('company_id','=',company_id),
295
347
                                                    ('date_invoice','<',invo_brw.parent_id.date_invoice)],
296
348
                                                    order='date_invoice')
297
349
                        
298
 
                inv_ids and [lista.append((d[3],(d[3] * (line.aux_financial/line.aux_qty) ) , (line.aux_financial/line.aux_qty), d[4] ,d[0],d[5])) \
299
 
                 for invo in invoice_obj.browse(cr,uid,[inv_ids[-1]],context=context) for line in invo.invoice_line if line and \
300
 
                line.product_id and \
301
 
                line.product_id.id == product_id ]
 
350
                inv_ids and [lista.append((d[3], 
 
351
                                 line.aux_qty and (d[3] * (line.aux_financial/line.aux_qty) ) ,
 
352
                                 line.aux_qty and (line.aux_financial/line.aux_qty), 
 
353
                                 d[4] ,d[0],d[5])) \
 
354
                 for invo in invoice_obj.browse(cr, uid, [inv_ids[-1]], 
 
355
                     context=context) \
 
356
                     for line in invo.invoice_line if line and \
 
357
                         line.product_id and \
 
358
                         line.product_id.id == product_id ]
302
359
                #~ lista and invoice_line_obj.write(cr,uid,d[6],{'aux_financial':lista and lista[2]},context=context)
303
360
                return lista
304
361
            
360
417
            dic_nc_com = {}
361
418
            dic_nc_vent = {}
362
419
            aux_cancel = False
363
 
            [(dic_comp.update({i.id:[]}),dic_vent.update({i.id:[]})   , dic_nc_com.update({i.id:[]})    ,aux_dic_vent.update({i.id:[]})    ,aux_dic_nc_vent.update({i.id:[]})    , dic_nc_vent.update({i.id:[]})) for i in products]
 
420
            [(dic_comp.update({i.id:[]}), dic_vent.update({i.id:[]}),
 
421
              dic_nc_com.update({i.id:[]}), aux_dic_vent.update({i.id:[]}), 
 
422
              aux_dic_nc_vent.update({i.id:[]}), dic_nc_vent.update({i.id:[]})) for i in products]
 
423
            
364
424
            product_brw = product_obj.browse(cr,uid,dic_comp.keys(),context=context)
365
425
            date_aux = [i.date_cost_ult for i in product_brw if i.cost_ult > 0]
366
426
            date_aux.sort(reverse=True)
367
 
            products_date = date_aux and date and DateTime(date) < DateTime(date_aux[-1]) and [date] or date_aux and DateTime(date_aux[-1]) < DateTime(date) and [date_aux[-1]] or [date]
 
427
            products_date = date_aux and date \
 
428
                            and DateTime(date) < DateTime(date_aux[-1]) \
 
429
                            and [date] or date_aux \
 
430
                            and DateTime(date_aux[-1]) < DateTime(date) \
 
431
                            and [date_aux[-1]] or [date]
368
432
            products_date.sort(reverse=True)
369
433
            #~  Select quantity and cost of product from supplier invoice
370
434
            if not context.get('invoice_cancel'):
371
 
                [dic_comp[i.id].append((False,i.cost_ult,(i.cost_ult * i.qty_ult ), i.qty_ult, i.ult_om and i.ult_om.id,i.date_cost_ult,False,0,0 )) \
372
 
                    for i in product_brw if i.cost_ult > 0 and DateTime(products_date[-1]) >= DateTime(i.date_cost_ult) ]
 
435
                [dic_comp[i.id].append((False, i.cost_ult,
 
436
                                       (i.cost_ult * i.qty_ult ),
 
437
                                       i.qty_ult, i.ult_om and \
 
438
                                       i.ult_om.id,i.date_cost_ult,False,0,0 )) \
 
439
                    for i in product_brw if i.cost_ult > 0 \
 
440
                    and DateTime(products_date[-1]) >= DateTime(i.date_cost_ult) ]
373
441
            
374
442
            
375
443
            #~ -------------------------- Search invoices with products selected --------------------------------
376
 
            invo_com_ids = self.search_invoice(cr,uid,ids,dic_comp,'in_invoice',period_id,company_id,products_date and products_date[0] or False,context=context)
377
 
       
378
 
            
379
 
            invo_ven_ids = self.search_invoice(cr,uid,ids,dic_vent,'out_invoice',period_id,company_id,products_date and products_date[0] or False,context=context)
380
 
       
381
 
            
382
 
            invo_nc_com_ids = self.search_invoice(cr,uid,ids,dic_nc_com,'in_refund',period_id,company_id,products_date and products_date[0] or False,context=context)
383
 
       
384
 
            
385
 
            invo_nc_ven_ids = self.search_invoice(cr,uid,ids,dic_nc_vent,'out_refund',period_id,company_id,products_date and products_date[0] or False,context=context)
 
444
            invo_com_ids = self.search_invoice(cr, uid, ids, dic_comp,
 
445
                                               'in_invoice', period_id, 
 
446
                                               company_id, products_date \
 
447
                                               and products_date[0] \
 
448
                                               or False,context=context)
 
449
       
 
450
            
 
451
            invo_ven_ids = self.search_invoice(cr, uid, ids, dic_vent, 
 
452
                                               'out_invoice', period_id, 
 
453
                                               company_id, products_date \
 
454
                                               and products_date[0] \
 
455
                                               or False,context=context)
 
456
       
 
457
            
 
458
            invo_nc_com_ids = self.search_invoice(cr, uid, ids, dic_nc_com, 
 
459
                                                  'in_refund', period_id, 
 
460
                                                  company_id, products_date \
 
461
                                                  and products_date[0] \
 
462
                                                  or False,context=context)
 
463
       
 
464
            
 
465
            invo_nc_ven_ids = self.search_invoice(cr, uid, ids, dic_nc_vent, 
 
466
                                                  'out_refund', period_id, 
 
467
                                                  company_id, products_date \
 
468
                                                  and products_date[0] \
 
469
                                                  or False,context=context)
386
470
           
387
471
            #~ -------------  Generate a dict with line values of invoices by product -------------------------
388
472
                
389
 
            dic_comp =  invo_com_ids and self.update_dictionary(cr,uid,ids,dic_comp,invo_com_ids,True,context=context) or dic_comp
390
 
                
391
 
            dic_vent = invo_ven_ids and self.update_dictionary(cr,uid,ids,dic_vent,invo_ven_ids,False,context=context) or dic_vent
392
 
            aux_dic_vent = invo_ven_ids and self.update_dictionary(cr,uid,ids,aux_dic_vent,invo_ven_ids,False,context=context) or aux_dic_vent
393
 
                
394
 
                
395
 
            dic_nc_com = invo_nc_com_ids and self.update_dictionary(cr,uid,ids,dic_nc_com,invo_nc_com_ids,False,context=context) or dic_nc_com
 
473
            dic_comp =  invo_com_ids and \
 
474
                        self.update_dictionary(cr, uid, ids, dic_comp, 
 
475
                                               invo_com_ids, True, 
 
476
                                               context=context) or dic_comp
 
477
                
 
478
            dic_vent = invo_ven_ids and \
 
479
                       self.update_dictionary(cr, uid, ids, dic_vent, 
 
480
                               invo_ven_ids,False,context=context) or dic_vent
 
481
            
 
482
            aux_dic_vent = invo_ven_ids and \
 
483
                           self.update_dictionary(cr, uid, ids, aux_dic_vent, 
 
484
                            invo_ven_ids,False,context=context) or aux_dic_vent
 
485
                
 
486
            dic_nc_com = invo_nc_com_ids and \
 
487
                         self.update_dictionary(cr, uid, ids, dic_nc_com, 
 
488
                           invo_nc_com_ids,False,context=context) or dic_nc_com
396
489
            
397
490
        
398
 
            dic_nc_vent = invo_nc_ven_ids and self.update_dictionary(cr,uid,ids,dic_nc_vent,invo_nc_ven_ids,True,context=context) or dic_nc_vent
399
 
            aux_dic_nc_vent = invo_nc_ven_ids and self.update_dictionary(cr,uid,ids,aux_dic_nc_vent,invo_nc_ven_ids,True,context=context) or aux_dic_nc_vent
 
491
            dic_nc_vent = invo_nc_ven_ids and \
 
492
                          self.update_dictionary(cr, uid, ids, dic_nc_vent, 
 
493
                           invo_nc_ven_ids,True,context=context) or dic_nc_vent
 
494
            
 
495
            aux_dic_nc_vent = invo_nc_ven_ids and \
 
496
                              self.update_dictionary(cr, uid, ids, 
 
497
                                      aux_dic_nc_vent,invo_nc_ven_ids,
 
498
                                       True,context=context) or aux_dic_nc_vent
400
499
                
401
 
            for i in dic_comp:
402
 
                if dic_comp.get(i,False) and len(dic_comp[i]) > 0:
 
500
            for i in dic_comp:#Ciclo por cada uno de los productos
 
501
                if dic_comp.get(i,False): #Validar valores en la compras
403
502
                    ids_inv = {} 
404
503
                    if context.get('invoice_cancel'):
405
 
                        dic_comp[i] and dic_comp[i][0] and (dic_comp[i][0][7] - dic_comp[i][0][2]) >= 0 and dic_comp[i].insert(0,(False,
406
 
                                    ( (dic_comp[i][0][7] - dic_comp[i][0][2] )/ ( (dic_comp[i][0][8] - dic_comp[i][0][3]) > 0 and (dic_comp[i][0][8] - dic_comp[i][0][3]) or 1)   )   ,
407
 
                                     (dic_comp[i][0][7] - dic_comp[i][0][2]),
408
 
                                     (dic_comp[i][0][8] - dic_comp[i][0][3]) , 
409
 
                                      dic_comp[i][0][4] , dic_comp[i][0][5],False, 0, 0  ))
410
 
                        
411
 
                        len(dic_comp[i]) > 1 and  invo_line_obj.write(cr,uid,[dic_comp[i][1][6]],{'aux_financial':(dic_comp[i][1][7] - dic_comp[i][1][2]),'aux_qty':(dic_comp[i][1][8] - dic_comp[i][1][3])},context=context)
412
 
                        invo_obj.write(cr,uid,[dic_comp[i][1][0]],{'cancel_check':True},context=context)
413
 
                        dic_comp[i] and dic_comp[i][0] and dic_comp[i].pop(1)
 
504
                        dic_comp[i] and dic_comp[i][0] \
 
505
                                and (dic_comp[i][0][7] - dic_comp[i][0][2]) >= 0 and \
 
506
                                dic_comp[i].insert(0,(False,
 
507
                                ( (dic_comp[i][0][7] - dic_comp[i][0][2] ) / \
 
508
                                ( (dic_comp[i][0][8] - dic_comp[i][0][3]) > 0 \
 
509
                                and (dic_comp[i][0][8] - dic_comp[i][0][3]) or 1)   )   ,
 
510
                                 (dic_comp[i][0][7] - dic_comp[i][0][2]),
 
511
                                 (dic_comp[i][0][8] - dic_comp[i][0][3]) , 
 
512
                                  dic_comp[i][0][4] , dic_comp[i][0][5],False, 0, 0  ))
 
513
                        
 
514
                        len(dic_comp[i]) > 1 and  \
 
515
                                invo_line_obj.write(cr, uid, [dic_comp[i][1][6]],
 
516
                               {'aux_financial':(dic_comp[i][1][7] - dic_comp[i][1][2]),
 
517
                                'aux_qty':(dic_comp[i][1][8] - dic_comp[i][1][3])},
 
518
                                 context=context)
 
519
                        
 
520
                        print "dic_comp[i]",dic_comp[i]
 
521
                        len(dic_comp[i]) > 1 and invo_obj.write(cr, uid, [dic_comp[i][1][0]],
 
522
                                        {'cancel_check':True},context=context) or invo_obj.write(cr, uid, [dic_comp[i][0][0]],
 
523
                                        {'cancel_check':True},context=context)
 
524
                        len(dic_comp[i]) > 1 and dic_comp[i].pop(1) # Grabo en la factura que ya fue cancelada
414
525
 
415
526
                    
416
527
                    
417
528
                    dic_comp[i][0][0] is not False and dic_comp[i][0][9] and dic_comp[i][0][7] > 0 and \
418
529
                    dic_comp[i].insert(0,(False,(dic_comp[i][0][7]/dic_comp[i][0][8]),dic_comp[i][0][7],dic_comp[i][0][8],dic_comp[i][0][4],
419
 
                                          dic_comp[i][0][5],0.0,0.0  ))
 
530
                                          dic_comp[i][0][5],0.0,0.0  )) #Inserto en la lista de la compra el calculo del costo anterior porque la factura fue cancelada
420
531
                    
421
532
                    if dic_comp[i][0][0] is not False and not dic_comp[i][0][9] and dic_comp[i][0][7] <= 0:
422
533
                        inv_ids = invo_obj.search(cr,uid,[('invoice_line.product_id','=', i),
424
535
                                                    ('company_id','=',company_id),
425
536
                                                    ('date_invoice','<',dic_comp[i][0][5])],
426
537
                                                    order='date_invoice')
427
 
                        inv_ids and [dic_comp[i].insert(0,(invo.id,(line.aux_financial/line.aux_qty),line.aux_financial,
 
538
                        inv_ids and [dic_comp[i].insert(0,(invo.id,line.aux_qty and (line.aux_financial/line.aux_qty),line.aux_financial,
428
539
                                                      line.aux_qty, line.uos_id and \
429
540
                                                      line.uos_id.id,invo.date_invoice,line.id,line.aux_financial,line.aux_qty,invo.cancel_check)) \
430
541
                
444
555
                        
445
556
            invo_cost = {}
446
557
            if fifo_true or lifo_true:
447
 
                fifo = self.compute_cost_fifo(cr,uid,dic_comp,dic_vent,dic_nc_com,dic_nc_vent)
 
558
                fifo = self.compute_cost_fifo(cr, uid, dic_comp, dic_vent, 
 
559
                                              dic_nc_com,dic_nc_vent)
448
560
            
449
 
            cost_acc = self.compute_actual_cost_purchase(cr,uid,ids,dic_comp,dic_vent,dic_nc_com,dic_nc_vent)
 
561
            cost_acc = self.compute_actual_cost_purchase(cr, uid, ids, 
 
562
                                                         dic_comp, dic_vent, 
 
563
                                                         dic_nc_com, dic_nc_vent)
450
564
            
451
565
            for i in dic_comp:
452
566
                ids_inv = {}
459
573
                    lista = self.list_cost(cr,uid,aux_dic_nc_vent.get(i),ids_inv,i,company_id)
460
574
                    aux_dic_nc_vent.update({i:lista}) 
461
575
            
462
 
            print "cost_acc",cost_acc 
463
 
            cost = self.compute_actual_cost(cr,uid,ids,dic_comp,aux_dic_vent,dic_nc_com,aux_dic_nc_vent)
464
 
            print "cost",cost
 
576
            cost = self.compute_actual_cost(cr, uid, ids, dic_comp, 
 
577
                                            aux_dic_vent, dic_nc_com, 
 
578
                                            aux_dic_nc_vent)
465
579
        return (cost,cost_acc)
466
580
 
467
581
compute_cost()