Výpis faktur na extranetu

Na našich stránkách lze v sekci věnované zákazníkům najít seznam faktur, které jsme vystavili. Zobrazujeme o nich základní informace, jako je číslo faktury, datum vystavení a také stav úhrady. Výslednou fakturu je možné stáhnout jako PDF soubor.

V následujícím návodu vám ukážeme postup, který umožní mít stejnou funkci na svých stránkách.

Stručný popis

Webový server se dotáže (s heslem) FlexiBee a vypíše všechny faktury, které jsou vystaveny na konkrétní DIČ. Předpokládáme, že při instalaci zajistíte ověření uživatele, zjištění správného DIČ a také vizuální integraci s vašimi webovými stránkami.

Na začátku tedy FlexiBee provede dotaz na adresu http://demo.flexibee.eu/c/demo/faktura-vydana/(dic=’CZ7002051235′).js ve formátu JSON a výsledná data zobrazí v tabulce. Když uživatel projeví zájem o PDF, přečteme data z adresy http://demo.flexibee.eu/c/demo/faktura-vydana/21.json.

Webová aplikace funguje jako proxy. Přistupující uživatel tedy nemusí mít účet ve FlexiBee.

Pro snazší práci doporučujeme použít knihovnu Httpful, která se postará o korektní složení CURL dotazů.

Detailní návod

Celý balík skriptů ke stažení faktury-extranet.zip:

Je potřeba vytvořit konfigurační soubor:

<?php
// zde je potřeba doplnit konfigurační údaje pro připojení na server
$host = "https://demo.flexibee.eu:443";
$firma = "demo";
$user = "winstrom";
$password = "winstrom";

?>

Důležitá je část, která určuje DIČ firmy. Zde předpokládáme integraci s vašimi webovými stránkami, které zajistí identifikaci uživatele a načtení odpovídající firmy.
Nyní již přichází na řadu načtení přehledu faktur index.php:

<?php
include('httpful.phar');
include('config.php');

$evidence = 'faktura-vydana';
$limit = 30; // 0 = unlimited

$dic = '"CZ7002051235"';

$suffix = "/".$evidence."/(dic=".urlencode($dic).").json?order=datVyst@D&detail=detail&limit=".$limit;

$uri = $host.'/c/'.$firma.$suffix;

$response = \Httpful\Request::get($uri)
    ->authenticateWith($user, $password)
    ->send(); 

if($response->hasErrors())
{
    echo '<html><body><h1 style="color:red">'.$response->body->winstrom->message.'</h1>'; 
    die;
}
header('Content-Type: text/html; charset=utf-8');
?>
<html>
    <head>
        <title>Vystavené faktury</title>
    </head>
<body>
    <h1>Vystavené faktury</h1>

    <?php if (!isset($response->body->winstrom->$evidence)): ?>
        <p>Na Vaši firmu nebyla vystavena žádná faktura.</p>
    <?php else: ?>

    <table>
        <thead>
            <tr>
                <th>Číslo faktury</th>
                <th>Datum faktury</th>
                <th>Částka</th>
                <th>Stav</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($response->body->winstrom->$evidence as $faktura): ?>
            <tr>
                <td><a href="pdf.php?id=<?php echo $faktura->id; ?>"><?php echo $faktura->kod; ?></a></td>
                <?php $date = new \DateTime($faktura->datVyst); ?>
                <td><?php echo $date->format('d.m.Y'); ?></td>
                <td style="text-align:right"><?php echo $faktura->sumCelkem; ?> Kč</td>
                <td><?php echo ($faktura->stavUhrK == "") ? "<span style=\"color: red\">Neuhrazeno</span>" : "<span style=\"color: green\">".$faktura->{"stavUhrK@showAs"}." (dne ".$faktura->datUhr.")</span>"; ?> </td>
            </tr>               
            <?php endforeach; ?>
        </tbody>
    </table>
    <?php endif; ?>

Abychom uživateli umožnili zobrazení PDF verze faktury, vytvoříme ještě soubor pdf.php:

<?php
include('httpful.phar');
include('config.php');


$id = $_GET["id"];

$evidence = 'faktura-vydana';

$suffix = "/".$evidence."/".urlencode($id).".pdf";

$uri = $host.'/c/'.$firma.$suffix;

$response = \Httpful\Request::get($uri)
    ->authenticateWith($user, $password)
    ->send(); 

if($response->hasErrors())
{
    echo '<html><body><h1 style="color:red">'.$response->body->winstrom->message.'</h1>'; 
    die;
}
header("Content-Type: application/pdf");
header("Content-Disposition: inline; filename=\"faktura.pdf\" ");
echo $response->body;
?>

S rozhraním FlexiBee REST API můžete také exportovat fakturu jako ISDOC, zobrazovat ceník, objednávky a mnoho dalšího.

Výslednou aplikaci můžete vyzkoušet u nás, nebo ji stáhnout.