From deaea4a18eac4b07f4389a392ce48b7acd18b227 Mon Sep 17 00:00:00 2001 From: Karl Cordes Date: Sun, 31 Jan 2010 00:58:22 -0700 Subject: [PATCH] Forgot to add files to last commit --- views/line_items/add.ctp | 85 ++++++++++++ views/line_items/edit.ctp | 42 ++++++ views/line_items/index.ctp | 84 ++++++++++++ views/line_items/principle_products.ctp | 12 ++ views/line_items/product_options.ctp | 57 +++++++++ views/line_items/view.ctp | 163 ++++++++++++++++++++++++ webroot/js/add_costing.js | 59 +++++++++ 7 files changed, 502 insertions(+) create mode 100755 views/line_items/add.ctp create mode 100755 views/line_items/edit.ctp create mode 100755 views/line_items/index.ctp create mode 100755 views/line_items/principle_products.ctp create mode 100755 views/line_items/product_options.ctp create mode 100755 views/line_items/view.ctp create mode 100644 webroot/js/add_costing.js diff --git a/views/line_items/add.ctp b/views/line_items/add.ctp new file mode 100755 index 00000000..b86c1111 --- /dev/null +++ b/views/line_items/add.ctp @@ -0,0 +1,85 @@ +
+create('LineItem');?> +
+ +input('quote_id', array('type' => 'hidden', 'value' => $quote['Quote']['id'])); + + + echo $form->input('quantity', array('class' => 'required validate-number', 'title'=>'Please enter the quantity. It must be a number')); + + echo $form->input('option', array('label' => 'This item is optional')); + + echo $form->input('principle_id', array('empty' => 'Select a Principle')); + echo $ajax->observeField('LineItemPrincipleId', array( + 'url' => 'principle_products', + 'frequency' => 0.2, + 'update' => 'products' + )); + + + echo $form->input('product_id', array('type' => 'select', 'id'=>'products')); + + + + echo $ajax->observeField('products', array( + + 'url' => 'product_options', + 'frequency' => 0.2, + 'update' => 'productoptions' + )); + + + echo $ajax->div('productoptions'); + echo $ajax->divEnd('productoptions'); + + + + + //echo '
'; + //echo $form->select('QuoteProduct.product_id', null, null, array('id'=>'products')); + //*/ + +/* + echo $form->input('item_number'); + echo $form->input('option'); + echo $form->input('quantity'); + echo $form->input('cost_price'); + echo $form->input('currency_id'); + echo $form->input('our_discount'); + echo $form->input('packing'); + echo $form->input('shipping_weight'); + echo $form->input('shipping_cost'); + echo $form->input('exchange_rate'); + echo $form->input('duty'); + echo $form->input('finance'); + echo $form->input('misc'); + echo $form->input('gross_sell_price'); + echo $form->input('target_gp'); + echo $form->input('title'); + echo $form->input('description'); + echo $form->input('quote_id'); + echo $form->input('product_id'); + echo $form->input('discount'); + */ + +?> +
+end('Submit'); + echo $javascript->codeBlock("new Validation('QuoteProductAddForm', {immediate : true, useTitles : true});", array('allowCache'=>true, 'safe'=>false)); + + +?> +
+
+ +
diff --git a/views/line_items/edit.ctp b/views/line_items/edit.ctp new file mode 100755 index 00000000..dee57c87 --- /dev/null +++ b/views/line_items/edit.ctp @@ -0,0 +1,42 @@ +
+create('QuoteProduct');?> +
+ + input('id'); + echo $form->input('item_number'); + echo $form->input('option'); + echo $form->input('quantity'); + echo $form->input('cost_price'); + echo $form->input('currency_id'); + echo $form->input('our_discount'); + echo $form->input('packing'); + echo $form->input('shipping_weight'); + echo $form->input('shipping_cost'); + echo $form->input('exchange_rate'); + echo $form->input('duty'); + echo $form->input('finance'); + echo $form->input('misc'); + echo $form->input('gross_sell_price'); + echo $form->input('target_gp'); + echo $form->input('title'); + echo $form->input('description'); + echo $form->input('quote_id'); + echo $form->input('product_id'); + echo $form->input('discount'); + ?> +
+end('Submit');?> +
+
+ +
diff --git a/views/line_items/index.ctp b/views/line_items/index.ctp new file mode 100755 index 00000000..688548ce --- /dev/null +++ b/views/line_items/index.ctp @@ -0,0 +1,84 @@ +
+

+

+counter(array( +'format' => __('Page %page% of %pages%, showing %current% records out of %count% total, starting on record %start%, ending on %end%', true) +)); +?>

+ + + + + + + + + + + + + + + > + + + + + + + + + + + + +
sort('id');?>sort('item_number');?>sort('option');?>sort('quantity');?>sort('title');?>sort('description');?>sort('quote_id');?>sort('product_id');?>sort('costing_id');?>
+ + + + + + + + + + + + + link($quoteProduct['Quote']['id'], array('controller' => 'quotes', 'action' => 'view', $quoteProduct['Quote']['id'])); ?> + + link($quoteProduct['Product']['title'], array('controller' => 'products', 'action' => 'view', $quoteProduct['Product']['id'])); ?> + + + + link(__('View', true), array('action' => 'view', $quoteProduct['QuoteProduct']['id'])); ?> + link(__('Edit', true), array('action' => 'edit', $quoteProduct['QuoteProduct']['id'])); ?> + link(__('Delete', true), array('action' => 'delete', $quoteProduct['QuoteProduct']['id']), null, sprintf(__('Are you sure you want to delete # %s?', true), $quoteProduct['QuoteProduct']['id'])); ?> +
+
+
+ prev('<< '.__('previous', true), array(), null, array('class'=>'disabled'));?> + | numbers();?> + next(__('next', true).' >>', array(), null, array('class' => 'disabled'));?> +
+
+ +
diff --git a/views/line_items/principle_products.ctp b/views/line_items/principle_products.ctp new file mode 100755 index 00000000..51e8ce24 --- /dev/null +++ b/views/line_items/principle_products.ctp @@ -0,0 +1,12 @@ +Select a Product'; + +if(!empty($products)) { + + foreach($products as $k => $v) { + echo ""; + } +} + +?> diff --git a/views/line_items/product_options.ctp b/views/line_items/product_options.ctp new file mode 100755 index 00000000..86bbf2f9 --- /dev/null +++ b/views/line_items/product_options.ctp @@ -0,0 +1,57 @@ +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')); + } + + unset($drop_options); +} + + + + + + + + +//print_r($categories); + +print_r($options); +?> diff --git a/views/line_items/view.ctp b/views/line_items/view.ctp new file mode 100755 index 00000000..d6d75ad0 --- /dev/null +++ b/views/line_items/view.ctp @@ -0,0 +1,163 @@ +
+

+
+ > + > + +   + + > + > + +   + + > + > + +   + + > + > + +   + + > + > + +   + + > + > + +   + + > + > + link($quoteProduct['Quote']['id'], array('controller' => 'quotes', 'action' => 'view', $quoteProduct['Quote']['id'])); ?> +   + + > + > + link($quoteProduct['Product']['title'], array('controller' => 'products', 'action' => 'view', $quoteProduct['Product']['id'])); ?> +   + + > + > + +   + +
+
+
+ +
+ + \ No newline at end of file diff --git a/webroot/js/add_costing.js b/webroot/js/add_costing.js new file mode 100644 index 00000000..8dff1c38 --- /dev/null +++ b/webroot/js/add_costing.js @@ -0,0 +1,59 @@ + +function buildup() { + +//Fetch all the relevent inputs from the form + + +quantity = +($F('CostingQuantity')); + +costprice = +($F('CostingUnitCostPrice')); +ourdiscount_percentage = +($F('CostingOurDiscountPercent')); +packing_each = +($F('CostingPacking')); +exchange_rate = +($F('CostingExchangeRate')); +shipping_cost = +($F('CostingShippingCost')); +duty = +($F('CostingDutyPercent')); + + +sellprice_each = +($F('sellprice_each')); + +customs = +($F('CostingCustoms')); +misc_cost = +($F('CostingMiscCosts')); +finance = +($F('CostingFinancePercent')); + + + +if(ourdiscount_percentage != 0) { + discount = ourdiscount_percentage / 100; +} +else { + discount = 0; +} +discountamount = discount * costprice; +net_foreign_price = costprice - discountamount; + +total_foreign_price = net_foreign_price + packing_each; + + +$F('CostingFobCountryOfExport').value = total_foreign_price; +domestic_cost = total_foreign_price / exchange_rate; +//$('convert_to_aud').value = domestic_cost.toFixed(2); +dutyamount = (duty / 100) * domestic_cost; + +total_landed_cost = domestic_cost + dutyamount + customs + misc_cost + shipping_cost; + +financeamount = (finance / 100) * domestic_cost; +financeamount = financeamount.toFixed(2); +//$('financeamount').update('Finance amount: ' + financeamount); +total_landed_cost += (+financeamount); +total_landed_cost = total_landed_cost.toFixed(2); +//$('total_landed_cost').value = total_landed_cost; +gross_profit_dollars = sellprice_each - total_landed_cost; +//$('gross_profit_dollars').value = gross_profit_dollars; +//$('gross_profit_percent').value = ((gross_profit_dollars / sellprice_each)*100).toFixed(2); + +} + +//new Form.Observer('CostingAddForm', 0.5, buildup()); +new Form.Element.EventObserver('CostingPacking', 0.5, buildup()); + +