1
0
Fork 0
mirror of synced 2025-04-06 22:53:36 +03:00

Addition to the generation of VAT and unit measurements (#16)

This commit is contained in:
Sergey 2017-05-05 11:52:38 +03:00 committed by Alex Lushpai
parent 38af8e1db3
commit d45c615a07

View file

@ -10,7 +10,7 @@ class MoySkladICMLParser
/**
* развернутые ссылки в запросе
*/
const ASSORTIMENT_EXPAND = 'product,productFolder,product.productFolder,supplier,product.supplier';
const ASSORTIMENT_EXPAND = 'product,productFolder,product.productFolder,supplier,product.supplier,uom,product.uom';
/**
* Таймаут в секундах
@ -217,7 +217,7 @@ class MoySkladICMLParser
*/
protected function parseAssortiment()
{
$product = array();
$products = array();
$offset = 0;
$end = null;
@ -258,23 +258,21 @@ class MoySkladICMLParser
}
}
if (isset($ignoreCategories['externalCode']) && is_array($ignoreCategories['externalCode'])){
if (isset($ignoreCategories['externalCode']) && is_array($ignoreCategories['externalCode'])) {
if (!empty($assortiment['productFolder']['externalCode'])){
if (in_array($assortiment['productFolder']['externalCode'],$ignoreCategories['externalCode'])){
if (!empty($assortiment['productFolder']['externalCode'])) {
if (in_array($assortiment['productFolder']['externalCode'], $ignoreCategories['externalCode'])) {
continue;
}
}
if (!empty($assortiment['product']['productFolder']['externalCode'])){
if (in_array($assortiment['product']['productFolder']['externalCode'],$ignoreCategories['externalCode'])){
if (!empty($assortiment['product']['productFolder']['externalCode'])) {
if (in_array($assortiment['product']['productFolder']['externalCode'], $ignoreCategories['externalCode'])) {
continue;
}
}
}
$url = isset($assortiment['product']['image']['meta']['href']) ?
$assortiment['product']['image']['meta']['href'] : '';
if (isset($assortiment['product']['image']['meta']['href'])){
$url = $assortiment['product']['image']['meta']['href'];
} elseif (isset($assortiment['image']['meta']['href'])) {
@ -320,6 +318,29 @@ class MoySkladICMLParser
),
);
if (isset($assortiment['uom'])){
$products[$assortiment['id']]['unit'] = array (
'code'=>$assortiment['uom']['code'],
'name'=>$assortiment['uom']['name'],
'description'=>$assortiment['uom']['description'],
);
}elseif (isset($assortiment['product']['uom'])){
$products[$assortiment['id']]['unit'] = array (
'code'=>$assortiment['product']['uom']['code'],
'name'=>$assortiment['product']['uom']['name'],
'description'=>$assortiment['product']['uom']['description'],
);
} else {
$products[$assortiment['id']]['unit'] ='';
}
if (isset($assortiment['effectiveVat']) && $assortiment['effectiveVat'] != 0){
$products[$assortiment['id']]['effectiveVat'] = $assortiment['effectiveVat'];
} elseif (isset($assortiment['product']['effectiveVat']) && $assortiment['product']['effectiveVat'] != 0){
$products[$assortiment['id']]['effectiveVat'] = $assortiment['product']['effectiveVat'];
} else {
$products[$assortiment['id']]['effectiveVat'] = 'none';
}
if (isset($assortiment['productFolder']['externalCode'])){
$products[$assortiment['id']]['categoryId'] = $assortiment['productFolder']['externalCode'];
} elseif (isset($assortiment['product']['productFolder']['externalCode'])){
@ -403,6 +424,14 @@ class MoySkladICMLParser
$this->icmlAdd($offerXml, 'purchasePrice', number_format($product['purchasePrice'], 2, '.', ''));
$this->icmlAdd($offerXml, 'name', $product['name']);
$this->icmlAdd($offerXml, 'productName', $product['productName']);
$this->icmlAdd($offerXml, 'vatRate',$product['effectiveVat']);
if ($product['unit'] != '') {
$unitXml = $offerXml->addChild('unit');
$unitXml->addAttribute('code', $product['unit']['code']);
$unitXml->addAttribute('name', $product['unit']['description']);
$unitXml->addAttribute('sym', $product['unit']['name']);
}
if ($product['categoryId']) {
$this->icmlAdd($offerXml, 'categoryId', $product['categoryId']);