PHP code example of mix-code / wafeq

1. Go to this page and download the library: Download mix-code/wafeq library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

mix-code / wafeq example snippets


use MixCode\Wafeq\Project;

class ProjectController
{

    public function listProjects()
    {
        $projectService = new Project();

        return $projectService->list();
    }
}

use MixCode\Wafeq\ProjectFacade as Project;

$projects = Project::list();

use MixCode\Wafeq\Project;

class ProjectController
{
    public function __construct(private Project $project) {}

    public function listProjects()
    {
        return $this->project->list();
    }
}

$project = new Project();
$projects = $project->list();

$project = new Project();
$project = $project->show($projectId);

use MixCode\Wafeq\Payloads\ProjectPayload;

$payload = new ProjectPayload(
    name: 'Project Name',
);

$project = new Project();

$response = $project->create($payload);

use MixCode\Wafeq\Payloads\ProjectPayload;

$payload = new ProjectPayload(
    name: 'John Doe',
);

$project = new Project();

$response = $project->update($payload);

$project = new Project();

$response = $project->delete($projectId);

$contact = new Contact();
$contacts = $contact->list();

$contact = new Contact();
$contact = $contact->show($contactId);

use MixCode\Wafeq\Payloads\ContactPayload;

$payload = new ContactPayload(
    name: 'Contact Name',
    email: '[email protected]',
    phone: '+1234567890'
);

$contact = new Contact();
$response = $contact->create($payload);

use MixCode\Wafeq\Payloads\ContactPayload;

$payload = new ContactPayload(
    name: 'Contact Name Updated',
    email: '[email protected]',
    phone: '+1234567890'
);

$contact = new Contact();
$response = $contact->update($payload);

$contact = new Contact();
$contact = $contact->delete($contactId);

// 1. Build Line Items
$lineItem1 = new ManualJournalLineItemPayload(
    account: 'acc_123',
    amount: 1000,
    amountToBcy: 1000,
    currency: 'AED',
    description: 'Sales Revenue',
    branch: 'main',
);

$lineItem2 = new ManualJournalLineItemPayload(
    account: 'acc_456',
    amount: -1000,
    amountToBcy: -1000,
    currency: 'AED',
    description: 'Cash Payment',
    branch: 'main',
);

// 2. Build the main payload
$manualJournalPayload = new ManualJournalPayload(
    date: '2025-04-25',
    lineItems: [$lineItem1, $lineItem2],
    reference: 'REF-001',
    notes: 'Payment for invoice #001',
);

// 3. Create the manual journal
$manualJournalService = new ManualJournal();
$response = $manualJournalService->create($manualJournalPayload);

$account = new Account();
$accounts = $account->list();
bash
php artisan vendor:publish --tag=wafeq