First commit this side of the pacific

This commit is contained in:
Karl Cordes 2009-12-16 15:50:48 -05:00
parent 5a5561a8a1
commit 26452cd1a0
8 changed files with 148 additions and 130 deletions

View file

@ -1,82 +1,82 @@
<?php
class ProductsController extends AppController {
var $name = 'Products';
var $components = array('RequestHandler');
var $helpers = array('Html', 'Form', 'Ajax', 'Number');
var $name = 'Products';
var $components = array('RequestHandler');
var $helpers = array('Html', 'Form', 'Ajax', 'Number');
function index() {
$this->Product->recursive = 0;
$this->set('products', $this->paginate());
}
function index() {
$this->Product->recursive = 0;
$this->set('products', $this->paginate());
}
function view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid Product.', true));
$this->redirect(array('action'=>'index'));
}
$this->set('product', $this->Product->read(null, $id));
function view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid Product.', true));
$this->redirect(array('action'=>'index'));
}
$this->set('product', $this->Product->read(null, $id));
//$this->set('product', $this->Product->find('first', array('conditions' => array('Product.id'=>$id), 'recursive' => 1)));
//$this->set('product', $this->Product->find('first', array('conditions' => array('Product.id'=>$id), 'recursive' => 1)));
$this->set('options', $this->Product->ProductOptionsCategory->find('all', array('conditions' => array('ProductOptionsCategory.product_id'=>$id), 'order'=>'ProductOptionsCategory.location ASC')));
$this->set('options', $this->Product->ProductOptionsCategory->find('all', array('conditions' => array('ProductOptionsCategory.product_id'=>$id), 'order'=>'ProductOptionsCategory.location ASC')));
$this->set('files', $this->Product->ProductAttachment->findAllByProductId($id));
$this->set('number_of_files', $this->Product->ProductAttachment->find('count', array('conditions' => array('ProductAttachment.product_id'=>$id))));
}
$this->set('files', $this->Product->ProductAttachment->findAllByProductId($id));
$this->set('number_of_files', $this->Product->ProductAttachment->find('count', array('conditions' => array('ProductAttachment.product_id'=>$id))));
}
function add() {
if (!empty($this->data)) {
$this->Product->create();
function add() {
if (!empty($this->data)) {
$this->Product->create();
if ($this->Product->save($this->data)) {
$this->Session->setFlash(__('The Product has been saved', true));
$id = $this->Product->id;
$this->redirect(array('action'=>'view/'.$id));
} else {
$this->Session->setFlash(__('The Product could not be saved. Please, try again.', true));
}
}
$principles = $this->Product->Principle->find('list');
if ($this->Product->save($this->data)) {
$this->Session->setFlash(__('The Product has been saved', true));
$id = $this->Product->id;
$this->redirect(array('action'=>'view/'.$id));
} else {
$this->Session->setFlash(__('The Product could not be saved. Please, try again.', true));
}
}
$principles = $this->Product->Principle->find('list');
$this->set(compact('principles', 'product_categories'));
}
$this->set(compact('principles', 'product_categories'));
}
function add_costing() {
function add_costing() {
}
}
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid Product', true));
$this->redirect(array('action'=>'index'));
}
if (!empty($this->data)) {
if ($this->Product->save($this->data)) {
$this->Session->setFlash(__('The Product has been saved', true));
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash(__('The Product could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->Product->read(null, $id);
$this->set('description', $this->data['Product']['description']);
}
$principles = $this->Product->Principle->find('list');
$this->set(compact('principles'));
}
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid Product', true));
$this->redirect(array('action'=>'index'));
}
if (!empty($this->data)) {
if ($this->Product->save($this->data)) {
$this->Session->setFlash(__('The Product has been saved', true));
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash(__('The Product could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->Product->read(null, $id);
$this->set('description', $this->data['Product']['description']);
}
$principles = $this->Product->Principle->find('list');
$this->set(compact('principles'));
}
function delete($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid id for Product', true));
$this->redirect(array('action'=>'index'));
}
if ($this->Product->del($id)) {
$this->Session->setFlash(__('Product deleted', true));
$this->redirect(array('action'=>'index'));
}
}
function delete($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid id for Product', true));
$this->redirect(array('action'=>'index'));
}
if ($this->Product->del($id)) {
$this->Session->setFlash(__('Product deleted', true));
$this->redirect(array('action'=>'index'));
}
}
}
?>

View file

@ -12,10 +12,6 @@ class ProductOption extends AppModel {
* that are already default == 1 , to be false.
*
*/
function beforeSave() {
}
}

View file

