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); } }
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'; }
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>';
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; }
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 "; } }
$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ñ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); }
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); } }
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; } }
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'; } } } } }
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; } }
} } 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"; }
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() {
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 . "')");