Hallo,
ich möchte über die API einen Auftrag anlegen, was soweit auch funktioniert.Wenn ich nun jedoch dem Projekt einen eigenen Nummernkreis vergebe erscheint folgendes Phänomen:Gebe ich die Projektnummer mit an, wird die nächste freie Belegnummer aus dem Nummernkreis verwendet, als Projekt wird jedoch 1 (Standard) genommen.Gebe ich die Projektnummer NICHT mit an, wird eine Belegnummer verwendet die NICHT aus dem Nummernkreis stammt, als Projekt wird das richtige genommen.Mit der Angabe des Projektkürzels (in diesem Fall "MON") funktioniert es gar nicht.Mein Code dazu steht in dieser Nachricht ganz unten.
Hier mein Code dazu:
// OrderData$orderDataXML .= "<position>";$orderDataXML .= "<nummer>MON100000</nummer>";$orderDataXML .= "<menge>1</menge>";$orderDataXML .= "<preis>4.99</preis>";$orderDataXML .= "<steuersatz>20</steuersatz>";$orderDataXML .= "<waehrung>GBP</waehrung>";$orderDataXML .= "<projekt>6</projekt>";$orderDataXML .= "</position>";
// Generate Hash for Xentralfunction generateHash(){$initKey = '********';$user = '********';$date = gmdate('dmY');$hash = "";
for($i = 0; $i <= 200; $i++)$hash = sha1($hash . $initKey . $user . $date);
return $hash;}
$url = 'https://welogtestsystem.xentral.biz/index.php?module=api&action=' . $methodname . '&hash=' . $hash .'&api_id=1';
$xml = '<?xml version="1.0" encoding="UTF-8"?><request><status><function>' . $methodname . '</function></status><xml>' . $xml . '</xml></request>';
$data = array('xml' => $xml, 'md5sum' => md5($xml));
// use key 'http' even if you send the request to https://...$options = array('http' => array('header' => "Content-type: application/x-www-form-urlencoded\r\n",'method' => 'POST','content' => http_build_query($data),),);
$context = stream_context_create($options);$result = file_get_contents($url, false, $context);return $result;}
// Build XML for transfer to Xentral to create customer$hash = generateHash();
// Build XML for transfer to Xentral to create order$xml_createOrder = "<kundennummer>MON10029</kundennummer><projekt>6</projekt><artikelliste>" . $orderDataXML . "</artikelliste>";
$output_xml_createOrder = SendRequest("AuftragCreate", $xml_createOrder, $hash);$obj_createOrder = simplexml_load_string($output_xml_createOrder);