laksi need to cut stock from another location for some product like eporon

conv_bal
watcha.h@almacom.co.th 2015-04-26 17:13:08 +07:00
parent fc5b1a2d9a
commit 173c8e599e
11 changed files with 45 additions and 28 deletions

View File

@ -0,0 +1,6 @@
<action>
<field name="string">Department Product</field>
<field name="view_cls">multi_view</field>
<field name="model">clinic.department.product</field>
<field name="menu">clinic_menu</field>
</action>

View File

@ -0,0 +1,5 @@
<form model="clinic.department.product">
<field name="product_id"/>
<field name="department_id"/>
<field name="stock_journal_id"/>
</form>

View File

@ -0,0 +1,5 @@
<list model="clinic.department.product">
<field name="product_id"/>
<field name="department_id"/>
<field name="stock_journal_id"/>
</list>

View File

@ -49,16 +49,12 @@
<item string="RD Shop Expense" action="clinic_report_shop"/> <item string="RD Shop Expense" action="clinic_report_shop"/>
<item string="Cycle Item Summary" action="clinic_report_cycle_item"/> <item string="Cycle Item Summary" action="clinic_report_cycle_item"/>
<item string="HD Case Summary" action="clinic_report_hd_case_summary"/> <item string="HD Case Summary" action="clinic_report_hd_case_summary"/>
<!--<item string="Medical Detail" action="clinic_report_medical_detail"/>-->
<!--<item string="HD Case Summary(PDF)" action="clinic_hd_case_print"/>-->
<!--<item string="Medical Summary" action="clinic_report_medical_summary"/>-->
<!--<item string="Recent Patient" action="clinic_report_recent_patient"/>-->
<!--<item string="Discontinue Patient" action="clinic_report_discontinue_patient"/>-->
</item> </item>
<item string="Settings" perm="clinic_settings"> <item string="Settings" perm="clinic_settings">
<item string="Titles" action="clinic_name_title" perm="clinic_name_title"/> <item string="Titles" action="clinic_name_title" perm="clinic_name_title"/>
<item string="Branches" action="clinic_branch" perm="clinic_branch"/> <item string="Branches" action="clinic_branch" perm="clinic_branch"/>
<item string="Departments" action="clinic_department"/> <item string="Departments" action="clinic_department"/>
<item string="Department Products" action="clinic_department_product"/>
<item string="Hospitals" action="clinic_hospital"/> <item string="Hospitals" action="clinic_hospital"/>
<item string="Nationalities" action="clinic_nation"/> <item string="Nationalities" action="clinic_nation"/>
<item string="Clinic Settings" action="clinic_setting"/> <item string="Clinic Settings" action="clinic_setting"/>

View File

@ -2,14 +2,4 @@
<field name="categ_id" position="after"> <field name="categ_id" position="after">
<field name="patient_types"/> <field name="patient_types"/>
</field> </field>
<field name="attributes" position="before">
<field name="departments">
<list>
<field name="department_id"/>
</list>
<form>
<field name="department_id"/>
</form>
</field>
</field>
</inherit> </inherit>

View File

@ -1,8 +1,9 @@
<form model="clinic.setting.account.product" show_company="1"> <form model="clinic.setting.account.product" show_company="1">
<field name="patient_type_id"/> <field name="patient_type_id"/>
<field name="categ_id"/> <field name="categ_id"/>
<field name="ar_credit_id"/> <field name="product_id" domain='[["categ_id","=",categ_id]]'/>
<field name="ar_debit_id"/> <field name="ar_credit_id" domain='[["type","!=","view"]]'/>
<field name="ar_debit_id" domain='[["type","!=","view"]]'/>
<field name="type"/> <field name="type"/>
<field name="company_id" invisible="1"/> <field name="company_id" invisible="1"/>
</form> </form>

View File

@ -1,6 +1,7 @@
<list model="clinic.setting.account.product" show_company="1"> <list model="clinic.setting.account.product" show_company="1">
<field name="patient_type_id"/> <field name="patient_type_id"/>
<field name="categ_id"/> <field name="categ_id"/>
<field name="product_id"/>
<field name="ar_credit_id"/> <field name="ar_credit_id"/>
<field name="ar_debit_id"/> <field name="ar_debit_id"/>
<field name="type"/> <field name="type"/>

