setting
							parent
							
								
									2f011dcaa8
								
							
						
					
					
						commit
						481d554913
					
				| 
						 | 
					@ -1,11 +1,20 @@
 | 
				
			||||||
<form model="clinic.setting" title="Clinic Settings">
 | 
					<form model="clinic.setting" title="Clinic Settings">
 | 
				
			||||||
 | 
					    <head>
 | 
				
			||||||
 | 
					        <button string="Options" dropdown="1">
 | 
				
			||||||
 | 
					            <item string="Manual Generate Visit" method="manual_generate_visit" confirm="This action will remove all pending visit of this month and generate new one. Are you sure?"/>
 | 
				
			||||||
 | 
					        </button>
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
    <separator string="Visit"/>
 | 
					    <separator string="Visit"/>
 | 
				
			||||||
    <field name="find_dlz" span="4"/>
 | 
					    <group form_layout="stacked">
 | 
				
			||||||
    <field name="auto_gen_visit" span="6"/>
 | 
					        <field name="find_dlz"/>
 | 
				
			||||||
 | 
					        <newline/>
 | 
				
			||||||
 | 
					        <field name="auto_gen_visit" string="Next Gen"/>
 | 
				
			||||||
 | 
					        <field name="next_date" span="3"/>
 | 
				
			||||||
 | 
					    </group>
 | 
				
			||||||
    <separator string="HD Case"/>
 | 
					    <separator string="HD Case"/>
 | 
				
			||||||
    <group form_layout="stacked">
 | 
					    <group form_layout="stacked">
 | 
				
			||||||
        <field name="waiting_approval" span="3"/>
 | 
					        <!--<field name="waiting_approval" span="3"/>-->
 | 
				
			||||||
        <field name="real_time" span="3"/>
 | 
					        <!--<field name="real_time" span="3"/>-->
 | 
				
			||||||
        <field name="auto_gen" invisible="1" span="3"/>
 | 
					        <field name="auto_gen" invisible="1" span="3"/>
 | 
				
			||||||
        <field name="products" nolabel="1">
 | 
					        <field name="products" nolabel="1">
 | 
				
			||||||
            <list>
 | 
					            <list>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime, timedelta
 | 
				
			||||||
 | 
					from calendar import monthrange
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from netforce.model import Model, fields, get_model
 | 
					from netforce.model import Model, fields, get_model
 | 
				
			||||||