@ -5,8 +5,8 @@ class ProductOptionsCategory extends AppModel {
var $validate = array(
'product_id' => array('numeric'),
'name' => array('notempty'),
'location' => array('numeric'),
'exclusive' => array('notempty')
'location' => array('numeric' => array('allowEmpty' => true)),
'exclusive' => array('boolean')
);
//The Associations below have been created with all possible keys, those that are not needed can be removed

View file

@ -0,0 +1,13 @@
<?
class QuoteProductOption extends AppModel {
var $name = 'QuoteProductOption';
var $belongsTo = array('ProductOptionsCategory', 'QuoteProduct');
}
?>

View file

@ -1,5 +1,5 @@
<div class="products index">
<h2><?php __('Products');?></h2>
<h2><?php __('Product Index');?></h2>
<p>
<?php
echo $paginator->counter(array(

View file

@ -2,47 +2,47 @@
$i = 0;
foreach ($options as $opt) {
$default_option = '';
foreach($opt['ProductOption'] as $prodopt) {
$default_option = '';
foreach($opt['ProductOption'] as $prodopt) {
/* Make it the default selected if it's the default option
* Logic that enforces only 1 default option to be added to the product_options controller
*/
/* Make it the default selected if it's the default option
* Logic that enforces only 1 default option to be added to the product_options controller
*/
if($prodopt['model_number'] != null) {
$drop_options[$prodopt['id']] = $prodopt['model_number'].": ".$prodopt['title'];
}
else {
$drop_options[$prodopt['id']] = $prodopt['title'];
}
if($prodopt['model_number'] != null) {
$drop_options[$prodopt['id']] = $prodopt['model_number'].": ".$prodopt['title'];
}
else {
$drop_options[$prodopt['id']] = $prodopt['title'];
}
if($prodopt['default'] == 1) {
$default_option = $prodopt['id'];
if($prodopt['default'] == 1) {
$default_option = $prodopt['id'];
$drop_options[$prodopt['id']] .= " (Default)";
}
$drop_options[$prodopt['id']] .= " (Default)";
}
}
}
/**
* If it's an exclusive category, display a drop down box. Otherwise, check boxes
*/
if($opt['ProductOptionsCategory']['exclusive'] == 1) {
echo $form->input('ProductOption.'.$opt['ProductOptionsCategory']['name'],
array('label' => $opt['ProductOptionsCategory']['name'],
'options' => $drop_options, 'default' => $default_option));
}
/**
* If it's an exclusive category, display a drop down box. Otherwise, check boxes
*/
if($opt['ProductOptionsCategory']['exclusive'] == 1) {
echo $form->input('ProductOption.'.$opt['ProductOptionsCategory']['name'],
array('label' => $opt['ProductOptionsCategory']['name'],
'options' => $drop_options, 'default' => $default_option));
}
else {
echo $form->input($opt['ProductOptionsCategory']['name'],
array('options' => $drop_options, 'default' => $default_option,
'multiple' => 'checkbox'));
}
else {
echo $form->input($opt['ProductOptionsCategory']['name'],
array('options' => $drop_options, 'default' => $default_option,
'multiple' => 'checkbox'));
}
unset($drop_options);
}
unset($drop_options);
}
@ -53,5 +53,5 @@ foreach ($options as $opt) {
//print_r($categories);
//print_r($options);
print_r($options);
?>

View file

@ -94,7 +94,7 @@ foreach ($quote['QuotePage'] as $quotePage):
<td><?php echo $quoteProduct['QuoteProduct']['quantity'];?></td>
<td><?php echo $quoteProduct['QuoteProduct']['title'];?></td>
<td><?php echo $quoteProduct['QuoteProduct']['description'];?></td>
<td class="leftAlign"><?php echo $quoteProduct['QuoteProduct']['description'];?></td>
<td><?php echo $quote['Currency']['symbol'].$quoteProduct['QuoteProduct']['unit_price'];?></td>
<td><?php
@ -118,7 +118,7 @@ foreach ($quote['QuotePage'] as $quotePage):
<td></td>
<td></td>
<td></td>
<td>SUB-TOTAL (Excluding GST)</td>
<td class="rightAlign">SUB-TOTAL (Excluding GST)</td>
<td></td>
<td><?php echo $quote['Currency']['symbol'].$subTotal; ?></td>
<td></td>
@ -128,7 +128,7 @@ foreach ($quote['QuotePage'] as $quotePage):
<td></td>
<td></td>
<td></td>
<td>GST (10%)</td>
<td class="rightAlign">GST (10%)</td>
<td></td>
<td><?php
if($quote['Enquiry']['gst'] == 1 ) {
@ -151,7 +151,7 @@ foreach ($quote['QuotePage'] as $quotePage):
<td></td>
<td></td>
<td></td>
<td>TOTAL PAYABLE</td>
<td class="rightAlign">TOTAL PAYABLE</td>
<td></td>
<td><?php
$total = $subTotal + $gst;

View file

@ -547,6 +547,15 @@ table.productoptions tr.defaultoption {
table.quoteproducts {
width: 70%;
text-align: left;
}
td.leftAlign {
text-align: left;
}
td.rightAlign {
text-align: right;
}