| 1 | <?php
|
|---|
| 2 | // Tabellarische Versandmodule besser pflegen
|
|---|
| 3 | // goeko@goeko.de
|
|---|
| 4 | ?>
|
|---|
| 5 | <script>
|
|---|
| 6 | $(document).ready(function(){
|
|---|
| 7 | var shipping_fields = [],
|
|---|
| 8 | shipping_fields_arr = [
|
|---|
| 9 | 'MODULE_SHIPPING_TABLE_COST_',
|
|---|
| 10 | 'MODULE_SHIPPING_ZONES_COST_'
|
|---|
| 11 | ];
|
|---|
| 12 |
|
|---|
| 13 | getShipping = function(wrapper){
|
|---|
| 14 | var values = [],
|
|---|
| 15 | inputsWrapper = wrapper.find('.priceWrapper');
|
|---|
| 16 |
|
|---|
| 17 | inputsWrapper.each(function(i, e){
|
|---|
| 18 | var $inputs = $(e).find('input'),
|
|---|
| 19 | weight = $inputs.eq(0).val(),
|
|---|
| 20 | shipping_price = $inputs.eq(1).val();
|
|---|
| 21 |
|
|---|
| 22 | if(weight && shipping_price){
|
|---|
| 23 | values.push( parseFloat($inputs.eq(0).val()).toFixed(2) +':'+ parseFloat($inputs.eq(1).val()).toFixed(2) );
|
|---|
| 24 | }
|
|---|
| 25 | });
|
|---|
| 26 | return values.join(',');
|
|---|
| 27 | };
|
|---|
| 28 |
|
|---|
| 29 | setField = function(field){
|
|---|
| 30 | //console.log( typeof $this.val() === 'number' );
|
|---|
| 31 |
|
|---|
| 32 | if( field.val() != '') {
|
|---|
| 33 | field.val( parseFloat(field.val()).toFixed(2) );
|
|---|
| 34 | } else {
|
|---|
| 35 | field.val('');
|
|---|
| 36 | }
|
|---|
| 37 | if(field.val() == 'NaN'){
|
|---|
| 38 | field.val('');
|
|---|
| 39 | }
|
|---|
| 40 | };
|
|---|
| 41 |
|
|---|
| 42 | for(var s=0;s<shipping_fields_arr.length;s++){
|
|---|
| 43 |
|
|---|
| 44 | for(var n=0;n<11;n++){
|
|---|
| 45 |
|
|---|
| 46 | var shipping_field = $('[name*='+shipping_fields_arr[s]+n+']');
|
|---|
| 47 |
|
|---|
| 48 | if(shipping_field.length>0){
|
|---|
| 49 | var shipping_field_values = shipping_field.val(),
|
|---|
| 50 | shipping_fieldWrapper = $('<div/>', {class:"shipping_fieldWrapper shipping_fieldWrapper"+s});
|
|---|
| 51 |
|
|---|
| 52 | shipping_field.wrapAll(shipping_fieldWrapper);
|
|---|
| 53 |
|
|---|
| 54 | var shipping_items = shipping_field_values.split(','),
|
|---|
| 55 | shipping_values = [],
|
|---|
| 56 | shipping_fieldWrapper = shipping_field.closest('div');
|
|---|
| 57 |
|
|---|
| 58 | if(shipping_items.length > 0){
|
|---|
| 59 |
|
|---|
| 60 | var mode = $('[name*=MODULE_SHIPPING_TABLE_MODE]'),
|
|---|
| 61 | mode_text = "Gewicht";
|
|---|
| 62 | if(mode.length > 0){
|
|---|
| 63 | var mode_id = $('[name*=MODULE_SHIPPING_TABLE_MODE]:checked').attr('id'),
|
|---|
| 64 | mode_text = $('[for='+mode_id+']').text();
|
|---|
| 65 | }
|
|---|
| 66 |
|
|---|
| 67 | shipping_fieldWrapper.append('<div class="title"><div>max. '+mode_text+'</div><div>Versandkosten</div></div>')
|
|---|
| 68 |
|
|---|
| 69 | for(var i=0; i<shipping_items.length; i++){
|
|---|
| 70 | var shipping_item = shipping_items[i].split(':');
|
|---|
| 71 | shipping_values.push(shipping_item);
|
|---|
| 72 |
|
|---|
| 73 | var priceWrapper = $('<div/>', {class:'priceWrapper'}),
|
|---|
| 74 | cart_price = $('<input/>', {value:shipping_item[0], type:"search", placeholder:'max. Bestellgewicht'}),
|
|---|
| 75 | shipping_price = $('<input/>', {value:shipping_item[1], type:"search", placeholder:'Versandkosten'});
|
|---|
| 76 |
|
|---|
| 77 | priceWrapper.append(cart_price);
|
|---|
| 78 | priceWrapper.append(shipping_price);
|
|---|
| 79 |
|
|---|
| 80 | shipping_fieldWrapper.append(priceWrapper);
|
|---|
| 81 |
|
|---|
| 82 | }
|
|---|
| 83 | var priceWrapper = $('<div/>', {class:'priceWrapper'}),
|
|---|
| 84 | cart_price = $('<input/>', {value:"", type:"search", placeholder:'max. Bestellgewicht'}),
|
|---|
| 85 | shipping_price = $('<input/>', {value:"", type:"search", placeholder:'Versandkosten'}),
|
|---|
| 86 | buttonbar = $('<div/>', {class:"buttonbar"}),
|
|---|
| 87 | submit_btn = $('<input/>', {value:"Speichern", type:"submit", class:"submit_btn"}),
|
|---|
| 88 | reset_btn = $('<input/>', {value:"Zurücksetzen", type:"reset", class:"reset_btn"});
|
|---|
| 89 |
|
|---|
| 90 | priceWrapper.append(cart_price);
|
|---|
| 91 | priceWrapper.append(shipping_price);
|
|---|
| 92 |
|
|---|
| 93 | shipping_fieldWrapper.append(priceWrapper);
|
|---|
| 94 |
|
|---|
| 95 | buttonbar.append(reset_btn);
|
|---|
| 96 | buttonbar.append(submit_btn);
|
|---|
| 97 | shipping_fieldWrapper.append(buttonbar);
|
|---|
| 98 |
|
|---|
| 99 | var inputFields = shipping_fieldWrapper.find('input')
|
|---|
| 100 | .not(".inputModule")
|
|---|
| 101 | .not(".submit_btn")
|
|---|
| 102 | .not(".reset_btn");
|
|---|
| 103 | inputFields.each(function(i, e){
|
|---|
| 104 | $input = $(e);
|
|---|
| 105 | var wrapper = $input.closest('.shipping_fieldWrapper'),
|
|---|
| 106 | shipping_field = wrapper.find('input').first();
|
|---|
| 107 |
|
|---|
| 108 | $input.on('blur', function(){
|
|---|
| 109 | $this = $(this);
|
|---|
| 110 | setField($this, shipping_field, wrapper);
|
|---|
| 111 | shipping_field.val( getShipping(wrapper) );
|
|---|
| 112 | });
|
|---|
| 113 | $input.on('search', function(){
|
|---|
| 114 | $this = $(this);
|
|---|
| 115 | $this.val('');
|
|---|
| 116 | shipping_field.val( getShipping(wrapper) );
|
|---|
| 117 | });
|
|---|
| 118 |
|
|---|
| 119 | });
|
|---|
| 120 | }
|
|---|
| 121 | }
|
|---|
| 122 |
|
|---|
| 123 |
|
|---|
| 124 |
|
|---|
| 125 | }
|
|---|
| 126 | }
|
|---|
| 127 |
|
|---|
| 128 | });
|
|---|
| 129 | </script>
|
|---|