report expense
							parent
							
								
									5b9bd61c46
								
							
						
					
					
						commit
						f3968d0fea
					
				| 
						 | 
					@ -7,4 +7,5 @@
 | 
				
			||||||
    <field name="ptype_id" span="2"/>
 | 
					    <field name="ptype_id" span="2"/>
 | 
				
			||||||
    <field name="reimbursable" span="2"/>
 | 
					    <field name="reimbursable" span="2"/>
 | 
				
			||||||
    <field name="cycle_id" span="2"/>
 | 
					    <field name="cycle_id" span="2"/>
 | 
				
			||||||
 | 
					    <field name="product_id" span="2"/>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
        'ptype_id': fields.Many2One("clinic.patient.type","Patient Type"),
 | 
					        'ptype_id': fields.Many2One("clinic.patient.type","Patient Type"),
 | 
				
			||||||
        'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Claim'),
 | 
					        'reimbursable': fields.Selection([['yes','Yes'],['no','No']],'Claim'),
 | 
				
			||||||
        'cycle_id': fields.Many2One("clinic.cycle","Cycle"),
 | 
					        'cycle_id': fields.Many2One("clinic.cycle","Cycle"),
 | 
				
			||||||
 | 
					        'product_id': fields.Many2One("product","Product"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def default_get(self,field_names=None,context={},**kw):
 | 
					    def default_get(self,field_names=None,context={},**kw):
 | 
				
			||||||
| 
						 | 
					@ -27,9 +28,10 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
        weekday, total_day=monthrange(int(year), int(month))
 | 
					        weekday, total_day=monthrange(int(year), int(month))
 | 
				
			||||||
        date_from=defaults.get('date_from','%s-%s-01'%(year,month))
 | 
					        date_from=defaults.get('date_from','%s-%s-01'%(year,month))
 | 
				
			||||||
        date_to=defaults.get('date_to',"%s-%s-%s"%(year,month,total_day))
 | 
					        date_to=defaults.get('date_to',"%s-%s-%s"%(year,month,total_day))
 | 
				
			||||||
        #XXX
 | 
					 | 
				
			||||||
        date_from=defaults.get('date',date)
 | 
					        date_from=defaults.get('date',date)
 | 
				
			||||||
        date_to=defaults.get('date',date)
 | 
					        date_to=defaults.get('date',date)
 | 
				
			||||||
 | 
					        product_id=defaults.get('product_id')
 | 
				
			||||||
 | 
					        reimbursable=defaults.get('reimbursable',"yes")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        branch_id=defaults.get('branch_id',None)
 | 
					        branch_id=defaults.get('branch_id',None)
 | 
				
			||||||
        print('defaults ', defaults)
 | 
					        print('defaults ', defaults)
 | 
				
			||||||
| 
						 | 
					@ -38,13 +40,24 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
        department_id=defaults.get('department_id',None)
 | 
					        department_id=defaults.get('department_id',None)
 | 
				
			||||||
        if department_id:
 | 
					        if department_id:
 | 
				
			||||||
            department_id=int(department_id)
 | 
					            department_id=int(department_id)
 | 
				
			||||||
 | 
					        select_dpt=get_model('select.company').get_select()
 | 
				
			||||||
 | 
					        print('select_dpt ', select_dpt)
 | 
				
			||||||
 | 
					        if select_dpt:
 | 
				
			||||||
 | 
					            if not branch_id:
 | 
				
			||||||
 | 
					                branch_id=select_dpt['branch_id']
 | 
				
			||||||
 | 
					            if not department_id:
 | 
				
			||||||
 | 
					                if select_dpt.get('department_ids'):
 | 
				
			||||||
 | 
					                    department_id=select_dpt['department_ids'][0]
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    department_id=select_dpt['department_id']
 | 
				
			||||||
        res={
 | 
					        res={
 | 
				
			||||||
            'date': date,
 | 
					            'date': date,
 | 
				
			||||||
            'date_from': date_from,
 | 
					            'date_from': date_from,
 | 
				
			||||||
            'date_to': date_to,
 | 
					            'date_to': date_to,
 | 
				
			||||||
            'branch_id': branch_id,
 | 
					            'branch_id': branch_id,
 | 
				
			||||||
            'department_id': department_id,
 | 
					            'department_id': department_id,
 | 
				
			||||||
            'reimbursable': 'yes',
 | 
					            'reimbursable': reimbursable,
 | 
				
			||||||
 | 
					            'product_id': product_id,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return res
 | 
					        return res
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -57,8 +70,9 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
        date=defaults.get("date")
 | 
					        date=defaults.get("date")
 | 
				
			||||||
        branch_id=defaults.get("branch_id")
 | 
					        branch_id=defaults.get("branch_id")
 | 
				
			||||||
        department_id=defaults.get("department_id")
 | 
					        department_id=defaults.get("department_id")
 | 
				
			||||||
 | 
					        reimbursable=defaults.get('reimbursable','yes')
 | 
				
			||||||
 | 
					        product_id=defaults.get('product_id')
 | 
				
			||||||
        ptype_id=None
 | 
					        ptype_id=None
 | 
				
			||||||
        reimbursable=''
 | 
					 | 
				
			||||||
        cycle_id=None
 | 
					        cycle_id=None
 | 
				
			||||||
        if ids:
 | 
					        if ids:
 | 
				
			||||||
            obj=self.browse(ids)[0]
 | 
					            obj=self.browse(ids)[0]
 | 
				
			||||||
| 
						 | 
					@ -68,12 +82,14 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
            date_from=obj.date_from
 | 
					            date_from=obj.date_from
 | 
				
			||||||
            date_to=obj.date_to
 | 
					            date_to=obj.date_to
 | 
				
			||||||
            ptype_id=obj.ptype_id.id
 | 
					            ptype_id=obj.ptype_id.id
 | 
				
			||||||
            reimbursable=obj.reimbursable
 | 
					 | 
				
			||||||
            cycle_id=obj.cycle_id.id
 | 
					            cycle_id=obj.cycle_id.id
 | 
				
			||||||
 | 
					            reimbursable=obj.reimbursable
 | 
				
			||||||
 | 
					            product_id=obj.product_id.id
 | 
				
			||||||
        dom=[
 | 
					        dom=[
 | 
				
			||||||
            ['hd_case_id.date','>=', date_from],
 | 
					            ['hd_case_id.date','>=', date_from],
 | 
				
			||||||
            ['hd_case_id.date','<=', date_to],
 | 
					            ['hd_case_id.date','<=', date_to],
 | 
				
			||||||
            ['hd_case_id.patient_id.walkin','=','no'],
 | 
					            ['hd_case_id.patient_id.walkin','=','no'],
 | 
				
			||||||
 | 
					            ['hd_case_id.state','in',['completed','waiting_payment','paid']],
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        if ptype_id:
 | 
					        if ptype_id:
 | 
				
			||||||
            dom.append(['hd_case_id.patient_type_id','=',ptype_id])
 | 
					            dom.append(['hd_case_id.patient_type_id','=',ptype_id])
 | 
				
			||||||
| 
						 | 
					@ -85,9 +101,9 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
            dom.append(['hd_case_id.cycle_id','=',cycle_id])
 | 
					            dom.append(['hd_case_id.cycle_id','=',cycle_id])
 | 
				
			||||||
        if reimbursable:
 | 
					        if reimbursable:
 | 
				
			||||||
            dom.append(['reimbursable','=',reimbursable])
 | 
					            dom.append(['reimbursable','=',reimbursable])
 | 
				
			||||||
        else:
 | 
					        if product_id:
 | 
				
			||||||
            dom.append(['hd_case_id.state','in',['completed','waiting_payment','paid']])
 | 
					            dom.append(['product_id','=',product_id])
 | 
				
			||||||
        lines=[]
 | 
					        records={}
 | 
				
			||||||
        cycles={}
 | 
					        cycles={}
 | 
				
			||||||
        for line in get_model("clinic.hd.case.line").search_browse(dom):
 | 
					        for line in get_model("clinic.hd.case.line").search_browse(dom):
 | 
				
			||||||
            hdcase=line.hd_case_id
 | 
					            hdcase=line.hd_case_id
 | 
				
			||||||
| 
						 | 
					@ -154,6 +170,21 @@ class ReportAccountHDCaseSummary(Model):
 | 
				
			||||||
                vals.update({
 | 
					                vals.update({
 | 
				
			||||||
                    code: sum([t['amount'] for t in item])
 | 
					                    code: sum([t['amount'] for t in item])
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
 | 
					            # merge 1 line of number
 | 
				
			||||||
 | 
					            number=vals['number']
 | 
				
			||||||
 | 
					            if number not in records.keys():
 | 
				
			||||||
 | 
					                records[number]=vals
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                for code, item in items.items():
 | 
				
			||||||
 | 
					                    if vals.get(code):
 | 
				
			||||||
 | 
					                        if not records[number].get(code):
 | 
				
			||||||
 | 
					                            records[number][code]=0
 | 
				
			||||||
 | 
					                        records[number][code]+=vals[code]
 | 
				
			||||||
 | 
					                records[number]['lab']+=vals['lab']
 | 
				
			||||||
 | 
					                records[number]['misc']+=vals['misc']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        lines=[]
 | 
				
			||||||
 | 
					        for hdnumber, vals in records.items():
 | 
				
			||||||
            lines.append(vals)
 | 
					            lines.append(vals)
 | 
				
			||||||
        company_name=company.name or ""
 | 
					        company_name=company.name or ""
 | 
				
			||||||
        if department_id:
 | 
					        if department_id:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue