Merge branch '207-legacy-jo-display' into 'master'
Resolve "Legacy JO display" Closes #207 See merge request jankstudio/resq!242
This commit is contained in:
commit
a400ec57f5
6 changed files with 427 additions and 9 deletions
|
|
@ -6,3 +6,7 @@ search_history:
|
|||
path: /search/history
|
||||
controller: App\Controller\SearchController::search
|
||||
methods: [GET]
|
||||
|
||||
search_legacyjo_details:
|
||||
path: /search/legacyjo/{id}/details
|
||||
controller: App\Controller\SearchController::legacyJODetails
|
||||
|
|
|
|||
|
|
@ -3,8 +3,12 @@
|
|||
namespace App\Controller;
|
||||
|
||||
use App\Ramcar\BaseController;
|
||||
|
||||
use App\Service\GeneralSearch;
|
||||
|
||||
use App\Entity\LegacyJobOrder;
|
||||
use App\Entity\LegacyJobOrderRow;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
|
|
@ -46,4 +50,20 @@ class SearchController extends BaseController
|
|||
// response
|
||||
return $this->render('search/form.html.twig', $params);
|
||||
}
|
||||
|
||||
public function legacyJODetails($id)
|
||||
{
|
||||
$this->denyAccessUnlessGranted('general.search', null, 'No access.');
|
||||
|
||||
// get legacy job order
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$legacy_jo = $em->getRepository(LegacyJobOrder::class)->find($id);
|
||||
|
||||
$params = $this->initParameters('general.search');
|
||||
$params['data'] = $legacy_jo;
|
||||
$params['mode'] = "details";
|
||||
|
||||
// response
|
||||
return $this->render('search/legacyjo_details.html.twig', $params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -343,6 +343,10 @@ class LegacyJobOrder
|
|||
*/
|
||||
protected $plate_number;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="LegacyJobOrderRow", mappedBy="job_order")
|
||||
*/
|
||||
protected $rows;
|
||||
|
||||
|
||||
public function setID($id)
|
||||
|
|
@ -642,15 +646,15 @@ class LegacyJobOrder
|
|||
return $this->dispatch_date;
|
||||
}
|
||||
|
||||
public function setDispatchBy($dispatch_by)
|
||||
public function setDispatchedBy($dispatched_by)
|
||||
{
|
||||
$this->dispatch_by = $dispatch_by;
|
||||
$this->dispatched_by = $dispatched_by;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDispatchBy()
|
||||
public function getDispatchedBy()
|
||||
{
|
||||
return $this->dispatch_by;
|
||||
return $this->dispatched_by;
|
||||
}
|
||||
|
||||
public function setAddress($address)
|
||||
|
|
@ -696,4 +700,9 @@ class LegacyJobOrder
|
|||
{
|
||||
return $this->plate_number;
|
||||
}
|
||||
|
||||
public function getRows()
|
||||
{
|
||||
return $this->rows;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,6 @@ class LegacyJobOrderRow
|
|||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
protected $job_order_id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=40)
|
||||
*/
|
||||
|
|
@ -59,6 +54,12 @@ class LegacyJobOrderRow
|
|||
*/
|
||||
protected $enrollee;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="LegacyJobOrder", inversedBy="rows")
|
||||
* @ORM\JoinColumn(name="job_order_id", referencedColumnName="id", nullable=true)
|
||||
*/
|
||||
protected $job_order;
|
||||
|
||||
public function setID($id)
|
||||
{
|
||||
$this->id = $id;
|
||||
|
|
@ -69,4 +70,93 @@ class LegacyJobOrderRow
|
|||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setItem($item)
|
||||
{
|
||||
$this->item = $item;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getItem()
|
||||
{
|
||||
return $this->item;
|
||||
}
|
||||
|
||||
public function setQuantity($qty)
|
||||
{
|
||||
$this->qty = $qty;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getQuantity()
|
||||
{
|
||||
return $this->qty;
|
||||
}
|
||||
|
||||
public function setPrice($price)
|
||||
{
|
||||
$this->price = $price;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPrice()
|
||||
{
|
||||
return $this->price;
|
||||
}
|
||||
|
||||
public function setPriceLevel($price_level)
|
||||
{
|
||||
$this->price_level = $price_level;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPriceLevel()
|
||||
{
|
||||
return $this->price_level;
|
||||
}
|
||||
|
||||
public function setStatus($status)
|
||||
{
|
||||
$this->status = $status;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function setAccount($account)
|
||||
{
|
||||
$this->account = $account;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAccount()
|
||||
{
|
||||
return $this->account;
|
||||
}
|
||||
|
||||
public function setEnrollee($enrollee)
|
||||
{
|
||||
$this->enrollee = $enrollee;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEnrollee()
|
||||
{
|
||||
return $this->enrollee;
|
||||
}
|
||||
|
||||
public function setJobOrder(LegacyJobOrder $job_order)
|
||||
{
|
||||
$this->job_order = $job_order;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getJobOrder()
|
||||
{
|
||||
return $this->job_order;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@
|
|||
<th>Last Name</th>
|
||||
<th>First Name</th>
|
||||
<th>Plate Number</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -95,6 +96,7 @@
|
|||
<td>{{ result.getCustLastName|default('') }}</td>
|
||||
<td>{{ result.getCustFirstName|default('') }}</td>
|
||||
<td>{{ result.getPlateNumber|default('') }}</td>
|
||||
<td> <a href="{{ url('search_legacyjo_details', {'id': result.getID }) }}" >Details</a> </td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
|
|
|||
293
templates/search/legacyjo_details.html.twig
Normal file
293
templates/search/legacyjo_details.html.twig
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<!-- BEGIN: Subheader -->
|
||||
<div class="m-subheader">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="mr-auto">
|
||||
<h3 class="m-subheader__title">Job Order</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END: Subheader -->
|
||||
<div class="m-content">
|
||||
<!--Begin::Section-->
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<div class="m-portlet m-portlet--mobile">
|
||||
<div class="m-portlet__head">
|
||||
<div class="m-portlet__head-caption">
|
||||
<div class="m-portlet__head-title">
|
||||
<span class="m-portlet__head-icon">
|
||||
<i class="flaticon-transport"></i>
|
||||
</span>
|
||||
<h3 class="m-portlet__head-text">
|
||||
Legacy Job Order
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--Begin::Section-->
|
||||
<form id="row-form" class="m-form m-form--fit m-form--label-align-right m-form--group-seperator-dashed">
|
||||
<div class="m-portlet__body">
|
||||
<br>
|
||||
<div class="m-form__section{{ mode == 'details' }}">
|
||||
<div class="m-form__heading">
|
||||
<h3 class="m-form__heading-title">
|
||||
Customer Details
|
||||
</h3>
|
||||
</div>
|
||||
<div class="form-group m-form__group row" no-border>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="customer_first_name">First Name</label>
|
||||
<input type="text" name="customer_first_name" id="customer-first-name" class="form-control m-input" value="{{ data.getCustFirstName|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="customer_first_name"></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="customer_last_name">Last Name</label>
|
||||
<input type="text" name="customer_last_name" id="customer-last-name" class="form-control m-input" value="{{ data.getCustLastName|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="customer_last_name"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="customer_phone_mobile">Mobile Phone</label>
|
||||
<div class="input-group m-input-group">
|
||||
<span class="input-group-addon">+63</span>
|
||||
<input type="text" name="customer_phone_mobile" id="customer-phone-mobile" class="form-control m-input" value="{{ data.getCustMobile|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="customer_phone_mobile"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="customer_phone_landline">Landline</label>
|
||||
<div class="input-group m-input-group">
|
||||
<span class="input-group-addon">+63</span>
|
||||
<input type="text" name="customer_phone_landline" id="customer-phone-landline" class="form-control m-input" value="{{ data.getCustLandline|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="customer_phone_landline"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="customer_contact">Contact</label>
|
||||
<div class="input-group m-input-group">
|
||||
<span class="input-group-addon">+63</span>
|
||||
<input type="text" name="customer_contact" id="customer-contact" class="form-control m-input" value="{{ data.getCustContact|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="customer_contact"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-form__section">
|
||||
<div class="m-form__heading">
|
||||
<h3 class="m-form__heading-title">
|
||||
Vehicle Details
|
||||
</h3>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-3">
|
||||
<label data-field="vmfg">Manufacturer</label>
|
||||
<input type="text" name="vmfg" id="vmfg" class="form-control m-input" value="{{ data.getCarBrand|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="vmfg"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="vehicle_make">Make</label>
|
||||
<input type="text" name="vehicle_make" id="vehicle-make" class="form-control m-input" value="{{ data.getCarMake|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="vehicle_make"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="vehicle_year">Model Year</label>
|
||||
<input type="text" name="vehicle_year" id="vehicle-year" class="form-control m-input" value="{{ data.getCarModel|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="vehicle_year"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-3">
|
||||
<label data-field="vehicle_plate">Plate #</label>
|
||||
<input type="text" name="vehicle_plate" id="vehicle-plate" class="form-control m-input" value="{{ data.getPlateNumber|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="vehicle_color"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="vehicle_color">Color</label>
|
||||
<input type="text" name="vehicle_color" id="vehicle-color" class="form-control m-input" value="{{ data.getCarColor|default('') }}" data-vehicle-field="1" disabled>
|
||||
<div class="form-control-feedback hide" data-field="vehicle_color"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-form__section">
|
||||
<div class="m-form__heading">
|
||||
<h3 class="m-form__heading-title">
|
||||
Transaction Details
|
||||
</h3>
|
||||
<span class="m-switch m-switch--icon block-switch">
|
||||
<label>
|
||||
<input type="checkbox" name="flag_advance" id="flag-advance" value="1"{{ data.getAdvanceOrder == "Yes" ? ' checked' }} disabled>
|
||||
<label class="switch-label">This is an advance order</label>
|
||||
<span></span>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="transaction_type">Transaction Type</label>
|
||||
<input type="text" name="transaction_type" id="trasaction-type" class="form-control m-input" value="{{ data.getTransType|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="service_type"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="mode_of_payment">Mode of Payment</label>
|
||||
<input type="text" name="mode_of_payment" id="mode-of-payment" class="form-control m-input" value="{{ data.getPaymentMethod|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="mode_of_payment"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label>Transaction Date</label>
|
||||
<input type="text" name="date_transaction" class="form-control m-input" value="{{ data.getTransDate|default("now")|date('d M Y - g:i A') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="date_transaction"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="date_schedule">Delivery Date</label>
|
||||
<div class="input-group date dp">
|
||||
<input type="text" name="date_delivery_date" class="form-control m-input" value="{{ data.getDeliveryDate|default('') }}" readonly placeholder="Select a date" disabled>
|
||||
<span class="input-group-addon">
|
||||
<i class="la la-calendar glyphicon-th"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="form-control-feedback hide" data-field="date_delivery_date"></div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<label data-field="date_schedule">Delivery Time</label>
|
||||
<div class="input-group">
|
||||
<input type="text" name="date_delivery_time" class="form-control m-input tp" value="{{ data.getDeliveryTime|default('') }}" readonly placeholder="Select a time" disabled>
|
||||
<span class="input-group-addon">
|
||||
<i class="la la-clock-o glyphicon-th"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="form-control-feedback hide" data-field="date_delivery_time"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="agent_notes">Agent Notes</label>
|
||||
<textarea name="agent_notes" class="form-control m-input" rows="15" disabled>{{ data.getAgentNotes1 }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="agent_notes"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label data-field="source">Transaction Origin</label>
|
||||
<input type="text" name="transaction_origin" id="trasaction-origin" class="form-control m-input" value="{{ data.getOrigin|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="mode_of_payment"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label data-field="delivery_instructions">Delivery Instructions</label>
|
||||
<textarea name="delivery_instructions" class="form-control m-input" rows="4" disabled>{{ data.getDeliveryInstructions }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label>Prepared By</label>
|
||||
<input type="text" name="prepared_by" class="form-control m-input" value="{{ obj.getPreparedBy|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="date_transaction"></div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label>Dispatched By</label>
|
||||
<input type="text" name="dispatched_by" class="form-control m-input" value="{{ data.getDispatchedBy|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="date_transaction"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="stage">Status</label>
|
||||
<input type="text" name="stage" class="form-control m-input" value="{{ data.getStage|default('') }}" disabled>
|
||||
<div class="form-control-feedback hide" data-field="stage"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="cancel_reason">Reason for Cancellation</label>
|
||||
<textarea name="cancel_reason" class="form-control m-input" rows="4" disabled>{{ data.getCancelReason|default('') }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="cancel_reason"></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="cancel_reason_specify">Details for Cancellation</label>
|
||||
<textarea name="cancel_reason_specify" class="form-control m-input" rows="4" disabled>{{ data.getCancelReasonSpecify|default('') }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="cancel_reason_specify"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-12">
|
||||
{% if data.getRows is empty %}
|
||||
<div class="m-alert m-alert--icon m-alert--icon-solid m-alert--outline alert alert-brand" role="alert">
|
||||
<div class="m-alert__icon">
|
||||
<i class="flaticon-exclamation-2"></i>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="m-alert__text">
|
||||
No transactions for this legacy job order.
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<table class="table table-striped m-table">
|
||||
<thead>
|
||||
<tr class="m-table__row--brand">
|
||||
<th>ID</th>
|
||||
<th>Item</th>
|
||||
<th>Quantity</th>
|
||||
<th>Price</th>
|
||||
<th>Price Level</th>
|
||||
<th>Status</th>
|
||||
<th>Account</th>
|
||||
<th>Enrollee</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in data.getRows %}
|
||||
<tr>
|
||||
<td>{{ row.getID|default("") }}</td>
|
||||
<td>{{ row.getItem|default('') }}</td>
|
||||
<td>{{ row.getQuantity|default('') }}</td>
|
||||
<td>{{ row.getPrice|default('') }}</td>
|
||||
<td>{{ row.getPriceLevel|default('') }}</td>
|
||||
<td>{{ row.getStatus|default('') }}</td>
|
||||
<td>{{ row.getAccount|default('') }}</td>
|
||||
<td>{{ row.getEnrollee|default('') }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-form__seperator m-form__seperator--dashed"></div>
|
||||
<div class="m-form__section">
|
||||
<div class="m-form__heading">
|
||||
<h3 class="m-form__heading-title">
|
||||
Location
|
||||
</h3>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="delivery_address">Delivery Address</label>
|
||||
<textarea name="delivery_address" class="form-control m-input" rows="4" disabled>{{ data.getDeliveryAddress|default('') }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="delivery_address"></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="landmark">Landmark</label>
|
||||
<textarea name="landmark" class="form-control m-input" rows="4" disabled>{{ data.getLandmark|default('') }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="landmark"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Loading…
Reference in a new issue