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

    public function verificarComunicacion($datosgenerales) {
        $wsdl="https://pilotosiatservicios.impuestos.gob.bo/v2/FacturacionCodigos?wsdl";
        $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->verificarComunicacion();
        }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 sincronizarActividades($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->sincronizarActividades($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
        
    }

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

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

    public function sincronizarFechaHora($datosgenerales) {
        $wsdl = $datosgenerales['ambiente']['enlace'].$this->dir;

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


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

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

    public function sincronizarParametricaEventosSignificativos($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->sincronizarParametricaEventosSignificativos($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaMotivoAnulacion($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->sincronizarParametricaMotivoAnulacion($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaPaisOrigen($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->sincronizarParametricaPaisOrigen($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoDocumentoIdentidad($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->sincronizarParametricaTipoDocumentoIdentidad($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoDocumentoSector($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->sincronizarParametricaTipoDocumentoSector($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoEmision($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->sincronizarParametricaTipoEmision($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoHabitacion($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->sincronizarParametricaTipoHabitacion($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoMetodoPago($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->sincronizarParametricaTipoMetodoPago($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTipoMoneda($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->sincronizarParametricaTipoMoneda($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }

    public function sincronizarParametricaTipoPuntoVenta($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->sincronizarParametricaTipoPuntoVenta($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
    public function sincronizarParametricaTiposFactura($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->sincronizarParametricaTiposFactura($params);
        } catch (SoapFault $fault) {
            $result = false;
        }
        return $result;
    }
   
}
?>