From c9b55693162bae7e368759c0db25d54e102dde4a Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Wed, 22 Nov 2017 13:51:04 -0500 Subject: [PATCH] Sort lists, and implement proper money type mapping --- app/config/config.yml | 3 ++ .../Controller/CameraController.php | 7 +++- .../Controller/CameraTypeController.php | 4 ++- .../Controller/FlashController.php | 6 +++- .../Controller/LensesController.php | 9 ++++- .../PreviouslyOwnedCameraController.php | 6 +++- .../PreviouslyOwnedFlashController.php | 5 ++- .../PreviouslyOwnedLensesController.php | 8 ++++- src/CameraBundle/Entity/CameraTrait.php | 2 +- src/CameraBundle/Entity/Flash.php | 14 ++++++++ src/CameraBundle/Entity/FlashTrait.php | 35 +++++++++++++------ src/CameraBundle/Entity/LensTrait.php | 16 +-------- src/CameraBundle/Entity/Lenses.php | 14 ++++++++ .../Entity/PreviouslyOwnedFlash.php | 15 ++++++++ .../Entity/PreviouslyOwnedLenses.php | 14 ++++++++ .../Entity/PurchasePriceTrait.php | 8 +++-- src/CameraBundle/Form/FlashType.php | 1 + .../Form/PreviouslyOwnedFlashType.php | 18 ++++++++-- src/CameraBundle/Types/MoneyType.php | 31 ++++++++++++++++ src/CameraBundle/ValueObject/Money.php | 22 ++++++++++++ 20 files changed, 201 insertions(+), 37 deletions(-) create mode 100644 src/CameraBundle/Types/MoneyType.php create mode 100644 src/CameraBundle/ValueObject/Money.php diff --git a/app/config/config.yml b/app/config/config.yml index b67fc3f..eb36de8 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -56,8 +56,11 @@ doctrine: # 2. Uncomment database_path in parameters.yml.dist # 3. Uncomment next line: # path: '%database_path%' + types: + money: CameraBundle\Types\MoneyType mapping_types: bit: boolean + money: money orm: auto_generate_proxy_classes: '%kernel.debug%' diff --git a/src/CameraBundle/Controller/CameraController.php b/src/CameraBundle/Controller/CameraController.php index 8108877..156de6a 100644 --- a/src/CameraBundle/Controller/CameraController.php +++ b/src/CameraBundle/Controller/CameraController.php @@ -24,7 +24,12 @@ class CameraController extends Controller { $em = $this->getDoctrine()->getManager(); - $cameras = $em->getRepository('CameraBundle:Camera')->findAll(); + $cameras = $em->getRepository('CameraBundle:Camera')->findBy([], [ + 'received' => 'DESC', + 'brand' => 'ASC', + 'mount' => 'ASC', + 'model' => 'ASC', + ]); return $this->render('camera/index.html.twig', array( 'cameras' => $cameras, diff --git a/src/CameraBundle/Controller/CameraTypeController.php b/src/CameraBundle/Controller/CameraTypeController.php index e88c22e..79c17d2 100644 --- a/src/CameraBundle/Controller/CameraTypeController.php +++ b/src/CameraBundle/Controller/CameraTypeController.php @@ -24,7 +24,9 @@ class CameraTypeController extends Controller { $em = $this->getDoctrine()->getManager(); - $cameraTypes = $em->getRepository('CameraBundle:CameraType')->findAll(); + $cameraTypes = $em->getRepository('CameraBundle:CameraType')->findBy([], [ + 'type' => 'ASC' + ]); return $this->render('cameratype/index.html.twig', array( 'cameraTypes' => $cameraTypes, diff --git a/src/CameraBundle/Controller/FlashController.php b/src/CameraBundle/Controller/FlashController.php index a7eba76..06fd6d0 100644 --- a/src/CameraBundle/Controller/FlashController.php +++ b/src/CameraBundle/Controller/FlashController.php @@ -24,7 +24,11 @@ class FlashController extends Controller { $em = $this->getDoctrine()->getManager(); - $flashes = $em->getRepository('CameraBundle:Flash')->findAll(); + $flashes = $em->getRepository('CameraBundle:Flash')->findBy([], [ + 'received' => 'DESC', + 'brand' => 'ASC', + 'model' => 'ASC' + ]); return $this->render('flash/index.html.twig', array( 'flashes' => $flashes, diff --git a/src/CameraBundle/Controller/LensesController.php b/src/CameraBundle/Controller/LensesController.php index 815578a..a24eca9 100644 --- a/src/CameraBundle/Controller/LensesController.php +++ b/src/CameraBundle/Controller/LensesController.php @@ -24,7 +24,14 @@ class LensesController extends Controller { $em = $this->getDoctrine()->getManager(); - $lenses = $em->getRepository('CameraBundle:Lenses')->findAll(); + $lenses = $em->getRepository('CameraBundle:Lenses')->findBy([], [ + 'received' => 'DESC', + 'brand' => 'ASC', + 'productLine' => 'ASC', + 'mount' => 'ASC', + 'minFocalLength' => 'ASC', + 'maxFStop' => 'ASC', + ]); return $this->render('lenses/index.html.twig', array( 'lenses' => $lenses, diff --git a/src/CameraBundle/Controller/PreviouslyOwnedCameraController.php b/src/CameraBundle/Controller/PreviouslyOwnedCameraController.php index 6a149d2..8a70c1c 100644 --- a/src/CameraBundle/Controller/PreviouslyOwnedCameraController.php +++ b/src/CameraBundle/Controller/PreviouslyOwnedCameraController.php @@ -25,7 +25,11 @@ class PreviouslyOwnedCameraController extends Controller { $em = $this->getDoctrine()->getManager(); - $previouslyOwnedCameras = $em->getRepository('CameraBundle:PreviouslyOwnedCamera')->findAll(); + $previouslyOwnedCameras = $em->getRepository('CameraBundle:PreviouslyOwnedCamera')->findBy([], [ + 'brand' => 'ASC', + 'mount' => 'ASC', + 'model' => 'ASC', + ]); return $this->render('previouslyownedcamera/index.html.twig', array( 'previouslyOwnedCameras' => $previouslyOwnedCameras, diff --git a/src/CameraBundle/Controller/PreviouslyOwnedFlashController.php b/src/CameraBundle/Controller/PreviouslyOwnedFlashController.php index 064b667..03da89f 100644 --- a/src/CameraBundle/Controller/PreviouslyOwnedFlashController.php +++ b/src/CameraBundle/Controller/PreviouslyOwnedFlashController.php @@ -25,7 +25,10 @@ class PreviouslyOwnedFlashController extends Controller { $em = $this->getDoctrine()->getManager(); - $previouslyOwnedFlashes = $em->getRepository('CameraBundle:PreviouslyOwnedFlash')->findAll(); + $previouslyOwnedFlashes = $em->getRepository('CameraBundle:PreviouslyOwnedFlash')->findBy([], [ + 'brand' => 'ASC', + 'model' => 'ASC' + ]); return $this->render('previouslyownedflash/index.html.twig', array( 'previouslyOwnedFlashes' => $previouslyOwnedFlashes, diff --git a/src/CameraBundle/Controller/PreviouslyOwnedLensesController.php b/src/CameraBundle/Controller/PreviouslyOwnedLensesController.php index 68ca8a4..6eb9c01 100644 --- a/src/CameraBundle/Controller/PreviouslyOwnedLensesController.php +++ b/src/CameraBundle/Controller/PreviouslyOwnedLensesController.php @@ -25,7 +25,13 @@ class PreviouslyOwnedLensesController extends Controller { $em = $this->getDoctrine()->getManager(); - $previouslyOwnedLenses = $em->getRepository('CameraBundle:PreviouslyOwnedLenses')->findAll(); + $previouslyOwnedLenses = $em->getRepository('CameraBundle:PreviouslyOwnedLenses')->findBy([], [ + 'brand' => 'ASC', + 'productLine' => 'ASC', + 'mount' => 'ASC', + 'minFocalLength' => 'ASC', + 'maxFStop' => 'ASC', + ]); return $this->render('previouslyownedlenses/index.html.twig', array( 'previouslyOwnedLenses' => $previouslyOwnedLenses, diff --git a/src/CameraBundle/Entity/CameraTrait.php b/src/CameraBundle/Entity/CameraTrait.php index 707678f..be840b2 100644 --- a/src/CameraBundle/Entity/CameraTrait.php +++ b/src/CameraBundle/Entity/CameraTrait.php @@ -81,7 +81,7 @@ trait CameraTrait { /** * @var string * - * @ORM\Column(name="purchase_price", type="decimal", precision=10, scale=0, nullable=true) + * @ORM\Column(name="purchase_price", type="money", nullable=true) */ private $purchasePrice; diff --git a/src/CameraBundle/Entity/Flash.php b/src/CameraBundle/Entity/Flash.php index d507c2b..a1ac00b 100644 --- a/src/CameraBundle/Entity/Flash.php +++ b/src/CameraBundle/Entity/Flash.php @@ -24,4 +24,18 @@ class Flash */ private $id; + /** + * @var boolean + * + * @ORM\Column(name="received", type="boolean", nullable=false, options={"default" : false}) + */ + private $received = false; + + + /** + * @var boolean + * + * @ORM\Column(name="formerly_owned", type="boolean", nullable=false, options={"default" : false}) + */ + private $formerlyOwned = false; } diff --git a/src/CameraBundle/Entity/FlashTrait.php b/src/CameraBundle/Entity/FlashTrait.php index 80573c8..1c90dc2 100644 --- a/src/CameraBundle/Entity/FlashTrait.php +++ b/src/CameraBundle/Entity/FlashTrait.php @@ -64,7 +64,7 @@ trait FlashTrait { /** * @var string * - * @ORM\Column(name="purchase_price", type="decimal", precision=10, scale=0, nullable=true) + * @ORM\Column(name="purchase_price", type="money", nullable=true) */ private $purchasePrice; @@ -89,15 +89,6 @@ trait FlashTrait { */ private $serial; - - /** - * @var boolean - * - * @ORM\Column(name="formerly_owned", type="boolean", nullable=false, options={"default" : false}) - */ - private $formerlyOwned = false; - - /** * Get id * @@ -395,4 +386,28 @@ trait FlashTrait { { return $this->formerlyOwned; } + + /** + * Set received + * + * @param boolean $received + * + * @return Flash + */ + public function setReceived($received) + { + $this->received = $received; + + return $this; + } + + /** + * Get received + * + * @return boolean + */ + public function getReceived() + { + return $this->received; + } } \ No newline at end of file diff --git a/src/CameraBundle/Entity/LensTrait.php b/src/CameraBundle/Entity/LensTrait.php index 0a810fa..68d3c66 100644 --- a/src/CameraBundle/Entity/LensTrait.php +++ b/src/CameraBundle/Entity/LensTrait.php @@ -71,7 +71,7 @@ trait LensTrait { /** * @var string * - * @ORM\Column(name="purchase_price", type="decimal", precision=10, scale=0, nullable=true) + * @ORM\Column(name="purchase_price", type="money", nullable=true) */ private $purchasePrice; @@ -89,20 +89,6 @@ trait LensTrait { */ private $mount; - /** - * @var boolean - * - * @ORM\Column(name="received", type="boolean", nullable=false) - */ - private $received = false; - - /** - * @var boolean - * - * @ORM\Column(name="formerly_owned", type="boolean", nullable=false) - */ - private $formerlyOwned = false; - /** * @var string * diff --git a/src/CameraBundle/Entity/Lenses.php b/src/CameraBundle/Entity/Lenses.php index 745daa3..3457f4b 100644 --- a/src/CameraBundle/Entity/Lenses.php +++ b/src/CameraBundle/Entity/Lenses.php @@ -23,4 +23,18 @@ class Lenses * @ORM\SequenceGenerator(sequenceName="camera.lenses_id_seq", allocationSize=1, initialValue=1) */ private $id; + + /** + * @var boolean + * + * @ORM\Column(name="received", type="boolean", nullable=false) + */ + private $received = false; + + /** + * @var boolean + * + * @ORM\Column(name="formerly_owned", type="boolean", nullable=false) + */ + private $formerlyOwned = false; } diff --git a/src/CameraBundle/Entity/PreviouslyOwnedFlash.php b/src/CameraBundle/Entity/PreviouslyOwnedFlash.php index 5dffa60..c3b2018 100644 --- a/src/CameraBundle/Entity/PreviouslyOwnedFlash.php +++ b/src/CameraBundle/Entity/PreviouslyOwnedFlash.php @@ -23,4 +23,19 @@ class PreviouslyOwnedFlash * @ORM\SequenceGenerator(sequenceName="camera.previously_owned_flash_id_seq", allocationSize=1, initialValue=1) */ private $id; + + /** + * @var boolean + * + * @ORM\Column(name="received", type="boolean", nullable=false, options={"default" : true}) + */ + private $received = true; + + + /** + * @var boolean + * + * @ORM\Column(name="formerly_owned", type="boolean", nullable=false, options={"default" : true}) + */ + private $formerlyOwned = true; } diff --git a/src/CameraBundle/Entity/PreviouslyOwnedLenses.php b/src/CameraBundle/Entity/PreviouslyOwnedLenses.php index 7c0da39..24f38dc 100644 --- a/src/CameraBundle/Entity/PreviouslyOwnedLenses.php +++ b/src/CameraBundle/Entity/PreviouslyOwnedLenses.php @@ -22,4 +22,18 @@ class PreviouslyOwnedLenses * @ORM\SequenceGenerator(sequenceName="camera.previously_owned_lenses_id_seq", allocationSize=1, initialValue=1) */ private $id; + + /** + * @var boolean + * + * @ORM\Column(name="received", type="boolean", nullable=false) + */ + private $received = true; + + /** + * @var boolean + * + * @ORM\Column(name="formerly_owned", type="boolean", nullable=false) + */ + private $formerlyOwned = true; } diff --git a/src/CameraBundle/Entity/PurchasePriceTrait.php b/src/CameraBundle/Entity/PurchasePriceTrait.php index e6c379f..e36cf98 100644 --- a/src/CameraBundle/Entity/PurchasePriceTrait.php +++ b/src/CameraBundle/Entity/PurchasePriceTrait.php @@ -12,7 +12,7 @@ trait PurchasePriceTrait { */ public function setPurchasePrice($purchasePrice) { - $this->purchasePrice = $purchasePrice ?? null; + $this->purchasePrice = $purchasePrice; return $this; } @@ -24,6 +24,10 @@ trait PurchasePriceTrait { */ public function getPurchasePrice() { - return (double) str_replace(['$',','], '', (string)$this->purchasePrice) ?? null; + if (empty($this->purchasePrice)) { + return 0; + } + + return $this->purchasePrice; } } \ No newline at end of file diff --git a/src/CameraBundle/Form/FlashType.php b/src/CameraBundle/Form/FlashType.php index 590873e..5c58106 100644 --- a/src/CameraBundle/Form/FlashType.php +++ b/src/CameraBundle/Form/FlashType.php @@ -25,6 +25,7 @@ class FlashType extends AbstractType ->add('batteries') ->add('notes') ->add('serial') + ->add('received') ->add('formerlyOwned'); } diff --git a/src/CameraBundle/Form/PreviouslyOwnedFlashType.php b/src/CameraBundle/Form/PreviouslyOwnedFlashType.php index 2ae2f87..963d09f 100644 --- a/src/CameraBundle/Form/PreviouslyOwnedFlashType.php +++ b/src/CameraBundle/Form/PreviouslyOwnedFlashType.php @@ -13,9 +13,23 @@ class PreviouslyOwnedFlashType extends AbstractType */ public function buildForm(FormBuilderInterface $builder, array $options) { - $builder->add('brand')->add('model')->add('isAutoFlash')->add('isTtl')->add('ttlType')->add('isPTtl')->add('pTtlType')->add('guideNumber')->add('purchasePrice')->add('batteries')->add('notes')->add('serial')->add('formerlyOwned'); + $builder + ->add('brand') + ->add('model') + ->add('isAutoFlash') + ->add('isTtl') + ->add('ttlType') + ->add('isPTtl') + ->add('pTtlType') + ->add('guideNumber') + ->add('purchasePrice') + ->add('batteries') + ->add('notes') + ->add('serial') + ->add('received') + ->add('formerlyOwned'); } - + /** * {@inheritdoc} */ diff --git a/src/CameraBundle/Types/MoneyType.php b/src/CameraBundle/Types/MoneyType.php new file mode 100644 index 0000000..e98b6e6 --- /dev/null +++ b/src/CameraBundle/Types/MoneyType.php @@ -0,0 +1,31 @@ +value = str_replace(['$',','], '', $value); + } + + public function getValue() + { + return str_replace(['$',','], '', $this->value); + } + + public function __toString() + { + return (string)$this->getValue(); + } +} \ No newline at end of file