Last active
March 25, 2016 02:41
-
-
Save mirahtadi/2766839c7f4445489c25 to your computer and use it in GitHub Desktop.
Transaction Split
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Bundle\TransactionBundle\Manager; | |
use App\Bundle\ProductBundle\Filter\ProductCategoryFilter; | |
use App\Bundle\ProductBundle\Repository\ProductCategoryRepository; | |
use App\Bundle\ProductBundle\Repository\ProductRepository; | |
use App\Bundle\ReportBundle\Filter\ReportFilter; | |
use App\Bundle\TransactionBundle\Entity\PaymentType; | |
use App\Bundle\TransactionBundle\Filter\TransactionFilter; | |
use App\Bundle\TransactionBundle\Model\TransactionSplit; | |
use App\Bundle\TransactionBundle\Repository\PaymentNoteRepository; | |
use App\Bundle\TransactionBundle\Repository\PaymentTypeRepository; | |
use App\Bundle\TransactionBundle\Repository\TransactionPaymentRepository; | |
use App\Bundle\TransactionBundle\Repository\TransactionRepository; | |
use App\Bundle\MainBundle\Exception\ValidationFailedException; | |
use App\Bundle\TransactionBundle\Entity\Transaction; | |
use Symfony\Component\Validator\Validator\ValidatorInterface; | |
class TransactionManager | |
{ | |
#---------------------------------------------------------------------------------------------- | |
/** | |
* @param Transaction $transaction | |
* @param TransactionSplit $transactionSplit | |
*/ | |
public function splitBooking(Request $request, Transaction $transaction) | |
{ | |
$transactionSplits = $this->get('serializer')->deserialize('ArrayCollection<FQCN_TransactionSplit>'); | |
foreach ($transactionSplits as $transactionSplit) { | |
$transactionNew = new Transaction(); | |
$transactionNew->setCustomer($transactionSplit->getCustomer()); | |
$transactionNew->setTransactionPayments($transactionSplit->getTransactionPayments()); | |
$transactionNew->setTransactionProducts($transaction->getTransactionProducts()); | |
// but I want to change qty TransactionProduct to 1. how to do? | |
$transactionNew->setCreatedAt($transaction->getCreatedAt()); | |
$transactionNew->setPaymentNotes($transaction->getPaymentNotes()); | |
$transactionNew->setAccommodation($transaction->getAccommodation()); | |
$transactionNew->setAccommodationType($transaction->getAccommodationType()); | |
$transactionNew->setAgent($transaction->getAgent()); | |
$transactionNew->setCommission($transaction->getCommission()); | |
$transactionNew->setDate($transaction->getDate()); | |
$transactionNew->setDeleteReason($transaction->getDeleteReason()); | |
$transactionNew->setOutlet($transaction->getOutlet()); | |
$transactionNew->setPhoneNumber($transaction->getPhoneNumber()); | |
$transactionNew->setPickupLocation($transaction->getPickupLocation()); | |
$transactionNew->setProductCategory($transaction->getProductCategory()); | |
$transactionNew->setRemark($transaction->getRemark()); | |
$transactionNew->setRequestTransport($transaction->getRequestTransport()); | |
$transactionNew->setTransactionSource($transaction->getTransactionSource()); | |
$transactionNew->setTransportDateTime($transaction->getTransportDateTime()); | |
$this->save($transactionNew); | |
} | |
$this->softDelete($transaction); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Bundle\TransactionBundle\Model; | |
use App\Bundle\CustomerBundle\Entity\Customer; | |
use App\Bundle\TransactionBundle\Entity\TransactionPayment; | |
use App\Bundle\TransactionBundle\Entity\TransactionProduct; | |
class TransactionSplit | |
{ | |
#---------------------------------------------------------------------------------------------- | |
# Private Properties | |
#---------------------------------------------------------------------------------------------- | |
/** | |
* @var Customer | |
* | |
* @Serializer\Expose() | |
* @Serializer\Type("App\Bundle\CustomerBundle\Entity\Customer") | |
* @Serializer\Groups({"customer"}) | |
*/ | |
private $customer; | |
/** | |
* @var TransactionProduct[] | |
* | |
* @Assert\Valid() | |
* @Assert\Count(min=1, minMessage = "You must at least have {{ limit }} product") | |
* | |
* @Serializer\Expose() | |
* @Serializer\Type("array<App\Bundle\TransactionBundle\Entity\TransactionProduct>") | |
* @Serializer\Groups({"transaction_product"}) | |
*/ | |
private $transactionProducts; | |
/** | |
* @var TransactionPayment[] | |
* | |
* @Assert\Valid() | |
* | |
* @Serializer\Expose() | |
* @Serializer\Type("array<App\Bundle\TransactionBundle\Entity\TransactionPayment>") | |
* @Serializer\Groups({"transaction_payment"}) | |
*/ | |
private $transactionPayments; | |
#---------------------------------------------------------------------------------------------- | |
# Properties accessor | |
#---------------------------------------------------------------------------------------------- | |
/** | |
* @return Customer | |
*/ | |
public function getCustomer() | |
{ | |
return $this->customer; | |
} | |
/** | |
* @param Customer $customer | |
* @return $this | |
*/ | |
public function setCustomer(Customer $customer) | |
{ | |
$this->customer = $customer; | |
return $this; | |
} | |
/** | |
* @return TransactionProduct[] | |
*/ | |
public function getTransactionProducts() | |
{ | |
return $this->transactionProducts; | |
} | |
/** | |
* @param TransactionProduct[] $transactionProducts | |
* @return $this | |
*/ | |
public function setTransactionProducts(array $transactionProducts) | |
{ | |
$this->transactionProducts = $transactionProducts; | |
return $this; | |
} | |
/** | |
* @return TransactionPayment[] | |
*/ | |
public function getTransactionPayments() | |
{ | |
return $this->transactionPayments; | |
} | |
/** | |
* @param TransactionPayment $transactionPayments | |
* @return $this | |
*/ | |
public function setTransactionPayments(TransactionPayment $transactionPayments) | |
{ | |
$this->transactionPayments = $transactionPayments; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment