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);
     }
 }