function hae_tuotteettomat()
 {
     global $kukarow;
     $query = "SELECT tuotepaikat.tunnus ttun,\n              tuotepaikat.tuoteno,\n              tuotepaikat.saldo,\n              tuotepaikat.oletus,\n              concat_ws('-', tuotepaikat.hyllyalue,\n                             tuotepaikat.hyllynro,\n                             tuotepaikat.hyllyvali,\n                             tuotepaikat.hyllytaso) paikka,\n              tuote.tunnus\n              FROM tuotepaikat\n              LEFT JOIN tuote ON (tuote.yhtio = tuotepaikat.yhtio\n                AND tuote.tuoteno     = tuotepaikat.tuoteno)\n              WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n              AND (tuote.tunnus is null or tuote.ei_saldoa != '')\n              ORDER BY tuotepaikat.tuoteno";
     $result = pupe_query($query);
     return $result;
 }
function massamuuttaja($taulu, $sarake, $korvattava, $korvaava)
{
    global $yhtiorow, $kukarow;
    $paivityslause = "UPDATE {$taulu} SET\n                     {$sarake} = '{$korvaava}',\n                     muuttaja    = '{$kukarow['kuka']}',\n                     muutospvm   = now()\n                     WHERE yhtio = '{$kukarow['yhtio']}'\n                     AND {$sarake} = '{$korvattava}'";
    $resultpaivitys = pupe_query($paivityslause);
    return mysql_affected_rows();
}
Example #3
0
 /**
  * Palauttaa ketjun kaikki tuotteet
  */
 function tuotteet($ketju, $options = array())
 {
     global $kukarow;
     $tuotteet = array();
     $conditions = '';
     if (!empty($options)) {
         if ($options['skippaa_vaihtoehtoiset']) {
             $conditions .= " AND vaihtoehtoinen = '' ";
         }
         // Tsekataan tarvittavat parametrit
         if ($options['vastaavuusketjun_jarjestys'] == 'K') {
             // Haetaan tuotteen järjestys jolla ketju on alunperin haettu
             $query = "SELECT if (jarjestys=0, 9999, jarjestys) jarjestys\n                  FROM vastaavat\n                  WHERE yhtio = '{$kukarow['yhtio']}'\n                  AND id      = '{$ketju}'\n                  AND tuoteno = '{$this->tuote}'";
             $result = pupe_query($query);
             $jarjestys = mysql_fetch_assoc($result);
             $conditions .= "HAVING jarjestys >= {$jarjestys['jarjestys']}";
         }
     }
     // Haetaan korvaavat ketju ja tuotteiden tiedot
     $query = "SELECT 'vastaava' as tyyppi, if (vastaavat.jarjestys=0, 9999, vastaavat.jarjestys) jarjestys, vastaavat.vaihtoehtoinen, vastaavat.tunnus as vastaavat_tunnus, tuote.*\n              FROM vastaavat\n              JOIN tuote ON vastaavat.yhtio=tuote.yhtio AND vastaavat.tuoteno=tuote.tuoteno\n              WHERE vastaavat.yhtio = '{$kukarow['yhtio']}'\n              AND vastaavat.id      = '{$ketju}'\n              {$conditions}\n              ORDER BY jarjestys, tuoteno";
     $result = pupe_query($query);
     while ($tuote = mysql_fetch_assoc($result)) {
         $tuotteet[] = $tuote;
     }
     return $tuotteet;
 }
Example #4
0
function hae($viivakoodi = '', $tuoteno = '', $tuotepaikka = '')
{
    global $kukarow;
    // Poistetaan tuotepaikasta välimerkit
    $hylly = preg_replace("/[^a-zA-ZåäöÅÄÖ0-9]/", "", $tuotepaikka);
    // Hakuehdot
    if ($tuoteno != '') {
        $params['tuoteno'] = "tuote.tuoteno = '{$tuoteno}'";
    }
    if ($tuotepaikka != '') {
        $params['tuotepaikka'] = "hyllypaikka LIKE '{$hylly}%'";
    }
    // Viivakoodi case
    if ($viivakoodi != '') {
        $tuotenumerot = hae_viivakoodilla($viivakoodi);
        $param_viivakoodi = array();
        foreach ($tuotenumerot as $_tuoteno => $_arr) {
            array_push($param_viivakoodi, $_tuoteno);
        }
        $params['viivakoodi'] = "tuote.tuoteno in ('" . implode($param_viivakoodi, "','") . "')";
    }
    $osumat = array();
    if (!empty($params)) {
        $haku_ehto = implode($params, " AND ");
        $query = "SELECT\n              tuote.tuoteno,\n              inventointilistarivi.otunnus as inventointilista,\n              inventointilistarivi.aika as inventointilista_aika,\n              concat(  lpad(upper(tuotepaikat.hyllyalue), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllynro), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllyvali), 5, '0'),\n                  lpad(upper(tuotepaikat.hyllytaso), 5, '0')) as sorttauskentta,\n              concat_ws('-',tuotepaikat.hyllyalue, tuotepaikat.hyllynro,\n                    tuotepaikat.hyllyvali, tuotepaikat.hyllytaso) tuotepaikka\n              FROM tuotepaikat\n              JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n                AND varastopaikat.tunnus                   = tuotepaikat.varasto\n                AND varastopaikat.toimipaikka              = '{$kukarow['toimipaikka']}'\n                AND varastopaikat.tyyppi                   = ''\n              )\n              JOIN tuote on (tuote.yhtio=tuotepaikat.yhtio and tuote.tuoteno=tuotepaikat.tuoteno)\n              LEFT JOIN inventointilistarivi ON (inventointilistarivi.yhtio = tuotepaikat.yhtio\n                AND inventointilistarivi.tuotepaikkatunnus = tuotepaikat.tunnus\n                AND inventointilistarivi.tila              = 'A')\n              WHERE tuotepaikat.yhtio                      = '{$kukarow['yhtio']}'\n              AND {$haku_ehto}\n              LIMIT 200";
        $result = pupe_query($query);
        while ($row = mysql_fetch_assoc($result)) {
            $osumat[] = $row;
        }
    }
    return $osumat;
}
Example #5
0
function datansisalto_e3($e3_ehdotuskansio, $dfile, $otunnus, $toimituspaiva)
{
    global $yhtiorow, $kukarow;
    $laskuquery = "SELECT *\n                 FROM lasku\n                 WHERE yhtio = '{$kukarow['yhtio']}'\n                 AND tunnus  = '{$otunnus}'";
    $lasku_result = pupe_query($laskuquery);
    $laskurow = mysql_fetch_array($lasku_result);
    $lines = file($e3_ehdotuskansio . "/" . $dfile);
    foreach ($lines as $line) {
        $tuoteno = pupesoft_cleanstring(substr($line, 12, 17));
        $varasto = pupesoft_cleanstring(substr($line, 30, 3));
        $tuotenimi = pupesoft_cleanstring(substr($line, 33, 34));
        $kpl = pupesoft_cleannumber(substr($line, 68, 7));
        //$hinta     = pupesoft_cleannumber(substr($line, 91, 13));
        //$hinta     = $hinta / 10000;
        $tuote_query = "SELECT tuote.try,\n                    tuote.osasto,\n                    tuote.tuoteno,\n                    tuote.nimitys,\n                    tuote.yksikko,\n                    tuotepaikat.hyllyalue,\n                    tuotepaikat.hyllynro,\n                    tuotepaikat.hyllytaso,\n                    tuotepaikat.hyllyvali\n                    FROM tuote\n                    LEFT JOIN tuotepaikat ON (tuotepaikat.yhtio = tuote.yhtio and tuotepaikat.tuoteno = tuote.tuoteno)\n                    WHERE tuote.yhtio = '{$kukarow['yhtio']}'\n                    AND tuote.tuoteno = '{$tuoteno}'\n                    ORDER BY tuotepaikat.oletus DESC\n                    LIMIT 1";
        $tuote_result = pupe_query($tuote_query);
        $tuote_row = mysql_fetch_array($tuote_result);
        if ($tuote_row['tuoteno'] == '') {
            echo "<br>";
            echo "<font class='error'>" . t("Tiedostosta %s tuotetietoja tuotteelle %s ei löydy tuotehallinnasta. Tuotetta ei lisätty ostoehdotukseen.", "", $file, $tuoteno) . "</font>";
            echo "<br>";
        } else {
            list($hinta, $netto, $ale, ) = alehinta_osto($laskurow, $tuote_row, $kpl);
            $insert_query = "INSERT INTO tilausrivi SET\n                       yhtio     = '{$kukarow['yhtio']}',\n                       tyyppi    = 'O',\n                       toimaika  = '{$toimituspaiva}',\n                       otunnus   = '{$otunnus}',\n                       tuoteno   = '{$tuoteno}',\n                       try       = '{$tuote_row['try']}',\n                       osasto    = '{$tuote_row['osasto']}',\n                       nimitys   = '{$tuote_row['nimitys']}',\n                       tilkpl    = '{$kpl}',\n                       yksikko   = '{$tuote_row['yksikko']}',\n                       varattu   = '{$kpl}',\n                       hinta     = '{$hinta}',\n                       netto     = '{$netto}',\n                       ale1      = '{$ale['ale1']}',\n                       ale2      = '{$ale['ale2']}',\n                       ale3      = '{$ale['ale3']}',\n                       laatija   = 'E3',\n                       laadittu  = now(),\n                       hyllyalue = '{$tuote_row['hyllyalue']}',\n                       hyllynro  = '{$tuote_row['hyllynro']}',\n                       hyllytaso = '{$tuote_row['hyllytaso']}',\n                       hyllyvali = '{$tuote_row['hyllyvali']}'";
            $insertdata = pupe_query($insert_query);
        }
    }
    echo "<br>";
    echo "<font class='message'>" . t("Ostoehdotus %s siirretty ostotilaukseksi %s.", "", $filunloppu, $otunnus) . "</font>";
    echo "<br><br>";
    // Siirretään done kansioon
    rename($e3_ehdotuskansio . "/" . $dfile, $e3_ehdotuskansio . "/done/" . $dfile);
}
Example #6
0
 function alku()
 {
     global $yhtiorow, $firstpage, $pdf, $rectparam, $norm, $norm_bold, $pieni, $ytunnus, $asiakasid, $kukarow, $kala, $tid, $otsikkotid;
     static $sivu;
     $sivu++;
     if (!isset($pdf)) {
         //PDF parametrit
         $pdf = new pdffile();
         $pdf->enable('template');
         $pdf->set_default('margin-top', 0);
         $pdf->set_default('margin-bottom', 0);
         $pdf->set_default('margin-left', 0);
         $pdf->set_default('margin-right', 0);
         $rectparam["width"] = 0.3;
         $norm["height"] = 12;
         $norm["font"] = "Courier";
         $norm_bold["height"] = 12;
         $norm_bold["font"] = "Courier-Bold";
         $pieni["height"] = 8;
         $pieni["font"] = "Courier";
         $query = "SELECT *\n                 FROM asiakas\n                 WHERE yhtio = '{$kukarow['yhtio']}'\n                 and tunnus  = '{$asiakasid}'";
         $assresult = pupe_query($query);
         $assrow = mysql_fetch_assoc($assresult);
         // Tehdään firstpage
         $firstpage = $pdf->new_page("a4");
         //  Tehdään headertemplate
         $tid = $pdf->template->create();
         $pdf->template->rectangle($tid, 20, 20, 0, 580, $rectparam);
         $pdf->template->text($tid, 30, 5, $yhtiorow["nimi"], $pieni);
         $pdf->template->text($tid, 170, 5, "{$assrow['nimi']} {$assrow['nimitark']} ({$ytunnus}) " . t("alennustaulukko"));
         $pdf->template->place($tid, $firstpage, 0, 800);
         //  Tehdään otsikkoheader
         $otsikkotid = $pdf->template->create();
         $pdf->template->text($otsikkotid, 30, 20, t("Osasto"), $norm_bold);
         $pdf->template->text($otsikkotid, 30, 0, t("Tuoteryhmä") . "/" . t("Tuotenumero"), $norm_bold);
         $pdf->template->text($otsikkotid, 330, 0, t("Aleryhmä"), $norm_bold);
         $pdf->template->text($otsikkotid, 450, 0, t("Alennus"), $norm_bold);
         if ($yhtiorow['myynnin_alekentat'] > 1) {
             $pdf->template->text($otsikkotid, 520, 0, t("Alelaji"), $norm_bold);
         }
         $pdf->template->place($otsikkotid, $firstpage, 0, 665, $norm_bold);
         $kala = 650;
         //  Asiakastiedot
         //$pdf->draw_rectangle(737, 20,  674, 300, $firstpage, $rectparam);
         $pdf->draw_text(50, 759, t("Osoite", $kieli), $firstpage, $pieni);
         $pdf->draw_text(50, 747, $assrow["nimi"], $firstpage, $norm);
         $pdf->draw_text(50, 737, $assrow["nimitark"], $firstpage, $norm);
         $pdf->draw_text(50, 727, $assrow["osoite"], $firstpage, $norm);
         $pdf->draw_text(50, 717, $assrow["postino"] . " " . $assrow["postitp"], $firstpage, $norm);
         $pdf->draw_text(50, 707, $assrow["maa"], $firstpage, $norm);
     } else {
         //  Liitetään vaan valmiit templatet uudelle sivulle
         $firstpage = $pdf->new_page("a4");
         $pdf->template->place($tid, $firstpage, 0, 800);
         $pdf->template->place($otsikkotid, $firstpage, 0, 760);
     }
     $pdf->draw_text(520, 805, t("Sivu") . ": {$sivu}", $firstpage, $norm);
 }