| 
						 | 
					@ -51,6 +52,7 @@ class ClinicSetting(Model):
 | 
				
			||||||
        "import_account_id": fields.Many2One("account.account","Import Account",multi_company=True),
 | 
					        "import_account_id": fields.Many2One("account.account","Import Account",multi_company=True),
 | 
				
			||||||
        'helper_categ_id': fields.Many2One("clinic.staff.categ","Helper Category"),
 | 
					        'helper_categ_id': fields.Many2One("clinic.staff.categ","Helper Category"),
 | 
				
			||||||
        'base_salary_day': fields.Float("Base Salary Day"),
 | 
					        'base_salary_day': fields.Float("Base Salary Day"),
 | 
				
			||||||
 | 
					        'next_date': fields.DateTime("Next Gen"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _defaults={
 | 
					    _defaults={
 | 
				
			||||||
| 
						 | 
					@ -954,6 +956,58 @@ class ClinicSetting(Model):
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def generate_visit(self,ids,context={}):
 | 
					    def generate_visit(self,ids,context={}):
 | 
				
			||||||
        obj=self.browse(ids)[0]
 | 
					        obj=self.browse(ids)[0]
 | 
				
			||||||
        print(">>>>")
 | 
					        if obj.auto_gen_visit:
 | 
				
			||||||
 | 
					            datenow=datetime.now().strftime("%Y-%m-%d")
 | 
				
			||||||
 | 
					            year,month,day=datenow.split("-")
 | 
				
			||||||
 | 
					            weekday, total_day=monthrange(int(year), int(month))
 | 
				
			||||||
 | 
					            date_from="%s-%s-%s"%(year,month,"01")
 | 
				
			||||||
 | 
					            date_to="%s-%s-%s"%(year,month,("%s"%total_day).zfill(2))
 | 
				
			||||||
 | 
					            mobj=get_model('clinic.make.apt')
 | 
				
			||||||
 | 
					            vals={
 | 
				
			||||||
 | 
					                'date_from': date_from,
 | 
				
			||||||
 | 
					                'date_to': date_to,
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            print('duration generate ', vals)
 | 
				
			||||||
 | 
					            mid=mobj.create(vals)
 | 
				
			||||||
 | 
					            m=mobj.browse(mid)
 | 
				
			||||||
 | 
					            m.load(context=context)
 | 
				
			||||||
 | 
					            m.gen(context=context)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def auto_generate_visit(self,ids,context={}):
 | 
				
			||||||
 | 
					        obj=self.browse(ids)[0]
 | 
				
			||||||
 | 
					        print("auto generate visit running...")
 | 
				
			||||||
 | 
					        datenow=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
 | 
				
			||||||
 | 
					        print('now : ', datenow, 'next gen :',obj.next_date)
 | 
				
			||||||
 | 
					        print('ans: ', datenow>=obj.next_date)
 | 
				
			||||||
 | 
					        if datenow>=obj.next_date:
 | 
				
			||||||
 | 
					            obj.generate_visit()
 | 
				
			||||||
 | 
					            # update next job
 | 
				
			||||||
 | 
					            date=datetime.now()
 | 
				
			||||||
 | 
					            y,m,d=date.strftime("%Y-%m-%d").split("-")
 | 
				
			||||||
 | 
					            m=int(m)
 | 
				
			||||||
 | 
					            if m>=12:
 | 
				
			||||||
 | 
					                m=1
 | 
				
			||||||
 | 
					                y=int(y)+1
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                m+=1
 | 
				
			||||||
 | 
					            m=str(m).zfill(2)
 | 
				
			||||||
 | 
					            next_date='%s-%s-%s 00:00:00'%(y,m,'01')
 | 
				
			||||||
 | 
					            obj.write({
 | 
				
			||||||
 | 
					                'next_date': next_date,
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					            print("Done!")
 | 
				
			||||||
 | 
					        print("Next Gen is ", obj.next_date)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def manual_generate_visit(self,ids,context={}):
 | 
				
			||||||
 | 
					        dom=[]
 | 
				
			||||||
 | 
					        dom.append(['name','=','Generate Visit'])
 | 
				
			||||||
 | 
					        sec=10 # waiting in 10 sec
 | 
				
			||||||
 | 
					        date=datetime.now()+timedelta(0,sec) # days, seconds
 | 
				
			||||||
 | 
					        next_date=date.strftime("%Y-%m-%d %H:%M:%S")
 | 
				
			||||||
 | 
					        obj=self.browse(ids)[0]
 | 
				
			||||||
 | 
					        obj.write(
 | 
				
			||||||
 | 
					            { 'next_date': next_date,
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        print('next runing in 10 seconds  ', date)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ClinicSetting.register()
 | 
					ClinicSetting.register()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
=====
 | 
					 | 
				
			||||||
- if department of staff or  patient not related to department profile of user , it will show error's permission denied.
 | 
					 | 
				
			||||||
=====
 | 
					 | 
				
			||||||
- report
 | 
					 | 
				
			||||||
    - walkin
 | 
					 | 
				
			||||||
- receipt **
 | 
					 | 
				
			||||||
    -
 | 
					 | 
				
			||||||
- update & merge data
 | 
					 | 
				
			||||||
    - patient
 | 
					 | 
				
			||||||
    - doctor
 | 
					 | 
				
			||||||
- *** template:
 | 
					 | 
				
			||||||
    - change company name in all report template
 | 
					 | 
				
			||||||
====
 | 
					 | 
				
			||||||
improvement: 
 | 
					 | 
				
			||||||
1. ย้ายผู้ป่วย
 | 
					 | 
				
			||||||
2. ปรับ level
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue