Add new field for job order for new customers. Add saving of new field for job orders from admin panel and third party API. #773
This commit is contained in:
parent
0ba63cc106
commit
35456cfb19
4 changed files with 59 additions and 4 deletions
|
|
@ -136,7 +136,8 @@ class JobOrderController extends ApiController
|
|||
->setModeOfPayment($data['payment_mode'])
|
||||
->setAdvanceOrder($data['is_advance_order'])
|
||||
->setStatusAutoAssign(AutoAssignStatus::NOT_ASSIGNED)
|
||||
->setLandmark($data['landmark']);
|
||||
->setLandmark($data['landmark'])
|
||||
->setCustNew($data['flag_new_cust']);
|
||||
|
||||
$jo->setCustomer($data['customer']);
|
||||
$jo->setCustomerVehicle($data['customer_vehicle']);
|
||||
|
|
@ -1388,6 +1389,7 @@ class JobOrderController extends ApiController
|
|||
'customer_vehicle' => $cust_data['customer_vehicle'],
|
||||
'source' => TransactionOrigin::THIRD_PARTY,
|
||||
'warranty_class' => $warranty_class,
|
||||
'flag_new_cust' => $cust_data['flag_new_cust'],
|
||||
];
|
||||
|
||||
return null;
|
||||
|
|
@ -1561,6 +1563,7 @@ class JobOrderController extends ApiController
|
|||
|
||||
// find customer + customer vehicle combo
|
||||
$cust_vehicle = $this->findCustomerAndCustomerVehicle($data, $em);
|
||||
$flag_new_cust = false;
|
||||
if ($cust_vehicle == null)
|
||||
{
|
||||
// find customer given phone number
|
||||
|
|
@ -1596,7 +1599,8 @@ class JobOrderController extends ApiController
|
|||
|
||||
// add customer vehicle
|
||||
$cust_vehicle = $this->createCustomerVehicle($em, $cust, $data);
|
||||
|
||||
|
||||
$flag_new_cust = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1607,9 +1611,18 @@ class JobOrderController extends ApiController
|
|||
$em->flush();
|
||||
}
|
||||
|
||||
// check if customer already has existing job orders
|
||||
if ($cust != null)
|
||||
{
|
||||
$cust_jos = $cust->getJobOrders();
|
||||
if (count($cust_jos) <= 1)
|
||||
$flag_new_cust = true;
|
||||
}
|
||||
|
||||
$c_data = [
|
||||
'customer' => $cust_vehicle->getCustomer(),
|
||||
'customer_vehicle' => $cust_vehicle,
|
||||
'flag_new_cust' => $flag_new_cust,
|
||||
];
|
||||
|
||||
return $c_data;
|
||||
|
|
|
|||
|
|
@ -435,6 +435,12 @@ class JobOrder
|
|||
*/
|
||||
protected $inventory_count;
|
||||
|
||||
// flag to indicate if customer is new aka has one or less job order in system
|
||||
/**
|
||||
* @ORM\Column(type="boolean")
|
||||
*/
|
||||
protected $flag_cust_new;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->date_create = new DateTime();
|
||||
|
|
@ -461,6 +467,8 @@ class JobOrder
|
|||
$this->will_wait = WillingToWaitContent::WILLING_TO_WAIT;
|
||||
|
||||
$this->inventory_count = 0;
|
||||
|
||||
$this->flag_cust_new = false;
|
||||
}
|
||||
|
||||
public function getID()
|
||||
|
|
@ -1237,4 +1245,15 @@ class JobOrder
|
|||
return $this->inventory_count;
|
||||
}
|
||||
|
||||
public function setCustNew($flag_cust_new = true)
|
||||
{
|
||||
$this->flag_cust_new = $flag_cust_new;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isCustNew()
|
||||
{
|
||||
return $this->flag_cust_new;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
($reason == CustomerNotWaitReason::RUSH_REQUEST))
|
||||
$is_emergency = true;
|
||||
}
|
||||
|
||||
|
||||
// add row data
|
||||
$row['id'] = $orow->getID();
|
||||
$row['customer_name'] = $orow->getCustomer()->getFirstName() . ' ' . $orow->getCustomer()->getLastName();
|
||||
|
|
@ -228,6 +228,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$row['is_mobile'] = $orow->getSource() == TransactionOrigin::MOBILE_APP;
|
||||
$row['is_vip'] = $is_vip;
|
||||
$row['is_emergency'] = $is_emergency;
|
||||
$row['flag_cust_new'] = $orow->isCustNew();
|
||||
|
||||
$processor = $orow->getProcessedBy();
|
||||
if ($processor == null)
|
||||
|
|
@ -359,6 +360,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// find customer
|
||||
$cust_id = $req->request->get('cid');
|
||||
$customer = $em->getRepository(Customer::class)->find($cust_id);
|
||||
$flag_new_cust = false;
|
||||
if (empty($customer))
|
||||
{
|
||||
$error_array['customer_vehicle'] = 'Invalid customer specified.';
|
||||
|
|
@ -386,6 +388,11 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setResearchSms($req->request->get('flag_research_sms', false))
|
||||
->setResearchEmail($req->request->get('flag_research_email', false))
|
||||
->setDpaConsent($is_dpa_checked);
|
||||
|
||||
// check if customer has more than one job order already
|
||||
$cust_jos = $customer->getJobOrders();
|
||||
if (count($cust_jos) <= 1)
|
||||
$flag_new_cust = true;
|
||||
}
|
||||
|
||||
// check if lat and lng are provided
|
||||
|
|
@ -519,7 +526,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setGender($gender)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
->setCustomerLocation($cust_location)
|
||||
->setCustNew($flag_new_cust);
|
||||
|
||||
// check if user is null, meaning call to create came from API
|
||||
if ($user != null)
|
||||
|
|
|
|||
|
|
@ -108,6 +108,21 @@
|
|||
field: 'plate_number',
|
||||
title: 'Plate #'
|
||||
},
|
||||
{
|
||||
field: 'flag_cust_new',
|
||||
title: 'New',
|
||||
template: function (row, index, datatable) {
|
||||
var tag = '';
|
||||
|
||||
if (row.flag_cust_new === true) {
|
||||
tag = '<span class="m-badge m-badge--success m-badge--wide">Yes</span>';
|
||||
} else {
|
||||
tag = '<span class="m-badge m-badge--danger m-badge--wide">No</span>';
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'customer_name',
|
||||
title: 'Customer'
|
||||
|
|
|
|||
Loading…
Reference in a new issue