matching payment
							parent
							
								
									7afa9d7840
								
							
						
					
					
						commit
						2e99a673eb
					
				| 
						 | 
					@ -5,7 +5,6 @@
 | 
				
			||||||
            <item string="Account Patient" action="clinic_setting_account_patient"/>
 | 
					            <item string="Account Patient" action="clinic_setting_account_patient"/>
 | 
				
			||||||
            <item string="HD Case Expense" action="clinic_report_account_hd_case_summary"/>
 | 
					            <item string="HD Case Expense" action="clinic_report_account_hd_case_summary"/>
 | 
				
			||||||
            <item string="RD Shop Expense" action="clinic_report_account_shop"/>
 | 
					            <item string="RD Shop Expense" action="clinic_report_account_shop"/>
 | 
				
			||||||
            <item string="HD Cases Matching" action="clinic_matching_hdcase_acc"/>
 | 
					 | 
				
			||||||
            <item string="Payment Matching" action="clinic_matching_payment"/>
 | 
					            <item string="Payment Matching" action="clinic_matching_payment"/>
 | 
				
			||||||
            <item string="Payment Invoices" action="clinic_invoice_payment"/>
 | 
					            <item string="Payment Invoices" action="clinic_invoice_payment"/>
 | 
				
			||||||
            <divider/>
 | 
					            <divider/>
 | 
				
			||||||
| 
						 | 
					@ -20,6 +19,7 @@
 | 
				
			||||||
        </item>
 | 
					        </item>
 | 
				
			||||||
        <item string="Matching">
 | 
					        <item string="Matching">
 | 
				
			||||||
            <item string="Payment Matching" action="clinic_payment_matching"/>
 | 
					            <item string="Payment Matching" action="clinic_payment_matching"/>
 | 
				
			||||||
 | 
					            <item string="HD Cases Matching" action="clinic_matching_hdcase_acc"/>
 | 
				
			||||||
        </item>
 | 
					        </item>
 | 
				
			||||||
    </item>
 | 
					    </item>
 | 
				
			||||||
    <item string="Financial Settings" position="after">
 | 
					    <item string="Financial Settings" position="after">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,6 +40,7 @@
 | 
				
			||||||
            <list>
 | 
					            <list>
 | 
				
			||||||
                <field name="hdcase_date"/>
 | 
					                <field name="hdcase_date"/>
 | 
				
			||||||
                <field name="use_time"/>
 | 
					                <field name="use_time"/>
 | 
				
			||||||
 | 
					                <field name="nurse_id"/>
 | 
				
			||||||
            </list>
 | 
					            </list>
 | 
				
			||||||
            <form>
 | 
					            <form>
 | 
				
			||||||
                <field name="hd_case_id"/>
 | 
					                <field name="hd_case_id"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ class Dialyzer(Model):
 | 
				
			||||||
        "visit_id": fields.Many2One("clinic.visit","Visit",search=True),
 | 
					        "visit_id": fields.Many2One("clinic.visit","Visit",search=True),
 | 
				
			||||||
        "hd_case_id": fields.Many2One("clinic.hd.case","HD Case",search=True),
 | 
					        "hd_case_id": fields.Many2One("clinic.hd.case","HD Case",search=True),
 | 
				
			||||||
        "hd_cases": fields.One2Many("clinic.hd.case","dlz_id","HD Case"), #TODO funtion to get hd case
 | 
					        "hd_cases": fields.One2Many("clinic.hd.case","dlz_id","HD Case"), #TODO funtion to get hd case
 | 
				
			||||||
        "hd_cases_dlz": fields.One2Many("clinic.hd.case.dialyzer","dialyzer_id","Dialyzer History"),
 | 
					        "hd_cases_dlz": fields.One2Many("clinic.hd.case.dialyzer","dialyzer_id","Dialyzer History",domain=[['hd_case_id.state','in','waiting_payment','paid']]),
 | 
				
			||||||
        'department_id': fields.Many2One("clinic.department","Department",search=True),
 | 
					        'department_id': fields.Many2One("clinic.department","Department",search=True),
 | 
				
			||||||
        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Membrane Type"),
 | 
					        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Membrane Type"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -895,8 +895,13 @@ class HDCase(Model):
 | 
				
			||||||
        # TODO pop to note
 | 
					        # TODO pop to note
 | 
				
			||||||
        obj.write({"state":"cancelled"})
 | 
					        obj.write({"state":"cancelled"})
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    #FIXME should use history to get the last time time and it should drop automatical
 | 
				
			||||||
    def update_usetime(self,ids,context={}):
 | 
					    def update_usetime(self,ids,context={}):
 | 
				
			||||||
 | 
					        datenow=time.strftime("%Y-%m-%d")
 | 
				
			||||||
        for obj in self.browse(ids):
 | 
					        for obj in self.browse(ids):
 | 
				
			||||||
 | 
					            # in case to draft
 | 
				
			||||||
 | 
					            if obj.date < datenow:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
            is_decrease=context.get('is_decrease')
 | 
					            is_decrease=context.get('is_decrease')
 | 
				
			||||||
            for dlz_line in obj.dialyzers:
 | 
					            for dlz_line in obj.dialyzers:
 | 
				
			||||||
                dlz=dlz_line.dialyzer_id
 | 
					                dlz=dlz_line.dialyzer_id
 | 
				
			||||||
