LineItem->recursive = 0; $this->set('quoteProducts', $this->paginate()); } function view($id = null) { if (!$id) { $this->Session->setFlash(__('Invalid LineItem.', true)); $this->redirect(array('action'=>'index')); } $this->set('quoteProduct', $this->LineItem->read(null, $id)); } function add($quoteid = null) { if (!$quoteid && empty($this->data)) { $this->Session->setFlash(__('Invalid Quote ID', true)); $this->redirect(array('action'=>'index')); } if (!empty($this->data)) { $this->LineItem->create(); $product = $this->LineItem->Product->findById($this->data['LineItem']['product_id']); /* Copy all the data from the Product to the new LineItem */ $this->data['LineItem']['description'] = $product['Product']['description']; $this->data['LineItem']['title'] = $product['Product']['title']; $numberOfItems = $this->LineItem->find('count', array('conditions' => array('LineItem.quote_id' => $this->data['LineItem']['quote_id']))); $numberOfItems++; $this->data['LineItem']['item_number'] = $numberOfItems; if ($this->LineItem->save($this->data)) { $quoteid = $this->data['LineItem']['quote_id']; $this->Session->setFlash(__('Product Added to Quote Successfully', true)); $this->redirect(array('controller'=>'quotes', 'action'=>'view', $quoteid)); } else { $this->Session->setFlash(__('The LineItem could not be saved. Please, try again.', true)); } } $principles = $this->LineItem->Product->Principle->find('list'); $quote = $this->LineItem->Quote->read(null, $quoteid); $this->set(compact('principles','quote', 'products')); } /* Display a list of Products for a given principle. Used for the add() method */ function principle_products() { if (empty($this->data['LineItem']['principle_id'])) { } else { $this->set('products', $this->LineItem->Product->find('list', array('conditions'=>array('Product.principle_id'=>$this->data['LineItem']['principle_id'])))); } } /* Display a list of Options (if any) for a given Product. Used for the add() method */ function product_options() { /*$this->set('categories', $this->LineItem->Product->ProductOptionsCategory->find('list'), array('conditions' => array('ProductOptionsCategory.product_id'=>$this->data['LineItem']['product_id']), 'order'=>'ProductOptionsCategory.location ASC') );*/ $this->set('options', $this->LineItem->Product->ProductOptionsCategory->find('all', array('conditions' => array('ProductOptionsCategory.product_id'=>$this->data['LineItem']['product_id']), 'order'=>'ProductOptionsCategory.location ASC'))); } function edit($id = null) { if (!$id && empty($this->data)) { $this->Session->setFlash(__('Invalid LineItem', true)); $this->redirect(array('action'=>'index')); } if (!empty($this->data)) { if ($this->LineItem->save($this->data)) { $this->Session->setFlash(__('The LineItem has been saved', true)); $this->redirect(array('action'=>'index')); } else { $this->Session->setFlash(__('The LineItem could not be saved. Please, try again.', true)); } } if (empty($this->data)) { $this->data = $this->LineItem->read(null, $id); } $quotes = $this->LineItem->Quote->find('list'); $products = $this->LineItem->Product->find('list'); $this->set(compact('quotes','products')); } function delete($id = null) { $thisQP = $this->LineItem->read(null, $id); if (!$id) { $this->Session->setFlash(__('Invalid id for LineItem', true)); $this->redirect(array('action'=>'index')); } if ($this->LineItem->del($id)) { $this->Session->setFlash(__('LineItem deleted', true)); $this->redirect(array('controller'=>'quotes', 'action'=>'view/'.$thisQP['Quote']['id'])); } } } ?>