Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 67 |
Version20160114142234 | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
110 | |
0.00% |
0 / 67 |
up | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
down | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 6 |
|||
mtb_tag | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 14 |
|||
dtb_csv | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 27 |
|||
delete_dtb_csv | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 13 |
<?php | |
namespace DoctrineMigrations; | |
use Doctrine\DBAL\Migrations\AbstractMigration; | |
use Doctrine\DBAL\Schema\Schema; | |
use Doctrine\ORM\EntityManager; | |
use Eccube\Application; | |
use Eccube\Common\Constant; | |
use Eccube\Entity\Csv; | |
use Eccube\Entity\Master\CsvType; | |
use Eccube\Entity\Master\Tag; | |
/** | |
* Auto-generated Migration: Please modify to your needs! | |
*/ | |
class Version20160114142234 extends AbstractMigration | |
{ | |
private $tag_datas = array( | |
array( | |
'id' => 1, | |
'name' => '新商品', | |
'rank' => 1, | |
), | |
array( | |
'id' => 2, | |
'name' => 'おすすめ商品', | |
'rank' => 2, | |
), | |
array( | |
'id' => 3, | |
'name' => '限定品', | |
'rank' => 3, | |
), | |
); | |
private $csv_datas = array( | |
array( | |
'entity_name' => 'Eccube\\\\Entity\\\\Product', | |
'field_name' => 'ProductTag', | |
'reference_field_name' => 'tag_id', | |
'disp_name' => 'タグ(ID)', | |
), | |
array( | |
'entity_name' => 'Eccube\\\\Entity\\\\Product', | |
'field_name' => 'ProductTag', | |
'reference_field_name' => 'Tag', | |
'disp_name' => 'タグ(名称)', | |
), | |
); | |
/** | |
* @param Schema $schema | |
*/ | |
public function up(Schema $schema) | |
{ | |
$app = \Eccube\Application::getInstance(); | |
$em = $app['orm.em']; | |
$this->mtb_tag($em); | |
$this->dtb_csv($em); | |
$em->flush(); | |
} | |
/** | |
* @param Schema $schema | |
*/ | |
public function down(Schema $schema) | |
{ | |
$app = \Eccube\Application::getInstance(); | |
$em = $app['orm.em']; | |
$this->delete_dtb_csv($em); | |
$em->flush(); | |
} | |
/** | |
* insert mtb_tag | |
* | |
* @param EntityManager $em | |
*/ | |
private function mtb_tag(EntityManager $em) | |
{ | |
$Tags = $em->getRepository('\Eccube\Entity\Master\Tag')->findAll(); | |
if (0 < count($Tags)) { | |
// すでに使用している場合は登録しない。 | |
return; | |
} | |
foreach ($this->tag_datas as $data) { | |
$Tag = new Tag(); | |
$Tag | |
->setId($data['id']) | |
->setName($data['name']) | |
->setRank($data['rank']); | |
$em->persist($Tag); | |
} | |
} | |
/** | |
* insert dtb_csv | |
* | |
* @param EntityManager $em | |
*/ | |
private function dtb_csv(EntityManager $em) | |
{ | |
$filter = $em->getFilters()->getFilter('soft_delete'); | |
$filter->setExcludes(array( | |
'Eccube\Entity\Member' | |
)); | |
$CsvType = $em->getRepository('Eccube\Entity\Master\CsvType')->find(CsvType::CSV_TYPE_PRODUCT); | |
$Member = $em->getRepository('Eccube\Entity\Member')->find(1); | |
$Csv = $em->getRepository('Eccube\Entity\Csv')->findOneBy( | |
array('CsvType' => $CsvType), | |
array('rank' => 'DESC') | |
); | |
$rank = $Csv->getRank(); | |
foreach ($this->csv_datas as $data) { | |
$rank++; | |
$Csv = new Csv(); | |
$Csv | |
->setCsvType($CsvType) | |
->setCreator($Member) | |
->setEntityName($data['entity_name']) | |
->setFieldName($data['field_name']) | |
->setReferenceFieldName($data['reference_field_name']) | |
->setDispName($data['disp_name']) | |
->setRank($rank) | |
->setEnableFlg(Constant::ENABLED); | |
$em->persist($Csv); | |
} | |
} | |
/** | |
* delete dtb_csv | |
* | |
* @param EntityManager $em | |
*/ | |
private function delete_dtb_csv(EntityManager $em) | |
{ | |
$repository = $em->getRepository('Eccube\Entity\Csv'); | |
foreach ($this->csv_datas as $data) { | |
$Csv = $repository->findOneBy(array( | |
'entity_name' => $data['entity_name'], | |
'field_name' => $data['field_name'], | |
'reference_field_name' => $data['reference_field_name'], | |
)); | |
if ($Csv) { | |
$em->remove($Csv); | |
} | |
} | |
} | |
} |