Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SageCart{
- function OpenCartConnect($server,$user,$pass,$db){
- $link = mysqli_connect($server, $user, $pass, $db);
- if (!$link):
- echo "Error: Unable to connect to MySQL." . PHP_EOL;
- echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
- echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
- exit;
- endif;
- return $link;
- }
- function SageConnect($FBBD,$FBUSER,$FBPASS){
- if (!($dbh=ibase_connect($FBBD, $FBUSER, $FBPASS))) die('Erro ao conectar: ' . ibase_errmsg());
- return $dbh;
- }
- function logs($dirlogs){
- if(!file_exists($dirlogs)):
- mkdir($dirlogs);
- endif;
- $Clog = date("dmY").".log";
- $flog = $dirlogs."\\".$Clog;
- $fp = fopen($flog,"a+");
- }
- function ShowHelp(){
- echo "
- -----------------------------------------------------------
- produtos_erp - Apenas lista produtos ERP
- produtos_atualiza - Atualiza produtos (ERP -> OpenCart)
- categorias_opencart - Lista categorias OpenCart
- categorias_erp - Lista categorias ERP
- categorias_compara - Compara mas sem atualizar categorias (ERP para OPENCART)
- categorias_atualiza - Compara e atualiza lista de categorias (ERP para OPENCART)
- -----------------------------------------------------------
- \n\n
- ";
- }
- // ----------------------------------------------------------------------------------------- PRODUTOS
- function produtos_opencart($mysqli){
- }
- function produtos_erp($dbh){
- $sql = 'SELECT * FROM PRODUTO'; /* PESQUISA CATEGORIAS ERP */
- $query= ibase_query ($dbh, $sql);
- $DataR = array();
- while($produtos = ibase_fetch_object ($query)):
- $produto = $produtos->DESCRICAO.";-;".$produtos->ID_CATEGORIA.";-;".$produtos->PRECOVENDA3.";-;".$produtos->MARCA;
- array_push($DataR,$produto);
- endwhile;
- return $DataR;
- ibase_close($dbh);
- }
- function produtos_atualiza($mysqli,$dbh){
- $produtos = SageCart::produtos_erp($dbh);
- $datahora = date('Y-m-d h:m:s');
- foreach($produtos as $key=>$r):
- $r = explode(";-;",$r);
- if($r[0] == ""): $r[0] = "n/a"; endif;
- foreach($r as $key=>$tmp):
- $r[$key] = str_replace("'","",$tmp);
- $r[$key] = str_replace("´","",$tmp);
- $r[$key] = str_replace('"','',$tmp);
- $r[$key] = str_replace(',','',$tmp);
- $r[$key] = str_replace(';','',$tmp);
- $r[$key] = str_replace('.','',$tmp);
- endforeach;
- // Verifica se já existe produto com esse nome
- $sqlx = "SELECT * FROM `opencart`.`oc_product_description` WHERE name = '".$r[0]."'";
- $resultt = $mysqli->query($sqlx);
- $nrow = $resultt->num_rows;
- if($nrow == 0){
- // Verifica se fabricante existe e pega o ID
- $sql = "SELECT * FROM oc_manufacturer WHERE name='".$r[3]."'";
- $result = $mysqli->query($sql)or die(mysqli_error($mysqli));
- $reg = $result->fetch_array();
- $row_cnt = $result->num_rows;
- if($row_cnt == "1"):
- $manufacturer_id = $reg['manufacturer_id'];
- else:
- // Se não existe insere no BD e pega o ID
- $sql = "INSERT INTO `opencart`.`oc_manufacturer`
- (`manufacturer_id`, `name`, `image`, `sort_order`)
- VALUES ('', '".$r[3]."', '', '0');";
- $rtur = $mysqli->query($sql)or die(mysqli_error($mysqli));
- $manufacturer_id = $mysqli->insert_id;
- $sql2 = "INSERT INTO `opencart`.`oc_manufacturer_to_store`
- (`manufacturer_id`, `store_id`)
- VALUES ('".$manufacturer_id."', '0');";
- //$rtur2 = $mysqli->query($sql2)or die(mysqli_error($mysqli));
- endif;
- // Cadastra produto
- $sql = "INSERT INTO `opencart`.`oc_product` (`product_id`, `model`, `sku`, `upc`, `ean`, `jan`, `isbn`, `mpn`, `location`, `quantity`, `stock_status_id`, `image`, `manufacturer_id`, `shipping`, `price`, `points`, `tax_class_id`, `date_available`, `weight`, `weight_class_id`, `length`, `width`, `height`, `length_class_id`, `subtract`, `minimum`, `sort_order`, `status`, `viewed`, `date_added`, `date_modified`) VALUES ('', '', '', '', '', '', '', '', '', '1', '', '', '".$manufacturer_id."', '1', '".$r[2]."', '0', '', '0000-00-00', '0.00000000', '0', '0.00000000', '0.00000000', '0.00000000', '1', '1', '1', '1', '1', '0', '".$datahora."', '".$datahora."')";
- if($mysqli->query($sql)): // Se o cadastro da primeira tabela fora Ok cadastra nas outras senão exibe o erro!
- $oid = $mysqli->insert_id;
- // Descrição
- $sql2 = "INSERT INTO `opencart`.`oc_product_description`
- (`product_id`, `language_id`, `name`, `description`, `tag`, `meta_title`, `meta_description`, `meta_keyword`)
- VALUES ('".$oid."', '1', '".$r[0]."', '', '', '', '', '')";
- if(!$mysqli->query($sql2)): echo mysqli_error($mysqli)."\n";endif;
- // Categoria
- $sql3 = "INSERT INTO `opencart`.`oc_product_to_category`
- (`product_id`, `category_id`)
- VALUES ('".$oid."', '".$r[1]."');";
- if(!$mysqli->query($sql3)): echo mysqli_error($mysqli)."\n";endif;
- // Produto Layout
- $sql4 = "INSERT INTO `opencart`.`oc_product_to_layout`
- (`product_id`, `store_id`, `layout_id`)
- VALUES ('".$oid."', '0', '0')";
- if(!$mysqli->query($sql4)): echo mysqli_error($mysqli)."\n";endif;
- // Produto Loja
- $sql5 = "INSERT INTO `opencart`.`oc_product_to_store`
- (`product_id`, `store_id`)
- VALUES ('".$oid."', '0')";
- if(!$mysqli->query($sql5)): echo mysqli_error($mysqli)."\n";endif;
- echo $r[0]." Ok \n";
- else:
- if(@eregi("Duplicate entry",mysqli_error($mysqli))):
- echo " ".$r[0]." -- ja existe \n";
- else:
- echo "Um erro desconhecido: \n\n".mysqli_error($mysqli)."\n";
- endif;
- endif;
- }else{
- echo $r[0]." -- já está cadastrado!\n";
- }
- endforeach;
- ibase_close($dbh);
- }
- // ----------------------------------------------------------------------------------------- CATEGORIAS
- function categorias_opencart($mysqli){ /* PESQUISA CATEGORIAS OPENCART */
- $sql = "SELECT * FROM oc_category_description";
- $result = $mysqli->query($sql)or die(mysqli_error($mysqli));
- $DataR = array();
- while($r = $result->fetch_array()):
- array_push($DataR,$r['name']);
- endwhile;
- return $DataR;
- }
- function categorias_erp($dbh){
- $sql = 'SELECT FIRST 1000 * FROM CATPRODUTO'; /* PESQUISA CATEGORIAS ERP */
- $query= ibase_query ($dbh, $sql);
- $DataR = array();
- while($produtos = ibase_fetch_object ($query)):
- $DataR[$produtos->ID] = $produtos->DESCRICAO.";-;".$produtos->ID_OWNER;
- endwhile;
- return $DataR;
- ibase_close($dbh);
- }
- function categorias_compara($mysqli,$dbh){ /* PESQUISA CATEGORIAS OPENCART E ERP E COMPARA */
- $CatOC = SageCart::categorias_opencart($mysqli);
- $CatERP = SageCart::categorias_erp($dbh);
- $DataR = array();
- foreach($CatERP as $key => $r):
- $r = explode(';-;',$r);
- if($r[1] == ""):
- if(!in_array($r[0], $CatOC)):
- // array_push($DataR,$r);
- $DataR[$key] = $r;
- endif;
- endif;
- endforeach;
- ibase_close($dbh);
- return $DataR;
- }
- function categorias_atualiza($mysqli,$dbh){ /* RECUPERA DADOS DE COMPARAÇÃO categcomp() E ATUALIZA OPENCART*/
- $Comp = SageCart::categorias_compara($mysqli,$dbh);
- if(count($Comp) > 0):
- $datahora = date('Y-m-d h:m:s');
- foreach($Comp as $key => $r):
- $sql_oc_category = "INSERT INTO `opencart`.`oc_category`
- (`category_id`, `image`, `parent_id`, `top`, `column`, `sort_order`, `status`, `date_added`, `date_modified`)
- VALUES ('".$key."', '', '0', '1', '1', '0', '1', '".$datahora."', '".$datahora."');";
- if(!$mysqli->query($sql_oc_category)): echo mysqli_error($mysqli)."\n";endif;
- $sql_oc_category_description = "INSERT INTO `opencart`.`oc_category_description`
- (`category_id`, `language_id`, `name`, `description`, `meta_title`, `meta_description`, `meta_keyword`)
- VALUES ('".$key."', '1', '".$r[0]."', '', '', '', '')";
- if(!$mysqli->query($sql_oc_category_description)): echo mysqli_error($mysqli)."\n";endif;
- $sql_oc_category_path = "INSERT INTO `opencart`.`oc_category_path` (`category_id`,`path_id`,`level`)
- VALUES ('".$key."', '".$key."','0')";
- if(!$mysqli->query($sql_oc_category_path)): echo mysqli_error($mysqli)."\n";endif;
- $sql_oc_category_to_layout = "INSERT INTO `opencart`.`oc_category_to_layout`
- (`category_id`, `store_id`, `layout_id`)
- VALUES ('".$key."', '0', '0');";
- if($mysqli->query($sql_oc_category_to_layout)): echo mysqli_error($mysqli)."\n";endif;
- $sql_oc_category_to_store = "INSERT INTO `opencart`.`oc_category_to_store` (`category_id`, `store_id`) VALUES ('".$key."', '0');";
- $result4 = $mysqli->query($sql_oc_category_to_store) or die("erro 4 - ".mysqli_error($mysqli))."\n";
- endforeach;
- ibase_close($dbh);
- endif;
- }
- function subcategorias_atualiza($mysqli,$dbh){
- $CatERP = SageCart::categorias_erp($dbh);
- $datahora = date('Y-m-d h:m:s');
- foreach($CatERP as $key=>$r):
- $r = explode(";-;",$r);
- if($r[1] != ""):
- //echo $key."--".$r[0]." - ".$r[1]."\n";
- // ATUALIZA SUBCATEGORIAS
- $sql_oc_category = "INSERT INTO `opencart`.`oc_category`
- (`category_id`, `image`, `parent_id`, `top`, `column`, `sort_order`, `status`, `date_added`, `date_modified`)
- VALUES ('".$key."', '', '".$r[1]."', '1', '1', '0', '1', '".$datahora."', '".$datahora."');";
- if($mysqli->query($sql_oc_category)):
- $sql_oc_category_description = "INSERT INTO `opencart`.`oc_category_description`
- (`category_id`, `language_id`, `name`, `description`, `meta_title`, `meta_description`, `meta_keyword`)
- VALUES ('".$key."', '1', '".$r[0]."', '1234', '1234', '1234', '1234')";
- $result1 = $mysqli->query($sql_oc_category_description) or die("erro 1 - ".mysqli_error($mysqli));
- $sql_oc_category_path = "INSERT INTO `opencart`.`oc_category_path` (`category_id`,`path_id`,`level`)
- VALUES ('".$r[1]."', '".$key."','0')";
- $result2 = $mysqli->query($sql_oc_category_path) or die("erro 2 - ".mysqli_error($mysqli));
- $sql_oc_category_to_layout = "INSERT INTO `opencart`.`oc_category_to_layout`
- (`category_id`, `store_id`, `layout_id`)
- VALUES ('".$key."', '0', '0');";
- $result3 = $mysqli->query($sql_oc_category_to_layout) or die("erro 3 - ".mysqli_error($mysqli));
- $sql_oc_category_to_store = "INSERT INTO `opencart`.`oc_category_to_store` (`category_id`, `store_id`)
- VALUES ('".$key."', '0');";
- $result4 = $mysqli->query($sql_oc_category_to_store) or die("erro 4 - ".mysqli_error($mysqli));
- echo $r[1]." Ok \n";
- else:
- if(@eregi("Duplicate entry",mysqli_error($mysqli))):
- echo " ".$r[1]." ja existe \n";
- else:
- echo mysqli_error($mysqli);
- endif;
- endif;
- endif;
- endforeach;
- ibase_close($dbh);
- }
- function cliente_atualiza($mysqli,$dbh){
- }
- }
- echo "
- Integra 0.1 - Sage Start & OpenCart
- http://globalestudio.com.br/
- \n\n";
- $go = new SageCart;
- if(!isset($argv[1])):
- echo "\n\nNenhum argumento foi passado.\n";
- $go->ShowHelp();
- exit;
- endif;
- // DIRETÓRIO DE LOGS
- $dirlogs = "logs";
- $server = "hlcsistemas.com.br";
- $user = "hlcsisro_userloj";
- $pass = "13581321";
- $db = "hlcsisro_loja";
- /* $server = "localhost";
- $user = "root";
- $pass = "";
- $db = "opencart";
- */
- // BASE DE DADOS FIREBIRD
- $FBBD = 'C:\Program Files (x86)\Sage Start\database\startdb.sdb';
- $FBUSER = 'SYSDBA';
- $FBPASS = 'masterkey';
- $link = $go->OpenCartConnect($server,$user,$pass,$db); // CONECTAR OPENCART
- $OCTables = array_column(mysqli_fetch_all($link->query('SHOW TABLES')),0); // ASSOCIAR NOME DE TABELAS A VARIÁVEL $OCTables
- $dbh = $go->SageConnect($FBBD,$FBUSER,$FBPASS); // CONECTAR FIREBIRD
- $go->logs($dirlogs);
- switch($argv[1]):
- case "produtos_opencart":
- $go->produtos_opencart($link);
- break;
- case "produtos_erp":
- foreach($r = $go->produtos_erp($dbh) as $r):
- echo $r."\n";
- endforeach;
- break;
- case "produtos_atualiza":
- $go->produtos_atualiza($link,$dbh);
- break;
- case "categorias_opencart": // LISTAR CATEGORIAS OPENCART
- foreach($go->categorias_opencart($link) as $r):
- echo $r."\n";
- endforeach;
- break;
- case "categorias_erp": // LISTAR CATEGORIAS ERP FIREBIRD
- foreach($go->categorias_erp($dbh) as $r):
- $r = explode(";-;",$r);
- if($r[1] == ""):
- echo $r[0]."\n";
- endif;
- endforeach;
- break;
- case "categorias_compara":
- echo "Categorias que existem no ERP e nao no OPENCART \n\n";
- $r = $go->categorias_compara($link,$dbh);
- foreach($go->categorias_compara($link,$dbh) as $r):
- echo $r[0]."\n";
- endforeach;
- break;
- case "categorias_atualiza":
- echo $go->categorias_atualiza($link,$dbh);
- break;
- case "subcategorias_atualiza":
- $go->subcategorias_atualiza($link,$dbh);
- break;
- case "cliente_atualiza":
- $go->cliente_atualiza($mysqli,$dbh);
- break;
- default:
- echo "Argumento inexistente.\n";
- $go->ShowHelp();
- break;
- endswitch;
- exit;
- /* -----------------------------------------------------------------------------------------------------------------------------------------*/
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement