Exemple #1
0
 function updateEntSal($idConte)
 {
     // Esta funcion, sirve para marcar el contenedor con (E) Entrada o (S) Salida.
     // Tiene que verificar la entrada maxima y comparar con la salida maxima.
     // En caso de que la entradaMax es mayor a la salidaMax entonces,
     // El contenedor esta fisicamente en el patio. y se marca con E el contenedor desde el catalogo de contenedores.
     global $dbf;
     // Entrada Max.
     $sql = "select max(id_inventario) as MAXIDENT from ENTRADA where id_contenedor='{$idConte}' and ent_sal='E' ";
     $dbf->query($sql);
     while ($dbf->next_record()) {
         $idEntMax = $dbf->f(MAXIDENT);
     }
     if ($idEntMax > 0) {
         // Obtener la fecha de entrada.
         $entFecha = getValueTable("cap_fec", "ENTRADA", "id_inventario", $idEntMax);
     }
     // Salida Max.
     $sql = "select max(id_inventario) as MAXIDSAL from ENTRADA where id_contenedor='{$idConte}' and ent_sal='S' ";
     $dbf->query($sql);
     while ($dbf->next_record()) {
         $idSalMax = $dbf->f(MAXIDSAL);
     }
     if ($idSalMax > 0) {
         // Obtener la fecha de entrada.
         $salFecha = getValueTable("cap_fec", "ENTRADA", "id_inventario", $idSalMax);
     }
     // Timestame para comparar tiempos.
     $entM = getFecha($entFecha, 'mes');
     $entD = getFecha($entFecha, 'dia');
     $entA = getFecha($entFecha, 'ano');
     $entH = getFecha($entFecha, 'hor');
     $entN = getFecha($entFecha, 'min');
     $entTS = mktime($entH, $entN, 0, $entM, $entD, $entA);
     $salM = getFecha($salFecha, 'mes');
     $salD = getFecha($salFecha, 'dia');
     $salA = getFecha($salFecha, 'ano');
     $salH = getFecha($salFecha, 'hor');
     $salN = getFecha($salFecha, 'min');
     $salTS = mktime($salH, $salN, 0, $salM, $salD, $salA);
     if ($salTS > $entTS) {
         // Marcar el conte como salida.
         $sql = "update CONTENEDOR set ent_sal='S' where id_contenedor='{$idConte}'";
         $dbf->query($sql);
     } else {
         // Marcarlo como entrada = Existe fisicamente en el deposito o patio de contenedores.
         $sql = "update CONTENEDOR set ent_sal='E' where id_contenedor='{$idConte}'";
         $dbf->query($sql);
     }
 }
Exemple #2
0
 function reporteNewExcel($idNaviera, $fec1, $fec2)
 {
     // connection with the database
     $dbhost = "localhost";
     $dbuser = "******";
     $dbpass = "******";
     $dbname = "nesoftwa_ANAKOSTA";
     mysql_connect($dbhost, $dbuser, $dbpass);
     mysql_select_db($dbname);
     // require the PHPExcel file
     require '../Classes/PHPExcel.php';
     // simple query
     $sql = "SELECT cap_fec,id_contenedor,clase,transportista,id_entrada,mani_st_pago ";
     $sql .= " from ENTRADA where ";
     if ($idNaviera != '-') {
         $sql .= "id_naviera='{$idNaviera}' and ";
     }
     $sql .= "ent_sal='E' and cap_fec BETWEEN '{$fec1} 00:00:00' and '{$fec2} 23:59:59' order by id_naviera,cap_fec ";
     // Encabezados
     $headings = array('Fec.Ingreso', 'Contenedor', 'Tipo', 'Calidad', 'Condiciones', 'Transportista', 'No.EIR', 'Maniobra por cuenta de');
     if ($result = mysql_query($sql) or die(mysql_error())) {
         // Create a new PHPExcel object
         $objPHPExcel = new PHPExcel();
         $objPHPExcel->getActiveSheet()->setTitle('ENTRADAS');
         // Escribe los encabezados
         $rowNumber = 1;
         $col = 'A';
         foreach ($headings as $heading) {
             $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $heading);
             $col++;
         }
         // Escribe los Registros
         $rowNumber = 2;
         while ($row = mysql_fetch_row($result)) {
             $capFec = $row[0];
             $idConte = $row[1];
             $clase = $row[2];
             $transp = $row[3];
             $eir = $row[4];
             $maniStPago = $row[5];
             $conte = getValueTable("numero", "CONTENEDOR", "id_contenedor", $idConte);
             $idEq = getValueTable("id_equipo", "CONTENEDOR", "id_contenedor", $idConte);
             $equipo = getValueTable("equipo", "EQUIPO", "id_equipo", $idEq);
             $maniStPago == "M" ? $maniStPago = "MERCHANT" : ($maniStPago = "CARRIER");
             $rowF[0] = $capFec;
             $rowF[1] = $conte;
             $rowF[2] = $equipo;
             $rowF[3] = $clase;
             $rowF[4] = $claseCondi;
             $rowF[5] = $transp;
             $rowF[6] = $eir;
             $rowF[7] = $maniStPago;
             $col = 'A';
             foreach ($rowF as $cell) {
                 $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $cell);
                 $col++;
             }
             $rowNumber++;
         }
         // Freeze pane so that the heading line won't scroll
         $objPHPExcel->getActiveSheet()->freezePane('A2');
     }
     // ------------------------------------------------------------
     // Nueva HOJA 2 Salidas
     // ------------------------------------------------------------
     $objPHPExcel->createSheet();
     $objPHPExcel->setActiveSheetIndex(1);
     //$objPHPExcel->getActiveSheet(1);
     $objPHPExcel->getActiveSheet()->setTitle('SALIDAS');
     // simple query
     $sql = "SELECT cap_fec,id_contenedor,bkg,consig,transportista,clase,id_entrada,sello,mani_st_pago ";
     $sql .= "from ENTRADA where ";
     if ($idNaviera != '-') {
         $sql .= "id_naviera='{$idNaviera}' and ";
     }
     $sql .= "ent_sal='S' and ";
     $sql .= "cap_fec BETWEEN '{$fec1} 00:00:00' and '{$fec2} 23:59:59' order by id_naviera,cap_fec";
     // Encabezados
     $headings = array('Fec.Salida', 'Contenedor', 'Tipo', 'Booking', 'Cliente', 'Transportista', 'Calidad', 'No.EIR', 'Sello-Salida', 'Maniobra por cuenta de');
     if ($result = mysql_query($sql) or die(mysql_error())) {
         // Escribe los encabezados
         $rowNumber = 1;
         $col = 'A';
         foreach ($headings as $heading) {
             $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $heading);
             $col++;
         }
         // Escribe los Registros
         $rowNumber = 2;
         while ($row = mysql_fetch_row($result)) {
             // Contenedor
             $capFec = $row[0];
             $idConte = $row[1];
             $bkg = $row[2];
             $consig = $row[3];
             $transp = $row[4];
             $clase = $row[5];
             $eir = $row[6];
             $sello = $row[7];
             $maniStPago = $row[8];
             $conte = getValueTable("numero", "CONTENEDOR", "id_contenedor", $idConte);
             $idEq = getValueTable("id_equipo", "CONTENEDOR", "id_contenedor", $idConte);
             $equipo = getValueTable("equipo", "EQUIPO", "id_equipo", $idEq);
             $maniStPago == "M" ? $maniStPago = "MERCHANT" : ($maniStPago = "CARRIER");
             $rowF[0] = $capFec;
             $rowF[1] = $conte;
             $rowF[2] = $equipo;
             $rowF[3] = $bkg;
             $rowF[4] = $consig;
             $rowF[5] = $transp;
             $rowF[6] = $clase;
             $rowF[7] = $eir;
             $rowF[8] = $sello;
             $rowF[9] = $maniStPago;
             $col = 'A';
             foreach ($rowF as $cell) {
                 $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $cell);
                 $col++;
             }
             $rowNumber++;
         }
         // Freeze pane so that the heading line won't scroll
         $objPHPExcel->getActiveSheet()->freezePane('A2');
     }
     // ----------------------------------------------------------------------------
     // Nueva HOJA 3 INVENTARIO
     // ----------------------------------------------------------------------------
     // 1. Se crean registros en tabla INVENTARIO donde se eliminan los duplicados.
     // 2. Es importante dejar esta opcion en el query de consulta :
     // --> e.cap_fec desc <----
     // El primer registro con fecha mayor sera el que pasar a la tabla INVENTARIO
     // ----------------------------------------------------------------------------
     global $db, $db2, $db3, $hoy, $hoyF;
     // Limpiar inventario.
     $sql = "truncate INVENTARIO ";
     $db->query($sql);
     $sql = "select e.id_naviera as ID_NAVIERA, e.id_contenedor as ID_CONTE, c.numero as CONTE, q.equipo as EQUIPO, ";
     $sql .= "e.damage as DAMAGE,e.clase as CLASE, e.cap_fec as CAP_FEC,";
     $sql .= "e.nota as NOTA, e.reforzado as REFORZADO ";
     $sql .= "from ENTRADA e, CONTENEDOR c, EQUIPO q where ";
     if ($idNaviera != '-') {
         $sql .= "id_naviera='{$idNaviera}' and ";
     }
     $sql .= "e.id_contenedor=c.id_contenedor and c.id_equipo=q.id_equipo and ";
     $sql .= "c.ent_sal<>'S' and e.ent_sal='E' ";
     $sql .= " order by e.id_naviera,e.cap_fec desc ";
     $db->query($sql);
     while ($db->next_record()) {
         // Reconocer los campos para el Inventario.
         $idNav = $db->f(ID_NAVIERA);
         $idConte = $db->f(ID_CONTE);
         $equipo = $db->f(EQUIPO);
         $equipo1 = substr($equipo, 0, 2);
         $equipo2 = substr($equipo, 2, 3);
         $damage = $db->f(DAMAGE);
         $clase = $db->f(CLASE);
         $capFec = $db->f(CAP_FEC);
         $nota = $db->f(NOTA);
         $reforzado = $db->f(REFORZADO);
         // GRABAR AL INVENTARIO REGISTROS NO DUPLICADOS
         // ---------------------------------------------
         // comprobar que no exista el registro en el Inventario ENTRADA_I,
         // si existe el registro, entonces esta duplicado el registro.
         $sql2 = "select id_inventario from INVENTARIO where ";
         $sql2 .= "id_contenedor='{$idConte}' and id_naviera='{$idNav}'";
         $db2->query($sql2);
         $nr2 = $db2->num_rows();
         if ($nr2 == 0) {
             // Entonces grabar sin duplicados.
             $sql3 = "insert into INVENTARIO (";
             $sql3 .= "cap_fec,id_contenedor,id_naviera,equipo1,equipo2,damage,clase,nota,reforzado";
             $sql3 .= ") values (";
             $sql3 .= "'{$capFec}','{$idConte}','{$idNav}','{$equipo1}','{$equipo2}','{$damage}','{$clase}','{$nota}','{$reforzado}'";
             $sql3 .= ")";
             $db3->query($sql3);
         }
     }
     // ---------------------------------------------------------
     // CONSULTAR INVENTARIO, coloca los datos en la Hoja 3
     // ---------------------------------------------------------
     unset($row);
     unset($rowF);
     $objPHPExcel->createSheet();
     $objPHPExcel->setActiveSheetIndex(2);
     //$objPHPExcel->getActiveSheet(1);
     $objPHPExcel->getActiveSheet()->setTitle('INVENTARIO');
     // Encabezados
     // ------------
     $headings = array('No.Linea', 'Naviera', 'Contenedor', 'Size', 'Tipo', 'Status', 'Calidad', 'F.Entrada', 'Nota', 'Reforzado', 'Dias-Trans');
     // Escribe los encabezados
     $rowNumber = 1;
     $col = 'A';
     foreach ($headings as $heading) {
         $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $heading);
         $col++;
     }
     $sql = "select cap_fec,id_contenedor,id_naviera,equipo1,equipo2,damage,clase,nota,reforzado ";
     $sql .= "from INVENTARIO order by id_naviera,cap_fec";
     if ($result = mysql_query($sql) or die(mysql_error())) {
         // Escribe los Registros
         $rowNumber = 2;
         while ($row = mysql_fetch_row($result)) {
             // Contenedor
             $capFec = $row[0];
             // Calcular los dias en el Patio.
             $capFecM = getFecha($capFec, 'mes');
             $capFecD = getFecha($capFec, 'dia');
             $capFecA = getFecha($capFec, 'ano');
             $hoyM = date('m');
             $hoyD = date('d');
             $hoyA = date('Y');
             $capFecMK = mktime(0, 0, 0, $capFecM, $capFecD, $capFecA);
             $hoyMK = mktime(0, 0, 0, $hoyM, $hoyD, $hoyA);
             $diasTrans = totalDias($capFecMK, $hoyMK);
             $idConte = $row[1];
             $conte = getValueTable("numero", "CONTENEDOR", "id_contenedor", $idConte);
             $idNaviera = $row[2];
             $naviera = getValueTable("naviera", "NAVIERA", "id_naviera", $idNaviera);
             $equipo1 = $row[3];
             $equipo2 = $row[4];
             $damage = $row[5];
             $clase = $row[6];
             $nota = $row[7];
             $reforzado = $row[8];
             $rowF[0] = $rowNumber - 1;
             $rowF[1] = $naviera;
             $rowF[2] = $conte;
             $rowF[3] = $equipo1;
             $rowF[4] = $equipo2;
             $rowF[5] = $damage;
             $rowF[6] = $clase;
             $rowF[7] = $capFec;
             $rowF[8] = $nota;
             $rowF[9] = $reforzado;
             $rowF[10] = $diasTrans;
             $col = 'A';
             foreach ($rowF as $cell) {
                 $objPHPExcel->getActiveSheet()->setCellValue($col . $rowNumber, $cell);
                 $col++;
             }
             $rowNumber++;
         }
         // Freeze pane so that the heading line won't scroll
         $objPHPExcel->getActiveSheet()->freezePane('A2');
     }
     // -------------------------------------
     // Save as an Excel BIFF (xls) file
     // -------------------------------------
     // Opcion1 EXCEL 5
     /*
     header('Content-Type: application/vnd.ms-excel'); 
     header('Content-Disposition: attachment;filename=reporte.xls'); 
     header('Cache-Control: max-age=0'); 
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
     $objWriter->save('php://output'); 
     */
     // Opcion2 EXCEL 2007
     header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
     header('Content-Disposition: attachment;filename="reporte.xlsx"');
     header('Cache-Control: max-age=0');
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
     $objWriter->save('php://output');
     exit;
     //}
     //echo 'a problem has occurred... no data retrieved from the database';
 }
Exemple #3
0
function calcularDemora($idCalculo, $fechaVacio = "", $tipoCalculo, $libDias = "")
{
    /*
    Esta funcion es la maestra para realizar el calculo de tipo "parcial"
    y "total" segun se le especifique en los parametros.
    */
    global $dbZ, $mscIdUsuario, $hoy;
    // Debe actualizar el calculo.
    // Traemos informacion del registro y se arma un arreglo data.
    $data = getData($idCalculo);
    $idCliente = $data[idCliente];
    $idGrupo = $data[idGrupo];
    $idBl = $data[idBl];
    $idConte = $data[idConte];
    $idEquipo = $data[idEquipo];
    $tipoEq = $data[tipoEq];
    $iniLib = $data[iniLibre];
    $idRegion = $data[idRegion];
    $pol = $data[loading];
    $pod = $data[discharge];
    $eta = $data[eta];
    $sDate = $data[sDate];
    // Es para comprobar que exista el Bl y el Contenedor en la base de datos.
    // Att. Nestor 20120802
    if ($idBl > 0 && $idConte > 0) {
        // Si la fecha de vacio es menor a la fecha de ini.demora
        // no debera realizar calculos.
        $flgErrFV = 0;
        if (!empty($fechaVacio)) {
            // Timstamp para Fecha de vacio
            $fvDia = getFecha($fechaVacio, 'dia');
            $fvMes = getFecha($fechaVacio, 'mes');
            $fvAno = getFecha($fechaVacio, 'ano');
            $mFV = mktime(0, 0, 0, $fvMes, $fvDia, $fvAno);
            // Timestamp para inicio dias libres
            $ilDia = getFecha($iniLib, 'dia');
            $ilMes = getFecha($iniLib, 'mes');
            $ilAno = getFecha($iniLib, 'ano');
            $mIL = mktime(0, 0, 0, $ilMes, $ilDia, $ilAno);
            if ($mFV < $mIL) {
                $flgErrFV = 1;
            }
        }
        // Si la bandera $flErrFV == 0 es que esta ok y procede a calcular.
        if ($flgErrFV == 0) {
            // Conocer los dias libres del cliente de acuerdo
            // al origen/carga del Bl.
            // Cuando el usr. no aplica dias libres al gusto se tiene que
            // ejecutar esta funcion.
            //echo "idRegion= $idRegion <br> ";
            //echo "libDias!!= $libDias <br> ";
            // Si el usuario NO ha aplicado cambios manualmente con los dias libres,
            // el sistema debe reconocer los dias libres.
            //echo "libDias: $libDias ";
            if (empty($libDias)) {
                // pendiente ver si meto las fechas de los acuerdos como paramentros p la funcion.
                // $libDiasCli = libreDiasPls ( $idCliente, $idGrupo, $idRegion, $tipoEq, $iniLib, $eta,$idCalculo,$pol );
                if ($sDate == "0000-00-00") {
                    $sDate = $eta;
                }
                $libDiasCli = libreDiasPls($idCliente, $idGrupo, $idRegion, $tipoEq, $iniLib, $sDate, $pol, $pod);
                // ---------------------------------------------
                // SHIPPER CON ACUERDOS EN DIAS LIBRES.
                // ---------------------------------------------
                $shipper = getValueTable("shipper", "D_CALCULO", "id_calculo", $idCalculo);
                $shipper = str_replace("'", "", $shipper);
                $shipper = strtoupper($shipper);
                if (!empty($shipper)) {
                    // SHIPPER NAME
                    $idShipper = getValueTable("id_shipper", "D_SHIPPER", "shipper", $shipper);
                    if ($idShipper > 0) {
                        $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                    }
                }
                // 20131202
                // Prioridad el Shipper, pero si no entonces buscar
                // Ref. Number y buscar el shipper que tenga esta referencia.
                // De lo contrario brincar a Contract Holder y si no, Import Freight Forwader y si no, Freight Forwarder y si no, Company to invoice.
                // Detectar si la fecha de vacio entra en el rango de la vigencia.
                $refNum = getValueTable("ref_num", "D_CALCULO", "id_calculo", $idCalculo);
                $conHolCod = getValueTable("con_hol_cod", "D_CALCULO", "id_calculo", $idCalculo);
                $iffCod = getValueTable("iff_cod", "D_CALCULO", "id_calculo", $idCalculo);
                $frfCod = getValueTable("frf_cod", "D_CALCULO", "id_calculo", $idCalculo);
                $copInvCod = getValueTable("cop_inv_cod", "D_CALCULO", "id_calculo", $idCalculo);
                if ($idCalculo == 1461918) {
                    /*
                    echo "
                    <pre>
                    shipper: $shipper
                    libDiasSh: $libDiasSh                        
                    refNum : $refNum
                    conHolCod : $conHolCod
                    iffCod : $iffCod
                    frfCod : $frfCod
                    copInvCod : $copInvCod                                                    
                    </pre>
                    ";
                    */
                }
                if ($libDiasSh == 0 || empty($libDiasSh)) {
                    // ---------------------------
                    // Dias libres del SHIPPER
                    // ---------------------------
                    // REF NUM
                    if (!empty($refNum)) {
                        $idShipper = getValueTable("id_shipper", "D_SHIPPER", "msc_code", $refNum);
                        if ($idShipper > 0) {
                            if ($sDate == "0000-00-00") {
                                $sDate = $eta;
                            }
                            $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                            //  echo "REF NUM $libDiasSh - ETA $eta"."<BR>";
                        }
                    }
                    // CONTRACT HOLDER
                    if (!empty($conHolCod) && ($libDiasSh == 0 || empty($libDiasSh))) {
                        $idShipper = getValueTable("id_shipper", "D_SHIPPER", "msc_code", $conHolCod);
                        if ($idShipper > 0) {
                            if ($sDate == "0000-00-00") {
                                $sDate = $eta;
                            }
                            $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                            //   echo "CONTRACT HOLDER $libDiasSh - ETA $eta"."<BR>";
                        }
                    }
                    // Import Freight ForwarderMsc Code
                    if (!empty($iffCod) && ($libDiasSh == 0 || empty($libDiasSh))) {
                        $idShipper = getValueTable("id_shipper", "D_SHIPPER", "msc_code", $iffCod);
                        if ($idShipper > 0) {
                            if ($sDate == "0000-00-00") {
                                $sDate = $eta;
                            }
                            $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                            //  echo " Import Freight ForwarderMsc Code $libDiasSh - ETA $eta" ."<BR>";
                        }
                    }
                    // Freight Forwarder - Msc Code
                    if (!empty($frfCod) && ($libDiasSh == 0 || empty($libDiasSh))) {
                        $idShipper = getValueTable("id_shipper", "D_SHIPPER", "msc_code", $frfCod);
                        if ($idShipper > 0) {
                            if ($sDate == "0000-00-00") {
                                $sDate = $eta;
                            }
                            $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                            //   echo " Freight Forwarder - Msc Code $libDiasSh - ETA $eta"."<BR>";
                        }
                    }
                    // Company To invoice code
                    if (!empty($copInvCod) && ($libDiasSh == 0 || empty($libDiasSh))) {
                        $idShipper = getValueTable("id_shipper", "D_SHIPPER", "msc_code", $copInvCod);
                        if ($idShipper > 0) {
                            if ($sDate == "0000-00-00") {
                                $sDate = $eta;
                            }
                            $libDiasSh = libreDiasPlsShipper($idShipper, $idRegion, $tipoEq, $iniLib, $sDate, $idCalculo, $pol, $pod);
                            //  echo " Company To invoice code $libDiasSh - ETA $eta"."<BR>";
                        }
                    }
                    /*
                                        // POR DEFAULT 
                                        if( $libDiasSh <=0 || empty($libDiasSh) ){
                                        $idShipper = getValueTable("id_shipper","D_SHIPPER","shipper",$shipper);
                                        if($idShipper>0){
                                        $libDiasSh= libreDiasPlsShipper( $idShipper,$idRegion,$tipoEq,$iniLib,$sDate,$idCalculo,$pol,$pod,'SI' );                            
                                        echo "  POR DEFAULT  $libDiasSh"."<BR>";   
                                        }
                                        }     */
                }
                // Si el SHIPPER tiene más dias libres que el cliente entonces aplica.
                // Regla dada por el Capitan Ciro Enero 2009.
                // Se aplican los dias libres que tengan mas dias.
                if ($libDiasSh > $libDiasCli && $idShipper > 0) {
                    $libDias = $libDiasSh;
                    $flgAcuShi = 1;
                } else {
                    $libDias = $libDiasCli;
                    $flgAcuShi = 0;
                }
                // --------------------------------------------------
                // RELEASE FEE :: SHIPPER
                // Detecta si el Shipper tiene Exento de Release Fee.
                // Att. Nestor 2014-03-19
                // --------------------------------------------------
                if ($idShipper > 0) {
                    $flgCngExento = getValueTable("rf_exento", "D_CLIENTE", "id_cliente", $idCliente);
                    $flgShpExento = getValueTable("rf_exento", "D_SHIPPER", "id_shipper", $idShipper);
                    if ($flgCngExento != "S" && $flgShpExento != "S") {
                        // -------------------------------
                        // Aplicarlo para el 1 de Abril
                        $hoyN = date("Y-m-d");
                        $hoyNM = getFecha($hoyN, mes);
                        $hoyND = getFecha($hoyN, dia);
                        $hoyNA = getFecha($hoyN, ano);
                        $hoyNMKT = mktime(0, 0, 0, $hoyNM, $hoyND, $hoyNA);
                        // fecha apartir de cuando aplica.
                        $fecRF = date("2014-04-01");
                        $fecRFM = getFecha($fecRF, mes);
                        $fecRFD = getFecha($fecRF, dia);
                        $fecRFA = getFecha($fecRF, ano);
                        $fecRFMKT = mktime(0, 0, 0, $fecRFM, $fecRFD, $fecRFA);
                        if ($hoyNMKT >= $fecRFMKT) {
                            $sqlZ = "update EXPO set release_fee_cc='34.80' where Id_expo='{$idBl}' ";
                            $dbZ->query($sqlZ);
                        }
                        // -------------------------------
                    }
                }
                // ----------------------------------------------------------
                // TERRESTRE INCLUIDO 3/5 DIAS +.
                // Si tiene terrestre incluido y sumar 3 dias en equipo seco.
                // ----------------------------------------------------------
                if (existTerrestre($idBl)) {
                    if ($tipoEq == "S") {
                        if ($libDias == 7 || $libDias == 10) {
                            // Nueva mod. segun Cap.Ciro Aiello. 2009-02-06
                            // Si la carga es Desc=MXZLO Dest.Final=MXMTY asignar 12 dias.
                            $disc = getValueTable("Discharge", "EXPO", "Id_expo", $idBl);
                            $dest = getValueTable("Destiny", "EXPO", "Id_expo", $idBl);
                            if ($disc == "MXZLO" && $dest == "MXMTY") {
                                //$libDias = $libDias + 5;
                                //$libDias = 12;
                                $libDias = 10;
                                // Cambio solicitado por Agustin 2012-06-01
                            } else {
                                //$libDias = $libDias + 3; // 3 dias mas para precarrier incluido.
                                $libDias = 10;
                                // 3 dias mas para precarrier incluido.
                            }
                        }
                    }
                }
                // Actualizar los dias libres a la tabla D_CALCULO para buen funcionamiento.
                $sql = "update D_CALCULO set libre_dias='{$libDias}',flg_acu_shi='{$flgAcuShi}' ";
                $sql .= ",id_shipper='{$idShipper}' ";
                $sql .= "where id_calculo='{$idCalculo}'";
                $dbZ->query($sql);
            }
            // ----------------------------------------------------------------
            // TARIFAS
            // ----------------------------------------------------------------
            if ($idGrupo > 0) {
                $tarifaTipo = getValueTable("tarifa_tipo", "D_GRUPO", "id_grupo", $idGrupo);
            } else {
                $tarifaTipo = getValueTable("tarifa_tipo", "D_CLIENTE", "id_cliente", $idCliente);
            }
            if ($tarifaTipo == 'E') {
                if ($idGrupo > 0) {
                    // Conocer las tarifas esp por grupo especiales.
                    // * Pertenece a grupo.
                    // Conocer las tarifas especiales q tiene el cliente de acuerdo
                    // a la fecha de los acuerdos vs fecha de arribo del barco.
                    // si no coincide debe de darme la tarifa standard.
                    $arrTar = getTariEsp($eta, 0, $idEquipo, $idGrupo);
                    //if( is_array($arrTar) ){
                    $t1 = $arrTar[0];
                    $t2 = $arrTar[1];
                    //}
                    //else{
                    //  return $arrTar;
                    //}
                    /*  Antiguo metodo.
                        $sql="select tarifa1,tarifa2 from D_TARIFA_ESPECIAL where ";
                        $sql.="id_grupo='$idGrupo' and id_equipo='$idEquipo' ";
                        $dbZ->query($sql);
                        while($dbZ->next_record()){
                        $t1=$dbZ->f(tarifa1);
                        $t2=$dbZ->f(tarifa2);
                        echo "tar1 gpo: $t1 <br>";
                        echo "tar2 gpo: $t2 <br>";
                        }
                        */
                } else {
                    // * No pertenece a grupo.
                    // Conocer las tarifas especiales q tiene el cliente de acuerdo
                    // a la fecha de los acuerdos vs fecha de arribo del barco.
                    // si no coincide debe de darme la tarifa standard.
                    $arrTar = getTariEsp($eta, $idCliente, $idEquipo);
                    $t1 = $arrTar[0];
                    $t2 = $arrTar[1];
                }
            } else {
                // Comprobar contra la tabla D_TARIFA_CTRL para saber
                // que tarifas se van a aplicar por los acuerdos o cambios en tarifas.
                $tabTari = getTabTari($iniLib);
                //if(!empty($tabTari)){
                $t1 = getValueTable("tarifa1", "{$tabTari}", "id_equipo", $idEquipo);
                $t2 = getValueTable("tarifa2", "{$tabTari}", "id_equipo", $idEquipo);
                //}else{
                //  $errorData = "ERROR: VERIFICAR LA FECHA DE INICIO DE DIAS LIBREAS";
                //return $errorData;
                //}
                //echo "AQUI $idEquipo <br>";
            }
            // si se forso el mov. para cambiar tarifas entonces...
            $flgModTar = getValueTable("flg_mod_tar", "D_CALCULO", "id_calculo", $idCalculo);
            //if($tipoCalculo=='P'){
            if ($flgModTar == 1) {
                $t1 = getValueTable("costo_tar1", "D_CALCULO", "id_calculo", $idCalculo);
                $t2 = getValueTable("costo_tar2", "D_CALCULO", "id_calculo", $idCalculo);
            }
            // -------------------------------------------------------------
            // Rutina de ultima hora.
            // Aut. Nestor / 20041109
            // Nota: Si el cliente es VOLKSVAWEN DE MEXICO
            // Y la region es por Africa debe asignar $5 dll
            // para contenedores no reefers. Autorizo Armando Jaime.
            // --------------------------------------------------------------
            if ($idCliente == 1036) {
                if ($idRegion == 1) {
                    // Africa
                    if ($tipoEq == 'S') {
                        $t1 = 10;
                        $t2 = 10;
                    }
                }
            }
            // SHIPPER OWN - TARIFA CERO
            $idBlConte = getValueTable("id_bl_conte", "D_CALCULO", "id_calculo", $idCalculo);
            $idConte = getValueTable("id_contenedor", "BL_CONTE", "id_bl_conte", $idBlConte);
            $soc = getValueTable("soc", "CONTENEDOR", "id_contenedor", $idConte);
            if ($soc == 1) {
                $t1 = 0;
                $t2 = 0;
                $tipoCalculo = "T";
            }
            //--------------------------------------------------------------
            // DIAS DE DEMORAS
            // Conocer los dias de demora.
            // -------------------------------------------------------------
            $iniLibDia = getFecha($iniLib, dia);
            $iniLibMes = getFecha($iniLib, mes);
            $iniLibAno = getFecha($iniLib, ano);
            $mktLibF1 = mktime(0, 0, 0, $iniLibMes, $iniLibDia, $iniLibAno);
            $libF1 = date("Y-m-d", $mktLibF1);
            //echo "------------------------------------<br>";
            $mktLibF2 = mktime(0, 0, 0, $iniLibMes, $iniLibDia + ($libDias - 1), $iniLibAno);
            $libF2 = date("Y-m-d", $mktLibF2);
            // SHIPPER OWN - TARIFA CERO - FECHA DE VACIO = F.INICIO
            if ($soc == 1) {
                $fechaVacio = $iniLib;
            }
            $vacioMes = getFecha($fechaVacio, mes);
            $vacioDia = getFecha($fechaVacio, dia);
            $vacioAno = getFecha($fechaVacio, ano);
            //echo "$vacioAno / $vacioMes / $vacioDia <br>";
            $mkVacio = mktime(0, 0, 0, $vacioMes, $vacioDia, $vacioAno);
            $vacio = date("Y-m-d", $mkVacio);
            $diasDemora = totalDias($mktLibF2, $mkVacio);
            //echo "diasDemora: $diasDemora <br>";
            /*---------------*/
            if ($diasDemora < 0) {
                $diasDemora = 0;
            }
            //--------- OPERACION ----------------
            // Nota: A continuacin se debe:
            // 1. Calcular los dias para la vigencia
            // de la primer tarifa (dias_vig_tar1) y
            // multiplicarlos por las tarifas
            // que tenga el cliente de acuerdo al equipo.
            // Att. Nesmaster. 20030730.
            if ($idGrupo > 0) {
                $diasVigTar1 = getValueTable("dias_vig_tar1", "D_GRUPO", "id_grupo", $idGrupo);
            } else {
                $diasVigTar1 = getValueTable("dias_vig_tar1", "D_CLIENTE", "id_cliente", $idCliente);
            }
            $costoTlTar1 = "";
            $costoTlTar2 = "";
            $diasD = "";
            if ($diasDemora <= $diasVigTar1) {
                $costoTlTar1 = calcularTarifa($t1, $diasDemora);
                $diasEtapa1 = $diasDemora;
                $diasEtapa2 = 0;
            } elseif ($diasDemora > $diasVigTar1) {
                $costoTlTar1 = calcularTarifa($t1, $diasVigTar1);
                $diasD = $diasDemora - $diasVigTar1;
                $costoTlTar2 = calcularTarifa($t2, $diasD);
                $diasEtapa1 = $diasVigTar1;
                $diasEtapa2 = $diasD;
            }
            // -----------------------------------------------
            // Proceso para calular Pagos y Pendientes de Pago
            // -----------------------------------------------
            // Reconocer si tiene activada la bandera "Remover Iva".
            // Si es verdad no debe tomar el IVA.
            /*$flgSinIva = getValueTable ( "flg_sin_iva", "D_CALCULO", "id_calculo", $idCalculo );
              if ($flgSinIva == 1) {
              $iva = 0;
              } else {
              // Aplica IVA.
              $iva = 0.16;
              }
              */
            $iva = $flgSinIva = getValueTable("iva", "D_CALCULO", "id_calculo", $idCalculo);
            $descuento = getValueTable("descuento", "D_CALCULO", "id_calculo", $idCalculo);
            $arrTotal = calcularTotales($iva, $costoTlTar1, $costoTlTar2, $descuento);
            $total = $arrTotal[total];
            // Cuando se sube por 1era vez no hay descuentos.
            $totalDesc = $arrTotal[totalDesc];
            $totalDescIva = $arrTotal[totalIva];
            $idBlConte = getValueTable("id_bl_conte", "D_CALCULO", "id_calculo", $idCalculo);
            $idBl = getValueTable("id_bl", "BL_CONTE", "id_bl_conte", $idBlConte);
            $idConte = getValueTable("id_contenedor", "BL_CONTE", "id_bl_conte", $idBlConte);
            $sql = "update D_CALCULO set ";
            $sql .= "st_tipo_calculo='{$tipoCalculo}',dias_demora='{$diasDemora}',";
            $sql .= "fecha_vacio='{$fechaVacio}',dias_vig_tar1='{$diasVigTar1}',";
            $sql .= "costo_tar1='{$t1}',costo_tar2='{$t2}',libre_f2='{$libF2}',";
            $sql .= "total='{$total}',total_descuento='{$totalDesc}',";
            $sql .= "total_descuento_iva='{$totalDescIva}',";
            $sql .= "dias_etapa1='{$diasEtapa1}',dias_etapa2='{$diasEtapa2}',";
            $sql .= "id_usuario='{$mscIdUsuario}',fecha_captura='{$hoy}' ";
            $sql .= "where id_calculo='{$idCalculo}'";
            $dbZ->query($sql);
        }
    }
}
 echo '<td>' . $resultado['Nombre'] . '</td>';
 // control del stock
 if ($resultado['Stock'] <= 15) {
     if ($resultado['Stock'] == 0) {
         echo '<td class="alert">' . $resultado['Stock'] . '</td>';
         $stock_cero++;
     } else {
         echo '<td class="warning">' . $resultado['Stock'] . '</td>';
         $stock++;
     }
 } else {
     echo '<td>' . $resultado['Stock'] . '</td>';
 }
 // control de caducidad
 require_once "php/control_caducidad.php";
 $fecha = getFecha($resultado['Caducidad']);
 if ($fecha <= 30) {
     if ($fecha <= 0) {
         echo '<td class="alert">' . date("d-m-Y", strtotime($resultado['Caducidad'])) . '</td>';
         $prod_caducos++;
     } else {
         echo '<td class="warning">' . date("d-m-Y", strtotime($resultado['Caducidad'])) . '</td>';
         $prox_caducar++;
     }
 } else {
     echo '<td>' . date("d-m-Y", strtotime($resultado['Caducidad'])) . '</td>';
 }
 // control de usuarios (Permisos)
 if ($tipo_usuario == 1) {
     echo '<td><a href="php/actualizar.php?Id_Producto=' . $resultado['Id_Producto'] . '"><img src="img/edit.png"/></a></td>';
     echo '<td><a href="php/eliminar.php?Id_Producto=' . $resultado['Id_Producto'] . '"><img src="img/delete.png"/></a></td>';
Exemple #5
0
function totalDias($fec1, $fec2)
{
    // La funcion regresa el numero de dias transcurridos desde el
    // primer parametro al segundo.
    // Si tiene el fomato de fecha 9999-99-99, se tiene que convertir a "mktime".
    if (preg_match("/-/", $fec1)) {
        // Fecha1
        $fec1MM = getFecha($fec1, 'mes');
        $fec1DD = getFecha($fec1, 'dia');
        $fec1AA = getFecha($fec1, 'ano');
        $fec1TS = mktime(0, 0, 0, $fec1MM, $fec1DD, $fec1AA);
        // Fecha2
        $fec2MM = getFecha($fec2, 'mes');
        $fec2DD = getFecha($fec2, 'dia');
        $fec2AA = getFecha($fec2, 'ano');
        $fec2TS = mktime(0, 0, 0, $fec2MM, $fec2DD, $fec2AA);
    }
    $div = 60 * 60 * 24;
    $dias = ($fec2TS - $fec1TS) / $div + 0;
    if (is_double($dias)) {
        // Esto es porque existia un error que se comia un dia, debido a que el
        // total de dias arroja una cantidad fraccionaria ejemplo 4.98733664 Esto
        // debia ser 5 dias y decia que eran 4. Pero con saber si es double sumamos
        // 4 +1 = 5 y ya esta.
        //echo $dias."<br>";
        if (preg_match("/[0-9]{1,}\\.([0-9]{2})/", $dias, $parts)) {
            $decimal = $parts[1];
            //echo "parts: ".$parts[1];
            if ($decimal > 50) {
                $dias += 1;
                //echo "+1";
            }
        }
    }
    $dias = intval($dias);
    return $dias;
}
Exemple #6
0
function generarTablasZ($fechaA = "", $fechaA2 = "", $arrBlsMscu = "")
{
    global $conn, $dbf, $db2;
    $hoy = date("Y-m-d");
    if (is_array($arrBlsMscu)) {
        $bls = implode(",", $arrBlsMscu);
        // Para solo tomar el rango correcto en Z_MS_Exchange_Rate
        // Conocer la ETA.
        $sql = "\n        SELECT ETA\n        FROM Interlink_Dfeed90.dfeed.FNTB_Booking_BL (0,null)\n        WHERE \n        Bill_Of_Lading_Number in ({$bls}); \n        ";
        $rs = odbc_exec($conn, $sql);
        while (odbc_fetch_row($rs)) {
            $eta = odbc_result($rs, "ETA");
            $etaMes = getFecha($eta, 'mes');
            $etaDia = getFecha($eta, 'dia');
            $etaAno = getFecha($eta, 'ano');
            $etaSeg = mktime(0, 0, 0, $etaMes, $etaDia, $etaAno);
            $arrEta[] = $etaSeg;
        }
        // Tomaremos la eta menor.
        // Ordenacion
        asort($arrEta);
        $etaSeg = array_shift($arrEta);
        $segDia = 172800;
        // 2 dias
        $etaRSeg = $etaSeg - $segDia;
        $eta2diasAtras = date("Y-m-d", $etaRSeg);
        $eta = date("Y-m-d", $etaSeg);
    } elseif (!empty($fechaA)) {
        $eta = $fechaA;
        $etaMes = getFecha($eta, 'mes');
        $etaDia = getFecha($eta, 'dia');
        $etaAno = getFecha($eta, 'ano');
        $etaSeg = mktime(0, 0, 0, $etaMes, $etaDia, $etaAno);
        $segDia = 172800;
        // 2 dias
        $etaRSeg = $etaSeg - $segDia;
        $eta2diasAtras = date("Y-m-d", $etaRSeg);
    }
    // Generar fecha con un mes de atrazo, para poder cargar info.
    if (!empty($fechaA) && preg_match("/(\\d{4})-(\\d{2})-(\\d{2})/", $fechaA, $parts)) {
        $a1 = $parts[1];
        $m1 = $parts[2];
        $d1 = $parts[3];
        $timestamp1 = mktime(0, 0, 0, $m1, $d1, $a1);
        $diaSegAtras = 60 * 60 * (30 * 24);
        // 30 dias
        $timestamp2 = $timestamp1 - $diaSegAtras;
        $fechaMesAtras = date("Y-m-d", $timestamp2);
    }
    if ($conn) {
        // -------------------------------------------
        // PROCESO PARA CONOCER QUIEN CREO EL BL
        // -------------------------------------------
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BL_CREATED', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BL_CREATED;\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BL_EDIWIZARD', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BL_EDIWIZARD;\n        ";
        $rs = odbc_exec($conn, $sql);
        // BLS CREADOS SIN-EDIWIZARD
        $sql = "\n        SELECT\n            BL.bill_of_lading_number as bl,\n            bl.Create_Date,\n            u.First_Name,\n            u.Last_Name\n        into Interlink_archive90.dbo.Z_MS_BL_CREATED\n        FROM\n            interlink_dfeed90.dfeed.fntb_bill_of_lading (0, 600) B\n        INNER JOIN interlink_main90.dbo.bill_of_lading (nolock) BL ON B.bill_of_lading_id = BL.bill_of_lading_id\n        INNER JOIN interlink_main90.dbo.gissec_user (nolock) U ON BL.Created_By_User_id = U.SecUser_id\n        WHERE\n            B.I_E = 'E'\n        ";
        if (!empty($fechaA)) {
            // $sql.=" AND bl.Create_Date >= '$fechaMesAtras' ";
            $sql .= " AND bl.Create_Date BETWEEN '{$fechaMesAtras}' AND '{$fechaA2}' ";
        } elseif (!empty($bls)) {
            $sql .= " AND BL.bill_of_lading_number in ({$bls}) ";
        }
        $rs = odbc_exec($conn, $sql);
        // BLS CREADOS CON EDIWIZARD
        $sql = "\n        SELECT distinct \n            Bill_Of_Lading_Number as bl,\n            Create_Date,\n            comment,\n            CreatedTime AS 'Comment Date',\n            u.First_Name,\n            u.Last_Name\n            into Interlink_Archive90.dbo.Z_MS_BL_EDIWIZARD\n        FROM\n            interlink_main90.dbo.bill_of_lading b (nolock)\n        INNER JOIN interlink_main90.dbo.cargo c (nolock) ON b.bill_of_lading_id = c.bill_of_lading_id\n        INNER JOIN interlink_main90.dbo.cargo_shipment_container csc (nolock) ON c.cargo_shipment_container_id = csc.cargo_shipment_container_id\n        INNER JOIN Interlink_Main90.dbo.Cargo_Shipment_Comment com (nolock) ON csc.Cargo_Shipment_id = com.Cargo_Shipment_id\n        INNER JOIN interlink_main90.dbo.gissec_user (nolock) U ON com.User_id = U.SecUser_id\n        WHERE\n        ";
        if (!empty($fechaMesAtras)) {
            $sql .= " Create_Date >= '{$fechaMesAtras}' ";
        } elseif (!empty($bls)) {
            $sql .= " Bill_Of_Lading_Number in ({$bls}) ";
        }
        $sql .= " AND Comment LIKE 'bill of lading created from si%' ";
        $rs = odbc_exec($conn, $sql);
        // ---------------------------------------------
        // PROCESO. 20S Y 40s
        // Nota : No cambiar la fecha 2015-05-01 para que tome lo mas que se pueda.
        // ---------------------------------------------
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_20_40', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_20_40;\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        select Bill_Of_Lading_Number,[# 20s] as C20,[# 40s] as C40\n        into Interlink_archive90.dbo.Z_MS_20_40\n        from Interlink_DFeed90.dfeed.FNTB_BOLREP_Header(null,null)\n        where\n        (Sail_Date>'2015-05-01' or Loaded_Date>'2015-05-01')\n        and ([# 20s]<>0 or [# 40s]<>0) \n        ";
        if (!empty($bls)) {
            $sql .= "AND Bill_Of_Lading_Number in ({$bls}) ";
        }
        //echo "<hr>$sql</hr>";
        $rs = odbc_exec($conn, $sql);
        // Cambiar los campos
        // -----------------------------------------
        // PROCESO. BUSCAR INFO GENERAL DEL BL
        // -----------------------------------------
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BLS', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BLS;\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        SELECT\n             T.OriginUN AS OriginUN,\n             T.POLUN_bb AS POLUN,\n             T.PODUN_bb AS PODUN,\n             T.FDestUN AS FDestUN,\n             T.Bill_Of_Lading_Number AS BL,\n             T.BKG AS BKG,\n             T.SHP AS SHP,\n             T.CNG AS CNG,\n             T.NFY AS NFY,\n             TT.*, T.Service_Contract AS Service_Contract,\n             --T.[# 20s] AS C20,\n             --T.[# 40s] AS C40,\n             T.Group_Code AS Group_Code,\n             T.MSCCODE_SHP AS MSCCODE_SHP,\n             T.MSCCODE_CNG AS MSCCODE_CNG,\n             T.Vessel_Name_bb AS Vessel,\n             T.Voyage_bb AS Voyage,\n             T.ETA_bb AS ETA,\n             T.ETD_bb AS ETD,\n             T.Local_ETA AS Local_ETA,\n             T.Local_ETD AS Local_ETD,\n             T.I_E AS I_E,\n             TT.Currency AS CUR,\n             TT.Total_FRT_CC AS FRT_CC,\n             TT.Total_FRT_PP AS FRT_PP,\n             TT.Total_FRT_EE AS FRT_EE,\n             TT.Total_THC_CC AS THC_CC,\n             TT.Total_THC_PP AS THC_PP,\n             TT.Total_THC_EE AS THC_EE,\n             TT.Total_PRE_CC AS PRE_CC,\n             TT.Total_PRE_PP AS PRE_PP,\n             TT.Total_PRE_EE AS PRE_EE,\n             TT.Total_ONC_CC AS ONC_CC,\n             TT.Total_ONC_PP AS ONC_PP,\n             TT.Total_ONC_EE AS ONC_EE,\n             TT.Total_Otros_CC AS Total_Otros_CCC,\n             TT.Total_Otros_PP AS Total_Otros_PPP,\n             TT.Total_Otros_EE AS Total_Otros_EEE,\n             T.BKG_Date AS BKG_Date,\n             T.BKG_Shipper AS BKG_Shipper,\n             T.Local_STR_1 AS Sales_Exe,\n             T.Local_STR_2 AS Who,\n             T.VESSEL_CODE as VESSEL_CODE,\n             T.VESSEL_PORT_LOC AS VESSEL_PORT_LOC,\n             T.RFC,\n             BLStatus = CASE WHEN sbl.approved_bl_canceled = 1 THEN 'Canceled'\n                                  WHEN sbl.mnfst_approved_date IS NOT NULL THEN 'Approved'\n                                  WHEN sbl.Mnfst_Finalized_Date IS NOT NULL THEN 'Finalized'\n                                  WHEN sbl.locked_date IS NOT NULL THEN 'Locked'\n                                  ELSE ''\n                        END\n        INTO Interlink_archive90.dbo.Z_MS_BLS\n        FROM\n             (\n                  SELECT\n                       BB.Vessel_Name as Vessel_Name_bb,\n                       BB.Voyage as Voyage_bb,\n                       BB.ETA as ETA_bb,\n                       BB.ETD as ETD_bb,\n                       BB.POLUN as POLUN_bb,\n                       BB.PODUN as PODUN_bb,\n                       BL.*, ADC.Company AS SHP,\n                       ADCC.Company AS CNG,\n                       ADCN.Company AS NFY,\n                       ADC.Group_Code,\n                       ADC.MSCCode AS MSCCODE_SHP,\n                       ADCC.MSCCode AS MSCCODE_CNG,\n                       --BRH.[# 20s],\n                       --BRH.[# 40s],\n                       BB.OriginUN,\n                       BB.FDestUN,\n                       CS.Booking_Number AS BKG,\n                       CS.Booking_Date AS BKG_Date,\n                       CS.Shipper_Name AS BKG_Shipper,\n                       CS.Local_STR_1,\n                       CS.Local_STR_2,\n                       CA.RFC AS RFC,\n                       BB.Vessel_DTX as VESSEL_CODE,\n                       BB.VPC_PortUN as VESSEL_PORT_LOC,\n                       BB.Local_ATA as Local_ETA,\n                       BB.Local_ATD as Local_ETD\n                  FROM\n                       Interlink_DFeed90.dfeed.FNTB_Bill_Of_Lading (1, NULL) BL\n                  LEFT JOIN Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('SHIPPER') ADC ON BL.Bill_Of_Lading_id = ADC.Bill_Of_Lading_id\n                  LEFT JOIN Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('CONSIGN') ADCC ON BL.Bill_Of_Lading_id = ADCC.Bill_Of_Lading_id\n                  LEFT JOIN Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('NOTIFY') ADCN ON BL.Bill_Of_Lading_id = ADCN.Bill_Of_Lading_id\n                  LEFT JOIN Interlink_DFeed90.dfeed.FNTB_Company_Address (null) CA ON CA.Company_Address_id =  ADCC.Company_Address_id\n                  AND ADCN.Assoc_Doc_Company_id = (\n                       SELECT\n                            MAX (Assoc_Doc_Company_id)\n                       FROM\n                            Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('NOTIFY')\n                       WHERE\n                            Bill_Of_Lading_id = ADCN.Bill_Of_Lading_id\n                  ) \n                  LEFT JOIN Interlink_DFeed90.dfeed.FNTB_Booking_BL(1,NULL) BB ON BL.Bill_Of_Lading_id = BB.Bill_Of_Lading_id\n                  LEFT JOIN Interlink_Main90.dbo.Cargo_Shipment CS (nolock) ON BB.Cargo_Shipment_id = CS.Cargo_Shipment_id\n                  WHERE\n                  ";
        if (!empty($bls)) {
            $sql .= " BB.Bill_Of_Lading_Number in ({$bls}) ";
        } elseif (!empty($fechaA)) {
            $sql .= " BB.ETA BETWEEN '{$fechaA}' AND '{$fechaA2}' ";
            // -- AND BL.I_E like '$impoExpo%'
            // $sql.="AND BL. Vessel_Name = 'LESOTHO' ";
            // $sql.="AND BL .Voyage = '550E' ";
            // -- AND BRH.Type in('I','O')
            // -- AND BL.Include_In_Manifest_And_DTX='1'
            // $sql.="BL.Bill_Of_Lading_Number='MSCUES154929' ";
        }
        $sql .= "\n             ) T\n        LEFT JOIN (\n             SELECT\n                  Bill_of_Lading_id,\n                  Bill_of_Lading_Number,\n                  BL.Currency,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'FRT'\n                       AND BL.Payment_Type = 'C' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_FRT_CC,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'FRT'\n                       AND BL.Payment_Type = 'P' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_FRT_PP,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'FRT'\n                       AND BL.Payment_Type = 'E' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_FRT_EE,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'THC'\n                       AND BL.Payment_Type = 'C' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_THC_CC,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'THC'\n                       AND BL.Payment_Type = 'P' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_THC_PP,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'THC'\n                       AND BL.Payment_Type = 'E' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_THC_EE,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'PRE'\n                       AND BL.Payment_Type = 'C' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_PRE_CC,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'PRE'\n                       AND BL.Payment_Type = 'P' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_PRE_PP,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'PRE'\n                       AND BL.Payment_Type = 'E' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_PRE_EE,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'ONC'\n                       AND BL.Payment_Type = 'C' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_ONC_CC,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'ONC'\n                       AND BL.Payment_Type = 'P' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_ONC_PP,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code = 'ONC'\n                       AND BL.Payment_Type = 'E' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_ONC_EE,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code NOT IN ('ONC', 'PRE', 'FRT', 'THC')\n                       AND BL.Payment_Type = 'C' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_Otros_CC,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code NOT IN ('ONC', 'PRE', 'FRT', 'THC')\n                       AND BL.Payment_Type = 'P' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_Otros_PP,\n                  SUM (\n                       CASE\n                       WHEN Charge_DTX_Code NOT IN ('ONC', 'PRE', 'FRT', 'THC')\n                       AND BL.Payment_Type = 'E' THEN\n                            Result_Std\n                       ELSE\n                            0.0\n                       END\n                  ) Total_Otros_EE\n             FROM\n                  (\n                       -- Esto evita la duplicaci�n de los costos por contenedor.\n                       SELECT DISTINCT\n                            Container_Number,\n                            Bill_of_Lading_id,\n                            Bill_of_Lading_Number,\n                            BL.Currency,\n                            Charge_DTX_Code,\n                            Payment_Type,\n                            Invoice_Type_Desc,\n                            Result_Std\n                       FROM\n                            Interlink_DFeed90.dfeed.FNTB_Charge (0, NULL) BL\n                       WHERE\n                            Bill_Of_Lading_id = BL.Bill_Of_Lading_id\n                  ) AS BL\n             GROUP BY\n                  Bill_of_Lading_id,\n                  Bill_of_Lading_Number,\n                  BL.Currency\n        ) TT ON TT.Bill_of_Lading_id = T.Bill_Of_Lading_id\n        left join Interlink_DFeed90.dfeed.FNTB_Bill_Of_Lading_to_Booking () sbl ON sbl.Bill_Of_Lading_id = T.Bill_Of_Lading_id\n        \n        ";
        // echo "<hr><pre>$sql</pre><hr>";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_BLS [ GENERADA ]<br>";
        // 2. ACTUALIZAR LAS MONEDAS ( GISCurrency )
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_GISCurrency', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_GISCurrency\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        select *\n        into Interlink_archive90.dbo.Z_MS_GISCurrency\n        from Interlink_Main90.dbo.GISCurrency\n        ";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_GISCurrency [ GENERADA ]<br>";
        // 3.  ARMAR TABLA TEMPORAL DE CARGOS  "Z_MS_CHARGES"
        // Crear una temporal solo para colocar bls no duplicados y poderla enlazar.
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BL_SINDUP', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BL_SINDUP\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        SELECT DISTINCT BL, Bill_of_Lading_id\n        into Interlink_archive90.dbo.Z_MS_BL_SINDUP\n        FROM Interlink_archive90.dbo.Z_MS_BLS\n        ";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_BL_SINDUP [ GENERADA ] <br>";
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_CHARGES', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_CHARGES\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        SELECT\n             SUM (Result_Std) AS Monto,\n             BL.Currency,\n             BL.Charge_DTX_Code,\n             BL.Bill_of_Lading_Number,\n             BL.Payment_Type,BL.Charge\n        into Interlink_archive90.dbo.Z_MS_CHARGES\n        FROM\n             Interlink_DFeed90.dfeed.FNTB_Charge (0, NULL) BL\n        INNER JOIN Interlink_archive90.dbo.Z_MS_BL_SINDUP Z ON BL.Bill_of_Lading_id = Z.Bill_of_Lading_id\n        GROUP BY\n             BL.Currency,\n             BL.Charge_DTX_Code,\n             BL.Bill_of_Lading_Number,\n             BL.Payment_Type,BL.Charge \n\n        ";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_CHARGES [ GENERADA ]<br>";
        // 4. RELACION BL-CONTENEDOR
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BL_CONTE', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BL_CONTE\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        SELECT DISTINCT\n        C.Equipment_Number as Conte,\n        BL.Bill_Of_Lading_Number as Bl,\n        C.EqType AS Equipo,\n        C2.Shipper_Owned AS SOC\n        into Interlink_archive90.dbo.Z_MS_BL_CONTE\n        FROM\n        Interlink_DFeed90.dfeed.FNTB_Bill_Of_Lading (0, NULL) BL        \n        -- LEFT JOIN  Interlink_DFeed90.dfeed.FNTB_Equipment_Cycle (0,null) C ON BL.Bill_Of_Lading_Number = C.EC_Bill_Of_Lading_Number\n        -- EC_Bill_Of_Lading_Number se cambio por Assign_Bill_Of_Lading_Number. 20150917\n        LEFT JOIN  Interlink_DFeed90.dfeed.FNTB_Equipment_Cycle (0,null) C ON BL.Bill_Of_Lading_Number = C.Assign_Bill_Of_Lading_Number\n        LEFT JOIN Interlink_DFeed90.dfeed.FNTB_BOLREP_Container () C2 ON C.Equipment_Number = C2.Container_Number\n        INNER JOIN Interlink_archive90.dbo.Z_MS_BLS Z ON BL.Bill_of_Lading_id = Z.Bill_of_Lading_id\n        WHERE\n        C.Equipment_Number <> '' \n        ";
        // echo "<hr><pre><b>$sql</b></pre>";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_BL_CONTE [ GENERADA ] <br>";
        // 5. FIRMAS BL.DRAFT (Homely)
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_LOG', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_LOG\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        SELECT *\n        into Interlink_archive90.dbo.Z_MS_LOG\n        FROM Interlink_Dfeed90.dfeed.FNTB_Change_Log('bl',100)\n        where Action_Description like '%draft%' \n        ";
        if (!empty($bls)) {
            $sql .= "AND (";
            $arrBls2[] = explode(",", $bls);
            foreach ($arrBls2 as $key => $bl) {
                $bl = str_replace("'", "", $bl);
                $sql .= "Action_Description like '%{$bl}%' OR";
            }
            // Quitar el ultimo OR.
            $sql = substr($sql, 0, -2);
            $sql .= ") ";
        }
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: FNTB_Change_Log [ GENERADA ] <br>";
        // 6. Exchange Rate
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_Exchange_Rate', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_Exchange_Rate;\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n        select *\n        into Interlink_archive90.dbo.Z_MS_Exchange_Rate\n        from Interlink_Main90.dbo.Exchange_Rate \n        WHERE \n        ";
        if (!empty($bls)) {
            $sql .= "Date_From BETWEEN '{$eta2diasAtras}' and '{$eta}' ";
        } elseif (!empty($fechaA)) {
            // $sql.="Date_From >= '$eta2diasAtras' ";
            $sql .= "Date_From BETWEEN '{$eta2diasAtras}' and '{$fechaA2}' ";
        }
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_Exchange_Rate [ GENERADA ] <br> {$sql} <p>";
        // 7. BLS CANCELADOS
        // Crear la lista Negra de los Bls cancelados.
        // IMPORTANTE: Los Bls marcados como CANCELADOS en la IMPORTACIÓN,
        // EN REALIDAD NO ESTAN CANCELADOS, solo son marcados para que no salgan en un reporte y luego son utilizados para Transbordos
        // Segun lo explico URSUS el día 2015-10-06. Att. Nestor.
        // Por lo tanto solo se va a considerar lo CANCELADO de EXPORTACION.
        $sql = "\n        IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_BL_CANCELED', 'U') IS NOT NULL\n        drop table Interlink_archive90.dbo.Z_MS_BL_CANCELED;\n        ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n            SELECT Bill_Of_Lading_Number,BL_Canceled\n            INTO Interlink_archive90.dbo.Z_MS_BL_CANCELED\n            FROM Interlink_Dfeed90. dfeed.FNTB_Bill_Of_Lading (1, 100)\n            where\n            I_E='E'\n            AND Bl_Canceled='1'\n        ";
        if (!empty($bls)) {
            $sql .= "AND Bill_Of_Lading_Number in ({$bls}) ";
        }
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_BL_CANCELED [ GENERADA ] <br> {$sql} <p>";
        // 8. DOC_CHARGE_DTX
        // - Utilizada para los reportes de Freight Average en SION.
        $sql = "\n            IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_DOC_CHARGE_DTX', 'U') IS NOT NULL\n            drop table Interlink_archive90.dbo.Z_MS_DOC_CHARGE_DTX;\n            ";
        $rs = odbc_exec($conn, $sql);
        $sql = "\n            SELECT \n            c.Container_Number,c.Bill_of_Lading_Number,c.Charge_DTX_Code,c.Result_Std,c.Payment_Type,c.Currency\n            into Interlink_archive90.dbo.Z_MS_DOC_CHARGE_DTX\n            FROM\n                 Interlink_DFeed90.dfeed.FNTB_Bill_Of_Lading (0, NULL) B\n            INNER JOIN Interlink_Dfeed90.dfeed.FNTB_Charge (0, NULL) C ON B.Bill_Of_Lading_Number = c.Bill_of_Lading_Number\n            WHERE\n            Invoice_Type='D'\n            and Currency='USD'\n            and c.Charge_DTX_Code in ('FRT','BAF','BUC') ";
        if (!empty($fechaA)) {
            // $sql.=" and c.BL_Create_Date >= '$fechaA' ";
            $sql .= " and c.BL_Create_Date BETWEEN '{$fechaA}' AND '{$fechaA2}' ";
        } elseif (!empty($bls)) {
            $sql .= " AND B.Bill_Of_Lading_Number in ({$bls}) ";
        }
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_DOC_CHARGE_DTX [ GENERADA ] <br> {$sql} <p>";
        // ------------------------------
        // 9. Rate Agreements for Import
        // ------------------------------
        $sql = "\n            IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_RATE_AGREEMENT', 'U') IS NOT NULL\n            drop table Interlink_archive90.dbo.Z_MS_RATE_AGREEMENT;\n            ";
        $rs = odbc_exec($conn, $sql);
        $sql = "            \n            SELECT Bill_Of_Lading_Number,Service_Contract_Number,Start_Period\n            into Interlink_archive90.dbo.Z_MS_RATE_AGREEMENT\n            FROM\n                Interlink_DFeed90. dfeed.ILIM_FNTB_Charges() D\n                WHERE Service_Contract_Number is not null\n            ";
        if (!empty($fechaA)) {
            // $sql.=" AND Start_Period >= '$fechaA' ";
            $sql .= " AND Start_Period BETWEEN '{$fechaA}' and '{$fechaA2}'  ";
        } elseif (!empty($bls)) {
            $sql .= " AND Bill_Of_Lading_Number in ({$bls}) ";
        }
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_RATE_AGREEMENT [ GENERADA ] <br> {$sql} <p>";
        // ----------------------------------------------------------
        // 10. SHORT DESCRIPTION "COMMODITY"
        // ----------------------------------------------------------
        $sql = "\n            IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_COMMODITY', 'U') IS NOT NULL\n            drop table Interlink_archive90.dbo.Z_MS_COMMODITY;\n            ";
        $rs = odbc_exec($conn, $sql);
        $sql = "            \n                select distinct b.Bill_Of_Lading_Number,b.Ex_Short_Description\n                into Interlink_archive90.dbo.Z_MS_COMMODITY\n                FROM InterLink_dfeed90. dfeed.FNTB_Booking_BL_csc (0 ,300) b\n                where b.ETA between '{$fechaA}' and '{$fechaA2}'\n            ";
        $rs = odbc_exec($conn, $sql);
        echo "Tabla: Z_MS_COMMODITY [ GENERADA ] <br> {$sql} <p>";
        // ----------------------------------------------------------------
        // 11. CONTROL DE EQUIPO. ULTIMO EVENTO POR EQUIPO
        // Este es un reporte mensual que es utilizado por Rene Flores
        // Fecha : 2016-04-08
        // ----------------------------------------------------------------
        $sql = "\n            IF OBJECT_ID('Interlink_archive90.dbo.Z_MS_LAST_EVENT_CONT', 'U') IS NOT NULL\n            drop table Interlink_archive90.dbo.Z_MS_LAST_EVENT_CONT;\n            ";
        $rs = odbc_exec($conn, $sql);
        /*
        $sql="
        SELECT
            EC.CycleType,
            EC.Equipment_Number,
            EC.EqType,
            EC.EventDesc,
            EC.EventType,   
            EC.Event_Date,
            EC.POL,
            EC.POD,
            EC.POLUN,
            EC.PODUN,
            EC.EE_Location,
            EC.EC_Booking_Number,
            EC.EC_BIll_Of_Lading_Number,
            EC.Assign_Booking_Number,
            EC.Assign_BIll_Of_Lading_Number,
            EC.Depot,
            EC.ET_Full_or_Empty_Desc,
            EC.Estimated_Arrival_DateTime,
            EC.Estimated_Departure_DateTime
        into Interlink_archive90.dbo.Z_MS_LAST_EVENT_CONT
        FROM
            Interlink_DFeed90.dfeed.FNTB_Equipment_Cycle (0, NULL) EC
        WHERE
            EC.Event_Date BETWEEN '2015-05-01' AND '$hoy'
        AND EC.Event_Time = (
            SELECT
                MAX (Event_Time) AS Event_Time
            FROM
                Interlink_DFeed90.dfeed.FNTB_Equipment_Cycle (0, NULL)
            WHERE
                Equipment_Number = EC.Equipment_Number
        )
        ORDER BY Event_Date
        ";
        */
        // Mejora No.2 (Por Jorge Monjaraz)
        $sql = "\n            select EC.*,ADC.Company AS Consignee,ADC1.Company AS Shipper\n            into Interlink_archive90.dbo.Z_MS_LAST_EVENT_CONT\n            from Interlink_DFeed90.dfeed.FNTB_Equipment_Cycle ( 0,null) EC\n            LEFT JOIN Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('CONSIGN') ADC ON EC.bill_of_lading_id = ADC.Bill_Of_Lading_id\n            LEFT JOIN Interlink_DFeed90.dfeed.FNTB_AssocDocCompany ('SHIPPER') ADC1 ON EC.bill_of_lading_id = ADC1.Bill_Of_Lading_id\n            WHERE EC .Event_Date between '2015-06-01' and '{$hoy}' and EC . Event_Time = (select max( Event_Time) AS Event_Time FROM Interlink_DFeed90 .dfeed. FNTB_Equipment_Cycle ( 0,null) where Equipment_Number=EC .Equipment_Number ) ORDER BY Event_Date \n            ";
        if ($rs = odbc_exec($conn, $sql)) {
            echo "Tabla: Z_MS_LAST_EVENT_CONT [ GENERADA ] <br> {$sql} <p>";
        } else {
            echo "ERROR No se genero tabla : Z_MS_LAST_EVENT_CONT <br>";
        }
        /*
        // ----------------------------------------------------------
        // Actualizar los 20's y 40's segun tabla temporal Z_MS_20_40.
        // Nota : Se comento por que al parecer ya existe una llamada a funcion donde se actualiza lo mismo.
        // ----------------------------------------------------------
        $sql="select * from Z_MS_20_40 ";
        $dbf->query($sql);
        while( $dbf->next_record() ){
            $bl = $dbf->f('Bill_Of_Lading_Number');
            $bl = str_replace("MSCU","",$bl);
            $c20 = $dbf->f('# 20s');
            $c40 = $dbf->f('# 40s');
            // Actualizar info
            $sql2="update EXPO set C20='$c20',C40='$c40' where Bl='$bl' ";
            $db2->query($sql2);
            // echo "[ Actualizado Teus ] $bl | 20s ($c20) /40s ($c40) <br>";
        }
        */
        echo "\n        <pre>\n        Porfavor copie estas tablas desde MscLink a SION con software Navicat.\n\n        Tablas generadas :\n\n        1. Z_MS_20_40\n        2. Z_MS_BLS\n        3. Z_MS_GISCurrency\n        4. Z_MS_BL_SINDUP\n        5. Z_MS_CHARGES\n        6. Z_MS_BL_CONTE\n        7. Z_MS_LOG\n        8. Z_MS_Exchange_Rate\n        9. Z_MS_BL_CREATED\n        10. Z_MS_BL_EDIWIZARD\n\n        </pre>\n        ";
    }
}
Exemple #7
0
    $user = mysql_real_escape_string($_POST['Usuario']);
    $pass = mysql_real_escape_string($_POST['Contrasena']);
    $co = "SELECT * FROM usuarios WHERE usuario='" . $user . "' AND contrasena='" . md5($pass) . "'";
    #$co = "SELECT * FROM Usuarios WHERE Usuario='".$user."' AND Contrasena='".$pass."'";
    $ok = mysql_num_rows(mysql_query($co));
    if ($ok) {
        $datos = mysql_fetch_object(mysql_query($co));
        # ESTABLECEMOS VARIABLES DE SESION PARA RECONOCER AL ADMINISTRADOR Y PERMISOS
        $_SESSION['IdUsuario'] = $datos->idUsuario;
        $_SESSION['Usuario'] = $datos->Usuario;
        $_SESSION['Nombre'] = $datos->Nombre;
        $_SESSION['Privilegio'] = $datos->Privilegio;
        $_SESSION['rol'] = $datos->rol;
        $_SESSION['idcontratista'] = $datos->idcontratista;
        $_SESSION['orden'] = $datos->orden;
        mysql_query("UPDATE Usuarios SET ultimaip='" . $_SERVER['REMOTE_ADDR'] . "',ultimafecha='" . getFecha() . "',ultimahora='" . getHora() . "' WHERE idUsuario='" . $datos->idUsuario . "'");
        echo "<script>top.location.href='Principal.php'</script>";
    } else {
        $err = "Usuario o contrase&ntilde;a incorrecta";
    }
}
?>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1">
  
  
<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery-ui-1.10.4.custom.min.js"></script>

<link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.min.css">
function addServicioDetalle($data)
{
    $dbPg = pgSql_db();
    $sql2 = utf8_encode("INSERT INTO gis_servicio_detalle(\n            id_servicio, url, descripcion, telefono, texto4, \n            texto5, fecha_registro)\n    VALUES ('" . $data[0] . "', '" . $data[1] . "', '" . $data[2] . "', '" . $data[3] . "', '" . $data[4] . "', \n            '" . $data[5] . "', '" . getFecha() . "')");
    $rs2 = pg_query($dbPg, $sql2);
    pg_close($dbPg);
}
Exemple #9
0
function calcularDemoraD($idCalculo, $fechaVacio = "", $tipoCalculo, $libDias = "")
{
    global $dbf, $mscIdUsuario, $hoy;
    // Traemos informacion del registro y se arma un arreglo data.
    $sql = "select id_d_cliente,id_conte,bkg_fec,tar1 ";
    $sql .= "from DET_CALCULO where id_det_calculo='{$idCalculo}'";
    $dbf->query($sql);
    while ($dbf->next_record()) {
        $idCliente = $dbf->f(id_d_cliente);
        $idConte = $dbf->f(id_conte);
        $idEquipo = getValueTable("id_equipo", "CONTENEDOR", "id_contenedor", $idConte);
        $tipoEq = getValueTable("tipo", "EQUIPO", "id_equipo", $idEquipo);
        $iniLib = $dbf->f(bkg_fec);
        $t1 = $dbf->f(tar1);
    }
    // VALIDAR FECHA-CORTE
    // Si la fecha de corte es menor a la fecha de ini.demora
    // no debera realizar calculos.
    $flgErrFV = 0;
    if (!empty($fechaVacio)) {
        // Timstamp para Fecha de vacio
        $fvDia = getFecha($fechaVacio, 'dia');
        $fvMes = getFecha($fechaVacio, 'mes');
        $fvAno = getFecha($fechaVacio, 'ano');
        $mFV = mktime(0, 0, 0, $fvMes, $fvDia, $fvAno);
        // Timestamp para inicio dias libres
        $ilDia = getFecha($iniLib, 'dia');
        $ilMes = getFecha($iniLib, 'mes');
        $ilAno = getFecha($iniLib, 'ano');
        $mIL = mktime(0, 0, 0, $ilMes, $ilDia, $ilAno);
        if ($mFV < $mIL) {
            $flgErrFV = 1;
        }
    }
    // Si la bandera $flErrFV == 0 es que esta ok y procede a calcular.
    if ($flgErrFV == 0) {
        // Si el usuario no ha aplicado cambios manualmente con los dias libres,
        // el sistema debe reconocer los dias libres.
        if (empty($libDias)) {
            // Pendiente ver si meto las fechas de los acuerdos como paramentros p la funcion.
            if ($tipoEq == "S") {
                $libDias = getValueTable("lib_sec", "DET_DIAS_NORMAL", "id_det_dias_normal", 1);
            } else {
                $libDias = getValueTable("lib_ref", "DET_DIAS_NORMAL", "id_det_dias_normal", 1);
            }
        }
        // Conocer la tarifa
        // $t1 = getValueTable ( "tarifa1", "D_TARIFA_NORMAL3", "id_equipo", $idEquipo );
        // $t2 = getValueTable ( "tarifa2", "D_TARIFA_NORMAL3", "id_equipo", $idEquipo );
        //--------------------------------------------------------------
        // DIAS DE DEMORAS
        // Conocer los dias de demora.
        // -------------------------------------------------------------
        $iniLibDia = getFecha($iniLib, dia);
        $iniLibMes = getFecha($iniLib, mes);
        $iniLibAno = getFecha($iniLib, ano);
        $mktLibF1 = mktime(0, 0, 0, $iniLibMes, $iniLibDia, $iniLibAno);
        $libF1 = date("Y-m-d", $mktLibF1);
        //echo "------------------------------------<br>";
        $mktLibF2 = mktime(0, 0, 0, $iniLibMes, $iniLibDia + ($libDias - 0), $iniLibAno);
        $libF2 = date("Y-m-d", $mktLibF2);
        //echo "fechaVacio: $fechaVacio <br>";
        $vacioMes = getFecha($fechaVacio, mes);
        $vacioDia = getFecha($fechaVacio, dia);
        $vacioAno = getFecha($fechaVacio, ano);
        //echo "$vacioAno / $vacioMes / $vacioDia <br>";
        $mkVacio = mktime(0, 0, 0, $vacioMes, $vacioDia, $vacioAno);
        $vacio = date("Y-m-d", $mkVacio);
        $diasDemora = totalDias($mktLibF2, $mkVacio);
        if ($diasDemora < 0) {
            $diasDemora = 0;
        }
        // -----------------------------------------------
        // Actualizar registro
        // -----------------------------------------------
        $sql = "update DET_CALCULO set ";
        $sql .= "libre_dias='{$libDias}',";
        //$sql.="dias_etapa1='$diasEtapa1',dias_etapa2='$diasEtapa2',";
        $sql .= "tar1='{$t1}',";
        $sql .= "f_corte='{$fechaVacio}',";
        $sql .= "dias_demora='{$diasDemora}',";
        $sql .= "id_usr='******',f_captura='{$hoy}' ";
        $sql .= "where id_det_calculo='{$idCalculo}'";
        $dbf->query($sql);
    }
}
Exemple #10
0
cotizaciones/mis_cotizaciones">
						<div class="pull-left">
							<img src="<?php 
    echo base_url();
    ?>
Images/users/<?php 
    echo $row['emp_imagen'];
    ?>
" with='40' height='40' class="img-circle" alt="User Image"/>
						</div>
						<h4>
							<?php 
    echo $row['nombres'];
    ?>
							<small><i class="fa fa-clock-o"></i> <?php 
    echo xfecha(getFecha(), $row['cot_fecha']);
    ?>
 </small>
						</h4>
						<p><?php 
    echo $row['cot_asunto'];
    ?>
</p>
					</a>
				</li><!-- end message -->
			<?php 
}
?>
		</ul>
	</li>
	<li class="footer"><a href="<?php 
function exchangeRate($cur, $eta, $monto)
{
    global $db2;
    if ($monto > 0) {
        //$dsn = "Driver={SQL Server};Server=$linkSrv;Database=$linkDB;Integrated Security=SSPI;Persist Security Info=False;";
        //$conn2 = odbc_connect($dsn, $linkUsr, $linkPass);
        $rateNoUSD = 0;
        $rateUSD = 0;
        // Consultar RATE segun ETA
        // Z_Exchange_Rate_Type_id='1' : Esto es OANDA
        if ($cur == 'USD') {
            $tlUSD = $monto;
            return $tlUSD;
        } elseif ($cur == 'MXN') {
            // Objetivo: Dolarizar la cantidad.
            $sql2 = "\n            select R.Rate as Rate\n            from Z_Exchange_Rate R\n            inner join Z_GISCurrency C  on R.Currency_id=C.Currency_id\n            WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='USD' and R.Exchange_Rate_Type_id='1'\n            ";
            $db2->query($sql2);
            while ($db2->next_record()) {
                $rateUSD = $db2->f('Rate');
            }
            $tlUSD = $monto / $rateUSD;
            return $tlUSD;
        } else {
            // Se debe comprobar si la moneda existe en el dia como la ETA, en caso de que no exista
            // nos tenemos que regresar dos día a la ETA.
            $sql2 = "\n            select R.Rate as Rate\n            from Z_Exchange_Rate R\n            inner join Z_GISCurrency C  on R.Currency_id=C.Currency_id\n            WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n            ";
            $db2->query($sql2);
            $nr2 = $db2->num_rows();
            if ($nr2 == 0 || empty($nr2)) {
                // Regresar dos dias a la ETA
                // ETA a segundos
                $etaMes = getFecha($eta, 'mes');
                $etaDia = getFecha($eta, 'dia');
                $etaAno = getFecha($eta, 'ano');
                $etaSeg = mktime(0, 0, 0, $etaMes, $etaDia, $etaAno);
                $segDia = 172800;
                // 2 dias
                $etaRSeg = $etaSeg - $segDia;
                $eta = date("Y-m-d", $etaRSeg);
                $sql2 = "\n                select R.Rate as Rate\n                from Z_Exchange_Rate R\n                inner join Z_GISCurrency C  on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n                ";
                $db2->query($sql2);
                $nr2 = $db2->num_rows();
            }
            if ($nr2 > 0) {
                $rateNoUSD = 0;
                $sql2 = "\n                select R.Rate as Rate\n                from Z_Exchange_Rate R\n                inner join Z_GISCurrency C  on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n                ";
                $db2->query($sql2);
                while ($db2->next_record()) {
                    $rateNoUSD = $db2->f('Rate');
                }
                $sql2 = "\n                select R.Rate as Rate\n                from Z_Exchange_Rate R\n                inner join Z_GISCurrency C  on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='USD'  and R.Exchange_Rate_Type_id='1'\n                ";
                $db2->query($sql2);
                while ($db2->next_record()) {
                    $rateUSD = $db2->f('Rate');
                }
                // Realizar conversion a Dolares
                if ($rateNoUSD > 0 && $rateUSD > 0) {
                    $tlUSD = $monto * $rateNoUSD / $rateUSD;
                    return $tlUSD;
                } else {
                    return -1;
                }
            } else {
                return -1;
            }
        }
    } else {
        return 0;
    }
}
Exemple #12
0
function existMCI($bl, $op = '')
{
    // Esta funcion comprueba si existe un Manifest Corrector de Importacion
    // en el modulo de documentacion. Pero solo comprueba los
    // MC que cambian en el flete (Freight).
    //
    // Comparar la fecha del corrector con la fecha de envio
    // de la credit note inicial.
    // Si es mayor la fecha del corrector debe regresar E (extemporaneo)
    // quiere decir que llego despues el corrector de la CNI (credit note inicial).
    // De lo contrario regresa N (normal).
    // Si no hay corrector, no regresa nada.
    //
    // La $op es para saber contra que tipo de CNI o CNP va a comparar.
    global $dbf;
    $bl = trim($bl);
    $idBl = getValueTable("Id_expo", "EXPO", "Bl", $bl);
    if ($idBl > 0) {
        $idBlCN = getValueTable("id_bl", "CN_BL", "bl", $bl);
        // --- DATOS CNI ---
        $idBarco = getValueTable("id_barco", "CN_BL", "bl", $bl);
        // Fecha de envio de la CNI.
        $feCNI = getValueTable("f_envio", "CN", "id_barco", $idBarco);
        // --- DATOS CNP ---
        $idCNP = getValueTable("id_cn_pos", "CN_AJUSTE_P", "id_bl", $idBlCN);
        //$idBarco= getValueTable("id_barco","CN_BL","bl",$bl);
        // Fecha de envio de la CNI.
        $feCNP = getValueTable("f_envio", "CN_POS_IMPO", "id_cn_pos", $idCNP);
        if ($op == "CNI") {
            $fecEnvio = $feCNI;
        } elseif ($op == "CNP") {
            $fecEnvio = $feCNP;
        } else {
            $fecEnvio = '0000-00-00';
        }
        // Fecha de captura del MC.
        $sql = "select max(f_captura) as f_captura from MC_I where id_bl='{$idBl}' and mc_flete='1' and cancelo='0'";
        $dbf->query($sql);
        while ($dbf->next_record()) {
            $feMC = $dbf->f(f_captura);
            if (!empty($feMC)) {
                // Si existe una MC, mandara una respuesta para
                // que sea marcado con un color el registro.
                $feMM = getFecha($fecEnvio, 'mes');
                $feDD = getFecha($fecEnvio, 'dia');
                $feYY = getFecha($fecEnvio, 'ano');
                $fEnv = mktime('0', '0', '0', $feMM, $feDD, $feYY);
                $fdMM = getFecha($feMC, 'mes');
                $fdDD = getFecha($feMC, 'dia');
                $fdYY = getFecha($feMC, 'ano');
                $fMC = mktime('0', '0', '0', $fdMM, $fdDD, $fdYY);
                if ($fEnv != -1 && $fMC != -1) {
                    if ($fMC >= $fEnv && $fecEnvio != '0000-00-00') {
                        return 'E';
                    } else {
                        return 'N';
                    }
                } else {
                    return 'N';
                }
            }
        }
    }
}
Exemple #13
0
function exchangeRate($cur, $eta, $monto)
{
    global $linkSrv, $linkDB, $linkUsr, $linkPass, $conn2;
    if ($monto > 0) {
        //$dsn = "Driver={SQL Server};Server=$linkSrv;Database=$linkDB;Integrated Security=SSPI;Persist Security Info=False;";
        //$conn2 = odbc_connect($dsn, $linkUsr, $linkPass);
        $rateNoUSD = 0;
        $rateUSD = 0;
        // Consultar RATE segun ETA
        // Exchange_Rate_Type_id='1' : Esto es OANDA
        if ($cur == 'USD') {
            $tlUSD = $monto;
            return $tlUSD;
        } elseif ($cur == 'MXN') {
            // Objetivo: Dolarizar la cantidad.
            $sql2 = "\n            select R.Rate as Rate\n            from interlink_main90.dbo.Exchange_Rate R (NOLOCK)\n            inner join interlink_main90.dbo.GISCurrency C (NOLOCK) on R.Currency_id=C.Currency_id\n            WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='USD' and R.Exchange_Rate_Type_id='1'\n            ";
            echo "<br>{$sql2}<br>";
            $rs2 = odbc_exec($conn2, $sql2);
            unset($myrow);
            while ($myrow = odbc_fetch_array($rs2)) {
                $rateUSD = $myrow['Rate'];
            }
            $tlUSD = $monto / $rateUSD;
            return $tlUSD;
        } else {
            // Se debe comprobar si la moneda existe en el dia como la ETA, en caso de que no exista
            // nos tenemos que regresar un día a la ETA.
            $sql2 = "\n            select R.Rate as Rate\n            from interlink_main90.dbo.Exchange_Rate R (NOLOCK)\n            inner join interlink_main90.dbo.GISCurrency C (NOLOCK) on R.Currency_id=C.Currency_id\n            WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n            ";
            $rs2 = odbc_exec($conn2, $sql2);
            $nr2 = odbc_num_rows($rs2);
            if ($nr2 == 0 || empty($nr2)) {
                // Regresar un dia a la ETA
                // ETA a segundos
                $etaMes = getFecha($eta, 'mes');
                $etaDia = getFecha($eta, 'dia');
                $etaAno = getFecha($eta, 'ano');
                $etaSeg = mktime(0, 0, 0, $etaMes, $etaDia, $etaAno);
                $segDia = 172800;
                // 2 dias
                $etaRSeg = $etaSeg - $segDia;
                $eta = date("Y-m-d", $etaRSeg);
                $sql2 = "\n                select R.Rate as Rate\n                from interlink_main90.dbo.Exchange_Rate R (NOLOCK)\n                inner join interlink_main90.dbo.GISCurrency C (NOLOCK) on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n                ";
                $rs2 = odbc_exec($conn2, $sql2);
                $nr2 = odbc_num_rows($rs2);
            }
            if ($nr2 > 0) {
                $sql2 = "\n                select R.Rate as Rate\n                from interlink_main90.dbo.Exchange_Rate R (NOLOCK)\n                inner join interlink_main90.dbo.GISCurrency C (NOLOCK) on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='{$cur}' and R.Exchange_Rate_Type_id='1'\n                ";
                // echo "<br>$sql2<br>";
                $rs2 = odbc_exec($conn2, $sql2);
                unset($myrow);
                while ($myrow = odbc_fetch_array($rs2)) {
                    $rateNoUSD = $myrow['Rate'];
                }
                $sql2 = "\n                select R.Rate as Rate\n                from interlink_main90.dbo.Exchange_Rate R (NOLOCK)\n                inner join interlink_main90.dbo.GISCurrency C (NOLOCK) on R.Currency_id=C.Currency_id\n                WHERE '{$eta}'  between R.Date_From  and R.Date_To and ISO_Code='USD'  and R.Exchange_Rate_Type_id='1'\n                ";
                $rs2 = odbc_exec($conn2, $sql2);
                unset($myrow);
                while ($myrow = odbc_fetch_array($rs2)) {
                    $rateUSD = $myrow['Rate'];
                }
                // Realizar conversion a Dolares
                if ($rateNoUSD > 0 && $rateUSD > 0) {
                    $tlUSD = $monto * $rateNoUSD / $rateUSD;
                    return $tlUSD;
                } else {
                    //odbc_close($conn2);
                    return -1;
                }
            } else {
                //odbc_close($conn2);
                return -1;
            }
        }
    } else {
        return 0;
    }
}
Exemple #14
0
     }
 } elseif ($_REQUEST['tipo'] == 4) {
     $datos = getServicioExtend($_REQUEST['id'], $_REQUEST['lati'], $_REQUEST['lats'], $_REQUEST['lond'], $_REQUEST['loni']);
     if (count($datos) > 0) {
         foreach ($datos as $i => $dat) {
             $dir = $dat[3] . " " . $dat[4];
             $texto = "<div class=titulo>" . strtoupper($dat[10]) . "</div>";
             $texto .= "<div class=titulo_pop2>" . ucwords($dat[9]) . "</div>";
             $texto .= "<div class=titulo_pop3>" . ucwords($dir) . "</div>";
             if (trim($dat[11]) != "") {
                 $texto .= "<div class=titulo_pop_descrip>" . ucwords($dat[11]) . "</div>";
             }
             $texto .= "<div class=titulo_pop3>" . ucwords($dat[5]) . "</div>";
             if ($dat[0] == 32) {
                 $fec = getFechaLibre(15);
                 $fecha = getFecha();
                 $detalle1 = getDetalleServ(" and id_servicio=" . $dat[12] . " and texto4='1' and fecha_registro >='" . $fec . "' order by fecha_registro desc limit 1");
                 //dinero
                 $detalle2 = getDetalleServ(" and id_servicio=" . $dat[12] . " and texto4='2' and fecha_registro >='" . $fec . "'  order by fecha_registro desc limit 1");
                 //habilitado
                 if (count($detalle1) == 0) {
                     $est_d = "No hay registro";
                 } else {
                     $tiempo = segundos($detalle1[0][7], $fecha);
                     if ($tiempo / 60 < 60) {
                         $txt_mini = "Hace " . $tiempo / 60 . " min";
                     } else {
                         $tot = $tiempo / 60;
                         $tot = round($tot / 60, 2);
                         $txt_mini = "Hace " . $tot . " hrs";
                     }
Exemple #15
0
        getRadio();
        break;
    case "element-dropdown":
        getDropdown();
        break;
    case "element-table":
        getTable();
        break;
    case "element-section-break":
        getSectionBreak();
        break;
    case "element-option":
        getOpcion();
        break;
    case "element-date":
        getFecha();
        break;
    case "element-time":
        getHora();
        break;
    case "element-link":
        getLink();
        break;
}
function getInputText()
{
    $msj = '<div class="formato form-group ui-state-default ">' . '<label >Título del campo de texto</label>' . '<input id="untitled" name="untitled" type="text" length="30" pattern="[0-9a-zA-ZñÑáÁéÉíÍóÓúÚüÜ,.-/ \\s]{1,30}" title="Digite sólo letras" disabled/>' . '</div>';
    echo $msj;
}
function getInputNumber()
{
Exemple #16
0
 function reporteI($data)
 {
     global $db, $db2, $db3, $hoy, $sesIdOficina;
     // ----------------------------------------------------------------------------
     // REPORTE DE INVENTARIO_PROC
     // ----------------------------------------------------------------------------
     // 1. Se crean registros en tabla INVENTARIO_PROC donde se eliminan los duplicados.
     // 2. Es importante dejar esta opcion en el query de consulta :
     // --> e.cap_fec desc <----
     // El primer registro con fecha mayor sera el que pasar a la tabla INVENTARIO_PROC
     // ----------------------------------------------------------------------------
     // Limpiar inventario.
     $sql = "truncate INVENTARIO_PROC ";
     $db->query($sql);
     $sesIdUsuario = $_SESSION[sesIdUsuario];
     $fec1 = $data[fec1];
     $fec2 = $data[fec2];
     $tipoRep = $data[tipoRep];
     $sepa = $data[sepa];
     $idNaviera = $data[idNaviera];
     // Se crea el archivo
     $archivo = "../files/Inventario.csv";
     $fp = fopen("{$archivo}", "w");
     // Encabezado
     $oficina = getValueTable("oficina", "OFICINA", "id_oficina", $sesIdOficina);
     $oficina = strtoupper($oficina);
     $enc = "{$oficina}\n";
     fputs($fp, $enc);
     $enc = "REPORTE DE INVENTARIO_PROC \n";
     fputs($fp, $enc);
     $enc = "MODULO : INVENTARIO_PROC \n";
     fputs($fp, $enc);
     $enc = "F.EMISION: {$hoy} \n\n";
     fputs($fp, $enc);
     // -----------------------------------
     // COLUMNAS
     // -----------------------------------
     $enc = "No." . $sepa . "Naviera" . $sepa . "Contenedor" . $sepa . "Size" . $sepa . "Tipo" . $sepa;
     $enc .= "Status" . $sepa . "Calidad" . $sepa . "F.Entrada" . $sepa;
     $enc .= "Nota" . $sepa . "Reforzado" . $sepa . "Dias-Trans" . $sepa . "Bloque" . $sepa . "Bahia" . $sepa . "Nivel" . $sepa;
     $enc .= "\n";
     fputs($fp, $enc);
     // -----------------------------------
     // DATOS
     // -----------------------------------
     // Consultar el status "ent_sal" en la tabla de CONTENEDOR, ya que este indica el status
     // actual en que esta ese contenedor sea una Entrada o Salida.
     // Si si status es Entrada entonces grabarlo a la tabla INVENTARIO_PROC y asi poder validar
     // los registros duplicados.
     // Al final se consulta la tabla INVENTARIO_PROC y estos son los contenedores que nos indican
     // que en realidad esta fisicamente en PATIO.
     $sql = "select e.id_naviera as ID_NAVIERA, e.id_contenedor as ID_CONTE, c.numero as CONTE, q.equipo as EQUIPO, ";
     $sql .= "e.damage as DAMAGE,e.clase as CLASE, e.cap_fec as CAP_FEC,";
     $sql .= "e.nota as NOTA, e.reforzado as REFORZADO, e.bloque as BLO, e.bahia as BAH, e.nivel as NIV ";
     $sql .= "from INVENTARIO e, CONTENEDOR c, EQUIPO q where ";
     if ($idNaviera != '-') {
         $sql .= "id_naviera='{$idNaviera}' and e.id_oficina='{$sesIdOficina}' and ";
     }
     $sql .= "e.id_contenedor=c.id_contenedor and c.id_equipo=q.id_equipo and ";
     $sql .= "c.ent_sal<>'S' and st_reg<>'B' and e.ent_sal='E' ";
     $sql .= " order by e.id_naviera,e.cap_fec desc ";
     $db->query($sql);
     while ($db->next_record()) {
         // Reconocer los campos para el Inventario.
         $idNav = $db->f(ID_NAVIERA);
         $idConte = $db->f(ID_CONTE);
         $equipo = $db->f(EQUIPO);
         $equipo1 = substr($equipo, 0, 2);
         $equipo2 = substr($equipo, 2, 3);
         $damage = $db->f(DAMAGE);
         $clase = $db->f(CLASE);
         $capFec = $db->f(CAP_FEC);
         $nota = $db->f(NOTA);
         $reforzado = $db->f(REFORZADO);
         $bloque = $db->f(BLO);
         $bahia = $db->f(BAH);
         $nivel = $db->f(NIV);
         // GRABAR AL INVENTARIO_PROC REGISTROS NO DUPLICADOS
         // ---------------------------------------------
         // comprobar que no exista el registro en el Inventario,
         // si existe el registro, entonces esta duplicado el registro.
         $sql2 = "select id_inventario_proc from INVENTARIO_PROC where ";
         $sql2 .= "id_contenedor='{$idConte}' and id_naviera='{$idNav}'";
         $db2->query($sql2);
         $nr2 = $db2->num_rows();
         if ($nr2 == 0) {
             // Entonces grabar sin duplicados.
             $sql3 = "insert into INVENTARIO_PROC (";
             $sql3 .= "cap_fec,id_contenedor,id_naviera,equipo1,equipo2,damage,clase,nota,reforzado,";
             $sql3 .= "bloque,bahia,nivel,id_oficina";
             $sql3 .= ") values (";
             $sql3 .= "'{$capFec}','{$idConte}','{$idNav}','{$equipo1}','{$equipo2}','{$damage}','{$clase}','{$nota}','{$reforzado}',";
             $sql3 .= "'{$bloque}','{$bahia}','{$nivel}','{$sesIdOficina}'";
             $sql3 .= ")";
             $db3->query($sql3);
         }
     }
     // ---------------------------------------------------------
     // CONSULTAR INVENTARIO_PROC
     // ---------------------------------------------------------
     $lin = 1;
     $sql = "select * from INVENTARIO_PROC where id_oficina='{$sesIdOficina}' order by id_naviera,cap_fec";
     $db->query($sql);
     while ($db->next_record()) {
         // Calcular los dias en el Patio.
         $capFec = $db->f(cap_fec);
         $capFecM = getFecha($capFec, 'mes');
         $capFecD = getFecha($capFec, 'dia');
         $capFecA = getFecha($capFec, 'ano');
         $hoyM = date('m');
         $hoyD = date('d');
         $hoyA = date('Y');
         $capFecMK = mktime(0, 0, 0, $capFecM, $capFecD, $capFecA);
         $hoyMK = mktime(0, 0, 0, $hoyM, $hoyD, $hoyA);
         $diasTrans = totalDias($capFecMK, $hoyMK);
         $idConte = $db->f(id_contenedor);
         $conte = getValueTable("numero", "CONTENEDOR", "id_contenedor", $idConte);
         $idNaviera = $db->f(id_naviera);
         $naviera = getValueTable("naviera", "NAVIERA", "id_naviera", $idNaviera);
         $equipo1 = $db->f(equipo1);
         $equipo2 = $db->f(equipo2);
         $damage = $db->f(damage);
         $clase = $db->f(clase);
         $nota = $db->f(nota);
         $reforzado = $db->f(reforzado);
         $bloque = $db->f(bloque);
         $bahia = $db->f(bahia);
         $nivel = $db->f(nivel);
         $nota = str_replace("\n", "", $nota);
         $nota = str_replace("\r", "", $nota);
         // Escribiendo al archivo.
         $row = $lin . $sepa . $naviera . $sepa . $conte . $sepa . $equipo1 . $sepa . $equipo2 . $sepa . $damage . $sepa;
         $row .= $clase . $sepa . $capFec . $sepa . $nota . $sepa . $reforzado . $sepa . $diasTrans . $sepa;
         $row .= $bloque . $sepa . $bahia . $sepa . $nivel . $sepa;
         $row .= "\n";
         fputs($fp, $row);
         $lin++;
     }
     fclose($fp);
     // -----------------------------
     // SALVAR COMO... O ABRIR EN AUTO.
     // (No modificar)
     // -----------------------------
     if (file_exists("{$archivo}")) {
         header('Content-Description: File Transfer');
         header('Content-Type: application/octet-stream');
         header('Content-Disposition: attachment; filename=' . basename($archivo));
         header('Content-Transfer-Encoding: binary');
         header('Expires: 0');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Pragma: public');
         header('Content-Length: ' . filesize($archivo));
         ob_clean();
         flush();
         readfile("{$archivo}");
         exit;
     }
 }
<?php

header("content-type: application/x-javascript");
include '../conectar.php';
@session_start();
$idcred = $_POST['idcred'];
$nombre = $_POST['nombre'];
$concepto = $_POST['concepto'];
$secretaria = $_POST['secretaria'];
$costo = $_POST['costo'];
$descuento = $_POST['descuento'];
mysql_query("INSERT INTO registrosc (\r\n\t\t\t\t\t\t\tidcred,\r\n\t\t\t\t\t\t\tfecha,\r\n\t\t\t\t\t\t\tnombre,\r\n\t\t\t\t\t\t\tconcepto,\r\n\t\t\t\t\t\t\tsecretaria,\r\n\t\t\t\t\t\t\tcosto,\r\n\t\t\t\t\t\t\tdescuento\r\n\t\t\t\t\t\t) \r\n\t\t\t\t\t\tVALUES (\r\n\t\t\t\t\t\t\t'" . $idcred . "',\r\n\t\t\t\t\t\t\t'" . getFecha() . "',\r\n\t\t\t\t\t\t\t'" . $nombre . "',\r\n\t\t\t\t\t\t\t'" . $concepto . "',\r\n\t\t\t\t\t\t\t'" . $secretaria . "',\r\n\t\t\t\t\t\t\t'" . $costo . "',\r\n\t\t\t\t\t\t\t'" . $descuento . "')");