public function autorizaComprobante($result, $ids, $i, $DirDocAutorizado, $DirDocFirmado, $DBTabDoc, $DocErr, $CampoID) { $firmaDig = new VSFirmaDigital(); $errAuto = new VSexception(); //Continua con el Proceso //Autorizacion de Comprobantes $autComp = $firmaDig->autorizacionComprobanteWS($result['ClaveAcceso']); //Envio CLave de Acceso if ($autComp['status'] == 'OK') { //Validamos el Numero de Autorizacin que debe ser Mayor a 0 $numeroAutorizacion = (int) $autComp['data']['RespuestaAutorizacionComprobante']['numeroComprobantes']; /*********************************************************/ //Operacion de Stop, si no hay ningun Documento AUtorizado sale automaticamente de la funcion Autoriza //Su finalidad es que no siga realizado el resto de las operaciones y continuar con la siguiente. if ($numeroAutorizacion == 0) { return $errAuto->messageSystem('NO_OK', '', 22, null, null); } //Por favor volver a Intentar en unos minutos /* * ****************************************************** */ $autorizacion = $autComp['data']['RespuestaAutorizacionComprobante']['autorizaciones']['autorizacion']; if ($numeroAutorizacion == 1) { //Verifica si Autorizo algun Comprobante Apesar de recibirlo Autorizo Comprobante $AdrSri = $this->actualizaDocRecibidoSri($autorizacion, $ids[$i], $result['nomDoc'], $DirDocAutorizado, $DirDocFirmado, $DBTabDoc, $DocErr, $CampoID); $this->newXMLDocRecibidoSri($autorizacion, $result['nomDoc'], $DirDocAutorizado); if (count($ids) == 1) { //Sale directamente si solo tiene un Domento para validadr return $AdrSri; //Si la autorizacion es uno a uno. } } else { //Ingresa si el Documento a intentado Varias AUTORIZACIONES if ($numeroAutorizacion > 1) { for ($c = 0; $c < sizeof($autorizacion); $c++) { $this->actualizaDocRecibidoSri($autorizacion[$c], $ids[$i], $result['nomDoc'], $DirDocAutorizado, $DirDocFirmado, $DBTabDoc, $DocErr, $CampoID); if ($autorizacion[$c]['estado'] == 'AUTORIZADO') { $this->newXMLDocRecibidoSri($autorizacion[$c], $result['nomDoc'], $DirDocAutorizado); break; //Si de todo el Recorrido Existe un Autorizado } } } } } else { //Si Existe un error al realizar la peticion al Web Servicies $arroout["status"] = "NO_OK"; $arroout["error"] = $autComp["error"]; $arroout["message"] = Yii::t('EXCEPTION', 'Failed to perform authorization document.'); return $arroout; } }
$opcion['TIP_DOC'] = 'F4'; //Tipo Documento $opcion['NUM_DOC'] = '000117005'; //Numero Documento $opcion['OP'] = '1'; //1=>todos los Registros y 2=> Un solo registro //$obj = new NubeFactura; //$obj->insertarFacturas($opcion); /* echo dirname(__FILE__).'<br>';///var/www/html/websea/protected/views/nubeFactura echo $ruta = Yii::app()->basePath.'<br>';///var/www/html/websea/protected echo Yii::app()->theme->baseUrl.'<br>';///websea/themes/seablue echo Yii::app()->baseUrl; */ /****************** PRUEBA ERRORES SRI **********************/ $obj = new VSFirmaDigital(); //$response=$obj->validarComprobante('FACTURA-001-001-000117085.xml'); //$response=$obj->validarComprobante('FACTURA-001-001-000117100.xml'); //$response=$obj->validarComprobante('FACTURA-001-001-000117078.xml'); //$response=$obj->validarComprobante('FACTURA-001-001-000117134.xml'); //$response=$obj->validarComprobante('FACTURA-001-001-000117002.xml');//XML=1 //$response=$obj->validarComprobante('FACTURA-001-001-000117001.xml');//XML=2 //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001169769089035214'); //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001169769089035214');//Ojo error de diferencias //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001169779089112915');//Autorizado Normal //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001170029091055410');//XML=1 //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001170019090977718');//XML=2 //$response=$obj->autorizacionComprobante('1711201401099236253700110010010001170059091288519');//Esta OK //$response=$obj->autorizacionComprobante('1811201401099236253700110010010001170729096494419');//CLAVE EN PROCESO //$response=$obj->autorizacionComprobante('1811201401099236253700110010010001170859097504516');//pROBLEMA CON LA Ñ //$response=$obj->autorizacionComprobante('1811201401099236253700110010010001171009098670010');//pROBLEMA CON EL "/"
public function actionGenerarXml($ids) { $ids = isset($_GET['ids']) ? base64_decode($_GET['ids']) : NULL; $modelo = new NubeFactura(); $firmaDig = new VSFirmaDigital(); $firma = $firmaDig->recuperarXAdES_BES(); $cabFact = $modelo->mostrarCabFactura($ids, '01'); $detFact = $modelo->mostrarDetFacturaImp($ids); $impFact = $modelo->mostrarFacturaImp($ids); $adiFact = $modelo->mostrarFacturaDataAdicional($ids); // $this->renderPartial('facturaXML', array('cabFact' => $cabFact, 'detFact' => $detFact, 'impFact' => $impFact, 'adiFact' => $adiFact, 'firma' => $firma)); }
public function firmaXAdES_BES($Documento, $DirDocFirmado) { $obj = new VSFirmaDigital(); //$Dataf = $obj->recuperarFirmaDigital('1'); , $Dataf = $obj->recuperarFirmaDigital(Yii::app()->params['EmpID']); $fileCertificado = Yii::app()->params['seaFirma'] . base64_decode($Dataf['RutaFile']); $pass = base64_decode($Dataf['Clave']); $filexml = $Dataf['SeaDocXml'] . $Documento; //Yii::app()->params['seaDocXml'] . $Documento; $wdsl = $Dataf['Wdsl_local']; //'http://127.0.0.1:8080/FIRMARSRI/FirmaElectronicaSRI?wsdl'; $param = array('pathOrigen' => $filexml, 'pathFirmado' => $DirDocFirmado, 'pathCertificado' => $fileCertificado, 'clave' => $pass, 'nombreFirmado' => $Documento); //VSValidador::putMessageLogFile($param); $metodo = 'firmar'; return $this->webServiceNuSoap($wdsl, $param, $metodo); }