예제 #1
0
function updateCalDem($idBl)
{
    global $dbW;
    $sql = "select id_bl_conte from BL_CONTE where id_bl='{$idBl}'";
    $dbW->query($sql);
    while ($dbW->next_record()) {
        $arrIdBlConte[] = $dbW->f(id_bl_conte);
    }
    // buscar calculo para estos regstros.
    for ($i = 0; $i < count($arrIdBlConte); $i++) {
        $idBlConte = $arrIdBlConte[$i];
        if (existCalculo($idBlConte)) {
            $idBl = getValueTable("id_bl", "BL_CONTE", "id_bl_conte", $idBlConte);
            $idConte = getValueTable("id_contenedor", "BL_CONTE", "id_bl_conte", $idBlConte);
            $idCalculo = getValueTable("id_calculo", "D_CALCULO", "id_bl_conte", $idBlConte);
            $fechaVacio = getValueTable("fecha_vacio", "D_CALCULO", "id_calculo", $idCalculo);
            $tipoCalculo = getValueTable("st_tipo_calculo", "D_CALCULO", "id_calculo", $idCalculo);
            // --- RUTINA TOMADA DE "demCalculo3.php"
            // conocer si ya han apliacado dias libres,
            // entoces tomar los dias libres que aplicaron y pasarlos
            // a la funcion para el calculo de demoras.
            $usrAplicoDiasLib = getValueTable("diaLib_usr", "D_CALCULO", "id_calculo", $idCalculo);
            if ($usrAplicoDiasLib > 0) {
                // si el usuario aplico dias libres a su libre albeldrio debe tomarse
                // en cuenta lo que el usuario aplico.
                $libDias = getValueTable("libre_dias", "D_CALCULO", "id_calculo", $idCalculo);
                calcularDemora($idCalculo, $fechaVacio, $tipoCalculo, $libDias);
            } else {
                calcularDemora($idCalculo, $fechaVacio, $tipoCalculo);
            }
            // ------------------------------------------------
            $pagosRealizados = getMontoPagado($idBl, $idConte);
            $pagosRealizadosTl = getMontoPagadoTl($idBl, $idConte);
            calcularPendientes($idCalculo, $pagosRealizados, $pagosRealizadosTl);
            // --- FIN RUTINA demCalculo3.php
        }
    }
}
예제 #2
0
function reporteCsv($arrIdCli, $fecha1, $fecha2, $fv)
{
    global $db, $db2;
    //$usuario=getValueTable("Nombre","USUARIO","Id_usuario",$mscIdUsuario);
    //$pais = getValueTable("pais","INFO","id_info",1);
    //$cliente=getValueTable("cliente","D_CLIENTE","id_cliente",$idCliente);
    foreach ($arrIdCli as $idCliente) {
        // --------------------------------------------------------
        // ACTUALZA COBRANZA
        // --------------------------------------------------------
        $sql = "select c.id_calculo as ID_CALCULO, ";
        $sql .= "c.st_tipo_calculo as TIPO_CAL,";
        $sql .= "c.diaLib_usr as DL_APL_USR, ";
        $sql .= "c.libre_dias as DL,";
        $sql .= "c.fecha_vacio as FV,";
        $sql .= "c.id_bl_conte as ID_BL_CONTE ";
        $sql .= "from D_CALCULO c, BL_CONTE bc, EXPO e, BARCO b, D_CLIENTE cc ";
        $sql .= "where ";
        $sql .= "c.id_bl_conte=bc.id_bl_conte and ";
        $sql .= "c.id_cliente='{$idCliente}' and ";
        $sql .= "bc.Id_bl=e.Id_expo and ";
        $sql .= "e.Id_barco=b.Id_barco and ";
        $sql .= "c.id_cliente=cc.id_cliente and ";
        $sql .= "c.dias_demora >= 15 and ";
        $sql .= "c.libre_f1 BETWEEN '{$fecha1}' and '{$fecha2}' ";
        // Morosos
        // $sql.="and c.pago_pendiente_iva > 0 ";
        //$sql.="order by c.id_cliente ";
        $db->query($sql);
        while ($db->next_record()) {
            $idCalculo = $db->f(ID_CALCULO);
            $tipoCal = $db->f(TIPO_CAL);
            //echo "tipo(1): $tipoCal / $idCalculo  / $idCliente<br>";
            if ($tipoCal == "P") {
                $usrAplicoDiasLib = $db->f(DL_APL_USR);
                if ($usrAplicoDiasLib > 0) {
                    $libDias = $db->f(DL);
                    if (!empty($tipoCal)) {
                        $hoy = date("Y-m-d");
                        $fvDb = $db->f(FV);
                        if ($fvDb != $hoy) {
                            calcularDemora($idCalculo, $fv, $tipoCal, $libDias);
                        }
                    }
                } else {
                    $fvDb = $db->f(FV);
                    if ($fvDb != $fv) {
                        calcularDemora($idCalculo, $fv, $tipoCal);
                    }
                }
            }
            // Actualizar pagos realizados y pendientes
            // ----------------------------------------
            $idBlConte = $db->f(ID_BL_CONTE);
            $idBl = getValueTable("id_bl", "BL_CONTE", "id_bl_conte", $idBlConte);
            $idConte = getValueTable("id_contenedor", "BL_CONTE", "id_bl_conte", $idBlConte);
            $pagosRealizados = getMontoPagado($idBl, $idConte);
            $pagosRealizadosTl = getMontoPagadoTl($idBl, $idConte);
            // -------------------------------------------------------
            // IMPORTANTE: Esta funcion puede quitar mucho tiempo de proceso.
            // Pero es importante, ya que trae los pagos realizados por parte del cliente.
            // Asi que no se debe evitar.
            calcularPendientes($idCalculo, $pagosRealizados, $pagosRealizadosTl);
            // -------------------------------------------------------
            $bl = getValueTable("Bl", "EXPO", "Id_expo", $idBl);
            $conte = getValueTable("Numero", "CONTENEDOR", "id_contenedor", $idConte);
        }
    }
    foreach ($arrIdCli as $idCliente) {
        $idEje = getValueTable("id_eje", "D_CLIENTE", "id_cliente", $idCliente);
        switch ($idEje) {
            case "80":
                // Catalina Alonso
                $arrCliCata[] = $idCliente;
                break;
            case "81":
                // Raymundo Perez
                $arrCliRay[] = $idCliente;
                break;
            case "155":
                // Miguel Ramirez
                $arrCliMike[] = $idCliente;
                break;
            case "171":
                // Evaristo Morales
                $arrCliEva[] = $idCliente;
                break;
            case "194":
                // Tona
                $arrCliTona[] = $idCliente;
                break;
            default:
                break;
        }
    }
    require_once '../include/pclzip.lib.php';
    // -----------------------
    // Reportes por Ejecutivos
    // -----------------------
    if (is_array($arrCliCata)) {
        $cliCata = implode(",", $arrCliCata);
        reporteCsvP2($cliCata, 80, $fecha1, $fecha2, $fv);
        // ZIP
        $archive = new PclZip('../files/demPosAba_80.zip');
        $v_list = $archive->add('../files/demPosAba_80.csv', PCLZIP_OPT_ADD_PATH, 'install', PCLZIP_OPT_REMOVE_PATH, 'dev');
        if ($v_list == 0) {
            die("Error : " . $archive->errorInfo(true));
        }
        // EMAIL
        sendReportEmail(80);
        // ELIMINA - BASURA
        unlink("../files/demPosAba_80.zip");
        unlink("../files/demPosAba_80.csv");
    }
    if (is_array($arrCliRay)) {
        $cliRay = implode(",", $arrCliRay);
        reporteCsvP2($cliRay, 81, $fecha1, $fecha2, $fv);
        // ZIP
        $archive = new PclZip('../files/demPosAba_81.zip');
        $v_list = $archive->add('../files/demPosAba_81.csv', PCLZIP_OPT_ADD_PATH, 'install', PCLZIP_OPT_REMOVE_PATH, 'dev');
        if ($v_list == 0) {
            die("Error : " . $archive->errorInfo(true));
        }
        // EMAIL
        sendReportEmail(81);
        // ELIMINA - BASURA
        unlink("../files/demPosAba_81.zip");
        unlink("../files/demPosAba_81.csv");
    }
    if (is_array($arrCliMike)) {
        $cliMike = implode(",", $arrCliMike);
        reporteCsvP2($cliMike, 155, $fecha1, $fecha2, $fv);
        // ZIP
        $archive = new PclZip('../files/demPosAba_155.zip');
        $v_list = $archive->add('../files/demPosAba_155.csv', PCLZIP_OPT_ADD_PATH, 'install', PCLZIP_OPT_REMOVE_PATH, 'dev');
        if ($v_list == 0) {
            die("Error : " . $archive->errorInfo(true));
        }
        // EMAIL
        sendReportEmail(155);
        // ELIMINA - BASURA
        unlink("../files/demPosAba_155.zip");
        unlink("../files/demPosAba_155.csv");
    }
    if (is_array($arrCliEva)) {
        $cliEva = implode(",", $arrCliEva);
        reporteCsvP2($cliEva, 171, $fecha1, $fecha2, $fv);
        // ZIP
        $archive = new PclZip('../files/demPosAba_171.zip');
        $v_list = $archive->add('../files/demPosAba_171.csv', PCLZIP_OPT_ADD_PATH, 'install', PCLZIP_OPT_REMOVE_PATH, 'dev');
        if ($v_list == 0) {
            die("Error : " . $archive->errorInfo(true));
        }
        // EMAIL
        sendReportEmail(171);
        // ELIMINA - BASURA
        unlink("../files/demPosAba_171.zip");
        unlink("../files/demPosAba_171.csv");
    }
    if (is_array($arrCliTona)) {
        $cliTona = implode(",", $arrCliTona);
        reporteCsvP2($cliTona, 194, $fecha1, $fecha2, $fv);
        // ZIP
        $archive = new PclZip('../files/demPosAba_194.zip');
        $v_list = $archive->add('../files/demPosAba_194.csv', PCLZIP_OPT_ADD_PATH, 'install', PCLZIP_OPT_REMOVE_PATH, 'dev');
        if ($v_list == 0) {
            die("Error : " . $archive->errorInfo(true));
        }
        // EMAIL
        sendReportEmail(194);
        // ELIMINA - BASURA
        unlink("../files/demPosAba_194.zip");
        unlink("../files/demPosAba_155.csv");
    }
}