Example #7
0
function va_ti_en_jt($tuoteno, $hyllyalue, $hyllynro, $hyllyvali, $hyllytaso)
{
    global $kukarow, $yhtiorow, $lisavarattu;
    //tilauksessa, ennakkopoistot ja jt
    $query = "SELECT\n            sum(if(tyyppi in ('W','M'), varattu, 0)) valmistuksessa,\n            sum(if(tyyppi = 'O', varattu, 0)) tilattu,\n            sum(if(tyyppi = 'E', varattu, 0)) ennakot,\n            sum(if(tyyppi in ('L','V') and var not in ('P','J','O','S'), varattu, 0)) ennpois,\n            sum(if(tyyppi in ('L','G') and var = 'J', jt {$lisavarattu}, 0)) jt\n            FROM tilausrivi use index (yhtio_tyyppi_tuoteno_laskutettuaika)\n            WHERE yhtio        = '{$kukarow['yhtio']}'\n             AND tyyppi        in ('L','V','O','G','E','W','M')\n            AND tuoteno        = '{$tuoteno}'\n            AND laskutettuaika = '0000-00-00'\n            AND hyllyalue      = '{$hyllyalue}'\n            AND hyllynro       = '{$hyllynro}'\n            AND hyllyvali      = '{$hyllyvali}'\n            AND hyllytaso      = '{$hyllytaso}'\n            AND (varattu+jt > 0)";
    $result = pupe_query($query);
    $ennp = mysql_fetch_assoc($result);
    return array($ennp['tilattu'], $ennp['valmistuksessa'], $ennp['ennpois'], $ennp['jt']);
}
Example #8
0
function hae_skannattu_lasku($kasittele_seuraava = "")
{
    global $kukarow, $yhtiorow;
    $dir = $yhtiorow['skannatut_laskut_polku'];
    if (!is_dir($dir) or !is_writable($dir)) {
        return false;
    }
    // käydään läpi ensin käsiteltävät kuvat
    $files = listdir($dir);
    $files_count = count($files);
    // Jos ei ole yhtään tiedostoa, palautetaan false
    if ($files_count == 0) {
        return false;
    }
    // Tehdään palautusta varten array, palautetaan aina laskujen lukumäärä
    $palautus = array("lukumaara" => $files_count);
    // Katsotaan onko laskuja, jota käyttäjä voisi käsitellä
    $query = "SELECT kesken\n            FROM kuka\n            WHERE yhtio  = '{$kukarow["yhtio"]}'\n            AND extranet = ''";
    $kesken_chk_res = pupe_query($query);
    foreach ($files as $file) {
        $path_parts = pathinfo($file);
        mysql_data_seek($kesken_chk_res, 0);
        while ($kesken_chk_row = mysql_fetch_assoc($kesken_chk_res)) {
            // Jos tiedosto on tällä käyttäjällä kesken
            if (is_numeric($path_parts['filename']) and $path_parts['filename'] == $kukarow['kesken']) {
                // Palautetaan kesken -key, jos tämä on meillä kesken
                $palautus["kesken"] = $path_parts["basename"];
                $palautus["seuraava"] = $path_parts["basename"];
                return $palautus;
            } elseif ($path_parts['filename'] == $kesken_chk_row['kesken']) {
                continue 2;
            }
        }
        // Jos halutaan ottaa seuraava lasku käsittelyyn, päivitetään kuka -tiedot
        if ($kasittele_seuraava != "") {
            // Tämän tiedoston voi käsitellä seuraavaksi, laitetaan se käyttäjälle keskeneräiseksi
            list($micro, $timestamp) = explode(" ", microtime());
            $file_basename = substr($timestamp . substr($micro * 10, 0, 1), 2);
            $kukarow['kesken'] = $file_basename;
            $file_new = $dir . "/" . $file_basename . "." . $path_parts['extension'];
            $query = "UPDATE kuka SET kesken = '{$kukarow["kesken"]}'\n                WHERE yhtio = '{$kukarow["yhtio"]}'\n                AND kuka    = '{$kukarow["kuka"]}'";
            $kesken_upd_res = pupe_query($query);
            if (!rename($file, $file_new)) {
                echo t("Ei pystytä nimeämään tiedostoa") . "<br>";
                return false;
            }
            // Otetaan path parts uudesta tiedostonimestä
            $path_parts = pathinfo($file_new);
        }
        // Tämän laskun voi käsitellä
        $palautus["seuraava"] = $path_parts["basename"];
        return $palautus;
    }
    // Ei löytynyt yhtään sopivaa laskua
    return false;
}
Example #9
0
 function kuka_kayttaja($keta_haetaan)
 {
     global $kukarow, $yhtiorow;
     $query = "SELECT kuka.nimi\n              FROM kuka\n              WHERE kuka.yhtio = '{$kukarow['yhtio']}'\n              AND kuka.kuka ='{$keta_haetaan}'";
     $kukares = pupe_query($query);
     $row = mysql_fetch_assoc($kukares);
     if ($row["nimi"] != "") {
         return $row["nimi"];
     } else {
         return $keta_haetaan;
     }
 }
Example #10
0
 /**
  * Hakee ketjun päätuotteen
  */
 function paatuote()
 {
     global $kukarow;
     // Haetaan ketjun päätuote
     if ($this->id) {
         $query = "SELECT *\n                FROM korvaavat\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                AND id      = {$this->id}\n                ORDER BY if (jarjestys=0, 9999, jarjestys), tuoteno\n                LIMIT 1";
         $result = pupe_query($query);
         $ketju = mysql_fetch_assoc($result);
         $this->paatuote = $ketju;
     }
     return $this->paatuote['tuoteno'];
 }
Example #11
0
 function getnoderow($toim, $nodeid)
 {
     global $yhtiorow, $kukarow;
     $qu = "SELECT *\n           FROM dynaaminen_puu\n           WHERE dynaaminen_puu.yhtio = '{$yhtiorow['yhtio']}'\n           AND dynaaminen_puu.laji    = '{$toim}'\n           AND dynaaminen_puu.tunnus  = '{$nodeid}'";
     $re = pupe_query($qu);
     $numres = mysql_num_rows($re);
     if ($numres > 0) {
         $row = mysql_fetch_assoc($re);
         return $row;
     } else {
         return false;
     }
 }
Example #12
0
 function laskeveroja($taso, $tulos)
 {
     global $kukarow, $startmonth, $endmonth;
     if ($tulos == '22' or $tulos == 'veronmaara' or $tulos == 'summa') {
         if ($taso == 'fi307') {
             $vainsuomi = "JOIN lasku ON lasku.yhtio=tiliointi.yhtio and lasku.tunnus=tiliointi.ltunnus and lasku.maa in ('FI', '')";
         } else {
             $vainsuomi = '';
         }
         if ($taso == 'fi309' or $taso == 'fi310') {
             $_309lisa = " or alv_taso like '%fi300%' ";
             $vainveroton = " and tiliointi.vero = 0 ";
         } else {
             $_309lisa = "";
             $vainveroton = '';
         }
         $query = "SELECT ifnull(group_concat(if(alv_taso like '%fi300%', concat(\"'\",tilino,\"'\"), NULL)), '') tilit300,\n                ifnull(group_concat(if(alv_taso not like '%fi300%', concat(\"'\",tilino,\"'\"), NULL)), '') tilitMUU\n                FROM tili\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                and (alv_taso like '%{$taso}%' {$_309lisa})";
         $tilires = pupe_query($query);
         $tilirow = mysql_fetch_array($tilires);
         $vero = 0.0;
         if ($tilirow['tilit300'] != '' or $tilirow['tilitMUU'] != '') {
             $tiliointilisa = '';
             if ($ryhma == 'fi307') {
                 $tiliointilisa = " and tiliointi.vero > 0 ";
             }
             $query = "SELECT sum(round(tiliointi.summa * if('{$tulos}'='22', 22, vero) / 100, 2)) veronmaara,\n                  sum(tiliointi.summa) summa,\n                   count(*) kpl\n                  FROM tiliointi\n                  {$vainsuomi}\n                  WHERE tiliointi.yhtio = '{$kukarow['yhtio']}'\n                  {$tiliointilisa}\n                  AND korjattu          = ''\n                  AND (";
             if ($tilirow["tilit300"] != "") {
                 $query .= "  (tilino in ({$tilirow['tilit300']}) {$vainveroton})";
             }
             if ($tilirow["tilit300"] != "" and $tilirow["tilitMUU"] != "") {
                 $query .= " or ";
             }
             if ($tilirow["tilitMUU"] != "") {
                 $query .= "   tilino in ({$tilirow['tilitMUU']})";
             }
             $query .= "  )\n              AND tiliointi.tapvm >= '{$startmonth}'\n              AND tiliointi.tapvm <= '{$endmonth}'";
             $verores = pupe_query($query);
             while ($verorow = mysql_fetch_array($verores)) {
                 if ($tulos == '22') {
                     $tulos = 'veronmaara';
                 }
                 $vero += $verorow[$tulos];
             }
         }
     } else {
         $vero = 0;
     }
     return sprintf('%.2f', $vero);
 }
Example #13
0
 function tuoteryhman_varastonarvo($parametrit)
 {
     global $kukarow, $yhtiorow;
     $osasto = $parametrit['osasto'];
     $try = $parametrit['try'];
     $pvm1 = $parametrit['pvm1'];
     $pvm2 = $parametrit['pvm2'];
     if ($pvm1 == "" or $osasto == "" or $try == "") {
         return false;
     }
     // saldo nyt
     $query = "SELECT sum(saldo) saldo_nyt\n              FROM tuote\n              JOIN tuotepaikat on (tuote.yhtio = tuotepaikat.yhtio AND tuote.tuoteno = tuotepaikat.tuoteno)\n              WHERE tuote.yhtio = '{$kukarow["yhtio"]}'\n              AND tuote.osasto  = '{$osasto}'\n              AND tuote.try     = '{$try}'";
     $result = pupe_query($query);
     $arvo = mysql_fetch_assoc($result);
     $saldo_nyt = $arvo['saldo_nyt'];
     // varastonmuutos
     $query = "SELECT\n              sum(if(tapahtuma.laadittu >= '{$pvm1} 00:00:00', tapahtuma.kpl, 0)) muutoskpl1,\n              sum(if(tapahtuma.laadittu >= '{$pvm2} 00:00:00', tapahtuma.kpl, 0)) muutoskpl2\n               FROM tuote\n              JOIN tapahtuma on (tuote.yhtio = tapahtuma.yhtio AND tuote.tuoteno = tapahtuma.tuoteno and tapahtuma.laadittu >= '{$pvm2} 00:00:00' and tapahtuma.laji != 'Epäkurantti')\n              WHERE tuote.yhtio = '{$kukarow['yhtio']}'\n               AND tuote.osasto = '{$osasto}'\n              AND tuote.try     = '{$try}'\n              ORDER BY tapahtuma.laadittu desc, tapahtuma.tunnus desc";
     $muutosres = pupe_query($query);
     $row = mysql_fetch_assoc($muutosres);
     $arvo1 = $saldo_nyt + $row['muutoskpl1'];
     $arvo2 = $saldo_nyt + $row['muutoskpl2'];
     return array($arvo1, $arvo2);
 }
Example #14
0
 $api_keys["user_api_key"] = $maventa_keys['maventa_api_avain'];
 $api_keys["vendor_api_key"] = $maventa_keys['maventa_ohjelmisto_api_avain'];
 // Vaihtoehtoinen company_uuid
 if ($maventa_keys['maventa_yrityksen_uuid'] != "") {
     $api_keys["company_uuid"] = $maventa_keys['maventa_yrityksen_uuid'];
 }
 // Kellonaika Maventan serverillä "YYYYMMDDHHMMSS"
 $maventan_kellonaika = $client->server_time();
 $maventan_kellonaika = date("Y-m-d H:i:s", strtotime(substr($maventan_kellonaika, 0, 8) . "T" . substr($maventan_kellonaika, 8)));
 // Haetaan uudet laskut
 // $maventa_keys["maventa_aikaleima"] --> viimeisin laskuhaku kannassa, tästä otettu 5 minsaa pois niin pelataan aikaikkunoiden suhteen varman päälle.
 // Duplikaattitsekki kuitenkin laskuloopissa.
 $uudet_laskut = $client->invoice_list_inbound($api_keys, preg_replace("/[^0-9]/", "", $maventa_keys["maventa_aikaleima"]));
 // Päivitetään aikaleima kantaan
 $aika_query = "UPDATE yhtion_parametrit\n                 SET maventa_aikaleima = '{$maventan_kellonaika}'\n                 WHERE yhtio = '{$maventa_keys['yhtio']}'";
 $aika_res = pupe_query($aika_query);
 // Jos uusia laskuja ei löydy
 if (!$uudet_laskut) {
     continue;
 }
 // Haetaan uudet laskut ja niiden liitteet
 foreach ($uudet_laskut as $lasku) {
     // Jos id on tyhjää niin ohitetaan
     if ($lasku->id == "") {
         continue;
     }
     $find = exec("find {$verkkolaskut_in} -name \"*maventa_{$lasku->id}_maventa*\"");
     // Tsekataan ettei tää lasku oo jo noudettu
     if ($find != "") {
         continue;
     }
Example #15
0
 if ($mikataso > 0) {
     if (!$php_cli) {
         echo "<tr><td><a target='Tuotekysely' href='{$palvelin2}tuote.php?tee=Z&tuoteno=" . urlencode($epakurantti_row['tuoteno']) . "'>{$epakurantti_row['tuoteno']}</a>";
     }
     // Näytetään varastossa olevat erät/sarjanumerot
     if ($epakurantti_row["sarjanumeroseuranta"] == "V" or $epakurantti_row['sarjanumeroseuranta'] == 'T') {
         $query = "SELECT sarjanumeroseuranta.*, sarjanumeroseuranta.tunnus sarjatunnus,\n                     tilausrivi_osto.tunnus osto_rivitunnus,\n                     tilausrivi_osto.perheid2 osto_perheid2,\n                     tilausrivi_osto.nimitys nimitys,\n                     lasku_myynti.nimi myynimi\n                     FROM sarjanumeroseuranta\n                     LEFT JOIN tilausrivi tilausrivi_myynti use index (PRIMARY) ON tilausrivi_myynti.yhtio=sarjanumeroseuranta.yhtio and tilausrivi_myynti.tunnus=sarjanumeroseuranta.myyntirivitunnus\n                     LEFT JOIN tilausrivi tilausrivi_osto   use index (PRIMARY) ON tilausrivi_osto.yhtio=sarjanumeroseuranta.yhtio   and tilausrivi_osto.tunnus=sarjanumeroseuranta.ostorivitunnus\n                     LEFT JOIN lasku lasku_osto   use index (PRIMARY) ON lasku_osto.yhtio=sarjanumeroseuranta.yhtio and lasku_osto.tunnus=tilausrivi_osto.uusiotunnus\n                     LEFT JOIN lasku lasku_myynti use index (PRIMARY) ON lasku_myynti.yhtio=sarjanumeroseuranta.yhtio and lasku_myynti.tunnus=tilausrivi_myynti.otunnus\n                     WHERE sarjanumeroseuranta.yhtio           = '{$kukarow['yhtio']}'\n                     and sarjanumeroseuranta.tuoteno           = '{$epakurantti_row['tuoteno']}'\n                     and sarjanumeroseuranta.myyntirivitunnus != -1\n                     and (tilausrivi_myynti.tunnus is null or tilausrivi_myynti.laskutettuaika = '0000-00-00')\n                     and tilausrivi_osto.laskutettuaika       != '0000-00-00'";
         $sarjares = pupe_query($query);
         while ($sarjarow = mysql_fetch_assoc($sarjares)) {
             if (!$php_cli) {
                 echo "<br>" . t("S:nro") . "{$sarjarow['sarjanumero']}";
             }
         }
     } elseif ($epakurantti_row["sarjanumeroseuranta"] == "E" or $epakurantti_row["sarjanumeroseuranta"] == "F") {
         $query = "SELECT sarjanumeroseuranta.sarjanumero, sarjanumeroseuranta.parasta_ennen, sarjanumeroseuranta.lisatieto,\n                     sarjanumeroseuranta.hyllyalue, sarjanumeroseuranta.hyllynro, sarjanumeroseuranta.hyllyvali, sarjanumeroseuranta.hyllytaso,\n                     sarjanumeroseuranta.era_kpl kpl,\n                     sarjanumeroseuranta.tunnus sarjatunnus\n                     FROM sarjanumeroseuranta\n                     LEFT JOIN tilausrivi tilausrivi_osto   use index (PRIMARY) ON tilausrivi_osto.yhtio=sarjanumeroseuranta.yhtio   and tilausrivi_osto.tunnus=sarjanumeroseuranta.ostorivitunnus\n                     WHERE sarjanumeroseuranta.yhtio           = '{$kukarow['yhtio']}'\n                     and sarjanumeroseuranta.tuoteno           = '{$epakurantti_row['tuoteno']}'\n                     and sarjanumeroseuranta.myyntirivitunnus  = 0\n                     and sarjanumeroseuranta.era_kpl          != 0\n                     and tilausrivi_osto.laskutettuaika       != '0000-00-00'";
         $sarjares = pupe_query($query);
         while ($sarjarow = mysql_fetch_assoc($sarjares)) {
             if (!$php_cli) {
                 echo "<br>" . t("E:nro") . " {$sarjarow['sarjanumero']} ({$sarjarow['kpl']})";
             }
         }
     }
     if (!$php_cli) {
         echo "</td>";
     }
     $tuotensarake = $excelsarake;
     $worksheet->writeString($excelrivi, $excelsarake++, $epakurantti_row['tuoteno']);
     if (!$php_cli) {
         echo "<td>{$epakurantti_row['nimitys']}</td>";
     }
     $worksheet->writeString($excelrivi, $excelsarake++, $epakurantti_row['nimitys']);
     echo "</form><br>";
 } else {
     echo t("Ei tulostamattomia keräyserätarroja");
 }
 echo "<br><br><font class='head'>" . t("Tulostetut keräyserätarrat") . "</font><hr>";
 $query = "SELECT DATE_FORMAT(lasku.luontiaika, '%Y-%m-%d %H:%i') luontiaika, lasku.toimaika, lasku.ytunnus, lasku.nimi, lasku.toim_nimi, group_concat(lasku.tunnus) laskutunnukset, count(tilausrivi.tunnus) riveja, sum(tilausrivi.tilkpl) myyntieria\n            FROM lasku\n            JOIN tilausrivi ON lasku.yhtio = tilausrivi.yhtio and lasku.tunnus = tilausrivi.otunnus and tilausrivi.tyyppi = 'Z'\n            WHERE lasku.yhtio    = '{$kukarow['yhtio']}'\n            and lasku.tila       = 'Z'\n            and lasku.alatila    = 'X'\n            and lasku.luontiaika >= date_sub(now(), INTERVAL 30 DAY)\n            GROUP BY 1,2,3,4,5\n            ORDER BY 1 DESC,2 DESC,3,4,5";
 $tarrares = pupe_query($query);
 if (mysql_num_rows($tarrares) > 0) {
     echo "<form method='post'>";
     echo "<input type='hidden' name='tee' value='vanhat'>";
     echo "<table>";
     echo "<tr><th>" . t("Vastaanotettu") . "</th><th>" . t("Toimitusaika") . "</th><th>" . t("Ytunnus") . "</th><th>" . t("Nimi") . "</th><th>" . t("Toim.Nimi") . "</th><th>" . t("Rivejä") . "</th><th>" . t("Myyntieriä") . "</th><th>" . t("Tulosta") . "</th></tr>";
     $yhtriveja = 0;
     $yhteria = 0;
     $query = "SELECT *\n              from kirjoittimet\n              where yhtio = '{$kukarow['yhtio']}'";
     $kires2 = pupe_query($query);
     while ($tarrarow = mysql_fetch_array($tarrares)) {
         echo "<tr><td>" . tv1dateconv($tarrarow["luontiaika"], "P") . "</td><td>" . tv1dateconv($tarrarow["toimaika"]) . "</td><td>{$tarrarow['ytunnus']}</td><td>{$tarrarow['nimi']}</td><td>{$tarrarow['toim_nimi']}</td><td align='right'>{$tarrarow['riveja']}</td><td align='right'>{$tarrarow['myyntieria']}</td>";
         echo "<td align='center'><input type='checkbox' name='vanhatunnukset[]' value='{$tarrarow['laskutunnukset']}'></td></tr>";
     }
     echo "</table><br>";
     echo "<select name='kirjoitinvan'>";
     echo "<option value='{$kirow2['komento']}'>" . t("Valitse kirjoitin") . "</option>";
     while ($kirow2 = mysql_fetch_array($kires2)) {
         if ($kirow2['komento'] == $kirjoitinvan) {
             $select = 'SELECTED';
         } else {
             $select = '';
         }
         echo "<option value='{$kirow2['komento']}' {$select}>{$kirow2['kirjoitin']}</option>";
     }
Example #17
0
function hae_rivit($tyyppi, $kukarow, $vva, $kka, $ppa, $vvl, $kkl, $ppl, $apaikka, $lpaikka, $varastot, $keraysvyohykkeet, $lisa_kentat, $kerayksettomat_tuotepaikat, $lisa)
{
    global $yhtiorow;
    $ostoehdotukset = array('' => t("Ehdotetaan ostoehdotusohjelmissa tilattavaksi"), 'E' => "Ei ehdoteta ostoehdotusohjelmissa tilattavaksi");
    if (strtotime("{$vva}-{$kka}-{$ppa}") < strtotime('now - 12 months')) {
        $_date = "AND tilausrivi.kerattyaika >= '{$vva}-{$kka}-{$ppa} 00:00:00'\n          AND tilausrivi.kerattyaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59'";
    } else {
        $_date = "AND tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 12 month)";
    }
    $tuotepaikka_where = "";
    $a = array_filter($apaikka);
    $l = array_filter($lpaikka);
    if (!empty($a) or !empty($l)) {
        $ahyllyalue = $apaikka['ahyllyalue'];
        $ahyllynro = $apaikka['ahyllynro'];
        $ahyllyvali = $apaikka['ahyllyvali'];
        $ahyllytaso = $apaikka['ahyllytaso'];
        $lhyllyalue = $lpaikka['lhyllyalue'];
        $lhyllynro = $lpaikka['lhyllynro'];
        $lhyllyvali = $lpaikka['lhyllyvali'];
        $lhyllytaso = $lpaikka['lhyllytaso'];
        $tuotepaikka_where = "and concat(rpad(upper(tilausrivi.hyllyalue) ,5,'0'),lpad(upper(tilausrivi.hyllynro) ,5,'0'),lpad(upper(tilausrivi.hyllyvali) ,5,'0'),lpad(upper(tilausrivi.hyllytaso) ,5,'0')) >=\n          concat(rpad(upper('{$ahyllyalue}'), 5, '0'),lpad(upper('{$ahyllynro}'), 5, '0'),lpad(upper('{$ahyllyvali}'), 5, '0'),lpad(upper('{$ahyllytaso}'),5, '0'))\n          and concat(rpad(upper(tilausrivi.hyllyalue) ,5,'0'),lpad(upper(tilausrivi.hyllynro) ,5,'0'),lpad(upper(tilausrivi.hyllyvali) ,5,'0'),lpad(upper(tilausrivi.hyllytaso) ,5,'0')) <=\n          concat(rpad(upper('{$lhyllyalue}'), 5, '0'),lpad(upper('{$lhyllynro}'), 5, '0'),lpad(upper('{$lhyllyvali}'), 5, '0'),lpad(upper('{$lhyllytaso}'),5, '0'))";
    }
    $varasto_lisa1 = "";
    $varasto_lisa2 = "";
    if (!empty($varastot)) {
        $varasto_lisa1 = " AND tuotepaikat.varasto IN (" . implode(",", $varastot) . ") ";
        $varasto_lisa2 = " AND tilausrivi.varasto IN (" . implode(",", $varastot) . ") ";
    }
    $tuote_select = "";
    $keraysvyohyke_select = "";
    $keraysvyohyke_join = "";
    $varaston_hyllypaikat_join = "";
    $group = ",";
    if ($yhtiorow['kerayserat'] == "K") {
        $keraysvyohyke_select = "keraysvyohyke.nimitys as keraysvyohykkeen_nimitys,";
        $keraysvyohyke_join = " JOIN keraysvyohyke ON (keraysvyohyke.yhtio = vh.yhtio AND keraysvyohyke.tunnus = vh.keraysvyohyke)";
        $varaston_hyllypaikat_join = " JOIN varaston_hyllypaikat AS vh\n                    ON (\n                      vh.yhtio = tilausrivi.yhtio\n                      AND vh.hyllyalue = tilausrivi.hyllyalue\n                      AND vh.hyllynro = tilausrivi.hyllynro\n                      AND vh.hyllytaso = tilausrivi.hyllytaso\n                      AND vh.hyllyvali = tilausrivi.hyllyvali";
        if (!empty($keraysvyohykkeet)) {
            $varaston_hyllypaikat_join .= "  AND vh.keraysvyohyke IN (" . implode(",", $keraysvyohykkeet) . ")";
        }
        $varaston_hyllypaikat_join .= ")";
        $group .= "keraysvyohykkeen_nimitys,";
    }
    if ($tyyppi == "TUOTE") {
        $vresult = t_avainsana("S");
        $tuote_statukset = array();
        while ($status = mysql_fetch_assoc($vresult)) {
            $tuote_statukset[$status['selite']] = $status['selitetark'];
        }
        $checked_count = 0;
        if (!empty($lisa_kentat)) {
            foreach ($lisa_kentat as $lisa_kentta) {
                if (!empty($lisa_kentta['checked'])) {
                    $tuote_select .= $lisa_kentta['kolumni'] . ', ';
                    $group .= $lisa_kentta['kolumni'] . ', ';
                    $checked_count++;
                }
            }
            // Ruksattiin jotain lisävalintoita (tuotekohtaisia), voidaan näyttää saldo
            if ($checked_count > 0) {
                $tuote_select .= "tuotepaikat.saldo,";
                $group .= "tuotepaikat.saldo,";
            }
        }
        $tuote_select .= "tilausrivi.hyllyalue, tilausrivi.hyllynro, tilausrivi.hyllyvali, tilausrivi.hyllytaso, ";
        $tuote_select .= "CONCAT_WS(' ', tilausrivi.hyllyalue, tilausrivi.hyllynro, tilausrivi.hyllyvali, tilausrivi.hyllytaso) as hylly, ";
        $tuote_select .= "group_concat(distinct tuotepaikat.tunnus) paikkatun, ";
        $group .= "tilausrivi.hyllyalue, tilausrivi.hyllynro, tilausrivi.hyllyvali, tilausrivi.hyllytaso, hylly,";
        if (empty($kerayksettomat_tuotepaikat)) {
            $tuote_select .= "if (tuotepaikat.tunnus IS NULL , 1, 0) poistettu, ";
            $group .= "poistettu,";
        }
    }
    $group = rtrim($group, " ,");
    if (!empty($kerayksettomat_tuotepaikat)) {
        $kerayksettomat_tuotepaikat_varaston_hyllypaikat_join = str_replace('tilausrivi', 'tuotepaikat', $varaston_hyllypaikat_join);
        $kerayksettomat_tuotepaikat_group = str_replace('tilausrivi', 'tuotepaikat', $group);
        $kerayksettomat_tuotepaikka_where = str_replace('tilausrivi', 'tuotepaikat', $tuotepaikka_where);
        $kerayksettomat_tuote_select = str_replace('tilausrivi', 'tuotepaikat', $tuote_select);
        $query = "SELECT varastopaikat.nimitys as varaston_nimitys,\n              {$keraysvyohyke_select}\n              {$kerayksettomat_tuote_select}\n              sum(if (tilausrivi.kerattyaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' AND tilausrivi.kerattyaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59', 1, 0)) kpl_valittu_aika,\n              sum(if (tilausrivi.kerattyaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' AND tilausrivi.kerattyaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59', tilausrivi.kpl+tilausrivi.varattu, 0)) tuokpl_valittu_aika,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 6 month), 1, 0)) kpl_6,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 6 month), tilausrivi.kpl+tilausrivi.varattu, 0)) tuo_kpl_6,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 12 month), 1, 0)) kpl_12,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 12 month), tilausrivi.kpl+tilausrivi.varattu, 0)) tuo_kpl_12\n              FROM tuotepaikat\n              JOIN tuote USE INDEX (tuoteno_index) ON (tuotepaikat.yhtio = tuote.yhtio\n                AND tuotepaikat.tuoteno  = tuote.tuoteno\n                AND tuote.ei_saldoa      = '')\n              JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n                AND varastopaikat.tunnus = tuotepaikat.varasto)\n              {$kerayksettomat_tuotepaikat_varaston_hyllypaikat_join}\n              {$keraysvyohyke_join}\n              LEFT JOIN tilausrivi ON ( tilausrivi.tyyppi = 'L'\n                AND tilausrivi.yhtio     = tuotepaikat.yhtio\n                AND tilausrivi.hyllyalue = tuotepaikat.hyllyalue\n                AND tilausrivi.hyllynro  = tuotepaikat.hyllynro\n                AND tilausrivi.hyllyvali = tuotepaikat.hyllyvali\n                AND tilausrivi.hyllytaso = tuotepaikat.hyllytaso\n                AND tilausrivi.tuoteno   = tuotepaikat.tuoteno\n                {$_date})\n              WHERE tuotepaikat.yhtio    = '{$kukarow['yhtio']}'\n              {$kerayksettomat_tuotepaikka_where}\n              {$varasto_lisa1}\n              GROUP BY 1\n              {$kerayksettomat_tuotepaikat_group}\n              ORDER BY kpl_valittu_aika DESC\n              {$lisa}";
    } else {
        $query = "SELECT varastopaikat.nimitys as varaston_nimitys,\n              {$keraysvyohyke_select}\n              {$tuote_select}\n              sum(if (tilausrivi.kerattyaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' AND tilausrivi.kerattyaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59', 1, 0)) kpl_valittu_aika,\n              sum(if (tilausrivi.kerattyaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' AND tilausrivi.kerattyaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59', tilausrivi.kpl+tilausrivi.varattu, 0)) tuokpl_valittu_aika,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 6 month), 1, 0)) kpl_6,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 6 month), tilausrivi.kpl+tilausrivi.varattu, 0)) tuo_kpl_6,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 12 month), 1, 0)) kpl_12,\n              sum(if (tilausrivi.kerattyaika >= Date_sub(CURRENT_DATE, INTERVAL 12 month), tilausrivi.kpl+tilausrivi.varattu, 0)) tuo_kpl_12\n              FROM tilausrivi\n              JOIN tuote USE INDEX (tuoteno_index) ON (tilausrivi.yhtio = tuote.yhtio\n                AND tilausrivi.tuoteno   = tuote.tuoteno\n                AND tuote.ei_saldoa      = '')\n              JOIN varastopaikat ON (varastopaikat.yhtio = tilausrivi.yhtio\n                AND varastopaikat.tunnus = tilausrivi.varasto)\n              {$varaston_hyllypaikat_join}\n              {$keraysvyohyke_join}\n              LEFT JOIN tuotepaikat USE INDEX (yhtio_tuoteno_paikka) ON ( tilausrivi.yhtio = tuotepaikat.yhtio\n                AND tilausrivi.hyllyalue = tuotepaikat.hyllyalue\n                AND tilausrivi.hyllynro  = tuotepaikat.hyllynro\n                AND tilausrivi.hyllyvali = tuotepaikat.hyllyvali\n                AND tilausrivi.hyllytaso = tuotepaikat.hyllytaso\n                AND tilausrivi.tuoteno   = tuotepaikat.tuoteno )\n              WHERE tilausrivi.yhtio     = '{$kukarow['yhtio']}'\n              AND tilausrivi.tyyppi      = 'L'\n              {$tuotepaikka_where}\n              {$_date}\n              {$varasto_lisa2}\n              GROUP BY 1\n              {$group}\n              ORDER BY kpl_valittu_aika DESC\n              {$lisa}";
    }
    $result = pupe_query($query);
    //päiviä aikajaksossa
    $epa1 = (int) date('U', mktime(0, 0, 0, $kka, $ppa, $vva));
    $epa2 = (int) date('U', mktime(0, 0, 0, $kkl, $ppl, $vvl));
    //Diff in workdays (5 day week)
    $pva = abs($epa2 - $epa1) / 60 / 60 / 24 / 7 * 5;
    $poistettu = t('Poistettu');
    $rows = array();
    $saldolliset = array();
    if (mysql_num_rows($result) > 0) {
        $progress_bar = new ProgressBar(t("Haetaan tiedot"));
        $progress_bar->initialize(mysql_num_rows($result));
    }
    while ($row = mysql_fetch_assoc($result)) {
        if (isset($progress_bar)) {
            $progress_bar->increase();
        }
        if ($tyyppi == 'TUOTE') {
            if (!empty($lisa_kentat['nimitys']['checked'])) {
                $row['nimitys'] = t_tuotteen_avainsanat($row, 'nimitys');
            }
            if (isset($row['status']) and array_key_exists($row['status'], $tuote_statukset)) {
                $row['status'] = $tuote_statukset[$row['status']];
            }
            if (isset($row['ostoehdotus']) and array_key_exists($row['ostoehdotus'], $ostoehdotukset)) {
                $row['ostoehdotus'] = $ostoehdotukset[$row['ostoehdotus']];
            } elseif (isset($row['ostoehdotus']) and !array_key_exists($row['ostoehdotus'], $ostoehdotukset)) {
                $row['ostoehdotus'] = t("Tuntematon");
            }
        }
        $row['kpl_kerays'] = number_format($row["kpl_valittu_aika"] > 0 ? round($row["tuokpl_valittu_aika"] / $row["kpl_valittu_aika"]) : 0, 0);
        $row['kpl_valittu_aika_pvm'] = number_format($row["kpl_valittu_aika"] / $pva, 0);
        if (is_numeric($row['poistettu'])) {
            if ($row['poistettu'] == 1) {
                $row['poistettu'] = $poistettu;
            } elseif ($row['poistettu'] == 0) {
                $saldolliset[] = $row["paikkatun"];
                $row['poistettu'] = '';
            }
        }
        unset($row['tuokpl_valittu_aika']);
        unset($row['tuo_kpl_6']);
        unset($row['tuo_kpl_12']);
        unset($row['paikkatun']);
        $rows[] = $row;
    }
    echo "<br/>";
    return array($rows, $saldolliset);
}
Example #18
0
 $ivero = array();
 $maara = 1;
 $valkoodi = '';
 $lopelink = "&lopetus={$PHP_SELF}////tee={$tee}//tilikausi={$tilikausi}";
 $linkkilisa = "&tkausi={$tilikausi}";
 while ($trow = mysql_fetch_assoc($result)) {
     if ($trow['saldo'] == 0 or $trow['vientejä'] == 0) {
         continue;
     }
     $summa2 += $trow['saldo'];
     $isumma[$maara] = $trow['saldo'];
     $itili[$maara] = $trow['tilino'];
     $iselite[$maara] = t("Avaavat saldot") . " " . tv1dateconv($tpv);
     $ivero[$maara] = 0;
     $query = "SELECT nimi\n              FROM tili\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              and tilino  = '{$trow['tilino']}'";
     $tilires = pupe_query($query);
     $tilinimirow = mysql_fetch_assoc($tilires);
     echo "<tr class='aktiivi'>";
     echo "<td><a name='tili2_{$trow['tilino']}' href='raportit.php?toim=paakirja&tee=K&tili={$trow['tilino']}{$linkkilisa}{$lopelink}///tili2_{$trow['tilino']}'>{$trow['tilino']}</a></td>";
     echo "<td>{$tilinimirow['nimi']}</td>";
     echo "<td>{$trow['vientejä']}</td>";
     echo "<td align='right'>{$trow['saldo']}</td>";
     echo "</tr>";
     $maara++;
 }
 echo "<tr class='aktiivi'>";
 echo "<td></td>";
 echo "<td>" . t("Tilikauden tulos") . "</td><td></td><td align='right'>{$tulosrow['summa']}</td>";
 echo "</tr>";
 $summa2 += $tulosrow['summa'];
 $isumma[$maara] = $tulosrow['summa'];
Example #19
0
                            echo "<td>" . $rivi[$sync_otsikot["fi"]] . "</td><td>" . $rivi[$sync_otsikot["fi"]] . "</td>";
                            foreach ($kieliarray as $kieli) {
                                echo "<td>" . $rivi[$sync_otsikot[$kieli]] . "</td><td>" . $rivi[$sync_otsikot[$kieli]] . "</td>";
                            }
                        } else {
                            echo "<td><font class='error'>" . t("Sana puuttuu") . "!</font></td><td>" . $rivi[$sync_otsikot["fi"]] . "</td>";
                            foreach ($kieliarray as $kieli) {
                                echo "<td><font class='error'>" . t("Sana puuttuu") . "!</font></td><td>" . $rivi[$sync_otsikot[$kieli]] . "</td>";
                            }
                        }
                        echo "</tr>";
                    }
                }
            }
            $sanakirjaquery = "SELECT kysytty,fi,se,no,en,de,dk,ee,muutospvm\n                          FROM sanakirja\n                          WHERE synkronoi = ''\n                          and (se !='' or no !='' or en !='' or de !='' or dk !='' or ee !='')\n                          and kysytty     > 1\n                          ORDER BY kysytty desc";
            $sanakirjaresult = pupe_query($sanakirjaquery);
            while ($sanakirjarow = mysql_fetch_assoc($sanakirjaresult)) {
                echo "<tr><td>" . $sanakirjarow["kysytty"] . "</td>";
                echo "<td>" . $sanakirjarow["fi"] . "</td><td><font class='error'>" . t("Puuttuu referenssistä") . "</font></td>";
                foreach ($kieliarray as $kieli) {
                    echo "<td>" . $sanakirjarow[$kieli] . "</td><td><font class='error'>" . t("Puuttuu referenssistä") . "</font></td>";
                }
                echo "</tr>";
            }
            echo "</table><br><br>";
            echo "  <form method='post'>\n          <input type='hidden' name='tee' value='UPDATE'>\n          <input type='submit' value='" . t("Synkronoi") . "'>\n\n          </form>";
        }
    }
} else {
    echo "  <br><br>\n      <form method='post'>\n      <input type='hidden' name='tee' value='TEE'>\n      <input type='submit' value='" . t("Vertaa sanakirjoja") . "'>\n      </form>";
}
Example #20
0
 $oslappkpl_hidden = 0;
 $disabled = '';
 // jos unifaun + hetitulostus tai erätulostus
 // --> ei tulosteta osoitelappuja Pupessa
 $_ei_koonti = ($otsik_row['tulostustapa'] == 'H' or $otsik_row['tulostustapa'] == 'E');
 $_onko_unifaun = $otsik_row["rahtikirja"] == 'rahtikirja_unifaun_ps_siirto.inc';
 $_onko_unifaun = ($_onko_unifaun or $otsik_row["rahtikirja"] == 'rahtikirja_unifaun_uo_siirto.inc');
 if (!empty($oslappkpl) and $_onko_unifaun and $_ei_koonti) {
     $yhtiorow["oletus_oslappkpl"] = 0;
     $oslappkpl = 0;
 }
 if ($yhtiorow["oletus_oslappkpl"] != 0 and ($yhtiorow['kerayserat'] == 'P' or $yhtiorow['kerayserat'] == 'A')) {
     $kaikki_ok = true;
     if ($yhtiorow['kerayserat'] == 'A') {
         $query = "SELECT kerayserat\n                      FROM asiakas\n                      WHERE yhtio    = '{$kukarow['yhtio']}'\n                      AND tunnus     = '{$otsik_row['liitostunnus']}'\n                      AND kerayserat = 'A'";
         $asiakas_chk_res = pupe_query($query);
         if (mysql_num_rows($asiakas_chk_res) == 0) {
             $kaikki_ok = false;
         }
     }
     if ($kaikki_ok) {
         $oslappkpl_hidden = 1;
         $oslappkpl = '';
         $disabled = 'disabled';
     }
 }
 echo "<input type='text' size='4' name='oslappkpl' value='{$oslappkpl}' {$disabled}>";
 if ($oslappkpl_hidden != 0) {
     echo "<input type='hidden' name='oslappkpl' value='{$oslappkpl_hidden}' />";
 }
 echo "</th>";
