Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use App\Model\WorkDescription;
- use App\Model\WorkSelect;
- function calNewPrice($workDescId, $qty, $option = null)
- {
- $selects = WorkSelect::select(
- 'select_id',
- 'wd.work_desc_main_id',
- 'work_selects.work_desc_id',
- 'qty',
- 'area_id'
- )
- ->join('work_descriptions AS wd', 'wd.work_desc_id', '=', 'work_selects.work_desc_id')
- ->where('work_selects.work_desc_id', $workDescId)
- ->get();
- $workDescId = $selects->pluck('work_desc_main_id');
- $workDescriptions = WorkDescription::with('work_cost')
- ->whereIn('work_desc_main_id', $workDescId)->get();
- $want = $qty; //จำนวนที่ต้องการ
- $sum = 0;
- $arrLaborCost = [];
- $arrConditionValue = [];
- $unitPrice = 0;
- foreach ($workDescriptions as $workDescription) {
- $arrLaborCost[] = $workDescription->work_cost->labor_cost; //เก็บค่าแรงใส่ใน array
- $arrConditionValue[] = $workDescription->work_cost->condition_value; //เก็บเงื่อนไขใส่ใน array
- if ($workDescription->work_cost->case == 1) { //กรณีที่ 1 คูณจำนวนเข้าไปตรงๆเลย
- $sum = $workDescription->work_cost->labor_cost * $want;
- $unitPrice = $workDescription->work_cost->labor_cost;
- } elseif ($workDescription->work_cost->case == 2) { //กรณีที่ 2
- if ($workDescription->work_cost->condition == "less_equal_to") {
- if ($want <= $workDescription->work_cost->condition_value) {
- $sum = $workDescription->work_cost->labor_cost . "\n";
- $unitPrice = $workDescription->work_cost->labor_cost;
- }
- } elseif ($workDescription->work_cost->condition == "greater_equal_to") {
- if ($want >= $workDescription->work_cost->condition_value) {
- $sum = $want * $workDescription->work_cost->labor_cost;
- $unitPrice = $workDescription->work_cost->labor_cost;
- }
- }
- } elseif ($workDescription->work_cost->case == 3) { //กรณีที่ 3
- if ($workDescription->work_cost->condition == "less_equal_to") {
- if ($want <= $workDescription->work_cost->condition_value) {
- $sum = $workDescription->work_cost->labor_cost . "\n";
- $unitPrice = $workDescription->work_cost->labor_cost;
- }
- }
- if ($workDescription->work_cost->condition == "greater_equal_to") {
- $difference = ($want - $arrConditionValue[0]); //หาส่วนต่าง
- if ($want >= $workDescription->work_cost->condition_value) {
- $sum = ($difference * $workDescription->work_cost->labor_cost) + $arrLaborCost[0]; //$arrLaborCost[0] ตือราคาแรก
- $unitPrice = $workDescription->work_cost->labor_cost;
- //echo $sum . "\n";
- }
- }
- } //end if main
- } //end foreach
- if($option != '' && $option == 'unitPrice'){
- return $unitPrice;
- }else{
- return $sum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement