Пример #1
0
 function validarSAT($destination, $fileXML)
 {
     $filename = $fileXML['name'];
     //Emisor
     $rfc_emisor = getVariableXML('//cfdi:Comprobante//cfdi:Emisor', 'rfc', $destination);
     //Receptor
     $rfc_receptor = getVariableXML('//cfdi:Comprobante//cfdi:Receptor', 'rfc', $destination);
     //Total
     $total = getVariableXML('//cfdi:Comprobante', 'total', $destination);
     //UUID
     $id = getVariableXML('//t:TimbreFiscalDigital', 'UUID', $destination);
     //folio
     $folio = getVariableXML('//cfdi:Comprobante', 'folio', $destination);
     //Serie
     $serie = getVariableXML('//cfdi:Comprobante', 'serie', $destination);
     //Subtotal
     $subtotal = getVariableXML('//cfdi:Comprobante', 'subTotal', $destination);
     //Total
     $total = getVariableXML('//cfdi:Comprobante', 'total', $destination);
     //Impuestos
     $impuestos = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos', 'totalImpuestosTrasladados', $destination);
     //Tasa
     $tasa = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos//cfdi:Traslados//cfdi:Traslado', 'tasa', $destination);
     //Retenciones
     $retenciones = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos//cfdi:Retenciones//cfdi:Retencion', 'importe', $destination);
     //Path
     $path = path();
     $finalPath = $path . $rfc_emisor . '/';
     $cadena = 're=' . $rfc_emisor;
     $cadena .= '&rr=' . $rfc_receptor;
     $cadena .= '&tt=' . $total;
     $cadena .= '&id=' . $id;
     $param = array('expresionImpresa' => $cadena);
     try {
         $client = new SoapClient('https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl');
     } catch (Exception $e) {
         $error = $e->getMessage();
         echo 'Excepción capturada: ' . $error;
     }
     $valores = $client->Consulta($param);
     $success = moveXML($destination, $finalPath, $filename);
     $response = array('codigo' => $valores->ConsultaResult->CodigoEstatus, 'estado' => $valores->ConsultaResult->Estado, 'error' => 'no', 'referencia' => '' . $serie . $folio . '', 'subtotal' => '' . $subtotal . '', 'total' => '' . $total . '', 'impuestos' => '' . $impuestos . '', 'tasa' => '' . $tasa[0] . '', 'ruta' => '' . $success . '', 'retenciones' => '' . $retenciones . '', 'uuid' => '' . $id . '');
     return json_encode($response);
 }
Пример #2
0
 $retencionISR = 0;
 foreach ($retenciones as $retencion) {
     if ($retencion == 'IVA') {
         $retencionIVA = $importes[$i];
     }
     $i++;
 }
 $i = 0;
 foreach ($retenciones as $retencion) {
     if ($retencion == 'ISR') {
         $retencionISR = $importes[$i];
     }
     $i++;
 }
 //Impuestos
 $impuestos = getVariableXML('//cfdi:Comprobante//cfdi:Impuestos', 'totalImpuestosTrasladados', $destination);
 // $validateDate = validateDate($fecha);
 // if($validateDate){
 $cantidades = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'cantidad', $destination);
 $unidades = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'unidad', $destination);
 $identificadores = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'noIdentificacion', $destination);
 $descripciones = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'descripcion', $destination);
 $valoresUnitarios = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'valorUnitario', $destination);
 $importes = getMultipleXML('//cfdi:Comprobante//cfdi:Conceptos//cfdi:Concepto', 'importe', $destination);
 for ($i = 0; $i < count($cantidades); $i++) {
     $results["Conceptos"][] = array('cantidad' => '' . $cantidades[$i], 'unidad' => '' . $unidades[$i], 'identificador' => '' . $identificadores[$i], 'descripcion' => '' . $descripciones[$i], 'valorUnitario' => '' . $valoresUnitarios[$i], 'importe' => '' . $importes[$i]);
 }
 $results['rfc_receptor'] = '' . $rfc_receptor . '';
 $results['subTotal'] = '' . $subTotal . '';
 $results['total'] = '' . $total . '';
 $results['impuestos'] = '' . $impuestos . '';