コード例 #1
0
ファイル: VSAutoDocumento.php プロジェクト: bvillac/websea
 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;
     }
 }
コード例 #2
0
ファイル: create.php プロジェクト: bvillac/websea
$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 "/"
コード例 #3
0
 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));
 }
コード例 #4
0
ファイル: VSFirmaDigital.php プロジェクト: bvillac/websea
 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);
 }