vol_no; require_once './FormHelper.php'; require_once '../cont/MICalculator.php'; require_once './wf_common.php'; $flow = new Flow($form_key); // 當前節點簽核開始 $wf = new WorkFlow($flow->system_id, $flow->flow_id, $flow->form_id, $form_key); #獲取簽核意見 $assign_opinions = Assign::get_records($form_key); $flowName = $wf->getFlowName(); //表單數據 #客戶表 #1.電梯品牌選項 $sql = "select code_name value ,content label from code where field_name='elevator_brand'"; $elevator_brand_opt = DB::result($sql); #2.保養方式 $sql = "select code_name value ,content label from code where field_name='maintain_kind'"; $maintain_kind_opt = DB::result($sql); #3.電梯類型 $sql = "select code_name value ,content label from code where field_name='elevator_kind'"; $elevator_kind_opt = DB::result($sql); #4.付款方式 $sql = "select code_name value ,content label from code where field_name='payment_kind'"; $payment_kind_opt = DB::result($sql); #5.契約性質 $sql = "select code_name value ,content label from code where field_name='contract_kind'"; $contract_kind_opt = DB::result($sql); #6.是否贈送M1 $is_m1_bundle_opt = [ ['label' => '是', 'value' => 'Y'], ['label' => '否', 'value' => 'N'] ]; #7.機種 $sql = "select code_name value ,content label from code where field_name='fp_kind'"; $fp_kind_opt = DB::result($sql); $table = 'con_maintance_examine_apply'; #可編輯的列 $editableColumn = [ 'apply_key' => [ 'label' => "評審單號", "value" => "$apply_key", "tag" => 'text', 'attr' => [ 'readonly=true ', 'class' => 'form-control form-control-sm' ] ], 'vol_no' => ['label' => "卷號", "value" => "", "tag" => 'text', 'attr' => ['readonly=true ', 'class' => 'form-control form-control-sm']], 'address' => ['label' => "現場地址", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], 'case_name' => ['label' => "現場名稱", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], 'brand' => ['label' => "電梯品牌", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], 'num' => ['label' => "數量", "value" => "", "tag" => 'number', 'attr' => ['required', 'min=1', 'class' => 'form-control form-control-sm']], 'salesman' => ['label' => "營業員", "value" => "", "tag" => 'text', 'attr' => ['required', 'class' => 'form-control form-control-sm']], 'maintain_kind' => ['label' => "保養方式", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $maintain_kind_opt], 'contract_begin_date' => ['label' => "契約期限開始", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], 'contract_end_date' => ['label' => "契約期限結束", "value" => "", "tag" => 'date', 'attr' => ['required', 'class' => 'date form-control form-control-sm']], 'contract_kind' => ['label' => "契約性質", "value" => "", "tag" => 'select', 'attr' => ['class' => 'form-control form-control-sm'], 'options' => $contract_kind_opt], 'introducer' => ['label' => "介紹人", "value" => "", "tag" => 'text', 'attr' => ['class' => 'form-control form-control-sm']], 'payment_kind' => ['label' => "付款方式", "value" => "", "tag" => 'select', 'attr' => ['required', 'class' => 'form-control form-control-sm'], 'options' => $payment_kind_opt], ]; $where = " and form_key='$form_key'"; $sql = "SELECT " . implode(',', array_keys($editableColumn)) . " ,progress_remark FROM $table where 1=1 $where ORDER BY apply_key"; $data = []; list($data) = DB::result($sql); #電梯詳細資料 $con_maintance_examine_clear_columm = [ 'register_code' => ['label' => "電梯註冊代碼", "value" => "", "tag" => 'text', 'attr' => ['colspan' => 2, 'name' => 'register_code[]', 'class' => 'form-control form-control-sm']], //'elevator_brand' => ['label' => "品牌", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'elevator_brand[]', 'class' => 'form-control form-control-sm'], 'options' => $elevator_brand_opt], 'elevator_kind' => ['label' => "電梯類型", "value" => "", "tag" => 'select', 'attr' => ['name' => 'elevator_kind[]', 'required', 'colspan' => 2, 'class' => 'form-control form-control-sm'], 'options' => $elevator_kind_opt], 'spec' => ['label' => "規格型號", "value" => "", "tag" => 'select', 'attr' => ['colspan' => 2, 'name' => 'spec[]', 'class' => 'form-control form-control-sm'], 'options' => $fp_kind_opt], 'weight' => ['label' => "載重(KG)", "value" => "", "tag" => 'number', 'attr' => ['name' => 'weight[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'speed' => ['label' => "速度(m/min)", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed[]', 'min=0', 'required', 'class' => 'form-control form-control-sm']], //'stop' => ['label' => "停數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'stop[]', 'class' => 'form-control form-control-sm']], 'floors' => ['label' => "層數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'floors[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'persons' => ['label' => "人乘", "value" => "", "tag" => 'number', 'attr' => ['name' => 'persons[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'maintain_times' => ['label' => "保養次數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'maintain_months' => ['label' => "保養月數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'maintain_period' => ['label' => "保養周期", "value" => "", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], // 'elevator_num' => ['label' => "臺數", "value" => "", "tag" => 'number', 'attr' => ['name' => 'brand_num[]', 'class' => 'form-control form-control-sm']], 'useful_years' => ['label' => "竣工檢查年度", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'required', 'name' => 'useful_years[]', 'class' => 'form-control form-control-sm']], 'last_check_date' => ['label' => "上次年檢日期", "value" => "", "tag" => 'date', 'attr' => ['required', 'name' => 'last_check_date[]', 'colspan' => 2, 'type' => 'date', 'class' => 'form-control form-control-sm']], //'speed_governors_check_expense' => ['label' => "限速器校驗費", "value" => "", "tag" => 'number', 'attr' => ['colspan' => 2, 'name' => 'speed_governors_check_expense[]', 'class' => 'form-control form-control-sm']], // 'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], // 'commission_expense' => ['label' => "分成費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'commission_expense[]', 'class' => 'form-control form-control-sm']], // 'management_expense' => ['label' => "管理費(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'management_expense[]', 'class' => 'form-control form-control-sm']], //'annual_survey_expense' => ['label' => "年檢費用(元)", "value" => "", "tag" => 'number', 'attr' => ['required', 'name' => 'annual_survey_expense[]', 'colspan' => 2, 'class' => 'date form-control form-control-sm ']], //'service_expense' => ['label' => "服務費", "value" => "", "tag" => 'text', 'attr' => ['required', 'name' => 'service_expense[]', 'class' => ' form-control form-control-sm ']], 'maintain_times' => ['label' => "保養次數", "tag" => 'number', 'attr' => ['name' => 'maintain_times[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'maintain_months' => ['label' => "保養月數", "tag" => 'number', 'attr' => ['name' => 'maintain_months[]', "value" => "12", 'min=12', 'required', 'class' => 'form-control form-control-sm']], 'maintain_period' => ['label' => "保養周期", "tag" => 'number', 'attr' => ['name' => 'maintain_period[]', "value" => "1", 'min=1', 'required', 'class' => 'form-control form-control-sm']], 'is_m1_bundle' => ['label' => "贈送M1", "value" => "", "tag" => 'select', 'attr' => ['name' => 'is_m1_bundle[]', 'required', 'class' => 'form-control form-control-sm'], 'options' => $is_m1_bundle_opt], 'stand_price' => ['label' => "標準價格(元/月)", "value" => "", "tag" => 'text', 'attr' => ['required', "readonly", 'colspan' => 2, 'name' => 'stand_price[]', 'class' => 'form-control form-control-sm']], 'contract_price' => ['label' => "契約報價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'contract_price[]', 'class' => 'form-control form-control-sm']], 'sold_price' => ['label' => "契約成交價(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], 'sold_price' => ['label' => "契約成交價C(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'sold_price[]', 'class' => 'form-control form-control-sm']], 'mi_cost' => ['label' => "標準成本D(元/月)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost[]', 'class' => 'form-control form-control-sm']], 'discount' => ['label' => "折扣率E(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'mi_cost_rate[]', 'class' => 'form-control form-control-sm']], 'gross_profit' => ['label' => "毛利率F(%)", "value" => "", "tag" => 'number', 'attr' => ['required', 'colspan' => 2, 'name' => 'gross_profit[]', 'class' => 'form-control form-control-sm']], ]; $con_maintance_examine_clear = DB::result("SELECT register_code, f_return_content('elevator_brand',elevator_brand) elevator_brand, f_return_content('maintain_elevator_kind',elevator_kind) elevator_kind, elevator_kind con_elevator_kind, spec, weight, speed, floors, persons, maintain_times, maintain_months, maintain_period, is_m1_bundle, useful_years, last_check_date, speed_governors_check_expense, service_expense, stand_price, contract_price, sold_price, 0 mi_cost , 0 discount, 0 gross_profit FROM con_maintance_examine_clear WHERE 1 = 1 AND apply_key='" . $data['apply_key'] . "' and cmstatus='Y'"); #總臺數 $count = count($con_maintance_examine_clear); $total_sold_price = 0; #總成交價 #總標準價格 $total_stand_price = 0; #總標準成本 foreach ($con_maintance_examine_clear as $val) { $total_sold_price += $val['sold_price']; $total_stand_price += $val['stand_price']; } $total_discount_rate = $total_sold_price == 0 ? 0 : (100 * round($total_sold_price / $total_stand_price, 4)) . "%"; $wf->setFormData(['discount' => substr($total_discount_rate, 0, -1)]); $assigner = $wf->getAssignerList(); $assign_status = $wf->getAssignStatus($assigner); function base_url($url) { return "https://www.masada.com.tw/static/" . $url; } function get_sequnece_no($seq_name = '', $p_yyyymm = '') { if (empty($p_yyyymm) || empty($seq_name)) return null; #當前年月 //echo "select yyyymm from sequence where seq_name='$seq_name' "; list($yyyymm, $prefix) = DB::fields("select yyyymm ,prefix from sequence where seq_name='$seq_name' "); if ($p_yyyymm != $yyyymm) { DB::query("update sequence set yyyymm='$p_yyyymm' , current_val='10000' where seq_name='$seq_name' "); } // echo "SELECT concat( $prefix,,substring(nextval('$seq_name'),2)) seq_no "; list($seq_no) = DB::fields("SELECT concat( '$prefix','$p_yyyymm',substring(nextval('$seq_name'),2)) seq_no "); return $seq_no; } ?>
流程:
' />

