Beispiel #1
0
 function get_db_value($sql = '', $default = '')
 {
     $this->connect_to_db();
     $this->enable_data = FALSE;
     $sql = trim($sql);
     if (mb_strlen($sql) > 0) {
         $this->set_sql($sql);
     }
     $this->db->query($this->sql);
     $this->after_query();
     if ($this->db->next_record()) {
         $this->enable_data = TRUE;
         return $this->db->f(0);
     } else {
         return $default;
     }
 }
Beispiel #2
0
$linkSrv = "10.100.131.78";
$linkDB = "Interlink_Main90";
$info = array('Database' => $linkDB, 'UID' => $linkUsr, 'PWD' => $linkPass);
// -------------------------------------------------------------------------------
// ODBC
// El sistema se trata de conectar mediante ODBC nativo a la base de datos MscLink
// -------------------------------------------------------------------------------
$dsn = "Driver={SQL Server};Server={$linkSrv};Database={$linkDB};Integrated Security=SSPI;Persist Security Info=False;";
// Se realiza la conex�n con los datos especificados anteriormente
$conn = odbc_connect($dsn, $linkUsr, $linkPass);
// ---------------------------------------------------------------------------------------
if ($_POST['modo'] == "ok") {
    $salesExe = "";
    $sql = "select * from Z_MS_POLPOD";
    $db->query($sql);
    while ($db->next_record()) {
        $POLUN = "";
        $PODUN = "";
        //$id = $db->f('id');
        $bl = $db->f('Bill_Of_Lading_Number');
        $bl = str_replace("MSCU", "", $bl);
        $POLUN = $db->f('POLUN');
        $PODUN = $db->f('PODUN');
        $sql2 = "\n    update EXPO \n    set Loading='{$POLUN}', Discharge='{$PODUN}'\n    WHERE Bl='{$bl}'";
        $db2->query($sql2);
        echo "{$bl} [Actualizado] <br>";
    }
}
?>

Beispiel #3
0
function getValueTable($campo, $tabla, $idTabla, $idEnviado)
{
    // Extrae solo info de SION
    global $sionSrv, $sionDB;
    /*
     * @return Info de un campo especifico
     * @param string $campo
     * @param string $tabla
     * @param string $idTabla
     * @param string $idEnviado
     * @desc Esta funcion sirve para traer informacion de x campo de cualquier tabla.
     */
    $dbf = new DB_Sql();
    $dbf->connect($sionDB, $sionSrv, "root", "");
    $sql = "select {$campo} from {$tabla} where {$idTabla}='{$idEnviado}'";
    $dbf->query($sql);
    while ($dbf->next_record()) {
        $valor = $dbf->f($campo);
        return $valor;
        // No mover el return, podria ser peligroso!.
    }
}
Beispiel #4
0
function updateCGAGpo($idGrupo, $forzarMov = 0)
{
    $db = new DB_Sql();
    $db->connect("MscCobranza", "localhost", "root", "");
    $db2 = new DB_Sql();
    $db2->connect("MscCobranza", "localhost", "root", "");
    $db3 = new DB_Sql();
    $db3->connect("MscCobranza", "localhost", "root", "");
    //echo "Gpo:$idGrupo || forzaMov:$forzarMov <br>";
    // ---------------------------------
    // PROCESO PARA ACTUALIZAR LAS C.G.A
    // ---------------------------------
    $ano = date("Y");
    $anoAnt = $ano - 1;
    $grupo = getValueTable("grupo", "D_GRUPO", "id_grupo", $idGrupo);
    $cgaAct = getValueTable("cga", "D_GRUPO", "id_grupo", $idGrupo);
    $cgaOld = getValueTable("cga_old", "D_GRUPO", "id_grupo", $idGrupo);
    // * DETECTAR REGISTROS DEL CLIENTE
    $sql2 = "select a.id_calculo as IDCALCULO, a.carta_g as CGACAL, a.id_bl_conte as IDBLCONTE ";
    $sql2 .= "from D_CALCULO a, D_CLIENTE b ";
    $sql2 .= "where ";
    $sql2 .= "a.id_cliente=b.id_cliente and b.id_grupo='{$idGrupo}' and ";
    if ($forzarMov == '0') {
        $sql2 .= "a.carta_g='' and ";
    }
    $sql2 .= "(libre_f1 BETWEEN '{$anoAnt}-01-01' and '{$ano}-12-31%' )";
    $db2->query($sql2);
    while ($db2->next_record()) {
        $idCalculo = $db2->f(IDCALCULO);
        //echo "idCalculo=$idCalculo <br>";
        $idBlConte = $db2->f(IDBLCONTE);
        $cgaCal = $db2->f(CGACAL);
        $idBl = getValueTable("id_bl", "BL_CONTE", "id_bl_conte", $idBlConte);
        $bl = getValueTable("Bl", "EXPO", "Id_expo", $idBl);
        $idBarco = getValueTable("Id_barco", "EXPO", "Id_expo", $idBl);
        $eta = getValueTable("Eta1", "BARCO", "Id_barco", $idBarco);
        if (preg_match("/^(\\d{4})/i", $eta, $parts)) {
            $etaAno = $parts[1];
        }
        // * CGA - ACTUAL
        if (!empty($cgaAct) && (empty($cgaCal) || $forzarMov == 1)) {
            if (preg_match("/CGA {$etaAno}/i", $cgaAct)) {
                $sql3 = "update D_CALCULO set carta_g='{$cgaAct}' where id_calculo='{$idCalculo}'";
                $db3->query($sql3);
                //echo "$bl [CGA - Actualizada]...<br>";
            }
        }
        // * CGA - ANTERIOR
        if (!empty($cgaOld) && (empty($cgaCal) || $forzarMov == 1)) {
            if (preg_match("/CGA {$etaAno}/i", $cgaOld)) {
                $sql3 = "update D_CALCULO set carta_g='{$cgaOld}' where id_calculo='{$idCalculo}'";
                $db3->query($sql3);
                //echo "$bl [CGA - Actualizada]...<br>";
            }
        }
    }
}
Beispiel #5
0
function addContenedor($bl)
{
    global $serverName, $db, $usuario, $pass;
    $dbf = new DB_Sql();
    $dbf->connect("MscCobranza", "10.110.13.13", "root", "");
    $dsn = "Driver={SQL Server};Server={$serverName};Database={$db};Integrated Security=SSPI;Persist Security Info=False;";
    $conn2 = odbc_connect($dsn, $usuario, $pass);
    $blSION = str_replace("MSCU", "", $bl);
    // Consultar los contenedores y despues agregarlos al SION.
    $sql = "\n    SELECT DISTINCT\n\tCH.Container_Number as CONTE,\n\tC.EQ_Type AS EQUIPO,\n\tC.Shipper_Owned AS SOC\n    FROM\n        Interlink_DFeed90.dfeed.FNTB_Bill_Of_Lading (1, NULL) BL\n    INNER JOIN Interlink_DFeed90.dfeed.FNTB_Charge (1, NULL) CH ON BL.Bill_of_Lading_id = CH.Bill_Of_Lading_id\n    INNER JOIN Interlink_DFeed90.dfeed.FNTB_BOLREP_Container () C ON CH.Container_Number = C.Container_Number\n    WHERE\n        BL.Include_In_Manifest_And_DTX = '1'\n    AND CH.Container_Number <> ''\n    AND BL.Bill_Of_Lading_Number='{$bl}'\n    ";
    $rsf = odbc_exec($conn2, $sql);
    while (odbc_fetch_row($rsf)) {
        $conte = odbc_result($rsf, "CONTE");
        $equipo = odbc_result($rsf, "EQUIPO");
        $soc = odbc_result($rsf, "SOC");
        // Detectar el Equipo en SION.
        $sql2 = "select id_equipo from EQUIPO where equipo_link='{$equipo}' ";
        $dbf->query($sql2);
        while ($dbf->next_record()) {
            $idEquipo = $dbf->f('id_equipo');
        }
        // Comprobar si existe en el SION,
        // Si existe, entonces actualzar equipo y SOC.
        // No existe, agregar.
        $sql2 = "select id_contenedor from CONTENEDOR where numero='{$conte}' ";
        $dbf->query($sql2);
        while ($dbf->next_record()) {
            $idConte = $dbf->f('id_contenedor');
        }
        if (!empty($idConte)) {
            // Actualizar
            $sql2 = "update CONTENEDOR set id_equipo='{$idEquipo}',soc='{$soc}' where id_contenedor='{$idConte}'";
            $dbf->query($sql2);
            unset($idConte);
        } else {
            // Nuevo contenedor
            $sql2 = "insert into CONTENEDOR (";
            $sql2 .= "numero,id_equipo,soc";
            $sql2 .= ") values (";
            $sql2 .= "'{$conte}','{$idEquipo}','{$soc}'";
            $sql2 .= ")";
            $dbf->query($sql2);
        }
        $sql2 = "select id_contenedor from CONTENEDOR where numero='{$conte}' ";
        $dbf->query($sql2);
        while ($dbf->next_record()) {
            $idConte = $dbf->f('id_contenedor');
        }
        $sql2 = "select Id_expo from EXPO where Bl='{$blSION}' ";
        $dbf->query($sql2);
        while ($dbf->next_record()) {
            $idBlSion = $dbf->f('Id_expo');
        }
        if (!empty($idConte) && !empty($idBlSion)) {
            // Comprobar que no exista en SION : BL_CONTE,
            // Si no existe, entonces grabarlo en la relación bl-conte.
            $sql2 = "select id_bl_conte from BL_CONTE where id_bl='{$idBlSion}' and id_contenedor='{$idConte}' ";
            $dbf->query($sql2);
            while ($dbf->next_record()) {
                $idBlConte = $dbf->f('id_bl_conte');
            }
            if (empty($idBlConte)) {
                $sql2 = "insert into BL_CONTE (";
                $sql2 .= "id_bl,id_contenedor";
                $sql2 .= ") values (";
                $sql2 .= "'{$idBlSion}','{$idConte}'";
                $sql2 .= ")";
                $dbf->query($sql2);
                unset($idConte);
                unset($idBlSion);
                echo "[Cargado] {$bl} | {$conte} <br>\n";
            }
        }
    }
    //odbc_close($conn2);
}
function sendMail($bl, $pod)
{
    global $hoy, $sionSrv, $sionDB;
    $db = new DB_Sql();
    $db->connect($sionDB, $sionSrv, "root", "");
    $mail = new phpmailer();
    $mail->Priority = 0;
    // Se declara la prioridad del mensaje.
    // ------------------------------------------------
    // CONFIGURAR EMAIL.
    // ------------------------------------------------
    //Definimos las propiedades y llamamos a los m�todos
    //correspondientes del objeto mail
    //Con PluginDir le indicamos a la clase phpmailer donde se
    //encuentra la clase smtp que como he comentado al principio de
    //este ejemplo va a estar en el subdirectorio includes
    $mail->PluginDir = "../include/";
    $mail->Mailer = "smtp";
    // ++ EXCHANGE MSC ++
    $userName = '******';
    $linkPass = '******';
    $mail->IsSMTP();
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;
    $mail->Host = 'mail.mscgva.ch';
    // IP 193.138.73.142
    $mail->Username = $userName;
    $mail->Password = $linkPass;
    $mail->Port = 25;
    $mail->From = '*****@*****.**';
    $mail->FromName = 'Robot.SION';
    $mail->Timeout = 10;
    //El valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
    //una cuenta gratuita, por tanto lo pongo a 30
    //$mail->Timeout=10;
    $mail->Timeout = 10;
    $paisSan = getValueTable("country", "DOC_PAIS_SANCIONADO", "code", $pod);
    // --------------------
    // FORMATO HTML
    // --------------------
    $mail->Body = "\n        <html>\n        <body>\n        <center>\n        <table border=0 cellpadding=2 cellspacing=1>\n        <tr>\n        <td width=\"60\" height=\"40\" valign=top align=right><img src=\"http://148.245.13.34/nestor/images/logoMscGoldSmall.gif\"  ></td>\n        <td valign=top align=center>\n        <font size=\"4\"><b>Mediterranean Shipping Company M�xico S.A. de C.V.</b></font><br>\n        <font size=\"2\">S�lo como agentes / As agents only</font>\n        </td>\n        </tr>\n        <tr>\n        <td colspan=2><hr></td>\n        </tr>\n        </table>\n        <font size=\"4\"><b>NOTIFICACION - SANCTIONS COMPLIANCE<br>({$paisSan})</b><BR>{$bl}</font>\n        </center>\n        <p>\n\n        Estimado Ejecutivo de Ventas\n        <p>\n        El bl de referencia tiene un destino a uno de los pa�ses sancionados.\n        Por favor confirmar si el procedimiento de las pol�ticas de conformidad ha sido realizado y firmado por el Sr. Alonso Sope�a y/o el Sr. Homely Rojas\n        de lo contrario la carga no podr� ser embarcada.\n        <p>\n        En espera de sus urgentes comentarios.\n        <br>\n        Este mensaje es enviado por razones de SEGURIDAD.\n        <p>\n        <i>\n        Att. Robot SION.<br>\n        </i>\n        <p>\n        <hr>\n        <font color=\"red\" size=\"2\">\n        <i>Este es un correo de envio autom�tico por nuestro sistema SION, por favor no responda este email.</i>\n        </font>\n        <br>\n        <br>\n        <br>\n\n        </body>\n        </html>\n\n        ";
    // -------------------------------------------------------
    // FORMATO TEXTO
    // Definimos AltBody por si el destinatario del correo
    // no admite email con formato html
    // -------------------------------------------------------
    $mail->AltBody = "\n        MEDITERRANEAN SHIPPING COMPANY M�XICO\n        MSC M�xico (As Agents Only-Solo como Agentes)\n        =====================================================================\n        ";
    // Nota :
    // La direccion PARA solo se puede manejar 1.
    // Las direcciones CC puede manejar N correos.
    // -------------
    // Destinatarios
    // -------------
    $mail->ClearAddresses();
    // ------------------------------------------------
    /*
    $arrDirDestino[] ="*****@*****.**";
    foreach ( $arrDirDestino as $emailDestino ) {
    if (! empty ( $emailDestino )) {
    $mail->AddAddress ( $emailDestino );
    $emailDesTxt .= "$emailDestino,";
    }
    }
    */
    $mail->AddCC("*****@*****.**");
    // Copia Ciega
    $mail->AddBCC("*****@*****.**");
    $mail->AddBCC("*****@*****.**");
    //$mail->AddAddress("*****@*****.**");
    //if(!empty($sndCC))$mail->AddCC($sndCC);
    // -----------------------------------------
    // Subject
    //-----------------------------------------
    $sql = "select * from DOC_CTRL_EXPO ";
    $sql .= "where bl='{$bl}' ";
    $db->query($sql);
    while ($db->next_record()) {
        // -----------------------------------------
        // Comprobar q no tenga la firma BL-REVISION
        // -----------------------------------------
        $bl = $db->f(bl);
        $bkg = $db->f(bkg);
        $bkgp = $db->f(bkg_party);
        $executive = $db->f(bkg_executive);
        $exeMail1 = getValueTable("mail1", "DOC_CAT_EJE", "cod", $executive);
        $exeMail2 = getValueTable("mail2", "DOC_CAT_EJE", "cod", $executive);
        $exeMail3 = getValueTable("mail3", "DOC_CAT_EJE", "cod", $executive);
        if (!empty($exeMail1)) {
            $mail->AddAddress($exeMail1);
        }
        if (!empty($exeMail2)) {
            $mail->AddAddress($exeMail2);
        }
        if (!empty($exeMail3)) {
            $mail->AddAddress($exeMail3);
        }
        $pol = $db->f(pol);
        $pod = $db->f(pod);
        $who = $db->f(who);
        $idBarco = getValueTable("id_barco", "DOC_CTRL_EXPO", "id_bl", $idBl);
        $vessel = getValueTable("Nombre", "BARCO", "Id_barco", $idBarco);
        $voy = getValueTable("Viaje", "BARCO", "Id_barco", $idBarco);
        $eta = getValueTable("Eta1", "BARCO", "Id_barco", $idBarco);
        $vesVoy = "{$vessel} / {$voy} (<font color=maroon>{$idBarco}</font>)";
        $puerto = getValueTable("puerto", "CS_CODIGO", "codigo", $pod);
        $pais = getValueTable("pais", "CS_CODIGO", "codigo", $pod);
    }
    // VERACRUZ : MXVER
    // ALTAMIRA : MXLMR,MXATM
    // PACIFICO : MXZLO,MXMZT,MXSCX,MXLZC,MXPMS,MXGYM
    if ($pol == "MXVER") {
        $mail->AddCC("*****@*****.**");
    } elseif ($pol == "MXZLO" || $pol == "MXMZT" || $pol == "MXSCX" || $pol == "MXLZC" || $pol == "MXPMS" || $pol == "MXGYM") {
        $mail->AddCC("*****@*****.**");
    } elseif ($pol == "MXLMR" || $pol == "MXATM") {
        $mail->AddCC("*****@*****.**");
    } else {
        $mail->AddCC("*****@*****.**");
    }
    $paisSan = getValueTable("country", "DOC_PAIS_SANCIONADO", "code", $pol);
    $txtSubj = "SANCTIONS COMPLIANCE {$paisSan} / [{$who}] / {$vessel} {$voy} / MSCU{$bl} / {$bkg} / {$bkgp} / {$pol} / {$pol} / [{$who}] %0A%0A";
    $txtSubj = str_replace("&", "AND", $txtSubj);
    $mail->Subject = "{$txtSubj}";
    // Incluir Attach.
    //$mail->AddAttachment("../files/demo.txt","demo.txt");
    // Se envia el mensaje, si no ha habido problemas, la variable $exito tendra el valor true
    $exito = $mail->Send();
    /*
    // PARA INTAR REENVIARLO
    //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
    //para intentar enviar el mensaje, cada intento se hara 5 segundos despues
    //del anterior, para ello se usa la funcion sleep
    $intentos=1;
    while ((!$exito) && ($intentos < 5)) {
    sleep(5);
    $exito = $mail->Send();
    $intentos=$intentos+1;
    }
    */
    if (!$exito) {
        echo "[ <font color=red><b>Problema de envio</b></font> ] {$emailDestino} -> {$valor}" . $mail->ErrorInfo . "<br>\n";
    } else {
        echo "[ <font color=green><b>Enviado</b></font> ] <br>";
    }
}
function checkinfofull()
{
    if (isset($_SESSION['uid'])) {
        $db = new DB_Sql();
        $str = "select name,home_tel,mobile  from user where id =" . $_SESSION['uid'];
        $db->query($str);
        $db->next_record();
        $name1 = $db->value('name');
        $hometel = $db->value('home_tel');
        $mob = $db->value('mobile');
        if (strlen(trim($name1)) == 0 || strlen(trim($hometel)) == 0 && strlen(trim($mob)) == 0) {
            msg("请先完善个人信息!将您能够填写的项目全部填写完毕,再进行报名。");
            jump("adminindex.php?type=editor_personal_info");
        }
    } else {
        jump("login.php");
    }
}
Beispiel #8
0
function get_db_value($sql)
{
    global $db;
    $db_look = new DB_Sql();
    $db_look->Database = $db->Database;
    $db_look->User = $db->User;
    $db_look->Password = $db->Password;
    $db_look->Host = $db->Host;
    $db_look->query($sql);
    if ($db_look->next_record()) {
        return $db_look->f(0);
    } else {
        return "";
    }
}
Beispiel #9
0
function xmlCI($fec1 = '', $fec2 = '', $pais)
{
    // xmlCI : Customer Invoices XML interface
    // --- SION CONEXIONES ---
    switch ($pais) {
        case 'GT':
            $sionDB = "MSC_GUATEMALA";
            $sionSrv = "10.110.40.130";
            $dirPath = "../../sapXmlGT/";
            $lugarFactu = "GTXXX";
            $refer = "GT";
            $companyCode = '8500';
            break;
        case 'HN':
            $sionDB = "MSC_HONDURAS";
            $sionSrv = "10.110.50.140";
            $dirPath = "../../sapXmlHN/";
            $lugarFactu = "HNSPS";
            $refer = "HN";
            $companyCode = '7100';
            break;
        case 'SV':
            $sionDB = "MSC_SALVADOR";
            $sionSrv = "10.110.60.160";
            $dirPath = "../../sapXmlSV/";
            $lugarFactu = "SVSAL";
            $refer = "SV";
            $companyCode = '7A00';
            break;
        case 'NI':
            $sionDB = "MSC_NICARAGUA";
            $sionSrv = "10.110.0.40";
            $dirPath = "../../sapXmlNI/";
            $lugarFactu = "NIMGA";
            $refer = "NI";
            $companyCode = '8F00';
            break;
        case 'MX':
            $companyCode = '5501';
            break;
    }
    // usuario : sapuser
    // pass : mscsap
    $dbf = new DB_Sql();
    $dbf->connect($sionDB, $sionSrv, "root", "sionca2016");
    $dbf2 = new DB_Sql();
    $dbf2->connect($sionDB, $sionSrv, "root", "sionca2016");
    $dbX = new DB_Sql();
    $dbX->connect($sionDB, $sionSrv, "root", "sionca2016");
    // ---------------------------
    // CUSTOMER INVOCE INTERFACE
    // ---------------------------
    $xml = new DOMDocument('1.0', 'utf-8');
    $xml->formatOutput = true;
    $sql = "select * from FT_MSC \n\twhere femitida BETWEEN '{$fec1}' and '{$fec2}' and sap_gen_xml='1' ";
    $dbf->query($sql);
    while ($dbf->next_record()) {
        $folio = $dbf->f('folio');
        $idFactura = $dbf->f('id_factura');
        $sapCustomerNum = getCustomerNum($idFactura, $dbX);
        //echo "$idFactura <br>";
        //$codPais = getValueTable("clave_pais","INFO","id_info",1,$dbX);
        //$mdaLocal = getValueTable("mda","INFO","id_info",1,$dbX);
        // Ayuda.
        // Crear elemento: DocDom -> createElement('nombreElemento')
        // Crear Datos: DocDom -> createTextNode($datos)
        // Asociar: $Hijo = $Padre -> appendChild($hijo)
        // Creo elemento
        $ns1 = $xml->createElement('CustomerInvoices');
        //$ns1->setAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
        //$ns1->setAttribute("xmlns:ns1","urn:msc.com:msc_gva_fs:customerinvoice");
        //$ns1->setAttribute("xsi:schemaLocation","urn:msc.com:msc_gva_fs:customerinvoice CustomerInvoiceAgencies_v14.xsd");
        $ns1->setAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
        $ns1->setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
        $ns1->setAttribute("xmlns", "urn:msc.com:msc_gva_fs:customerinvoice");
        $ns1 = $xml->appendChild($ns1);
        $cus = $xml->createElement("CustomerInvoice");
        $cus = $ns1->appendChild($cus);
        // ------------------------------------
        // EXTRACCION DE DATOS
        // ------------------------------------
        $fecFactu = $dbf->f('femitida');
        $fecFactu = str_replace("-", "", $fecFactu);
        $posDate = $fecFactu;
        // Moneda
        $idMoneda = $dbf->f('moneda');
        $cur = getValueTable("moneda", "MONEDA", "id_moneda", $idMoneda, $dbX);
        $cur = strtoupper($cur);
        $traDate = $fecFactu;
        $serie = $dbf->f('serie');
        $folio = $dbf->f('folio');
        if ($serie == '-') {
            $serie = '';
        }
        $facNum = $serie . $folio;
        // codigo de cliente
        $idCli = $dbf->f('id_cliente');
        $codCli = getValueTable("codigo", "FT_CLIENTE", "id_cliente", $idCli, $dbX);
        $total = $dbf->f('total');
        // Lugar donde se origina toda la factu
        // $lugarFactu = $db->f(lugar);
        // -----------------------
        // --- HEADER ---
        // -----------------------
        $hea = $xml->createElement("Header");
        $hea = $cus->appendChild($hea);
        //$hea = $ns1->appendChild($hea);
        $comCod = $xml->createElement("CompanyCode", $companyCode);
        $comCod = $hea->appendChild($comCod);
        $DocumentType = $xml->createElement("DocumentType", "XL");
        $DocumentType = $hea->appendChild($DocumentType);
        $DocumentDate = $xml->createElement("DocumentDate", $fecFactu);
        $DocumentDate = $hea->appendChild($DocumentDate);
        $PostingDate = $xml->createElement("PostingDate", $fecFactu);
        $PostingDate = $hea->appendChild($PostingDate);
        $TransactionCurrency = $xml->createElement("TransactionCurrency", $cur);
        $TransactionCurrency = $hea->appendChild($TransactionCurrency);
        $Reference = $xml->createElement("Reference", $facNum);
        $Reference = $hea->appendChild($Reference);
        // Investigando...
        // Martino P. : In your current system the document (customer or vendor invoice) has the number 12345. Ok then in this field you can specify this code 12345 to link and identify in the unique way the document in SAP and the document in your operational system. Por lo tanto metemos el idFactura para que podamos enlazar e identificar la factura en SAP y SION.
        $AgencyDocNbr = $xml->createElement("AgencyDocNbr", $idFactura);
        $AgencyDocNbr = $hea->appendChild($AgencyDocNbr);
        // -----------------------
        // -- CustomerOpenItem --
        // -----------------------
        $coi = $xml->createElement("CustomerOpenItem");
        //$coi = $cus->appendChild($coi);
        $coi = $cus->appendChild($coi);
        // Codigo del cliente
        // 1000000225 Pruebas... creo.
        //$CustomerNbr = $xml->createElement("CustomerNbr","1000000225");
        $CustomerNbr = $xml->createElement("CustomerNbr", $sapCustomerNum);
        $CustomerNbr = $coi->appendChild($CustomerNbr);
        // Total de la factura en positivo
        $AmntTransactCur = $xml->createElement("AmntTransactCur", $total);
        $AmntTransactCur = $coi->appendChild($AmntTransactCur);
        $BaselineDate = $xml->createElement("BaselineDate", $fecFactu);
        $BaselineDate = $coi->appendChild($BaselineDate);
        $DueDate = $xml->createElement("DueDate", $fecFactu);
        $DueDate = $coi->appendChild($DueDate);
        // -------------------------------
        // -- Other Items --
        // -------------------------------
        // $cus es su padre.
        $ois = $xml->createElement("OtherItems");
        $ois = $cus->appendChild($ois);
        // -------------------------------
        // Other Item
        // -------------------------------
        // CONCEPTOS INFO
        $sql2 = "select * from FT_REL_CONCEPTO where id_factura='{$idFactura}' ";
        $dbf2->query($sql2);
        while ($dbf2->next_record()) {
            $idCpto = $dbf2->f(id_concepto);
            $cpto = getValueTable("concepto", "FT_CONCEPTO", "id_concepto", $idCpto, $dbX);
            $codCpto = getValueTable("codigo_sap", "FT_CONCEPTO", "id_concepto", $idCpto, $dbX);
            $preciou = $dbf2->f(preciou);
            $tax = $dbf2->f(iva);
            $taxPor = $dbf2->f(pctj_iva);
            $um = getValueTable("um", "FT_CONCEPTO", "id_concepto", $idCpto, $dbX);
            $cantidad = $dbf2->f(cantidad);
            $bls = $dbf2->f(bl);
            $bls = trim($bls);
            $conteTex = $dbf2->f(conte);
            $conteTex = trim($conteTex);
            $idBarco = getValueTable("Id_barco", "EXPO", "Bl", $bl, $dbX);
            $impoExpo = getValueTable("Impo_expo", "BARCO", "Id_barco", $idBarco, $dbX);
            //if( $impoExpo=="E" )$impoExpo="Export";
            //if( $impoExpo=="I" )$impoExpo="Import";
            // DETECTAR UNIDAD DE MEDIDA.
            unset($arrConte);
            unset($arrBl);
            if ($um == "CTR") {
                $arrConte = explode("\n", $conteTex);
                for ($i = 0; $i < count($arrConte); $i++) {
                    if (!empty($arrConte[$i])) {
                        // -----------------------
                        // OtherItem  CTR
                        // -----------------------
                        // Padre
                        $oi = $xml->createElement("OtherItem");
                        $oi = $ois->appendChild($oi);
                        // Hijos
                        $tax = $preciou * ($taxPor / 100);
                        // En negativo
                        $preciouNeg = ($preciou + $tax) * -1;
                        $preciouNeg = number_format($preciouNeg, 2);
                        $preciouNeg = str_replace(",", "", $preciouNeg);
                        $AmntTransacCur = $xml->createElement("AmntTransacCur", $preciouNeg);
                        $AmntTransacCur = $oi->appendChild($AmntTransacCur);
                        $AmntCpyCur = $xml->createElement("AmntCpyCur", $preciouNeg);
                        $AmntCpyCur = $oi->appendChild($AmntCpyCur);
                        // <TaxCode/> you can send A0 for tax code.
                        $TaxCode = $xml->createElement("TaxCode", "A0");
                        $TaxCode = $oi->appendChild($TaxCode);
                        if (!empty($um)) {
                            $BaseUnitMeasure = $xml->createElement("BaseUnitMeasure", $um);
                            $BaseUnitMeasure = $oi->appendChild($BaseUnitMeasure);
                        }
                        $Qty = $xml->createElement("Qty", "1");
                        $Qty = $oi->appendChild($Qty);
                        $ProfitCenter = $xml->createElement("ProfitCenter", "Z99999");
                        $ProfitCenter = $oi->appendChild($ProfitCenter);
                        if (!empty($codCpto)) {
                            $ChargeCode = $xml->createElement("ChargeCode", $codCpto);
                            $ChargeCode = $oi->appendChild($ChargeCode);
                        }
                        if (!empty($bls)) {
                            $BlNmr = $xml->createElement("BL", "MSCU" . $bls);
                            $BlNmr = $oi->appendChild($BlNmr);
                        }
                        // CONTENEDORES
                        $ctNumero = $arrConte[$i];
                        $ctNumero = trim($ctNumero);
                        $idEq = getValueTable("id_equipo", "CONTENEDOR", "numero", $ctNumero, $dbX);
                        $equipoTex = getValueTable("equipo", "EQUIPO", "id_equipo", $idEq, $dbX);
                        if (preg_match("/(\\d{2})(\\D{2})/", $equipoTex, $parts)) {
                            $ctSize = $parts[1];
                            $ctTipo = $parts[2];
                            if ($ctTipo == "DC") {
                                $ctTipo = "DV";
                            }
                        }
                        if (!empty($ctNumero)) {
                            $CtrNbr = $xml->createElement("CtrNbr", $ctNumero);
                            $CtrNbr = $oi->appendChild($CtrNbr);
                        }
                        if (!empty($ctTipo)) {
                            $CtrType = $xml->createElement("CtrType", $ctTipo);
                            $CtrType = $oi->appendChild($CtrType);
                        }
                        if (!empty($ctSize)) {
                            $CtrSize = $xml->createElement("CtrSize", $ctSize);
                            $CtrSize = $oi->appendChild($CtrSize);
                        }
                        if (!empty($lugarFactu)) {
                            // Lugar de la factura
                            $PortLocation = $xml->createElement("PortLocation", $lugarFactu);
                            $PortLocation = $oi->appendChild($PortLocation);
                        }
                        $idBl = getValueTable("Id_expo", "EXPO", "Bl", $bls, $dbX);
                        if ($idBl > 0) {
                            $pol = getValueTable("Loading", "EXPO", "Id_expo", $bl, $dbX);
                            $pod = getValueTable("Discharge", "EXPO", "Id_expo", $bl, $dbX);
                            if (!empty($pol)) {
                                $POL = $xml->createElement("POL", $pol);
                                $POL = $oi->appendChild($POL);
                            }
                            if (!empty($pod)) {
                                $POD = $xml->createElement("POD", $pod);
                                $POD = $oi->appendChild($POD);
                            }
                        }
                    }
                }
            } elseif ($um == "BL") {
                $arrBl = explode("\n", $bls);
                for ($i = 0; $i < count($arrBl); $i++) {
                    if (!empty($arrBl[$i])) {
                        // -----------------------
                        // OtherItem
                        // -----------------------
                        $bl = trim($arrBl[$i]);
                        $tax = $preciou * ($taxPor / 100);
                        // Padre
                        $oi = $xml->createElement("OtherItem");
                        $oi = $ois->appendChild($oi);
                        // Hijos
                        // Negativo
                        $preciouNeg = ($preciou + $tax) * -1;
                        $preciouNeg = number_format($preciouNeg, 2);
                        $preciouNeg = str_replace(",", "", $preciouNeg);
                        $AmntTransacCur = $xml->createElement("AmntTransacCur", $preciouNeg);
                        $AmntTransacCur = $oi->appendChild($AmntTransacCur);
                        $AmntCpyCur = $xml->createElement("AmntCpyCur", $preciouNeg);
                        $AmntCpyCur = $oi->appendChild($AmntCpyCur);
                        // <TaxCode/> you can send A0 for tax code.
                        $TaxCode = $xml->createElement("TaxCode", "");
                        $TaxCode = $oi->appendChild($TaxCode);
                        if (!empty($um)) {
                            $BaseUnitMeasure = $xml->createElement("BaseUnitMeasure", $um);
                            $BaseUnitMeasure = $oi->appendChild($BaseUnitMeasure);
                        }
                        $Qty = $xml->createElement("Qty", "1");
                        $Qty = $oi->appendChild($Qty);
                        $ProfitCenter = $xml->createElement("ProfitCenter", "Z99999");
                        $ProfitCenter = $oi->appendChild($ProfitCenter);
                        $ChargeCode = $xml->createElement("ChargeCode", $codCpto);
                        $ChargeCode = $oi->appendChild($ChargeCode);
                        $BlNmr = $xml->createElement("BL", "MSCU" . $bl);
                        $BlNmr = $oi->appendChild($BlNmr);
                        if (!empty($lugarFactu)) {
                            $PortLocation = $xml->createElement("PortLocation", $lugarFactu);
                            $PortLocation = $oi->appendChild($PortLocation);
                        }
                        $idBl = getValueTable("Id_expo", "EXPO", "Bl", $bl, $dbX);
                        if ($idBl > 0) {
                            $pol = getValueTable("Loading", "EXPO", "Id_expo", $bl, $dbX);
                            $pod = getValueTable("Discharge", "EXPO", "Id_expo", $bl, $dbX);
                            if (!empty($pol)) {
                                $POL = $xml->createElement("POL", $pol);
                                $POL = $oi->appendChild($POL);
                            }
                            if (!empty($pod)) {
                                $POD = $xml->createElement("POD", $pod);
                                $POD = $oi->appendChild($POD);
                            }
                        }
                    }
                }
            } elseif ($um == "EA") {
                //$precioTl = ($preciou * $cantidad) * -1;
                $tax = $preciou * ($taxPor / 100);
                // Padre
                $oi = $xml->createElement("OtherItem");
                $oi = $ois->appendChild($oi);
                // Hijos
                // Hijos
                // Negativo
                $preciouNeg = $cantidad * ($preciou + $tax) * -1;
                $preciouNeg = number_format($preciouNeg, 2);
                $preciouNeg = str_replace(",", "", $preciouNeg);
                $AmntTransacCur = $xml->createElement("AmntTransacCur", $preciouNeg);
                $AmntTransacCur = $oi->appendChild($AmntTransacCur);
                $AmntCpyCur = $xml->createElement("AmntCpyCur", $preciouNeg);
                $AmntCpyCur = $oi->appendChild($AmntCpyCur);
                if (!empty($um)) {
                    $BaseUnitMeasure = $xml->createElement("BaseUnitMeasure", $um);
                    $BaseUnitMeasure = $oi->appendChild($BaseUnitMeasure);
                }
                $qty = $xml->createElement("Qty", $cantidad);
                $qty = $oi->appendChild($qty);
                $ProfitCenter = $xml->createElement("ProfitCenter", "Z99999");
                $ProfitCenter = $oi->appendChild($ProfitCenter);
                $ChargeCode = $xml->createElement("ChargeCode", $codCpto);
                $ChargeCode = $oi->appendChild($ChargeCode);
                if (!empty($lugarFactu)) {
                    $PortLocation = $xml->createElement("PortLocation", $lugarFactu);
                    $PortLocation = $oi->appendChild($PortLocation);
                }
            }
        }
        // ---------------------------------------------------------------------
        // Nombre de Archivo
        // Naming Convention of Customer Invoice XML's :
        // CompanyCode_XL_YYYYMMDD(DocumentDate)_InvoiceSequentialNumber
        // i.e. Z999_XL_20140404_???????
        // ---------------------------------------------------------------------
        $fileName = $companyCode . "_XL_" . $fecFactu . "_" . $idFactura . ".xml";
        //$path= "../files/SAP_XML/invoice/$lugarFactu/$fileName";
        $path = $dirPath . $fileName;
        $xml->save($path);
    }
}
Beispiel #10
0
 /**
  * Returns a db_name -> db_size array
  * 
  * @return array
  */
 function getSizeStats()
 {
     $returnArray = array();
     global $L_MYSQL_LOGIN, $L_MYSQL_HOST, $L_MYSQL_PWD;
     $db = new DB_Sql();
     $db->Host = $L_MYSQL_HOST;
     $db->User = $L_MYSQL_LOGIN;
     $db->Password = $L_MYSQL_PWD;
     $db->Database = "mysql";
     foreach ($this->dbList as $dbname => $dbInfo) {
         $db->query("SHOW TABLE STATUS FROM `{$dbname}`;");
         $size = 0;
         while ($db->next_record()) {
             $size += $db->f('Data_length') + $db->f('Index_length');
             if ($db->f('Engine') != 'InnoDB') {
                 $size += $db->f('Data_free');
             }
         }
         $returnArray[$dbname] = $size;
     }
     return $returnArray;
 }