$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>"; } } } }