diff --git a/controllers/enquiries_controller.php b/controllers/enquiries_controller.php index e0f028a0..9c74fde1 100755 --- a/controllers/enquiries_controller.php +++ b/controllers/enquiries_controller.php @@ -53,19 +53,26 @@ class EnquiriesController extends AppController { if(empty($this->data)) { $this->set('step', 1); - $users = $this->Enquiry->User->find('list', array('fields' => array('User.id', 'User.username'))); - $this->set('users', $users); } elseif( (!empty($this->data)) && ($this->data['Enquiry']['step'] == 1) ) { $customer = $this->Enquiry->Customer->findByName($this->data['Customer']['name']); - $this->set('customer', $customer); - $contacts = $this->Enquiry->Contact->find('list', array('conditions' => array('Contact.customer_id' => $customer['Customer']['id']))); + } + + if(isset($this->params['named']['customerid'])) { + $customer = $this->Enquiry->Customer->findById($this->params['named']['customerid']); + } + + + if(isset($customer)) { + /* Check if the customer exists in the database - otherwise send the user back to step 1*/ if(!$customer) { $this->Session->setFlash(__('The customer must already exist in the database. Please try again', true)); $this->redirect(array('action'=>'add')); } + $this->set('customer', $customer); + $contacts = $this->Enquiry->Contact->find('list', array('conditions' => array('Contact.customer_id' => $customer['Customer']['id']))); $this->set('step',2); $this->set('contacts', $contacts); @@ -126,8 +133,29 @@ class EnquiriesController extends AppController { } else { $this->Enquiry->create(); - $state = $this->Enquiry->State->findById($this->data['Enquiry']['state_id']); - $principle = $this->Enquiry->Principle->findById($this->data['Enquiry']['principle_id']); + + $enquiryno = $this->__generateEnquiryNumber($this->data); + $this->data['Enquiry']['title'] = $enquiryno; + $principle = $this->Enquiry->Principle->findById($this->data['Enquiry']['principle_id']); + $this->data['Enquiry']['principle_code'] = $principle['Principle']['code']; //Store which principle code this enquiry belongs to. + Sanitize::clean($this->data); + } + + if ($this->Enquiry->save($this->data)) { + $id = $this->Enquiry->id; + $this->__sendNewEnquiryEmail($id); + } else { + $this->Session->setFlash(__('The Enquiry could not be saved. Please, try again.', true)); + } + } + + } + + /* Generate Enquiry number and return it as a string */ + + function __generateEnquiryNumber($data) { + $state = $this->Enquiry->State->findById($data['Enquiry']['state_id']); + $principle = $this->Enquiry->Principle->findById($data['Enquiry']['principle_id']); /* Generate the enquiry number for this enquiry */ /* CMC Enquiry number format is: * CMCE- @@ -161,7 +189,7 @@ class EnquiriesController extends AppController { $principleconditions = array ( "Enquiry.principle_code" => $principle['Principle']['code'], - "Enquiry.state_id" => $this->data['Enquiry']['state_id'] + "Enquiry.state_id" => $data['Enquiry']['state_id'] ); $stateprincipleenquiries = $this->Enquiry->findCount($principleconditions); @@ -210,29 +238,15 @@ class EnquiriesController extends AppController { /* Generate/set the enquiry number */ $enquiryno = 'CMC'.$enquiryid.$state['State']['enqform'].'E'.$principle['Principle']['code'].$principleenquiries. '-'.$stateprincipleenquiries; - - - $this->data['Enquiry']['title'] = $enquiryno; - $this->data['Enquiry']['principle_code'] = $principle['Principle']['code']; //Store which principle code this enquiry belongs to. - Sanitize::clean($this->data); - } - - if ($this->Enquiry->save($this->data)) { - $id = $this->Enquiry->id; - $this->__sendNewEnquiryEmail($id); - } else { - $this->Session->setFlash(__('The Enquiry could not be saved. Please, try again.', true)); + return $enquiryno; } - } - - } /* Autocomplete the customer name - Used in: add.ctp */ function completeCustomer() { $this->set('customers', $this->Enquiry->Customer->find('all', array( 'conditions' => array( - 'Customer.name LIKE' => $this->data['Customer']['name'].'%' + 'Customer.name LIKE' => '%'.$this->data['Customer']['name'].'%' ),'fields' => array('Customer.name') ))); $this->layout = 'ajax'; diff --git a/views/customers/edit.ctp b/views/customers/edit.ctp index 405a58b0..7f61bcdd 100755 --- a/views/customers/edit.ctp +++ b/views/customers/edit.ctp @@ -6,6 +6,7 @@ echo $form->input('id'); echo $form->input('name'); echo $form->input('abn'); + echo $form->input('notes'); ?> end('Submit');?> diff --git a/views/customers/view.ctp b/views/customers/view.ctp index 351a9623..63ac1821 100755 --- a/views/customers/view.ctp +++ b/views/customers/view.ctp @@ -16,11 +16,18 @@ nice($customer['Customer']['created']); ?>   + > + > + +   + +
  • link(__('Edit Customer', true), array('action'=>'edit', $customer['Customer']['id'])); ?>
  • +
  • link(__('New Enquiry for this Customer', true), array('controller'=>'enquiries', 'action'=>'add/customerid:'.$customer['Customer']['id'])); ?>
@@ -83,7 +90,7 @@ +
    -
  • link(__('New Enquiry', true), array('controller'=> 'enquiries', 'action'=>'add'));?>
  • +
  • link(__('New Enquiry for this Customer', true), array('controller'=> 'enquiries', 'action'=>'add/customerid:'.$customer['Customer']['id']));?>link($html->image('folder-new.png'), array('controller'=> 'enquiries', 'action'=>'add/customerid:'.$customer['Customer']['id']), null, null, false); ?>
+ diff --git a/webroot/img/folder-new.png b/webroot/img/folder-new.png new file mode 100644 index 00000000..fcd15c01 Binary files /dev/null and b/webroot/img/folder-new.png differ diff --git a/webroot/img/folder.png b/webroot/img/folder.png new file mode 100644 index 00000000..0171b09f Binary files /dev/null and b/webroot/img/folder.png differ