コード例 #1
0
ファイル: print.php プロジェクト: ratiw/petro-test
 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!";
     }
 }
コード例 #2
0
ファイル: beltinfo.php プロジェクト: ratiw/petro-test
 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;
 }
コード例 #3
0
ファイル: docmk011.php プロジェクト: ratiw/petro-test
 /**
  * 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];
 }
コード例 #4
0
ファイル: _form_belt_spec.php プロジェクト: ratiw/petro-test
					<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');
?>
&nbsp;</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-->
コード例 #5
0
ファイル: form.php プロジェクト: ratiw/petro
 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);
 }
コード例 #6
0
ファイル: _form.php プロジェクト: ratiw/petro
<?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();
コード例 #7
0
ファイル: _form.php プロジェクト: ratiw/petro-test
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-->
コード例 #8
0
ファイル: docmk2.php プロジェクト: ratiw/petro-test
 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);
     }));
 }
コード例 #9
0
ファイル: clients.php プロジェクト: ratiw/petro-test
 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')))));
 }