def _calculate(self, cr, uid, ids, field_names, arg, context=None):
     
     res = super(hr_payslip, self)._calculate(cr, uid, ids,field_names,context)
     for case in self.browse(cr,uid,ids):
         res[case.id]['total_pay'] = res[case.id]['other_pay'] + res[case.id]['net'] 
         if res[case.id]['total_pay'] >= 0 :
             res[case.id]['amt_words'] = ' Rupees ' + amount_to_text_softapps._100000000_to_text(int(round(res[case.id]['total_pay']))) + ' Only' 
     return res
 def _amt_in_words(self, cr, uid, ids, fields_name, args, context):
     res={}
     untax_amt = tax = total = 0        
     txt=' Rupees ' 
     
     for case in self.browse(cr, uid, ids):  
        for line in case.invoice_line:
             untax_amt += line.price_subtotal
             for ln in line.invoice_line_tax_id:
                 tax += (line.price_subtotal * ln.amount)
        total = untax_amt + tax 
        txt += amount_to_text_softapps._100000000_to_text(int(round(total)))
        txt += ' Only' 
        res[case.id]=txt     
     return res
    def print_Handling(self, cr, uid, ids, context =None ):
        inv_vals = {}
        inv_line_vals = {}
        if not context:
            context={}
        rep_obj = self.pool.get('ir.actions.report.xml')
        picking_obj = self.pool.get('stock.picking.out')
        mv_obj = self.pool.get('stock.move')
        inv_obj = self.pool.get('account.invoice')
        journal_obj = self.pool.get('account.journal')
        inv_ln_obj = self.pool.get('account.invoice.line')
        qty = 0
        unit_price = freight_amt =0
        line_price=0
        list={}
        inv_ids=context.get('active_ids',[])
        qty_txt=''
        res={}
        res1={}
        data = {}
        data2 ={}
        cur_qtxt=''
        cur_txt=''
        amt=''
        amt_txt=''
        attachment_obj = self.pool.get('ir.attachment') 
        cust=[]
        freight_amt_txt = ''
        for case in self.browse(cr, uid, ids):
             
            for inv in inv_obj.browse(cr,uid,inv_ids):
                unit_price=case.product_rate+case.freight_rate
