SRV
SRV

Reputation: 1

How to return the number of values using a PHP function

I'm using a PHP function for my code, and I want to return the values while calling the function. For example, I want to return the value for NR SR HVDC ATT like this:

if (isset($_POST['action']) AND ! empty($_POST['action']) AND ( $_POST['action'] == 'allUnitMonthWiseDOne')) {

    $fromdate = date("Y-m-d", strtotime($_POST['fromdate']));
    $todate = date("Y-m-d", strtotime($_POST['todate']));
    $year = date('Y', strtotime($fromdate));
    $y = date("Y-m-d", strtotime($fromdate));
    $fromMon = date('m', strtotime($fromdate));
    $toMon = date('m', strtotime($todate));
    $toChoice = $_POST['toChoice'];
    ?>         

    <table border="1" style="border-collapse: collapse; font-family: verdana,arial,sans-serif;font-size:10px;" width="100%" >
        <tr style="font-weight: 600;">
            <td><?php
    $divQuery = mysqli_query($dbcon, "SELECT * FROM vefm_comp_division WHERE id=" . $_POST['division']);
    $divRow = mysqli_fetch_array($divQuery);
    echo $divRow['division_name'] . ' - ' . date("F Y", strtotime($_POST['fromdate'])) . ' to ' . date("F Y", strtotime($_POST['todate']));
    ?>
            </td>
            <td colspan="13" style="text-align: center;">PL Estimate for the FY <?= $year ?>-<?= $year + 1; ?></td>
        </tr>

        <tr style="font-weight: 600;">
            <?php if ($_POST['division'] == 1) { ?>
                <td><?= $year ?>-<?= $year + 1; ?> PL Estimate</td>
                <td>NR</td>
                <td>SR</td>
                <td>HVDC</td>
                <td>ATT</td>
                <td>WINS</td>
                <td>ONG</td>
                <td>ERECTION</td>
                <td>ER</td>
                <td>TSD</td>
                <td>CR</td>
                <td>WR</td>
                <td>GHY</td>
                <td>YTD <?= substr($y, 2, 3) . '-' . substr(($y + 1), 2, 3); ?></td>
            <?php } ?>
        </tr>

        <tr>
            <td>Monthly Budget</td>
            <?php
            $monthlyResult = 0;
            if ($_POST['division'] == 1) {
                $plQuery = mysqli_query($dbcon, "SELECT id FROM vefm_unit_reference where division_id=1");
            }
            while ($plResult = mysqli_fetch_array($plQuery)) {
                echo '<td>';
                echo number_format($monthlyAmt[$plResult['id']] = monthlyBudget($year, $y, $fromdate, $todate, $plResult['id'], $toChoice, $loggeduser, $dbcon), 2, '.', ',');
                echo '</td>';
            }
            echo '<td>';
            foreach ($monthlyAmt as &$value) {
                $monthlyResult += $value;
            }
            echo number_format($monthlyResult, 2, '.', ',');
            echo '</td>';
            ?>  
        </tr>
    </table>

    <?php
}

