@php $tabMeta = [ 'start' => ['label' => __('Your first week'), 'icon' => 'check-circle'], 'rules' => ['label' => __('The three rules'), 'icon' => 'book-open'], 'example' => ['label' => __('Worked example'), 'icon' => 'light-bulb'], 'access' => ['label' => __('Who may do what'), 'icon' => 'key'], ]; // The worked example: one sale, start to finish. People are illustrative. $example = [ ['stage' => 'prospect', 'title' => __('The list'), 'who' => __('Farai, director'), 'body' => __('Farai loads a list of 100 NGOs as a Joint portfolio and assigns it to Rudo, the BD and Partnerships Officer. Nothing is in the pipeline yet: every organisation waits in the work queue as Not started.')], ['stage' => 'prospect', 'title' => __('Pulled into the pipeline'), 'who' => __('Rudo'), 'body' => __('Rudo pulls Harare Health Partners from the queue. That opens one opportunity at Prospect with a dated next action: "Call the procurement officer, Thursday". Farai is its originator, because the list was theirs, and that never changes. Rudo is the owner. Because the portfolio is Joint, Farai is also added as a collaborator (Sponsor).')], ['stage' => 'contacted', 'title' => __('First call'), 'who' => __('Rudo'), 'body' => __('Rudo calls and logs it with the outcome: "Annual conference in November, send capability profile". A logged outreach with an outcome is what lets the opportunity move to Contacted. Logging asks for the next action, so it is never left without one.')], ['stage' => 'meeting', 'title' => __('Meeting'), 'who' => __('Rudo and Farai'), 'body' => __('Rudo books a meeting; Farai joins, as the Joint mode expects. The meeting note records the need and the actions, and each action becomes a task for a named person.')], ['stage' => 'requirement', 'title' => __('The need'), 'who' => __('Rudo'), 'body' => __('300 delegate packs: branded notebooks, lanyards and four pull-up banners, delivered by 20 November. Recording that need moves it to Requirement Identified.')], ['stage' => 'qualified', 'title' => __('Qualified, after one refusal'), 'who' => __('Rudo'), 'body' => __('Rudo tries to move it to Qualified and is told exactly what is missing: "Record the budget, or say why it is unknown in the budget note." The donor has not shared the budget, so Rudo writes that in the budget note. With need, contact, scope, timeframe, budget note and a dated next step all in, it moves. It is counted as qualified once, on this first entry, however often it moves later.')], ['stage' => 'proposal', 'title' => __('The quote'), 'who' => __('Administration'), 'body' => __('Rudo requests a quote. Administration gets the task, prices it in Quotes and sends it; officers request and follow up quotes but do not price them. The sent quote is linked, so the opportunity can move to Proposal or Quotation.')], ['stage' => 'negotiation', 'title' => __('Negotiation'), 'who' => __('Rudo and a director'), 'body' => __('The client asks for 10% off. Discounts, credit terms and delivery-date exceptions need a director\'s recorded approval, so Rudo asks and Farai approves on the record. Moving to Follow-up or Negotiation asks for the decision still outstanding: "Donor to approve the revised quote".')], ['stage' => 'negotiation', 'title' => __('Accepted, awaiting confirmation'), 'who' => __('The client'), 'body' => __('The client accepts the quote on the portal. That acceptance is stored as evidence and the card shows Accepted, awaiting confirmation. It is NOT won yet: an accepted quote, an invoice or a deposit alone never wins a deal.')], ['stage' => 'won', 'title' => __('Won'), 'who' => __('Administration'), 'body' => __('Administration confirms the job and links it. Only now, with the acceptance and the confirmed job, does the opportunity become Won.')], ]; @endphp
{{ __('Glossary') }}
@foreach ($tabMeta as $key => $meta) @endforeach
@if ($tab === 'start')

{{ __('Your first week') }}

{{ __('Each step ticks itself when you have done it in the CRM.') }}

{{ __(':done of :total', ['done' => $done, 'total' => $required]) }}
    @foreach ($steps as $step)
  1. @if ($step['done']) @else {{ $loop->iteration }} @endif

    {{ $step['label'] }} @if ($step['optional']) {{ __('optional') }} @endif

    {{ $step['hint'] }}

    @unless ($step['done']) {{ __('Go') }} @endunless
  2. @endforeach
@endif @if ($tab === 'rules')

{{ __('1. Ownership') }}

  • {{ __('Originator') }}: {{ __('who brought it in. Set once and never changed, not even by a handover.') }}
  • {{ __('Owner') }}: {{ __('who is responsible now. Always exactly one. It changes only when a handover is accepted, or when a director reassigns it with a reason.') }}
  • {{ __('Collaborators') }}: {{ __('anyone helping, as Sponsor, Support or Technical.') }}
  • {{ __('A handover keeps the sender as owner until the recipient accepts, so nothing is ever unowned.') }}
  • {{ __('Reports show originated, managed and supported side by side. They overlap on purpose and are never added together: a sale is counted once.') }}
  • {{ __('Everyone can see who owns every organisation and opportunity, so two people never chase the same client.') }}

{{ __('2. Qualification') }}

{{ __('An opportunity is Qualified only when all six are recorded. The CRM refuses the move and names what is missing.') }}

  1. {{ __('The specific need') }}
  2. {{ __('A contact at the organisation') }}
  3. {{ __('Products, or the quantity and scope') }}
  4. {{ __('A timeframe: delivery date, expected close or tender deadline') }}
  5. {{ __('The budget, or a note saying why it is unknown') }}
  6. {{ __('A dated next step') }}

{{ __('The same checklist is needed for Proposal, Negotiation and Won, so a repeat client can go straight to a quote once it is complete. It counts as qualified once, on first entry.') }}

{{ __('3. Won') }}

  • {{ __('Won needs two things: the client\'s acceptance on record, and the job Administration has confirmed, linked.') }}
  • {{ __('A client accepting on the portal is the evidence, not the win. The card shows Accepted, awaiting confirmation until the job is linked.') }}
  • {{ __('A quote, an invoice or a part payment on its own never wins a deal.') }}
  • {{ __('The confirmed, invoiced and received figures are read from the job, invoices and payments. Nobody types them in.') }}
  • {{ __('Commission still comes from the job\'s sales rep and the commission rules. The CRM roles do not create commission.') }}

{{ __('Also worth knowing') }}

  • {{ __('Every open opportunity has a dated next action. Completing a task or logging an activity asks for the next one.') }}
  • {{ __('Stages are progress, not a sequence. Moving back a stage, or reopening a closed one, needs a written reason.') }}
  • {{ __('Lost needs a loss reason. Deferred needs a reason and a future review date, and leaves the pipeline totals.') }}
  • {{ __('An unknown value is left blank and shown as Not estimated, never as zero.') }}
{{ __('Every stage and its rule') }}
@endif @if ($tab === 'example')

{{ __('One sale, start to finish') }}

{{ __('Delegate packs for an NGO conference. The names are made up; the rules are the real ones.') }}

    @foreach ($example as $step)
  1. @unless ($loop->last) @endunless {{ $loop->iteration }}

    {{ $step['title'] }}

    {{ __(\App\Models\Opportunity::STAGES[$step['stage']]) }} {{ $step['who'] }}

    {{ $step['body'] }}

  2. @endforeach

{{ __('How it is counted') }}

{{ __('One sale, counted once in company totals, with each person credited for their part.') }}

{{ __('View') }} {{ __('Who it credits') }} {{ __('Why') }}
{{ __('Originated') }}{{ __('Farai') }}{{ __('The list was theirs. Fixed for good.') }}
{{ __('Managed') }}{{ __('Rudo') }}{{ __('The owner when it was won.') }}
{{ __('Supported') }}{{ __('Farai') }}{{ __('A collaborator, because the portfolio is Joint.') }}
{{ __('Company total') }}{{ __('One sale') }}{{ __('The three views overlap and are never added together.') }}
{{ __('Commission') }}{{ __('The job\'s sales rep') }}{{ __('Unchanged by the CRM roles.') }}
{{ __('Had Rudo gone on leave half way, a handover to Tendai would have kept Rudo the owner until Tendai accepted. Tendai would then be credited under Managed; Farai would still be the originator.') }}
@endif @if ($tab === 'access')

{{ __('Your access') }}

{{ __('Role: :role.', ['role' => $roleName]) }} @if ($seesTeam) {{ __('You see and manage everyone\'s CRM records.') }} @elseif ($canManage) {{ __('You see everyone\'s records and manage your own and those shared with you.') }} @else {{ __('You can see the CRM but not change it.') }} @endif

{{ __('Roles and each person\'s access are set by the administrator under Users.') }}

@if ($isSuperAdmin) {{ __('Open Users') }} @endif

{{ __('The rule') }}

{{ __('Each person manages their own records. Directors and super admins see and manage everyone\'s.') }}

{{ __('Who') }} {{ __('Sees') }} {{ __('Manages') }}
{{ __('Directors and super admins') }}{{ __('Everything') }}{{ __('Everyone\'s records; approve discounts, credit terms and delivery exceptions; set targets; reassign; merge; restore') }}
{{ __('BD officers') }}{{ __('Every organisation and opportunity, and who owns it') }}{{ __('Their own records and those shared with them; request and follow up quotes, never price them') }}
{{ __('Administration') }}{{ __('Everything in the CRM') }}{{ __('Organisations, quotes, confirming and linking jobs, handovers sent to them') }}
{{ __('"Work across the whole team" is what lets someone manage everyone\'s records. Importing, exporting, merging, reassigning, campaigns and targets are each ticked separately.') }}
@endif