保養契約價格審核單

契約信息
"; foreach ($editableColumn as $key => $val) { $j = (($i++) % 4); $fieldVal = empty($data) ? "" : $data[$key]; $_input = $val['tag'] == 'select' ? FormHelper::select("$key", $val['options'], $fieldVal, $val['attr']) : FormHelper::tag("label", $val['attr'], $fieldVal); //""; if ($i != 1 && $j == 0) { echo "
"; } echo "
" . $val['label'] . "
$_input
"; } echo "
"; ?>
洽商進度
電梯詳細資料
empty($val['attr']['colspan']) ? 1 : $val['attr']['colspan']], $val['label']); if ((++$j % 14) == 0) { // if ($j == 12) echo ""; echo ""; } } ?> $val) { $j = 0; $cmecRow = " "; foreach ($con_maintance_examine_clear_columm as $col => $col_def) { $fieldVal = empty($val) ? "" : $val[$col]; if ($col == 'mi_cost') { $param = [ 'elevator_type' => $val['con_elevator_kind'], 'floors' => $val['floors'], 'speed' => $val['speed'], 'persons' => $val['persons'], 'weight' => $val['weight'], 'maintain_times' => $val['maintain_times'], 'maintain_months' => $val['maintain_months'], 'maintain_kind' => $data['maintain_kind'], 'maintain_period' => $val['maintain_period'], 'is_m1_bundle' => $val['is_m1_bundle'], ]; $mic = new MICalculator(); $res = $mic->cal($param); #MI報價 $con_maintance_examine_clear[$key]['mi_cost'] = $fieldVal = ($res['status'] == 'ok' ? $res['price'] : $res['message']); $con_maintance_examine_clear[$key]['gross_profit'] = $val['gross_profit'] = "/"; //$fieldVal==0?0: (round(($val['sold_price'] - $val['mi_cost']) / $fieldVal, 2) * 100) . "%" #扣率 $val['discount'] = (100 * round($val['sold_price'] / $val['stand_price'], 4)) . "%"; } $_input = FormHelper::tag("label", ['colspan' => empty($col_def['attr']['colspan']) ? 1 : $col_def['attr']['colspan']], $fieldVal); $cmecRow .= ""; $cmecRow = (++$j % 14 == 0) ? $cmecRow . "" : $cmecRow; } $tr_class = $tr_class == 'odd' ? "even" : "odd"; echo $cmecRow . ""; } ?>
操作
$_input
簽核意見
簽核狀態
下位簽核者
' . $wf->getNodeDescriptions($as['flow_code']) . '
'; $tmp_code = $as['flow_code']; ?>
">
  " . $as['position_name'] . " "; ?>   申請人 "; ?> 退回"; ?> 會簽"; ?> 簽核於: