{{ t.notifications?.loading || 'Loading notifications...' }}
{{ notificationsPreview.error }}
{{ t.notifications?.empty || 'No notifications.' }}
-
{{ notificationTitle(item) }}
{{ formatDate(item.created_at) }}
{{ globalError }}
{{ t.cards.pendingQuotes || 'Pending Quotes' }}
{{ t.cards.totalSpend || 'Total Spend' }}
{{ t.cards.totalAwardedVolumeKg || 'Total Awarded Volume (kg)' }}
{{ t.cards.suppliers }}
{{ t.cards.consignees }}
{{ t.sections?.deadlinesComingUp || 'Deadlines Coming Up' }}
{{ t.sections?.transportModeSplitAwarded || 'Transport Mode Split (Awarded)' }}
{{ t.dashboardShipper?.modeSplitAwardedHint || 'Based on awarded shipments and awarded spend.' }}
{{ t.sections?.supplierRanking || 'Supplier Ranking' }}
{{ t.sections?.topLanes || 'Top Lanes' }}
{{ t.sections.dashboardOpenRfqs || 'Open RFQs' }}
| {{ t.tables.rfqReference }} | {{ t.tables.rfqTitle }} | {{ t.tables.rfqRoute }} | {{ t.tables.rfqDeadline }} | {{ t.tables.rfqStatus }} |
|---|---|---|---|---|
| {{ row.reference_no }} | {{ row.title || '-' }} | {{ row.origin_name }} → {{ row.destination_name }} | {{ formatDate(row.submission_deadline) }} | open |
{{ t.tables.noData }}
{{ t.sections.dashboardPendingQuotes || 'Pending Quotes' }}
| {{ t.tables.quoteRfq }} | {{ t.tables.quoteSupplier }} | {{ t.tables.quoteAmount }} | {{ t.tables.quoteStatus || 'Status' }} |
|---|---|---|---|
| {{ row.rfq_reference_no || row.rfq_id }} | {{ row.supplier_name || '-' }} | {{ row.currency_code }} {{ row.total_amount }} | open |
{{ t.tables.noData }}
{{ t.sections.dashboardAwardedQuotes || 'Awarded Quotes' }}
| {{ t.tables.quoteRfq }} | {{ t.tables.quoteSupplier }} | {{ t.tables.quoteAmount }} | {{ t.tables.quoteStatus || 'Status' }} |
|---|---|---|---|
| {{ row.rfq_reference_no || row.rfq_id }} | {{ row.supplier_name || '-' }} | {{ row.currency_code }} {{ row.total_amount }} | {{ t.i18nCleanup.awarded || 'Awarded' }} |
{{ t.tables.noData }}
{{ t.sections?.dashboardActiveShipments || 'Active Shipments' }}
| {{ t.tables.rfqRoute || 'Route' }} | {{ t.tables.supplierName || 'Supplier' }} | {{ t.tables.rfqMode || 'Mode' }} | {{ t.shipments?.completionLabel || 'Completion' }} | {{ t.tables.templateUpdated || 'Updated' }} |
|---|---|---|---|---|
| {{ row.origin_name || '-' }} → {{ row.destination_name || '-' }} | {{ row.supplier_name || '-' }} | {{ shipmentRequestForLabel(row.request_for) }} | {{ shipmentCompletionLabel(row) }} | {{ formatDate(row.updated_at) }} |
{{ t.tables.noData }}
{{ rfqEditId ? (t.rfqWizard?.editingRfq || 'Editing RFQ') : (t.rfqWizard?.newRfq || 'New RFQ') }}
{{ rfqEditReferenceNo }}{{ t.forms?.rfqPackagingExtractionCardTitle || 'Extract from document' }}
{{ t.forms?.rfqPackagingExtractionCardText || 'Upload one document and we prefill RFQ fields with confidence-based suggestions.' }}
{{ t.i18nCleanup.rfq_basics }}
{{ t.i18nCleanup.route || 'Route' }}
{{ t.forms?.rfqPickupOriginCardTitle || 'Pick-up Location / Origin' }}
{{ t.forms?.rfqDeliveryDestinationCardTitle || 'Delivery Location / Destination' }}
{{ t.i18nCleanup.schedule || 'Schedule' }}
{{ t.i18nCleanup.supplier_evaluation }}
{{ rfqSupplierSelectionSummary() }}
{{ rfqSelectionCriteriaSummary() }}
{{ t.forms?.rfqShipmentDetailsTitle || 'Shipment Details' }}
{{ rfqChargeRequirementsSummary() }}
{{ t.rfqWizard?.step_documents || 'Documents & Remarks' }}
{{ t.rfqWizard?.reviewTitle || 'Review your RFQ' }}
{{ t.rfqWizard?.reviewBasicsTitle || 'Basics' }}
{{ t.rfqWizard?.reviewRouteTitle || 'Route' }}
{{ t.rfqWizard?.reviewScheduleTitle || 'Schedule & Suppliers' }}
{{ t.rfqWizard?.reviewShipmentTitle || 'Shipment Details' }}
{{ t.rfqWizard?.reviewTransportTitle || 'Transport Requirements' }}
{{ t.rfqWizard?.reviewPharmaTitle || 'Pharma Requirements' }}
{{ t.rfqWizard?.reviewCommercialTitle || 'Commercial Rules' }}
{{ t.rfqWizard?.reviewDocumentsTitle || 'Documents & Remarks' }}
{{ tr('tables.sectionTitleRfqs', 'RFQ Overview') }}
{{ t.filters?.filter || 'Filter' }} {{ rfqsActiveFilterCount() }}
{{ rfqsRequestForFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ rfqsVisibleColumnCount() }}/{{ rfqsColumnTotalCount() }}
| {{ t.tables.rfqReference }} | {{ t.tables.rfqTitle }} | {{ t.tables.rfqMode }} | {{ t.tables.rfqRoute }} | {{ t.tables.rfqStatus }} | {{ t.tables.rfqDeadline }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|
| {{ row.reference_no }} | {{ row.title || '-' }} | {{ rfqModeWithLoadTypeLabel(row.request_for, row.load_type) }} | {{ row.origin_name }} → {{ row.destination_name }} | {{ rfqDisplayStatusValue(row) }} | {{ formatDate(row.submission_deadline) }} |
{{ t.tables.noData }}
{{ t.i18nCleanup.loading_rfq_details }}
{{ rfqDetailView.item.reference_no || rfqDetailView.item.id }}
{{ rfqDetailView.item.status || 'open' }}{{ rfqDetailView.item.title }}
- {{ supplierItem.supplier_name || supplierItem.supplier_id }} {{ quoteDecisionStatusText(supplierItem.supplier_assignment_status || supplierItem.quote_status) }}
{{ t.i18nCleanup.all_assigned_suppliers }}
{{ t.i18nCleanup.shipment }}
- {{ t.i18nCleanup.stackable }}
- {{ yesNoLabel(rfqDetailView.item.shipment.is_stackable !== false) }}
- {{ t.i18nCleanup.packaging }}
- {{ rfqDetailView.item.shipment.packaging_type || '-' }}
- {{ t.i18nCleanup.commodity }}
- {{ rfqDetailView.item.shipment.commodity || '-' }}
- {{ t.i18nCleanup.hs_code }}
- {{ rfqDetailView.item.shipment.hs_code || '-' }}
- {{ t.i18nCleanup.volume_cbm }}
- {{ rfqDetailShipmentTotals().total_volume_cbm ?? rfqDetailView.item.shipment.volume_cbm ?? '-' }}
- {{ t.i18nCleanup.chargeable_weight_kg }}
- {{ rfqDetailView.item.shipment.chargeable_weight_kg ?? '-' }}
- {{ t.i18nCleanup.chargeable_weight_basis }}
- {{ rfqDetailView.item.shipment.chargeable_weight_basis || '-' }}
- {{ t.i18nCleanup.temperature }}
- {{ rfqDetailView.item.shipment.temperature_requirement || '-' }}
- {{ t.i18nCleanup.ocean_container }}
- {{ rfqDetailView.item.shipment.ocean_container_type || '-' }}
- {{ t.forms?.rfqAirCargoSecurityStatusLabel || 'Air Cargo Security Status' }}
- {{ rfqAirCargoSecurityStatusLabel(rfqDetailView.item.shipment.air_cargo_security && rfqDetailView.item.shipment.air_cargo_security.security_status) }}
- {{ t.forms?.rfqAirCargoScreeningRequiredLabel || 'Screening required before uplift' }}
- {{ yesNoLabel(rfqDetailView.item.shipment.air_cargo_security && rfqDetailView.item.shipment.air_cargo_security.screening_required) }}
- {{ t.forms?.rfqAirCargoSecurityNotesLabel || 'Air cargo security notes' }}
- {{ rfqDetailView.item.shipment.air_cargo_security && rfqDetailView.item.shipment.air_cargo_security.security_notes ? rfqDetailView.item.shipment.air_cargo_security.security_notes : '-' }}
- {{ t.forms?.rfqRemarks || 'RFQ Remarks' }}
- {{ (rfqDetailView.item.shipment && rfqDetailView.item.shipment.remarks) || rfqDetailView.item.remarks || '-' }}
{{ t.i18nCleanup.dangerous_goods }}
- {{ t.i18nCleanup.un_number }}
- {{ rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.un_number ? rfqDetailView.item.shipment.dangerous_goods.un_number : '-' }}
- {{ t.i18nCleanup.class }}
- {{ rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.class ? rfqDetailView.item.shipment.dangerous_goods.class : '-' }}
- {{ t.i18nCleanup.packaging_group }}
- {{ rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.packaging_group ? rfqDetailView.item.shipment.dangerous_goods.packaging_group : '-' }}
- {{ t.i18nCleanup.limited_quantity }}
- {{ yesNoLabel(rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.limited_quantity) }}
- {{ t.i18nCleanup.lithium_battery }}
- {{ yesNoLabel(rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.lithium_battery) }}
- {{ t.i18nCleanup.emergency_contact }}
- {{ rfqDetailView.item.shipment.dangerous_goods && rfqDetailView.item.shipment.dangerous_goods.emergency_contact ? rfqDetailView.item.shipment.dangerous_goods.emergency_contact : '-' }}
- {{ t.i18nCleanup.msds_attachment }}
- {{ t.i18nCleanup.dgd_attachment }}
{{ t.forms?.rfqSupportingDocumentsLabel || 'Supporting Documents for Suppliers' }}
{{ t.i18nCleanup.transport_requirements }}
- {{ t.i18nCleanup.airline_preferences }}
- {{ rfqDetailView.item.transport_requirements.airline_preferences || '-' }}
- {{ t.publicQuote?.routing || 'Routing' }}
- {{ rfqDetailView.item.transport_requirements.routing || '-' }}
- {{ t.publicQuote?.flightDetails || 'Flight Details' }}
- {{ rfqDetailView.item.transport_requirements.flight_details || '-' }}
- {{ t.i18nCleanup.direct_flight_only_2 }}
- {{ yesNoLabel(rfqDetailView.item.transport_requirements.direct_flight_only) }}
- {{ t.i18nCleanup.carrier_preferences }}
- {{ rfqDetailView.item.transport_requirements.carrier_preferences || '-' }}
- {{ t.i18nCleanup.free_time }}
- {{ rfqDetailView.item.transport_requirements.free_time_requirements || '-' }}
- {{ t.i18nCleanup.soc_coc }}
- {{ rfqDetailView.item.transport_requirements.container_ownership || '-' }}
- {{ t.i18nCleanup.reefer_temp_c }}
- {{ rfqDetailView.item.transport_requirements.reefer_temperature_c ?? '-' }}
- {{ t.i18nCleanup.adr_required }}
- {{ yesNoLabel(rfqDetailView.item.transport_requirements.adr_required) }}
- {{ t.i18nCleanup.tail_lift_required_2 }}
- {{ yesNoLabel(rfqDetailView.item.transport_requirements.tail_lift_required) }}
- {{ t.i18nCleanup.truck_type }}
- {{ rfqDetailView.item.transport_requirements.truck_type || '-' }}
- {{ t.i18nCleanup.road_set_point_c }}
- {{ rfqDetailView.item.transport_requirements.road_temperature_set_point_c ?? '-' }}
- {{ t.publicQuote?.customsClearanceRequired || 'Customs clearance required' }}
- {{ yesNoLabel(rfqDetailView.item.transport_requirements.cross_border_customs_required) }}
{{ t.i18nCleanup.pharma_requirements }}
- {{ t.i18nCleanup.lane_validation }}
- {{ yesNoLabel(rfqDetailView.item.pharma_requirements.lane_validation_required) }}
- {{ t.i18nCleanup.gdp_compliant }}
- {{ yesNoLabel(rfqDetailView.item.pharma_requirements.gdp_compliant_required) }}
- {{ t.i18nCleanup.ceiv_compliant }}
- {{ yesNoLabel(rfqDetailView.item.pharma_requirements.ceiv_compliant_required) }}
- {{ t.i18nCleanup.non_compliance_reporting }}
- {{ yesNoLabel(rfqDetailView.item.pharma_requirements.non_compliance_reporting_required) }}
- {{ t.i18nCleanup.solution_type }}
- {{ rfqDetailView.item.pharma_requirements.solution_type || '-' }}
- {{ t.i18nCleanup.active_container_type }}
- {{ rfqDetailView.item.pharma_requirements.active_container_type || '-' }}
{{ t.i18nCleanup.logic }}
- {{ t.i18nCleanup.hard_stop_after_deadline }}
- {{ yesNoLabel(rfqDetailView.item.logic.hard_stop_after_deadline) }}
- {{ t.i18nCleanup.allow_late_quotes }}
- {{ yesNoLabel(rfqDetailView.item.logic.allow_late_quotes) }}
- {{ t.i18nCleanup.auto_close_hours }}
- {{ rfqDetailView.item.logic.auto_close_hours ?? '-' }}
- {{ t.i18nCleanup.quote_validity_days }}
- {{ rfqDetailView.item.logic.quote_validity_days ?? '-' }}
- {{ t.i18nCleanup.base_currency }}
- {{ rfqDetailView.item.logic.base_currency || '-' }}
- {{ t.i18nCleanup.fx_snapshot_date }}
- {{ rfqDetailView.item.logic.fx_rate_snapshot_date || '-' }}
- {{ t.i18nCleanup.fx_source }}
- {{ rfqDetailView.item.logic.fx_rate_source || '-' }}
- {{ t.i18nCleanup.charge_breakdown_mode }}
- {{ rfqDetailView.item.logic.charge_breakdown_mode || '-' }}
{{ tr('tables.sectionTitleRfqQuotes', 'RFQ Quotes') }}
{{ t.filters?.filter || 'Filter' }} {{ rfqQuotesActiveFilterCount() }}
{{ rfqQuotesDecisionStatusFilterSummary() }}
{{ rfqQuotesLateFilterSummary() }}
{{ rfqQuotesLockedFilterSummary() }}
{{ rfqQuotesAttachmentsFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ rfqQuoteVisibleColumnCount() }}/{{ rfqQuoteColumnTotalCount() }}
{{ t.i18nCleanup.loading_quotes }}
| {{ t.rfqRanking?.tableRank || 'Rank' }} | {{ t.tables.quoteSupplier || 'Supplier' }} | {{ t.tables.quoteVersion || 'Version' }} | {{ t.i18nCleanup.status }} | {{ t.tables.rfqMode || 'Mode' }} | {{ t.i18nCleanup.currency }} | {{ t.tables.quoteAmount || 'Amount' }} | {{ t.tables.quoteTransit || 'Transit' }} | {{ t.i18nCleanup.direct }} | {{ t.i18nCleanup.late_quote }} | {{ t.i18nCleanup.locked }} | {{ t.i18nCleanup.locked_at }} | {{ t.i18nCleanup.fx_rate_to_base }} | {{ t.i18nCleanup.fx_snapshot_date }} | {{ t.i18nCleanup.revision_note }} | {{ t.i18nCleanup.charge_lines }} | {{ t.i18nCleanup.attachments }} | {{ t.i18nCleanup.created_at }} | {{ t.i18nCleanup.updated_at }} | {{ t.i18nCleanup.actions }} |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ rfqQuotesPodiumByQuoteId[row.id].rank }} - | {{ row.supplier_name }} | {{ row.version_no }} | {{ quoteStatusText(normalizeQuoteDecisionStatus(row.decision_status || 'open')) }} | {{ rfqQuoteTransportModeLabel(row) }} | {{ row.currency_code }} | {{ row.total_amount }} | {{ row.transit_time_days }} d | {{ yesNoLabel(row.is_direct_transit) }} | {{ yesNoLabel(row.is_late) }} | {{ yesNoLabel(row.is_locked) }} | {{ formatDate(row.locked_at) }} | {{ row.fx_rate_to_base === null ? '-' : row.fx_rate_to_base }} | {{ row.fx_snapshot_date || '-' }} | {{ row.revision_note || '-' }} | {{ formatRfqQuoteChargeLines(row.charge_lines) }} | - | {{ formatDate(row.created_at) }} | {{ formatDate(row.updated_at) }} |
{{ t.i18nCleanup.no_quotes_received_for_this_rfq_yet }}
{{ tr('tables.sectionTitleSuppliers', 'Suppliers') }}
{{ t.filters?.filter || 'Filter' }} {{ suppliersActiveFilterCount() }}
{{ suppliersCategoryFilterSummary() }}
{{ suppliersScoreLevelFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ suppliersVisibleColumnCount() }}/{{ suppliersColumnTotalCount() }}
| {{ t.tables.supplierName }} | {{ t.tables.supplierCategory }} | {{ t.tables.supplierStreet2 || (t.forms?.additionalAddressLineLabel || 'Additional address line') }} | {{ t.tables.supplierCity }} | {{ t.tables.supplierCountry }} | {{ t.actions.contactName }} | {{ t.actions.contactMail }} | {{ t.tables.supplierScorePoints || 'Score Points' }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|---|---|
| {{ row.company_name }} | {{ row.category }} | {{ row.street_2 || '-' }} | {{ row.city }} | {{ row.country }} | {{ row.contact_name || '-' }} | {{ row.contact_mail || '-' }} |
{{ t.tables.noData }}
{{ tr('tables.sectionTitleQuotes', 'Quotes') }}
{{ t.filters?.filter || 'Filter' }} {{ quotesActiveFilterCount() }}
{{ quotesRfqFilterSummary() }}
{{ quotesDecisionStatusFilterSummary() }}
{{ quotesLateFilterSummary() }}
{{ quotesDirectFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ quotesListVisibleColumnCount() }}/{{ quotesListColumnTotalCount() }}
| {{ t.tables.quoteRfq }} | {{ t.tables.quoteSupplier }} | {{ t.tables.quoteVersion }} | {{ t.tables.quoteStatus || 'Status' }} | {{ t.tables.quoteAmount }} | {{ t.tables.quoteTransit }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|
| {{ row.rfq_reference_no || row.rfq_id }} | {{ row.supplier_name }} | {{ row.version_no ?? '-' }} | {{ quoteStatusText(quoteDisplayStatusValue(row)) }} | {{ row.total_amount != null ? `${row.currency_code || ''} ${row.total_amount}`.trim() : '-' }} | {{ row.transit_time_days != null ? `${row.transit_time_days} d` : '-' }} |
{{ t.tables.noData }}
{{ tr('tables.sectionTitleShipments', 'Shipments') }}
{{ t.filters?.filter || 'Filter' }} {{ shipmentsActiveFilterCount() }}
{{ shipmentsRequestForFilterSummary() }}
{{ shipmentsStatusFilterSummary() }}
{{ shipmentsCompletionFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ shipmentsVisibleColumnCount() }}/{{ shipmentsColumnTotalCount() }}
| {{ t.tables.shipmentRfqReference || 'RFQ Reference' }} | {{ t.tables.supplierName || 'Supplier' }} | {{ t.tables.rfqMode || 'Mode' }} | {{ t.forms?.rfqServiceScope || 'Service Scope' }} | {{ t.tables.quoteStatus || 'Status' }} | {{ t.shipments?.completionLabel || 'Completion' }} | {{ t.tables.templateUpdated || 'Updated' }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|---|
| {{ row.rfq_reference_no || row.rfq_id || '-' }} | {{ row.supplier_name || '-' }} | {{ shipmentRequestForLabel(row.request_for) }} | {{ shipmentServiceScopeLabel(row.service_scope) }} | {{ shipmentStatusFilterLabel(row.status) }} | {{ shipmentCompletionLabel(row) }} | {{ formatDate(row.updated_at) }} |
{{ t.tables.noData }}
{{ t.shipments?.loadingDetail || 'Loading shipment details...' }}
{{ t.shipments?.detailTitle || 'Shipment' }} {{ shipmentDetailView.item.rfq_reference_no || shipmentDetailView.item.id }}
{{ shipmentStatusFilterLabel(shipmentDetailView.item.status) }} {{ shipmentCompletionLabel(shipmentDetailView.item) }}{{ shipmentDetailView.item.rfq_title }}
{{ t.shipments?.milestonesTitle || 'Milestones' }}
- {{ shipmentTimelineStepLabel(step.key) }} {{ shipmentTimelineStepDate(step) || (t.shipments?.timeline?.notSet || 'Not set') }}
{{ t.shipments?.documentsTitle || 'Documents' }}
| {{ t.shipments?.documentColumnDocument || 'Document' }} | {{ t.tables.quoteStatus || 'Status' }} | {{ t.shipments?.documentColumnLatest || 'Latest file' }} | {{ t.shipments?.uploadedAtLabel || 'Uploaded At' }} | {{ t.tables.actions }} |
|---|---|---|---|---|
| {{ shipmentDocumentTypeLabel(documentItem.document_type) }} | {{ documentItem.latest ? (t.shipments?.availabilityAvailable || 'Available') : (t.shipments?.availabilityMissing || 'Missing') }} | {{ documentItem.latest?.original_name || '-' }} | {{ formatDate(documentItem.latest?.created_at) }} |
{{ shipmentDocumentTypeLabel(documentItem.document_type) }} · {{ t.shipments?.documentHistoryTitle || 'Version History' }}
| {{ t.shipments?.versionLabel || 'Version' }} | {{ t.shipments?.documentColumnLatest || 'File name' }} | {{ t.shipments?.fileSizeLabel || 'File size' }} | {{ t.shipments?.uploadedAtLabel || 'Uploaded At' }} | {{ t.tables.actions }} |
|---|---|---|---|---|
| #{{ version.version_no }} | {{ version.original_name || '-' }} | {{ formatShipmentDocumentFileSize(version.file_size) }} | {{ formatDate(version.created_at) }} |
{{ t.shipments?.noVersions || 'No versions uploaded yet.' }}
{{ t.i18nCleanup.loading_quote_details }}
{{ quoteDetailHeaderSupplierQuoteForPrefix() }} {{ quoteDetailHeaderRfqReference() }} {{ quoteDetailHeaderRfqReference() }}
{{ quoteStatusText(normalizeQuoteDecisionStatus(quoteDetailView.item.decision_status || 'open')) }}{{ quoteDetailView.item.rfq_title }}
{{ t.quoteDetail?.detailsTitle || 'Quote Details' }}
- {{ t.tables.quoteSupplier }}
- {{ quoteDetailView.item.supplier_name || '-' }}
- {{ t.tables.quoteVersion }}
- {{ quoteDetailView.item.version_no }}
- {{ t.tables.quoteAmount }}
- {{ quoteDetailView.item.currency_code }} {{ quoteDetailView.item.total_amount }}
- {{ t.tables.quoteTransit }}
- {{ quoteDetailView.item.transit_time_days }} d
- {{ quoteDetailPricingWeightLabel() }}
- {{ quoteDetailPricingWeightKg() ?? '-' }}
- {{ t.i18nCleanup.direct_transit }}
- {{ yesNoLabel(quoteDetailView.item.is_direct_transit) }}
- {{ t.publicQuote?.chargeableWeightUsedForQuote || 'Chargeable Wt (kg)' }}
- {{ quoteDetailView.item.chargeable_weight_kg ?? '-' }}
- {{ t.publicQuote?.chargeableWeightBasis || 'Chargeable Wt Basis' }}
- {{ quoteDetailView.item.chargeable_weight_basis || '-' }}
- {{ t.i18nCleanup.late }}
- {{ yesNoLabel(quoteDetailView.item.is_late) }}
- {{ t.quoteDetail?.fxRate || 'FX Rate' }}
- {{ quoteDetailView.item.fx_rate_to_base }} ({{ quoteDetailView.item.fx_snapshot_date }})
- {{ t.i18nCleanup.created }}
- {{ formatDate(quoteDetailView.item.created_at) }}
- {{ t.i18nCleanup.updated }}
- {{ formatDate(quoteDetailView.item.updated_at) }}
{{ t.i18nCleanup.revision_note }}
{{ quoteDetailView.item.revision_note }}
{{ t.publicQuote?.chargeableWeightReason || 'Chargeable Weight Reason' }}
{{ quoteDetailView.item.chargeable_weight_reason }}
{{ t.publicQuote?.carrierRoutingTitle || 'Carrier & Routing' }}
- {{ t.publicQuote?.routingMode || 'Routing Mode' }}
- {{ rfqRequestForLabel(quoteDetailView.item.routing_mode) }}
- {{ t.publicQuote?.carrierName || 'Carrier Name' }}
- {{ quoteDetailView.item.carrier_name || '-' }}
- {{ t.publicQuote?.carrierCode || 'Carrier Code' }}
- {{ quoteDetailView.item.carrier_code || '-' }}
- {{ t.publicQuote?.routingSummary || 'Routing Summary' }}
- {{ quoteDetailView.item.routing_summary }}
| {{ t.publicQuote?.routingLegRef || 'Leg' }} | {{ t.publicQuote?.routingLegOrigin || 'Origin' }} | {{ t.publicQuote?.routingLegDestination || 'Destination' }} | {{ t.publicQuote?.routingLegEtd || 'ETD' }} | {{ t.publicQuote?.routingLegEta || 'ETA' }} | {{ t.publicQuote?.routingLegVessel || 'Vessel / Service' }} |
|---|---|---|---|---|---|
| {{ leg.leg_ref || '-' }} | {{ leg.origin_code || '-' }} | {{ leg.destination_code || '-' }} | {{ leg.etd || '-' }} | {{ leg.eta || '-' }} | {{ leg.vessel_or_service || '-' }} |
{{ t.i18nCleanup.charge_lines }}
| {{ t.i18nCleanup.charge }} | {{ t.i18nCleanup.amount }} | {{ t.i18nCleanup.currency }} | {{ t.i18nCleanup.derived_kg }} |
|---|---|---|---|
| {{ charge.charge_code }} | {{ charge.amount }} | {{ charge.currency_code }} | {{ quoteDetailChargeDerivedPerKg(charge) }} |
| {{ t.i18nCleanup.total_amount }} | {{ quoteDetailChargeLinesTotal().amount }} | {{ quoteDetailChargeLinesTotal().currency_code }} | {{ quoteDetailChargeDerivedPerKg(quoteDetailChargeLinesTotal()) }} |
{{ t.i18nCleanup.attachments }}
{{ tr('tables.sectionTitleConsignees', 'Consignees') }}
{{ t.filters?.filter || 'Filter' }} {{ consigneesActiveFilterCount() }}
{{ consigneesCountryFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ consigneesVisibleColumnCount() }}/{{ consigneesColumnTotalCount() }}
| {{ t.tables.consigneeName || 'Name' }} | {{ t.tables.consigneeStreet || 'Street' }} | {{ t.tables.consigneeStreet2 || (t.forms?.additionalAddressLineLabel || 'Additional address line') }} | {{ t.tables.consigneeZip || 'ZIP' }} | {{ t.tables.consigneeCity || 'City' }} | {{ t.tables.consigneeCountry || 'Country' }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|
| {{ row.name }} | {{ row.street }} | {{ row.street_2 || '-' }} | {{ row.zip }} | {{ row.city }} | {{ row.country }} |
{{ t.tables.noData }}
{{ t.menu?.companySettings || "Company Settings" }}
{{ t.companySettings?.loading || "Loading company settings..." }}
{{ companySettings.error }}
{{ t.companySettings?.selectedFileLabel || "Selected" }}: {{ companySettings.form.logo_file_name }}
{{ t.companySettings?.subscriptionCurrentLabel || "Current plan" }} {{ companySettingsCurrentPlanLabel() }}
{{ t.companySettings?.subscriptionRfqUsageLabel || "RFQ usage" }} {{ companySettingsSubscriptionRfqUsageText() }}
{{ t.companySettings?.subscriptionUserUsageLabel || "User usage" }} {{ companySettingsSubscriptionUserUsageText() }}
{{ tr('tables.sectionTitleBilling', 'Billing') }}
{{ t.filters?.filter || 'Filter' }} {{ billingChangesActiveFilterCount() }}
{{ billingChangesTypeFilterSummary() }}
{{ billingChangesStatusFilterSummary() }}
{{ t.filters?.visibleColumns }} {{ billingChangesVisibleColumnCount() }}/{{ billingChangesColumnTotalCount() }}
{{ t.billing?.loadingOverview }}
| {{ t.billing?.tableCreatedAt }} | {{ t.billing?.tableChangeType }} | {{ t.billing?.tableFromPlan }} | {{ t.billing?.tableToPlan }} | {{ t.billing?.tableNetDue }} | {{ t.billing?.tableStatus }} |
|---|---|---|---|---|---|
| {{ item.created_at ? formatDate(item.created_at) : "-" }} | {{ billingChangeTypeLabel(item.change_type) }} | {{ billingPlanLabel(item.from_plan_key) }} ({{ item.from_billing_cycle ? billingCycleLabel(item.from_billing_cycle) : "-" }}) | {{ billingPlanLabel(item.to_plan_key) }} ({{ item.to_billing_cycle ? billingCycleLabel(item.to_billing_cycle) : "-" }}) | {{ billingAmountDisplay(item.net_due_chf) }} | {{ billingChangeStatusLabel(item.status) }} |
{{ billingHasChanges() ? t.billing?.tableFilterEmpty : t.billing?.invoiceTableEmpty }}
{{ tr('tables.sectionTitleUsers', 'User Management') }}
{{ t.filters?.filter || 'Filter' }} {{ usersActiveFilterCount() }}
{{ usersRoleFilterSummary() }}
{{ usersStatusFilterSummary() }}
{{ t.filters?.visibleColumns || 'Visible columns' }} {{ usersVisibleColumnCount() }}/{{ usersColumnTotalCount() }}
| {{ t.tables.userFirstName || 'First Name' }} | {{ t.tables.userLastName || 'Last Name' }} | {{ t.tables.userEmail }} | {{ t.tables.userRoles }} | {{ t.tables.userCompany || 'Company' }} | {{ t.tables.userTwoFactor || '2FA' }} | {{ t.tables.userStatus || 'Status' }} | {{ t.tables.userLastLogin || 'Last Login' }} | {{ t.tables.actions }} |
|---|---|---|---|---|---|---|---|---|
| {{ row.first_name || '-' }} | {{ row.last_name || '-' }} | {{ row.email }} | {{ roleBadges(row.roles) }} | {{ row.shipper_name || row.supplier_name || '-' }} | {{ twoFactorMethodLabel(row) }} | {{ userStatusLabel(row) }} | {{ formatDate(row.last_login_at) }} |
{{ t.tables.noData }}