clean file

bzr revid: nel@silver-20081029122525-s4uai6v1n2nyl0nx
This commit is contained in:
Najlaa 2008-10-29 13:25:25 +01:00
parent be1af7edda
commit 56c9b100c0
1 changed files with 0 additions and 118 deletions

View File

@ -35,125 +35,7 @@ class account_invoice_intrastat(report_sxw.rml_parse):
self.total=0
self.localcontext.update({
'time': time,
'get_tax_code':self._get_tax_code,
'get_tax_note':self._get_tax_note,
'get_origin':self._get_origin,
'get_line_by_origin':self._get_line_by_origin,
#'gross_weight' : self._gross_weight,
'total_weight' : self._total_weight,
'get_incoterm':self._get_incoterm,
'get_ref':self._get_ref,
'get_product_code': self._get_product_code,
'get_product_name': self._get_product_name,
})
def _get_origin(self,invoice_id):
self.cr.execute("select distinct origin from account_invoice_line where invoice_id=%d" % (invoice_id))
res = self.cr.fetchall() or []
res=map(lambda x:x[0],res)
if not len(res):
res.append('-1')
return res
def _get_line_by_origin(self,origin,invoice_id,lang='en_US'):
line_obj=self.pool.get('account.invoice.line')
if not origin and origin!='-1':
invoice_line_ids=line_obj.search(self.cr,self.uid,[('invoice_id','=',invoice_id),('origin','=',False)])
else:
invoice_line_ids = line_obj.search(self.cr,self.uid,[('invoice_id','=',invoice_id),('origin','=',origin)])
res= line_obj.browse(self.cr,self.uid,invoice_line_ids,context={'lang':lang})
return res
def _get_ref(self,invoice):
if invoice.type in ('out_invoice','out_refund'):
if invoice.reference_type in ('customer_ref'):
return invoice.reference
sale_obj=pooler.get_pool(self.cr.dbname).get('sale.order')
sale_ids=sale_obj.search(self.cr,self.uid,[('invoice_ids','=',[invoice.id])])
sales=sale_obj.browse(self.cr,self.uid,sale_ids)
if len(sales):
return sales[0].client_order_ref
elif invoice.type in ('in_invoice','in_refund'):
purchase_obj=pooler.get_pool(self.cr.dbname).get('purchase.order')
purchase_ids=purchase_obj.search(self.cr,self.uid,[('invoice_id','=',invoice.id)])
purchases=purchase_obj.browse(self.cr,self.uid,purchase_ids)
if len(purchases):
return purchases[0].ref
return False
def _get_tax_code(self, tax_name):
tax_obj=pooler.get_pool(self.cr.dbname).get('account.tax')
ids = tax_obj.search(self.cr, self.uid, [('name','ilike',tax_name)])
if len(ids) > 0:
tax = tax_obj.browse(self.cr,self.uid,ids)[0]
tax_name=tax.label
return tax_name
def _get_tax_note(self, tax_name,lang):
tax_obj=pooler.get_pool(self.cr.dbname).get('account.tax')
ids = tax_obj.search(self.cr, self.uid, [('name','ilike',tax_name)])
if len(ids) > 0:
tax = tax_obj.browse(self.cr,self.uid,ids,context={'lang':lang})[0]
tax_note=tax.note
return tax_note
def _total_weight(self, o):
res = []
self.cr.execute("""
select
intrastat_code.name,
sum(
case when uom.category_id != puom.category_id then pt.weight_net * inv_line.quantity
else
case when uom.factor_inv_data > 0
then
pt.weight_net * inv_line.quantity * uom.factor_inv_data
else
pt.weight_net * inv_line.quantity / uom.factor
end
end
) as weight
from
report_intrastat_code intrastat_code
left join (product_template pt
left join (product_product pp
left join (account_invoice_line inv_line
left join account_invoice inv on (inv.id=inv_line.invoice_id))
on (inv_line.product_id=pp.id))
on (pt.id=pp.product_tmpl_id))
on (pt.intrastat_id=intrastat_code.id)
left join product_uom uom on uom.id=inv_line.uos_id
left join product_uom puom on puom.id = pt.uom_id
where
inv.id=%d
group by
intrastat_code.name
order by
intrastat_code.name
"""%(o.id))
#self.cr.execute('select r.name, sum(t.weight_net * l.quantity) from report_intrastat_code r, product_template t, product_product p, account_invoice_line l, account_invoice a where r.id = t.intrastat_id and t.id = p.product_tmpl_id and p.id = l.product_id and l.invoice_id = a.id and a.id =%d group by(r.name)' %(o.id))
res = self.cr.fetchall() or []
return res
def _get_incoterm(self, code):
print code
incoterm_obj=pooler.get_pool(self.cr.dbname).get('stock.incoterms')
incoterm_ids = incoterm_obj.search(self.cr,self.uid,[('code','=',code)])
incoterm=incoterm_obj.browse(self.cr,self.uid,incoterm_ids)[0]
return incoterm.code
def _get_product_code(self, product_id, partner_id):
product_obj=pooler.get_pool(self.cr.dbname).get('product.product')
product = product_obj.browse(self.cr,self.uid, [product_id])[0]
for supinfo in product.seller_ids:
if supinfo.name.id == partner_id:
return ( supinfo.product_code and ("[" + supinfo.product_code + "] ") or '') + supinfo.product_name
return False
def _get_product_name(self, product_id):
product_obj=pooler.get_pool(self.cr.dbname).get('product.product')
prod_names = product_obj.name_get(self.cr,self.uid,[product_id])
return prod_names[0][1]
report_sxw.report_sxw('report.account.invoice.intrastat', 'account.invoice', 'addons/report_intrastat/report/invoice.rml', parser=account_invoice_intrastat)