#                 if inv.product_rate and case.freight_rate:
#                     unit_price=inv.product_rate+case.freight_rate
#                 if inv.freight_rate and case.product_rate:
#                     unit_price=inv.freight_rate+case. product_rate 

                cr.execute("select id from res_partner where lower(name) like 'i.t.c%'")
                cust=[x[0] for x in cr.fetchall()]  
                for line in inv.invoice_line:
                    line_price=line.price_unit
                    if not unit_price>line_price:
        #                 inv_obj.write(cr,uid,[inv.id],{'product_rate':case.product_rate,'freight_rate' :case.freight_rate})
                        cr.execute("update account_invoice set product_rate=%s where id=%s",(case.product_rate,inv.id,))
                        cr.execute("update account_invoice set freight_rate=%s where id=%s",(case.freight_rate,inv.id,))                    
                    else:
                        raise osv.except_osv(_('Warning'),_('Enter the Valid Amount'))    
                    if case.product_order:
                        cr.execute("update account_invoice set product_order=%s where id=%s",(case.product_order,inv.id,))
                    if case.handling_order:
                        cr.execute("update account_invoice set handling_order=%s where id=%s",(case.handling_order,inv.id,))                     
                                   
                    if inv.partner_id.id in cust:             
                        if unit_price>0:
                            qty=+(line.quantity)
                                
                        if qty>0:
                            qty_txt = amount_to_text_softapps._100000000_to_text(int(round(qty)))    
                            freight_amt=qty*case.freight_rate 
                            amt = qty*case.product_rate
                        if amt>0:       
                            freight_amt_txt = amount_to_text_softapps._100000000_to_text(int(round(freight_amt)))    
                            amt_txt = amount_to_text_softapps._100000000_to_text(int(round(amt)))                                     
                    
                        if not unit_price>line_price:
            #                 inv_obj.write(cr,uid,[inv.id],{'product_rate':case.product_rate,'freight_rate' :case.freight_rate})
                            cr.execute("update account_invoice set product_rate=%s where id=%s",(case.product_rate,inv.id,))
                            cr.execute("update account_invoice set freight_rate=%s where id=%s",(case.freight_rate,inv.id,))
                            cr.execute("update account_invoice set amt_txt=%s where id=%s",(amt_txt,inv.id,))
                            cr.execute("update account_invoice set amt_txt_freight=%s where id=%s",(freight_amt_txt,inv.id,))
                            
                            print "product_rate",inv.product_rate
                            print "freight_rate",inv.freight_rate
                            context.update({'product_rate':case.product_rate,'freight_rate' :case.freight_rate})
                            
                            res = rep_obj.pentaho_report_action(cr, uid, 'Handling Invoice For ITC', inv_ids,None,None)

                    else:
                        res = rep_obj.pentaho_report_action(cr, uid, 'Transport Invoice', inv_ids,None,None)
        
        return res
    def print_Transport(self, cr, uid, ids, context =None ):
        inv_vals = {}
        inv_line_vals = {}
        if not context:
            context={}
        rep_obj = self.pool.get('ir.actions.report.xml')
        picking_obj = self.pool.get('stock.picking.out')
        mv_obj = self.pool.get('stock.move')
        inv_obj = self.pool.get('account.invoice')
        journal_obj = self.pool.get('account.journal')
        inv_ln_obj = self.pool.get('account.invoice.line')
        qty = 0
        unit_price=0
        line_price=0
        list={}
        inv_ids=context.get('active_ids',[])
        qty_txt=''
        res={}
        res1={}
        data = {}
        data2 ={}
        cur_qtxt=''
        cur_txt=''
        amt=''
        amt_txt=''
        attachment_obj = self.pool.get('ir.attachment') 
       
        for case in self.browse(cr, uid, ids):

            for inv in inv_obj.browse(cr,uid,inv_ids):
                cur_qtxt=case.qty_txt
                cur_txt=case.amt_txt
                unit_price=case.product_rate+case.freight_rate
                if inv.product_rate and case.freight_rate:
                    unit_price=inv.product_rate+case.freight_rate
                if inv.freight_rate and case.product_rate:
                    unit_price=inv.freight_rate+case. product_rate                
                if unit_price>0:
                    for line in inv.invoice_line:
                        line_price=line.price_unit
                        qty=+(line.quantity)
                        
                if qty>0:
                    qty_txt = amount_to_text_softapps._100000000_to_text(int(round(qty)))    
                    amt=qty*case.product_rate 
                if amt>0:       
                    amt_txt = amount_to_text_softapps._100000000_to_text(int(round(amt)))          
                               
                if not unit_price>line_price:
    #                 inv_obj.write(cr,uid,[inv.id],{'product_rate':case.product_rate,'freight_rate' :case.freight_rate})
                    cr.execute("update account_invoice set product_rate=%s where id=%s",(case.product_rate,inv.id,))
                    cr.execute("update account_invoice set freight_rate=%s where id=%s",(case.freight_rate,inv.id,))
#                     cr.execute("update account_invoice set qty_txt=%s where id=%s",(qty_txt,inv.id,))
                    cr.execute("update account_invoice set amt_txt=%s where id=%s",(amt_txt,inv.id,))
                    print "product_rate",inv.product_rate
                    print "freight_rate",inv.freight_rate
                    context.update({'product_rate':case.product_rate,'freight_rate' :case.freight_rate})
                    
                    res = rep_obj.pentaho_report_action(cr, uid, 'Transport Invoice For ITC', inv_ids,None,None)
                else:
                    raise osv.except_osv(_('Warning'),_('Enter the Valid Amount'))
        

#             cr.execute("update account_invoice set qty_txt=%s where id=%s",(cur_qtxt,inv.id,))
#             cr.execute("update account_invoice set amt_txt=%s where id=%s",(cur_txt,inv.id,))
        return res