PHP code example of csfacturacion / descarga-ciec-php

1. Go to this page and download the library: Download csfacturacion/descarga-ciec-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

csfacturacion / descarga-ciec-php example snippets



use Csfacturacion\Descarga\DescargaCiec;
use Csfacturacion\Descarga\Model\Credenciales;
use Csfacturacion\Descarga\Model\ParametersBuilder;

// credenciales de contratacion CSFacturacion
$descargaCiec = new DescargaCiec(new Credenciales('BBB010101BBB', 'FOO_BAR'));

// construir parametros de consulta con ParamsBuilder

$params = (new ParametersBuilder())
            ->accesoSat(new Credenciales('AAA010101AAA', 'CIEC'))
            ->tipoDoc(DocTypeFilter::CFDI) // CFDI convencional
            ->caso(CaseFilter::RECIBIDAS) // Emitidos
            ->fechaInicio(new DateTimeImmutable('first day of January 2024')) // mes de enero
            ->fechaFin(new DateTimeImmutable('last day of January 2024'))
            ->status(StatusFilter::CANCELADO) // solo los cancelados
            ->build();

// query contiene todou lo necesario para consultar el estatus y resultados
$query = $descargaCiec->makeQuery($params);

use Csfacturacion\Descarga\DescargaCiec;
use Csfacturacion\Descarga\Model\Credenciales;
use Csfacturacion\Descarga\Model\ParametersBuilder;
use Csfacturacion\Descarga\Model\Uuid;

// credenciales de contratacion CSFacturacion
$descargaCiec = new DescargaCiec(new Credenciales('BBB010101BBB', 'FOO_BAR'));
$query = $descargaCiec->search(new Uuid('a87c1d56-52f3-4680-a5cb-ddddb5786964'))

use Csfacturacion\Descarga\DescargaCiec;
use Csfacturacion\Descarga\Model\Credenciales;
use Csfacturacion\Descarga\Model\ParametersBuilder;
use Csfacturacion\Descarga\Model\Uuid;

// credenciales de contratacion CSFacturacion
$descargaCiec = new DescargaCiec(new Credenciales('BBB010101BBB', 'FOO_BAR'));
$query = $descargaCiec->byFolios([new Uuid('a87c1d56-52f3-4680-a5cb-ddddb5786964')])



use Csfacturacion\Descarga\QueryRetrieverApi;

/**@var QueryRetrieverApi $query */
while (!$query->isFinished()) {
    // do something
    send_status($query->getProgress()->getStatus(), $channel);
    // estatus
    $query->getProgress()->getStatus();
    // encontrados al momento
    $query->getProgress()->getFound();
}



use Csfacturacion\Descarga\QueryRetrieverApi;

/**@var QueryRetrieverApi $query */
$s = $query->getSummary();
// cancelados encontrados
$s->getCancelados();
// total encontrados
$s->getTotal();
// total de páginas para consulta mediante paginacion
$s->getPages();
// ¿Hubo XML que no pudieron ser descargados?
$s->hasMissingXml();
// resultados mediante paginación




use Csfacturacion\Descarga\QueryRetrieverApi;
use Csfacturacion\Descarga\Model\Uuid;

/**@var QueryRetrieverApi $query */

// Descargar todos los XML en un ZIP
$query->asZip(__DIR__ . '/storage/cfdi/foo.zip');

// tambien, puede especificar un callback a la descarga del ZIP
$query->asZip(__DIR__ . '/storage/cfdi/foo.zip', function (int $totalBytes, int $currentBytes, array $extra){
    show_progress($totalBytes, $currentBytes);
});

// Mediante Páginacion JSON

if ($query->hasResults()) {
    $p = $query->getSummary()->getPages();
    for($i = 1; $i <= $p; $i++) {
        $cfdiList[] = $query->getResults($i);
    }
    // hacer algo con los CFDI Meta
}


$toSearch = new Uuid('1ad7605f-4ea6-4a48-b180-baa022220a83');

// Consultar CFDI Individual
$cfdi = $query->getCfdi($toSearch);
// XML Individual
$xml = $query->getXml($toSearch);
 bash
composer