Redo warranty flow. #654

This commit is contained in:
Korina Cordero 2022-04-07 09:32:23 +00:00
parent b831deacfb
commit a50d591160
2 changed files with 82 additions and 37 deletions

View file

@ -13,6 +13,7 @@ use App\Entity\JobOrder;
use App\Entity\JOEvent;
use App\Entity\User;
use App\Entity\Warranty;
use App\Entity\SAPBattery;
use App\Ramcar\JOStatus;
use App\Ramcar\JOEventType;
@ -49,6 +50,23 @@ class FulfillOpenJobOrderCommand extends Command
protected function execute(InputInterface $input, OutputInterface $output)
{
/*
$sap_code = 'WSLMF9BR-RV100-L';
error_log($sap_code);
$conn = $this->em->getConnection();
$sql = 'SELECT sap.id FROM sap_battery sap WHERE sap.id = :id';
$stmt = $conn->prepare($sql);
$stmt->execute(array('id' => $sap_code));
$query_results = $stmt->fetchColumn();
error_log($query_results);
return 0;
*/
// get the input date
$str_date_end = $input->getArgument('end_date');
@ -59,25 +77,29 @@ class FulfillOpenJobOrderCommand extends Command
// starting time to count is date schedule
$date_end = new DateTime($str_date_end);
error_log($date_end->format('Y-m-d H:i:s'));
error_log('mogol ' . $date_end->format('Y-m-d H:i:s'));
/*
$query = $this->em->createQuery('SELECT jo FROM App\Entity\JobOrder jo
WHERE (jo.status = :pending_status
OR jo.status = :rider_assign_status
OR jo.status = :assigned_status
OR jo.status = :in_progress_status
OR jo.status = :in_transit_status)
AND jo.date_schedule <= :date_end');
AND jo.date_schedule <= :date_end
AND jo.service_type = :stype');
$jo_results = $query->setParameters([
$query->setParameters([
'pending_status' => JOStatus::PENDING,
'rider_assign_status' => JOStatus::RIDER_ASSIGN,
'assigned_status' => JOStatus::ASSIGNED,
'in_progress_status' => JOStatus::IN_PROGRESS,
'in_transit_status' => JOStatus::IN_TRANSIT,
'date_end' => $date_end,
])
->getResult();
'stype' => ServiceType::BATTERY_REPLACEMENT_NEW,
])->setMaxResults(1);
$jo_results = $query->getResult();
error_log('Found job orders ' . count($jo_results));
@ -111,6 +133,7 @@ class FulfillOpenJobOrderCommand extends Command
}
$this->em->flush();
*/
return 0;
}

View file

@ -33,12 +33,12 @@ class WarrantyHandler
$batt_list, DateTime $date_purchase, $warranty_class, $user_id,
$source, $customer, $cust_vehicle)
{
// new warranty
$warranty = new Warranty();
$bmodel_id = '';
$bsize_id = '';
$bmodel_name = '';
$bsize_name ='';
$sap_batt_id = '';
$w_serial = null;
foreach ($batt_list as $battery)
{
@ -46,30 +46,35 @@ class WarrantyHandler
$bty_model = $battery->getModel();
$bty_size = $battery->getSize();
//$bty_model = $this->em->getRepository(BatteryModel::class)->find($model_id);
//$bty_size = $this->em->getRepository(BatterySize::class)->find($size_id);
if ($bty_model != null)
{
$warranty->setBatteryModel($bty_model);
$bmodel_id = $bty_model->getID();
$bmodel_name = $bty_model->getName();
}
if ($bty_size != null)
{
$warranty->setBatterySize($bty_size);
$bsize_id = $bty_size->getID();
$bsize_name = $bty_size->getName();
}
}
$sap_code = $battery->getSAPCode();
if (!empty($sap_code))
{
// find sap battery
$sap_battery = $this->em->getRepository(SAPBattery::class)->find($sap_code);
if ($sap_battery != null)
/*
$conn = $this->em->getConnection();
$sql = 'SELECT sap.id FROM sap_battery sap WHERE sap.id = :id';
$stmt = $conn->prepare($sql);
$stmt->execute(array('id' => $sap_code));
$query_results = $stmt->fetchAll();
foreach($query_results as $row)
{
$warranty->setSAPBattery($sap_battery);
$sap_batt_id = $sap_battery->getID();
$sap_batt_id = $row['id'];
}
*/
$sap_batt_id = $sap_code;
}
}
@ -80,27 +85,44 @@ class WarrantyHandler
{
$period = $this->getWarrantyPeriod($batt_list, $warranty_class);
$date_expire = $this->computeDateExpire($date_purchase, $period);
$warranty->setDateExpire($date_expire);
}
// set and save values
if (trim($serial) == '')
$warranty->setSerial(null);
else
$warranty->setSerial($serial);
$warranty->setPlateNumber($plate_number)
->setFirstName($first_name)
->setLastName($last_name)
->setMobileNumber($mobile_number)
->setDatePurchase($date_purchase)
->setWarrantyClass($warranty_class)
->setCreateSource($source)
->setCustomer($customer)
->setVehicle($cust_vehicle);
if (trim($serial) != '')
$w_serial = $serial;
$this->em->persist($warranty);
$this->em->flush();
// insert warranty
$q = $this->em->createQuery('INSERT App\Entity\Warranty w
SET w.serial = :serial,
w.plate_number = :plate_number,
w.first_name = :first_name,
w.last_name = :last_name,
w.mobile_number = :mobile_number,
w.date_purchase = :date_purchase,
w.warranty_class = :warranty_class,
w.create_source = :create_source,
w.customer_id = :customer_id,
w.vehicle_id = :vehicle_id,
w.bty_model_id = :bmodel_id,
w.bty_size_id = :bsize_id,
w.sap_bty_id = :sap_batt_id,
w.date_expire = :date_expire')
->setParameters([
'serial' => $serial,
'plate_number' => $plate_number,
'first_name' => $first_name,
'last_name' => $last_name,
'mobile_number' => $mobile_number,
'date_purchase' => $date_purchase,
'warranty_class' => $warranty_class,
'create_source' => $source,
'customer_id' => $customer->getID(),
'vehicle_id' => $cust_vehicle->getID(),
'bmodel_id' => $bmodel_id,
'bsize_id' => $bsize_id,
'sap_batt_id' => $sap_batt_id,
'date_expire' => $date_expire]);
$q->execute();
// log warranty creation
$action = 'create';
@ -121,10 +143,10 @@ class WarrantyHandler
'sap_battery' => $sap_batt_id,
'plate_number' => $plate_number,
];
$this->logger->logWarrantyInfo($log_data, '', $user_id, $action, $source);
//$this->logger->logWarrantyInfo($log_data, '', $user_id, $action, $source);
// update customer vehicle with warranty info
$this->updateCustomerVehicle($serial, $batt_list, $plate_number, $date_expire);
//$this->updateCustomerVehicle($serial, $batt_list, $plate_number, $date_expire);
}
public function updateCustomerVehicle($serial, $batteries, $plate_number, $date_expire)