Browse Source

契約價審

main
Cheng 1 year ago
parent
commit
6f8663cc17
  1. 72
      static/flow/cont/con01.json
  2. 7
      wms/cont/apply_form.php
  3. 2
      wms/crm/crmm02-index.php
  4. 2
      wms/crm/crmm06-edit.php
  5. 60
      wms/mkt/pricereview-check.php

72
static/flow/cont/con01.json

@ -1 +1,71 @@
{"flowName":"保养合约价格审核","systemId":"con","flowId":"con01","version":"","selectedNode":"start_node_1684033305000","saveUrl":"https://www.masada.com.tw/fds/index.php/DesignFlow/acceptJsonToSave/","publishUrl":"","drawID":"draw","flowList":{"start_node_1684033305000":{"nodeName":"申请","nodeId":"start_node_1684033305000","creator":"P0044","desc":"申请单位签核","nodeType":"start_node","targetId":["end_node_1684033370000"],"sourceId":[],"targetAnchor":[],"connector":[],"blockTop":"218.8625030517578px","blockLeft":"718.6625366210938px","endPoints":["RightMiddle"],"flowCode":"A","assignClass":"X","assignClassMethod":"function test($flow_context, $form)\n{\n\n $discount = empty($form['discount']) ? '' : $form['discount'];\n\n if ($discount >= '90') return 'C';\n if ($discount >= 80 and $discount < 90) return 'C';\n if ($discount >= 60 and $discount < 80) return 'D';\n if ($discount < 60) return 'F';\n return 'C';\n}","assigner":"","htmlDiv":"<div class=\"node drag_node ui-draggable\" id=\"start_node\">\n <img src=\"images/start_node.png\" alt=\"\">\n <p>开始</p>\n </div>","allowAssign":"true","allowPassTo":"true","backOption":"B1"},"end_node_1684033370000":{"nodeName":"结案节点","nodeId":"end_node_1684033370000","creator":" ","desc":"结案节点","nodeType":"end_node","targetId":[],"sourceId":["start_node_1684033305000"],"targetAnchor":[],"connector":[],"blockTop":"409.26251220703125px","blockLeft":"903.6625366210938px","endPoints":["TopCenter"],"flowCode":"Z","assignClass":"A","assigner":"F4-结案:|","htmlDiv":"<div class=\"node drag_node ui-draggable\" id=\"end_node\">\n <img src=\"images/end_node.png\" alt=\"\">\n <p>结案</p>\n </div>"}},"flowConnector":[{"ConnectionId":"con_5","PageSourceId":"start_node_1684033305000","PageTargetId":"end_node_1684033370000","SourceText":"","TargetText":"","SourceAnchor":"RightMiddle","TargetAnchor":"TopCenter"}]} {
"flowName": "保养合约价格审核",
"systemId": "con",
"flowId": "con01",
"version": "",
"selectedNode": "start_node_1684033305000",
"saveUrl": "https://www.masada.com.tw/fds/index.php/DesignFlow/acceptJsonToSave/",
"publishUrl": "",
"drawID": "draw",
"flowList": {
"start_node_1684033305000": {
"nodeName": "申请",
"nodeId": "start_node_1684033305000",
"creator": "P0044",
"desc": "申请单位签核",
"nodeType": "start_node",
"targetId": [
"end_node_1684033370000"
],
"sourceId": [],
"targetAnchor": [],
"connector": [],
"blockTop": "218.8625030517578px",
"blockLeft": "718.6625366210938px",
"endPoints": [
"RightMiddle"
],
"flowCode": "A",
"assignClass": "X",
"assignClassMethod": "function test($flow_context, $form)\n{\n\n $discount = empty($form['discount']) ? '' : $form['discount'];\n\n if ($discount >= '90') return 'C';\n if ($discount >= 80 and $discount < 90) return 'C';\n if ($discount >= 60 and $discount < 80) return 'D';\n if ($discount < 60) return 'F';\n return 'C';\n}",
"assigner": "",
"htmlDiv": "<div class=\"node drag_node ui-draggable\" id=\"start_node\">\n <img src=\"images/start_node.png\" alt=\"\">\n <p>开始</p>\n </div>",
"allowAssign": "true",
"allowPassTo": "true",
"backOption": "B1"
},
"end_node_1684033370000": {
"nodeName": "结案节点",
"nodeId": "end_node_1684033370000",
"creator": " ",
"desc": "结案节点",
"nodeType": "end_node",
"targetId": [],
"sourceId": [
"start_node_1684033305000"
],
"targetAnchor": [],
"connector": [],
"blockTop": "409.26251220703125px",
"blockLeft": "903.6625366210938px",
"endPoints": [
"TopCenter"
],
"flowCode": "Z",
"assignClass": "A",
"assigner": "F4-结案:|",
"htmlDiv": "<div class=\"node drag_node ui-draggable\" id=\"end_node\">\n <img src=\"images/end_node.png\" alt=\"\">\n <p>结案</p>\n </div>"
}
},
"flowConnector": [
{
"ConnectionId": "con_5",
"PageSourceId": "start_node_1684033305000",
"PageTargetId": "end_node_1684033370000",
"SourceText": "",
"TargetText": "",
"SourceAnchor": "RightMiddle",
"TargetAnchor": "TopCenter"
}
]
}

7
wms/cont/apply_form.php

@ -68,9 +68,7 @@ $wf->setFormData(['discount' => 100]);
$flowName = $wf->getFlowName(); $flowName = $wf->getFlowName();
$assigner = $wf->getAssignerList(); $assigner = $wf->getAssignerList();
$assign_status = $wf->getAssignStatus($assigner); $assign_status = $wf->getAssignStatus($assigner);
// echo '<pre>';
// print_r($assign_status);
// echo '</pre>';
$if_show_assign = true; $if_show_assign = true;
//加載流程圖 //加載流程圖
//$fc = WorkFLowItems::get_records($flow->getSystemID(), $flow->getFlowID()); //$fc = WorkFLowItems::get_records($flow->getSystemID(), $flow->getFlowID());
@ -254,6 +252,9 @@ if ($result['department_id'] == '511') {
} else if ($result['department_id'] == '514') { } else if ($result['department_id'] == '514') {
$managerid = 'M0033'; $managerid = 'M0033';
$managername = '吳育宗'; $managername = '吳育宗';
} else if ($user_id == 'TEST01') {
$managerid = 'TEST04';
$managername = '區經理';
} }
if ($result['department_id'] == 'M0137' || $result['department_id'] == 'M0086' || $result['department_id'] == 'M0033') { if ($result['department_id'] == 'M0137' || $result['department_id'] == 'M0086' || $result['department_id'] == 'M0033') {

2
wms/crm/crmm02-index.php

@ -170,7 +170,7 @@ if ($data) :
<span class="glyphicon glyphicon-pencil"></span> <span class="glyphicon glyphicon-pencil"></span>
</a> </a>
<?php if ($user_name === $row['salesman'] || $user_id = 'M0225') : ?> <?php if ($user_name === $row['salesman'] || $user_id = 'M0225') : ?>
<a href="https://bpm.masada.com.tw/km/review/km_review_main/kmReviewMain.do?method=add&fdTemplateId=18cf68c8bc2a8ec3c80950e4e2389f0a&s_css=default&vol_no=<?= $row['vol_no'] ?>" class="btn btn-info btn-sm"> <a href="../cont/apply_form.php?<?= $token_link ?>&vol_no=<?php echo $row['vol_no']; ?>" class="btn btn-info btn-sm">
轉價審 轉價審
</a> </a>
<?php endif ?> <?php endif ?>

2
wms/crm/crmm06-edit.php

@ -19,7 +19,7 @@ $customer_source_opt = DB::result($sql);
$sql = "select code_name value ,content label from code where field_name='elevator_kind'"; $sql = "select code_name value ,content label from code where field_name='elevator_kind'";
$elevator_kind_opt = DB::result($sql); $elevator_kind_opt = DB::result($sql);
#4.營業員 #4.營業員
$sql = "select employee_no value ,name label from employee where depart_no in ('511','512','513','514','515')"; $sql = "select employee_no value ,name label from employee where depart_no in ('511','512','513','514','515','314')";
$salesman_opt = DB::result($sql); $salesman_opt = DB::result($sql);
#5.有望客戶狀態 #5.有望客戶狀態
$sql = "select code_name value ,content label from code where field_name='hope_customer_status'"; $sql = "select code_name value ,content label from code where field_name='hope_customer_status'";

60
wms/mkt/pricereview-check.php

@ -302,7 +302,6 @@ foreach ($res as $data) {
} }
} }
} }
} }
// getMI($id); // getMI($id);
?> ?>
@ -317,28 +316,40 @@ foreach ($res as $data) {
return num; return num;
} }
let total_mi = 0; let total_mi = 0;
function getMI(id) { function getMI(id) {
var formdata = new FormData(); var formdata = new FormData();
formdata.append('pa', id); formdata.append('pa', id);
// formdata.append('user_id', <?= $user_id ?>);
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
data = JSON.parse(this.responseText); data = JSON.parse(this.responseText);
console.log('123');
//console.log(data);return false; //console.log(data);return false;
if (data.st == 'err') { if (data.st == 'err') {
console.log('123');
//alert(data.err); //alert(data.err);
return false; return false;
} }
// console.log(data.content);
Object.keys(data.content).forEach(function(k) { Object.keys(data.content).forEach(function(k) {
console.log('k=>', k); console.log('k=>', k);
// console.log(data.content);
//console.log(data.content[k][0]); //console.log(data.content[k][0]);
// 有值表示先前已寫入MI // 有值表示先前已寫入MI
if ($("#tb1").find("input[name=mi_fix]").eq(k).val() == "") { if ($("#tb1").find("input[name=mi_fix]").eq(k).val() == "") {
// console.log($("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(data.content[k][0])));
// $("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(data.content[k][0]));
let a = data.content[k][0] + data.content[k][19][1]; let a = data.content[k][0] + data.content[k][19][1];
$("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a)); $("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a));
} }
$("#tb1").find("input[name=mi_fix]").eq(k).keyup(); console.log('123');
let a = data.content[k][0] + data.content[k][19][1];
$("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a));
var mihtml = ""; var mihtml = "";
total_mi = 0; total_mi = 0;
mihtml += "<h5>電梯設備</h5>"; mihtml += "<h5>電梯設備</h5>";
@ -357,27 +368,26 @@ foreach ($res as $data) {
console.log(data.content[k][12]); console.log(data.content[k][12]);
Object.keys(data.content[k][14]).forEach(function(m) { Object.keys(data.content[k][14]).forEach(function(m) {
if (data.content[k][14][m][0] != '') { if (data.content[k][14][m][0] != '') {
mihtml += "<li>" + data.content[k][14][m][0]+ ":" + commafy(data.content[k][14][m][1]) + "</li>"; mihtml += "<li>" + data.content[k][14][m][0] + ":" + commafy(data.content[k][14][m][1]) + "</li>";
} }
}); });
Object.keys(data.content[k][16]).forEach(function(m) { Object.keys(data.content[k][16]).forEach(function(m) {
if (data.content[k][16][m][0] != '') { if (data.content[k][16][m][0] != '') {
mihtml += "<li>" + data.content[k][16][m][0]+ ":" + commafy(data.content[k][16][m][1]) + "</li>"; mihtml += "<li>" + data.content[k][16][m][0] + ":" + commafy(data.content[k][16][m][1]) + "</li>";
} }
}); });
Object.keys(data.content[k][18]).forEach(function(m) { Object.keys(data.content[k][18]).forEach(function(m) {
mihtml += "<li>" + data.content[k][18][m][0]+ ":" + commafy(data.content[k][18][m][1]) + "</li>"; mihtml += "<li>" + data.content[k][18][m][0] + ":" + commafy(data.content[k][18][m][1]) + "</li>";
}); });
mihtml += "<li>" + data.content[k][19][0] + ":" + commafy(data.content[k][19][1]) + "</li>"; mihtml += "<li>" + data.content[k][19][0] + ":" + commafy(data.content[k][19][1]) + "</li>";
mihtml += "以上合計:" + commafy(data.content[k][13]) + "<br>"; mihtml += "以上合計:" + commafy(data.content[k][13]) +
total_mi = total_mi + data.content[k][13]; "<br>";
console.log(data.content[k][13]);
$("#tb1").find("tr[name=facil_templ2]").eq(k).find('td').eq(1).html(mihtml); $("#tb1").find("tr[name=facil_templ2]").eq(k).find('td').eq(1).html(mihtml);
//$("#tb1").find("input[name=mi_fix]").eq(k).closest('td').append(mihtml); //$("#tb1").find("input[name=mi_fix]").eq(k).closest('td').append(mihtml);
document.getElementsByClassName('total_mi_fix')[k].value =commafy(total_mi) document.getElementsByClassName('total_mi_fix')[k].value = commafy(total_mi)
// document.getElementsByClassName('item_price_ct')[k].value =commafy(total_mi) // document.getElementsByClassName('item_price_ct')[k].value =commafy(total_mi)
document.getElementsByClassName('gross_profit')[k].value =commafy(Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) - total_mi) document.getElementsByClassName('gross_profit')[k].value = commafy(Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) - total_mi)
document.getElementsByClassName('gross_profit_rate')[k].value =Math.round((Number(document.getElementsByClassName('gross_profit')[k].value.replace(/[,]+/g, ""))/Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, ""))*100)*10)/10 document.getElementsByClassName('gross_profit_rate')[k].value = Math.round((Number(document.getElementsByClassName('gross_profit')[k].value.replace(/[,]+/g, "")) / Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) * 100) * 10) / 10
}); });
} }
@ -426,14 +436,11 @@ foreach ($res as $data) {
}); });
$('#tb1').on('keyup', 'input[name=mi_fix]', function() { $('#tb1').on('keyup', 'input[name=mi_fix]', function() {
// console.log($(this).val);
$(this).val($(this).val().replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $(this).val($(this).val().replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ","));
// var mf = $(this).val().replace(/[,]+/g, ""); // var mf = $(this).val().replace(/[,]+/g, "");
var mf = $(this).closest('td').parent().find('input[name=mi_fix]').val().replace(/[,]+/g, ""); var mf = $(this).closest('td').parent().find('input[name=mi_fix]').val().replace(/[,]+/g, "");
var ct = $(this).closest('td').parent().find('input[name=item_price_ct]').val().replace(/[,]+/g, ""); var ct = $(this).closest('td').parent().find('input[name=item_price_ct]').val().replace(/[,]+/g, "");
console.log(mf);
console.log(ct);
console.log(ct - mf);
$(this).closest('td').parent().find('input[name=gross_profit]').val(commafy(ct - mf)); $(this).closest('td').parent().find('input[name=gross_profit]').val(commafy(ct - mf));
if (ct == 0) $(this).closest('td').parent().find('input[name=gross_profit_rate]').val(0.0); if (ct == 0) $(this).closest('td').parent().find('input[name=gross_profit_rate]').val(0.0);
else $(this).closest('td').parent().find('input[name=gross_profit_rate]').val((((ct - mf) / ct) * 100).toFixed(1)); else $(this).closest('td').parent().find('input[name=gross_profit_rate]').val((((ct - mf) / ct) * 100).toFixed(1));
@ -490,7 +497,6 @@ foreach ($res as $data) {
}); });
}); });
</script> </script>
<style> <style>
.container { .container {
@ -557,11 +563,11 @@ foreach ($res as $data) {
<th>數量</th> <th>數量</th>
<th>複價</th> <th>複價</th>
<?php if ($viewmi) { ?> <?php if ($viewmi) { ?>
<th>業務部MI(台)</th> <th>業務部MI</th>
<th>售價(台)</th> <th>售價</th>
<!--<th>價審%</th> <!--<th>價審%</th>
<th>配賦(含稅)</th>--> <th>配賦(含稅)</th>-->
<th>利潤(台)</th> <th>利潤</th>
<th>利潤率(%)</th> <th>利潤率(%)</th>
<?php } ?> <?php } ?>
</tr> </tr>
@ -573,16 +579,16 @@ foreach ($res as $data) {
foreach ($item_arr as $item_no => $val) { foreach ($item_arr as $item_no => $val) {
$item_amt_A_all += $val["item_price_bp"]; $item_amt_A_all += $val["item_price_bp"];
if ($viewmi) { if ($viewmi) {
// for ($i = 0; $i < $val["item_qty"]; $i++) { for ($i = 0; $i < $val["item_qty"]; $i++) {
?> ?>
<tr name="facil_templ"> <tr name="facil_templ">
<td><?php echo $idx; ?><input type="hidden" name="item_no" value="<?php echo $item_no; ?>"><input type="hidden" name="sub_item_id" value="<?php if (isset($val["sub_item_id"])) echo implode("@", $val["sub_item_id"]); ?>"></td> <td><?php echo $idx; ?><input type="hidden" name="item_no" value="<?php echo $item_no; ?>"><input type="hidden" name="sub_item_id" value="<?php if (isset($val["sub_item_id"])) echo implode("@", $val["sub_item_id"]); ?>"></td>
<td nowrap><a href="" data-toggle="modal"><?= $val["item_spec"]; ?> [規調]</a></td> <td nowrap><a href="" data-toggle="modal"><?= $val["item_spec"]; ?> [規調]</a></td>
<td><input type="text" name="item_unit_price" class="form-control dollar-right" size="8" value="<?= number_format($val["item_unit_price"]); ?>"></td> <td><input type="text" name="item_unit_price" class="form-control dollar-right" size="8" value="<?= number_format($val["item_unit_price"]); ?>"></td>
<td><input type="text" name="item_qty" class="form-control" size="2" value="<?php echo $val["item_qty"]; ?>"></td> <td><input type="text" name="item_qty" class="form-control" size="2" value="1"></td>
<td><input type="text" name="item_price_bp" class="form-control dollar-right" size="9" value="<?= number_format($val["item_unit_price"] * $val["item_qty"]); ?>"></td> <td><input type="text" name="item_price_bp" class="form-control dollar-right" size="9" value="<?= number_format($val["item_unit_price"]); ?>"></td>
<td><input type="text" name="mi_fix" class="form-control dollar-right total_mi_fix" size="9" value="<?php echo ($val["mi_fix"]) ? number_format($val["mi_fix"] +$data["special_fee"] ) : ""; ?>" disabled></td> <td><input type="text" name="mi_fix" class="form-control dollar-right" size="9" value="<?php echo ($val["mi_fix"]) ? number_format($val["mi_fix"]) : ""; ?>" disabled></td>
<td><input type="text" name="item_price_ct" class="form-control dollar-right item_price_ct" size="9" value="<?= number_format($val["item_price_ct"] / $val["item_qty"]); ?>"></td> <td><input type="text" name="item_price_ct" class="form-control dollar-right" size="9" value="<?= number_format($val["item_price_ct"] / $val["item_qty"]); ?>"></td>
<!--<td><input type="text" name="item_price" class="form-control dollar-right" size="8" value="<?php echo ($val["item_price"]) ? number_format($val["item_price"]) : ""; ?>"></td> <!--<td><input type="text" name="item_price" class="form-control dollar-right" size="8" value="<?php echo ($val["item_price"]) ? number_format($val["item_price"]) : ""; ?>"></td>
<td><input type="text" name="pv_rate" class="form-control" size="1" value="<?= $val["pv_rate"]; ?>"></td> <td><input type="text" name="pv_rate" class="form-control" size="1" value="<?= $val["pv_rate"]; ?>"></td>
<td><input type="text" name="allocate" class="form-control" size="6" value="<?= $val["allocate"]; ?>"></td>--> <td><input type="text" name="allocate" class="form-control" size="6" value="<?= $val["allocate"]; ?>"></td>-->
@ -595,7 +601,7 @@ foreach ($res as $data) {
<td colspan="4"></td> <td colspan="4"></td>
</tr> </tr>
<?php <?php
//} #item_qty end. } #item_qty end.
} else { } else {
?> ?>
<tr name="facil_templ"> <tr name="facil_templ">
@ -980,7 +986,7 @@ foreach ($res as $data) {
</div> </div>
<div> <div>
<label for="price_rate">價率%(B/A)</label> <label for="price_rate">價率%(B/A)</label>
<input type="text" name="price_rate" id="price_rate" value="<?php echo number_format((int)$data["price_total"]/(int)$data["price_lowest"] * 100, 1); ?>"> <input type="text" name="price_rate" id="price_rate" value="<?php echo number_format((int)$data["price_total"] / (int)$data["price_lowest"] * 100, 1); ?>">
</div> </div>
<div> <div>
<label for="price_broken">破價(台)</label> <label for="price_broken">破價(台)</label>

Loading…
Cancel
Save