O pv2c, s.r.o.

Spoločnosť pv2c, s.r.o. bola založená v roku 2001.

Dôvodom založenia vlastnej firmy bola naša nespokojnosť s existujúcimi softvérovými produktami. Všetci sme už mali skúsenosti s prácou pre veľké a stredne veľké spoločnosti, na programátorských a administrátorských miestach. Tam sme sa presvedčili, že o zásadných veciach väčšinou rozhodujú ľudia bez potrebných vedomostí a skúseností. Aj samotné produkty sú prevažne donekonečna upravované a rozširované programy staré niekoľko rokov. Hlavnou prácou na nich je hľadanie a opravovanie chýb.

Je nám jasné, že nič nemôže byť dokonalé. Napriek tomu sa ešte stále idealisticky nazdávame, že je možné vytvoriť naozaj kvalitný softvér. Od začiatku navrhovaný čo najuniverzálnejšie a s čo najmenšími obmedzeniami. Čo najlepšie konfigurovateľný, modulárny a viacvrstvový. Používajúci otvorené štandardy a prevádzkovaný hlavne na systémoch s otvoreným kódom.

S takýmto softvérom sa nemôže stať, že pri neočakávane rýchlom raste firmy prestane stačiť a treba prechádzať na iný. V prípade potreby zmeny rozhrania (alebo jeho výzoru) ho netreba celý prerábať. Nie je závislý na žiadnom konkrétnom produkte nejakej komerčnej firmy. Zmena jedného parametra (napríklad spôsob výpočtu, alebo sadzby DPH) nevyžaduje komplikované (a drahé) upravovanie kódu. Možnosť nových výstupných formátov (napríklad WML pre WAP) je samozrejmosťou. Je maximálne prispôsobený konkrétnym požiadavkám používateľa a nenúti ho kupovať doplnkové aplikácie vyžadované funkciami, ktoré vlastne nepotrebuje.

Nevýhodou takéhoto prístupu je o niečo dlhšia fáza vývoja a prispôsobovania (konfigurácie). Za to sa vám ale odmení bezproblémovou a spoľahlivou prevádzkou. Opačný prípad, čiže kúpiť „jednoduchý“ produkt a následne s ním mať celý čas problémy, sa nám zdá menej výhodný...

Ak sa chcete sami presvedčiť, nakoľko sa nám tento cieľ podarilo splniť, pozrite sa na naše služby a produkty.

Pbatenghyngvbaf Lbh ner n bofreinag jro unpxre Vs Lbh jnag n wbo va bhe pbzcnal cyrnfr znvy gb gbhtuthl ng ci2p qbg fx Unir n avpr qnl
	Nebyl jsem si docela jistý, jestli to je dobrý nápad, kouřit
doutník, a navíc jsem měl pocit, že by se to tatínkovi ani mamince
nelíbilo, ale Vendelín se mě otázal, jestli mi tatínek s maminkou zakázali
kouřit doutníky. Chvíli jsem o tom přemýšlel a musel jsem uznat, že mi
tatínek s maminkou sice zakázali kreslit po zdech v pokoji, mluvit
u stolu, když máme návštěvu a nejsem tázán, napouštět vodu do vany, abych
si mohl pouštět parníčky, jíst sladkosti před obědem nebo před večeří,
bouchat dveřmi, strkat si prsty do nosu, mluvit sprostá slova, ale kouřit
doutníky, to ne, to mi tatínek s maminkou nezakázali.
		-- Sempé-Goscinny: Malý Mikuláš
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }
        
    function perr($msg, $level)
    {
        echo $msg;
    }

    function readcsv_get_entity($fh, $sep = ';')
    {
        $entity = array();
        $attr = '';
        $eoe = false;

        while((! feof($fh)) && (! $eoe))
        {
            $ch = fgetc($fh);
            switch($ch)
            {
                case "\r":
                    break;
                case "\n":
                    $eoe = true;
                case $sep:
                    array_push($entity, $attr);
                    $attr = '';
                    break;
                case '"':
                    $ch = '';
                    while((! feof($fh)) && $ch != '"')
                    {
                        $ch = fgetc($fh);
                        $attr .= $ch;
                    }
                    $attr = rtrim($attr, '"');
                    break;
                default:
                    $attr .= $ch;
            }
        }

        if(feof($fh) && ($entity || $attr))
        {
            array_push($entity, $attr);
        }
        elseif(feof($fh))
        {
            $entity = false;
        }

        return $entity;
    }

    function readcsv_parsecsv($filename)
    {
        $ret = false;
        $sep = ';';
        $line = '';
        $line_num = 0;
        $cells = array();
        $names = array();

        $fh = fopen($filename, 'r');
        if(! $fh)
        {
            perr('Failed to open file \''
                . $file . "'\n", 8);
        }
        else
        {
        $line = '';
        while(! feof($fh))
        {
        $entity = readcsv_get_entity($fh, $sep);

        if($entity)
        {
        if($line_num == 0)
        {
        foreach($entity as $name)
        {
            array_push($names, trim($name, '"'));
        }
        }
        else
        {
        foreach($entity as $index => $val)
        {
        if(isset($names[$index]))
        {
            $cells[$line_num][$names[$index]]
                = trim($val, '"');
        }
        else
        {
            array_push($cells[$line_num],
                trim($val, '"'));
        }                            
        }
        }
        $line_num ++;
        }
        }
        fclose($fh);
        }

        return $ret;
    }