public static function AtualizaEstoquePrestaShop() { $dados = $_POST; $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $PrestaShopDao = new PrestaShopDao($dados['id_empreendimento']); $ProdutoCombinacaoDao = new ProdutoCombinacaoDao(); $saida = array(); foreach ($dados['produtos'] as $id_produto) { $referencia = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produtos', 'id_item' => $id_produto, 'tipo' => 'produto', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); if ($referencia) { $combinacoes = $ProdutoCombinacaoDao->get(null, null, array('tpc.id_produto' => $id_produto)); $combinacoes = $combinacoes ? $combinacoes : array(); foreach ($combinacoes as $combinacao) { $referenciaCombination = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produto_combinacao', 'id_item' => $combinacao['id_produto_combinacao'], 'tipo' => 'combinacao', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $combinacao['id_combinacao'], $referencia['id_item_referencia'], $referenciaCombination['id_item_referencia']); } if (count($combinacoes) == 0) { $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $id_produto, $referencia['id_item_referencia'], 0); } } else { $combinacoes = $ProdutoCombinacaoDao->get(null, null, array('tpc.id_combinacao' => $id_produto)); $combinacoes = $combinacoes ? $combinacoes : array(); foreach ($combinacoes as $combinacao) { $referenciaCombination = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produto_combinacao', 'id_item' => $combinacao['id_produto_combinacao'], 'tipo' => 'combinacao', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $referencia = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_produtos', 'id_item' => $combinacao['id_produto'], 'tipo' => 'produto', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0)); $saida[] = $PrestaShopDao->atualizaEstoquePrestaShop($dados['id_empreendimento'], $combinacao['id_combinacao'], $referencia['id_item_referencia'], $referenciaCombination['id_item_referencia']); } } } Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array('status' => true)))->send(); }
public function editProducts($dados = array()) { $xml = $this->webService->get(array('resource' => 'products', 'id' => $dados->id)); $resources = $xml->children()->children(); foreach ($resources as $key => $value) { $is_object = false; foreach ($value as $y) { $is_object = true; break; } if (!$is_object) { $resources->{$key} = getKeyObj($dados, $key); if (empty($resources->{$key}) && $resources->{$key} != 0) { unset($resources->{$key}[0][0]); } } } unset($resources->associations->categories); $resources->associations->addChild('categories'); $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); foreach ($dados->categories as $key => $value) { $referenciaCategoria = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_categorias', 'id_item' => $value, 'tipo' => 'categoria', 'id_empreendimento' => $dados->id_empreendimento, 'flg_excluido' => 0)); if ($referenciaCategoria) { $categorie = $resources->associations->categories->addChild("categorie"); $categorie->addChild('id', $referenciaCategoria['id_item_referencia']); } } if (isset($dados->category) && !empty($dados->category)) { $resources->id_category_default = $dados->category; if (count($resources->xpath('//category[id=' . $dados->category . ']')) == 0) { $categorie = $resources->associations->categories->addChild("category"); $categorie->addChild('id', $dados->category); } } unset($resources->manufacturer_name); unset($resources->quantity); unset($resources->id_default_image); //header('content-type:text/xml'); //echo $xml->asXML(); //die; /*foreach ($resources->associations->categories->category as $key => $value) { unset($value->id); unset($value); }*/ $count_index = 0; foreach ($resources->name->language as $key => $value) { $resources->name->language[$count_index] = getKeyObj($dados, 'name'); $count_index++; } $count_index = 0; foreach ($resources->link_rewrite->language as $key => $value) { $resources->link_rewrite->language[$count_index] = URLify::filter(getKeyObj($dados, 'name')); $count_index++; } $count_index = 0; foreach ($resources->description->language as $key => $value) { $resources->description->language[$count_index] = getKeyObj($dados, 'description'); $count_index++; } $count_index = 0; foreach ($resources->description_short->language as $key => $value) { $resources->description_short->language[$count_index] = getKeyObj($dados, 'description_short'); $count_index++; } $count_index = 0; foreach ($resources->meta_description->language as $key => $value) { $resources->meta_description->language[$count_index] = getKeyObj($dados, 'meta_description'); $count_index++; } $count_index = 0; foreach ($resources->meta_title->language as $key => $value) { $resources->meta_title->language[$count_index] = getKeyObj($dados, 'meta_title'); $count_index++; } try { $opt = array('resource' => 'products'); $opt['putXml'] = $xml->asXML(); $opt['id'] = $resources->id; $xml = $this->webService->edit($opt); return array('status' => true, 'responseXml' => $xml->asXML(), 'produto' => $xml->product); } catch (PrestaShopWebserviceException $e) { return array('status' => false, 'errors' => $this->webService->response->errors); } }