function monthlyBudget($year, $y, $fromdate, $todate, $unit, $toChoice, $loggeduser, $dbcon) {

    $fromyear = date('Y', strtotime($fromdate));
    $toyear = date('Y', strtotime($todate));
    $fromMon = date('m', strtotime($fromdate));
    $toMon = date('m', strtotime($todate));
    $nr = 0;
    $sr = 0;
    $hvdc = 0;
    $att = 0;
    $wins = 0;
    $ong = 0;
    $erec = 0;
    $er = 0;
    $tsd = 0;
    $cr = 0;
    $wr = 0;
    $guw = 0;
    $overallTot = 0;

    if ($fromyear == $toyear) {
        for ($p = $fromMon; $p <= $toMon; $p++) {
            if ($p == 1) {
                $mon = 1;
            } elseif ($p == 2) {
                $mon = 2;
            } elseif ($p == 3) {
                $mon = 3;
            } elseif ($p == 4) {
                $mon = 4;
            } elseif ($p == 5) {
                $mon = 5;
            } elseif ($p == 6) {
                $mon = 6;
            } elseif ($p == 7) {
                $mon = 7;
            } elseif ($p == 8) {
                $mon = 8;
            } elseif ($p == 9) {
                $mon = 9;
            } elseif ($p == 10) {
                $mon = 10;
            } elseif ($p == 11) {
                $mon = 11;
            } elseif ($p == 12) {
                $mon = 12;
            }
            $y = $fromyear;

            $fromdate = date('Y-m-01', mktime(0, 0, 0, date($mon), 1, date($y))).'<br>';
            $todate = date('Y-m-t', mktime(0, 0, 0, date($mon) + 1, 0, date($y))).'<br>';

            if ($mon > 3 && $mon < 10) {

                $plQuery = mysqli_query($dbcon, "SELECT ecode_id,unit FROM vefm_dailybudget WHERE division=" . $_POST['division'] . " AND budget_type='monthly' AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND common_status IN('Finance - II Approved','Cash Disbursement') AND approval_amount != 0 GROUP BY ecode_id");

                while ($plResult = mysqli_fetch_array($plQuery)) {
                    $Monquery1 = mysqli_query($dbcon, "SELECT eligible_2018 FROM vefm_engineer_details WHERE ecode='" . $plResult['ecode_id'] . "'");
                    $amt = mysqli_fetch_array($Monquery1);
                    if ($plResult['unit'] == 1) {
                        $nr += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 2) {
                        $sr += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 4) {
                        $hvdc += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 5) {
                        $att += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 6) {
                        $wins += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 8) {
                        $ong += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 14) {
                        $erec += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 16) {
                        $er += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 17) {
                        $tsd += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 18) {
                        $cr += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 19) {
                        $wr += $amt['eligible_2018'];
                    } else if ($plResult['unit'] == 20) {
                        $guw += $amt['eligible_2018'];
                    }
                }
            } else if ($mon > 9 || $mon < 2) {

                $plQuery = mysqli_query($dbcon, "SELECT unit,approval_amount FROM vefm_dailybudget WHERE division='" . $_POST['division'] . "' AND budget_type='monthly' AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND common_status IN('Finance - II Approved','Cash Disbursement')");
                while ($plResult = mysqli_fetch_array($plQuery)) {
                    if ($plResult['unit'] == 1) {
                        $nr += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 2) {
                        $sr += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 4) {
                        $hvdc += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 5) {
                        $att += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 6) {
                        $wins += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 8) {
                        $ong += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 14) {
                        $erec += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 16) {
                        $er += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 17) {
                        $tsd += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 18) {
                        $cr += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 19) {
                        $wr += $plResult['approval_amount'];
                    } else if ($plResult['unit'] == 20) {
                        $guw += $plResult['approval_amount'];
                    }
                }
            } else if ($mon > 1 && $mon < 4) {

                $plQuery = mysqli_query($dbcon, "SELECT DISTINCT(ecode_id),MAX(eligible_allowance)AS monthlyBudgetAmt,unit FROM vefm_dailybudget WHERE division='" . $_POST['division'] . "' AND common_status IN('Finance - II Approved','Cash Disbursement') AND eligible_allowance != 0 AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND budget_type='monthly' GROUP BY ecode_id ORDER BY ecode_id");

                while ($plResult = mysqli_fetch_array($plQuery)) {
                    if ($plResult['unit'] == 1) {
                        $nr += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 2) {
                        $sr += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 4) {
                        $hvdc += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 5) {
                        $att += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 6) {
                        $wins += $amt['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 8) {
                        $ong += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 14) {
                        $erec += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 16) {
                        $er += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 17) {
                        $tsd += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 18) {
                        $cr += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 19) {
                        $wr += $plResult['monthlyBudgetAmt'];
                    } else if ($plResult['unit'] == 20) {
                        $guw += $plResult['monthlyBudgetAmt'];
                    }
                }
            }
        }
        //$overallTot = $nr + $sr + $hvdc + $att + $wins + $ong + $erec + $er + $tsd + $cr + $wr + $guw;
        return $monthlyBudgetAmt = number_format($nr, 2, '.', '');
        //return $monthlyBudgetAmt = number_format($sr, 2, '.', '');
        //return $monthlyBudgetAmt = number_format($hvdc, 2, '.', '');
    } 
}
?>

Upvotes: 0

Views: 51

Answers (1)

Nigel Ren
Nigel Ren

Reputation: 57121

Rather than have separate values like $nr you would be better off having an array - something like $value and then use $value['nr'] for each item. You can then use

return $value;

which will return all of the values as an associative array.

You would need to create the array to start with (create an element for each option and not use the ... I have put in this sample code)...

$value = ['nr' => 0.0, ...];

and then use

$value['nr'] += $plResult['monthlyBudgetAmt'];

Upvotes: 1

Related Questions