1
0
mirror of synced 2024-11-21 21:06:09 +03:00

optimized json responses; +apiUpd initial price; discountPercent; progressBar fixes.

This commit is contained in:
Grisha Pomadchin 2013-07-24 16:14:17 +04:00
parent 7adc05f146
commit 454e1a1553
4 changed files with 66 additions and 54 deletions

View File

@ -12,30 +12,6 @@ class ICrmOrderActions
protected static $CRM_PAYMENT = 'payment_arr'; //order payment Y/N
protected static $CRM_ORDER_LAST_ID = 'order_last_id';
/**
*
* @global type $APPLICATION
* @param type $str in SITE_CHARSET
* @return type $str in utf-8
*/
protected static function toJSON($str) {
global $APPLICATION;
return $APPLICATION->ConvertCharset($str, SITE_CHARSET, 'utf-8');
}
/**
*
* @global type $APPLICATION
* @param type $str in utf-8
* @return type $str in SITE_CHARSET
*/
public static function fromJSON($str) {
global $APPLICATION;
return $APPLICATION->ConvertCharset($str, 'utf-8', SITE_CHARSET);
}
/**
* Mass order uploading, without repeating; always returns true, but writes error log
* @return boolean
@ -163,7 +139,7 @@ class ICrmOrderActions
return true; //all ok!
}
/**
*
* w+ event in bitrix log
@ -176,20 +152,6 @@ class ICrmOrderActions
"ITEM_ID" => $itemId,
"DESCRIPTION" => $description,
));
//self::sendEmail($itemId, $description);
}
/**
*
* send email to admin
*/
private static function sendEmail($itemId, $description) {
$title = 'Error: Intaro CRM.';
$text = 'Error: ' . $itemId . ' - ' . $description;
$to = COption::GetOptionString("main", "email_from");
$from = COption::GetOptionString("main", "email_from");
mail($to, $title, $text, 'From:'.$from);
}
/**
@ -241,13 +203,13 @@ class ICrmOrderActions
);
$phones[] = $phoneWork;
$result = array(
$result = self::clearArr(array(
'externalId' => $arFields['USER_ID'],
'lastName' => $lastName,
'firstName' => $firstName,
'patronymic' => $patronymic,
'phones' => $phones
);
));
$customer = $api->customerEdit($result);
@ -301,17 +263,17 @@ class ICrmOrderActions
$pr = '';
$items[] = array(
'price' => $p['PRICE'],
'purchasePrice' => $pr,
'discount' => $p['DISCOUNT_PRICE'],
'initialPrice' => (double) $p['PRICE'] + (double) $p['DISCOUNT_PRICE'],
'purchasePrice' => $pr,
'discount' => $p['DISCOUNT_PRICE'],
'discountPercent' => $p['DISCOUNT_VALUE'],
'quantity' => $p['QUANTITY'],
'productId' => $p['PRODUCT_ID'],
'productName' => self::toJSON($p['NAME'])
'quantity' => $p['QUANTITY'],
'productId' => $p['PRODUCT_ID'],
'productName' => self::toJSON($p['NAME'])
);
}
$resOrder = array(
$resOrder = self::clearArr(array(
'contactName' => $resOrder['contactName'],
'phone' => $resOrder['phone'],
'email' => $resOrder['email'],
@ -327,7 +289,7 @@ class ICrmOrderActions
'status' => $arParams['optionsPayStatuses'][$arFields['STATUS_ID']],
'deliveryAddress' => $resOrderDeliveryAddress,
'items' => $items
);
));
if($send)
return $api->createOrder($resOrder);
@ -336,4 +298,49 @@ class ICrmOrderActions
}
/**
* removes all empty fields from arrays
* working with nested arrs
*
* @param type $arr
* @return boolean
*/
public static function clearArr($arr) {
if(!$arr || !is_array($arr))
return false;
foreach($arr as $key => $value) {
if(!$value || (is_array($value) && empty($value)))
unset($arr[$key]);
if(is_array($value) && !empty($value))
$arr[$key] = self::clearArr($value);
}
return $arr;
}
/**
*
* @global type $APPLICATION
* @param type $str in SITE_CHARSET
* @return type $str in utf-8
*/
protected static function toJSON($str) {
global $APPLICATION;
return $APPLICATION->ConvertCharset($str, SITE_CHARSET, 'utf-8');
}
/**
*
* @global type $APPLICATION
* @param type $str in utf-8
* @return type $str in SITE_CHARSET
*/
public static function fromJSON($str) {
global $APPLICATION;
return $APPLICATION->ConvertCharset($str, 'utf-8', SITE_CHARSET);
}
}

View File

@ -236,7 +236,7 @@ class intaro_intarocrm extends CModule
&& isset($_POST['ajax']) && ($_POST['ajax'] == 1)) {
include($this->INSTALL_PATH . '/../classes/general/ICrmOrderActions.php');
ICrmOrderActions::uploadOrders(true); // each 500
ICrmOrderActions::uploadOrders(true); // each 50
$lastUpOrderId = COption::GetOptionString($this->MODULE_ID, $this->CRM_ORDER_LAST_ID, 0);
$countLeft = (int) CSaleOrder::GetList(array("ID" => "ASC"), array('>ID' => $lastUpOrderId), array());

View File

@ -35,7 +35,7 @@ IncludeModuleLangFile(__FILE__);
.instal-progress-bar-alignment {
height: 28px;
margin: 0 2px;
margin: 0;
position: relative;
}
@ -51,7 +51,7 @@ IncludeModuleLangFile(__FILE__);
background-image:linear-gradient(top, #27a8d7, #2396ce, #1c79c0);
position: absolute;
overflow: hidden;
top: 2px;
top: 1px;
left:0;
}
@ -164,9 +164,9 @@ IncludeModuleLangFile(__FILE__);
<div class="instal-load-block" id="result">
<div class="instal-load-label" id="status"><?php echo GetMessage('MESS_1'); ?></div>
<div class="instal-progress-bar-outer">
<div class="instal-progress-bar-alignment" style="width: 980px;">
<div class="instal-progress-bar-alignment" style="width: 100%;">
<div class="instal-progress-bar-inner" id="indicator" style="width: 0%;">
<div class="instal-progress-bar-inner-text" style="width: 980px;" id="percent">0%</div>
<div class="instal-progress-bar-inner-text" style="width: 100%;" id="percent">0%</div>
</div>
<span id="percent2">0%</span>
</div>

View File

@ -0,0 +1,5 @@
<?
$arModuleVersion = array(
'VERSION' => '0.4.5',
'VERSION_DATE' => '2013-07-24 13:41:00',
);