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

    public function registroPuntoVenta($datosgenerales,$puntoventa){
        $wsdl = $datosgenerales['ambiente']['enlace'].$this->dir;
        $codigoAmbiente = $datosgenerales['sistema']['ambiente'];
        $codigoModalidad = $datosgenerales['sistema']['modalidad'];
        $codigoSistema = $datosgenerales['sistema']['codigo'];
        $codigoSucursal = $puntoventa['id_sucursal'];
        $codigoTipoPuntoVenta=$puntoventa['tipopuntoventa'];
        $cuis = $datosgenerales['puntoventa']['cuis'];
        $descripcion=$puntoventa['descripcion'];
        $nit = $datosgenerales['empresa']['nit'];
        $nombrePuntoVenta=$puntoventa['descripcion'];
        $params = array("SolicitudRegistroPuntoVenta" =>
        array(
            "codigoAmbiente" => $codigoAmbiente,
            "codigoModalidad" => $codigoModalidad,
            "codigoSistema" => $codigoSistema,
            "codigoSucursal" => $codigoSucursal,
            "codigoTipoPuntoVenta" => $codigoTipoPuntoVenta,
            "cuis" => $cuis,
            "descripcion" => $descripcion,
            "nit" => $nit,
            "nombrePuntoVenta" => $nombrePuntoVenta,
        ));

        $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->registroPuntoVenta($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }


    public function cierrePuntoVenta($datosgenerales,$puntoventa){
        $wsdl = $datosgenerales['ambiente']['enlace'].$this->dir;
        $codigoAmbiente = $datosgenerales['sistema']['ambiente'];
        $codigoPuntoVenta=$puntoventa['codigoPuntoVenta'];
        $codigoSistema = $datosgenerales['sistema']['codigo'];
        $codigoSucursal = $puntoventa['codigoSucursal'];
        $cuis = $datosgenerales['puntoventa']['cuis'];
        $nit = $datosgenerales['empresa']['nit'];
        $params = array("SolicitudCierrePuntoVenta" =>
        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->cierrePuntoVenta($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    

    public function registroEventoSignificativo($datosgenerales,$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 = $datosgenerales['ambiente']['enlace'].$this->dir;
        $codigoAmbiente = $datosgenerales['sistema']['ambiente'];
        $codigoMotivoEvento=$codigoMotivoEvento;
        $codigoPuntoVenta=$datosgenerales['puntoventa']['codigoPuntoVenta'];
        $codigoSistema = $datosgenerales['sistema']['codigo'];
        $codigoSucursal = $datosgenerales['puntoventa']['codigoSucursal'];
        $cufd= $_SESSION['scufd'];
        $cufdEvento=$cufdEvento;
        $cuis = $_SESSION['scuis'];
        $desc=$descripcion[$codigoMotivoEvento-1];
        $fechaHoraFinEvento=$fechaHoraFinEvento;
        $fechaHoraInicioEvento=(string)$fechaHoraInicioEvento;
        $nit = $datosgenerales['empresa']['nit'];
        $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' => "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->registroEventoSignificativo($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

   

}
?>