View File

@ -11,6 +11,7 @@ from . import cause_chronic
from . import comorbidity from . import comorbidity
from . import department from . import department
from . import department_profile from . import department_profile
from . import department_product
from . import education from . import education
from . import graduation from . import graduation
from . import morbidity from . import morbidity
@ -131,4 +132,3 @@ from . import report_shop
from . import account_tax_component from . import account_tax_component
from . import report_thai_wht_certif from . import report_thai_wht_certif
from . import num2word from . import num2word
from . import department_product

View File

@ -3,10 +3,20 @@ from netforce.model import Model, fields
class DepartmentProduct(Model): class DepartmentProduct(Model):
_name="clinic.department.product" _name="clinic.department.product"
_string="Department Product" _string="Department Product"
_key=['product_id','department_id']
_fields={ _fields={
"product_id": fields.Many2One("product","Product"), "product_id": fields.Many2One("product","Product", required=True),
"department_id": fields.Many2One("clinic.department","Department"), "department_id": fields.Many2One("clinic.department","Working Department", required=True),
"stock_journal_id": fields.Many2One("stock.journal","Stock Journal",required=True),
} }
def get_location(self,department_id,product_id,context={}):
for obj in self.search_browse([]):
if obj.department_id.id==department_id and obj.product_id.id==product_id:
return {
'wh_loc_id': obj.stock_journal_id.location_from_id.id,
'cust_loc_id': obj.stock_journal_id.location_to_id.id,
'journal_id': obj.stock_journal_id.id,
}
DepartmentProduct.register() DepartmentProduct.register()

View File

@ -786,15 +786,20 @@ class HDCase(Model):
if prod_ids and prod.id not in prod_ids or prod.id in prod_exist_ids: if prod_ids and prod.id not in prod_ids or prod.id in prod_exist_ids:
continue continue
prod_exist_ids.append(prod.id) prod_exist_ids.append(prod.id)
#XXX
dpt_prods=get_model('clinic.department.product').get_location(obj.department_id.id,prod.id)
if dpt_prods:
print("get location from menu department products")
wh_loc_id=dpt_prods.get('wh_loc_id')
cust_loc_id=dpt_prods.get('cust_loc_id')
#pick_vals['journal_id']=dpt_prods.get('journal_id')
if not wh_loc_id: if not wh_loc_id:
wh_loc_id=prod.location_id.id wh_loc_id=prod.location_id.id
if not wh_loc_id: if wh_loc_id:
res=get_model("stock.location").search([["type","=","internal"]]) res=get_model("stock.location").search([["type","=","internal"]])
if not res: if not res:
raise Exception("Warehouse not found") raise Exception("Warehouse not found")
wh_loc_id=res[0] wh_loc_id=res[0]
line_vals={ line_vals={
"product_id": prod.id, "product_id": prod.id,
"qty": line.qty, "qty": line.qty,
@ -802,9 +807,6 @@ class HDCase(Model):
"location_from_id": wh_loc_id, "location_from_id": wh_loc_id,
"location_to_id": cust_loc_id, "location_to_id": cust_loc_id,
} }
#XXX wharehouse in profile product
if prod.location_id:
line_vals['location_from_id']=prod.location_id.id
pick_vals["lines"].append(("create",line_vals)) pick_vals["lines"].append(("create",line_vals))
if not pick_vals["lines"]: if not pick_vals["lines"]:
return { return {

View File

@ -68,6 +68,7 @@ class Shop(Model):
"payment_lines": fields.One2Many("clinic.shop.payment","shop_id","Payment Lines"), "payment_lines": fields.One2Many("clinic.shop.payment","shop_id","Payment Lines"),
} }
_order="date desc"
def _get_shop_categs(self,context={}): def _get_shop_categs(self,context={}):
st=get_model("clinic.setting").browse(1) st=get_model("clinic.setting").browse(1)