diff --git a/netforce_clinic/layouts/clinic_setting.xml b/netforce_clinic/layouts/clinic_setting.xml
index 75a0875..cd4bf92 100644
--- a/netforce_clinic/layouts/clinic_setting.xml
+++ b/netforce_clinic/layouts/clinic_setting.xml
@@ -10,6 +10,7 @@
+
diff --git a/netforce_clinic/migrations/__init__.py b/netforce_clinic/migrations/__init__.py
index eb3aead..24348b7 100644
--- a/netforce_clinic/migrations/__init__.py
+++ b/netforce_clinic/migrations/__init__.py
@@ -2,4 +2,5 @@
#from . import repost_invoice
#from . import conv_bal
#from . import tb_ap_import
-from . import check_seq
+#from . import check_seq
+from . import del_gi
diff --git a/netforce_clinic/migrations/del_gi.py b/netforce_clinic/migrations/del_gi.py
new file mode 100644
index 0000000..3d6d2b5
--- /dev/null
+++ b/netforce_clinic/migrations/del_gi.py
@@ -0,0 +1,50 @@
+import time
+
+from netforce.model import get_model
+from netforce import migration
+from netforce.access import set_active_user, set_active_company
+
+class Migration(migration.Migration):
+ _name="clinic.del.gi"
+ _version="2.12.0"
+
+ def migrate(self):
+ set_active_user(1)
+ set_active_company(1)
+ #fmt='%Y-%m-%d %H:%M:%S'
+ #datenow=time.strftime(fmt)
+ dom=[
+ ['date','>=','2015-01-01 00:00:00'],
+ ['date','<=','2015-06-30 23:59:59'],
+ ['type','=','out'],
+ ]
+ count=0
+ for pick in get_model('stock.picking').search_browse(dom):
+ print('del ', pick.date, pick.id, pick.number)
+ pick.delete()
+ count+=1
+
+ print("Delete From 2015-01-01 to 2015-06-30 Total is: ", count)
+
+ rows=open("/tmp/del_gi.csv","r").read()
+ ids=[]
+ for row in rows.split("\n"):
+ try:
+ r=row.split(",")
+ idtxt=r[1]
+ if idtxt.isnumeric():
+ ids.append(int(idtxt))
+ except Exception as e:
+ print("ERROR ", e)
+ count=0
+ for id in ids:
+ pick=get_model('stock.picking').browse(id)
+ try:
+ print('del ', pick.date, pick.id, pick.number)
+ pick.delete()
+ except Exception as e:
+ print("ERROR ",e)
+ count+=1
+ print("Delete from file Total: ",count)
+
+Migration.register()
diff --git a/netforce_clinic/models/dialyzer.py b/netforce_clinic/models/dialyzer.py
index 6dca684..a70dad1 100644
--- a/netforce_clinic/models/dialyzer.py
+++ b/netforce_clinic/models/dialyzer.py
@@ -117,63 +117,64 @@ class Dialyzer(Model):
st=get_model("clinic.setting").browse(1)
stock_journal=st.stock_journal_id
- wh_loc_id=None
- cust_loc_id=None
- department=obj.department_id
- if department:
- stock_journal=department.pick_out_journal_id
- if stock_journal:
- wh_loc_id=stock_journal.location_from_id.id
- cust_loc_id=stock_journal.location_to_id.id
- print("get location from stock journal %s "%(stock_journal.name))
+ if st.picking_auto:
+ wh_loc_id=None
+ cust_loc_id=None
+ department=obj.department_id
+ if department:
+ stock_journal=department.pick_out_journal_id
+ if stock_journal:
+ wh_loc_id=stock_journal.location_from_id.id
+ cust_loc_id=stock_journal.location_to_id.id
+ print("get location from stock journal %s "%(stock_journal.name))
- if not stock_journal:
- raise Exception("Not found stock journal")
+ if not stock_journal:
+ raise Exception("Not found stock journal")
+ pick_vals={
+ "type": "out",
+ 'journal_id': stock_journal.id,
+ 'date': obj.date,
+ "ref": obj.number,
+ "related_id": "clinic.dialyzer,%s"%obj.id,
+ "partner_id": obj.patient_id.partner_id.id,
+ "ship_address_id": ship_address_id,
+ "lines": [],
+ "state": "draft",
+ }
- pick_vals={
- "type": "out",
- 'journal_id': stock_journal.id,
- 'date': obj.date,
- "ref": obj.number,
- "related_id": "clinic.dialyzer,%s"%obj.id,
- "partner_id": obj.patient_id.partner_id.id,
- "ship_address_id": ship_address_id,
- "lines": [],
- "state": "draft",
- }
-
- if not cust_loc_id:
- res=get_model("stock.location").search([["type","=","customer"]])
- if not res:
- raise Exception("Customer location not found")
- cust_loc_id=res[0]
-
- prod=obj.product_id
- if not wh_loc_id:
- wh_loc_id=prod.location_id.id # product -> tab inventory -> warehouse filed
- if not wh_loc_id:
- res=get_model("stock.location").search([["type","=","internal"]])
+ if not cust_loc_id:
+ res=get_model("stock.location").search([["type","=","customer"]])
if not res:
- raise Exception("Warehouse not found")
- wh_loc_id=res[0]
+ raise Exception("Customer location not found")
+ cust_loc_id=res[0]
+
+ prod=obj.product_id
+ if not wh_loc_id:
+ wh_loc_id=prod.location_id.id # product -> tab inventory -> warehouse filed
+ if not wh_loc_id:
+ res=get_model("stock.location").search([["type","=","internal"]])
+ if not res:
+ raise Exception("Warehouse not found")
+ wh_loc_id=res[0]
+
+ if prod.type=='stock':
+ line_vals={
+ "product_id": prod.id,
+ "qty": 1,
+ "uom_id": prod.uom_id.id,
+ "location_from_id": wh_loc_id,
+ "location_to_id": cust_loc_id,
+ }
+ pick_vals["lines"].append(("create",line_vals))
+ picking_obj=get_model("stock.picking")
+ context={
+ 'pick_type': 'out',
+ 'journal_id': pick_vals['journal_id'],
+ }
+ pick_id=picking_obj.create(pick_vals,context=context)
+ pick=picking_obj.browse(pick_id)
+ pick.set_done([pick_id])
- if prod.type=='stock':
- line_vals={
- "product_id": prod.id,
- "qty": 1,
- "uom_id": prod.uom_id.id,
- "location_from_id": wh_loc_id,
- "location_to_id": cust_loc_id,
- }
- pick_vals["lines"].append(("create",line_vals))
- picking_obj=get_model("stock.picking")
- context={
- 'pick_type': 'out',
- 'journal_id': pick_vals['journal_id'],
- }
- pick_id=picking_obj.create(pick_vals,context=context)
- pick=picking_obj.browse(pick_id)
- pick.set_done([pick_id])
number=obj.number.replace("/","")
if not number:
department=obj.department_id
diff --git a/netforce_clinic/models/hd_case.py b/netforce_clinic/models/hd_case.py
index 54c046f..d428623 100644
--- a/netforce_clinic/models/hd_case.py
+++ b/netforce_clinic/models/hd_case.py
@@ -757,6 +757,10 @@ class HDCase(Model):
})
def make_pickings(self,ids,context={}):
+ st=get_model('clinic.setting').browse(1)
+ if not st.picking_auto:
+ return
+
obj=self.browse(ids[0])
# no picking
if not obj.lines:
diff --git a/netforce_clinic/models/setting.py b/netforce_clinic/models/setting.py
index 907a73f..9236b17 100644
--- a/netforce_clinic/models/setting.py
+++ b/netforce_clinic/models/setting.py
@@ -64,6 +64,7 @@ class ClinicSetting(Model):
'staff_from_id': fields.Many2One("clinic.staff","Staff From"),
'staff_to_id': fields.Many2One("clinic.staff","Staff To"),
'product_categ_view': fields.Many2Many("product.categ","Product Category View"),
+ 'picking_auto': fields.Boolean("Picking Auto"),
}
_defaults={
diff --git a/netforce_clinic/models/visit_board.py b/netforce_clinic/models/visit_board.py
index fafea9f..b7f556e 100644
--- a/netforce_clinic/models/visit_board.py
+++ b/netforce_clinic/models/visit_board.py
@@ -86,6 +86,7 @@ class VisitBoard(Model):
defaults=self.default_get(context=context)
department_id=defaults.get("department_id",None)
branch_id=defaults.get("branch_id",None)
+ context['branch_id']=branch_id
state=defaults.get("state",'pending')
if ids:
obj=self.browse(ids)[0]
@@ -96,6 +97,7 @@ class VisitBoard(Model):
doctor_id=obj.doctor_id.id
department_id=obj.department_id.id
branch_id=obj.branch_id.id
+ context['branch_id']=branch_id
state=obj.state
# auto generate visit day to day
def auto_gen_visit(dom=[]):
@@ -147,7 +149,7 @@ class VisitBoard(Model):
'visit_date': date_txt,
'state': 'pending',
}
- visit_id=get_model("clinic.visit").create(vals)
+ visit_id=get_model("clinic.visit").create(vals,context=context)
print('create new visit %s for %s'%(visit_id,pt.name))
time_start='%s 00:00:00'%(date_from)
time_stop='%s 23:59:59'%(date_to)