$query = "DELETE FROM tuotteen_avainsanat\n          WHERE yhtio = '{$kukarow['yhtio']}'\n          AND laji    like 'VARASTORYHMA%'";
$tuotteen_avainsana_res = pupe_query($query);
$query = "SELECT *\n          FROM avainsana\n          WHERE yhtio     = '{$kukarow['yhtio']}'\n          AND laji        = 'VARASTORYHMA'\n          AND selitetark != ''";
$avainsana_res = pupe_query($query);
if (mysql_num_rows($avainsana_res) == 0) {
    echo date("d.m.Y @ G:i:s") . " - Varastoryhmiä ei ole perustettu.\n";
} else {
    $query = "SELECT tuote.tuoteno, ifnull((SELECT isatuoteno FROM tuoteperhe WHERE tuoteperhe.yhtio = tuote.yhtio AND tuoteperhe.isatuoteno = tuote.tuoteno AND tuoteperhe.tyyppi = 'P' LIMIT 1), '') isa\n            FROM tuote\n            WHERE tuote.yhtio = '{$kukarow['yhtio']}'";
    $res = pupe_query($query);
    echo date("d.m.Y @ G:i:s") . " - Aloitetaan " . mysql_num_rows($res) . " tuotteen päivitys. ({$kukarow['yhtio']})\n";
    while ($row = mysql_fetch_assoc($res)) {
        mysql_data_seek($avainsana_res, 0);
        while ($avainsana_row = mysql_fetch_assoc($avainsana_res)) {
            $varastot = explode(',', $avainsana_row['selitetark']);
            $myytavissa = 0;
            if ($row['isa'] != '') {
                $saldot = tuoteperhe_myytavissa($row["tuoteno"], '', '', $varastot);
                foreach ($saldot as $varasto => $myytavissa_apu) {
                    $myytavissa += $myytavissa_apu;
                }
            } else {
                list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($row["tuoteno"], '', $varastot);
            }
            if ($myytavissa > 0) {
                $query = "INSERT INTO tuotteen_avainsanat SET\n                  yhtio      = '{$kukarow['yhtio']}',\n                  tuoteno    = '{$row['tuoteno']}',\n                  kieli      = '{$avainsana_row['kieli']}',\n                  laji       = 'VARASTORYHMA_{$avainsana_row['selite']}',\n                  selite     = '{$myytavissa}',\n                  laatija    = '{$kukarow['kuka']}',\n                  luontiaika = now(),\n                  muutospvm  = now(),\n                  muuttaja   = '{$kukarow['kuka']}'";
                $tuotteen_avainsana_res = pupe_query($query);
            }
        }
    }
}
echo date("d.m.Y @ G:i:s") . " - Varastoryhmien päivitys. Done!\n\n";
function hae_ja_piirra_saldo($row, $yhtiot, $oleasrow)
{
    global $toim_kutsu, $verkkokauppa, $kukarow, $verkkokauppa_saldotsk, $laskurow, $saldoaikalisa, $yhtiorow, $rivin_yksikko, $vari, $classrigh, $hinta_rajaus, $ostoskori, $yht_i, $lisatiedot, $hae_ja_selaa_row;
    if ($toim_kutsu != "EXTENNAKKO" and ($verkkokauppa == "" or $verkkokauppa != "" and $kukarow["kuka"] != "www" and $verkkokauppa_saldotsk)) {
        // Tuoteperheen isät, mutta ei sarjanumerollisisa isiä (Normi, Extranet ja Verkkokauppa)
        if ($row["tuoteperhe"] == $row["tuoteno"] and $row["sarjanumeroseuranta"] != "S") {
            // Extranet ja verkkokauppa
            if ($kukarow["extranet"] != "" or $verkkokauppa != "") {
                $saldot = tuoteperhe_myytavissa($row["tuoteno"], "KAIKKI", "", 0, "", "", "", "", "", $laskurow["toim_maa"], $saldoaikalisa);
                $kokonaismyytavissa = 0;
                foreach ($saldot as $varasto => $myytavissa) {
                    $kokonaismyytavissa += $myytavissa;
                }
                if ($yhtiorow["extranet_nayta_saldo"] == "Y") {
                    $naytettava_saldo = sprintf("%.2f", $kokonaismyytavissa) . " {$rivin_yksikko}";
                    $_vari = "";
                } elseif ($kokonaismyytavissa > 0) {
                    $naytettava_saldo = t("On");
                    $_vari = "green";
                } else {
                    $naytettava_saldo = t("Ei");
                    $_vari = "red";
                }
                echo "<td valign='top' class='{$vari}' {$classrigh}>";
                echo "<font class='{$_vari}'>";
                if ($hinta_rajaus != "") {
                    echo t("Päävarasto") . ": ";
                }
                echo $naytettava_saldo;
                echo "</font>";
                echo "</td>";
            } else {
                $saldot = tuoteperhe_myytavissa($row["tuoteno"], "", "KAIKKI", 0, "", "", "", "", "", $laskurow["toim_maa"], $saldoaikalisa);
                $classrighx = substr($classrigh, 0, -2) . " padding: 0px;' ";
                echo "<td valign='top' class='{$vari}' {$classrighx}>";
                echo "<table style='width:100%;'>";
                $ei_tyhja = "";
                foreach ($saldot as $varaso => $saldo) {
                    if ($saldo != 0) {
                        $ei_tyhja = 'yes';
                        $_saldo = sprintf("%.2f", $saldo);
                        echo "<tr class='aktiivi'>";
                        echo "<td class='{$vari}' nowrap>{$varaso}</td>";
                        echo "<td class='{$vari}' align='right' nowrap>{$_saldo} {$rivin_yksikko}</td>";
                        echo "</tr>";
                    }
                }
                if ($ei_tyhja == '') {
                    echo "<tr class='aktiivi'><td class='{$vari}' nowrap colspan='2'><font class='red'>" . t("Tuote loppu") . "</font></td></tr>";
                }
                echo "</table></td>";
            }
        } elseif ($row['ei_saldoa'] != '') {
            if ($kukarow["extranet"] != "" or $verkkokauppa != "") {
                echo "<td valign='top' class='{$vari}' {$classrigh}><font class='green'>" . t("On") . "</font></td>";
            } else {
                echo "<td valign='top' class='{$vari}' {$classrigh}><font class='green'>" . t("Saldoton") . "</font></td>";
            }
        } elseif ($verkkokauppa == "" and ($row["sarjanumeroseuranta"] == "S" and ($row["tuoteperhe"] == "" or $row["tuoteperhe"] == $row["tuoteno"]) and $row["osaluettelo"] == "")) {
            if ($kukarow["extranet"] != "") {
                echo "<td valign='top' class='{$vari}' {$classrigh}>{$row['sarjanumero']} ";
            } else {
                echo "<td valign='top' class='{$vari}' {$classrigh}><a onClick=\"javascript:sarjanumeronlisatiedot_popup('{$row['sarjatunnus']}')\">{$row['sarjanumero']}</a> ";
            }
            if (!isset($row["sarjadisabled"]) and $row["sarjayhtio"] == $kukarow["yhtio"] and ($kukarow["kuka"] != "" or is_numeric($ostoskori))) {
                echo "<input type='hidden' name='tiltuoteno[{$yht_i}]' value = '{$row['tuoteno']}'>";
                echo "<input type='hidden' name='tilsarjatunnus[{$yht_i}]' value = '{$row['sarjatunnus']}'>";
                echo "<input type='checkbox' name='tilkpl[{$yht_i}]' value='1'> ";
                $yht_i++;
            }
            echo "</td>";
            if ($lisatiedot != "" and $kukarow["extranet"] == "") {
                echo "<td class='{$vari}' {$classrigh}></td>";
            }
        } elseif ($kukarow["extranet"] != "" or $verkkokauppa != "") {
            piirra_extranet_saldo($row, $oleasrow);
        } else {
            $sallitut_maat_lisa = "";
            if ($laskurow["toim_maa"] != '') {
                $sallitut_maat_lisa = " and (varastopaikat.sallitut_maat like '%{$laskurow['toim_maa']}%' or varastopaikat.sallitut_maat = '') ";
            }
            // Käydään läpi tuotepaikat
            if ($row["sarjanumeroseuranta"] == "E" or $row["sarjanumeroseuranta"] == "F" or $row["sarjanumeroseuranta"] == "G") {
                $query = "SELECT tuote.yhtio, tuote.tuoteno, tuote.ei_saldoa, varastopaikat.tunnus varasto, varastopaikat.tyyppi varastotyyppi, varastopaikat.maa varastomaa,\n                  tuotepaikat.oletus, tuotepaikat.hyllyalue, tuotepaikat.hyllynro, tuotepaikat.hyllyvali, tuotepaikat.hyllytaso,\n                  sarjanumeroseuranta.sarjanumero era,\n                  concat(rpad(upper(tuotepaikat.hyllyalue), 5, '0'),lpad(upper(tuotepaikat.hyllynro), 5, '0'),lpad(upper(tuotepaikat.hyllyvali), 5, '0'),lpad(upper(tuotepaikat.hyllytaso), 5, '0')) sorttauskentta,\n                  varastopaikat.nimitys, if (varastopaikat.tyyppi!='', concat('(',varastopaikat.tyyppi,')'), '') tyyppi\n                   FROM tuote\n                  JOIN tuotepaikat ON (tuotepaikat.yhtio = tuote.yhtio and tuotepaikat.tuoteno = tuote.tuoteno)\n                  JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n                  {$sallitut_maat_lisa}\n                  AND varastopaikat.tunnus                  = tuotepaikat.varasto)\n                  JOIN sarjanumeroseuranta ON sarjanumeroseuranta.yhtio = tuote.yhtio\n                  AND sarjanumeroseuranta.tuoteno           = tuote.tuoteno\n                  AND sarjanumeroseuranta.hyllyalue         = tuotepaikat.hyllyalue\n                  AND sarjanumeroseuranta.hyllynro          = tuotepaikat.hyllynro\n                  AND sarjanumeroseuranta.hyllyvali         = tuotepaikat.hyllyvali\n                  AND sarjanumeroseuranta.hyllytaso         = tuotepaikat.hyllytaso\n                  AND sarjanumeroseuranta.myyntirivitunnus  = 0\n                  AND sarjanumeroseuranta.era_kpl          != 0\n                  WHERE tuote.yhtio                         in ('" . implode("','", $yhtiot) . "')\n                  and tuote.tuoteno                         = '{$row['tuoteno']}'\n                  GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15\n                  ORDER BY tuotepaikat.oletus DESC, varastopaikat.nimitys, sorttauskentta";
            } else {
                $query = "SELECT tuote.yhtio, tuote.tuoteno, tuote.ei_saldoa, varastopaikat.tunnus varasto, varastopaikat.tyyppi varastotyyppi, varastopaikat.maa varastomaa,\n                  tuotepaikat.oletus, tuotepaikat.hyllyalue, tuotepaikat.hyllynro, tuotepaikat.hyllyvali, tuotepaikat.hyllytaso,\n                  concat(rpad(upper(hyllyalue), 5, '0'),lpad(upper(hyllynro), 5, '0'),lpad(upper(hyllyvali), 5, '0'),lpad(upper(hyllytaso), 5, '0')) sorttauskentta,\n                  varastopaikat.nimitys, if (varastopaikat.tyyppi!='', concat('(',varastopaikat.tyyppi,')'), '') tyyppi\n                  FROM tuote\n                  JOIN tuotepaikat ON (tuotepaikat.yhtio = tuote.yhtio and tuotepaikat.tuoteno = tuote.tuoteno)\n                  JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n                  {$sallitut_maat_lisa}\n                  AND varastopaikat.tunnus = tuotepaikat.varasto)\n                  WHERE tuote.yhtio        in ('" . implode("','", $yhtiot) . "')\n                  AND tuote.tuoteno        = '{$row['tuoteno']}'\n                  ORDER BY tuotepaikat.oletus DESC, varastopaikat.nimitys, sorttauskentta";
            }
            $varresult = pupe_query($query);
            $classrighx = substr($classrigh, 0, -2) . " padding: 0px;' ";
            echo "<td valign='top' class='{$vari}' {$classrighx}>";
            echo "<table style='width:100%;'>";
            $loytyko = false;
            $loytyko_normivarastosta = false;
            $myytavissa_sum = 0;
            if (mysql_num_rows($varresult) > 0) {
                $hyllylisa = "";
                // katotaan jos meillä on tuotteita varaamassa saldoa joiden varastopaikkaa ei enää ole olemassa...
                list($saldo, $hyllyssa, $orvot) = saldo_myytavissa($row["tuoteno"], 'ORVOT', '', '', '', '', '', '', '', $saldoaikalisa);
                $orvot *= -1;
                while ($saldorow = mysql_fetch_assoc($varresult)) {
                    if (!isset($saldorow["era"])) {
                        $saldorow["era"] = "";
                    }
                    list($saldo, $hyllyssa, $myytavissa, $sallittu) = saldo_myytavissa($saldorow["tuoteno"], '', '', $saldorow["yhtio"], $saldorow["hyllyalue"], $saldorow["hyllynro"], $saldorow["hyllyvali"], $saldorow["hyllytaso"], $laskurow["toim_maa"], $saldoaikalisa, $saldorow["era"]);
                    //  Listataan vain varasto jo se ei ole kielletty
                    if ($sallittu === true) {
                        // hoidetaan pois problematiikka jos meillä on orpoja (tuotepaikattomia) tuotteita varaamassa saldoa
                        if ($orvot > 0) {
                            if ($myytavissa >= $orvot and $saldorow["yhtio"] == $kukarow["yhtio"]) {
                                // poistaan orpojen varaamat tuotteet tältä paikalta
                                $myytavissa = $myytavissa - $orvot;
                                $orvot = 0;
                            } elseif ($orvot > $myytavissa and $saldorow["yhtio"] == $kukarow["yhtio"]) {
                                // poistetaan niin paljon orpojen saldoa ku voidaan
                                $orvot = $orvot - $myytavissa;
                                $myytavissa = 0;
                            }
                        }
                        if ($myytavissa != 0 or $lisatiedot != "" and $hyllyssa != 0) {
                            $id2 = md5(uniqid());
                            echo "<tr>";
                            echo "<td class='{$vari}' nowrap>";
                            echo "<a class='tooltip' id='{$id2}'>{$saldorow['nimitys']}</a> {$saldorow['tyyppi']}";
                            echo "<div id='div_{$id2}' class='popup' style='width: 300px'>({$saldorow['hyllyalue']}-{$saldorow['hyllynro']}-{$saldorow['hyllyvali']}-{$saldorow['hyllytaso']})</div>";
                            echo "</td>";
                            echo "<td class='{$vari}' align='right' nowrap>";
                            if ($hae_ja_selaa_row['selite'] == 'B') {
                                echo "<font class='green'>";
                            }
                            echo sprintf("%.2f", $myytavissa) . " " . $rivin_yksikko;
                            if ($hae_ja_selaa_row['selite'] == 'B') {
                                echo "</font>";
                            }
                            echo "</td></tr>";
                        }
                        if ($myytavissa > 0) {
                            $loytyko = true;
                        }
                        if ($myytavissa > 0 and $saldorow["varastotyyppi"] != "E") {
                            $loytyko_normivarastosta = true;
                        }
                        if ($lisatiedot != "" and $hyllyssa != 0) {
                            $hyllylisa .= "  <tr class='aktiivi'>\n                          <td class='{$vari}' align='right' nowrap>" . sprintf("%.2f", $hyllyssa) . "</td>\n                          </tr>";
                        }
                        if ($saldorow["tyyppi"] != "E") {
                            $myytavissa_sum += $myytavissa;
                        }
                    }
                }
            }
            $tulossalisat = hae_tuotteen_saapumisaika($row['tuoteno'], $row['status'], $myytavissa_sum, $loytyko, $loytyko_normivarastosta);
            foreach ($tulossalisat as $tulossalisa) {
                list($o, $v) = explode("!¡!", $tulossalisa);
                echo "<tr><td>{$o}</td><td>{$v}</td></tr>";
            }
            echo "</table></td>";
            if ($lisatiedot != "") {
                echo "<td valign='top' {$classrigh} class='{$vari}'>";
                if (mysql_num_rows($varresult) > 0 and $hyllylisa != "") {
                    echo "<table width='100%'>";
                    echo "{$hyllylisa}";
                    echo "</table></td>";
                }
                echo "</td>";
            }
        }
    }
}