diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php index 6b766c5c8..fadec8545 100644 --- a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php @@ -22,6 +22,7 @@ namespace Chill\ThirdPartyBundle\Entity; +use Chill\MainBundle\Entity\User; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\ArrayCollection; @@ -41,13 +42,13 @@ use Symfony\Component\Serializer\Annotation\DiscriminatorMap; * @ORM\Entity(repositoryClass="Chill\ThirdPartyBundle\Repository\ThirdPartyRepository") * @DiscriminatorMap(typeProperty="type", mapping={ * "thirdparty"=ThirdParty::class - *}) + * }) + * @ORM\HasLifecycleCallbacks() */ class ThirdParty { /** * @var int - * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") @@ -56,15 +57,75 @@ class ThirdParty /** * @var string - * * @ORM\Column(name="name", type="string", length=255) * @Assert\Length(min="2") */ private $name; + /** + * [fr] Raison sociale + * @var string + * @ORM\Column(name="name_company", type="string", length=255, nullable=true) + * @Assert\Length(min="3") + */ + private $nameCompany; + + /** + * [fr] Sigle + * @var string + * @ORM\Column(name="acronym", type="string", length=64, nullable=true) + * @Assert\Length(min="2") + */ + private $acronym; + + /** + * @var ThirdPartyCategory + * @ORM\ManyToMany(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdPartyCategory") + * @ORM\JoinTable(name="chill_3party.thirdparty_category", + * joinColumns={@ORM\JoinColumn(name="thirdparty_id", referencedColumnName="id")}, + * inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}) + */ + private $categories; + + /** + * @var array|null + * @ORM\Column(name="types", type="json", nullable=true) + * @Assert\Count(min=1) + */ + private $type; + + /** + * Contact Persons: One Institutional ThirdParty has Many Contact Persons + * @var ThirdParty + * @ORM\OneToMany(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", mappedBy="parent") + */ + private $children; + + /** + * Institutional ThirdParty: Many Contact Persons have One Institutional ThirdParty + * @var ThirdParty + * @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", inversedBy="children") + * @ORM\JoinColumn(name="parent_id", referencedColumnName="id") + */ + private $parent; + + /** + * @var ThirdPartyCivility + * @ORM\OneToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdPartyCivility") + * @ORM\JoinColumn(name="civility", referencedColumnName="id", nullable=true) + */ + private $civility; + + /** + * [fr] Qualité + * @var ThirdPartyProfession + * @ORM\OneToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdPartyProfession") + * @ORM\JoinColumn(name="profession", referencedColumnName="id", nullable=true) + */ + private $profession; + /** * @var string|null - * * @ORM\Column(name="telephone", type="string", length=64, nullable=true) * @Assert\Regex("/^([\+{1}])([0-9\s*]{4,20})$/", * message="Invalid phone number: it should begin with the international prefix starting with ""+"", hold only digits and be smaller than 20 characters. Ex: +33123456789" @@ -74,41 +135,11 @@ class ThirdParty /** * @var string|null - * * @ORM\Column(name="email", type="string", length=255, nullable=true) * @Assert\Email(checkMX=false) */ private $email; - /** - * @var string|null - * - * @ORM\Column(name="comment", type="text", nullable=true) - */ - private $comment; - - /** - * @var array|null - * - * @ORM\Column(name="types", type="json", nullable=true) - * @Assert\Count(min=1) - */ - private $type; - - /** - * @var boolean - * @ORM\Column(name="active", type="boolean", options={"defaut": true}) - */ - private $active = true; - - /** - * @var Collection instances of Center - * @ORM\ManyToMany(targetEntity="\Chill\MainBundle\Entity\Center") - * @ORM\JoinTable(name="chill_3party.party_center") - * @Assert\Count(min=1) - */ - private $centers; - /** * @var Address|null * @ORM\ManyToOne(targetEntity="\Chill\MainBundle\Entity\Address", @@ -117,12 +148,71 @@ class ThirdParty */ private $address; + /** + * @var boolean + * @ORM\Column(name="active", type="boolean", options={"defaut": true}) + */ + private $active = true; + + /** + * @var string|null + * @ORM\Column(name="comment", type="text", nullable=true) + */ + private $comment; + + /** + * @var Collection + * @ORM\ManyToMany(targetEntity="\Chill\MainBundle\Entity\Center") + * @ORM\JoinTable(name="chill_3party.party_center") + * @Assert\Count(min=1) + */ + private $centers; + + /** + * @var \DateTimeImmutable + * @ORM\Column(name="created_at", type="datetime", nullable=false) + */ + private $createdAt; + + /** + * @var \DateTime + * @ORM\Column(name="updated_at", type="datetime", nullable=true) + */ + private $updatedAt; + + /** + * @var User + * @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User") + * @ORM\JoinColumn(name="updated_by", referencedColumnName="id") + */ + private $updatedBy; + + + /** + * @ORM\PrePersist() + */ + public function prePersist() + { + $this->createdAt = new \DateTimeImmutable(); + } + + /** + * @ORM\PreUpdate() + */ + public function preUpdate() + { + $this->updatedAt = new \DateTime(); + } + + /** * ThirdParty constructor. */ public function __construct() { $this->centers = new ArrayCollection(); + $this->categories = new ArrayCollection(); + $this->children = new ArrayCollection(); } /** @@ -342,4 +432,207 @@ class ThirdParty { return $this->getName(); } + + /** + * @return string|null + */ + public function getNameCompany(): ?string + { + return $this->nameCompany; + } + + /** + * @param string $nameCompany + * @return ThirdParty + */ + public function setNameCompany(string $nameCompany): ThirdParty + { + $this->nameCompany = $nameCompany; + return $this; + } + + /** + * @return string + */ + public function getAcronym(): ?string + { + return $this->acronym; + } + + /** + * @param string $acronym + * @return $this + */ + public function setAcronym(string $acronym): ThirdParty + { + $this->acronym = $acronym; + return $this; + } + + /** + * @return Collection + */ + public function getCategories(): Collection + { + return $this->categories; + } + + /** + * @param ThirdPartyCategory $category + * @return $this + */ + public function addCategory(ThirdPartyCategory $category): self + { + $this->categories[] = $category; + return $this; + } + + /** + * @param ThirdPartyCategory $category + * @return $this + */ + public function removeCategory(ThirdPartyCategory $category): self + { + $this->categories->removeElement($category); + return $this; + } + + /** + * @return Collection + */ + public function getChildren(): Collection + { + return $this->children; + } + + /** + * @param ThirdParty $child + * @return $this + */ + public function addChild(ThirdParty $child): self + { + $this->children[] = $child; + return $this; + } + + /** + * @param ThirdParty $child + * @return $this + */ + public function removeChild(ThirdParty $child): self + { + $this->categories->removeElement($child); + return $this; + } + + /** + * @return ThirdParty + */ + public function getParent(): ThirdParty + { + return $this->parent; + } + + /** + * @param ThirdParty $parent + * @return $this + */ + public function setParent(ThirdParty $parent): ThirdParty + { + $this->parent = $parent; + return $this; + } + + /** + * @return ThirdPartyCivility|null + */ + public function getCivility(): ?ThirdPartyCivility + { + return $this->civility; + } + + /** + * @param ThirdPartyCivility $civility + * @return $this + */ + public function setCivility(ThirdPartyCivility $civility): ThirdParty + { + $this->civility = $civility; + return $this; + } + + /** + * @return ThirdPartyProfession + */ + public function getProfession(): ?ThirdPartyProfession + { + return $this->profession; + } + + /** + * @param ThirdPartyProfession $profession + * @return $this + */ + public function setProfession(ThirdPartyProfession $profession): ThirdParty + { + $this->profession = $profession; + return $this; + } + + /** + * @return \DateTimeImmutable + */ + public function getCreatedAt(): \DateTimeImmutable + { + return $this->createdAt; + } + + /** + * @param \DateTimeImmutable $createdAt + * @return $this + */ + public function setCreatedAt(\DateTimeImmutable $createdAt): ThirdParty + { + $this->createdAt = $createdAt; + return $this; + } + + /** + * @return \DateTime + */ + public function getUpdatedAt(): \DateTime + { + return $this->updatedAt; + } + + /** + * @param \DateTime $updatedAt + * @return $this + */ + public function setUpdatedAt(\DateTime $updatedAt): ThirdParty + { + $this->updatedAt = $updatedAt; + return $this; + } + + /** + * @return User + */ + public function getUpdatedBy(): User + { + return $this->updatedBy; + } + + /** + * @param User $updatedBy + * @return $this + */ + public function setUpdatedBy(User $updatedBy): ThirdParty + { + $this->updatedBy = $updatedBy; + return $this; + } + + + } diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCategory.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCategory.php new file mode 100644 index 000000000..ee0a633e6 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCategory.php @@ -0,0 +1,79 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Entity; + +use Chill\ThirdPartyBundle\Repository\ThirdPartyCategoryRepository; +use Doctrine\ORM\Mapping as ORM; + +/** + * @ORM\Table(name="chill_3party.party_category") + * @ORM\Entity(repositoryClass=ThirdPartyCategoryRepository::class) + */ +class ThirdPartyCategory +{ + /** + * @ORM\Id + * @ORM\GeneratedValue + * @ORM\Column(type="integer") + */ + private $id; + + /** + * @ORM\Column(type="json") + */ + private $name = []; + + /** + * @ORM\Column(type="boolean") + */ + private $active = true; + + public function getId(): ?int + { + return $this->id; + } + + public function getName(): ?array + { + return $this->name; + } + + public function setName(array $name): self + { + $this->name = $name; + + return $this; + } + + public function getActive(): ?bool + { + return $this->active; + } + + public function setActive(bool $active): self + { + $this->active = $active; + + return $this; + } +} diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCivility.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCivility.php new file mode 100644 index 000000000..6d09f05f1 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyCivility.php @@ -0,0 +1,79 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Entity; + +use Chill\ThirdPartyBundle\Repository\ThirdPartyCivilityRepository; +use Doctrine\ORM\Mapping as ORM; + +/** + * @ORM\Table(name="chill_3party.party_civility") + * @ORM\Entity(repositoryClass=ThirdPartyCivilityRepository::class) + */ +class ThirdPartyCivility +{ + /** + * @ORM\Id + * @ORM\GeneratedValue + * @ORM\Column(type="integer") + */ + private $id; + + /** + * @ORM\Column(type="json") + */ + private $name = []; + + /** + * @ORM\Column(type="boolean") + */ + private $active = true; + + public function getId(): ?int + { + return $this->id; + } + + public function getName(): ?array + { + return $this->name; + } + + public function setName(array $name): self + { + $this->name = $name; + + return $this; + } + + public function getActive(): ?bool + { + return $this->active; + } + + public function setActive(bool $active): self + { + $this->active = $active; + + return $this; + } +} diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyProfession.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyProfession.php new file mode 100644 index 000000000..0a9048e25 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdPartyProfession.php @@ -0,0 +1,79 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Entity; + +use Chill\ThirdPartyBundle\Repository\ThirdPartyProfessionRepository; +use Doctrine\ORM\Mapping as ORM; + +/** + * @ORM\Table(name="chill_3party.party_profession") + * @ORM\Entity(repositoryClass=ThirdPartyProfessionRepository::class) + */ +class ThirdPartyProfession +{ + /** + * @ORM\Id + * @ORM\GeneratedValue + * @ORM\Column(type="integer") + */ + private $id; + + /** + * @ORM\Column(type="json") + */ + private $name = []; + + /** + * @ORM\Column(type="boolean") + */ + private $active = true; + + public function getId(): ?int + { + return $this->id; + } + + public function getName(): ?array + { + return $this->name; + } + + public function setName(array $name): self + { + $this->name = $name; + + return $this; + } + + public function getActive(): ?bool + { + return $this->active; + } + + public function setActive(bool $active): self + { + $this->active = $active; + + return $this; + } +} diff --git a/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCategoryRepository.php b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCategoryRepository.php new file mode 100644 index 000000000..ee5e92eda --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCategoryRepository.php @@ -0,0 +1,42 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Repository; + +use Chill\ThirdPartyBundle\Entity\ThirdPartyCategory; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Persistence\ManagerRegistry; + +/** + * @method ThirdPartyCategory|null find($id, $lockMode = null, $lockVersion = null) + * @method ThirdPartyCategory|null findOneBy(array $criteria, array $orderBy = null) + * @method ThirdPartyCategory[] findAll() + * @method ThirdPartyCategory[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + */ +class ThirdPartyCategoryRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, ThirdPartyCategory::class); + } + +} diff --git a/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCivilityRepository.php b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCivilityRepository.php new file mode 100644 index 000000000..5c965a830 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyCivilityRepository.php @@ -0,0 +1,42 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Repository; + +use Chill\ThirdPartyBundle\Entity\ThirdPartyCivility; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Persistence\ManagerRegistry; + +/** + * @method ThirdPartyCivility|null find($id, $lockMode = null, $lockVersion = null) + * @method ThirdPartyCivility|null findOneBy(array $criteria, array $orderBy = null) + * @method ThirdPartyCivility[] findAll() + * @method ThirdPartyCivility[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + */ +class ThirdPartyCivilityRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, ThirdPartyCivility::class); + } + +} diff --git a/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyProfessionRepository.php b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyProfessionRepository.php new file mode 100644 index 000000000..1216ee018 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyProfessionRepository.php @@ -0,0 +1,42 @@ +, + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\ThirdPartyBundle\Repository; + +use Chill\ThirdPartyBundle\Entity\ThirdPartyProfession; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Persistence\ManagerRegistry; + +/** + * @method ThirdPartyProfession|null find($id, $lockMode = null, $lockVersion = null) + * @method ThirdPartyProfession|null findOneBy(array $criteria, array $orderBy = null) + * @method ThirdPartyProfession[] findAll() + * @method ThirdPartyProfession[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) + */ +class ThirdPartyProfessionRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, ThirdPartyProfession::class); + } + +} diff --git a/src/Bundle/ChillThirdPartyBundle/migrations/Version20210719105918.php b/src/Bundle/ChillThirdPartyBundle/migrations/Version20210719105918.php new file mode 100644 index 000000000..cb7ba9835 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/migrations/Version20210719105918.php @@ -0,0 +1,79 @@ +addSql('CREATE SEQUENCE chill_3party.party_category_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); + $this->addSql('CREATE SEQUENCE chill_3party.party_civility_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); + $this->addSql('CREATE SEQUENCE chill_3party.party_profession_id_seq INCREMENT BY 1 MINVALUE 1 START 1'); + $this->addSql('CREATE TABLE chill_3party.party_category (id INT NOT NULL, name JSON NOT NULL, active BOOLEAN NOT NULL, PRIMARY KEY(id))'); + $this->addSql('CREATE TABLE chill_3party.party_civility (id INT NOT NULL, name JSON NOT NULL, active BOOLEAN NOT NULL, PRIMARY KEY(id))'); + $this->addSql('CREATE TABLE chill_3party.party_profession (id INT NOT NULL, name JSON NOT NULL, active BOOLEAN NOT NULL, PRIMARY KEY(id))'); + $this->addSql('CREATE TABLE chill_3party.thirdparty_category (thirdparty_id INT NOT NULL, category_id INT NOT NULL, PRIMARY KEY(thirdparty_id, category_id))'); + $this->addSql('CREATE INDEX IDX_70495637C7D3A8E6 ON chill_3party.thirdparty_category (thirdparty_id)'); + $this->addSql('CREATE INDEX IDX_7049563712469DE2 ON chill_3party.thirdparty_category (category_id)'); + $this->addSql('ALTER TABLE chill_3party.thirdparty_category ADD CONSTRAINT FK_70495637C7D3A8E6 FOREIGN KEY (thirdparty_id) REFERENCES chill_3party.third_party (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_3party.thirdparty_category ADD CONSTRAINT FK_7049563712469DE2 FOREIGN KEY (category_id) REFERENCES chill_3party.party_category (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD parent_id INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD civility INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD profession INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD updated_by INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD name_company VARCHAR(255) DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD acronym VARCHAR(64) DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD created_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT \'2015-01-01\' NOT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD updated_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD CONSTRAINT FK_D952467B727ACA70 FOREIGN KEY (parent_id) REFERENCES chill_3party.third_party (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD CONSTRAINT FK_D952467B384D4799 FOREIGN KEY (civility) REFERENCES chill_3party.party_civility (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD CONSTRAINT FK_D952467BBA930D69 FOREIGN KEY (profession) REFERENCES chill_3party.party_profession (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('ALTER TABLE chill_3party.third_party ADD CONSTRAINT FK_D952467B16FE72E1 FOREIGN KEY (updated_by) REFERENCES users (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('CREATE INDEX IDX_D952467B727ACA70 ON chill_3party.third_party (parent_id)'); + $this->addSql('CREATE UNIQUE INDEX UNIQ_D952467B384D4799 ON chill_3party.third_party (civility)'); + $this->addSql('CREATE UNIQUE INDEX UNIQ_D952467BBA930D69 ON chill_3party.third_party (profession)'); + $this->addSql('CREATE INDEX IDX_D952467B16FE72E1 ON chill_3party.third_party (updated_by)'); + $this->addSql('ALTER INDEX chill_3party.idx_c65d4397c7d3a8e6 RENAME TO IDX_14DC4475C7D3A8E6'); + $this->addSql('ALTER INDEX chill_3party.idx_c65d43975932f377 RENAME TO IDX_14DC44755932F377'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE chill_3party.thirdparty_category DROP CONSTRAINT FK_7049563712469DE2'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP CONSTRAINT FK_D952467B384D4799'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP CONSTRAINT FK_D952467BBA930D69'); + $this->addSql('DROP SEQUENCE chill_3party.party_category_id_seq CASCADE'); + $this->addSql('DROP SEQUENCE chill_3party.party_civility_id_seq CASCADE'); + $this->addSql('DROP SEQUENCE chill_3party.party_profession_id_seq CASCADE'); + $this->addSql('DROP TABLE chill_3party.party_category'); + $this->addSql('DROP TABLE chill_3party.party_civility'); + $this->addSql('DROP TABLE chill_3party.party_profession'); + $this->addSql('DROP TABLE chill_3party.thirdparty_category'); + $this->addSql('ALTER INDEX chill_3party.idx_14dc44755932f377 RENAME TO idx_c65d43975932f377'); + $this->addSql('ALTER INDEX chill_3party.idx_14dc4475c7d3a8e6 RENAME TO idx_c65d4397c7d3a8e6'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP CONSTRAINT FK_D952467B727ACA70'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP CONSTRAINT FK_D952467B16FE72E1'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP parent_id'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP civility'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP profession'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP updated_by'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP name_company'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP acronym'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP created_at'); + $this->addSql('ALTER TABLE chill_3party.third_party DROP updated_at'); + } +} diff --git a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml index 4d5461877..5b021e032 100644 --- a/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillThirdPartyBundle/translations/messages.fr.yml @@ -12,6 +12,19 @@ thirdparty.No_phonenumber: Aucun numéro de téléphone thirdparty.No_email: Aucun email thirdparty.No_comment: Aucun commentaire +thirdparty.NameCompany: Raison sociale +thirdparty.Acronym: Sigle +thirdparty.Categories: Catégories +thirdparty.Child: Personne de contact +thirdparty.Children: Personnes de contact +thirdparty.Parent: Tiers institutionnel +thirdparty.Parents: Tiers institutionnels +thirdparty.Civility: Civilité +thirdparty.Profession: Qualité +thirdparty.CreatedAt: Date de création +thirdparty.UpdatedAt: Date de la dernière modification +thirdparty.UpdateBy: Utilisateur qui a effectué la dernière modification + New third party: Ajouter un nouveau tiers Show third party %name%: Tiers "%name%" Create third party: Créer un tiers