Skip to content

Instantly share code, notes, and snippets.

@raicoacosta
Created May 11, 2018 03:05
Show Gist options
  • Save raicoacosta/38503e576659ff76340891957621b0dd to your computer and use it in GitHub Desktop.
Save raicoacosta/38503e576659ff76340891957621b0dd to your computer and use it in GitHub Desktop.
Código Php Factronica para importar timbrajes de folios del sii a la base de datos mysql
<?php
# código php factronica para importar timbraje de folios del sii a la base de datos mysql
# DEFINIR LA RUTA DONDE SE ENCUENTRA EL XML CON EL TIMBRAJE ELECTRONICO
$ruta_file="/factronica_importar_folios/xml/timbraje_facturaelectronica.xml";
# CARGAR EN MEMORIA EL XML CON TIMBRAJE ELECTRONICO
$dom = new DOMDocument;
$xml=file_get_contents($ruta_file);
$dom->loadXML($xml);
# RECORRER XML PARA LEER LA INFORMACION DE LOS CAMPOS REQUERIDOS
$elementos=$dom->getElementsByTagName('RE');
foreach($elementos as $elemento){
$rut_emisor=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('RS');
foreach($elementos as $elemento){
$razonsocial_emisor=utf8_decode($elemento->nodeValue);
}
#
$elementos=$dom->getElementsByTagName('TD');
foreach($elementos as $elemento){
$tipo_documento=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('D');
foreach($elementos as $elemento){
$folio_desde=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('H');
foreach($elementos as $elemento){
$folio_hasta=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('FA');
foreach($elementos as $elemento){
$fecha_autorizacion=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('M');
foreach($elementos as $elemento){
$modulo=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('E');
foreach($elementos as $elemento){
$exponente=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('IDK');
foreach($elementos as $elemento){
$indice=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('FRMA');
foreach($elementos as $elemento){
$firma=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('RSASK');
foreach($elementos as $elemento){
$llave_privada=$elemento->nodeValue;
}
#
$elementos=$dom->getElementsByTagName('RSAPUBK');
foreach($elementos as $elemento){
$llave_publica=$elemento->nodeValue;
}
# VALIDAR SI YA EXISTE ESE TIMBRAJE EN LA BASE DATOS
$sql="select * from tbl_siifoliostimbrados where
tipo_documento='$tipo_documento' and
folio_desde='$folio_desde' and
folio_hasta='$folio_hasta'";
$rsl=mysql_query($sql,$link_sistema)or die("ERROR");
$sw_existe=mysql_num_rows($rsl);
# SI YA EXISTE FRENAR
if($sw_existe>0){
echo "<br>Alerta:";
echo "<br>Ya Existe un Timbraje para Documentos.";
echo "<br>Tipo Documento:$tipo_documento - Folio Desde:$folio_desde - Folio Hasta:$folio_hasta";
echo "<br><br><a href='index.php'>Regresar</a>";
exit;
}
# DEFINIR DATOS
$estado=1;
$total_folios=$folio_hasta-$folio_desde+1;
$nombre_documento=utf8_decode($doctos_sii["$tipo_documento"]["descripcion"]);
# INSERTAR EN BASE DATOS
$sql="INSERT INTO tbl_siifoliostimbrados (
estado,
tipo_documento,
folio_desde,
nombre_documento,
folio_hasta,
total_folios,
fecha_autorizacion,
modulo,
exponente,
indice,
firma,
llave_privada,
llave_publica,
rut_emisor,
razonsocial_emisor
) VALUES (
'$estado',
'$tipo_documento',
'$folio_desde',
'$nombre_documento',
'$folio_hasta',
'$total_folios',
'$fecha_autorizacion',
'$modulo',
'$exponente',
'$indice',
'$firma',
'$llave_privada',
'$llave_publica',
'$rut_emisor',
'$razonsocial_emisor')";
mysql_query($sql,$link_sistema)or die("ERROR");
# OBTENER EL ID
$id_timbraje=mysql_insert_id();
# INSERTAR FOLIOS EN TABLA DE FOLIOS CONSUMIDOS
for($folios=$folio_desde; $folios<=$folio_hasta; $folios++){
$folio=$folios;
$sw_consumido=0;
#
$sql="INSERT INTO tbl_siifoliosconsumidos (
id_timbraje,
folio,
sw_consumido,
tipo_documento
) VALUES (
'$id_timbraje',
'$folio',
'$sw_consumido',
'$tipo_documento' )";
mysql_query($sql,$link_sistema)or die("ERROR");
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment