public function action_mk($id = null) { if ($docmk = Model_DocMK::find($id)) { // echo "Document found, this should output some html here."; // $pdf = MyDoc::forge('mpdf')->init('th','A4','','garuda' , -5 , 0 , 10 , 0 , 0 , 0, 'P'); // $pdf->set_display_mode('fullpage'); // $pdf->list_indent_first_level = 0; $pdf = $this->create_doc(); $data['doc_name'] = 'ใบแจ้งผลิตสินค้า'; $data['doc_code'] = 'FMMK-010 REV:2-27/01/51'; $data['mk_no'] = $docmk->mk_no; $data['mk_date'] = Petro::to_app_date($docmk->mk_date); $data['client'] = Petro_Lookup::get(null, $docmk->client_id, 'clients', 'id', 'name'); $data['client_po'] = $docmk->client_po; $data['delivery_date'] = Petro::to_app_date($docmk->delivery_date); $data['belt_type'] = Petro_Lookup::get('belt.type', $docmk->belt_type); $data['belt_color'] = Petro_Lookup::get('belt.color', $docmk->belt_color); $data['belt_width'] = $docmk->belt_width . ' ' . Petro_Lookup::get('belt.w.unit', $docmk->belt_width_unit); $data['belt_ply'] = $docmk->belt_ply . ' ' . 'ชั้น'; $data['belt_ep'] = Petro_Lookup::get('belt.ep', $docmk->belt_ep); $data['belt_thick'] = $docmk->belt_thick . ' (' . $docmk->belt_top_thick . ' + ' . $docmk->belt_bot_thick . ')'; $data['belt_grade'] = Petro_Lookup::get('belt.grade', $docmk->belt_grade) . ' (' . $docmk->belt_top_grade . '/' . $docmk->belt_bot_grade . ')'; $data['belt_length'] = $docmk->belt_length . ' ' . Petro_Lookup::get('belt.l.unit', $docmk->belt_length_unit); $data['belt_end'] = Petro_Lookup::get('belt.end', $docmk->belt_end); $data['belt_qty'] = $docmk->belt_qty . ' ' . 'เส้น'; $data['remark'] = $docmk->remark; $content = View::forge('print/fmmk-010', $data)->render(); $pdf->write_html($content); $pdf->output(); } else { echo "Document not found!"; } }
public static function calc_price($data) { // convert belt width to inch unit $info['width'] = static::_convert_width($data->belt_width, $data->belt_width_unit); // convert belt length to meter $info['length'] = static::_convert_length($data->belt_length, $data->belt_length_unit); // add 1 meter for endless type $info['extra_length'] = $data->belt_end == 2 ? 1 : 0; // add another 1 meter for width > 40 $data->belt_width >= 40 and $info['extra_length']++; // determin the usual total thickness of the given number of ply $info['usual_thick'] = static::$ply_thick[$data->belt_ply]['normal']; // compare it to the given total thickness if ($data->belt_thick > $info['usual_thick']) { $info['thick_multiplier'] = round($data->belt_thick - $data->belt_ply, 4); } else { $info['thick_multiplier'] = static::$ply_thick[$data->belt_ply]['use']; } // determine price multiplier using the given grade, type, color, and EP $info['ep'] = Petro_Lookup::get('belt.ep', $data->belt_ep); $result = DB::select($info['ep'])->from('price_table')->where('belt_grade', $data->belt_grade)->and_where('belt_type', $data->belt_type)->and_where('belt_color', $data->belt_color)->as_object()->execute(); $result = $result->current(); $info['price_multiplier'] = $result->{$info}['ep']; $info['standard_price'] = $info['width'] * $info['thick_multiplier'] * $info['price_multiplier'] * 3.28 * ($info['length'] + $info['extra_length']); return $info; }
/** * Define columns */ protected static function _columns($page = 'index') { $columns_for = array('view' => array('mk_id' => array('label' => 'MK No.', 'grid' => array('process' => function ($data) { return Petro_Lookup::table('docmk', 'id', 'mk_no', $data->mk_id); })), 'suggest_roll', 'length', 'remark', 'user_id')); if ($page == 'index') { $columns_for['view']['_action_'] = Petro_Grid::default_actions(); return $columns_for['view']; } return $columns_for[$page]; }
<div class="control-group form-inline<?php echo isset($errors['belt_length']) ? ' error' : ''; ?> "> <label class="control-label"> <?php echo __('belt_length'); echo Petro::render_errors($errors, 'belt_length'); ?> </label> <div class="controls"> <?php echo Form::input('belt_length', Input::post('belt_length', isset($docmk) ? $docmk->belt_length : ''), array('id' => 'form1_belt_length', 'class' => 'span2' . (isset($errors['belt_length']) ? ' error' : ''))); ?> <?php $belt_lunit = Petro_Lookup::get_array('belt.l.unit'); echo Form::select('belt_length_unit', Input::post('belt_length_unit', isset($docmk) ? $docmk->belt_length_unit : ''), $belt_lunit, array('id' => 'form1_belt_length_unit', 'class' => 'span2')); ?> <label style="width:150px;text-align:right" for="belt_end"><?php echo __('belt_end'); ?> </label> <?php $belt_end = Petro_Lookup::get_array('belt.end'); echo Form::select('belt_end', Input::post('belt_end', isset($docmk) ? $docmk->belt_end : ''), $belt_end, array('id' => 'form1_belt_end', 'class' => '' . (isset($errors['belt_end']) ? 'error' : ''))); ?> </div> </div> </div> </div><!--/row-->
public function add_field($name, $label = '', $value = '', $form = array(), $rules = array()) { // get options' values from language file, if available if (isset($form['options'])) { foreach ($form['options'] as $key => $val) { $form['options'][$key] = \Lang::get($val) ?: $val; } } // lookup attribute if (isset($form['type']) and $form['type'] == 'select' and isset($form['lookup'])) { $source = $form['lookup']; if (is_array($source)) { $form['options'] = Petro_Lookup::table($source['table'], $source['key'], $source['value']); } else { $form['options'] = Petro_Lookup::get($source); } } // editable attribute if (!isset($form['editable'])) { $form['editable'] = true; } if (empty($label)) { $label = \Lang::get($name) ?: \Inflector::humanize($name); } $this->fields[$name] = array('name' => $name, 'label' => $label, 'value' => $value, 'form' => $form, 'rules' => $rules); }
<?php $this_controller = Str::lower(Uri::segment(1)); $this_method = Str::lower(Uri::segment(2)); isset($edit_mode) or $edit_mode = false; isset($errors) or $errors = array(); echo Form::open(array('class' => 'form-horizontal')); ?> <div class="row-fluid"> <div class="well span8"> <?php echo Petro_Form::input('first_name', Input::post('first_name', isset($user) ? $user->profile_fields['first_name'] : ''), array(), 'First Name', $errors); echo Petro_Form::input('last_name', Input::post('last_name', isset($user) ? $user->profile_fields['last_name'] : ''), array(), 'Last Name', $errors); echo Petro_Form::input('email', Input::post('email', isset($user) ? $user->email : ''), array(), 'Email', $errors); echo '<hr/>'; echo Petro_Form::input('username', Input::post('username', isset($user) ? $user->username : ''), $edit_mode ? array('readonly' => 'readonly') : array(), 'Username', $errors); if (!$edit_mode) { echo Petro_Form::password('password', Input::post('password', ''), array(), 'Password', $errors); echo Petro_Form::password('password2', Input::post('password2', ''), array(), 'Confirm Password', $errors); } echo '<hr/>'; $groups = Petro_Lookup::table('groups', 'level', 'name'); echo Petro_Form::select('group', Input::post('group', isset($user) ? $user->group : '1'), $groups, array(), 'Group', $errors); echo Petro_Form::render_buttons(array(\Form::submit('submit', 'Submit', array('class' => 'btn btn-primary')), \Html::anchor('users', 'Cancel', array('class' => 'btn')))); ?> </div> </div><!--/row--> <?php echo Form::close();
echo Petro_Form::textarea('deliver_to', Input::post('deliver_to', isset($docmk) ? $docmk->deliver_to : ''), array('id' => 'form1_deliver_to', 'style' => 'width:90%'), __('deliver_to'), $errors); ?> </div> </div><!--/row--> <!--belt spec--> <?php include '_form_belt_spec.php'; ?> <div class="row-fluid"> <div class="span7"> <?php echo Petro_Form::input('belt_qty', Input::post('belt_qty', isset($docmk) ? $docmk->belt_qty : ''), array('id' => 'form1_belt_qty', 'class' => 'span2'), __('belt_qty'), $errors); echo Petro_Form::input('belt_price_net', Input::post('belt_price_net', isset($docmk) ? $docmk->belt_price_net : ''), array('id' => 'form1_belt_price_net'), __('belt_price_net'), $errors); echo Petro_Form::input('belt_amount', Input::post('belt_amount', isset($docmk) ? $docmk->belt_amount : ''), array('id' => 'form1_belt_amount'), __('belt_amount'), $errors); echo Petro_form::textarea('remark', Input::post('remark', isset($docmk) ? $docmk->remark : ''), array('id' => 'form1_remark', 'class' => 'span4'), __('remark'), $errors); $status = Petro_Lookup::get('prd.status'); echo Petro_Form::select('status', Input::post('status', isset($docmk) ? $docmk->status : ''), $status, array('id' => 'form1_status'), __('status'), $errors); ?> </div> <div class="span5"> <h3><?php echo __('belt_price_head'); ?> </h3> <?php echo Petro_Form::input('belt_price', Input::post('belt_price', isset($docmk) ? $docmk->belt_price : ''), array('id' => 'form1_belt_price', 'readonly' => 'readonly'), __('belt_price'), $errors); echo Petro_Form::input('belt_disc1', Input::post('belt_disc1', isset($docmk) ? $docmk->belt_disc1 : ''), array('id' => 'form1_belt_disc1'), __('belt_disc1'), $errors); echo Petro_Form::input('disc_price', Input::post('disc_price', isset($docmk) ? $docmk->belt_price : ''), array('id' => 'form1_disc_price', 'readonly' => 'readonly'), __('disc_price'), $errors); ?> </div> </div><!--/row-->
protected function display_info($docmk) { // $out = Petro::render_attr_table_open($docmk); // $out .= Petro::render_attr_table_row(__('mk_no'), $docmk->mk_no); // $out .= Petro::render_attr_table_row(__('mk_date'), Petro::to_app_date($docmk->mk_date)); // $out .= Petro::render_attr_table_row(__('client_id'), // '<a href="'.Uri::base().'clients/view/'.$docmk->client_id.'">'. // Petro_Lookup::get(null, $docmk->client_id, 'clients', 'id', 'name'). // '</a>' // ); // $out .= Petro::render_attr_table_row(__('client_po'), $docmk->client_po); // $out .= Petro::render_attr_table_row(__('product_type'), Petro_Lookup::get('product.type', $docmk->product_type)); // $out .= Petro::render_attr_table_row(__('belt_info'), BeltInfo::long($docmk)); // $out .= Petro::render_attr_table_row(__('belt_length'), $docmk->belt_length.' '.Petro_Lookup::get('belt.l.unit', $docmk->belt_length_unit)); // $out .= Petro::render_attr_table_row(__('belt_end'), Petro_Lookup::get('belt.end', $docmk->belt_end)); // $out .= Petro::render_attr_table_row(__('belt_qty'), $docmk->belt_qty.' '.'เส้น'); // $price = BeltInfo::calc_price($docmk); // $out .= Petro::render_attr_table_row(__('belt_price'), number_format($price['standard_price'], 2)); // $out .= Petro::render_attr_table_row(__('remark'), $docmk->remark); // $out .= Petro::render_attr_table_row(__('creator'), $docmk->creator_name); // $out .= Petro::render_attr_table_row(__('status'), Petro_Lookup::get('prd.status', $docmk->status)); // $out .= Petro::render_attr_table_close(); // return $out; return Petro::render_attr_table($docmk, array('mk_no', 'mk_date' => function ($data) { return Petro::to_app_date($data->mk_date); }, 'client_id' => function ($data) { return '<a href="' . Uri::base() . 'clients/view/' . $data->client_id . '">' . Petro_Lookup::get(null, $data->client_id, 'clients', 'id', 'name') . '</a>'; }, 'client_po', 'product_type' => function ($data) { return Petro_Lookup::get('product.type', $data->product_type); }, 'belt_info' => function ($data) { return BeltInfo::long($data); }, 'belt_length' => function ($data) { return $data->belt_length . ' ' . Petro_Lookup::get('belt.l.unit', $data->belt_length_unit); }, 'belt_end' => function ($data) { return Petro_Lookup::get('belt.end', $data->belt_end); }, 'belt_qty' => function ($data) { return $data->belt_qty . ' ' . 'เส้น'; }, 'belt_price' => function ($data) { $price = BeltInfo::calc_price($data); return number_format($price['standard_price'], 2); }, 'remark', 'creator' => function ($data) { return $data->creator_name; }, 'status' => function ($data) { return Petro_Lookup::get('prd.status', $data->status); })); }
public function setup_index(&$grid) { $this->sidebars->add('Filters', Petro::render_filters(array('code' => array('label' => 'Code', 'type' => 'string'), 'name' => array('type' => 'string'), 'status' => array('type' => 'checkbox', 'collection' => Petro_Lookup::get('client.status'))))); }