include_once "Z_SD_WEB_SALESORDER_CREATEService.php";
class PPRSAPHelper
{
static $_client =null;
static function MakeRequest(&$request, &$debugInfo)
{
$debugInfo = array();
if (!PPRSAPHelper::$_client)
{
PPRSAPHelper::$_client = new Z_SD_WEB_SALESORDER_CREATEService(JPATH_BASE."/components/com_vxc/helpers/Z_SD_WEB_SALESORDER_CREATE.xml", array(
// Stuff for development.
'trace' => 1
,'exceptions' => true
,'cache_wsdl' => WSDL_CACHE_NONE
, 'features' => SOAP_SINGLE_ELEMENT_ARRAYS
) );
}
//if ($_SERVER['SERVER_NAME']=='ppr' || $_SERVER['SERVER_NAME']=='devorthocad'|| $_SERVER['HTTP_HOST']=="beta.soletec.de")
if ($_SERVER['SERVER_NAME']=='ppr' || $_SERVER['SERVER_NAME']=='devorthocad')
PPRSAPHelper::$_client->__setLocation("http://perpedesroeck.ntools.de:8001/sap/bc/srt/rfc/sap/Z_SD_WEB_SALESORDER_CREATE?sap-client=500");
else
PPRSAPHelper::$_client->__setLocation("http://80.150.143.90:8000/sap/bc/srt/rfc/sap/Z_SD_WEB_SALESORDER_CREATE?sap-client=500");
$params = new Z_SD_E_SALESORDER_CREATE();
$params->SENDER = new BAPI_SENDER();
$params->SENDER->LOG_SYSTEM = 'VOXELCARE';
$params->ORDER_HEADER_IN = new BAPISDHD1();
$params->ORDER_HEADER_IN->REF_1 = 'ORTHO';
$params->ORDER_HEADER_IN->PURCH_NO_C = $request['username'];
$params->ORDER_PARTNERS = new TABLE_OF_BAPIPARNR();
$params->ORDER_PARTNERS->item = array();
$params->ORDER_CONDITIONS_IN = new TABLE_OF_BAPICOND();
$params->ORDER_CONDITIONS_IN->item = array();
$params->ORDER_ITEMS_IN = new TABLE_OF_BAPISDITM();
$params->ORDER_ITEMS_IN->item = array();
$params->ORDER_CFGS_REF = new TABLE_OF_BAPICUCFG();
$params->ORDER_CFGS_REF->item = array();
$params->ORDER_CFGS_VALUE = new TABLE_OF_BAPICUVAL();
$params->ORDER_CFGS_VALUE->item = array();
$customerNumber = $request['userid'];
$item = new BAPIPARNR();
$item->PARTN_ROLE = 'AG';
$item->PARTN_NUMB = sprintf("%010d",$customerNumber);
$params->ORDER_PARTNERS->item[] = $item;
$itemNumber = 10;
$configIdN = 1;
foreach($request['orders'] as $order)
{
$itemNumberS = sprintf("%06d",$itemNumber);
$bapicond = new BAPICOND();
$bapicond->ITM_NUMBER = $itemNumberS;
$bapicond->COND_TYPE = 'PR00';
$bapicond->COND_VALUE = $order['price'];
$params->ORDER_CONDITIONS_IN->item[] = $bapicond;
$bapisditm = new BAPISDITM();
$bapisditm->ITM_NUMBER = $itemNumberS;
$bapisditm->PO_ITM_NO = $itemNumberS;
$bapisditm->MATERIAL = 'CAM';
$bapisditm->TARGET_QTY = $order['qty'];
$bapisditm->PURCH_NO_C = $order['id'];
$params->ORDER_ITEMS_IN->item[] = $bapisditm;
$configId = sprintf("%06d",$configIdN);
$bapicucfg = new BAPICUCFG();
$bapicucfg->POSEX = $itemNumberS;
$bapicucfg->CONFIG_ID = $configId;
$bapicucfg->ROOT_ID = sprintf("%08d",$configIdN);
$params->ORDER_CFGS_REF->item[] = $bapicucfg;
foreach($order['atts'] as $key => $value)
{
$bapicuval = new BAPICUVAL();
$bapicuval->CONFIG_ID = $configId;
$bapicuval->CHARC = $key;
$bapicuval->VALUE = $value;
$params->ORDER_CFGS_VALUE->item[] = $bapicuval;
}
$itemNumber+=10;
$configIdN ++;
}
// echo nl2br(print_r($params,true));
try
{
$answer=& PPRSAPHelper::$_client->Z_SD_E_SALESORDER_CREATE($params);
$debugInfo['request'] = PPRSAPHelper::$_client->__getLastRequest();
$debugInfo['answer'] = PPRSAPHelper::$_client->__getLastResponse();
//echo nl2br(htmlentities($client->__getLastRequest()));
/*
$return =& $response->RETURN;
if (count($return->item))
{
foreach($return->item as $returnItem)
{
echo "
TYPE: ".$returnItem->TYPE;
echo "
ID: ".$returnItem->ID;
echo "
NUMBER: ".$returnItem->NUMBER;
echo "
MESSAGE: ". $returnItem->MESSAGE;
echo "
MESSAGE_V1: ". $returnItem->MESSAGE_V1;
echo "
SYSTEM: ". $returnItem->SYSTEM;
echo "
";
}
}*/
}
catch (Exception $ex) {
//echo nl2br (print_r($params,true));
$debugInfo['bigerror'] = true;
$debugInfo['request'] = PPRSAPHelper::$_client->__getLastRequest();
//$debugInfo['answer'] = PPRSAPHelper::$_client->__getLastResponse();
$debugInfo['answer'] = var_export($ex,true);
}
return $answer;
}
}
?>