Add email field to customer #UAT

This commit is contained in:
Kendrick Chan 2018-03-12 00:15:51 +08:00
parent fa37cbb5a9
commit f807c7041e
3 changed files with 58 additions and 65 deletions

View file

@ -172,6 +172,25 @@ class CustomerController extends BaseController
return $this->render('customer/form.html.twig', $params);
}
protected function setObject($obj, $req)
{
// set and save values
$obj->setTitle($req->request->get('title'))
->setFirstName($req->request->get('first_name'))
->setLastName($req->request->get('last_name'))
->setCustomerClassification($req->request->get('customer_classification'))
->setCustomerNotes($req->request->get('customer_notes'))
->setEmail($req->request->get('email'))
->setActive($req->request->get('flag_active') ? true : false);
// phone numbers
$obj->setPhoneMobile($req->request->get('phone_mobile'))
->setPhoneLandline($req->request->get('phone_landline'))
->setPhoneOffice($req->request->get('phone_office'))
->setPhoneFax($req->request->get('phone_fax'));
}
public function addSubmit(Request $req, ValidatorInterface $validator)
{
$this->denyAccessUnlessGranted('customer.add', null, 'No access.');
@ -180,13 +199,7 @@ class CustomerController extends BaseController
$em = $this->getDoctrine()->getManager();
$row = new Customer();
// set and save values
$row->setTitle($req->request->get('title'))
->setFirstName($req->request->get('first_name'))
->setLastName($req->request->get('last_name'))
->setCustomerClassification($req->request->get('customer_classification'))
->setCustomerNotes($req->request->get('customer_notes'))
->setActive($req->request->get('flag_active') ? true : false);
$this->setObject($row, $req);
// initialize error lists
$error_array = [];
@ -195,33 +208,6 @@ class CustomerController extends BaseController
// error_log(print_r($req->request->all(), true));
// custom validation for mobile numbers
$numbers = json_decode($req->request->get('mobile_numbers'));
if (!empty($numbers)) {
foreach ($numbers as $key => $number) {
$date_reg = DateTime::createFromFormat("d M Y - h:i A", $number->date_registered);
$mobile_number = new MobileNumber();
$mobile_number->setID($number->id)
->setDateRegistered($date_reg)
->setCustomer($row);
$nerrors = $validator->validate($mobile_number);
// add errors to list
foreach ($nerrors as $error) {
if (!isset($nerror_array[$key]))
$nerror_array[$key] = [];
$nerror_array[$key][$error->getPropertyPath()] = $error->getMessage();
}
if (!isset($nerror_array[$key])) {
$row->addMobileNumber($mobile_number);
}
}
}
// custom validation for vehicles
$vehicles = json_decode($req->request->get('vehicles'));
@ -429,13 +415,7 @@ class CustomerController extends BaseController
if (empty($cust))
throw $this->createNotFoundException('The item does not exist');
// set and save values
$cust->setTitle($req->request->get('title'))
->setFirstName($req->request->get('first_name'))
->setLastName($req->request->get('last_name'))
->setCustomerClassification($req->request->get('customer_classification'))
->setCustomerNotes($req->request->get('customer_notes'))
->setActive($req->request->get('flag_active') ? true : false);
$this->setObject($cust, $req);
// initialize error lists
$error_array = [];
@ -445,17 +425,6 @@ class CustomerController extends BaseController
// TODO: validate mobile numbers
// TODO: validate vehicles
/*
// custom validation for mobile numbers
$numbers = json_decode($req->request->get('mobile_numbers'));
$this->updateNumbers($em, $cust, $numbers);
*/
// phone numbers
$cust->setPhoneMobile($req->request->get('phone_mobile'))
->setPhoneLandline($req->request->get('phone_landline'))
->setPhoneOffice($req->request->get('phone_office'))
->setPhoneFax($req->request->get('phone_fax'));
// custom validation for vehicles
$vehicles = json_decode($req->request->get('vehicles'));
$this->updateVehicles($em, $cust, $vehicles);

View file

@ -127,6 +127,11 @@ class Customer
*/
protected $flag_active;
/**
* @ORM\Column(type="string", length=80)
*/
protected $email;
public function __construct()
{
$this->numbers = new ArrayCollection();
@ -146,6 +151,8 @@ class Customer
$this->phone_landline = '';
$this->phone_office = '';
$this->phone_fax = '';
$this->email = '';
}
public function getID()
@ -362,4 +369,15 @@ class Customer
{
return $this->tickets;
}
public function setEmail($email)
{
$this->email = $email;
return $this;
}
public function getEmail()
{
return $this->email;
}
}

View file

@ -41,19 +41,6 @@
</h3>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-4">
<label data-field="customer_classification">
Customer Classification
</label>
<select name="customer_classification" class="form-control m-input">
{% for key, classification in classifications %}
<option value="{{ key }}"{{ obj.getCustomerClassification == key ? ' selected' }}>{{ classification }}</option>
{% endfor %}
</select>
<div class="form-control-feedback hide" data-field="customer_classification"></div>
</div>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-4">
<label data-field="title">
Title
@ -77,6 +64,25 @@
</div>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-4">
<label data-field="customer_classification">
Customer Classification
</label>
<select name="customer_classification" class="form-control m-input">
{% for key, classification in classifications %}
<option value="{{ key }}"{{ obj.getCustomerClassification == key ? ' selected' }}>{{ classification }}</option>
{% endfor %}
</select>
<div class="form-control-feedback hide" data-field="customer_classification"></div>
</div>
<div class="col-lg-8">
<label data-field="email">
E-mail
</label>
<input type="text" name="email" class="form-control m-input" value="{{ obj.getEmail }}" data-name="email">
</div>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-12">
<label data-field="customer_notes">
Customer Notes