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 requestsaveProdutoFornecedores($id_item, $id_item_referencia, $id_empreendimento, $arr)
 {
     $FornecedorDao = new FornecedorDao();
     $ProdutoDao = new ProdutoDao();
     $ProdutoFornecedorDao = new ProdutoFornecedorDao();
     $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
     $fornecedores = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $id_item));
     $fornecedores = $fornecedores ? $fornecedores : array();
     $ids = array();
     $arr = is_array($arr) ? $arr : array();
     foreach ($arr as $key => $value) {
         $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO();
         $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop';
         $ReferenciaIntegracaoTO->tabela = 'tbl_fornecedores';
         $ReferenciaIntegracaoTO->id_item_referencia = $value;
         $ReferenciaIntegracaoTO->tipo = 'fornecedor';
         $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento;
         $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true);
         if ($referencia) {
             $ids[] = $referencia['id_item'];
             $find = getArrayINarray('id_fornecedor', $referencia['id_item'], $fornecedores);
             if ($find == false) {
                 $ProdutoFornecedorTO = new ProdutoFornecedorTO();
                 $ProdutoFornecedorTO->id_produto = $id_item;
                 $ProdutoFornecedorTO->id_fornecedor = $referencia['id_item'];
                 if (!$ProdutoDao->fornecedorProduto($ProdutoFornecedorTO)) {
                     throw new Exception('erro ao vincular fornecedoor ao enpreendimento ', 1);
                 }
             }
         }
     }
     foreach ($fornecedores as $value) {
         if (!in_array($value['id_fornecedor'], $ids)) {
             $ProdutoFornecedorDao->deleteItem('id=' . $value['id_produto_fornecedor']);
         }
     }
 }