Add saving of JOs. #427
This commit is contained in:
parent
9833a2709a
commit
0f06ca7339
1 changed files with 87 additions and 51 deletions
|
|
@ -10,7 +10,9 @@ use Symfony\Component\Console\Output\OutputInterface;
|
|||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
use CrEOF\Spatial\PHP\Types\Geometry\Point;
|
||||
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
|
||||
use App\Entity\JobOrder;
|
||||
use App\Entity\Rider;
|
||||
|
|
@ -24,6 +26,7 @@ use App\Ramcar\TransactionOrigin;
|
|||
use App\Ramcar\WarrantyClass;
|
||||
use App\Ramcar\ModeOfPayment;
|
||||
use App\Ramcar\JOStatus;
|
||||
use App\Ramcar\InvoiceStatus;
|
||||
|
||||
class CreateJOTestDataCommand extends Command
|
||||
{
|
||||
|
|
@ -75,63 +78,96 @@ class CreateJOTestDataCommand extends Command
|
|||
// get current date
|
||||
$current_date = new DateTime();
|
||||
|
||||
// for this month JO
|
||||
$current_year = $current_date->format('Y');
|
||||
$current_month = $current_date->format('M');
|
||||
|
||||
// for last month JO
|
||||
$date_interval = new DateInterval('P1M');
|
||||
$period_date = $current_date->sub($date_interval);
|
||||
$last_month_date = $current_date->sub($date_interval);
|
||||
|
||||
$period_year = $period_date->format('Y');
|
||||
$period_month = $period_date->format('m');
|
||||
|
||||
// insert 15 JOs for last month
|
||||
for ($i = 1; $i <= 15; $i++)
|
||||
{
|
||||
$jo = new JobOrder();
|
||||
$last_month_year = $last_month_date->format('Y');
|
||||
$last_month_month = $last_month_date->format('M');
|
||||
|
||||
// set customer data
|
||||
$jo->setCustomerVehicle($cv);
|
||||
$jo->setCustomer($cv->getCustomer());
|
||||
$time_schedule = $current_date->format('h:i A');
|
||||
|
||||
// set hub and rider data
|
||||
$jo->setRider($rider);
|
||||
$jo->setHub($rider->getHub());
|
||||
|
||||
// set JO details
|
||||
$point = new Point(121.0223, 14.6091);
|
||||
$type = CMBServiceType::BATTERY_REPLACEMENT_NEW;
|
||||
$source = TransactionOrigin::CALL;
|
||||
$advance_order = true;
|
||||
$warranty_class = WarrantyClass::WTY_PRIVATE;
|
||||
$status = JOStatus::ASSIGNED;
|
||||
$delivery_address = '#1234 Moogle Lane';
|
||||
$mode_of_payment = ModeOfPayment::CASH;
|
||||
|
||||
// set invoice details
|
||||
$invoice = new Invoice();
|
||||
$invoice_item = new InvoiceItem();
|
||||
|
||||
// set invoice item details
|
||||
$invoice_item->setBattery($battery)
|
||||
->setTitle($battery->getModel()->getName() - ' ' . $battery->getSize()->getName())
|
||||
->setQuantity(1)
|
||||
->setPrice($battery->getSellingPrice())
|
||||
->setInvoice($invoice);
|
||||
|
||||
$invoice->addItem($invoice_item);
|
||||
|
||||
// set invoice details
|
||||
$invoice->setTotalPrice($battery->getSellingPrice())
|
||||
->setStatus(InvoiceStatus::DRAFT)
|
||||
->setVATExclusivePrice($battery->getSellingPrice())
|
||||
->setDiscount(0.0)
|
||||
->setTradeIn(0.0)
|
||||
->setVAT(0.00)
|
||||
|
||||
$jo->setInvoice($invoice);
|
||||
|
||||
$date_schedule = DateTime::createFromFormat("d M Y h:i A",
|
||||
|
||||
}
|
||||
$this->createJobOrders($rider, $cv, $battery, $last_month_year, $last_month_month, $time_schedule);
|
||||
$this->createJobOrders($rider, $cv, $battery, $current_year, $current_month, $time_schedule);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected function createJobOrders(Rider $rider, CustomerVehicle $cv, Battery $battery, $year, $month, $time)
|
||||
{
|
||||
// insert 15 JOs for last month
|
||||
for ($i = 1; $i <= 15; $i++)
|
||||
{
|
||||
$jo = new JobOrder();
|
||||
|
||||
// set customer data
|
||||
$jo->setCustomerVehicle($cv);
|
||||
$jo->setCustomer($cv->getCustomer());
|
||||
|
||||
// set hub and rider data
|
||||
$jo->setRider($rider);
|
||||
$jo->setHub($rider->getHub());
|
||||
|
||||
// set JO details
|
||||
$point = new Point(121.0223, 14.6091);
|
||||
$s_type = CMBServiceType::BATTERY_REPLACEMENT_NEW;
|
||||
$source = TransactionOrigin::CALL;
|
||||
$advance_order = true;
|
||||
$warranty_class = WarrantyClass::WTY_PRIVATE;
|
||||
$status = JOStatus::FULFILLED;
|
||||
$delivery_address = '#1234 Moogle Lane';
|
||||
$mode_of_payment = ModeOfPayment::CASH;
|
||||
|
||||
// set invoice details
|
||||
$invoice = new Invoice();
|
||||
$invoice_item = new InvoiceItem();
|
||||
|
||||
// set invoice item details
|
||||
$invoice_item->setBattery($battery)
|
||||
->setTitle($battery->getModel()->getName() . ' ' . $battery->getSize()->getName())
|
||||
->setQuantity(1)
|
||||
->setPrice($battery->getSellingPrice())
|
||||
->setInvoice($invoice);
|
||||
|
||||
$invoice->addItem($invoice_item);
|
||||
|
||||
$this->em->persist($invoice_item);
|
||||
|
||||
// set invoice details
|
||||
$invoice->setTotalPrice($battery->getSellingPrice())
|
||||
->setStatus(InvoiceStatus::DRAFT)
|
||||
->setVATExclusivePrice($battery->getSellingPrice())
|
||||
->setDiscount(0.0)
|
||||
->setTradeIn(0.0)
|
||||
->setVAT(0.00);
|
||||
|
||||
$this->em->persist($invoice);
|
||||
|
||||
$jo->setInvoice($invoice);
|
||||
|
||||
// for last month
|
||||
$date_schedule_date = $i . ' ' . $month . ' ' . $year . ' ' . $time;
|
||||
error_log('Adding JO with date schedule ' . $date_schedule_date);
|
||||
$date_schedule = DateTime::createFromFormat("d M Y h:i A", $date_schedule_date);
|
||||
|
||||
$jo->setDateSchedule($date_schedule)
|
||||
->setCoordinates($point)
|
||||
->setAdvanceOrder($advance_order)
|
||||
->setServiceType($s_type)
|
||||
->setWarrantyClass($warranty_class)
|
||||
->setSource($source)
|
||||
->setStatus($status)
|
||||
->setDeliveryAddress($delivery_address);
|
||||
|
||||
$this->em->persist($jo);
|
||||
}
|
||||
|
||||
$this->em->flush();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue