new product + new dializer without waiting Netforce
parent
1062124931
commit
00ac008130
|
@ -16,7 +16,7 @@
|
||||||
<field name="membrane_type" required="1"/>
|
<field name="membrane_type" required="1"/>
|
||||||
</group>
|
</group>
|
||||||
<group span="6" columns="1">
|
<group span="6" columns="1">
|
||||||
<field name="product_id" onchange="onchange_product"/>
|
<field name="product_id" onchange="onchange_product" domain="[['categ_id.name','=','Dialyzer']]"/>
|
||||||
<field name="dialyzer_type"/>
|
<field name="dialyzer_type"/>
|
||||||
<field name="use_time"/>
|
<field name="use_time"/>
|
||||||
<field name="max_use_time"/>
|
<field name="max_use_time"/>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<form model="clinic.hd.case.popup.dlz">
|
<form model="clinic.hd.case.popup.dlz">
|
||||||
<field name="hd_case_id" invisible="1"/>
|
<field name="hd_case_id" invisible="1"/>
|
||||||
|
<field name="new_product" span="6"/>
|
||||||
<field name="product_id" onchange="onchange_product" domain="[['categ_id.name','=','Dialyzer']]" span="6"/>
|
<field name="product_id" onchange="onchange_product" domain="[['categ_id.name','=','Dialyzer']]" span="6"/>
|
||||||
<field name="dialyzer_type" required="1" span="6"/>
|
<field name="dialyzer_type" required="1" span="6"/>
|
||||||
<field name="max_use_time" span="6" required="1"/>
|
<field name="max_use_time" span="6" required="1"/>
|
||||||
|
@ -7,6 +8,11 @@
|
||||||
<field name="exp_date" span="6"/>
|
<field name="exp_date" span="6"/>
|
||||||
<field name="note" span="6"/>
|
<field name="note" span="6"/>
|
||||||
<field name="drop_old" span="6"/>
|
<field name="drop_old" span="6"/>
|
||||||
|
<template>
|
||||||
|
<p class="well text-warning">
|
||||||
|
<span class="glyphicon glyphicon-info-sign"></span> กรณีในช่อง product ไม่มีให้เลือก ให้ระบุที่ชอ่ง New Product แทน
|
||||||
|
</p>
|
||||||
|
</template>
|
||||||
<foot>
|
<foot>
|
||||||
<button string="Validate" type="success" method="new_dlz"/>
|
<button string="Validate" type="success" method="new_dlz"/>
|
||||||
</foot>
|
</foot>
|
||||||
|
|
|
@ -5,10 +5,11 @@
|
||||||
<field name="number"/>
|
<field name="number"/>
|
||||||
<field name="visit_date"/>
|
<field name="visit_date"/>
|
||||||
<field name="cycle_id"/>
|
<field name="cycle_id"/>
|
||||||
<field name="patient_id"/>
|
<field name="patient_name"/>
|
||||||
|
<field name="patient_type_id"/>
|
||||||
<field name="doctor_id"/>
|
<field name="doctor_id"/>
|
||||||
<field name="department_id"/>
|
<field name="department_id"/>
|
||||||
<field name="branch_id"/>
|
<!--<field name="branch_id"/>-->
|
||||||
<field name="nurse_id"/>
|
<field name="nurse_id"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</list>
|
</list>
|
||||||
|
|
|
@ -75,8 +75,8 @@ class Dialyzer(Model):
|
||||||
product_id=prod.id
|
product_id=prod.id
|
||||||
found=True
|
found=True
|
||||||
break
|
break
|
||||||
if not product_id:
|
#if not product_id:
|
||||||
raise Exception("No Product with category 'Dialyzer'")
|
#raise Exception("No Product with category 'Dialyzer'")
|
||||||
return product_id
|
return product_id
|
||||||
|
|
||||||
def _get_product_name(self,context={}):
|
def _get_product_name(self,context={}):
|
||||||
|
@ -126,7 +126,6 @@ class Dialyzer(Model):
|
||||||
if not ship_address_id:
|
if not ship_address_id:
|
||||||
patient.simple_address()
|
patient.simple_address()
|
||||||
|
|
||||||
#XXX
|
|
||||||
st=get_model("clinic.setting").browse(1)
|
st=get_model("clinic.setting").browse(1)
|
||||||
stock_journal=st.stock_journal_id
|
stock_journal=st.stock_journal_id
|
||||||
|
|
||||||
|
@ -170,7 +169,7 @@ class Dialyzer(Model):
|
||||||
raise Exception("Warehouse not found")
|
raise Exception("Warehouse not found")
|
||||||
wh_loc_id=res[0]
|
wh_loc_id=res[0]
|
||||||
|
|
||||||
if prod.type=='stock':
|
if prod and prod.type=='stock':
|
||||||
line_vals={
|
line_vals={
|
||||||
"product_id": prod.id,
|
"product_id": prod.id,
|
||||||
"qty": 1,
|
"qty": 1,
|
||||||
|
|
|
@ -6,7 +6,8 @@ class HDCasePopupDlz(Model):
|
||||||
|
|
||||||
_fields={
|
_fields={
|
||||||
"hd_case_id": fields.Many2One("clinic.hd.case","HdCase",required=True,on_delete="cascade"),
|
"hd_case_id": fields.Many2One("clinic.hd.case","HdCase",required=True,on_delete="cascade"),
|
||||||
'product_id': fields.Many2One("product", "Product",required=True),
|
'product_id': fields.Many2One("product", "Product",required=False),
|
||||||
|
'new_product': fields.Char("New Product"),
|
||||||
"dialyzer_type": fields.Selection([("low","low flux"),("high","high flux"),("dbl","dbl hifulx")],"Dialyzer Type"),
|
"dialyzer_type": fields.Selection([("low","low flux"),("high","high flux"),("dbl","dbl hifulx")],"Dialyzer Type"),
|
||||||
"max_use_time": fields.Integer("Max Use Time"),
|
"max_use_time": fields.Integer("Max Use Time"),
|
||||||
"exp_date": fields.Date("Expiry Date"),
|
"exp_date": fields.Date("Expiry Date"),
|
||||||
|
@ -59,8 +60,34 @@ class HDCasePopupDlz(Model):
|
||||||
context['is_wiz']=True
|
context['is_wiz']=True
|
||||||
context['pop_id']=obj.id
|
context['pop_id']=obj.id
|
||||||
context['drop_old']=obj.drop_old
|
context['drop_old']=obj.drop_old
|
||||||
|
if obj.new_product:
|
||||||
|
name=obj.new_product
|
||||||
|
uom_id=None
|
||||||
|
for r_id in get_model("uom").search([['name','=','Unit']]):
|
||||||
|
uom_id=r_id
|
||||||
|
if not uom_id:
|
||||||
|
raise Exception("Missing UoM <Unit>!")
|
||||||
|
categ_id=None
|
||||||
|
for r_id in get_model("product.categ").search([['code','=','DLZ']]):
|
||||||
|
categ_id=r_id
|
||||||
|
if not categ_id:
|
||||||
|
raise Exception("Missing Product category code DLZ!")
|
||||||
|
new_prod_id=get_model("product").create({
|
||||||
|
'type': 'stock',
|
||||||
|
'code': name.upper(),
|
||||||
|
'name': name,
|
||||||
|
'description': name,
|
||||||
|
"uom_id": uom_id,
|
||||||
|
'categ_id': categ_id,
|
||||||
|
'can_sell': True,
|
||||||
|
'can_purchase': True,
|
||||||
|
})
|
||||||
|
obj.write({
|
||||||
|
'product_id': new_prod_id,
|
||||||
|
})
|
||||||
|
if not obj.product_id:
|
||||||
|
raise Exception("Missing product!")
|
||||||
res=hd_case.new_dialyzer(context=context)
|
res=hd_case.new_dialyzer(context=context)
|
||||||
print('res ', res)
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def onchange_product(self,context={}):
|
def onchange_product(self,context={}):
|
||||||
|
|
|
@ -26,9 +26,12 @@ class Visit(Model):
|
||||||
for obj in self.browse(ids):
|
for obj in self.browse(ids):
|
||||||
cycle=obj.cycle_id
|
cycle=obj.cycle_id
|
||||||
color=cycle.color
|
color=cycle.color
|
||||||
|
patient=obj.patient_id
|
||||||
res[obj.id]={
|
res[obj.id]={
|
||||||
'cycle_color': color,
|
'cycle_color': color,
|
||||||
'sequence': '%s-%s'%(obj.time_start[0:10],cycle.sequence), #date-sequence
|
'sequence': '%s-%s'%(obj.time_start[0:10],cycle.sequence), #date-sequence
|
||||||
|
'patient_name': patient_id.name,
|
||||||
|
'patient_type_id': patient_id.type_id.id,
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -54,6 +57,8 @@ class Visit(Model):
|
||||||
'note': fields.Text('Note'),
|
'note': fields.Text('Note'),
|
||||||
'branch_id': fields.Many2One("clinic.branch","Branch"),
|
'branch_id': fields.Many2One("clinic.branch","Branch"),
|
||||||
'manual': fields.Boolean("Manual Tempolary Visit"),
|
'manual': fields.Boolean("Manual Tempolary Visit"),
|
||||||
|
"patient_name": fields.Char("Patient Name", function="_get_all", store=True, search=True),
|
||||||
|
"patient_type_id": fields.Char("Patient Type", function="_get_all", store=True, search=True),
|
||||||
}
|
}
|
||||||
|
|
||||||
def _get_number(self,context={}):
|
def _get_number(self,context={}):
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
redesign print payment & invoice from hdcase
|
==========================================
|
||||||
- print payment
|
keep log:
|
||||||
- direct payment
|
patient_name, patient_type, walkin, location
|
||||||
- invoice payment
|
|
||||||
|
|
||||||
migration:
|
===========================================
|
||||||
match invoice less than 2015-06-30 to hdcase
|
|
||||||
|
patient:
|
||||||
|
1.new
|
||||||
|
2. dispose
|
||||||
|
3. move
|
||||||
|
|
Loading…
Reference in New Issue