megachriz / afasprofit
An API to connect to Afas Profit written in PHP.
Installs: 7 988
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 7
Forks: 7
Open Issues: 3
Requires
- php: >=7.3
- drupal/core-plugin: ^9.0|^10.0
- hanneskod/classtools: ~1.0
- openlss/lib-array2xml: ~0.0
- symfony/dependency-injection: >=4.4 <7.0.0
- symfony/finder: >=4.4 <7.0.0
Requires (Dev)
- kzykhys/php-csv-parser: ~1.4
- phpunit/phpunit: ~8.5
- symfony/event-dispatcher: >=4.4 <7.0.0
Suggests
- kzykhys/php-csv-parser: To use the getListFromCsv() method from the service 'afas.country.manager'.
- symfony/event-dispatcher: To react on Profit calls.
This package is not auto-updated.
Last update: 2024-12-17 18:42:10 UTC
README
An API to connect to Afas Profit written in PHP.
Features:
- Getting data from Profit GetConnectors.
- Insert, update or delete data into Profit using Profit UpdateConnectors.
- Getting files from Profit using Profit Subjectconnectors.
- Getting UpdateConnectors XML Schema's using the Profit DataConnector.
Usage
Get data from Profit (GetConnector):
use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); // Get data from GetConnector 'Products', filter by 'sku'. $products = $server->get('Products') ->filter('sku', '2612') ->execute() ->asArray();
Insert data into Profit (UpdateConnector):
use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); // Insert an order into Profit. $server->insert('FbSales', [ 'OrNu' => 'test_001', 'DbId' => 123456, 'War' => 1, 'FbSalesLines' => [ [ 'ItCd' => 1201, 'QuUn' => 1, ], [ 'ItCd' => 1202, 'QuUn' => 1, ], ], ]) ->execute();
Update data into Profit (UpdateConnector):
use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); // Update an existing order, change quantity of existing item. $server->update('FbSales', [ 'OrNu' => 'test_001', 'FbSalesLines' => [ [ 'GuLi' => '{6BA270E1-BFA7-4B67-86FF-72391A2CB5E3}', 'QuUn' => 2, ], ], ]) ->execute();
Delete data from Profit (UpdateConnector):
use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); $server->delete('FbSales', [ 'OrNu' => 'test_001', ]) ->execute();
Get a file from Profit (SubjectConnector):
use Afas\Afas; use Afas\Core\Connector\SubjectConnector; use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); // Create Soap client. /** @var \Afas\Component\Soap\SoapClientInterface $client */ $client = Afas::service('afas.soap_client_factory')->create($server); // Create SubjectConnector. $connector = new SubjectConnector($client, $server); // To get an attachment, pass a subject ID and a file ID. $attachment = $connector->getAttachment(300001, '8D36870843A516C2514D74BE69F87E15');
Get a XML Schema for a Profit UpdateConnector from Profit (DataConnector):
use Afas\Afas; use Afas\Core\Connector\DataConnector; use Afas\Core\Server; // Initialize server. $server = new Server('https://12345.soap.afas.online/profitservices', 'ABCDEFGHIJK1234'); // Create Soap client. /** @var \Afas\Component\Soap\SoapClientInterface $client */ $client = Afas::service('afas.soap_client_factory')->create($server); // Create DataConnector. $connector = new DataConnector($client, $server); // Get schema. /** @var \Afas\Core\Result\DataConnectorResult $result */ $result = $connector->getXmlSchema('FbSales'); // Save complete schema. file_put_contents('FbSales.xsd', $result->asArray()[0]['Schema']); // Or save without custom fields. file_put_contents('FbSales.xsd', $result->removeCustomFieldsFromSchema()[0]['Schema']);