| 
						 | 
					@ -1050,6 +1055,7 @@ class HDCase(Model):
 | 
				
			||||||
    def undo(self,ids,context={}):
 | 
					    def undo(self,ids,context={}):
 | 
				
			||||||
        obj=self.browse(ids)[0]
 | 
					        obj=self.browse(ids)[0]
 | 
				
			||||||
        context['is_decrease']=True
 | 
					        context['is_decrease']=True
 | 
				
			||||||
 | 
					        # in case to draft
 | 
				
			||||||
        obj.update_usetime(context=context)
 | 
					        obj.update_usetime(context=context)
 | 
				
			||||||
        for line in obj.lines:
 | 
					        for line in obj.lines:
 | 
				
			||||||
            line.write({
 | 
					            line.write({
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,9 +6,11 @@ class HDCaseDialyzerLine(Model):
 | 
				
			||||||
    def _get_all(self,ids,context={}):
 | 
					    def _get_all(self,ids,context={}):
 | 
				
			||||||
        res={}
 | 
					        res={}
 | 
				
			||||||
        for obj in self.browse(ids):
 | 
					        for obj in self.browse(ids):
 | 
				
			||||||
            hdcase_date=obj.hd_case_id.date
 | 
					            hdcase=obj.hd_case_id
 | 
				
			||||||
            res[obj.id]={
 | 
					            res[obj.id]={
 | 
				
			||||||
                'hdcase_date': hdcase_date,
 | 
					                'hdcase_date': hdcase.date,
 | 
				
			||||||
 | 
					                'hdcase_state': hdcase.state,
 | 
				
			||||||
 | 
					                'nurse_id': hdcase.nurse_id.id,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        return res
 | 
					        return res
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +23,8 @@ class HDCaseDialyzerLine(Model):
 | 
				
			||||||
        "max_use_time":fields.Integer("Max use time"),
 | 
					        "max_use_time":fields.Integer("Max use time"),
 | 
				
			||||||
        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Membrane Type"),
 | 
					        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Membrane Type"),
 | 
				
			||||||
        'hdcase_date': fields.Date('Date', function="_get_all",function_multi=True),
 | 
					        'hdcase_date': fields.Date('Date', function="_get_all",function_multi=True),
 | 
				
			||||||
 | 
					        "hdcase_state": fields.Selection([("draft","Draft"),('waiting_treatment','Waiting Treatment'),("in_progress","In Progress"),("completed","Finish Treatment"),('paid','Paid'),("waiting_payment","Waiting Payment"),("discountinued","Discountinued"),("cancelled","Cancelled")],"Status",required=True,function="_get_all",function_multi=True),
 | 
				
			||||||
 | 
					        'nurse_id': fields.Many2One('clinic.staff', 'Nurse',function="_get_all",function_multi=True),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _order="hd_case_id.date desc"
 | 
					    _order="hd_case_id.date desc"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,6 @@ class PaymentMatching(Model):
 | 
				
			||||||
    _string="Payment Matching"
 | 
					    _string="Payment Matching"
 | 
				
			||||||
    _transient=True
 | 
					    _transient=True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    _fields={
 | 
					    _fields={
 | 
				
			||||||
        'name': fields.Char("Name"),
 | 
					        'name': fields.Char("Name"),
 | 
				
			||||||
        "date": fields.Date("Month"),
 | 
					        "date": fields.Date("Month"),
 | 
				
			||||||
| 
						 | 
					@ -26,6 +25,7 @@ class PaymentMatching(Model):
 | 
				
			||||||
        'patient_type_id': fields.Many2One("clinic.patient.type","Patient Type",required=True),
 | 
					        'patient_type_id': fields.Many2One("clinic.patient.type","Patient Type",required=True),
 | 
				
			||||||
        'pcode': fields.Char("Code",required=True),
 | 
					        'pcode': fields.Char("Code",required=True),
 | 
				
			||||||
        'hcode_id': fields.Many2One("clinic.hospital","HCode"),
 | 
					        'hcode_id': fields.Many2One("clinic.hospital","HCode"),
 | 
				
			||||||
 | 
					        'inv_ids': fields.Text("Invoice ids"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_date_from(self,context={}):
 | 
					    def _get_date_from(self,context={}):
 | 
				
			||||||
| 
						 | 
					@ -49,18 +49,25 @@ class PaymentMatching(Model):
 | 
				
			||||||
                    date_from=line.date_start
 | 
					                    date_from=line.date_start
 | 
				
			||||||
                    date_to=line.date_stop
 | 
					                    date_to=line.date_stop
 | 
				
			||||||
                    break
 | 
					                    break
 | 
				
			||||||
        tids=get_model('clinic.patient.type').search([['default','=',True]])
 | 
					 | 
				
			||||||
        patient_type_id=None
 | 
					        patient_type_id=None
 | 
				
			||||||
        if tids:
 | 
					        pcode='SSO'
 | 
				
			||||||
            patient_type_id=tids[0]
 | 
					        for ptype in get_model('clinic.patient.type').search_read([['default','=',True]],['code']):
 | 
				
			||||||
 | 
					            pcode=ptype['code']
 | 
				
			||||||
 | 
					            patient_type_id=ptype['id']
 | 
				
			||||||
 | 
					        hdcode_id=None
 | 
				
			||||||
 | 
					        for hid in get_model("clinic.hospital").search([]):
 | 
				
			||||||
 | 
					            hdcode_id=hid
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
        res={
 | 
					        res={
 | 
				
			||||||
            'period_id': period_id,
 | 
					            'period_id': period_id,
 | 
				
			||||||
            'date': time.strftime("%Y-%m-%d"),
 | 
					            'date': time.strftime("%Y-%m-%d"),
 | 
				
			||||||
            'date_from': date_from,
 | 
					            'date_from': date_from,
 | 
				
			||||||
            'date_to': date_to,
 | 
					            'date_to': date_to,
 | 
				
			||||||
            'inv_state': 'waiting_payment',
 | 
					            #'inv_state': 'waiting_payment',
 | 
				
			||||||
            'view_type': 'invoice',
 | 
					            'view_type': 'invoice',
 | 
				
			||||||
            'patient_type_id': patient_type_id,
 | 
					            'patient_type_id': patient_type_id,
 | 
				
			||||||
 | 
					            'pcode': pcode,
 | 
				
			||||||
 | 
					            'hcode_id': hdcode_id,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return res
 | 
					        return res
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -121,6 +128,7 @@ class PaymentMatching(Model):
 | 
				
			||||||
        inv_state=defaults.get('inv_state')
 | 
					        inv_state=defaults.get('inv_state')
 | 
				
			||||||
        view_type=defaults.get('view_type')
 | 
					        view_type=defaults.get('view_type')
 | 
				
			||||||
        pcode=''
 | 
					        pcode=''
 | 
				
			||||||
 | 
					        obj=None
 | 
				
			||||||
        if ids:
 | 
					        if ids:
 | 
				
			||||||
            obj=self.browse(ids)[0]
 | 
					            obj=self.browse(ids)[0]
 | 
				
			||||||
            date_from=obj.date_from
 | 
					            date_from=obj.date_from
 | 
				
			||||||
| 
						 | 
					@ -143,13 +151,15 @@ class PaymentMatching(Model):
 | 
				
			||||||
            dom=[
 | 
					            dom=[
 | 
				
			||||||
                ['date','>=',date_from],
 | 
					                ['date','>=',date_from],
 | 
				
			||||||
                ['date','<=',date_to],
 | 
					                ['date','<=',date_to],
 | 
				
			||||||
                ['state','=',inv_state],
 | 
					 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
 | 
					            if inv_state:
 | 
				
			||||||
 | 
					                dom.append(['state','=',inv_state])
 | 
				
			||||||
            if branch_id and not department_id:
 | 
					            if branch_id and not department_id:
 | 
				
			||||||
                dom.append(['department_id.branch_id','=',branch_id])
 | 
					                dom.append(['department_id.branch_id','=',branch_id])
 | 
				
			||||||
            elif department_id:
 | 
					            elif department_id:
 | 
				
			||||||
                dom.append(['department_id','=',department_id])
 | 
					                dom.append(['department_id','=',department_id])
 | 
				
			||||||
            field_names=['date','number','amount_due','patient_id']
 | 
					            print('dom ', dom)
 | 
				
			||||||
 | 
					            field_names=['date','number','amount_total','amount_due','patient_id','state']
 | 
				
			||||||
            for inv in get_model('account.invoice').search_read(dom,field_names):
 | 
					            for inv in get_model('account.invoice').search_read(dom,field_names):
 | 
				
			||||||
                vals={
 | 
					                vals={
 | 
				
			||||||
                    'id': inv['id'],
 | 
					                    'id': inv['id'],
 | 
				
			||||||
| 
						 | 
					@ -170,6 +180,7 @@ class PaymentMatching(Model):
 | 
				
			||||||
                    vals[field_name]=inv[field_name]
 | 
					                    vals[field_name]=inv[field_name]
 | 
				
			||||||
                    invoices.append(vals)
 | 
					                    invoices.append(vals)
 | 
				
			||||||
            return invoices
 | 
					            return invoices
 | 
				
			||||||
 | 
					        inv_match_ids=[]
 | 
				
			||||||
        if view_type=='invoice':
 | 
					        if view_type=='invoice':
 | 
				
			||||||
                lines=get_invoices()
 | 
					                lines=get_invoices()
 | 
				
			||||||
                total_invoice=len(lines)
 | 
					                total_invoice=len(lines)
 | 
				
			||||||
| 
						 | 
					@ -214,11 +225,15 @@ class PaymentMatching(Model):
 | 
				
			||||||
                            if inv['patient_id']:
 | 
					                            if inv['patient_id']:
 | 
				
			||||||
                                # check card no first then HN finally patient name
 | 
					                                # check card no first then HN finally patient name
 | 
				
			||||||
                                if pid==inv['patient_cid'] or hn==inv['patient_hn'] or name_nospace==inv['patient_nospace_name']:
 | 
					                                if pid==inv['patient_cid'] or hn==inv['patient_hn'] or name_nospace==inv['patient_nospace_name']:
 | 
				
			||||||
                                    inv_amt=inv['amount_due']
 | 
					                                    #inv_amt=inv['amount_due']
 | 
				
			||||||
 | 
					                                    inv_amt=inv['amount_total']
 | 
				
			||||||
                                    inv_date=inv['date']
 | 
					                                    inv_date=inv['date']
 | 
				
			||||||
                                    if inv_date==date and inv_amt==line_vals[item_amt]:
 | 
					                                    if inv_date==date and inv_amt==line_vals[item_amt]:
 | 
				
			||||||
                                        line_vals['inv_%s'%(item_amt)]=inv['number']
 | 
					                                        line_vals['inv_%s'%(item_amt)]=inv['number']
 | 
				
			||||||
                                        line_vals['inv_%s_id'%(item_amt)]=inv['id']
 | 
					                                        line_vals['inv_%s_id'%(item_amt)]=inv['id']
 | 
				
			||||||
 | 
					                                        line_vals['inv_%s_state'%(item_amt)]=inv['state']
 | 
				
			||||||
 | 
					                                        if inv['state']=='waiting_payment':
 | 
				
			||||||
 | 
					                                            inv_match_ids.append(inv['id'])
 | 
				
			||||||
                                            total_match_invoice+=1
 | 
					                                            total_match_invoice+=1
 | 
				
			||||||
                                        break
 | 
					                                        break
 | 
				
			||||||
                    lines.append(line_vals)
 | 
					                    lines.append(line_vals)
 | 
				
			||||||
| 
						 | 
					@ -267,6 +282,7 @@ class PaymentMatching(Model):
 | 
				
			||||||
                        'epo': 0,
 | 
					                        'epo': 0,
 | 
				
			||||||
                        'inv_id': None,
 | 
					                        'inv_id': None,
 | 
				
			||||||
                        'inv_number': '',
 | 
					                        'inv_number': '',
 | 
				
			||||||
 | 
					                        'inv_state': '',
 | 
				
			||||||
                        'no': no,
 | 
					                        'no': no,
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    for inv in invoices:
 | 
					                    for inv in invoices:
 | 
				
			||||||
| 
						 | 
					@ -275,6 +291,9 @@ class PaymentMatching(Model):
 | 
				
			||||||
                                if date==inv['date'] and fee==inv['amount_due']:
 | 
					                                if date==inv['date'] and fee==inv['amount_due']:
 | 
				
			||||||
                                    vals['inv_id']=inv['id']
 | 
					                                    vals['inv_id']=inv['id']
 | 
				
			||||||
                                    vals['inv_number']=inv['number']
 | 
					                                    vals['inv_number']=inv['number']
 | 
				
			||||||
 | 
					                                    vals['inv_state']=inv['state']
 | 
				
			||||||
 | 
					                                    if inv['state']=='waiting_payment':
 | 
				
			||||||
 | 
					                                        inv_match_ids.append(inv['id'])
 | 
				
			||||||
                                        total_match_invoice+=1
 | 
					                                        total_match_invoice+=1
 | 
				
			||||||
                                    break
 | 
					                                    break
 | 
				
			||||||
                    lines.append(vals)
 | 
					                    lines.append(vals)
 | 
				
			||||||
| 
						 | 
					@ -282,6 +301,10 @@ class PaymentMatching(Model):
 | 
				
			||||||
        pc=0
 | 
					        pc=0
 | 
				
			||||||
        if total_invoice:
 | 
					        if total_invoice:
 | 
				
			||||||
            pc=(total_match_invoice/total_invoice)*100
 | 
					            pc=(total_match_invoice/total_invoice)*100
 | 
				
			||||||
 | 
					        if inv_match_ids and obj:
 | 
				
			||||||
 | 
					            obj.write({
 | 
				
			||||||
 | 
					                'inv_ids': str(inv_match_ids),
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
        data={
 | 
					        data={
 | 
				
			||||||
            'lines': lines,
 | 
					            'lines': lines,
 | 
				
			||||||
            'date_from': date_from,
 | 
					            'date_from': date_from,
 | 
				
			||||||
| 
						 | 
					@ -292,7 +315,8 @@ class PaymentMatching(Model):
 | 
				
			||||||
            'total_srv': total_srv,
 | 
					            'total_srv': total_srv,
 | 
				
			||||||
            'total_invoice': total_invoice,
 | 
					            'total_invoice': total_invoice,
 | 
				
			||||||
            'total_match_invoice': total_match_invoice,
 | 
					            'total_match_invoice': total_match_invoice,
 | 
				
			||||||
            'total_match_invoice_in_pc': pc,
 | 
					            'pc_match': pc,
 | 
				
			||||||
 | 
					            'pc_unmatch': 100-pc,
 | 
				
			||||||
            'total_unmatch_invoice': total_invoice-total_match_invoice,
 | 
					            'total_unmatch_invoice': total_invoice-total_match_invoice,
 | 
				
			||||||
            'total_amount': total_amount,
 | 
					            'total_amount': total_amount,
 | 
				
			||||||
            'view_type': view_type,
 | 
					            'view_type': view_type,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,17 +1,31 @@
 | 
				
			||||||
<div class="row" style="margin-top:10px;">
 | 
					<div class="row" style="margin-top:10px;">
 | 
				
			||||||
 | 
					    <div class="progress">
 | 
				
			||||||
 | 
					        <div class="progress-bar progress-bar-success" role="progressbar" style="width:{{currency pc_match}}%">
 | 
				
			||||||
 | 
					          {{currency pc_match}}% Match (success)
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="progress-bar progress-bar-danger" role="progressbar" style="width:{{currency pc_unmatch}}%">
 | 
				
			||||||
 | 
					          {{currency pc_unmatch}}% Un Match (fail)
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<div class="row">
 | 
				
			||||||
    <table class="table table-bordered">
 | 
					    <table class="table table-bordered">
 | 
				
			||||||
        <thead>
 | 
					        <thead>
 | 
				
			||||||
            <th style="text-align:center">Total Item</th>
 | 
					            <th style="text-align:center;width:25%">Total Item Waiting To Matching</th>
 | 
				
			||||||
            <th style="text-align:center">Total Invoice</th>
 | 
					            <th style="text-align:center;width:25%">Total Invoice</th>
 | 
				
			||||||
            <th style="text-align:center">Match</th>
 | 
					            <th style="text-align:center;width:25%">Match</th>
 | 
				
			||||||
            <th style="text-align:center">Un Match</th>
 | 
					            <th style="text-align:center;width:25%">Un Match</th>
 | 
				
			||||||
        </thead>
 | 
					        </thead>
 | 
				
			||||||
        <tbody>
 | 
					        <tbody>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td style="text-align:center">{{currency total_item}}</td>
 | 
					                <td style="text-align:center">{{currency total_item}}</td>
 | 
				
			||||||
                <td style="text-align:center">{{currency total_invoice}}</td>
 | 
					                <td style="text-align:center">{{currency total_invoice}}</td>
 | 
				
			||||||
                <td style="text-align:center">{{currency total_match_invoice}}</td>
 | 
					                <td style="text-align:center">
 | 
				
			||||||
                <td style="text-align:center">{{currency total_unmatch_invoice}}</td>
 | 
					                    {{currency total_match_invoice}}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
 | 
					                <td style="text-align:center">
 | 
				
			||||||
 | 
					                    {{currency total_unmatch_invoice}}
 | 
				
			||||||
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </tbody>
 | 
					        </tbody>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
| 
						 | 
					@ -65,7 +79,11 @@
 | 
				
			||||||
                            <td>
 | 
					                            <td>
 | 
				
			||||||
                                <a style="text-decoration:None" href="ui#form_view_xml=cust_invoice_form&active_id={{inv_fee_id}}&name=cust_invoice&mode=form" target="_blank">
 | 
					                                <a style="text-decoration:None" href="ui#form_view_xml=cust_invoice_form&active_id={{inv_fee_id}}&name=cust_invoice&mode=form" target="_blank">
 | 
				
			||||||
                                    {{#if inv_fee_id}}
 | 
					                                    {{#if inv_fee_id}}
 | 
				
			||||||
 | 
					                                        {{#ifeq inv_fee_state "paid"}}
 | 
				
			||||||
 | 
					                                            <span class="label label-success">
 | 
				
			||||||
 | 
					                                        {{else}}
 | 
				
			||||||
                                            <span class="label label-info">
 | 
					                                            <span class="label label-info">
 | 
				
			||||||
 | 
					                                        {{/ifeq}}
 | 
				
			||||||
                                            {{inv_fee}}
 | 
					                                            {{inv_fee}}
 | 
				
			||||||
                                        </span>
 | 
					                                        </span>
 | 
				
			||||||
                                    {{/if}}
 | 
					                                    {{/if}}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue