first commit
This commit is contained in:
271
socket/Pohoda.Contacts.php
Normal file
271
socket/Pohoda.Contacts.php
Normal file
@@ -0,0 +1,271 @@
|
||||
<?php
|
||||
|
||||
function POHODA_Contacts($params)
|
||||
{
|
||||
$request = $params['request'];
|
||||
|
||||
switch ($request) {
|
||||
// odesilani zmen do POHODY
|
||||
case 'download':
|
||||
return POHODA_ContactsDownload($params);
|
||||
break;
|
||||
|
||||
// prijimani zmen z POHODY
|
||||
case 'upload':
|
||||
return POHODA_ContactsUpload($params);
|
||||
break;
|
||||
|
||||
// pokud je spatny pozadavek
|
||||
default:
|
||||
$response = [
|
||||
'status' => 400,
|
||||
'statusMessage' => getTextString('errors', 400),
|
||||
'serverTimestamp' => iso8601_encode(time()),
|
||||
'requestedParams' => $params,
|
||||
'responseData' => [],
|
||||
];
|
||||
|
||||
return new xmlrpcresp(php_xmlrpc_encode($response));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------
|
||||
// odesilani zmen do POHODY
|
||||
|
||||
function POHODA_ContactsDownload($params)
|
||||
{
|
||||
$params = $params['requestParams'];
|
||||
|
||||
// logError(__FILE__, __LINE__, print_r($params, true), true);
|
||||
|
||||
// pokud neni specifikovano datum od kdy hledat udaje vrati chybu
|
||||
if (!isset($params['dateFrom'])) {
|
||||
$response = [
|
||||
'status' => 406,
|
||||
'statusMessage' => getTextString('errors', 406),
|
||||
'serverTimestamp' => iso8601_encode(time()),
|
||||
'requestedParams' => $params,
|
||||
'responseData' => [],
|
||||
];
|
||||
$response2 = php_xmlrpc_encode($response);
|
||||
|
||||
return new xmlrpcresp($response2);
|
||||
}
|
||||
|
||||
$response = [
|
||||
'status' => 200,
|
||||
'statusMessage' => getTextString('errors', 200),
|
||||
'serverTimestamp' => iso8601_encode(time()),
|
||||
'requestedParams' => $params,
|
||||
'responseData' => [],
|
||||
];
|
||||
|
||||
$query = 'SELECT * FROM '.getTableName('users')." WHERE date_updated >= '".date('Y-m-d H:i:s', iso8601_decode($params['dateFrom']))."'";
|
||||
|
||||
// logError(__FILE__, __LINE__, $query, true);
|
||||
|
||||
$SQL = sqlQuery($query);
|
||||
|
||||
if (sqlNumRows($SQL) == 0) {
|
||||
$response['status'] = 204;
|
||||
$response['statusMessage'] = getTextString('errors', 204);
|
||||
|
||||
return new xmlrpcresp(php_xmlrpc_encode($response));
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
while ($row = @mysql_fetch_assoc($SQL)) {
|
||||
// struktura pro vraceni
|
||||
$dataItem = [];
|
||||
$dataItem = [
|
||||
'contactId' => intval($row['id']),
|
||||
'address' => [
|
||||
'name' => cs_win2ascii($row['name']),
|
||||
'surname' => cs_win2ascii($row['surname']),
|
||||
'company' => cs_win2ascii($row['firm']),
|
||||
'division' => cs_win2ascii($row['']),
|
||||
'ico' => cs_win2ascii($row['ico']),
|
||||
'dic' => cs_win2ascii($row['dic']),
|
||||
'street' => cs_win2ascii($row['street']),
|
||||
'city' => cs_win2ascii($row['city']),
|
||||
'zip' => cs_win2ascii($row['zip']),
|
||||
'region' => '',
|
||||
'country' => cs_win2ascii($row['country']),
|
||||
'phone' => cs_win2ascii($row['phone']),
|
||||
'cellPhone' => cs_win2ascii($row['mobile']),
|
||||
'fax' => cs_win2ascii($row['fax']),
|
||||
'email' => cs_win2ascii($row['email']),
|
||||
'web' => '',
|
||||
'taxpayer' => false, ],
|
||||
'deliveryAddress' => [
|
||||
'name' => cs_win2ascii($row['delivery_name']),
|
||||
'surname' => cs_win2ascii($row['delivery_surname']),
|
||||
'company' => cs_win2ascii($row['delivery_firm']),
|
||||
'division' => '',
|
||||
'street' => cs_win2ascii($row['delivery_street']),
|
||||
'city' => cs_win2ascii($row['delivery_city']),
|
||||
'zip' => cs_win2ascii($row['delivery_zip']),
|
||||
'region' => '',
|
||||
'country' => cs_win2ascii($row['delivery_country']), ],
|
||||
'dateAdded' => iso8601_encode(strtotime($row['date_reg'])),
|
||||
'note' => '',
|
||||
'intNote' => '',
|
||||
'bankAccounts' => [
|
||||
0 => [
|
||||
'accountNo' => cs_win2ascii($row['account_no']),
|
||||
'code' => cs_win2ascii($row['account_bank']),
|
||||
'symVar' => cs_win2ascii($row['account_symbol']),
|
||||
'symConst' => '',
|
||||
'symSpec' => cs_win2ascii($row['account_symbol']),
|
||||
'bankName' => '', ], ], ];
|
||||
|
||||
$response['responseData'][$count] = $dataItem;
|
||||
// $response['responseData'][$count] = $row;
|
||||
++$count;
|
||||
// break;
|
||||
}
|
||||
|
||||
// logError(__FILE__, __LINE__, print_r($response, true), true);
|
||||
|
||||
// $response2 = php_xmlrpc_encode($response);
|
||||
|
||||
// logError(__FILE__, __LINE__, print_r($response2, true), true);
|
||||
|
||||
return new xmlrpcresp(php_xmlrpc_encode($response));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------
|
||||
// prijimani zmen z POHODY
|
||||
|
||||
function POHODA_ContactsUpload($params)
|
||||
{
|
||||
$requestParams = $params['requestParams'];
|
||||
|
||||
$params = $params['requestData'];
|
||||
|
||||
// logError(__FILE__, __LINE__, print_r($params, true), true);
|
||||
|
||||
$response = [
|
||||
'status' => 200,
|
||||
'statusMessage' => getTextString('errors', 200),
|
||||
'requestedParams' => $requestParams,
|
||||
'responseData' => [],
|
||||
];
|
||||
|
||||
// logError(__FILE__, __LINE__, "pocet: ".count($params), true);
|
||||
|
||||
for ($i = 0; $i < count($params); $i++) {
|
||||
// pokud se posle dataItemStatus deleted smaze polozku z databaze
|
||||
if (isset($params[$i]['dataItemStatus']) && ($params[$i]['dataItemStatus'] == 'deleted')) {
|
||||
if (isset($params[$i]['contactId']) && (!empty($params[$i]['contactId']) || $params[$i]['contactId'] != 0)) {
|
||||
$queryDelete = 'DELETE FROM '.getTableName('users').' WHERE id='.intval($params[$i]['contactId']).' ';
|
||||
|
||||
$SQLDelete = sqlQuery($queryDelete);
|
||||
|
||||
if (mysql_affected_rows() != 0) {
|
||||
$structItemDetails = POHODA_getDataItemDetails($params[$i]['contactId'], 'ok', 200, '');
|
||||
$response['responseData'][$i] = $structItemDetails;
|
||||
} else {
|
||||
$structItemDetails = POHODA_getDataItemDetails($params[$i]['contactId'], 'warning', 404, '');
|
||||
$response['responseData'][$i] = $structItemDetails;
|
||||
}
|
||||
|
||||
continue;
|
||||
} else {
|
||||
$structItemDetails = POHODA_getDataItemDetails(0, 'error', 400, '');
|
||||
$response['responseData'][$i] = $structItemDetails;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// pokud se preda contactId nebo neni nulove provede se update polozky, jinak se vlozi nova
|
||||
// queryHead je nutna pro pripad ze contactId predane v params neexistuje v databazi a nedojde k updatu ale provede se dodatecne nove vlozeni
|
||||
if (isset($params[$i]['contactId']) && ($params[$i]['contactId'] != 0)) {
|
||||
$update = true;
|
||||
$queryHead = 'UPDATE '.getTableName('users').' SET ';
|
||||
} else {
|
||||
$update = false;
|
||||
$queryHead = 'REPLACE INTO '.getTableName('users').' SET ';
|
||||
}
|
||||
|
||||
$query = '';
|
||||
|
||||
$query .= "login='".strtolower(cs_win2ascii(utf8ToWin1250($params[$i]['address']['name']).'-'.utf8ToWin1250($params[$i]['address']['surname']))).$i."', ";
|
||||
$query .= (isset($params[$i]['address']['name'])) ? "name='".utf8ToWin1250($params[$i]['address']['name'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['surname'])) ? "surname='".utf8ToWin1250($params[$i]['address']['surname'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['company'])) ? "firm='".utf8ToWin1250($params[$i]['address']['company'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['street'])) ? "street='".utf8ToWin1250($params[$i]['address']['street'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['city'])) ? "city='".utf8ToWin1250($params[$i]['address']['city'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['zip'])) ? "zip='".utf8ToWin1250($params[$i]['address']['zip'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['email'])) ? "email='".utf8ToWin1250($params[$i]['address']['email'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['country'])) ? "country='".utf8ToWin1250($params[$i]['address']['country'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['ico'])) ? "ico='".utf8ToWin1250($params[$i]['address']['ico'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['dic'])) ? "dic='".utf8ToWin1250($params[$i]['address']['dic'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['phone'])) ? "phone='".utf8ToWin1250($params[$i]['address']['phone'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['cellPhone'])) ? "mobile='".utf8ToWin1250($params[$i]['address']['cellPhone'])."', " : '';
|
||||
$query .= (isset($params[$i]['address']['fax'])) ? "fax='".utf8ToWin1250($params[$i]['address']['fax'])."', " : '';
|
||||
$query .= (isset($params[$i]['deliveryAddress']['name']) && !empty($params[$i]['deliveryAddress']['name'])) ? "delivery_name='".utf8ToWin1250($params[$i]['deliveryAddress']['name'])."', " : "delivery_name='".utf8ToWin1250($params[$i]['address']['name'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['surname']) && !empty($params[$i]['deliveryAddress']['surname'])) ? "delivery_surname='".utf8ToWin1250($params[$i]['deliveryAddress']['surname'])."', " : "delivery_surname='".utf8ToWin1250($params[$i]['address']['surname'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['company']) && !empty($params[$i]['deliveryAddress']['company'])) ? "delivery_firm='".utf8ToWin1250($params[$i]['deliveryAddress']['company'])."', " : "delivery_firm='".utf8ToWin1250($params[$i]['address']['company'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['street']) && !empty($params[$i]['deliveryAddress']['street'])) ? "delivery_street='".utf8ToWin1250($params[$i]['deliveryAddress']['street'])."', " : "delivery_street='".utf8ToWin1250($params[$i]['address']['street'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['city']) && !empty($params[$i]['deliveryAddress']['city'])) ? "delivery_city='".utf8ToWin1250($params[$i]['deliveryAddress']['city'])."', " : "delivery_city='".utf8ToWin1250($params[$i]['address']['city'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['zip']) && !empty($params[$i]['deliveryAddress']['zip'])) ? "delivery_zip='".utf8ToWin1250($params[$i]['deliveryAddress']['zip'])."', " : "delivery_zip='".utf8ToWin1250($params[$i]['address']['zip'])."', ";
|
||||
$query .= (isset($params[$i]['deliveryAddress']['country']) && !empty($params[$i]['deliveryAddress']['country'])) ? "delivery_country='".utf8ToWin1250($params[$i]['deliveryAddress']['country'])."', " : "delivery_country='".utf8ToWin1250($params[$i]['address']['country'])."', ";
|
||||
$query .= (isset($params[$i]['bankAccounts'][0]['accountNo'])) ? "account_no='".utf8ToWin1250($params[$i]['bankAccounts'][0]['accountNo'])."', " : '';
|
||||
$query .= (isset($params[$i]['bankAccounts'][0]['code'])) ? "account_bank='".utf8ToWin1250($params[$i]['bankAccounts'][0]['code'])."', " : '';
|
||||
$query .= (isset($params[$i]['bankAccounts'][0]['symSpec'])) ? "account_symbol='".utf8ToWin1250($params[$i]['bankAccounts'][0]['symSpec'])."', " : '';
|
||||
$query .= (isset($params[$i]['dateAdded'])) ? "date_reg='".date('Y-m-d H:i:s', iso8601_decode($params[$i]['dateAdded']))."', " : 'date_reg=NOW(), ';
|
||||
$query .= "date_updated='".date('Y-m-d H:i:s')."' ";
|
||||
|
||||
if ($update) {
|
||||
$queryEnd = 'WHERE id='.intval($params[$i]['contactId']);
|
||||
|
||||
/*if(isset($requestParams['dateFrom']))
|
||||
{
|
||||
//$query .= " AND date_updated <= '".date("Y-m-d H:i:s", iso8601_decode($requestParams['dateFrom']))."'";
|
||||
}*/
|
||||
} else {
|
||||
$queryEnd = '';
|
||||
}
|
||||
|
||||
// logError(__FILE__, __LINE__, $queryHead.$query.$queryEnd, true);
|
||||
|
||||
$SQL = sqlQuery($queryHead.$query.$queryEnd);
|
||||
|
||||
// pokud byl vlozen nebo upraven radek vrati type "ok" a status 200 nebo "warning" a jiny status
|
||||
// pokud nedoslo k upraveni radky ani k vlozeni noveho vrati "error"
|
||||
if (mysql_affected_rows() != 0) {
|
||||
if ($update) {
|
||||
$structItemDetails = POHODA_getDataItemDetails($params[$i]['contactId'], 'ok', 200);
|
||||
} else {
|
||||
$values = POHODA_setDataItemValues('contactId', $params[$i]['contactId'], 'id', sqlInsertId());
|
||||
$structItemDetails = POHODA_getDataItemDetails(sqlInsertId(), 'ok', 200, $values);
|
||||
}
|
||||
} elseif ($update) {
|
||||
// byla pozadovana uprava polozky ale contactId predane v params neexistuje v databazi
|
||||
// vlozi se jako nova polozka a vrati se id nove polozky
|
||||
$queryHead = 'INSERT INTO '.getTableName('users').' SET ';
|
||||
|
||||
// logError(__FILE__, __LINE__, "spatne id pokus o vlozeni nove polozky: ".$queryHead.$query, true);
|
||||
|
||||
$SQL = sqlQuery($queryHead.$query);
|
||||
|
||||
if (mysql_affected_rows() != 0) {
|
||||
$values = POHODA_setDataItemValues('contactId', $params[$i]['contactId'], 'id', sqlInsertId());
|
||||
$structItemDetails = POHODA_getDataItemDetails(sqlInsertId(), 'warning', 206, $values);
|
||||
} else {
|
||||
$values = POHODA_setDataItemValues('contactId', $params[$i]['contactId'], 'id', 0);
|
||||
$structItemDetails = POHODA_getDataItemDetails($params[$i]['contactId'], 'error', 400, $values);
|
||||
}
|
||||
} else {
|
||||
$structItemDetails = POHODA_getDataItemDetails(0, 'error', 500, '');
|
||||
}
|
||||
|
||||
$response['responseData'][$i] = $structItemDetails;
|
||||
}
|
||||
|
||||
// logError(__FILE__, __LINE__, print_r($response['responseData'], true), true);
|
||||
|
||||
return new xmlrpcresp(php_xmlrpc_encode($response));
|
||||
}
|
||||
Reference in New Issue
Block a user