TIP: You can type at any time to perform a new search.
Medical Prescription Sales Processes
medical_prescription_sale · OCA/vertical-medical
- Repository
- OCA/vertical-medical · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Medical
- Folder size
- 0.06 MB
- License
- GPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://laslabs.com
- Last tracking update
- 2026-08-07 07:17:46
- Authors
- Odoo Community Association (OCA), LasLabs, Odoo Medical Team
- Maintainers
- Odoo Community Association (OCA), LasLabs, Odoo Medical Team
- Committers
- Pedro M. Baeza, Jordi Ballester, Dave Lasley
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
Code Analysis ⓘ
Views touched (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_case_form_view_oppor |
crm.lead.form | crm.lead | form | Inherits crm.crm_case_form_view_oppor |
medical_prescription_order_line_form_view |
Prescription Order Line | medical.prescription.order.line | form | Inherits medical_prescription.medical_prescription_order_line_form_view |
medical_prescription_order_line_search_view |
Prescription Order Line Search | medical.prescription.order.line | search | Inherits medical_prescription.medical_prescription_order_line_search_view |
medical_prescription_order_line_tree_view |
Prescription Order Lines | medical.prescription.order.line | tree | Inherits medical_prescription.medical_prescription_order_line_tree_view |
medical_rx_sale_wizard_view_form |
medical.rx.sale.wizard.view.form | rx.sale.wizard | form | New |
medical_sale_wizard_view_form |
medical.sale.wizard.view.form | medical.sale.wizard | form | New |
view_order_form |
sale.order.form | sale.order | form | Inherits sale.view_order_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (10)
New fields (5)
-
is_prescriptionBooleancompute='_compute_prescription_order_and_patient_ids'default=Falsereadonly=True -
patient_idsMany2many → medical.patientcomodel_name='medical.patient'compute='_compute_prescription_order_and_patient_ids'readonly=Truestring='Patients' -
pharmacy_idMany2one → medical.pharmacycomodel_name='medical.pharmacy'string='Pharmacy' -
prescription_order_idsMany2many → medical.prescription.ordercomodel_name='medical.prescription.order'compute='_compute_prescription_order_and_patient_ids'readonly=Truestring='Prescriptions' -
prescription_order_line_idsMany2many → medical.prescription.order.linecomodel_name='medical.prescription.order.line'string='Prescription Lines'
No public methods.
New fields (1)
-
is_prescriptionBooleandefault=_compute_default_is_prescriptionreadonly=True
-
makeOrder(self)@api.multiThis function creates Quotation on given case. :return: Dictionary value of created sales order. :rtype: dict
New fields (2)
-
is_controlledBooleanhelp='Check this if the medicament is a controlled substance'string='Controlled Substance' -
is_prescriptionBooleanhelp='Check this if a prescription is required for this medicament'string='Prescription Required'
No public methods.
New fields (3)
-
receive_dateDatetimedefault=fields.Datetime.nowhelp='When the Rx was received'string='Receipt Date' -
receive_methodSelectiondefault='fax'help='How the Rx was received'string='Receipt Method' args: [('online', 'E-Prescription'), ('phone', 'Phoned In'), ('fax', 'Fax'), ('mail', 'Physical Mail'), ('transfer', 'Transferred In')] -
verify_methodSelectiondefault='none'help='Method of Rx verification' args: [('none', 'Not Verified'), ('doctor_phone', 'Called Doctor')]
No public methods.
New fields (12)
-
can_dispenseBooleancompute='_compute_can_dispense_and_qty'default=Falsehelp='Can this prescription be dispensed?'readonly=True -
can_dispense_qtyFloatcompute='_compute_can_dispense_and_qty'default=0.0help='Amount that can be dispensed (using medicine dosage)' -
cancelled_dispense_qtyFloatcompute='_compute_dispensings_and_orders'default=0.0help='Dispense qty cancelled (using medicine dosage)'readounly=True -
dispensed_idsOne2many → procurement.ordercompute='_compute_dispensings_and_orders'readonly=True args: 'procurement.order' -
dispensed_qtyFloatcompute='_compute_dispensings_and_orders'default=0.0help='Amount already dispensed (using medicine dosage)'readonly=True -
exception_dispense_qtyFloatcompute='_compute_dispensings_and_orders'default=0.0help='Qty of dispense exceptions (using medicine dosage)'readounly=True -
pending_dispense_qtyFloatcompute='_compute_dispensings_and_orders'default=0.0help='Amount pending dispense (using medicine dosage)'readounly=True -
receive_dateDatetimedefault=fields.Datetime.nowhelp='When the Rx was received'string='Receipt Date' -
receive_methodSelectiondefault='fax'help='How the Rx was received'string='Receipt Method' args: [('online', 'E-Prescription'), ('phone', 'Phoned In'), ('fax', 'Fax'), ('mail', 'Physical Mail'), ('transfer', 'Transferred In')] -
sale_order_idsMany2many → sale.ordercomodel_name='sale.order'compute='_compute_dispensings_and_orders'readonly=True -
sale_order_line_idsOne2many → sale.order.linecomodel_name='sale.order.line'inverse_name='prescription_order_line_id'readonly=True -
verify_methodSelectiondefault='none'help='Method of Rx verification' args: [('none', 'Not Verified'), ('doctor_phone', 'Called Doctor')]
No public methods.
New fields (8)
-
order_idMany2one → medical.sale.wizardcomodel_name='medical.sale.wizard'readonly=Truerequired=Truestring='Order' -
prescription_order_line_idMany2one → medical.prescription.order.linecomodel_name='medical.prescription.order.line'string='Prescription Line' -
price_subtotalFloatcompute='_compute_all_amounts'digits_compute=dp.get_precision('Account')required=True -
price_unitFloatdigits_compute=dp.get_precision('Product Price')required=True args: 'Unit Price' -
product_idMany2one → product.productcomodel_name='product.product'string='Product' -
product_uomMany2one → product.uomcomodel_name='product.uom'string='Unit of Measure' -
product_uom_qtyFloatdigits_compute=dp.get_precision('Product UoM')required=True args: 'Quantity' -
sequenceInteger
No public methods.
New fields (24)
-
amount_untaxedFloatcompute='_compute_all_amounts'digits_compute=dp.get_precision('Account') -
client_order_refCharstring='Order Reference' -
company_idMany2one → res.companycomodel_name='res.company'required=Truestring='Company' -
currency_idMany2one → res.currencycomodel_name='res.currency'string='Currency' -
date_orderDatestring='Order Date' -
fiscal_positionMany2one → account.fiscal.positioncomodel_name='account.fiscal.position'string='Fiscal Position' -
line_cntIntegercompute='_compute_line_cnt'string='Order Line Count' -
noteText -
order_lineOne2many → medical.sale.line.wizardcomodel_name='medical.sale.line.wizard'inverse_name='order_id'required=Truestring='Order Lines' -
originChar -
partner_idMany2one → res.partnercomodel_name='res.partner'required=Truestring='Customer' -
partner_invoice_idMany2one → res.partnercomodel_name='res.partner'string='Invoice Partner' -
partner_shipping_idMany2one → res.partnercomodel_name='res.partner'string='Ship To' -
patient_idMany2one → medical.patientcomodel_name='medical.patient'help='Patient (used for defaults when creating sale lines)'required=Truestring='Patient' -
payment_termMany2one → account.payment.termcomodel_name='account.payment.term'string='Payment Term' -
pharmacy_idMany2one → medical.pharmacycomodel_name='medical.pharmacy'required=Truestring='Pharmacy' -
prescription_order_idMany2one → medical.prescription.ordercomodel_name='medical.prescription.order'readonly=Truerequired=Truestring='Prescription' -
prescription_wizard_idMany2one → medical.rx.sale.wizardcomodel_name='medical.rx.sale.wizard'default=_compute_default_sessioninverse_name='sale_wizard_ids'readonly=True -
pricelist_idMany2one → product.pricelistcomodel_name='product.pricelist'required=Truestring='Pricelist' -
project_idMany2one → account.analytic.accountcomodel_name='account.analytic.account'string='Project' -
section_idMany2one → crm.case.sectioncomodel_name='crm.case.section'string='Sales Team' -
stateSelectiondefault='new'readonly=True args: [('new', _('Not Started')), ('start', _('Started')), ('done', _('Completed'))] -
user_idMany2one → res.userscomodel_name='res.users'readonly=Truerequired=Truestring='Salesperson' -
warehouse_idMany2one → stock.warehousecomodel_name='stock.warehouse'required=Truestring='Warehouse'
-
next_wizard(self)@api.multi
New fields (7)
-
date_orderDatetimedefault=fields.Datetime.nowhelp=_('Date for the new orders')required=True -
pharmacy_idMany2one → medical.pharmacycomodel_name='medical.pharmacy'help=_('Pharmacy to dispense orders from')required=Truestring='Pharmacy' -
prescription_line_idsMany2many → medical.prescription.order.linecomodel_name='medical.prescription.order.line'default=_compute_default_sessionreadonly=Truerequired=Truestring='Prescription' -
sale_wizard_idsOne2many → medical.sale.wizardcomodel_name='medical.sale.wizard'help=_('Orders to create when wizard is completed')inverse_name='prescription_wizard_id'string='Orders' -
split_ordersSelectiondefault='patient'help=_('How to split the new orders')required=True args: [('partner', 'By Customer'), ('patient', 'By Patient'), ('all', 'By Rx Line')] -
stateSelectiondefault='new'readonly=True args: [('new', _('Not Started')), ('start', _('Started')), ('partial', _('Open')), ('done', _('Completed'))] -
warehouse_idMany2one → stock.warehousecomodel_name='stock.warehouse'required=Truestring='Warehouse'
-
create_sale_wizards(self)@api.multi -
do_rx_sale_conversions(self)@api.multi -
next_wizard(self)@api.model
New fields (4)
-
patient_idsMany2many → medical.patientcomodel_name='medical.patient'compute='_compute_patient_ids'readonly=Truestring='Patients' -
pharmacy_idMany2one → medical.pharmacycomodel_name='medical.pharmacy'string='Pharmacy' -
prescription_order_idsMany2many → medical.prescription.ordercomodel_name='medical.prescription.order'compute='_compute_prescription_order_ids'readonly=Truestring='Prescriptions' -
prescription_order_line_idsMany2many → medical.prescription.order.linecomodel_name='medical.prescription.order.line'compute='_compute_prescription_order_ids'readonly=Truestring='Prescription Lines'
No public methods.
New fields (4)
-
dispense_qtyFloatcompute='_compute_dispense_qty'default=0.0readonly=True -
medication_idMany2one → medical.patient.medicationcomodel_name='medical.patient.medication'related='prescription_order_line_id.medical_medication_id'string='Medication' -
patient_idMany2one → medical.patientcomodel_name='medical.patient'related='prescription_order_line_id.patient_id'string='Patient' -
prescription_order_line_idMany2one → medical.prescription.order.linecomodel_name='medical.prescription.order.line'string='Prescription Line'
No public methods.