Exemplo n.º 1
0
function db_date($date_str, $str_format = 'm/d/Y', $invalid = '-')
{
    /* takes mysql date and/or time in the following format:
    	yyyy-mm-dd hh:mm:ss
    	and formats using the php date function
    	*/
    if ($date_str == '' || $date_str == '0000-00-00' || $date_str == '0000-00-00 00:00:00') {
        return $invalid;
    }
    list($date, $time) = explode(' ', $date_str);
    list($year, $month, $day) = explode('-', $date);
    list($hour, $minute, $second) = explode(':', $time);
    return date($str_format, db_mktime((int) $hour, (int) $minute, (int) $second, (int) $month, (int) $day, (int) $year));
}
function afas_periodo_aquisitivo($periodoi, $periodof)
{
    global $pessoal, $Ipessoal, $cfpess, $afasta;
    $desconta_dias = 0;
    if ($pessoal[0]["r01_tbprev"] == $cfpess[0]["r11_tbprev"]) {
        $desconta_dias = 15;
    }
    $periodo_afastado = 0;
    $condicaoaux = " and r45_regist =" . db_sqlformat($pessoal[0]["r01_regist"]) . " order by r45_regist, r45_dtafas desc ";
    if (db_selectmax("afasta", "select * from afasta " . bb_condicaosubpes("r45_") . $condicaoaux)) {
        for ($Iafasta = 0; $Iafasta < count($afasta); $Iafasta++) {
            if (db_at(db_str($afasta[$Iafasta]["r45_situac"], 1), "5-2-4-7") > 0) {
                continue;
            }
            if (db_at(db_str($afasta[$Iafasta]["r45_situac"], 1), "3-6") > 0) {
                if (!db_empty($afasta[$Iafasta]["r45_dtreto"]) && db_mktime($afasta[$Iafasta]["r45_dtreto"]) < db_mktime($periodoi)) {
                    continue;
                }
                if (db_mktime($afasta[$Iafasta]["r45_dtafas"]) - 15 * 86400 > db_mktime($periodof)) {
                    continue;
                }
                if (!db_empty($afasta[$Iafasta]["r45_dtreto"]) && db_mktime($afasta[$Iafasta]["r45_dtreto"]) > db_mktime($periodoi)) {
                    if (db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias) > db_mktime($periodoi)) {
                        if (db_mktime($afasta[$Iafasta]["r45_dtreto"]) > db_mktime($periodof)) {
                            $periodo_afastado += ceil((db_mktime($periodof) - db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias)) / 86400);
                        } else {
                            $periodo_afastado += ceil((db_mktime($afasta[$Iafasta]["r45_dtreto"]) - db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias)) / 86400);
                        }
                    } else {
                        $periodo_afastado += db_datedif($afasta[$Iafasta]["r45_dtreto"], $periodoi);
                    }
                    continue;
                }
                if (!db_empty($afasta[$Iafasta]["r45_dtreto"]) && db_mktime($afasta[$Iafasta]["r45_dtreto"]) > db_mktime($periodof) && db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias) < db_mktime($periodof)) {
                    if (db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias) > db_mktime($periodoi)) {
                        $periodo_afastado += ceil((db_mktime($periodof) - db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias)) / 86400);
                    } else {
                        $periodo_afastado += db_datedif($periodof, $periodoi);
                    }
                }
                if (db_empty($afasta[$Iafasta]["r45_dtreto"]) && db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias) < db_mktime($periodof)) {
                    if (db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias) < db_mktime($periodoi)) {
                        $periodo_afastado += db_datedif($periodof, $periodoi);
                    } else {
                        $periodo_afastado += ceil((db_mktime($periodof) - db_mktime($afasta[$Iafasta]["r45_dtafas"]) - db_mktime($desconta_dias)) / 86400);
                    }
                }
            }
        }
    }
    return $periodo_afastado;
}