Technical reference
Generated from the installed modules of the 18.0 series: every model, field, access right, record rule, setting, data record and web route the Rx Tracking modules declare. It is rebuilt with each release; the developer overview says what is supported and what is internal.
Modules
| Module | Name | Version | Depends on | Installs automatically |
|---|---|---|---|---|
aglow_rx_tracking | Rx Tracking (DSCSA) | 18.0.0.2.0 | account, account_add_gln, barcodes_gs1_nomenclature, mail, payment, portal, product_expiry, purchase_stock, sale_stock, stock | no |
aglow_rx_tracking_barcode | Rx Tracking (DSCSA) - Barcode | 18.0.1.0.0 | aglow_rx_tracking, stock_barcode, stock_barcode_product_expiry | no |
aglow_rx_tracking_quality | Rx Tracking (DSCSA) - Suspect Product Investigations | 18.0.1.0.0 | aglow_rx_tracking, quality_control | no |
aglow_rx_tracking_3pl | Rx Tracking (DSCSA): 3PL and title model | 18.0.1.0.0 | aglow_rx_tracking | no |
aglow_rx_tracking_3pl_barcode | Rx Tracking (DSCSA): 3PL Barcode bridge | 18.0.1.0.0 | aglow_rx_tracking_3pl, aglow_rx_tracking_barcode | yes |
aglow_rx_tracking_3pl_quality | Rx Tracking (DSCSA): 3PL Quality bridge | 18.0.1.0.0 | aglow_rx_tracking_3pl, aglow_rx_tracking_quality | yes |
Models
The models the modules declare, by module. Wizards (transient models) are listed separately.
Rx Tracking (DSCSA)
| Model | Description | Kind | Fields |
|---|---|---|---|
dscsa.archive.job | DSCSA S3 Archive Job | stored | 24 |
dscsa.discrepancy | DSCSA Receiving Discrepancy | stored | 41 |
dscsa.document | DSCSA Transaction Document | stored | 50 |
dscsa.document.history | DSCSA Transaction History Hop | stored | 23 |
dscsa.document.line | DSCSA Document Line | stored | 7 |
dscsa.epcis.import | Supplier EPCIS File | stored | 45 |
dscsa.ledger.check | DSCSA Ledger vs Stock | stored | 8 |
dscsa.license | Trading Partner License | stored | 19 |
dscsa.package | DSCSA Package | stored | 37 |
dscsa.retention.export | DSCSA Retention Export | stored | 15 |
dscsa.trace.request | DSCSA Trace Request | stored | 34 |
report.aglow_rx_tracking.report_dscsa_t3 | DSCSA T3 Report | abstract | 0 |
Rx Tracking (DSCSA): 3PL and title model
| Model | Description | Kind | Fields |
|---|---|---|---|
dscsa.facility.event | DSCSA Facility Event (FDA Report Update) | stored | 13 |
dscsa.fda.report | DSCSA FDA Annual Report (Facility) | stored | 13 |
dscsa.gate.log | DSCSA Gate Log (3PL) | stored | 12 |
dscsa.jurisdiction | DSCSA Jurisdiction (3PL Licensing) | stored | 10 |
dscsa.ledger.owner.check | DSCSA Ledger vs Stock per Owner | stored | 9 |
dscsa.owner.export | DSCSA Owner Records Export (3PL) | stored | 18 |
dscsa.owner.hold | DSCSA Owner Hold (3PL) | stored | 17 |
dscsa.owner.instruction | DSCSA Owner Instruction | stored | 13 |
dscsa.owner.notice | DSCSA Owner Notice (3PL) | stored | 16 |
dscsa.owner.order | DSCSA Owner Order (3PL) | stored | 19 |
dscsa.owner.order.line | DSCSA Owner Order Line | stored | 11 |
dscsa.owner.profile | DSCSA Owner Profile (3PL Client) | stored | 41 |
dscsa.owner.report.mixin | DSCSA Owner Report (3PL) | abstract | 1 |
dscsa.title.transfer | DSCSA Title Transfer (in place) | stored | 35 |
dscsa.title.transfer.line | DSCSA Title Transfer Line | stored | 8 |
Odoo models we extend
| Model | Description | Extended by | Fields added |
|---|---|---|---|
product.template | Product | aglow_rx_tracking | 9 |
purchase.order | Purchase Order | aglow_rx_tracking, aglow_rx_tracking_3pl | 3 |
quality.alert | Quality Alert | aglow_rx_tracking_quality, aglow_rx_tracking_3pl_quality | 41 |
res.company | Companies | aglow_rx_tracking, aglow_rx_tracking_quality, aglow_rx_tracking_3pl | 29 |
res.partner | Contact | aglow_rx_tracking, aglow_rx_tracking_3pl | 10 |
stock.location | Inventory Locations | aglow_rx_tracking | 1 |
stock.lot | Lot/Serial | aglow_rx_tracking, aglow_rx_tracking_quality, aglow_rx_tracking_3pl, aglow_rx_tracking_3pl_quality | 12 |
stock.move | Stock Move | aglow_rx_tracking, aglow_rx_tracking_3pl | 6 |
stock.move.line | Product Moves (Stock Move Line) | aglow_rx_tracking, aglow_rx_tracking_3pl | 2 |
stock.picking | Transfer | aglow_rx_tracking, aglow_rx_tracking_barcode, aglow_rx_tracking_3pl, aglow_rx_tracking_3pl_barcode | 31 |
stock.quant | Quants | aglow_rx_tracking, aglow_rx_tracking_3pl | 3 |
stock.return.picking.line | Return Picking Line | aglow_rx_tracking | 4 |
stock.scrap | Scrap | aglow_rx_tracking, aglow_rx_tracking_3pl | 5 |
stock.warehouse | Warehouse | aglow_rx_tracking, aglow_rx_tracking_3pl | 3 |
Odoo models whose behaviour the modules extend without adding fields:
| Model | Description | Extended by | Methods |
|---|---|---|---|
barcode.nomenclature | Barcode Nomenclature | aglow_rx_tracking_barcode | parse_gs1_rule_pattern |
ir.actions.report | Report Action | aglow_rx_tracking | retrieve_attachment |
ir.attachment | Attachment | aglow_rx_tracking, aglow_rx_tracking_3pl | write |
payment.transaction | Payment Transaction | aglow_rx_tracking | create |
product.product | Product Variant | aglow_rx_tracking, aglow_rx_tracking_barcode, aglow_rx_tracking_3pl | name_search, write |
sale.order | Sales Order | aglow_rx_tracking | action_confirm |
Wizards
| Wizard | Description | Module |
|---|---|---|
dscsa.client.list.wizard | DSCSA Client List per Facility | aglow_rx_tracking_3pl |
dscsa.document.publish.wizard | Publish an Owner's DSCSA Document to the Buyer | aglow_rx_tracking_3pl |
dscsa.epcis.import.wizard | Import Supplier EPCIS File | aglow_rx_tracking |
dscsa.inventory.serials.line | DSCSA Serials of a Counted Quantity | aglow_rx_tracking |
dscsa.inventory.serials.wizard | DSCSA Serials of an Inventory Adjustment | aglow_rx_tracking |
dscsa.legal.hold.wizard | DSCSA Legal Hold | aglow_rx_tracking |
dscsa.lot.quarantine.owner.line | Owner Release Instruction (Release Window) | aglow_rx_tracking_3pl |
dscsa.lot.quarantine.wizard | Quarantine or Release DSCSA Lots | aglow_rx_tracking |
dscsa.opening.balance.wizard | DSCSA Opening Balance | aglow_rx_tracking |
dscsa.owner.data.wizard | Owner Receipt: Supplier Data or Owner Confirmation | aglow_rx_tracking_3pl |
dscsa.owner.hold.release | Release Owner Hold | aglow_rx_tracking_3pl |
dscsa.owner.portal.access | DSCSA Owner Portal Access | aglow_rx_tracking_3pl |
dscsa.owner.portal.access.line | DSCSA Owner Portal Access: one contact | aglow_rx_tracking_3pl |
dscsa.owner.report.csv | DSCSA Owner Report CSV (3PL) | aglow_rx_tracking_3pl |
dscsa.recall.consignees | Recall Consignees (3PL Owner) | aglow_rx_tracking_3pl |
dscsa.recall.consignees.line | Recall Consignee (3PL Owner) | aglow_rx_tracking_3pl |
dscsa.record.ts.wizard | Record Transaction Statement | aglow_rx_tracking |
dscsa.scan.wizard | Scan DSCSA Serials | aglow_rx_tracking |
dscsa.send.owner.documents | Send DSCSA Documents to the Owner | aglow_rx_tracking_3pl |
dscsa.title.import.wizard | Title Transfer: Owner's File or Seller's Statement | aglow_rx_tracking_3pl |
dscsa.title.select.serials | DSCSA Title Transfer: Select Serials | aglow_rx_tracking_3pl |
Extension points
The supported override points. Everything else (other methods whose name starts with _, context keys, module constants) is internal and may change. Each point has a contract test in the modules' test suites that proves its default and an override.
| Point | Where | What it does | Since | Contract tests |
|---|---|---|---|---|
| The party a document names as us | dscsa.document._dscsa_own_party() | Returns the partner a DSCSA document names as us: the seller of an outbound document, the buyer of an inbound one. Default: the company's partner. | 18.0.0.2.0 | TestExtensionSeams.test_c1_own_party_is_company_partnerTestExtensionSeams.test_c1_seam_names_us_everywhere |
| The owner of a returned unit | dscsa.package._dscsa_unit_owner() | Returns the owner of a unit that a customer return verifies or rejects; the return moves are grouped by it and carry it as their owner. Default: no owner. | 18.0.0.2.0 | TestExtensionSeamReturns.test_c4_unit_owner_emptyTestExtensionSeamReturns.test_c4_seam_groups_and_owns_the_moves |
| The parties a supplier EPCIS file is checked against | dscsa.epcis.import._dscsa_expected_parties(picking) | Returns the seller and buyer a supplier EPCIS file must name for a receipt, as {"seller": (GLNs, name), "buyer": (GLNs, name)}. Default: the vendor's GLNs and the company's GLNs. | 18.0.0.2.0 | TestExtensionSeams.test_c5_expected_parties_defaultTestExtensionSeams.test_c5_seam_sets_the_checked_parties |
| The document fields a portal user may read | dscsa.document._dscsa_portal_readable_fields() | Returns the set of DSCSA document fields a portal user may read. Default: the core's fixed list. | 18.0.0.2.0 | TestExtensionSeams.test_c7b_portal_fields_defaultTestExtensionSeams.test_c7b_seam_sets_the_portal_fields |
| Optional input keys of the EPCIS writer | aglow_rx_tracking.tools.epcis_writer.build_shipping_epcis(data)keys: sbdh_sender, extra_sources, extra_destinations, commission_location | Optional input keys of the outbound EPCIS writer: another SBDH sender, extra source and destination parties, and a commissioning location for restated events. Without them the output is byte-identical to the writer's default. | 18.0.0.2.0 | TestExtensionSeamsEpcis.test_c8_absent_keys_byte_identicalTestExtensionSeamsEpcis.test_c8_keys_writtenTestExtensionSeamsEpcis.test_c8_keys_validated |
| What the opening balance counts as room for new packages | dscsa.package._dscsa_room_quant_domain(product, lot)dscsa.package._dscsa_room_package_domain(product, lot) | Return the domains of the stock and of the packages counted when the opening balance checks that there is room for new packages of a product and lot. Default: all the company's stock of that product and lot. | 18.0.0.2.0 | TestExtensionSeams.test_c9_room_domains_defaultTestExtensionSeams.test_c9_seam_sets_what_is_counted |
| Possessing parties read from a supplier EPCIS file | aglow_rx_tracking.tools.epcis_reader.parse_epcis(data)keys: ship_from_possessor_gln, ship_to_possessor_gln | Output keys of the EPCIS reader: each shipment also carries the ship-from and ship-to possessing parties (a GLN, or None). Additive keys only; no new warnings. | 18.0.0.2.0 | TestExtensionSeamsEpcis.test_c10_possessing_party_keys |
| Columns and values of the package-ledger CSV | dscsa.retention.export._dscsa_ledger_columns()dscsa.retention.export._dscsa_ledger_row_extra(line, package) | Return the column list of the package-ledger CSV (retention export and trace response) and the extra values of one row. Default: the core's columns and no extra values. | 18.0.0.2.0 | TestExtensionSeams.test_c11_default_identical_csvTestExtensionSeams.test_c11_seam_sets_columns_and_values |
| Is the 3PL switch on | res.company._dscsa_3pl_on() | True when the company's Third-party logistics (3PL) setting is on; False for an empty recordset. Gate every operational 3PL override with it and return super() when it is off. | 18.0.1.0.0 | TestThreePLInstall.test_defaultsTestThreePLCommon.test_owner_receipt_helper |
| Has the company ever had an owner | res.company._dscsa_3pl_used() | True once the company has had an owner profile; False for an empty recordset. Gate overrides that separate or present owner data with it. | 18.0.1.0.0 | TestThreePLInstall.test_defaultsTestThreePLCommon.test_owner_receipt_helper |
| The active owner profile of a partner | res.company._dscsa_3pl_profile(partner) | The active owner profile of the partner's commercial partner in this company, or an empty recordset (no partner, the company's own partner, or no active profile). Accepts a record or an id. | 18.0.1.0.0 | TestThreePLInstall.test_owner_needs_profile_not_company |
| The owner key of stock | aglow_rx_tracking_3pl.models.dscsa_3pl_common.owner_key(partner, company) | 0 for own stock (no owner, or the company's own partner), otherwise the owner partner's id. Compare owners by their keys, never by raw records. | 18.0.1.0.0 | TestThreePLCommon.test_company_partner_is_own |
| Owner checks before a transfer is validated | stock.picking._dscsa_3pl_done_errors(final) | Every owner check before a 3PL transfer is validated, as a list of messages (empty = pass). It runs for every caller, before Odoo's own validation; an extension appends its messages to super()'s list. | 18.0.1.0.0 | TestThreePLHooks.test_done_errors_extension |
More reference pages
- Security: groups, access rights and record rules.
- Settings: the settings fields and the company fields behind them.
- Data records: scheduled jobs, sequences, email templates, activity types, reports and server actions.
- Routes: the web routes of the portals.
- Configuration reference: All settings, Statuses, Menus.