Example #21
0
    $timestamp = gmdate("YmdHis");
    // Muodostetaan apixin vaatima salaus ja url
    $digest_src = "{$software}+{$version}+" . $apix_keys['apix_tunnus'] . "+" . $timestamp . "+" . $apix_keys['apix_avain'];
    $dt = substr(hash("sha256", $digest_src), 0, 64);
    $real_url = "{$url}?TraID={$apix_keys['apix_tunnus']}&t={$timestamp}&soft={$software}&ver={$version}&d=SHA-256:{$dt}";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $real_url);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
// Haetaan api_keyt yhtion_parametreistä
$sql_query = "SELECT yhtion_parametrit.apix_tunnus, yhtion_parametrit.apix_avain, yhtio.nimi\n              FROM yhtio\n              JOIN yhtion_parametrit USING (yhtio)\n              WHERE yhtion_parametrit.apix_tunnus != ''\n              AND yhtion_parametrit.apix_avain    != ''";
$apix_result = pupe_query($sql_query);
while ($apix_keys = mysql_fetch_assoc($apix_result)) {
    while (($response = apix_receive($apix_keys)) != "") {
        // Randomstringi filenimiin
        $apix_nimi = md5(uniqid(mt_rand(), true));
        // Luodaan temppidirikka jonne työnnetään tän haun kaikki apixfilet
        $apix_tmpdirnimi = "/tmp/apix-" . md5(uniqid(mt_rand(), true));
        if (mkdir($apix_tmpdirnimi)) {
            $tiedosto = $apix_tmpdirnimi . "/apix_laskupaketti.zip";
            $fd = fopen($tiedosto, "w") or die("Tiedostoa ei voitu luoda!");
            fwrite($fd, $response);
            $zip = new ZipArchive();
            if ($zip->open($tiedosto) === TRUE) {
                if ($zip->extractTo($apix_tmpdirnimi)) {
                    // Loopataan tiedostot läpi
                    for ($i = 0; $i < $zip->numFiles; $i++) {
Example #22
0
     }
     $pull_ids = implode(",", $pull_ids);
     // jos ei ollut yhtään pulkkaria, niin skipataan koko rivi
     if ($pull_ids == "") {
         continue;
     }
     echo "<tr><th>";
     if (!$php_cli) {
         echo "<img style='float:left;' class='nayta_rivit' id='{$taveto_hash}' src='{$palvelin2}pics/lullacons/switch.png' />";
     }
     echo "Pupesoft-" . t("päivitys") . ": " . tv1dateconv($veto["date"], "P") . "</th></tr>";
     echo "<tr><td class='back' style='padding:0px;'><table id='table_{$taveto_hash}' style='{$display_h}'>";
 }
 if ($pull_ids != "") {
     $query = "SELECT *\n                 FROM git_pulkkarit\n                 WHERE id in ({$pull_ids})\n                 ORDER BY feature DESC, id";
     $pulres = pupe_query($query);
     while ($pulrow = mysql_fetch_assoc($pulres)) {
         $pulkkaridata = unserialize($pulrow["pull_request"]);
         $title = utf8_decode($pulkkaridata->title);
         $body = utf8_decode($pulkkaridata->body);
         echo "<tr>";
         if ($pulrow['feature'] == 1) {
             $title = ltrim($title, " *");
             $class = "spec";
             $fclass = "message";
             $titlelisa = t("Uusi ominaisuus");
         } else {
             $class = "";
             $fclass = "";
             $titlelisa = t("Pienkehitys");
         }
Example #23
0
     }
     fputs($toot, $ulos);
     //Kustannuspaikan koodien haku
     echo "<font class='message'>" . t("Tarkenteet") . "</font><br>";
     $query = "SELECT tunnus, nimi\n              FROM kustannuspaikka\n              WHERE yhtio   = '{$kukarow['yhtio']}'\n              and kaytossa != 'E'\n              ORDER BY tyyppi, koodi+0, koodi, nimi";
     $result = pupe_query($query);
     $ulos = '';
     while ($trow = mysql_fetch_assoc($result)) {
         $ulos .= '#DIM' . $erotin . $trow['tunnus'] . $erotin . '"' . $trow['nimi'] . '"' . $riviloppu;
     }
     fputs($toot, $ulos);
 }
 echo "<font class='message'>" . t("Tapahtumat") . "</font><br>";
 //Itse tapahtumat
 $query = "SELECT date_format(tiliointi.tapvm, '%Y%m%d') tapvm,\n             tiliointi.tilino,\n             tiliointi.kustp,\n             tiliointi.projekti,\n             tiliointi.summa summa,\n             tiliointi.selite,\n             lasku.ytunnus,\n             tiliointi.ltunnus,\n             lasku.mapvm,\n             tiliointi.tunnus tunnus,\n             lasku.laskunro laskunro,\n             lasku.nimi\n             FROM tiliointi\n             JOIN lasku ON (tiliointi.yhtio=lasku.yhtio and lasku.tunnus=tiliointi.ltunnus)\n             WHERE tiliointi.yhtio  = '{$kukarow['yhtio']}'\n             and left(tiliointi.tapvm, 7) = '{$kausi}'\n             and tiliointi.korjattu = ''\n             and tiliointi.tosite   = ''\n             ORDER BY tiliointi.ltunnus, tiliointi.tapvm, tiliointi.tilino, tiliointi.kustp, tiliointi.projekti";
 $result = pupe_query($query);
 while ($trow = mysql_fetch_assoc($result)) {
     if ($vanhaltunnus != $trow['ltunnus'] or $vanhatapvm != $trow['tapvm']) {
         // Uusi tosite
         if ($kesken == 1) {
             $ulos .= $riviloppu . "}";
             fputs($toot, $ulos . $riviloppu);
             $kesken = 0;
         }
         $ulos = '#VER' . $erotin . '""' . $erotin . '""' . $erotin . $trow['tapvm'] . $erotin . '"';
         if ($trow['nimi'] == '') {
             $ulos .= $trow['nimi'];
         } else {
             $ulos .= $trow['selite'];
         }
         $ulos .= '"' . $riviloppu . "{" . $riviloppu;
Example #24
0
                } else {
                    $tunken = "ostorivitunnus";
                }
                $query = "UPDATE sarjanumeroseuranta SET\n                  {$tunken} = 0\n                  WHERE yhtio = '{$kukarow['yhtio']}'\n                  AND {$tunken} = '{$srow['tunnus']}'";
                $sarjares = pupe_query($query);
            }
        }
        // poistetaan lukot
        $query = "UNLOCK TABLES";
        $locre = pupe_query($query);
    }
    $tee = "valitse";
}
if ($tunnus != "" and $tee == "valitse") {
    $tila_query = "SELECT *\n                  FROM lasku\n                  WHERE yhtio = '{$kukarow['yhtio']}'\n                  AND tila    in ('L','N','A','V','C')\n                  AND tunnus  = '{$tunnus}'";
    $tila_result = pupe_query($tila_query);
    if (mysql_num_rows($tila_result) == 1) {
        $tila_row = mysql_fetch_assoc($tila_result);
        // vain laskuttamattomille myyntitilaukille voi tehdä jotain
        if ($tila_row["tila"] == "L" and $tila_row["alatila"] != "X" or $tila_row["tila"] == "N" and in_array($tila_row["alatila"], array('A', '')) or $tila_row["tila"] == "V" and in_array($tila_row["alatila"], array('', 'A', 'J', 'C')) or $tila_row["tila"] == "C" and in_array($tila_row["alatila"], array('', 'A', 'B', 'C'))) {
            echo "<form method='post'>";
            echo "<input type='hidden' name='parametrit' value='{$parametrit}' />";
            echo "<input type='hidden' name='tee' value='vaihda' />";
            echo "<input type='hidden' name='tunnus' value='{$tila_row['tunnus']}' />";
            echo "<table><tr>";
            echo "<th>", t("Vaihda tilauksen tila"), ": </th>";
            echo "<td><select name='tila'>";
            echo "<option value = ''>", t("Valitse uusi tila"), "</option>";
            echo "<option value = '999'>", t("Mitätöity"), "</option>";
            if ($tila_row['tila'] == "C") {
                if ($tila_row["alatila"] != "") {
Example #25
0
             echo "<td align='right'>{$row_per_asiakas['vienti_nimikkeita']}</td>";
             echo "<td align='right'>{$row_per_asiakas['ei_eu_riveja']}</td>";
             echo "<td align='right'>{$row_per_asiakas['ei_eu_nimikkeita']}</td>";
         }
         echo "<td align='right'>{$row_per_asiakas['sahkoisia_riveja']}</td>";
         echo "<td align='right'>{$row_per_asiakas['sahkoisia_nimikkeita']}</td>";
         echo "</tr>";
     }
 }
 $vientilisa = "";
 if ($nayta_viennit == '') {
     $vientilisa = "  sum(IF(lasku.vienti = 'E', 1, 0)) vienti_riveja,\n            round(sum(IF(lasku.vienti = 'E', kpl + varattu + jt, 0))) vienti_nimikkeita,\n            sum(IF(lasku.vienti = 'K', 1, 0)) ei_eu_riveja,\n            round(sum(IF(lasku.vienti = 'K', kpl + varattu + jt, 0))) ei_eu_nimikkeita,";
 }
 ///* Yhteensärivi, annetaan tietokannan tehä työ, en jakssa summata while loopissa t. juppe*///
 $query = "SELECT\n            count(*) yhteensa_riveja,\n            round(sum(kpl + varattu + jt)) yhteensa_nimikkeita,\n            {$vientilisa}\n            SUM(IF(lasku.ohjelma_moduli IN ('EDIFACT911', 'FUTURSOFT', 'MAGENTO'), 1, 0)) sahkoisia_riveja,\n            ROUND(SUM(IF(lasku.ohjelma_moduli IN ('EDIFACT911', 'FUTURSOFT', 'MAGENTO'), kpl + varattu + jt, 0))) sahkoisia_nimikkeita\n            FROM tilausrivi USE INDEX ({$ajoindex})\n            JOIN lasku ON (lasku.yhtio = tilausrivi.yhtio and lasku.tunnus = tilausrivi.otunnus and lasku.tila = 'L' {$tilaustyyppilisa})\n            {$lahdotlisa}\n            {$saldotonjoin}\n            WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n            AND {$ajotapa} >= '{$vva}-{$kka}-{$ppa} 00:00:00'\n            AND {$ajotapa} <= '{$vvl}-{$kkl}-{$ppl} 23:59:59'\n            AND tilausrivi.tyyppi  = 'L'\n            {$ei_laskutusajo_tuotteita}";
 $res = pupe_query($query);
 $row = mysql_fetch_array($res);
 echo "<tr>";
 echo "<th>" . t("Yhteensä") . ":</th>";
 echo "<th style='text-align:right;'>{$row['yhteensa_riveja']}</th>";
 echo "<th style='text-align:right;'>{$row['yhteensa_nimikkeita']}</th>";
 if ($nayta_viennit == '') {
     echo "<th style='text-align:right;'>{$row['vienti_riveja']}</th>";
     echo "<th style='text-align:right;'>{$row['vienti_nimikkeita']}</th>";
     echo "<th style='text-align:right;'>{$row['ei_eu_riveja']}</th>";
     echo "<th style='text-align:right;'>{$row['ei_eu_nimikkeita']}</th>";
 }
 echo "<th style='text-align:right;'>{$row['sahkoisia_riveja']}</th>";
 echo "<th style='text-align:right;'>{$row['sahkoisia_nimikkeita']}</th>";
 echo "</tr>";
 echo "</table>";
Example #26
0
     $kkvikapva = date("t", mktime(0, 0, 0, $pvmloop_kk, 1, $pvmloop_vv));
     foreach (explode(',', $row["sopimus_pp"]) as $ruksattu_paiva) {
         if ($ruksattu_paiva > $kkvikapva) {
             $ruksatut_paivat[$pvmloop_kk][$kkvikapva] = $kkvikapva;
         } else {
             $ruksatut_paivat[$pvmloop_kk][$ruksattu_paiva] = $ruksattu_paiva;
         }
     }
 }
 if (in_array($pvmloop_kk, explode(',', $row["sopimus_kk"])) and in_array($pvmloop_pp, $ruksatut_paivat[$pvmloop_kk])) {
     // katotaan ollaanko tämä lasku laskutettu
     $query = "SELECT *\n                  FROM lasku USE INDEX (yhtio_tila_luontiaika)\n                  WHERE yhtio      = '{$kukarow['yhtio']}'\n                  and liitostunnus = '{$row['liitostunnus']}'\n                  and tila         = 'L'\n                  and alatila      in ('X','D')\n                  and luontiaika   = '{$pvmloop_vv}-{$pvmloop_kk}-{$pvmloop_pp}'\n                  and clearing     = 'sopimus'\n                  and swift        = '{$row['laskutunnus']}'";
     $chkres = pupe_query($query);
     if (mysql_num_rows($chkres) == 0) {
         $query = "SELECT *\n                    FROM lasku USE INDEX (yhtio_tila_luontiaika)\n                    WHERE yhtio      = '{$kukarow['yhtio']}'\n                    and liitostunnus = '{$row['liitostunnus']}'\n                    and tila         = 'N'\n                    and alatila      = ''\n                    and clearing     = 'sopimus'\n                    and swift        = '{$row['laskutunnus']}'";
         $chkres2 = pupe_query($query);
         if (mysql_num_rows($chkres2) == 0) {
             $laskuttamatta .= "  <input type='checkbox' name='laskutapvm[{$pointteri}]' value='{$pvmloop_vv}-{$pvmloop_kk}-{$pvmloop_pp}'>\n                    <input type='hidden' name='laskutatun[{$pointteri}]' value='{$row['laskutunnus']}'>\n                    {$pvmloop_pp}.{$pvmloop_kk}.{$pvmloop_vv}<br>";
             // tehdään arraytä cronijobia varten
             $cron_pvm[$pointteri] = "{$pvmloop_vv}-{$pvmloop_kk}-{$pvmloop_pp}";
             $cron_tun[$pointteri] = "{$row['laskutunnus']}";
             $pointteri++;
             $arvoyhteensa += $row["arvo"];
             $summayhteensa += $row["summa"];
         }
     } else {
         $chkrow = mysql_fetch_assoc($chkres);
         $laskutettu .= "{$pvmloop_pp}.{$pvmloop_kk}.{$pvmloop_vv} ({$chkrow['laskunro']})<br>";
         $laskutettu_vika = "{$pvmloop_pp}.{$pvmloop_kk}.{$pvmloop_vv} ({$chkrow['laskunro']})";
     }
 }
Example #27
0
         echo "<tr><td class='back' colspan='5'><br/><font class='head'>{$tama_rivi['nimi']}</font></td></tr>";
         // Otsikkorivi
         echo "\n        <th>" . t("Saapuminen") . "</th>\n        <th style='text-align: right;'>" . t("Vaihto-omaisuuslaskut") . "</th>\n        <th style='text-align: right;'>" . t("Saapuminen") . "</th>\n        <th style='text-align: right;'>" . t("Kuluja") . "</th>\n        <th style='text-align: right;'>%</th>\n      </tr>";
     }
     $query = "SELECT group_concat(vanhatunnus) as vanhatunnus\n              FROM lasku\n              WHERE tila       = 'K'\n              AND vanhatunnus != 0\n              AND laskunro     = {$tama_rivi['laskunro']}\n              AND yhtio        = '{$kukarow['yhtio']}'";
     $vanhatunnus = mysql_fetch_assoc(pupe_query($query));
     $vols["summa"] = 0;
     if ($vanhatunnus['vanhatunnus'] != "") {
         //vols, Vaihto-omaisuuslaskujen summa
         $vols_query = "SELECT round(sum(summa),2) as summa\n                     FROM tiliointi\n                     WHERE ltunnus IN ({$vanhatunnus['vanhatunnus']})\n                     AND korjattu  = ''\n                     AND tilino    = '{$yhtiorow['varasto']}'\n                     AND yhtio     = '{$kukarow['yhtio']}'";
         $vols = mysql_fetch_assoc(pupe_query($vols_query));
     }
     if ($tama_rivi['tunnus'] != "") {
         //sks, Saapumisen kokonaissumma
         $sks_query = "SELECT round(sum(tilausrivi.rivihinta),2) as saapumisen_summa\n                    FROM tilausrivi\n                    WHERE uusiotunnus = {$tama_rivi['tunnus']}\n                    AND yhtio         = '{$kukarow['yhtio']}'";
         $sks = mysql_fetch_assoc(pupe_query($sks_query));
         echo "<tr class='aktiivi'>";
         echo "<td>" . $tama_rivi["laskunro"] . "</td>";
         echo "<td style='text-align: right;'>" . $vols["summa"] . "</td>";
         echo "<td style='text-align: right;'>" . $sks["saapumisen_summa"] . "</td>";
         echo "<td style='text-align: right;'>" . round($sks["saapumisen_summa"] - $vols["summa"], 2) . "</td>";
         echo "<td style='text-align: right;'>" . round(($sks["saapumisen_summa"] / $vols["summa"] - 1) * 100, 2) . "</td>";
         echo "</tr>";
         $yhteensa['vols'] += $vols["summa"];
         $yhteensa['sks'] += $sks["saapumisen_summa"];
         $yhteensa['kulut'] += $sks["saapumisen_summa"] - $vols["summa"];
     }
     $edellinen_rivi = $tama_rivi;
 }
 // VIELÄ viimeisen rivin yhteensä tulos
 if (mysql_num_rows($saapumiset_result) > 0) {
Example #28
0
    $tables["yhtio"][] = "ostolasku_ei_eu_kulu";
    $tables["yhtio"][] = "ostolasku_ei_eu_rahti";
    $tables["yhtio"][] = "ostolasku_ei_eu_vaihto_omaisuus";
    $tables["yhtio"][] = "ostolasku_ei_eu_raaka_aine";
    $tables["yhtion_toimipaikat"][] = "tilino";
    $tables["yhtion_toimipaikat"][] = "tilino_eu";
    $tables["yhtion_toimipaikat"][] = "tilino_ei_eu";
    $tables["yhtion_toimipaikat"][] = "tilino_kaanteinen";
    $tables["yhtion_toimipaikat"][] = "tilino_marginaali";
    $tables["yhtion_toimipaikat"][] = "tilino_osto_marginaali";
    $tables["yhtion_toimipaikat"][] = "tilino_triang";
    $tables["yhtion_toimipaikat"][] = "toim_alv";
    $tables["yriti"][] = "oletus_kulutili";
    $tables["yriti"][] = "oletus_rahatili";
    $tables["yriti"][] = "oletus_selvittelytili";
    foreach ($tables as $taulu => $kentat) {
        echo "<br><font class='message'>Tarkastetaan taulu {$taulu}</font><br>";
        foreach ($kentat as $kentta) {
            $query = "SELECT distinct {$kentta} tilino\n                FROM {$taulu}\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                and {$kentta} not in ('','0')";
            $haku = pupe_query($query);
            while ($row = mysql_fetch_assoc($haku)) {
                $query = "SELECT tunnus\n                  FROM tili\n                  WHERE yhtio = '{$kukarow['yhtio']}'\n                  and tilino  = '{$row['tilino']}'";
                $tarkresr = pupe_query($query);
                if (mysql_num_rows($tarkresr) == 0) {
                    echo "<font class='error'>{$taulu}.{$kentta} '{$row['tilino']}' tiliä ei löydy.</font><br>";
                }
            }
        }
    }
}
require "inc/footer.inc";
 $varastores = pupe_query($query);
 $varastorow = mysql_fetch_assoc($varastores);
 $luontiaika = $xml->InvCounting->TransDate;
 unset($xml->InvCounting->TransDate);
 $saldoeroja = array();
 foreach ($xml->InvCounting->Line as $line) {
     $eankoodi = $line->ItemNumber;
     $kpl = (double) $line->Quantity;
     $query = "SELECT tuoteno, nimitys\n                      FROM tuote\n                      WHERE yhtio  = '{$kukarow['yhtio']}'\n                      AND eankoodi = '{$eankoodi}'";
     $tuoteres = pupe_query($query);
     $tuoterow = mysql_fetch_assoc($tuoteres);
     list($saldo, $hyllyssa, $myytavissa, $devnull) = saldo_myytavissa($tuoterow["tuoteno"], "KAIKKI", $varastorow['tunnus']);
     // Etukäteen maksetut tilaukset, jotka ovat keräämättä mutta tilaus jo laskutettu
     // Lasketaan ne mukaan Pupen hyllyssä määrään, koska saldo_myytavissa ei huomioi niitä
     $query = "SELECT ifnull(sum(tilausrivi.kpl), 0) AS keraamatta\n                      FROM tilausrivi\n                      INNER JOIN lasku on (lasku.yhtio = tilausrivi.yhtio\n                        AND lasku.tunnus          = tilausrivi.otunnus\n                        AND lasku.mapvm          != '0000-00-00'\n                        AND lasku.chn             = '999')\n                      WHERE tilausrivi.yhtio      = '{$kukarow['yhtio']}'\n                      AND tilausrivi.tyyppi       = 'L'\n                      AND tilausrivi.var         != 'P'\n                      AND tilausrivi.keratty      = ''\n                      AND tilausrivi.kerattyaika  = '0000-00-00 00:00:00'\n                      AND tilausrivi.tuoteno      = '{$tuoterow['tuoteno']}'";
     $ker_result = pupe_query($query);
     $ker_rivi = mysql_fetch_assoc($ker_result);
     $hyllyssa += $ker_rivi['keraamatta'];
     // Vertailukonversio
     $a = (int) $kpl * 10000;
     $b = (int) $hyllyssa * 10000;
     if ($a != $b) {
         $saldoeroja[$tuoterow['tuoteno']]['posten'] = $kpl;
         $saldoeroja[$tuoterow['tuoteno']]['pupe'] = $hyllyssa;
         $saldoeroja[$tuoterow['tuoteno']]['nimitys'] = $tuoterow['nimitys'];
     }
 }
 if (count($saldoeroja) > 0) {
     $body = t("Seuraavien tuotteiden saldovertailuissa on havaittu eroja") . ":<br><br>\n\n";
     $body .= t("Tuoteno") . ";" . t("Nimitys") . ";" . t("Posten") . ";" . t("Pupe") . "<br>\n";
     foreach ($saldoeroja as $tuoteno => $_arr) {
Example #30
0
 function piirra_tuntiraportti($asentaja = "", $kukarow, $yhtiorow, $vva, $kka, $ppa, $vvl, $kkl, $ppl, $tyom_nro = '', $asiakasid = '', $asiakasosasto = '', $asiakasryhma = '', $tyojono = '', $tyostatus = '', $ytunnus = '')
 {
     if (trim($asentaja) != "") {
         $asentaja = mysql_real_escape_string($asentaja);
         $asenlisa = " and kuka.kuka = '{$asentaja}' ";
         $keiklisa = " and matkalasku.toim_ovttunnus = '{$asentaja}' ";
     } else {
         $asenlisa = "";
         $keiklisa = "";
     }
     if (trim($tyom_nro) != '') {
         $lisa .= " and lasku.tunnus = '" . (int) $tyom_nro . "' ";
     }
     if (trim($asiakasid) != '') {
         $lisa .= " and lasku.liitostunnus = '" . (int) $asiakasid . "' ";
     }
     $asiakaslisa = "";
     if (trim($asiakasosasto) != '') {
         $asiakaslisa .= " and asiakas.osasto = '" . mysql_real_escape_string($asiakasosasto) . "' ";
     }
     if (trim($asiakasryhma) != '') {
         $asiakaslisa .= " and asiakas.ryhma = '" . mysql_real_escape_string($asiakasryhma) . "' ";
     }
     if (trim($ytunnus) != '') {
         $asiakaslisa .= " and asiakas.ytunnus = '" . mysql_real_escape_string($ytunnus) . "' ";
     }
     $tyomaarayslisa = '';
     if (trim($tyojono) != '') {
         $tyomaarayslisa .= " and tyomaarays.tyojono = '" . mysql_real_escape_string($tyojono) . "' ";
     }
     if (trim($tyostatus) != '') {
         $tyomaarayslisa .= " and tyomaarays.tyostatus = '" . mysql_real_escape_string($tyostatus) . "' ";
     }
     if (trim($tyom_nro) == '' and trim($vva) != '' and trim($kka) != '' and trim($ppa) != '' and trim($vvl) != '' and trim($kkl) != '' and trim($ppl) != '') {
         $vva = (int) $vva;
         $kka = (int) $kka;
         $ppa = (int) $ppa;
         $vvl = (int) $vvl;
         $kkl = (int) $kkl;
         $ppl = (int) $ppl;
         $lisa = " and lasku.luontiaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' and lasku.luontiaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59' ";
     }
     $query = "SELECT\n              lasku.tunnus, lasku.nimi, lasku.nimitark, lasku.ytunnus, lasku.luontiaika,\n              (SELECT selitetark FROM avainsana WHERE avainsana.yhtio = lasku.yhtio AND avainsana.selite = tyomaarays.tyostatus AND avainsana.laji = 'TYOM_TYOSTATUS') tyostatus,\n              lasku.erikoisale, lasku.valkoodi,\n              group_concat(DISTINCT concat(left(kalenteri.pvmalku,16), '##', left(kalenteri.pvmloppu,16), '##', kuka.nimi, '##', kuka.kuka) ORDER BY kalenteri.pvmalku) asennuskalenteri\n              FROM lasku\n              JOIN yhtio ON (lasku.yhtio = yhtio.yhtio)\n              JOIN tyomaarays ON (tyomaarays.yhtio = lasku.yhtio and tyomaarays.otunnus = lasku.tunnus {$tyomaarayslisa})\n              JOIN asiakas ON (asiakas.yhtio = lasku.yhtio AND asiakas.tunnus = lasku.liitostunnus {$asiakaslisa})\n              LEFT JOIN kalenteri ON (kalenteri.yhtio = lasku.yhtio and kalenteri.tyyppi = 'asennuskalenteri' and kalenteri.liitostunnus = lasku.tunnus)\n              LEFT JOIN kuka ON (kuka.yhtio = kalenteri.yhtio and kuka.kuka = kalenteri.kuka {$asenlisa})\n              WHERE lasku.yhtio      = '{$kukarow['yhtio']}'\n              and lasku.tila         IN ('A','L','N','S','C')\n              and lasku.tilaustyyppi = 'A'\n              {$lisa}\n              GROUP BY 1,2,3,4,5,6,7,8\n              ORDER BY lasku.tunnus";
     $sresult = pupe_query($query);
     if (mysql_num_rows($sresult) > 0) {
         $echootsikot = "<tr><th>" . t("Työmääräys") . ":<br>" . t("Nimi") . ":<br>" . t("Ytunnus") . ":</th><th>" . t("Työnjohdon työtunnit") . ":</th><th>" . t("Asentajien työtunnit") . "</th><th>" . t("Työstatus") . ":</th><th>" . t("Matkalaskut") . ":</th></tr>";
         $kaletunnit = array();
         $asekaletunnit = array();
         $rivihinnat = array();
         $kplyht = '';
         $i = 0;
         $query_ale_lisa = generoi_alekentta('M');
         while ($row = mysql_fetch_array($sresult)) {
             $query = "SELECT DISTINCT matkalasku.nimi, tilausrivi.tunnus, tilausrivi.tuoteno, tilausrivi.yksikko, tilausrivi.nimitys, tilausrivi.hinta, tilausrivi.kpl, tilausrivi.kommentti, tilausrivi.rivihinta\n                   FROM lasku keikka\n                   JOIN lasku liitosotsikko ON (keikka.yhtio = liitosotsikko.yhtio and keikka.laskunro = liitosotsikko.laskunro and keikka.tila = liitosotsikko.tila and liitosotsikko.alatila = '' and liitosotsikko.vanhatunnus != 0)\n                   JOIN lasku matkalasku ON (matkalasku.yhtio = liitosotsikko.yhtio and matkalasku.tunnus = liitosotsikko.vanhatunnus and matkalasku.tilaustyyppi = 'M')\n                   JOIN tilausrivi ON (tilausrivi.yhtio = matkalasku.yhtio and tilausrivi.otunnus = matkalasku.tunnus)\n                   WHERE keikka.yhtio       = '{$kukarow['yhtio']}'\n                   and keikka.tila          = 'K'\n                   and keikka.alatila       = 'T'\n                   and keikka.liitostunnus  = '{$row['tunnus']}'\n                   and keikka.ytunnus       = '{$row['tunnus']}'\n                   and tilausrivi.kpl       > 0\n                   and tilausrivi.tyyppi   != 'D'\n                   {$keiklisa}";
             $keikkares = pupe_query($query);
             if ($asentaja == "" or mysql_num_rows($keikkares) > 0 or $row["asennuskalenteri"] != "") {
                 echo "{$echootsikot}";
                 if ($asentaja == "") {
                     $echootsikot = "";
                 }
                 echo "<tr>\n              <td valign='top'>{$row['tunnus']}<br/>{$row['nimi']}";
                 if (trim($row['nimitark']) != '') {
                     echo "<br/>{$row['nimitark']}";
                 }
                 if (trim($row['ytunnus']) != '') {
                     echo "<br/>{$row['ytunnus']}";
                 }
                 echo "</td>\n              <td valign='top' style='padding: 0px;' align='right'>";
                 if ($row["asennuskalenteri"] != "") {
                     echo "<table width='100%'>";
                     foreach (explode(",", $row["asennuskalenteri"]) as $asekale) {
                         list($alku, $loppu, $nimi, $kuka) = explode("##", $asekale);
                         $atstamp = mktime(substr($alku, 11, 2), substr($alku, 14, 2), 0, substr($alku, 5, 2), substr($alku, 8, 2), substr($alku, 0, 4));
                         $ltstamp = mktime(substr($loppu, 11, 2), substr($loppu, 14, 2), 0, substr($loppu, 5, 2), substr($loppu, 8, 2), substr($loppu, 0, 4));
                         if (!isset($kaletunnit[$nimi])) {
                             $kaletunnit[$nimi] = 0;
                         }
                         $kaletunnit[$nimi] += ($ltstamp - $atstamp) / 60;
                         echo "<tr><td>{$nimi}:</td><td align='right'>" . tv1dateconv($alku, "P") . " - " . tv1dateconv($loppu, "P") . "</td></tr>";
                     }
                     echo "</table>";
                 }
                 $query = "SELECT GROUP_CONCAT(tilausrivi.yksikko,'#',if(tuote.tuotetyyppi = 'K', tilausrivi.varattu, 0)) yksikko,\n                    sum(if(tuote.tuotetyyppi = '', round(tilausrivi.hinta * (tilausrivi.varattu+tilausrivi.jt+tilausrivi.kpl) * {$query_ale_lisa},2), 0)) rivihinta_tuote,\n                    sum(if(tuote.tuotetyyppi = 'K', round(tilausrivi.hinta * (tilausrivi.varattu+tilausrivi.jt+tilausrivi.kpl) * {$query_ale_lisa},2), 0)) rivihinta_tyo\n                    FROM tilausrivi\n                    JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio AND tuote.tuoteno = tilausrivi.tuoteno)\n                    WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n                    AND tilausrivi.otunnus = '{$row['tunnus']}'";
                 $rivihinta_res = pupe_query($query);
                 $rivihinta_row = mysql_fetch_assoc($rivihinta_res);
                 if (!isset($rivihinnat['Tuotteet'][$row['valkoodi']])) {
                     $rivihinnat['Tuotteet'][$row['valkoodi']] = 0;
                 }
                 if (!isset($rivihinnat['Työt'][$row['valkoodi']])) {
                     $rivihinnat['Työt'][$row['valkoodi']] = 0;
                 }
                 $rivihinnat['Tuotteet'][$row['valkoodi']] += $rivihinta_row['rivihinta_tuote'];
                 $rivihinnat['Työt'][$row['valkoodi']] += $rivihinta_row['rivihinta_tyo'];
                 if ($rivihinta_row['yksikko'] != '') {
                     $kplyht = $rivihinta_row['yksikko'];
                 }
                 echo "</td>";
                 echo "<td valign='top' style='padding: 0px'>";
                 if ($row["tunnus"] != "") {
                     $query = "SELECT concat(left(kalenteri2.pvmalku,16), '##', left(kalenteri2.pvmloppu,16), '##', kuka.nimi, '##', kuka.kuka) kalenteri\n                      FROM kalenteri kalenteri2\n                      LEFT JOIN kuka ON (kuka.yhtio = kalenteri2.yhtio and kuka.kuka = kalenteri2.kuka {$asenlisa})\n                      WHERE kalenteri2.yhtio  = '{$kukarow['yhtio']}'\n                      AND kalenteri2.tyyppi   = 'kalenteri'\n                      AND kalenteri2.kentta02 = '{$row['tunnus']}'";
                     $kalenteri_res = pupe_query($query);
                     while ($kalenteri_row = mysql_fetch_assoc($kalenteri_res)) {
                         echo "<table width='100%'>";
                         foreach (explode(",", $kalenteri_row["kalenteri"]) as $asekale) {
                             list($alku, $loppu, $nimi, $kuka) = explode("##", $asekale);
                             $atstamp = mktime(substr($alku, 11, 2), substr($alku, 14, 2), 0, substr($alku, 5, 2), substr($alku, 8, 2), substr($alku, 0, 4));
                             $ltstamp = mktime(substr($loppu, 11, 2), substr($loppu, 14, 2), 0, substr($loppu, 5, 2), substr($loppu, 8, 2), substr($loppu, 0, 4));
                             if (!isset($asekaletunnit[$nimi])) {
                                 $asekaletunnit[$nimi] = 0;
                             }
                             $asekaletunnit[$nimi] += ($ltstamp - $atstamp) / 60;
                             echo "<tr><td>{$nimi}:</td><td align='right'>" . tv1dateconv($alku, "P") . " - " . tv1dateconv($loppu, "P") . "</td></tr>";
                         }
                         echo "</table>";
                     }
                 }
                 echo "</td>";
                 echo "<td valign='top' style='padding: 0px'>{$row['tyostatus']}</td>";
                 echo "<td valign='top' style='padding: 0px;'>";
                 if (mysql_num_rows($keikkares) > 0) {
                     echo "<table width='100%'>";
                     while ($keikkarow = mysql_fetch_array($keikkares)) {
                         echo "<tr><td>{$keikkarow['nimi']}:</td><td>{$keikkarow['nimitys']}</td><td align='right'>" . (double) $keikkarow["kpl"] . "</td><td align='right'>" . sprintf("%.2f", $keikkarow["hinta"]) . " {$yhtiorow['valkoodi']}</td></tr>";
                         $matkakulut[$keikkarow["nimi"]][$keikkarow["nimitys"]] += $keikkarow["rivihinta"];
                     }
                     echo "</table>";
                 }
                 echo "</td>";
                 echo "</tr>";
             }
             $i++;
         }
         if (isset($rivihinnat) and count($rivihinnat) > 0) {
             echo "<tr><td class='spec' valign='top'>" . t("Tuotteet ja työt yhteensä") . ":</td>";
             echo "<td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             $hinnatyht = array();
             foreach ($rivihinnat as $tuotetyyppi => $hinta) {
                 foreach ($hinta as $valuutta => $rivihinta) {
                     if ($rivihinta == 0) {
                         continue;
                     }
                     echo "<tr><td class='spec' align='left'>", t("{$tuotetyyppi}") . ":";
                     if ($tuotetyyppi == 'Työt') {
                         echo "<br/>";
                         $yksgroup = array();
                         foreach (explode(',', $kplyht) as $yksikko_kpl) {
                             list($yksikko, $kpl) = explode('#', $yksikko_kpl);
                             if ($yksikko != '' and $kpl != 0) {
                                 $yksgroup[$yksikko] += $kpl;
                             }
                         }
                         $i = 0;
                         foreach ($yksgroup as $yksikko => $kpl) {
                             if ($i != 0) {
                                 echo "<br/>";
                             }
                             echo "{$kpl} " . t_avainsana("Y", "", " and avainsana.selite='{$yksikko}'", "", "", "selite");
                             $i++;
                         }
                     }
                     echo "</td><td class='spec' align='right'>{$rivihinta} {$valuutta}</td></tr>";
                     if (!isset($hinnatyht[$valuutta])) {
                         $hinnatyht[$valuutta] = 0;
                     }
                     $hinnatyht[$valuutta] += $rivihinta;
                 }
             }
             echo "<tr><td class='spec'>", t("Yhteensä"), ":</td>";
             foreach ($hinnatyht as $val => $hinta) {
                 echo "<td class='spec' align='right'>{$hinta} {$valuutta}</td>";
             }
             echo "</tr></table></td>";
             echo "<td class='spec'>&nbsp;</td><td class='spec'>&nbsp;</td><td class='spec'>&nbsp;</td></tr>";
         }
         if (isset($kaletunnit) and count($kaletunnit) > 0 or isset($matkakulut) and count($matkakulut) > 0 or isset($asekaletunnit) and count($asekaletunnit) > 0) {
             echo "<tr><td class='spec' valign='top'>" . t("Tunnit yhteensä") . ":</td>";
             echo "<td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             if (count($kaletunnit) > 0) {
                 foreach ($kaletunnit as $kuka => $minuutit) {
                     $tunti = floor($minuutit / 60);
                     $minuutti = sprintf('%02d', $minuutit - $tunti * 60);
                     echo "<tr><td class='spec'>{$kuka}:</td><td class='spec' align='right'>{$tunti}:{$minuutti} " . t("tuntia") . "</td></tr>";
                 }
             }
             echo "</table></td>";
             echo "<td class='spec' style='padding: 0px' valign='top'><table width='100%'>";
             if (count($asekaletunnit) > 0) {
                 foreach ($asekaletunnit as $kuka => $minuutit) {
                     $tunti = floor($minuutit / 60);
                     $minuutti = sprintf('%02d', $minuutit - $tunti * 60);
                     echo "<tr><td class='spec'>{$kuka}:</td><td class='spec' align='right'>{$tunti}:{$minuutti} " . t("tuntia") . "</td></tr>";
                 }
             }
             echo "</table></td>";
             echo "<td class='spec'>&nbsp;</td><td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             if (isset($matkakulut) and count($matkakulut) > 0) {
                 foreach ($matkakulut as $kuka => $matkat) {
                     foreach ($matkat as $tuoteno => $hinta) {
                         echo "<tr><td class='spec'>{$kuka}:</td><td class='spec'>{$tuoteno}</td><td class='spec'>&nbsp;</td><td class='spec' align='right'>" . sprintf("%.2f", $hinta) . " {$yhtiorow['valkoodi']}</td></tr>";
                     }
                 }
             }
             echo "</table></td>";
             echo "</tr>";
             echo "<tr><td class='back'><br></td></tr>";
         }
     }
 }