public function importProducts(Import $entity, $output) { $sql = ' SELECT p.*, o.nombre as opticName, m.nombre as brand, mo.nombre as model, s.nombre as category FROM `producto` AS p ' . ' LEFT JOIN optica AS o ON o.id = p.id_optica ' . ' LEFT JOIN servicio AS s ON s.id = p.id_servicio ' . ' LEFT JOIN marca AS m ON m.id_marca = p.id_marca ' . ' LEFT JOIN modelo AS mo ON mo.id_modelo = p.id_modelo ' . ' ORDER BY p.id ' . ' LIMIT ' . $entity->getLimitStart() . ', ' . $entity->getLimitEnd(); $link = mysqli_connect($entity->getServer(), $entity->getUsername(), $entity->getPassword(), $entity->getDbname()) or die('No se pudo conectar: ' . mysqli_error($link)); $resultado = $link->query($sql); $x = 0; if (mysqli_num_rows($resultado) > 0) { while ($fila = mysqli_fetch_assoc($resultado)) { $x++; print_r($x . '-' . utf8_encode($fila['nombre'])); echo PHP_EOL; $em = $this->container->get('doctrine')->getManager(); $optic = $em->getRepository('CoreBundle:Optic')->findOneByName(utf8_encode($fila['opticName'])); $category = $em->getRepository('EcommerceBundle:Category')->findOneByName(utf8_encode($fila['category'])); $brand = $em->getRepository('EcommerceBundle:Brand')->findOneByName(utf8_encode($fila['brand'])); $model = $em->getRepository('EcommerceBundle:BrandModel')->findOneByName(utf8_encode($fila['model'])); //Create Products if ($optic instanceof Optic && $fila['id'] != 746 && $fila['id'] != 747 && $fila['id'] != 748 && $fila['id'] != 749 && $fila['id'] != 750 && $fila['id'] != 751 && $fila['id'] != 752 && $fila['id'] != 753) { $product = new Product(); $product->setName(utf8_encode($fila['nombre'])); $product->setDescription(utf8_encode($fila['descripcion'])); if ($fila['precio_original'] != '') { $product->setInitPrice($fila['precio_original']); } else { $product->setInitPrice(0); } $product->setPrice($fila['precio']); if ($fila['tipo_precio'] != '') { $product->setPriceType($fila['tipo_precio']); } else { $product->setPriceType(0); } $product->setDiscount($fila['descuento']); $product->setDiscountType($fila['tipo_descuento']); if ($fila['stock'] != '') { $product->setStock($fila['stock']); } else { $product->setStock(0); } $product->setWeight($fila['kilos']); $product->setOutlet($fila['outlet']); $product->setPublic($fila['publicado']); if ($fila['recoger_tienda'] != '') { $product->setStorePickup($fila['recoger_tienda']); } else { $product->setStorePickup(0); } $product->setMetaTitle(utf8_encode($fila['meta_titulo'])); $product->setMetaDescription(utf8_encode($fila['meta_descripcion'])); $product->setMetaTags(utf8_encode($fila['meta_keywords'])); $product->setOptic($optic); $product->setBrand($brand); $product->setModel($model); $product->setCategory($category); $product->setActive(true); $product->setAvailable(true); $product->setHighlighted(false); $product->setFreeTransport(false); $slug = $this->slugify(utf8_encode($fila['nombre'] . '-' . $optic->getCity())); // $p = $em->getRepository('EcommerceBundle:Product')->findOneBySlug($slug); // if($p instanceof Product) $slug = $slug.'_'.rand(1000,9999); $product->setSlug($slug); $em->persist($product); $em->flush(); //image if ($fila['imagen'] != '') { $imagePath = ''; $dir = '/home/sebastian/www/src/Symfony/web/uploads/documents'; $absoluteImagePath = $dir . '/' . utf8_encode($fila['imagen']); if (file_exists($absoluteImagePath . '.jpeg')) { $imagePath = utf8_encode($fila['imagen']) . '.jpeg'; } if (file_exists($absoluteImagePath . '.jpg')) { $imagePath = utf8_encode($fila['imagen']) . '.jpg'; } if (file_exists($absoluteImagePath . '.gif')) { $imagePath = utf8_encode($fila['imagen']) . '.gif'; } if (file_exists($absoluteImagePath . '.png')) { $imagePath = utf8_encode($fila['imagen']) . '.png'; } //Thumb $imagePathThumb = ''; $absoluteImagePathThumb = $dir . '/' . utf8_encode($fila['imagen']) . '_260.jpg'; if (file_exists($absoluteImagePathThumb)) { $imagePathThumb = utf8_encode($fila['imagen']) . '_260.jpg'; } $imagePathThumb2 = ''; $absoluteImagePathThumb2 = $dir . '/' . utf8_encode($fila['imagen']) . '_142.jpg'; if (file_exists($absoluteImagePathThumb2)) { $imagePathThumb2 = utf8_encode($fila['imagen']) . '_142.jpg'; } if ($imagePath == '') { $dir = 'http://web.com/uploads/documents/'; $imagePath = $fila['imagen'] . '.' . $fila['extension_img']; } print_r($dir . '/' . $imagePath); echo PHP_EOL; @mkdir(__DIR__ . '/../../../../../web/uploads/images/product'); @mkdir(__DIR__ . '/../../../../../web/uploads/images/product/' . $product->getId()); @mkdir(__DIR__ . '/../../../../../web/uploads/images/product/' . $product->getId() . '/thumbnail'); copy($dir . '/' . $imagePath, __DIR__ . '/../../../../../web/uploads/images/product/' . $product->getId() . '/' . $imagePath); if ($imagePathThumb != '') { copy($dir . '/' . $imagePathThumb, __DIR__ . '/../../../../../web/uploads/images/product/' . $product->getId() . '/thumbnail/' . $imagePathThumb); } if ($imagePathThumb2 != '') { copy($dir . '/' . $imagePathThumb2, __DIR__ . '/../../../../../web/uploads/images/product/' . $product->getId() . '/thumbnail/' . $imagePathThumb2); } $image0 = new Image(); $image0->setPath($imagePath); $product->addImage($image0); $em->persist($image0); } $em->flush(); } } } }