<?php
class Siat{
    var $token="apikey: TokenApi eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJNQVJHQSBGTE9SRVMiLCJjb2RpZ29TaXN0ZW1hIjoiNzcxMkU0QkIxNkRBQ0M4MTQyRjJERUUiLCJuaXQiOiJINHNJQUFBQUFBQUFBRE15TmpReE1qYzJNTFFBQUFYYll2OEtBQUFBIiwiaWQiOjczNjkyNSwiZXhwIjoxNzQyOTE4NDU4LCJpYXQiOjE3MTEzOTY4MjgsIm5pdERlbGVnYWRvIjoyMzE0MjczMDE4LCJzdWJzaXN0ZW1hIjoiU0ZFIn0.j7neh8_a_U-YS-frt0E3DAbrkE6fVd5B1i-pwUAZZWBviwFrsG2UusfRlCCvxPSZwKI8iB0D6kAu4IgpJMr4Bw";
    
    public function __construct()
    {
        
    }

    public function verificarComunicacion(){
        $wsdl="https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionCodigos?wsdl";
        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);
        try{
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->verificarComunicacion();
        }catch(SoapFault $fault){
            $result = false;
        }
        return $result;
    }

    public function cuis(){
        $wsdl="https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionCodigos?wsdl";

        $codigoAmbiente=2;
        $codigoModalidad=1;
        $codigoPuntoVenta=0;
        $codigoSistema="7712E4BB16DACC8142F2DEE";
        $codigoSucursal=0;
        $nit="2314273018";
        $params=array("SolicitudCuis"=>
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "nit" => $nit
        ));
        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);
        try{
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->cuis($params);
        }catch(SoapFault $fault){
            $result = false;
        }
        return $result;
    }

    public function cufd()    {
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionCodigos?wsdl";

        $codigoAmbiente = 2;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudCufd" =>
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->cufd($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    

    public function sincronizarListaLeyendasFactura($datosgenerales){
        $wsdl = $datosgenerales['ambiente']['enlace'].$datosgenerales['wsdl']['enlace'];

        $codigoAmbiente = $datosgenerales['sistema']['ambiente'];
        $codigoPuntoVenta=$datosgenerales['puntoventa']['codigoPuntoVenta'];
        $codigoSistema = $datosgenerales['sistema']['codigo'];
        $codigoSucursal = $datosgenerales['puntoventa']['codigoSucursal'];
        $cuis = $datosgenerales['puntoventa']['cuis'];
        $nit = $datosgenerales['empresa']['nit'];

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => "apikey: TokenApi ".$datosgenerales['empresa']['token'],
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarListaLeyendasFactura($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function recepcionFactura($archivo,$fechaEnvio,$hashArchivo){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/ServicioFacturacionCompraVenta?wsdl";

        $codigoAmbiente = 2;
        $codigoDocumentoSector = 1;
        $codigoEmision = 1;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cufd = $_SESSION['scufd'];
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";
        $tipoFacturaDocumento = 1;
        $archivo = $archivo;
        $fechaEnvio = $fechaEnvio;
        $hashArchivo = $hashArchivo;

        $params = array("SolicitudServicioRecepcionFactura" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoDocumentoSector" => $codigoDocumentoSector,
            "codigoEmision" => $codigoEmision,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cufd" => $cufd,
            "cuis" => $cuis,
            "nit" => $nit,
            "tipoFacturaDocumento" => $tipoFacturaDocumento,
            "archivo" => $archivo,
            "fechaEnvio" => $fechaEnvio,
            "hashArchivo" => $hashArchivo
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->recepcionFactura($params);
        } catch (SoapFault $fault) {
            $result = array(
                'respuesta' => "Sin Conexion"
            );
            print_r(json_encode($result));
            exit();
        }
        return $result;
    }

    public function anulacionFactura($cuf){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/ServicioFacturacionCompraVenta?wsdl";

        $codigoAmbiente = 2;
        $codigoDocumentoSector = 1;
        $codigoEmision = 1;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cufd = $_SESSION['scufd'];
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";
        $tipoFacturaDocumento = 1;
        $codigoMotivo = 1;
        $cuf = $cuf;

        $params = array("SolicitudServicioAnulacionFactura" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoDocumentoSector" => $codigoDocumentoSector,
            "codigoEmision" => $codigoEmision,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cufd" => $cufd,
            "cuis" => $cuis,
            "nit" => $nit,
            "tipoFacturaDocumento" => $tipoFacturaDocumento,
            "codigoMotivo" => $codigoMotivo,
            "cuf" => $cuf
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->anulacionFactura($params);
        } catch (SoapFault $fault) {
            $result = $fault;
        }
        return $result;
    }


    public function recepcionPaqueteFactura($archivo,$fechaEnvio,$hashArchivo,$cantidad,$codigoEvento,$cafc){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/ServicioFacturacionCompraVenta?wsdl";
        //$descripcion="CORTE DEL SERVICIO DE INTERNET";
        $codigoAmbiente = 2;
        $codigoDocumentoSector = 1;
        $codigoEmision = 2;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cufd = $_SESSION['scufd'];
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";
        $tipoFacturaDocumento = 1;
        $archivo = $archivo;
        $fechaEnvio = $fechaEnvio;
        $hashArchivo = $hashArchivo;
        $cantidadFacturas=$cantidad;
        $cafc=$cafc;
        $codigoEvento=$codigoEvento;
        $params = array("SolicitudServicioRecepcionPaquete" => 
        array(
            //"descripcion" => $descripcion,
            "codigoAmbiente" => $codigoAmbiente,
            "codigoDocumentoSector" => $codigoDocumentoSector,
            "codigoEmision" => $codigoEmision,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cufd" => $cufd,
            "cuis" => $cuis,
            "nit" => $nit,
            "tipoFacturaDocumento" => $tipoFacturaDocumento,
            "archivo" => $archivo,
            "fechaEnvio" => $fechaEnvio,
            "hashArchivo" => $hashArchivo,
            "cafc"=>$cafc,
            "cantidadFacturas" => $cantidadFacturas,
            "codigoEvento" => $codigoEvento
            
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->recepcionPaqueteFactura($params);
        } catch (SoapFault $fault) {
            $result = $fault;
        }
        return $result;
    }




    public function validacionRecepcionPaqueteFactura($codigoRecepcion){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/ServicioFacturacionCompraVenta?wsdl";
        $codigoAmbiente = 2;
        $codigoDocumentoSector = 1;
        $codigoEmision = 2;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cufd = $_SESSION['scufd'];
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";
        $tipoFacturaDocumento = 1;
        $codigoRecepcion= $codigoRecepcion;
        $params = array("SolicitudServicioValidacionRecepcionPaquete" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoDocumentoSector" => $codigoDocumentoSector,
            "codigoEmision" => $codigoEmision,
            "codigoModalidad" => $codigoModalidad,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cufd" => $cufd,
            "cuis" => $cuis,
            "nit" => $nit,
            "tipoFacturaDocumento" => $tipoFacturaDocumento,
            "codigoRecepcion" => $codigoRecepcion
            
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->validacionRecepcionPaqueteFactura($params);
        } catch (SoapFault $fault) {
            $result = $fault;
        }
        return $result;
    }










   
    public function registroEventoSignificativo($codigoMotivoEvento,$cufdEvento,$fechaHoraFinEvento,$fechaHoraInicioEvento){
        $descripcion=["CORTE DEL SERVICIO DE INTERNET",
        "INACCESIBILIDAD AL SERVICIO WEB DE LA ADMINISTRACIÓN TRIBUTARIA",
        "INGRESO A ZONAS SIN INTERNET POR DESPLIEGUE DE PUNTO DE VENTA EN VEHICULOS AUTOMOTORES",
        "VENTA EN LUGARES SIN INTERNET",
        "VIRUS INFORMÁTICO O FALLA DE SOFTWARE",
        "CAMBIO DE INFRAESTRUCTURA DEL SISTEMA O FALLA DE HARDWARE",
        "CORTE DE SUMINISTRO DE ENERGIA ELECTRICA"];
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionOperaciones?wsdl";
        $codigoAmbiente = 2;
        $codigoMotivoEvento=$codigoMotivoEvento;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cufd= $_SESSION['scufd'];
        $cufdEvento=$cufdEvento;
        $cuis = $_SESSION['scuis'];
        $desc=$descripcion[$codigoMotivoEvento-1];
        $fechaHoraFinEvento=$fechaHoraFinEvento;
        $fechaHoraInicioEvento=(string)$fechaHoraInicioEvento;
        $nit = "2314273018";
        $params = array("SolicitudEventoSignificativo" =>
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoMotivoEvento" => $codigoMotivoEvento,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cufd" => $cufd,
            "cufdEvento" => $cufdEvento,
            "cuis" => $cuis,
            "descripcion" => $desc,
            "fechaHoraFinEvento" => $fechaHoraFinEvento,
            "fechaHoraInicioEvento" => $fechaHoraInicioEvento,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->registroEventoSignificativo($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

     /////////////////////////////////////////////////////////////////////////////
    ////////////////////////////EXTRAS///////////////////////////////////////////
    public function sincronizarActividades()    {
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoModalidad = 1;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis =$_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" =>
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarActividades($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
        
    }

    public function sincronizarListaProductosServicios(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta=0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarListaProductosServicios($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarParametricaUnidadMedida(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaUnidadMedida($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarFechaHora(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarFechaHora($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }


    public function sincronizarListaMensajesServicios(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarListaMensajesServicios($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarListaActividadesDocumentoSector(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarListaActividadesDocumentoSector($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarParametricaEventosSignificativos(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaEventosSignificativos($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaMotivoAnulacion(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaMotivoAnulacion($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaPaisOrigen(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaPaisOrigen($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoDocumentoIdentidad(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoDocumentoIdentidad($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoDocumentoSector(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoDocumentoSector($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoEmision(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoEmision($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoHabitacion(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoHabitacion($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoMetodoPago(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoMetodoPago($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoMoneda(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoMoneda($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarParametricaTipoPuntoVenta(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTipoPuntoVenta($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTiposFactura(){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionSincronizacion?wsdl";

        $codigoAmbiente = 2;
        $codigoPuntoVenta = 0;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";

        $params = array("SolicitudSincronizacion" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoPuntoVenta" => $codigoPuntoVenta,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->sincronizarParametricaTiposFactura($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    /////////////////////////////////////////////////////////////
    public function verificarNit($nitEnviado){
        $wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionCodigos?wsdl";
        $codigoAmbiente = 2;
        $codigoModalidad = 1;
        $codigoSistema = "7712E4BB16DACC8142F2DEE";
        $codigoSucursal = 0;
        $cuis = $_SESSION['scuis'];
        $nit = "2314273018";
        $nitParaVerificacion = $nitEnviado;
        $params = array("SolicitudVerificarNit" => 
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoModalidad" => $codigoModalidad,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "cuis" => $cuis,
            "nit" => $nit,
            "nitParaVerificacion" => $nitParaVerificacion,
        ));

        $options = array(
            'http' => array(
                'header' => $this->token,
                'timeout' => 5
            )
        );

        $context = stream_context_create($options);

        try {
            $client = new \SoapClient($wsdl,[
                'stream_context' => $context,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,
            ]);
            $result = $client->verificarNit($params);
        } catch (SoapFault $fault) {
            $result = $fault;
        }
        return $result;
    }

}
?>