Für unsere Programmierneulinge nachfolgend ein vollständiges Beispiel zur Erzeugung einer Rechnung über den easybill SOAP-Webservice. Detaillierte Informationen bereiten wir gerade für Sie vor und werden Sie in Kürze präsentieren. Für Profi´s verweisen wir an dieser Stelle auf die im Beispiel ersichtliche Schnittstellenbeschreibung. Den zur Nutzung der SOAP erforderlichen Authentifizierungsschlüssel erhalten Sie derzeit nur über unseren Support. Bereits in wenigen Tagen können Sie diesen im Interface selbst generieren. Aber wie gesagt… es folgen ausführliche Infos!
<?php
ini_set(“soap.wsdl_cache_enabled”, “0″);
header(“Content-Type: text/plain”);
$authKey = ‘<AUTH-KEY>’;
$client = new SoapClient(“https://soap.easybill.de/soap.easybill.php?wsdl”, array(‘trace’ => 1, ‘exceptions’ => 1));
$header = new SoapHeader(‘http://www.easybill.de/webservice‘, ‘UserAuthKey‘, $authKey);
$client->__setSoapHeaders($header);
try {
# Kundengruppen
$response = $client->getAllCustomerGroups();
#var_dump($response);
# Kundengruppe abfragen
$groupID = 1343;
$response = $client->getCustomerGroup($groupID);
#var_dump($response);
# Kundengruppe erstellen
$group->name = ‘name der gruppe’;
$group->number = ‘nummer der gruppe’;
$group->description = ‘beschreibung der gruppe’;
#$response = $client->setCustomerGroup($group);
#$groupID = $group->groupID;
# Kunde suchen
#var_dump($client->searchCustomers(‘müller’));
# Kunde abfragen
$customerID = 19259;
#var_dump($client->getCustomer($customerID));
# Kunde erstellen
$customer->salutation = null;
$customer->firstName = ‘Max’;
$customer->lastName = ‘Mustermann’;
$customer->street = ‘Hautpstr. 1′;
$customer->zipCode = 12345;
$customer->city = ‘Berlin’;
$customer->country = ‘DE’;
$customer->taxOptions = null;
/*
$response = $client->setCustomer($customer);
var_dump($response);
$customerID = $response->customerID;
*/
# Warengruppen
$response = $client->GetAllCompanyPositionGroups();
#var_dump($response);
# Warengruppe abfragen
$groupID = 2;
$response = $client->GetCompanyPositionGroup($groupID);
#var_dump($response);
# Warengruppe erstellen
$group->name = ‘name der gruppe’;
$group->number = ‘nummer der gruppe’;
$group->description = ‘beschreibung der gruppe’;
#$response = $client->setCompanyPositionGroup($group);
#$groupID = $group->groupID;
# Rechnungsposten suchen (System)
#var_dump($client->searchCompanyPositions(‘domain’));
# Rechnungsposten abfragen (System)
$positionID = 2304;
#var_dump($client->getCompanyPosition($positionID));
# Rechnungsposten erstellen (System)
$position->positionType = ‘PRODUCT’; # SERVICE
$position->itemNumber = ’99999′;
$position->itemDescription = ‘Festplatte 100GB’;
$position->unit = ‘Stück’;
$position->ustPercent = 19;
$position->costPrice = 8999; #Cent
$position->salePrice = 9999; #Cent
$position->stock = ‘NO’;
#$response = $client->setCompanyPosition($position);
# Rechnung erstellen
$customerID = 19259;
$document->customerID = $customerID;
$document->currency = ‘EUR’;
$document->textPrefix = ‘Wir bedanken uns für den Auftrag’;
$document->text = ‘Bitte überweisen Sie den Rechnungsbetrag auf das unten angegebene Konto.’;
# Rechungsposten
$documentPositions = array();
# Rechnungsposten erstellen
$documentPosition->positionType = ‘POSITION’; # TEXT
$documentPosition->itemNumer = ’123′;
$documentPosition->itemDescription = ‘ABC’;
$documentPosition->count = 10;
$documentPosition->unit = ‘Stück’;
$documentPosition->singlePriceNetto = 199; # Cent
$documentPosition->ustPercent = 19;
# Rabatt auf Postem
$documentPosition->discount = 10;
$documentPosition->discountType = ‘PERCENT’; # AMOUNT
$documentPositions[] = $documentPosition;
# Rechnungsposten erstellen (Textzeile)
$documentPositions[] = array(‘positionType’ => ‘TEXT’, ‘itemDescription’ => ‘Do not eat!’, ‘count’ => null, ‘unit’ => null, ‘singlePriceNetto’ => null, ‘ustPercent’ => null);
# Rechnungsposten aus System
$positionID = 2304;
$companyPosition = $client->GetCompanyPosition($positionID);
$documentPosition = null;
$documentPosition->companyPositionID = $companyPosition->positionID;
$documentPosition->positionType = ‘POSITION’;
$documentPosition->itemNumer = $companyPosition->itemNumber;
$documentPosition->itemDescription = $companyPosition->itemDescription;
$documentPosition->count = 1;
$documentPosition->unit = $companyPosition->unit;
$documentPosition->singlePriceNetto = $companyPosition->salePrice; # salePrice2, salePrice3, salePrice4, salePrice5
$documentPosition->ustPercent = $companyPosition->ustPercent;
$documentPositions[] = $documentPosition;
$document->documentPosition = $documentPositions;
$response = $client->CreateDocument($document);
#var_dump($response);
$tmpfname = tempnam(“/tmp”, “FOO”);
$handle = fopen($tmpfname, “w”);
fwrite($handle, base64_decode($response->file));
fclose($handle);
# Datei downloaden
#header(‘Content-type: application/pdf’);
#header(‘Content-Disposition: attachment; filename=”‘.$response->fileName.’”‘);
#readfile($tmpfname);
unlink($tmpfname);
}
catch(SoapFault $e) {
print ‘Service failure, error message: ‘.$e->faultstring;
die();
}
#print_r($client->__getLastResponse());
#var_dump($client->__getFunctions());