$query = "SELECT DISTINCT\n            tuote.tuoteno,\n            tuote.nimitys,\n            {$toimittaja_select}\n            FROM tuote\n            JOIN tuoteperhe ON (tuote.tuoteno = tuoteperhe.tuoteno AND tuote.yhtio = tuoteperhe.yhtio AND tuoteperhe.tyyppi = 'R')\n            {$toimittaja_join}\n            {$abc_join}\n            WHERE tuote.yhtio      = '{$kukarow["yhtio"]}'\n            AND tuote.ei_saldoa    = ''\n            AND tuote.status      != 'P'\n            AND tuote.ostoehdotus != 'E'\n            {$tuote_where}\n            ORDER BY toimittaja, tuote.try, tuote.tuoteno";
 $res = pupe_query($query);
 echo t("Tuotteita") . " " . mysql_num_rows($res) . " " . t("kpl") . ".<br>\n";
 echo t("Näytetään ostotarve aikavälille") . ": {$nykyinen_alku} - {$nykyinen_loppu}";
 $ostoehdotus_riveja = 0;
 if (mysql_num_rows($res) > 0) {
     // Kootaan raportti
     echo "<form method='post'>";
     echo "<table>";
     $EDtoimittaja = false;
     $toimittaja_header_piirretty = false;
     $formin_pointteri = 0;
     // loopataan tuotteet läpi
     while ($row = mysql_fetch_assoc($res)) {
         // Haetaan tuotteen tiedot
         $tuoterivi = teerivi($row["tuoteno"], $row["toimittaja"]);
         // Toimittaja vaihtuu
         if ($tuoterivi['toimittajan_tunnus'] != $EDtoimittaja or $EDtoimittaja === false) {
             $toimittaja_header = "<tr>";
             $toimittaja_header .= "<td class='back' colspan='8'><font class='head'><br>{$tuoterivi["toimittajan_ytunnus"]} {$tuoterivi["toimittajan_nimi"]}</font></td>";
             $toimittaja_header .= "</tr>";
             $toimittaja_header .= "<tr>";
             $toimittaja_header .= "<th>" . t("Tuotenumero") . "</th>";
             $toimittaja_header .= "<th>" . t("Nimitys") . "</th>";
             $toimittaja_header .= "<th>" . t("Kulutusennuste") . "</th>";
             $toimittaja_header .= "<th>" . t("Vuosikulutus") . "</th>";
             $toimittaja_header .= "<th>" . t("Riitto Pv") . "</th>";
             $toimittaja_header .= "<th>" . t("Reaalisaldo") . "</th>";
             $toimittaja_header .= "<th>" . t("Ostosuositus") . "</th>";
             $toimittaja_header .= "<th>" . t("Ostohinta") . "</th>";
             $toimittaja_header .= "<th>" . t("Ostosuosituksen arvo") . "</th>";
 $kasiteltavat_tuotteet[$kasiteltavat_key]["valmistusaika_sekunneissa"] = $row["valmistusaika_sekunneissa"];
 $kasiteltavat_tuotteet[$kasiteltavat_key]["pakkauskoko"] = $row["pakkauskoko"];
 // Otetaan isätuotteen pakkauskoko talteen, sillä sen perusteella tulee laskea "samankaltaisten" valmistusmäärä
 $isatuotteen_pakkauskoko = $kasiteltavat_tuotteet[$kasiteltavat_key]["pakkauskoko"];
 $kasiteltavat_tuotteet[$kasiteltavat_key]["isatuotteen_pakkauskoko"] = $isatuotteen_pakkauskoko;
 // Katsotaan onko kyseessä "samankaltainen" isätuote ja haetaan lapsituotteiden infot
 $query = "SELECT tuote.tuoteno,\n              tuote.nimitys,\n              tuote.valmistusaika_sekunneissa,\n              tuote.valmistuslinja\n              FROM tuoteperhe\n              JOIN tuote ON (tuote.yhtio = tuoteperhe.yhtio\n                AND tuote.tuoteno        = tuoteperhe.tuoteno\n                AND tuote.ei_saldoa      = ''\n                AND tuote.ostoehdotus   != 'E'\n                {$tuote_where}\n                {$tuote_valmistuslinja_where})\n              WHERE tuoteperhe.yhtio     = '{$kukarow["yhtio"]}'\n              AND tuoteperhe.isatuoteno  = '{$row["tuoteno"]}'\n              AND tuoteperhe.tyyppi      = 'S'";
 $samankaltainen_result = pupe_query($query);
 if (mysql_num_rows($samankaltainen_result) > 0) {
     $samankaltaiset_tuotteet = "{$row["tuoteno"]} ";
 } else {
     $samankaltaiset_tuotteet = "";
 }
 while ($samankaltainen_row = mysql_fetch_assoc($samankaltainen_result)) {
     $kasiteltavat_key++;
     $kasiteltavat_tuotteet[$kasiteltavat_key] = teerivi($samankaltainen_row["tuoteno"], $row["toimittaja"], $abcrajaustapa);
     $kasiteltavat_tuotteet[$kasiteltavat_key]["tuoteno"] = $samankaltainen_row["tuoteno"];
     $kasiteltavat_tuotteet[$kasiteltavat_key]["nimitys"] = $samankaltainen_row["nimitys"];
     $kasiteltavat_tuotteet[$kasiteltavat_key]["valmistuslinja"] = $samankaltainen_row["valmistuslinja"];
     $kasiteltavat_tuotteet[$kasiteltavat_key]["isatuote"] = $row["tuoteno"];
     $kasiteltavat_tuotteet[$kasiteltavat_key]["valmistusaika_sekunneissa"] = $samankaltainen_row["valmistusaika_sekunneissa"];
     // $kasiteltavat_tuotteet[$kasiteltavat_key]["pakkauskoko"] = $samankaltainen_row["pakkauskoko"];
     $kasiteltavat_tuotteet[$kasiteltavat_key]["isatuotteen_pakkauskoko"] = $isatuotteen_pakkauskoko;
     $samankaltaiset_tuotteet .= "{$samankaltainen_row["tuoteno"]} ";
 }
 // Loopataan käsitellyt tuotteet ja lasketaan yhteensä valmistettava määrä. Lisäksi poistetaan arraystä kaikki tuotteet, jota ei tule valmistaa
 $valmistettava_yhteensa = 0;
 foreach ($kasiteltavat_tuotteet as $key => $kasittelyssa) {
     if ($kasittelyssa["valmistussuositus"] <= 0) {
         unset($kasiteltavat_tuotteet[$key]);
     } else {