Skip to content

VitexSoftware/PHP-Pohoda-Connector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5bebf39 · Jan 29, 2025

History

95 Commits
Nov 13, 2024
Nov 19, 2024
Dec 2, 2024
Jan 28, 2025
Jan 29, 2025
Oct 25, 2023
Jan 28, 2025
Jan 28, 2025
Dec 2, 2024
Jan 24, 2025
Dec 2, 2024
Nov 8, 2020
Jan 24, 2025
Dec 2, 2024
Nov 20, 2024
Nov 8, 2024
Oct 25, 2023
Sep 13, 2024
Sep 13, 2024
Jan 1, 2021
Oct 25, 2023

Repository files navigation

PHPmServer

client library for Stormware's mPohoda mServer

Project Logo

The PHP-Pohoda-Connector library provides a set of features to interact with the Pohoda accounting software. Below are some of the key features along with code examples:

Features:

  • Check connection
  • Create/Update/Delete AddressBook record
  • Create/Update/Delete Invoice record
  • Create/Update/Delete Bank movement record

PHP from Packagist Packagist Version Packagist Downloads GitHub

Installation

Install using composer:

composer require vitexsoftware/pohoda-connector

Or clone https://github.com/VitexSoftware/PHP-Pohoda-Connector.git

Configuration

Classess check at startup for this constants or environment variables:

  • POHODA_ICO - company indentificator
  • POHODA_URL - mServer endpoint
  • POHODA_USERNAME - Pohoda user's login
  • POHODA_PASSWORD - Pohoda user's password
  • POHODA_TIMEOUT - Curl timeout
  • POHODA_COMPRESS - compress is disabled by default
  • POHODA_DEBUG - debug mode is disabled by default

Usage

  1. Check Connection This feature allows you to check if the connection to the Pohoda server is successful.
<?php

namespace mServer;

require_once __DIR__.'/../vendor/autoload.php';

\Ease\Shared::init(['POHODA_URL', 'POHODA_USERNAME', 'POHODA_PASSWORD'], \dirname(__DIR__).'/.env');

$client = new \mServer\Client();

if (\Ease\Shared::cfg('APP_DEBUG')) {
    $client->logBanner();
}

echo  $client->isOnline() ? 'Online' : 'Offline';
  1. Add Addressbook record This feature allows you to add a new addressbook record.
<?php

namespace mServer;

require_once __DIR__.'/../vendor/autoload.php';

\Ease\Shared::init(['POHODA_URL', 'POHODA_USERNAME', 'POHODA_PASSWORD'], \dirname(__DIR__).'/.env');

$addressBookRecord = [
    'identity' => [
        'address' => [
            'company' => 'Vitex Software',
            'name' => 'Vítězslav Dvořák',
            'city' => 'Prague',
            'street' => 'Long',
            'zip' => '15800',
            'ico' => '69438676',
            'dic' => 'CZ7808072811',
        ],
    ],
    'mobil' => '739 778 202',
    'web' => 'https://www.vitexsoftware.cz',
];

$addresser = new Adressbook($addressBookRecord);
$addresser->addToPohoda();

if ($addresser->commit()) {
    print_r($addresser->response->producedDetails);
}
  1. Create Invoice

This feature allows you to create a new invoice.

<?php

namespace mServer;

require_once __DIR__.'/../vendor/autoload.php';

$invoiceRecord = [
    'invoiceType' => 'issuedInvoice',
    'date' => date('Y-m-d'),
    'accounting' => ['ids' => '3Fv'],
    'text' => 'Faktura za zboží bez adresy',
    'paymentType' => 'draft',
    'note' => 'Import XML.',
    'intNote' => 'Tento doklad byl vytvořen importem přes XML z PHP.',
    'invoiceSummary' => [
        'roundingDocument' => 'math2one',
        'homeCurrency' => [
            'priceNone' => 3018,
            'priceLow' => 60000,
            'priceHighSum' => 557,
        ],
    ],
];

\Ease\Shared::init(['POHODA_URL', 'POHODA_USERNAME', 'POHODA_PASSWORD'], \dirname(__DIR__).'/.env');

$invoicer = new Invoice($invoiceRecord);

$itemRecord = [
    'text' => 'Židle Z220',
    'quantity' => 1.0,
    'unit' => 'ks',
    'payVAT' => false,
    'rateVAT' => 'high',
    'homeCurrency' => [
        'unitPrice' => 1968,
        'price' => 1968,
        'priceVAT' => 413.28,
        'priceSum' => 2381.28,
    ],
    'code' => 'Z220',
    'stockItemIDS' => 'Z220',
];

$invoicer->addItem($itemRecord);
$invoicer->addToPohoda();

if ($invoicer->commit()) {
    print_r($invoicer->response->producedDetails);
}
  1. Addressbook reading

This feature allows you to read an addressbook record.

<?php

require_once '../vendor/autoload.php';
\Ease\Shared::init(['POHODA_URL', 'POHODA_USERNAME', 'POHODA_PASSWORD'], \dirname(__DIR__).'/.env');
$addresser = new \mServer\Addressbook();
print_r($addresser->getColumnsFromPohoda(['id', 'jmeno', 'email', 'web']));

See usage examples in tests directory

Many thanks to Riešenia, spol. s r.o. for its library https://github.com/riesenia/pohoda

See my other libraries: https://github.com/Spoje-NET/PohodaSQL , https://github.com/Spoje-NET/php-abraflexi