Beispiel #1
0
function ComputeWageOfSHekoofa($partObj)
{
    $payments = LON_payments::Get(" AND RequestID=? order by PayDate", array($partObj->RequestID));
    $payments = $payments->fetchAll();
    //--------------- total pay months -------------
    $firstPay = DateModules::miladi_to_shamsi($payments[0]["PayDate"]);
    $LastPay = DateModules::miladi_to_shamsi($payments[count($payments) - 1]["PayDate"]);
    $paymentPeriod = DateModules::GetDiffInMonth($firstPay, $LastPay);
    //----------------------------------------------
    $totalWage = 0;
    $wages = array();
    foreach ($payments as $row) {
        $wages[] = array();
        $wageindex = count($wages) - 1;
        for ($i = 0; $i < $partObj->InstallmentCount; $i++) {
            $monthplus = $paymentPeriod + $partObj->DelayMonths * 1 + ($i + 1) * $partObj->PayInterval * 1;
            $installmentDate = DateModules::miladi_to_shamsi($payments[0]["PayDate"]);
            $installmentDate = DateModules::AddToJDate($installmentDate, 0, $monthplus);
            $installmentDate = DateModules::shamsi_to_miladi($installmentDate);
            $jdiff = DateModules::GDateMinusGDate($installmentDate, $row["PayDate"]);
            $wage = round($row["PayAmount"] / $partObj->InstallmentCount * $jdiff * $partObj->CustomerWage / 36500);
            $wages[$wageindex][] = $wage;
            $totalWage += $wage;
        }
    }
    return $totalWage;
}
Beispiel #2
0
function ComputeInstallmentsShekoofa($RequestID = "", $returnMode = false)
{
    $RequestID = empty($RequestID) ? $_REQUEST["RequestID"] : $RequestID;
    $partObj = LON_ReqParts::GetValidPartObj($RequestID);
    $payments = LON_payments::Get(" AND RequestID=? order by PayDate", array($RequestID));
    $payments = $payments->fetchAll();
    if (count($payments) == 0) {
        return true;
    }
    //--------------- total pay months -------------
    $firstPay = DateModules::miladi_to_shamsi($payments[0]["PayDate"]);
    $LastPay = DateModules::miladi_to_shamsi($payments[count($payments) - 1]["PayDate"]);
    $paymentPeriod = DateModules::GetDiffInMonth($firstPay, $LastPay);
    //----------------------------------------------
    $totalWage = ComputeWageOfSHekoofa($partObj);
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    for ($i = 0; $i < $partObj->InstallmentCount; $i++) {
        $monthplus = $paymentPeriod + $partObj->DelayMonths * 1 + ($i + 1) * $partObj->PayInterval * 1;
        $installmentDate = DateModules::miladi_to_shamsi($payments[0]["PayDate"]);
        $installmentDate = DateModules::AddToJDate($installmentDate, 0, $monthplus);
        $installmentDate = DateModules::shamsi_to_miladi($installmentDate);
        $obj2 = new LON_installments();
        $obj2->RequestID = $RequestID;
        $obj2->InstallmentDate = $installmentDate;
        $obj2->InstallmentAmount = round($partObj->PartAmount / $partObj->InstallmentCount) + round($totalWage / $partObj->InstallmentCount);
        if (!$obj2->AddInstallment($pdo)) {
            $pdo->rollBack();
            echo Response::createObjectiveResponse(false, "");
            die;
        }
    }
    $pdo->commit();
    if ($returnMode) {
        return true;
    }
    echo Response::createObjectiveResponse(true, "");
    die;
}