Exemple #1
0
 /**
  * Laskee valmistuksen raaka-aineiden saldot ja palauttaa riittämättämien tuotteiden tuotenumeron
  * ja saldot. Huomio muiden valmistusten varaamat saldot ja mahdolliset ostotilaukset jotka saapuvat
  * ennen kyseisen valmistuksen aloitushetkeä.
  *
  * @return array puutteet Puuttuvat raaka-aineet ja niiden saldot.
  */
 function puutteet()
 {
     global $kukarow;
     $aloitus_pvm = $this->alkupvm();
     // Haetaan raaka-aineet
     $query = "SELECT *\n              FROM tilausrivi\n              WHERE yhtio='{$kukarow['yhtio']}'\n              AND otunnus='{$this->tunnus}'\n              AND tuoteno!='TYÖ'\n              AND tyyppi='V'";
     $result = pupe_query($query);
     $puutteet = array();
     // Tarkistetaan kaikkien raaka-aineiden saldot
     while ($raaka_aine = mysql_fetch_assoc($result)) {
         $saldo = array();
         list($saldo['saldo'], $saldo['hyllyssa'], $saldo['myytavissa']) = saldo_myytavissa($raaka_aine['tuoteno'], '', '', '', '', '', '', '', '', $aloitus_pvm);
         // Varatut kappaleet valmistuksilta jotka ovat jo valmistuslinjalla.
         // Valmistuslinjalla olevat valmistukset varaavat saldoa ja uuden valmistuksen on
         // tarkistettava paljon ne vähentävät raaka-aineiden saldoa.
         $muut_query = "SELECT tilausrivi.otunnus, COALESCE(sum(tilausrivi.varattu), 0) AS varattu\n                     FROM kalenteri\n                         JOIN lasku ON (kalenteri.yhtio=lasku.yhtio AND kalenteri.otunnus=lasku.tunnus)\n                         JOIN tilausrivi ON (lasku.yhtio=tilausrivi.yhtio AND lasku.tunnus=tilausrivi.otunnus)\n                     WHERE kalenteri.yhtio='{$kukarow['yhtio']}'\n                         AND kalenteri.tyyppi='valmistus'\n                         AND tilausrivi.tyyppi='V'\n                         AND tilausrivi.tuoteno='{$raaka_aine['tuoteno']}'\n                         AND kalenteri.pvmalku < '{$aloitus_pvm}'";
         $muut_valmistukset_result = pupe_query($muut_query);
         $muut_valmistukset = mysql_fetch_assoc($muut_valmistukset_result);
         error_log("Tuoteno: " . $raaka_aine['tuoteno']);
         error_log("Muut valmistukset: " . $muut_valmistukset['varattu']);
         // Haetaan raaka-aineen ostotilauksia, jotka vaikuttavat valmistuksen aloitukseen
         $query = "SELECT COALESCE(sum(varattu), 0) AS varattu\n                FROM tilausrivi\n                WHERE yhtio='{$kukarow['yhtio']}'\n                AND tuoteno='{$raaka_aine['tuoteno']}'\n                AND tyyppi='O'\n                #AND kerattyaika != '0000-00-00 00:00:00'\n                AND kerattyaika < '{$aloitus_pvm}'";
         $ostotilaukset_result = pupe_query($query);
         $ostotilaukset = mysql_fetch_assoc($ostotilaukset_result);
         error_log("Ostotilaukset: " . $ostotilaukset['varattu']);
         $_saldo = $saldo['myytavissa'];
         if ($_saldo <= $raaka_aine['varattu']) {
             $puutteet[$raaka_aine['tuoteno']] = $_saldo;
         }
     }
     return $puutteet;
 }
Exemple #2
0
     $worksheet->write($excelrivi, $i, t('Kehahin'), $format_bold);
     $i++;
 }
 $worksheet->write($excelrivi, $i, t('Myyntihinta'), $format_bold);
 $i++;
 $worksheet->write($excelrivi, $i, t('Saldo'), $format_bold);
 $i++;
 $worksheet->write($excelrivi, $i, t('Tryno'), $format_bold);
 $i++;
 $worksheet->write($excelrivi, $i, t('Try'), $format_bold);
 $i++;
 $worksheet->write($excelrivi, $i, t('EAN'), $format_bold);
 $i = 0;
 $excelrivi++;
 while ($productrow = mysql_fetch_array($productqueryresult)) {
     list(, , $apu_myytavissa) = saldo_myytavissa($productrow["tuoteno"]);
     $sresult = t_avainsana("TRY", "", "and avainsana.selite  = '{$productrow['try']}'");
     $srow = mysql_fetch_array($sresult);
     if ($myytavissao == "" or $apu_myytavissa > 0) {
         $worksheet->writeString($excelrivi, $i, $productrow['tuoteno']);
         $i++;
         $worksheet->writeString($excelrivi, $i, $productrow['nimitys']);
         $i++;
         if ($kehahinnat != "") {
             $worksheet->writeNumber($excelrivi, $i, $productrow['kehahin']);
             $i++;
         }
         $worksheet->writeNumber($excelrivi, $i, $productrow['myyntihinta']);
         $i++;
         $worksheet->writeNumber($excelrivi, $i, $apu_myytavissa);
         $i++;
Exemple #3
0
         } elseif (($jtrow["tyyppi"] == "W" or $jtrow["tyyppi"] == "M") and $jtrow["tilaustyyppi"] == "W") {
             $tyyppi = t("Valmistus");
             $merkki = "+";
         } elseif (($jtrow["tyyppi"] == "W" or $jtrow["tyyppi"] == "M") and $jtrow["tilaustyyppi"] == "V") {
             $tyyppi = t("Asiakkaallevalmistus");
             $merkki = "+";
         }
         $yhteensa[$tyyppi] += $jtrow["kpl"];
         if ($jtrow["varasto"] != "") {
             $tyyppi = $tyyppi . " - " . $jtrow["varasto"];
         }
         if ((int) str_replace("-", "", $jtrow["pvm"]) > (int) date("Ymd") and $ekotettiin == 0) {
             echo "<tr>\n              <td colspan='6' align='right' class='spec'>" . t("Myytävissä nyt") . ":</td>\n              <td align='right' class='spec'>" . sprintf('%.2f', $myyta) . "</td>\n              </tr>";
             $ekotettiin = 1;
         }
         list(, , $myyta) = saldo_myytavissa($tuoteno, "KAIKKI", '', '', '', '', '', '', '', $jtrow["pvm"]);
         echo "<tr>\n            <td>{$jtrow['nimi']}</td>\n            <td>{$jtrow['tunnus']}</td>\n            <td>{$tyyppi}</td>\n            <td>" . tv1dateconv($jtrow["laadittu"]) . "</td>\n            <td>" . tv1dateconv($jtrow["pvm"]) . "{$vahvistettu}</td>\n            <td align='right'>{$merkki}" . abs($jtrow["kpl"]) . "</td>\n            <td align='right'>" . sprintf('%.2f', $myyta) . "</td>\n            </tr>";
     }
     foreach ($yhteensa as $type => $kappale) {
         echo "<tr>";
         echo "<th colspan='5'>{$type} " . t("yhteensä") . "</th>";
         echo "<th style='text-align:right;'>{$kappale}</th>";
         echo "<th></th>";
         echo "</tr>";
     }
     echo "</table><br>";
 }
 echo "</td></tr><tr><td class='back' valign='top'><br>";
 echo "<table>";
 echo "<form action='{$PHP_SELF}#Tapahtumat' method='post'>";
 if ($historia == "") {
Exemple #4
0
 echo "</tr>";
 if (mysql_num_rows($paikatresult1) > 0) {
     $query = "SELECT *\n              FROM tuotepaikat\n              WHERE tuoteno  = '{$tuoteno}'\n              and yhtio      = '{$kukarow['yhtio']}'\n              and oletus    != ''";
     $result = pupe_query($query);
     $oletusrow = mysql_fetch_array($result);
     mysql_data_seek($paikatresult1, 0);
     while ($saldorow = mysql_fetch_array($paikatresult1)) {
         if ($oletusvarasto_chk != '' and kuuluukovarastoon($saldorow["hyllyalue"], $saldorow["hyllynro"], $oletusvarasto_chk) == 0) {
             continue;
         }
         if ($saldorow["tunnus"] == $oletusrow["tunnus"]) {
             $checked = "CHECKED";
         } else {
             $checked = "";
         }
         list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($tuoteno, 'JTSPEC', '', '', $saldorow["hyllyalue"], $saldorow["hyllynro"], $saldorow["hyllyvali"], $saldorow["hyllytaso"]);
         echo "<tr>";
         echo "<td>{$saldorow['nimitys']}</td>";
         echo "<td>";
         if (tarkista_oikeus('inventoi.php', '', 1)) {
             echo "<a href='{$palvelin2}inventoi.php?tee=INVENTOI&tuoteno=" . urlencode($saldorow["tuoteno"]) . "&lopetus={$lopetus}/SPLIT/muuvarastopaikka.php////tee=M//tuoteno=" . urlencode($saldorow["tuoteno"]) . "'>{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}</a>";
         } elseif (tarkista_oikeus('inventoi.php', 'OLETUSVARASTO', 1)) {
             echo "<a href='{$palvelin2}inventoi.php?toim=OLETUSVARASTO&tee=INVENTOI&tuoteno=" . urlencode($saldorow["tuoteno"]) . "&lopetus={$lopetus}/SPLIT/muuvarastopaikka.php////toim=OLETUSVARASTO//tee=M//tuoteno=" . urlencode($saldorow["tuoteno"]) . "'>{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}</a>";
         } else {
             echo "{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}";
         }
         echo "</td><td align='right'>{$saldorow['saldo']}</td><td align='right'>{$hyllyssa}</td><td align='right'>{$myytavissa}</td>";
         if (kuuluukovarastoon($saldorow["hyllyalue"], $saldorow["hyllynro"])) {
             echo "<td>";
             if ($oletusvarasto_chk == '' or $oletusvarasto_chk != '' and kuuluukovarastoon($oletusrow["hyllyalue"], $oletusrow["hyllynro"], $oletusvarasto_chk) != 0) {
                 echo "<input type = 'radio' name='oletus' value='{$saldorow['tunnus']}' {$checked}>";
Exemple #5
0
 $total_rows = mysql_num_rows($eresult);
 $current_row = 0;
 if ($total_rows > 0) {
     echo "<font class='message'>", t("Käsitellään"), " {$total_rows} ", t("tuotetta"), ".</font>";
     require 'inc/ProgressBar.class.php';
     $bar = new ProgressBar();
     $bar->initialize($total_rows);
     // print the empty bar
     while ($row = mysql_fetch_assoc($eresult)) {
         $bar->increase();
         // ostopuoli
         $query = "SELECT min(toimaika) toimaika,\n                sum(varattu) tulossa\n                FROM tilausrivi\n                WHERE yhtio = '{$kukarow["yhtio"]}'\n                AND tuoteno = '{$row["tuoteno"]}'\n                AND tyyppi  = 'O'\n                AND varattu > 0";
         $ostoresult = pupe_query($query);
         $ostorivi = mysql_fetch_assoc($ostoresult);
         // Ajetaan saldomyytävissä niin, että JT-rivejä ei huomioida suuntaaan eikä toiseen
         list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($row["tuoteno"], 'JTSPEC');
         $query = "SELECT sum(jt {$lisavarattu}) jt\n                FROM tilausrivi use index (yhtio_tyyppi_tuoteno_laskutettuaika)\n                WHERE yhtio        = '{$kukarow["yhtio"]}'\n                and tyyppi         in ('L','G')\n                and tuoteno        = '{$row["tuoteno"]}'\n                and laskutettuaika = '0000-00-00'\n                and jt {$lisavarattu} > 0\n                and kpl            = 0\n                and var            = 'J'";
         $juresult = pupe_query($query);
         $jurow = mysql_fetch_assoc($juresult);
         if ($myytavissa - $jurow["jt"] + $ostorivi["tulossa"] < 0) {
             $osastores = t_avainsana("OSASTO", "", "and avainsana.selite ='{$row['osasto']}'");
             $osastorow = mysql_fetch_assoc($osastores);
             if ($osastorow['selitetark'] != "") {
                 $row['osasto'] = $row['osasto'] . " - " . $osastorow['selitetark'];
             }
             $tryres = t_avainsana("TRY", "", "and avainsana.selite ='{$row['try']}'");
             $tryrow = mysql_fetch_assoc($tryres);
             if ($tryrow['selitetark'] != "") {
                 $row['try'] = $row['try'] . " - " . $tryrow['selitetark'];
             }
             $vajaasaldot_table .= "<tr class='aktiivi'>";
Exemple #6
0
 }
 echo "<td valign='top' {$class}>{$prow['paikka']}</td>";
 // tehdään pop-up divi jos keikalla on kommentti...
 if ($prow["tunnus"] != "") {
     $_varastot = array($laskurow['varasto']);
     if ($laskurow['vanhatunnus'] != 0) {
         $query = "SELECT GROUP_CONCAT(tunnus) AS tunnukset\n                         FROM varastopaikat\n                         WHERE yhtio      = '{$kukarow['yhtio']}'\n                         AND tyyppi      != 'P'\n                         AND toimipaikka  = '{$laskurow['vanhatunnus']}'";
         $vares = pupe_query($query);
         $varow = mysql_fetch_assoc($vares);
         $saldo = $hyllyssa = $myytavissa = 0;
         if (!empty($varow['tunnukset'])) {
             $_varastot_tmp = explode(",", $varow['tunnukset']);
             $_varastot = array_merge($_varastot, $_varastot_tmp);
         }
     }
     list($saldo, $hyllyssa, $myytavissa, $bool) = saldo_myytavissa($prow["tuoteno"], '', $_varastot);
     $pop_yks = t_avainsana("Y", "", "and avainsana.selite='{$prow['yksikko']}'", "", "", "selite");
     echo "<div id='div_{$prow['tunnus']}' class='popup' style='width: 400px;'>";
     echo "<ul>";
     echo "<li>" . t("Saldo") . ": {$saldo} {$pop_yks}</li><li>" . t("Hyllyssä") . ": {$hyllyssa} {$pop_yks}</li><li>" . t("Myytävissä") . ": {$myytavissa} {$pop_yks}</li>";
     echo "<li>" . t("Tilattu") . ": {$prow['tilattu']} {$pop_yks}</li><li>" . t("Varattu") . ": {$prow['varattukpl']} {$pop_yks}</li>";
     if ($prow['paikka'] != '') {
         list($_hyllyalue, $_hyllynro, $_hyllyvali, $_hyllytaso) = explode(" ", $prow['paikka']);
         $query = "SELECT halytysraja\n                        FROM tuotepaikat\n                        WHERE yhtio   = '{$kukarow['yhtio']}'\n                        AND tuoteno   = '{$prow['tuoteno']}'\n                        AND hyllyalue = '{$_hyllyalue}'\n                        AND hyllynro  = '{$_hyllynro}'\n                        AND hyllyvali = '{$_hyllyvali}'\n                        AND hyllytaso = '{$_hyllytaso}'";
         $halyraja_chk_res = pupe_query($query);
         $halyraja_chk_row = mysql_fetch_assoc($halyraja_chk_res);
         echo "<li>", t("Hälytysraja"), ": {$halyraja_chk_row['halytysraja']} {$pop_yks}</li>";
     }
     echo "<li>" . t("Keskihinta") . ": {$prow['keskihinta']} {$prow['valuutta']}</li><li>" . t("Ostohinta") . ": {$prow['ostohinta']} {$prow['valuutta']}</li>";
     echo "</ul>";
     echo "</div>";
                echo "<tr>\n            <td valign='top'><a href='../inventoi.php?tee=INVENTOI&tuoteno=" . urlencode($row["tuoteno"]) . "'>{$row['tuoteno']}</a></td><td valign='top'>{$row['nimitys']}</td>\n            <td valign='top'>{$saldorow['nimitys']} {$saldorow['tyyppi']}</td>\n            <td valign='top'>{$saldorow['hyllyalue']} {$saldorow['hyllynro']} {$saldorow['hyllyvali']} {$saldorow['hyllytaso']}</td>";
                echo "<td valign='top' align='right'>" . sprintf("%.2f", $saldo) . "</td>";
                if (in_array($row["sarjanumeroseuranta"], array("S", "T", "V"))) {
                    echo "<td valign='top' align='right'>" . sprintf("%.2f", $sarjarow["kpl"]) . "</td>";
                } else {
                    echo "<td valign='top' align='right'>" . sprintf("%.2f", $sarjarow["era_kpl"]) . "</td>";
                }
                echo "<td valign='top'>{$sarjarow['sarjanumerot']}</td>";
                if (in_array($row["sarjanumeroseuranta"], array("S", "G"))) {
                    echo "<td>" . t("YKSI") . "</td>";
                } else {
                    echo "<td>" . t("KESKI") . "</td>";
                }
                echo "</tr>";
            }
        }
    }
    list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($tuoteno, "ORVOT", '', '', '', '', '', '', '', $aikalisa);
    if ($saldo != 0) {
        echo "<tr><td valign='top'>" . t("Tuntematon") . "</td><td valign='top'>?</td>";
        echo "<td valign='top' align='right'>" . sprintf("%.2f", $saldo) . "</td>\n        <td valign='top' align='right'>" . sprintf("%.2f", $hyllyssa) . "</td>\n        <td valign='top' align='right'>" . sprintf("%.2f", $myytavissa) . "</td>\n        <td></td>\n        <td></td>";
        if (in_array($row["sarjanumeroseuranta"], array("S", "G"))) {
            echo "<td>" . t("YKSI") . "</td>";
        } else {
            echo "<td>" . t("KESKI") . "</td>";
        }
        echo "</tr>";
    }
}
echo "</table>";
require "../inc/footer.inc";
Exemple #8
0
 $kojarj = $vanhaojarj;
 echo "<th align='left'><a href = '{$PHP_SELF}?tee={$tee}&atoimvko={$atoimvko}&ltoimvko={$ltoimvko}&vanhat={$vanhat}&kojarj=6,7'>" . t("Tyyppi") . "</a></th>";
 echo "</tr>";
 $summat = 0;
 $arvot = 0;
 $rivit = array();
 while ($prow = mysql_fetch_array($result)) {
     if (strpos($prow[$i], '@@') !== FALSE) {
         $pvmma = substr($prow["Toimitusaika"], 3);
     } else {
         $pvmma = $prow["Toimitusaika"];
     }
     if (strtotime($pvmma) < strtotime("now")) {
         $pvmma = "";
     }
     list(, , $myyta) = saldo_myytavissa($prow["Tuotenumero"], "KAIKKI", '', '', '', '', '', '', '', $pvmma);
     if ($myyta < $prow["Määrä"]) {
         $rivit[] = $prow["tunnus"];
     }
 }
 if (is_resource($result) and mysql_num_rows($result)) {
     mysql_data_seek($result, 0);
 }
 while ($prow = mysql_fetch_array($result)) {
     if (in_array($prow["tunnus"], $rivit)) {
         $ero = "td";
         if ($tunnus == $prow['Tilausnro']) {
             $ero = "th";
         }
         echo "<tr class='aktiivi'>";
         for ($i = 0; $i < mysql_num_fields($result) - 3; $i++) {
Exemple #9
0
    // Päivitetään myyntihinta $mihin_yhtio
    $query = "UPDATE tuote SET\n            myyntihinta = '{$tuoterow['myyntihinta']}'\n            WHERE yhtio = '{$mihin_yhtio}'\n            AND tuoteno = '{$tuoteno}'";
    pupe_query($query);
    // Haetaan tuotteen toimittajan liitos $mihin_yhtio
    $query = "SELECT tunnus\n            FROM tuotteen_toimittajat\n            WHERE yhtio      = '{$mihin_yhtio}'\n            AND tuoteno      = '{$tuoteno}'\n            AND liitostunnus = {$mista_yhtion_toimittajan_tunnus}";
    $mihin_tuoteres = pupe_query($query);
    while ($mihin_tuoterow2 = mysql_fetch_assoc($mihin_tuoteres)) {
        // Lasketaan ja päivitetään ostohinta
        list($hinta, $netto, $ale, $alehinta_alv, $alehinta_val) = alehinta($laskurow, $tuoterow, 1, '', '', array());
        for ($alepostfix = 1; $alepostfix <= $yhtiorow['myynnin_alekentat']; $alepostfix++) {
            $hinta *= 1 - $ale["ale{$alepostfix}"] / 100;
        }
        // Päivitetään ostohinta
        $query = "UPDATE tuotteen_toimittajat SET\n              ostohinta   = '{$hinta}'\n              WHERE yhtio = '{$mihin_yhtio}'\n              AND tunnus  = '{$mihin_tuoterow2['tunnus']}'";
        pupe_query($query);
    }
}
// Haetaan saldot tuotteille, joille on tehty tietyn ajan sisällä tilausrivi tai tapahtuma
$query = "(SELECT DISTINCT tapahtuma.tuoteno\n            FROM tapahtuma\n            JOIN tuote ON (tuote.yhtio = tapahtuma.yhtio\n              AND tuote.tuoteno      = tapahtuma.tuoteno\n              AND tuote.status      != 'P'\n              AND tuote.tuotetyyppi  NOT in ('A','B')\n              AND tuote.tuoteno     != ''\n              AND tuote.ei_saldoa    = '')\n            WHERE tapahtuma.yhtio    = '{$mista_yhtio}'\n            AND tapahtuma.tuoteno    IN (SELECT tuoteno FROM tuotteen_toimittajat WHERE yhtio = '{$mihin_yhtio}' AND liitostunnus = {$mista_yhtion_toimittajan_tunnus})\n            AND tapahtuma.laadittu   >= '{$datetime_checkpoint}')\n\n            UNION\n\n            (SELECT DISTINCT tilausrivi.tuoteno\n            FROM tilausrivi\n            JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio\n              AND tuote.tuoteno      = tilausrivi.tuoteno\n              AND tuote.status      != 'P'\n              AND tuote.tuotetyyppi  NOT in ('A','B')\n              AND tuote.tuoteno     != ''\n              AND tuote.ei_saldoa    = '')\n            WHERE tilausrivi.yhtio   = '{$mista_yhtio}'\n            AND tilausrivi.tyyppi    NOT IN ('D','O')\n            AND tilausrivi.tuoteno   IN (SELECT tuoteno FROM tuotteen_toimittajat WHERE yhtio = '{$mihin_yhtio}' AND liitostunnus = {$mista_yhtion_toimittajan_tunnus})\n            AND tilausrivi.laadittu  >= '{$datetime_checkpoint}')";
$result = pupe_query($query);
while ($row = mysql_fetch_assoc($result)) {
    list($saldo, $hyllyssa, $myytavissa, $devnull) = saldo_myytavissa($row['tuoteno']);
    $query = "UPDATE tuotteen_toimittajat SET\n            tehdas_saldo     = '{$myytavissa}'\n            WHERE yhtio      = '{$mihin_yhtio}'\n            AND tuoteno      = '{$row['tuoteno']}'\n            AND liitostunnus = {$mista_yhtion_toimittajan_tunnus}";
    pupe_query($query);
}
// Kun kaikki onnistui, päivitetään lopuksi timestamppi talteen
$query = "UPDATE avainsana SET\n          selite      = '{$datetime_checkpoint_uusi}'\n          WHERE yhtio = '{$mista_yhtio}'\n          AND laji    = 'HINNAT_CRON'";
pupe_query($query);
if (mysql_affected_rows() != 1) {
    echo "Timestamp päivitys epäonnistui!\n";
}
Exemple #10
0
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>";
            }
        }
    }
}
Exemple #11
0
function rest_tilaa($params)
{
    global $kukarow, $yhtiorow;
    // Hyväksytään seuraavat parametrit
    $kpl = isset($params["kpl"]) ? (double) trim($params["kpl"]) : "";
    $tilausnumero = isset($params["tilausnumero"]) ? mysql_real_escape_string(trim($params["tilausnumero"])) : 0;
    $tuoteno = isset($params["tuoteno"]) ? mysql_real_escape_string(trim($params["tuoteno"])) : "";
    $tunnus = isset($params["asiakastunnus"]) ? (int) trim($params["asiakastunnus"]) : "";
    $kommentti = isset($params["tilauskommentti"]) ? mysql_real_escape_string(trim($params["tilauskommentti"])) : "";
    $toim = "RIVISYOTTO";
    // Määritellään luo_myyntitilausotsikko -funkkari
    require "tilauskasittely/luo_myyntitilausotsikko.inc";
    if ($tuoteno == "") {
        rest_virhe_header("Tuotenumero puuttuu");
    }
    if ($kpl <= 0) {
        rest_virhe_header("Kappalemäärä ei saa olla 0 tai negatiivinen");
    }
    // tähän haaraan ei voida edes teoriassakaan tulla.
    if ($tunnus == "" or $tunnus == 0) {
        rest_virhe_header("Asiakastunnus puuttuu");
    }
    // asiakas tarkistus
    // Haetaan asiakkaan tiedot
    $query = "SELECT *\n            FROM asiakas\n            WHERE yhtio = '{$kukarow["yhtio"]}'\n            AND tunnus  = '{$tunnus}'";
    $tulos = pupe_query($query);
    if (mysql_num_rows($tulos) == 0) {
        rest_virhe_header("Asiakasta ei löytynyt järjestelmästä");
    }
    // haetaan tuotteen tiedot
    $query = "SELECT *\n            FROM tuote\n            WHERE yhtio = '{$kukarow["yhtio"]}'\n            AND tuoteno = '{$tuoteno}'";
    $tuoteres = pupe_query($query);
    if (mysql_num_rows($tuoteres) == 0) {
        rest_virhe_header("Tuotetta \"{$tuoteno}\" ei löytynyt järjestelmästä");
    }
    // tuote löytyi ok
    $trow = mysql_fetch_assoc($tuoteres);
    // ei löytynyt tilausta tällä tunnisteella, pitää tehä uus!
    if ($tilausnumero == 0) {
        // varmistetaan, että käyttäjällä ei ole mitään kesken
        $kukarow["kesken"] = 0;
        $query = "UPDATE kuka\n               SET kesken = 0\n               WHERE yhtio = '{$kukarow["yhtio"]}'\n               AND kuka    = '{$kukarow["kuka"]}'";
        $update = pupe_query($query);
        // tässä kaattuuu
        $tilausnumero = luo_myyntitilausotsikko($toim, $tunnus, "", "", $kommentti, "", "");
    }
    $kukarow["kesken"] = $tilausnumero;
    $query = "SELECT *\n            FROM lasku\n            WHERE yhtio      = '{$kukarow["yhtio"]}'\n            AND laatija      = '{$kukarow["kuka"]}'\n            AND liitostunnus = '{$tunnus}'\n            AND tila         = 'N'\n            AND tunnus       = '{$tilausnumero}'";
    $kesken = pupe_query($query);
    if (mysql_num_rows($kesken) == 0) {
        rest_virhe_header("Tilausta ei löytynyt järjestelmästä");
    }
    $laskurow = mysql_fetch_assoc($kesken);
    // Tarkistetaan saldo
    list($saldo, $hyllyssa, $myytavissa, $bool) = saldo_myytavissa($tuoteno);
    if ($myytavissa < $kpl) {
        rest_virhe_header("Virhe. Saldo ei riitä");
    }
    $ytunnus = $laskurow["ytunnus"];
    $kpl = $kpl;
    $tuoteno = $trow["tuoteno"];
    $toimaika = $laskurow["toimaika"];
    $kerayspvm = $laskurow["kerayspvm"];
    $hinta = "";
    $netto = "";
    $var = "";
    $alv = "";
    $paikka = "";
    $varasto = "";
    $rivitunnus = "";
    $korvaavakielto = "";
    $jtkielto = $laskurow["jtkielto"];
    $varataan_saldoa = "EI";
    $kommentti = $kommentti;
    for ($alepostfix = 1; $alepostfix <= $yhtiorow["myynnin_alekentat"]; $alepostfix++) {
        ${"ale" . $alepostfix} = "";
    }
    require "tilauskasittely/lisaarivi.inc";
    rest_ok_header($tilausnumero);
}
while ($ketju = mysql_fetch_assoc($result)) {
    // Haetaan ketjun tuotteet
    $tuotteet_query = "SELECT korvaavat.id, korvaavat.tuoteno, korvaavat.jarjestys, tuote.hinnastoon\n                     FROM korvaavat\n                     JOIN tuote on (tuote.yhtio=korvaavat.yhtio and tuote.tuoteno=korvaavat.tuoteno)\n                     WHERE korvaavat.yhtio='{$kukarow['yhtio']}'\n                     AND id='{$ketju['id']}'\n                     ORDER BY if(jarjestys=0, 9999, jarjestys), tuoteno;";
    $tuotteet_result = pupe_query($tuotteet_query);
    // Eka tuote on AINA ketjun päätuote
    $paa_tuote = mysql_fetch_assoc($tuotteet_result);
    // Jos päätuotteen tuote.hinnastoon on 'E'
    if ($paa_tuote['hinnastoon'] == 'E') {
        $myytavissa = saldo_myytavissa($paa_tuote['tuoteno']);
        // Jos päätuotteella on saldoa
        if ($myytavissa[0] > 0) {
            $yhteensa += 1;
            $paivitetaanko = false;
            // Loopataan ketjun tuotteet
            while ($ketjun_tuote = mysql_fetch_assoc($tuotteet_result)) {
                $tuote_myytavissa = saldo_myytavissa($ketjun_tuote['tuoteno']);
                // Päivitetään päätuote hinnastoon jos ketjussa on tuotteita joiden myytavissa on 0,
                // ja hinnastoon KYLLÄ
                if ($tuote_myytavissa[2] == 0 and $ketjun_tuote['hinnastoon'] != 'E') {
                    $paivitetaanko = true;
                }
            }
            // Jos hinnastoon on setattu, niin ketjun päätuote pitää päivittää
            if ($paivitetaanko) {
                // Päivitetään tuote.hinnastoon
                $query = "UPDATE tuote SET hinnastoon='' WHERE yhtio='{$kukarow['yhtio']}' AND tuoteno='{$paa_tuote['tuoteno']}'";
                if ($result2 = pupe_query($query)) {
                    $muutettu += 1;
                }
                echo "Ketjun {$paa_tuote['id']} päätuote {$paa_tuote['tuoteno']} päivitetty hinnastoon kylläksi.\n";
            }
Exemple #13
0
 }
 $selectlisa = '';
 if ($kayta_ostotilausta == '') {
     $selectlisa = ", lasku.ytunnus,\n    lasku.nimi,\n    lasku.postitp,\n    lasku.tunnus,\n    tilausrivi.nimitys,\n    sum(tilausrivi.varattu+tilausrivi.jt) myydyt,\n    tilausrivi.yksikko,\n    sum(tilausrivi.tilkpl * tilausrivi.hinta) arvo,\n    lasku.tila,\n    lasku.alatila";
 } else {
     $selectlisa = ", group_concat(tilausrivi.tunnus) tunnukset, sum(tilausrivi.varattu+tilausrivi.jt) myydyt";
 }
 $query = "SELECT lasku.toimaika,\n            tilausrivi.tuoteno,\n            trlt.korvamerkinta,\n            tilausrivi.tunnus AS tilausrivitunnus\n            {$selectlisa}\n            FROM tilausrivi use index (yhtio_tyyppi_laskutettuaika)\n            JOIN lasku ON (tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus and lasku.tila IN ('L','N') and lasku.toimaika <= '{$myovv}-{$myokk}-{$myopp}')\n            JOIN tuote ON (tuote.yhtio = lasku.yhtio and tuote.tuoteno = tilausrivi.tuoteno)\n            JOIN asiakas ON (asiakas.yhtio = lasku.yhtio and asiakas.tunnus = lasku.liitostunnus)\n            JOIN tilausrivin_lisatiedot AS trlt ON (trlt.yhtio = lasku.yhtio AND trlt.tilausrivitunnus = tilausrivi.tunnus)\n            {$toimjoin}\n            WHERE tilausrivi.yhtio         = '{$kukarow['yhtio']}'\n            and tilausrivi.tyyppi         != 'D'\n            and tilausrivi.laskutettuaika  = '0000-00-00'\n            and tilausrivi.toimitettuaika  = '0000-00-00'\n            and tilausrivi.var            != 'P'\n            {$lisa}\n            group by lasku.toimaika, tilausrivi.tuoteno\n            ORDER BY lasku.toimaika {$suunta}";
 $result = pupe_query($query);
 if (mysql_num_rows($result) == 0) {
     echo "<tr><td class='back'><font class='message'>", t("Yhtään tilausta ei löytynyt"), "!</font></td></tr>";
 }
 while ($tulrow = mysql_fetch_array($result)) {
     list(, , $myytavissa) = saldo_myytavissa($tulrow["tuoteno"], '', '', '', '', '', '', '', '', '');
     if ($yhtiorow['saldo_kasittely'] != '') {
         list(, , $myytavissa_tul) = saldo_myytavissa($tulrow["tuoteno"], '', '', '', '', '', '', '', '', $myovv . "-" . $myokk . "-" . $myopp);
     }
     if (isset($kayta_ostotilausta) and $kayta_ostotilausta != '') {
         if ($myytavissa > $tulrow['myydyt']) {
             continue;
         }
         $ostotilaus_varattu_kpl = 0;
         $query = "SELECT *\n                FROM tilausrivi\n                WHERE yhtio   = '{$kukarow['yhtio']}'\n                AND tuoteno   = '{$tulrow['tuoteno']}'\n                AND kpl       = 0\n                AND varattu  != 0\n                AND tyyppi    = 'O'\n                AND toimaika  <= '{$tulrow['toimaika']}'\n                ORDER BY toimaika {$suunta}";
         $ostotilausres = pupe_query($query);
         while ($ostotilausrow = mysql_fetch_assoc($ostotilausres)) {
             $ostotilaus_varattu_kpl += $ostotilausrow['varattu'];
         }
         if ($ostotilaus_varattu_kpl > $ostotilausrow['varattu']) {
             continue;
         }
         $kpl_pvm = array();
Exemple #14
0
}
echo date("d.m.Y @ G:i:s") . " - Haetaan saldot.\n";
if ($ajetaanko_kaikki == "NO") {
    $muutoslisa1 = "AND tapahtuma.laadittu  >= '{$datetime_checkpoint}'";
    $muutoslisa2 = "AND tilausrivi.laadittu >= '{$datetime_checkpoint}'";
    $muutoslisa3 = "AND tuote.muutospvm     >= '{$datetime_checkpoint}'";
} else {
    $muutoslisa1 = "";
    $muutoslisa2 = "";
    $muutoslisa3 = "";
}
// Haetaan saldot tuotteille, joille on tehty tunnin sisällä tilausrivi tai tapahtuma
$query = "(SELECT tapahtuma.tuoteno,\n            tuote.eankoodi\n            FROM tapahtuma\n            JOIN tuote ON (tuote.yhtio = tapahtuma.yhtio\n              AND tuote.tuoteno      = tapahtuma.tuoteno\n              AND tuote.status      != 'P'\n              AND tuote.tuotetyyppi  NOT in ('A','B')\n              AND tuote.tuoteno     != ''\n              AND tuote.nakyvyys    != '')\n            WHERE tapahtuma.yhtio    = '{$kukarow["yhtio"]}'\n            {$muutoslisa1})\n\n            UNION\n\n            (SELECT tilausrivi.tuoteno,\n            tuote.eankoodi\n            FROM tilausrivi\n            JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio\n              AND tuote.tuoteno      = tilausrivi.tuoteno\n              AND tuote.status      != 'P'\n              AND tuote.tuotetyyppi  NOT in ('A','B')\n              AND tuote.tuoteno     != ''\n              AND tuote.nakyvyys    != '')\n            WHERE tilausrivi.yhtio   = '{$kukarow["yhtio"]}'\n            {$muutoslisa2})\n\n            UNION\n\n            (SELECT tuote.tuoteno,\n            tuote.eankoodi\n            FROM tuote\n            WHERE tuote.yhtio        = '{$kukarow["yhtio"]}'\n            AND tuote.status        != 'P'\n            AND tuote.tuotetyyppi    NOT in ('A','B')\n            AND tuote.tuoteno       != ''\n            AND tuote.nakyvyys      != ''\n            {$muutoslisa3})\n\n            ORDER BY 1";
$result = pupe_query($query);
while ($row = mysql_fetch_assoc($result)) {
    list(, , $myytavissa) = saldo_myytavissa($row["tuoteno"], '', $verkkokauppa_saldo_varasto);
    $dnstock[] = array('tuoteno' => $row["tuoteno"], 'ean' => $row["eankoodi"], 'myytavissa' => $myytavissa);
}
if ($ajetaanko_kaikki == "NO") {
    $muutoslisa = "AND (try_fi.muutospvm    >= '{$datetime_checkpoint}'\n                   OR try_se.muutospvm    >= '{$datetime_checkpoint}'\n                   OR try_en.muutospvm    >= '{$datetime_checkpoint}'\n                   OR osasto_fi.muutospvm >= '{$datetime_checkpoint}'\n                   OR osasto_se.muutospvm >= '{$datetime_checkpoint}'\n                   OR osasto_en.muutospvm >= '{$datetime_checkpoint}')";
} else {
    $muutoslisa = "";
}
echo date("d.m.Y @ G:i:s") . " - Haetaan osastot/tuoteryhmät.\n";
// Haetaan kaikki TRY ja OSASTO:t, niiden muutokset.
$query = "SELECT DISTINCT  tuote.osasto,\n          tuote.try,\n          try_fi.selitetark try_fi_nimi,\n          try_se.selitetark try_se_nimi,\n          try_en.selitetark try_en_nimi,\n          osasto_fi.selitetark osasto_fi_nimi,\n          osasto_se.selitetark osasto_se_nimi,\n          osasto_en.selitetark osasto_en_nimi\n          FROM tuote\n          LEFT JOIN avainsana as try_fi ON (try_fi.yhtio = tuote.yhtio\n            and try_fi.selite     = tuote.try\n            and try_fi.laji       = 'try'\n            and try_fi.kieli      = 'fi')\n          LEFT JOIN avainsana as try_se ON (try_se.yhtio = tuote.yhtio\n            and try_se.selite     = tuote.try\n            and try_se.laji       = 'try'\n            and try_se.kieli      = 'se')\n          LEFT JOIN avainsana as try_en ON (try_en.yhtio = tuote.yhtio\n            and try_en.selite     = tuote.try\n            and try_en.laji       = 'try'\n            and try_en.kieli      = 'en')\n          LEFT JOIN avainsana as osasto_fi ON (osasto_fi.yhtio = tuote.yhtio\n            and osasto_fi.selite  = tuote.osasto\n            and osasto_fi.laji    = 'osasto'\n            and osasto_fi.kieli   = 'fi')\n          LEFT JOIN avainsana as osasto_se ON (osasto_se.yhtio = tuote.yhtio\n            and osasto_se.selite  = tuote.osasto\n            and osasto_se.laji    = 'osasto'\n            and osasto_se.kieli   = 'se')\n          LEFT JOIN avainsana as osasto_en ON (osasto_en.yhtio = tuote.yhtio\n            and osasto_en.selite  = tuote.osasto\n            and osasto_en.laji    = 'osasto'\n            and osasto_en.kieli   = 'en')\n          WHERE tuote.yhtio       = '{$kukarow["yhtio"]}'\n          AND tuote.status       != 'P'\n          AND tuote.tuotetyyppi   NOT in ('A','B')\n          AND tuote.tuoteno      != ''\n          AND tuote.nakyvyys     != ''\n          {$muutoslisa}\n          ORDER BY 1, 2";
$try_result = pupe_query($query);
while ($row = mysql_fetch_assoc($try_result)) {
    // Osasto/tuoteryhmä array
    $dnsryhma[$row["osasto"]][$row["try"]] = array('osasto' => $row["osasto"], 'try' => $row["try"], 'osasto_fi' => $row["osasto_fi_nimi"], 'try_fi' => $row["try_fi_nimi"], 'osasto_se' => $row["osasto_se_nimi"], 'try_se' => $row["try_se_nimi"], 'osasto_en' => $row["osasto_en_nimi"], 'try_en' => $row["try_en_nimi"]);
    // Kerätään myös pelkät tuotenumerot Magentoa varten
 // Poislukien päätuote
 $paa_tuote = mysql_fetch_assoc($tuotteet_result);
 $edellinen_tuote = $paa_tuote;
 // Loopataan ketjun muut tuotteet läpi
 while ($tuote = mysql_fetch_assoc($tuotteet_result)) {
     // Muutetaan tuotteen nimitys
     // Jos tuotteen järjestys on 0, laitetaan päätuote, muuten edellinen
     if ($tuote['jarjestys'] == 0) {
         $tuoteno = $paa_tuote['tuoteno'];
     } else {
         $tuoteno = $edellinen_tuote['tuoteno'];
     }
     $uusi_nimitys = "KORVAAVA " . $tuoteno;
     if ($uusi_nimitys != $tuote['nimitys']) {
         // Tuotteen saldo
         $myytavissa = saldo_myytavissa($tuote['tuoteno']);
         // Huomioidaan vain tuotteet joilla saldo on nolla
         if ($myytavissa[0] == 0) {
             $muutos_query = "UPDATE tuote SET\n                         nimitys='{$uusi_nimitys}'\n                         WHERE yhtio='{$kukarow['yhtio']}'\n                         AND tuoteno='{$tuote['tuoteno']}'";
             // Ajetaan päivitysquery ja poistetaan tuote vastaavuusketjuista
             if (pupe_query($muutos_query)) {
                 $muutettu++;
                 $poista_vastaavat_query = "DELETE FROM vastaavat\n                                     WHERE yhtio='{$kukarow['yhtio']}'\n                                     AND tuoteno='{$tuote['tuoteno']}'";
                 if (pupe_query($poista_vastaavat_query)) {
                     $poistettu++;
                 }
             }
         }
     }
     // Laitetaan ketjun edellinen tuote talteen
     $edellinen_tuote = $tuote;
     echo "<font class='error'>" . t("Virhe sisäänluettavan tiedoston rivillä %s, riviä ei huomioida", "", $rowkey + 1) . "...{$seliseli}</font><br>";
     unset($kaikki_tiedostorivit[$rowkey]);
     continue;
 }
 // LÄHDEVARASTOPAIKKA
 list($lhyllyalue, $lhyllynro, $lhyllyvali, $lhyllytaso) = explode("-", $lahdevarastopk);
 // Tarkistetaan onko tuotepaikka ja tuote olemassa
 $query = "SELECT tuotepaikat.*\n                  FROM tuotepaikat use index (tuote_index)\n                  JOIN tuote ON (tuote.yhtio = tuotepaikat.yhtio AND tuote.tuoteno = tuotepaikat.tuoteno)\n                  WHERE tuotepaikat.yhtio   = '{$kukarow['yhtio']}'\n                  and tuotepaikat.tuoteno   = '{$tuoteno}'\n                  and tuotepaikat.hyllyalue = '{$lhyllyalue}'\n                  and tuotepaikat.hyllynro  = '{$lhyllynro}'\n                  and tuotepaikat.hyllyvali = '{$lhyllyvali}'\n                  and tuotepaikat.hyllytaso = '{$lhyllytaso}'";
 $tvresult = pupe_query($query);
 if (mysql_num_rows($tvresult) == 0) {
     unset($kaikki_tiedostorivit[$rowkey]);
     continue;
 } else {
     $tvrow = mysql_fetch_assoc($tvresult);
     $tiedr[2] = $tvrow['tunnus'];
     list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($tuoteno, '', $varasto_valinta, '', $lhyllyalue, $lhyllynro, $lhyllyvali, $lhyllytaso);
     if ($kpl == "X" or $kpl > $myytavissa) {
         $tiedr[1] = $myytavissa;
     }
 }
 // Tarkistetaan onko annettu lähdevarastopaikka valitussa varastossa
 $lahdetsekki = kuuluukovarastoon($lhyllyalue, $lhyllynro, $varasto_valinta);
 if ($lahdetsekki == 0) {
     echo "<font class='error'>" . t("Tuotteen %s lähdevarastopaikka %s %s %s %s ei ole valitussa varastossa", "", $tuoteno, $lhyllyalue, $lhyllynro, $lhyllyvali, $lhyllytaso) . "!</font><br>";
     unset($kaikki_tiedostorivit[$rowkey]);
     continue;
 }
 // KOHDEVARASTOPAIKKA
 list($ahyllyalue, $ahyllynro, $ahyllyvali, $ahyllytaso) = explode("-", $kohdevarastopk);
 // Tarkistetaan onko annettu kohdevarastopaikka valitussa varastossa
 $kohdetsekki = kuuluukovarastoon($ahyllyalue, $ahyllynro, $varasto_valinta);
$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";
Exemple #18
0
 echo 'haly';
 echo '</th>';
 echo '<tr>';
 $pdf_data = array();
 foreach ($oletuspaikat as $row) {
     $saldo_info = saldo_myytavissa($row['tuoteno'], '', $row['varasto'], $kukarow['yhtio'], $row['alue'], $row['nro'], $row['vali'], $row['taso']);
     $row['myytavissa'] = $saldo_info[2];
     if ($row['myytavissa'] >= $row['haly']) {
         continue;
     }
     $query2 = "SELECT CONCAT(hyllyalue, '-', hyllynro, '-', hyllyvali, '-', hyllytaso ) AS tuotepaikka,\n                  hyllyalue AS alue,\n                  hyllynro AS nro,\n                  hyllyvali AS vali,\n                  hyllytaso AS taso\n                  FROM tuotepaikat\n                  WHERE tuoteno  = '{$row['tuoteno']}'\n                  AND yhtio      = '{$kukarow['yhtio']}'\n                  AND oletus    != 'X'\n                  AND varasto    = {$row['varasto']}";
     $result2 = pupe_query($query2);
     $varapaikka_echo = '';
     $varapaikat = array();
     while ($row2 = mysql_fetch_assoc($result2)) {
         $saldo_info = saldo_myytavissa($row['tuoteno'], '', $row['varasto'], $kukarow['yhtio'], $row2['alue'], $row2['nro'], $row2['vali'], $row2['taso']);
         $row2['myytavissa'] = $saldo_info[2];
         if ($row2['myytavissa'] < 1) {
             continue;
         }
         $varapaikka_echo .= '<tr>';
         $varapaikka_echo .= '<th>';
         $varapaikka_echo .= 'Varapaikka';
         $varapaikka_echo .= '</th>';
         $varapaikka_echo .= '<td style="color:silver;">';
         $varapaikka_echo .= $row['tuoteno'];
         $varapaikka_echo .= '</td>';
         $varapaikka_echo .= '<td>';
         $varapaikka_echo .= $row2['tuotepaikka'];
         $varapaikka_echo .= '</td>';
         $varapaikka_echo .= '<td>';
if (count($verkkokauppa_saldo_varasto) == 0) {
    echo "verkkokauppa_saldo_varasto pitää määritellä!\n";
    exit;
}
// Haetaan aika jolloin tämä skripti on viimeksi ajettu
$datetime_checkpoint = cron_aikaleima("MYY_STATIC_CRON");
echo date("d.m.Y @ G:i:s") . " - Aloitetaan myytavissa_static-päivitys.\n";
echo date("d.m.Y @ G:i:s") . " - Haetaan saldot.\n";
if ($datetime_checkpoint != "" and $ajetaanko_kaikki == "NO") {
    $muutoslisa1 = "AND tapahtuma.laadittu  >= '{$datetime_checkpoint}'";
    $muutoslisa2 = "AND tilausrivi.laadittu >= '{$datetime_checkpoint}'";
    $muutoslisa3 = "AND tuote.muutospvm     >= '{$datetime_checkpoint}'";
    // Haetaan saldot tuotteille, joille on tehty tunnin sisällä tilausrivi tai tapahtuma
    $query = "(SELECT tapahtuma.tuoteno\n              FROM tapahtuma\n              JOIN tuote ON (tuote.yhtio = tapahtuma.yhtio\n                AND tuote.tuoteno      = tapahtuma.tuoteno\n                AND tuote.status      != 'P'\n                AND tuote.tuotetyyppi  NOT in ('A','B')\n                AND tuote.tuoteno     != ''\n                AND tuote.nakyvyys    != '')\n              WHERE tapahtuma.yhtio    = '{$kukarow["yhtio"]}'\n              {$muutoslisa1})\n\n              UNION\n\n              (SELECT tilausrivi.tuoteno\n              FROM tilausrivi\n              JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio\n                AND tuote.tuoteno      = tilausrivi.tuoteno\n                AND tuote.status      != 'P'\n                AND tuote.tuotetyyppi  NOT in ('A','B')\n                AND tuote.tuoteno     != ''\n                AND tuote.nakyvyys    != '')\n              WHERE tilausrivi.yhtio   = '{$kukarow["yhtio"]}'\n              {$muutoslisa2})\n\n              UNION\n\n              (SELECT tuote.tuoteno\n              FROM tuote\n              WHERE tuote.yhtio        = '{$kukarow["yhtio"]}'\n              AND tuote.status        != 'P'\n              AND tuote.tuotetyyppi    NOT in ('A','B')\n              AND tuote.tuoteno       != ''\n              AND tuote.nakyvyys      != ''\n              {$muutoslisa3})\n\n              ORDER BY 1";
} else {
    $query = "SELECT tuote.tuoteno\n             FROM tuote\n             WHERE tuote.yhtio      = '{$kukarow["yhtio"]}'\n             AND tuote.status      != 'P'\n             AND tuote.tuotetyyppi  NOT in ('A','B')\n             AND tuote.tuoteno     != ''\n             AND tuote.nakyvyys    != ''";
}
$result = pupe_query($query);
while ($row = mysql_fetch_assoc($result)) {
    foreach ($verkkokauppa_saldo_varasto as $varasto) {
        $query = "SELECT hyllyalue, hyllynro, hyllyvali, hyllytaso, tunnus\n               FROM tuotepaikat\n               WHERE yhtio = '{$kukarow["yhtio"]}'\n               AND tuoteno = '{$row["tuoteno"]}'\n               AND varasto = '{$varasto}'";
        $tpres = pupe_query($query);
        while ($tprow = mysql_fetch_assoc($tpres)) {
            list(, , $myytavissa) = saldo_myytavissa($row["tuoteno"], '', '', '', $tprow["hyllyalue"], $tprow["hyllynro"], $tprow["hyllyvali"], $tprow["hyllytaso"]);
            $query = "UPDATE tuotepaikat\n                 SET myytavissa_static = '{$myytavissa}'\n                 WHERE tunnus = '{$tprow["tunnus"]}'";
            pupe_query($query);
        }
    }
}
// Kun kaikki onnistui, päivitetään lopuksi timestamppi talteen
cron_aikaleima("MYY_STATIC_CRON", date('Y-m-d H:i:s'));
Exemple #20
0
     $yksikko = "PAR";
 }
 // haetaan oletus varastopaikka
 $query = "select * from tuotepaikat where yhtio='{$kukarow['yhtio']}' and tuoteno='{$row['tuoteno']}' and oletus='X'";
 $kores = pupe_query($query);
 $korow = mysql_fetch_array($kores);
 $hyllyalue = $korow['hyllyalue'];
 $hyllynro = $korow['hyllynro'];
 $hyllyvali = $korow['hyllyvali'];
 $hyllytaso = $korow['hyllytaso'];
 // asiakkaiden järjestelmät on paskoja
 if ($row['eankoodi'] == 0) {
     $row['eankoodi'] = "";
 }
 // katotaan paljon myytävissä
 list(, , $saldo) = saldo_myytavissa($row["tuoteno"]);
 if ($saldo > 1) {
     $saldo = 1;
 }
 if ($saldo < 1) {
     $saldo = 0;
 }
 // tehdään tietuetta
 $ulos = sprintf("%-20.20s", $row['tuoteno']);
 $ulos .= sprintf("%-2.2s", $row['osasto']);
 $ulos .= sprintf("%-5.5s", $row['try']);
 $ulos .= sprintf("%-15.15s", $row['aleryhma']);
 $ulos .= sprintf("%-50.50s", $row['nimitys']);
 $ulos .= sprintf("%-10.10s", $row['myyntihinta']);
 $ulos .= sprintf("%-10.10s", $saldo);
 $ulos .= sprintf("%-1.1s", $hyllyalue);
         $tarve_kohdevarasto = (double) $test;
     }
     if ($myyntiera == 'X') {
         $kokonaisluku = ceil($tarve_kohdevarasto / $pairow['myynti_era']);
         $test = $kokonaisluku * $pairow['myynti_era'];
         $tarve_kohdevarasto = (double) $test;
     }
 }
 if ($tarve_kohdevarasto <= 0) {
     continue;
 }
 // Lähdevaraston myytävissämäärä
 if ($lahdevyohykkeet) {
     list(, , $saldo_myytavissa_lahde) = saldo_myytavissa($pairow["tuoteno"], "KAIKKI", $lahdevarasto . "##" . $lahdevyohyke);
 } else {
     list(, , $saldo_myytavissa_lahde) = saldo_myytavissa($pairow["tuoteno"], "KAIKKI", $lahdevarasto);
 }
 // jos lähdevarasto on sama kuin kohdevarasto, niin silloin kohdepaikka on aina oletuspaikka, joten poistetaan sen myytävissämäärä lähdepuolelta
 if ($kohdevarasto == $lahdevarasto) {
     if ($saldo_myytavissa_kohde > 0) {
         $saldo_myytavissa_lahde = (double) $saldo_myytavissa_lahde - $saldo_myytavissa_kohde;
     } else {
         $saldo_myytavissa_lahde = (double) $saldo_myytavissa_lahde;
     }
 } else {
     $saldo_myytavissa_lahde = (double) $saldo_myytavissa_lahde;
 }
 //echo "TUOTENO: $kala $pairow[tuoteno]<br>";
 //echo "MENOSSA_PAIKALLE: $menossa_paikalle<br>";
 //echo "MENOSSA_VARASTOON: $menossa_varastoon<br>";
 //echo "MYYTAVISSÄ_KOHDE: $saldo_myytavissa_kohde<br>";
Exemple #22
0
     if ($varow['maa'] != '' and $yhtiorow['varastopaikan_lippu'] != '') {
         echo "<td {$class} align='left' valign='top'><font class='error'><img src='{$palvelin2}pics/flag_icons/gif/" . strtolower($varow['maa']) . ".gif'> {$row['hyllyalue']} {$row['hyllynro']} {$row['hyllyvali']} {$row['hyllytaso']}</font></td>";
     } elseif ($varow['maa'] != '' and strtoupper($varow['maa']) != strtoupper($yhtiorow['maa'])) {
         echo "<td {$class} align='left' valign='top'><font class='error'>" . strtoupper($varow['maa']) . " {$row['hyllyalue']} {$row['hyllynro']} {$row['hyllyvali']} {$row['hyllytaso']}</font></td>";
     } else {
         echo "<td {$class} align='left' valign='top'> {$row['hyllyalue']} {$row['hyllynro']} {$row['hyllyvali']} {$row['hyllytaso']}</td>";
     }
 } elseif (($toim != "TARJOUS" and $toim != "EXTTARJOUS" or $yhtiorow['tarjouksen_tuotepaikat'] == "") and $kukarow['extranet'] != '' and $yhtiorow['varastopaikan_lippu'] != '') {
     if ($varow['maa'] != '') {
         echo "<td {$class} align='left' valign='top'><img src='{$palvelin2}pics/flag_icons/gif/" . strtolower($varow['maa']) . ".gif'></td>";
     } else {
         echo "<td {$class} align='left' valign='top'></td>";
     }
 }
 if ($saldo_valmistuksella) {
     list($_saldo, $_hyllyssa, $_myytavissa) = saldo_myytavissa($row["tuoteno"], '', $row["varasto"]);
     echo "<td {$class} align='left' valign='top'>{$_myytavissa}</td>";
 }
 if ($kukarow['extranet'] == '' and $tuotekyslinkki != "") {
     echo "<td {$class} valign='top'><a href='{$palvelin2}{$tuotekyslinkki}?" . $tuotekyslinkkilisa . "tee=Z&tuoteno=" . urlencode($row["tuoteno"]) . "&toim_kutsu={$toim}&lopetus={$tilmyy_lopetus}//from=LASKUTATILAUS'>{$row['tuoteno']}</a>";
 } else {
     echo "<td {$class} valign='top'>{$row['tuoteno']}";
 }
 // Näytetäänkö sarjanumerolinkki
 if (($row["sarjanumeroseuranta"] == "S" or $row["sarjanumeroseuranta"] == "T" or $row["sarjanumeroseuranta"] == "V" or ($row["sarjanumeroseuranta"] == "E" or $row["sarjanumeroseuranta"] == "F" or $row["sarjanumeroseuranta"] == "G") and $row["varattu"] < 0) and $row["var"] != 'P' and $row["var"] != 'T' and $row["var"] != 'U') {
     if ($toim == "SIIRTOLISTA" or $toim == "SIIRTOTYOMAARAYS") {
         $tunken1 = "siirtorivitunnus";
         $tunken2 = "siirtorivitunnus";
     } elseif (($toim == "VALMISTAVARASTOON" or $toim == "VALMISTAASIAKKAALLE") and $row["tyyppi"] != "V") {
         // Valmisteet
         $tunken1 = "ostorivitunnus";
     $sivulaskuri++;
     fwrite($fh, str_replace("<SIVUNUMERO>", "{$sivulaskuri} / {$kokonaissivumaara}", $ots));
     $rivit = 1;
 }
 if ($naytasaldo != '') {
     //katotaan mihin varastooon tilausrivillä tuotepaikka kuuluu
     $rivipaikka = kuuluukovarastoon($tuoterow["hyllyalue"], $tuoterow["hyllynro"]);
     $query = "SELECT tuote.yhtio, tuote.tuoteno, tuote.ei_saldoa, varastopaikat.tunnus varasto,\n                  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                    AND varastopaikat.tunnus = tuotepaikat.varasto\n                    AND varastopaikat.tunnus = '{$rivipaikka}')\n                  WHERE tuote.yhtio          = '{$kukarow['yhtio']}'\n                  AND tuote.tuoteno          = '{$tuoterow['tuoteno']}'\n                  ORDER BY tuotepaikat.oletus DESC, varastopaikat.nimitys, sorttauskentta";
     $sresult = pupe_query($query);
     $rivipaikkahyllyssa = 0;
     $rivivarastohyllyssa = 0;
     $rivipaikkasaldo = 0;
     $rivivarastosaldo = 0;
     if (mysql_num_rows($sresult) > 0) {
         while ($saldorow = mysql_fetch_assoc($sresult)) {
             list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($saldorow["tuoteno"], '', '', '', $saldorow["hyllyalue"], $saldorow["hyllynro"], $saldorow["hyllyvali"], $saldorow["hyllytaso"], '', '', $saldorow["era"]);
             if ($saldorow['hyllyalue'] == $tuoterow['hyllyalue'] and $saldorow['hyllynro'] == $tuoterow['hyllynro'] and $saldorow['hyllyvali'] == $tuoterow['hyllyvali'] and $saldorow['hyllytaso'] == $tuoterow['hyllytaso']) {
                 $rivipaikkahyllyssa += $hyllyssa;
                 $rivipaikkasaldo += $saldo;
             }
             $rivivarastohyllyssa += $hyllyssa;
             $rivivarastosaldo += $saldo;
         }
     }
 } else {
     $rivipaikkahyllyssa = 0;
     $rivivarastohyllyssa = 0;
     $rivipaikkasaldo = 0;
     $rivivarastosaldo = 0;
 }
 if ($tuoterow["inventointiaika"] == '0000-00-00 00:00:00') {
Exemple #24
0
if (!empty($alusta_tunnus) and $yhtiorow['suuntalavat'] != "") {
    $res = suuntalavan_tuotteet(array($alusta_tunnus), $liitostunnus, "", "", "", $tilausrivi);
    $row = mysql_fetch_assoc($res);
} elseif (isset($tullaan) and $tullaan == 'tuotteen_hyllypaikan_muutos') {
    $query = "SELECT tuotepaikat.*, tuote.yksikko\n            FROM tuotepaikat\n            JOIN tuote ON (tuote.yhtio = tuotepaikat.yhtio AND tuote.tuoteno = tuotepaikat.tuoteno)\n            WHERE tuotepaikat.yhtio = '{$kukarow['yhtio']}'\n            AND tuotepaikat.tunnus  = '{$tuotepaikan_tunnus}'";
    $res = pupe_query($query);
    $row = mysql_fetch_assoc($res);
} else {
    $query = "SELECT\n            tilausrivi.*,\n            tuotteen_toimittajat.toim_tuoteno\n            FROM tilausrivi\n            LEFT JOIN tuotteen_toimittajat on (tuotteen_toimittajat.tuoteno=tilausrivi.yhtio and tuotteen_toimittajat.tuoteno=tilausrivi.tuoteno)\n            WHERE tilausrivi.tunnus = '{$tilausrivi}'\n            AND tilausrivi.yhtio    = '{$kukarow['yhtio']}'";
    $row = mysql_fetch_assoc(pupe_query($query));
}
$_varasto = kuuluukovarastoon($row['hyllyalue'], $row['hyllynro']);
$onko_varaston_hyllypaikat_kaytossa = onko_varaston_hyllypaikat_kaytossa($_varasto);
if (!isset($tullaan) or $tullaan != 'tuotteen_hyllypaikan_muutos') {
    // Tarkistetaan tuotteen saldo
    list($saldo['saldo'], $saldo['hyllyssa'], $saldo['myytavissa']) = saldo_myytavissa($row['tuoteno'], '', '', '0', $row['hyllyalue'], $row['hyllynro'], $row['hyllyvali'], $row['hyllytaso']);
    $saldo['myytavissa'] = $saldo['myytavissa'] > 0 ? $saldo['myytavissa'] : 0;
}
if (isset($submit) and trim($submit) != '') {
    switch ($submit) {
        case 'submit':
            // Parsitaan uusi tuotepaikka
            // Jos tuotepaikka on luettu viivakoodina, muotoa (C21 045) tai (21C 03V)
            if (preg_match('/^([a-zåäö#0-9]{2,4} [a-zåäö#0-9]{2,4})/i', $tuotepaikka)) {
                // Pilkotaan viivakoodilla luettu tuotepaikka välilyönnistä
                list($alku, $loppu) = explode(' ', $tuotepaikka);
                // Mätsätään numerot ja kirjaimet erilleen
                preg_match_all('/([0-9]+)|([a-z]+)/i', $alku, $alku);
                preg_match_all('/([0-9]+)|([a-z]+)/i', $loppu, $loppu);
                // Hyllyn tiedot oikeisiin muuttujiin
                $hyllyalue = $alku[0][0];
     $summa = 0;
     $edtuoteno = "";
 }
 echo "<td>" . t_tuotteen_avainsanat($row, 'nimitys') . "</td>";
 echo "<td>{$row['status']}</td>";
 echo "<td>{$ryhmanimet[$a]} {$ryhmanimet[$b]} {$ryhmanimet[$c]}</td>";
 // tutkaillaan myynti
 $query = "SELECT\n              sum(if (laadittu >= '{$vva1}-{$kka1}-{$ppa1}' and laadittu <= '{$vvl1}-{$kkl1}-{$ppl1}' and var='P', tilkpl,0)) puutekpl1,\n                 sum(if (laadittu >= '{$vva2}-{$kka2}-{$ppa2}' and laadittu <= '{$vvl2}-{$kkl2}-{$ppl2}' and var='P', tilkpl,0)) puutekpl2,\n                 sum(if (laadittu >= '{$vva3}-{$kka3}-{$ppa3}' and laadittu <= '{$vvl3}-{$kkl3}-{$ppl3}' and var='P', tilkpl,0)) puutekpl3,\n                 sum(if (laadittu >= '{$vva4}-{$kka4}-{$ppa4}' and laadittu <= '{$vvl4}-{$kkl4}-{$ppl4}' and var='P', tilkpl,0)) puutekpl4,\n                 sum(if (laskutettuaika >= '{$vva1}-{$kka1}-{$ppa1}' and laskutettuaika <= '{$vvl1}-{$kkl1}-{$ppl1}' ,kpl,0)) kpl1,\n                 sum(if (laskutettuaika >= '{$vva2}-{$kka2}-{$ppa2}' and laskutettuaika <= '{$vvl2}-{$kkl2}-{$ppl2}' ,kpl,0)) kpl2,\n                 sum(if (laskutettuaika >= '{$vva3}-{$kka3}-{$ppa3}' and laskutettuaika <= '{$vvl3}-{$kkl3}-{$ppl3}' ,kpl,0)) kpl3,\n                 sum(if (laskutettuaika >= '{$vva4}-{$kka4}-{$ppa4}' and laskutettuaika <= '{$vvl4}-{$kkl4}-{$ppl4}' ,kpl,0)) kpl4,\n              sum(if (laskutettuaika >= '{$vva1}-{$kka1}-{$ppa1}' and laskutettuaika <= '{$vvl1}-{$kkl1}-{$ppl1}' and\n                  concat(rpad(upper('{$row['alkuhyllyalue']}')  ,5,'0'),lpad(upper('{$row['alkuhyllynro']}')  ,5,'0')) <= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')) and\n                  concat(rpad(upper('{$row['loppuhyllyalue']}') ,5,'0'),lpad(upper('{$row['loppuhyllynro']}') ,5,'0')) >= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')), kpl, 0)) varastonkpl1,\n              sum(if (laskutettuaika >= '{$vva2}-{$kka2}-{$ppa2}' and laskutettuaika <= '{$vvl2}-{$kkl2}-{$ppl2}' and\n                  concat(rpad(upper('{$row['alkuhyllyalue']}')  ,5,'0'),lpad(upper('{$row['alkuhyllynro']}')  ,5,'0')) <= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')) and\n                  concat(rpad(upper('{$row['loppuhyllyalue']}') ,5,'0'),lpad(upper('{$row['loppuhyllynro']}') ,5,'0')) >= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')), kpl, 0)) varastonkpl2,\n              sum(if (laskutettuaika >= '{$vva3}-{$kka3}-{$ppa3}' and laskutettuaika <= '{$vvl3}-{$kkl3}-{$ppl3}' and\n                  concat(rpad(upper('{$row['alkuhyllyalue']}')  ,5,'0'),lpad(upper('{$row['alkuhyllynro']}')  ,5,'0')) <= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')) and\n                  concat(rpad(upper('{$row['loppuhyllyalue']}') ,5,'0'),lpad(upper('{$row['loppuhyllynro']}') ,5,'0')) >= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')), kpl, 0)) varastonkpl3,\n              sum(if (laskutettuaika >= '{$vva4}-{$kka4}-{$ppa4}' and laskutettuaika <= '{$vvl4}-{$kkl4}-{$ppl4}' and\n                  concat(rpad(upper('{$row['alkuhyllyalue']}')  ,5,'0'),lpad(upper('{$row['alkuhyllynro']}')  ,5,'0')) <= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')) and\n                  concat(rpad(upper('{$row['loppuhyllyalue']}') ,5,'0'),lpad(upper('{$row['loppuhyllynro']}') ,5,'0')) >= concat(rpad(upper(hyllyalue) ,5,'0'),lpad(upper(hyllynro) ,5,'0')), kpl, 0)) varastonkpl4\n                 FROM tilausrivi use index (yhtio_tyyppi_tuoteno_laskutettuaika)\n                 WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n                 and tyyppi             = 'L'\n                 and tuoteno            = '{$row['tuoteno']}'\n                 and ((laskutettuaika >= '{$apvm}' and laskutettuaika <= '{$lpvm}') or laskutettuaika = '0000-00-00')";
 $result = pupe_query($query);
 $summarow = mysql_fetch_array($result);
 echo "<td align='right'>{$summarow['puutekpl1']}</td>";
 // saldo myytävissa kaikki varastot
 list(, , $saldo) = saldo_myytavissa($row["tuoteno"], "KAIKKI");
 echo "<td align='right'>" . sprintf("%.2f", $saldo) . "<br>";
 // saldo myytävissa tämä varasto
 list(, , $saldo) = saldo_myytavissa($row["tuoteno"], "KAIKKI", $row["tunnus"]);
 echo sprintf("%.2f", $saldo) . "</td>";
 echo "<td align='right' class='tooltip' id='{$row['paikkatunnus']}'>{$summarow['kpl1']}<br>{$summarow['varastonkpl1']}</td>";
 echo "<td align='right'>{$row['halytysraja']}</td>";
 echo "</tr>\n";
 // tehään popup divi myynneistä
 $divit .= "<div id='div_{$row['paikkatunnus']}' class='popup' style='width:250px;'>";
 $divit .= "<table style='width:250px;'>";
 $divit .= "<tr><th nowrap>" . t("Kok.Myynti 1") . "</th>";
 $divit .= "<td align='right'>{$summarow['kpl1']}</td></tr>";
 $divit .= "<tr><th nowrap>" . t("Var.Myynti 1") . "</th>";
 $divit .= "<td align='right'>{$summarow['varastonkpl1']}</td></tr>";
 $divit .= "<tr><th nowrap>" . t("Kok.Myynti 2") . "</th>";
 $divit .= "<td align='right'>{$summarow['kpl2']}</td></tr>";
 $divit .= "<tr><th nowrap>" . t("Var.Myynti 2") . "</th>";
 $divit .= "<td align='right'>{$summarow['varastonkpl2']}</td></tr>";
Exemple #26
0
echo "<td><input type='submit' name='submit_button' id='submit_button' value = 'Etsi'></td>";
echo "</tr>";
echo "</table><br/>";
echo "</form>";
if ($lisa != "") {
    $query = "SELECT\n            tuoteno,\n            nimitys,\n            myyntihinta\n            FROM tuote\n            WHERE yhtio      = '{$kukarow["yhtio"]}'\n            {$lisa}\n            AND (status not in ('P','X') or (SELECT sum(saldo) FROM tuotepaikat WHERE tuotepaikat.yhtio=tuote.yhtio and tuotepaikat.tuoteno=tuote.tuoteno and tuotepaikat.saldo > 0) > 0)\n            and tuotetyyppi  NOT IN ('A', 'B')\n            and ei_saldoa    = ''\n            and hinnastoon  != 'E'\n            {$ei_try}\n            ORDER BY tuoteno, nimitys\n            Limit 500";
    $tuoteres = pupe_query($query);
    if (mysql_num_rows($tuoteres) > 0) {
        echo "<table>";
        echo "<tr>";
        echo "<th>Tuotekoodi</th>";
        echo "<th>Nimitys</th>";
        echo "<th>Hinta</th>";
        echo "<th>Saldo</th>";
        echo "</tr>";
        while ($tuoterow = mysql_fetch_assoc($tuoteres)) {
            list(, , $myytavissa) = saldo_myytavissa($tuoterow["tuoteno"], "", $varastot);
            echo "<tr>";
            echo "<td>{$tuoterow["tuoteno"]}</td>";
            echo "<td>{$tuoterow["nimitys"]}</td>";
            echo "<td align='right'>" . sprintf('%0.2f', round($tuoterow["myyntihinta"], $yhtiorow["hintapyoristys"])) . "</td>";
            echo "<td align='right'>{$myytavissa}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "Ei tuotteita!";
    }
} else {
    echo "Anna hakuehto!";
}
Exemple #27
0
 $query = "SELECT\n                      sarjanumeroseuranta.sarjanumero era,\n                      tuote.ei_saldoa,\n                      tuote.tuoteno,\n                      tuote.vakkoodi,\n                      tuote.yhtio,\n                      tuotepaikat.hyllyalue,\n                      tuotepaikat.hyllynro,\n                      tuotepaikat.hyllytaso,\n                      tuotepaikat.hyllyvali,\n                      tuotepaikat.oletus,\n                      varastopaikat.erikoistoimitus_alarajasumma,\n                      varastopaikat.maa varastomaa,\n                      varastopaikat.nimitys,\n                      varastopaikat.tunnus varasto,\n                      varastopaikat.tyyppi varastotyyppi,\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                      if(varastopaikat.tyyppi!='', concat('(',varastopaikat.tyyppi,')'), '') tyyppi,\n                      {$pepvmlisa1}\n                      group_concat(sarjanumeroseuranta.ostorivitunnus) ostorivitunnus\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                        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                         = '{$kukarow['yhtio']}'\n                      and tuote.tuoteno                         = '{$row['puhdas_tuoteno']}'\n                      GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 {$pepvmlisa2}\n                      ORDER BY tuotepaikat.oletus DESC, varastopaikat.nimitys, sorttauskentta";
 $omavarastores = pupe_query($query);
 $paikat = "<option value=''>" . t("Valitse erä") . "</option>";
 $selpaikka = "";
 $query = "SELECT sarjanumeroseuranta.sarjanumero era, sarjanumeroseuranta.parasta_ennen\n                       FROM sarjanumeroseuranta\n                       WHERE yhtio = '{$kukarow['yhtio']}'\n                       and tuoteno = '{$row['puhdas_tuoteno']}'\n                       and {$tunken1} = '{$row['tunnus']}'\n                       LIMIT 1";
 $sarjares = pupe_query($query);
 $sarjarow = mysql_fetch_assoc($sarjares);
 echo t("Erä") . ": ";
 while ($alkurow = mysql_fetch_assoc($omavarastores)) {
     if ($alkurow["hyllyalue"] != "!!M" and ($alkurow["varastotyyppi"] != "E" or $laskurow["varasto"] == $alkurow["varasto"] or $alkurow["hyllyalue"] == $row["hyllyalue"] and $alkurow["hyllynro"] == $row["hyllynro"] and $alkurow["hyllyvali"] == $row["hyllyvali"] and $alkurow["hyllytaso"] == $row["hyllytaso"])) {
         if ($yhtiorow["saldo_kasittely"] == "T") {
             $saldoaikalisa = date("Y-m-d");
         } else {
             $saldoaikalisa = "";
         }
         list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($row["puhdas_tuoteno"], '', '', '', $alkurow["hyllyalue"], $alkurow["hyllynro"], $alkurow["hyllyvali"], $alkurow["hyllytaso"], $laskurow["toim_maa"], $saldoaikalisa, $alkurow["era"]);
         $myytavissa = (double) $myytavissa;
         $lisa_row = array();
         if ($alkurow["ostorivitunnus"] != "" and in_array($row["sarjanumeroseuranta"], array("E", "F", "G"))) {
             //Jos erä on keksitty käsin täältä keräyksestä
             $query = "SELECT tyyppi, (varattu+kpl+jt) kpl, tunnus, laskutettu\n                            FROM tilausrivi\n                            WHERE yhtio = '{$kukarow['yhtio']}'\n                            and tuoteno = '{$row['puhdas_tuoteno']}'\n                            and tunnus  in ({$alkurow['ostorivitunnus']})";
             $lisa_res = pupe_query($query);
             $lisa_row = mysql_fetch_assoc($lisa_res);
         }
         // varmistetaan, että tämä erä on käytettävissä, eli ostorivitunnus pointtaa ostoriviin, hyvitysriviin tai laskutettuun myyntiriviin tai tähän riviin itsessään
         if (($lisa_row["tyyppi"] == "O" or $lisa_row["kpl"] < 0 or $lisa_row["laskutettu"] != "" or $lisa_row["tunnus"] == $row["tunnus"]) and (in_array($yhtiorow["puute_jt_oletus"], array('H', 'O')) or $myytavissa >= $row["varattu"] or $row["var"] != "P" and $alkurow["hyllyalue"] == $row["hyllyalue"] and $alkurow["hyllynro"] == $row["hyllynro"] and $alkurow["hyllyvali"] == $row["hyllyvali"] and $alkurow["hyllytaso"] == $row["hyllytaso"] and $sarjarow["era"] == $alkurow["era"])) {
             $sel = "";
             if ($sarjarow["era"] == $alkurow["era"] and !in_array($row["var"], array("P", "S")) and $alkurow["hyllyalue"] == $row["hyllyalue"] and $alkurow["hyllynro"] == $row["hyllynro"] and $alkurow["hyllyvali"] == $row["hyllyvali"] and $alkurow["hyllytaso"] == $row["hyllytaso"]) {
                 $sel = "SELECTED";
                 $selpaikka = "{$alkurow['hyllyalue']}#{$alkurow['hyllynro']}#{$alkurow['hyllyvali']}#{$alkurow['hyllytaso']}#{$alkurow['era']}";
             } elseif (isset($_POST) and $_POST["era_new_paikka"][$row["tunnus"]] == "{$alkurow['hyllyalue']}#{$alkurow['hyllynro']}#{$alkurow['hyllyvali']}#{$alkurow['hyllytaso']}#{$alkurow['era']}") {
Exemple #28
0
 $query = "SELECT * from korvaavat where tuoteno='{$jtrow['tuoteno']}' and yhtio='{$kukarow['yhtio']}'";
 $korvaresult = pupe_query($query);
 if (mysql_num_rows($korvaresult) > 0) {
     // tuote löytyi, joten haetaan sen id...
     $korvarow = mysql_fetch_assoc($korvaresult);
     $query = "SELECT * from korvaavat where id='{$korvarow['id']}' and tuoteno<>'{$jtrow['tuoteno']}' and yhtio='{$kukarow['yhtio']}' order by jarjestys, tuoteno";
     $korva2result = pupe_query($query);
     if (mysql_num_rows($korva2result) > 0) {
         while ($krow2row = mysql_fetch_assoc($korva2result)) {
             $vapaana = 0;
             $jt_saldopvm = "";
             if ($yhtiorow["saldo_kasittely"] != "") {
                 $jt_saldopvm = date("Y-m-d");
             }
             foreach ($varastosta as $vara) {
                 list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($krow2row["tuoteno"], $jtspec, $vara, "", "", "", "", "", $asiakasmaa, $jt_saldopvm);
                 if ($saldolaskenta == "hyllysaldo") {
                     $vapaana += $hyllyssa;
                 } else {
                     $vapaana += $myytavissa;
                 }
             }
             if ($vapaana >= $jurow["jt"]) {
                 echo "<tr class='aktiivi'>";
                 echo "<td><font style='color:red;'>" . t("Korvaava") . "</font></td>";
                 echo "<td align='left' style='vertical-align:top'>";
                 echo "{$krow2row['tuoteno']} ({$vapaana}) <font style='color:green;'>" . t("Riittää kaikille") . "!{$varalisa}</font><br>";
                 echo "</td><td colspan='9' align='left'><input type='button' value='" . t("Korvaa tuote") . " {$jtrow['tuoteno']}' onClick='javascript:update_params(\"{$jtrow['tuoteno']}\", \"{$krow2row['tuoteno']}\", \"{$jtrow['tunnus']}\");javascript:submit();'></td></tr>";
             } elseif ($vapaana >= $jtrow["jt"]) {
                 echo "<tr class='aktiivi'>";
                 echo "<td><font style='color:red;'>" . t("Korvaava") . "</font></td>";
 if (is_object($xml)) {
     if (isset($xml->MessageHeader) and isset($xml->MessageHeader->MessageType) and trim($xml->MessageHeader->MessageType) == 'StockReport') {
         // tuki vain yhdelle Posten-varastolle
         $query = "SELECT *\n                    FROM varastopaikat\n                    WHERE yhtio              = '{$kukarow['yhtio']}'\n                    AND ulkoinen_jarjestelma = 'P'\n                    LIMIT 1";
         $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'];
             }
         }
function hae_valmistukset_joissa_raaka_aine_ei_riita($request)
{
    global $kukarow, $yhtiorow;
    $lasku_where = "";
    $valmistuksen_tila = search_array_key_for_value_recursive($request['valmistuksien_tilat'], 'value', $request['valmistuksen_tila']);
    $lasku_where .= $valmistuksen_tila[0]['query_where'];
    if (isset($request['valmistuslinja']) and $request['valmistuslinja'] != '') {
        $lasku_where .= "  AND lasku.kohde = '{$request['valmistuslinja']}'";
    }
    $tuote_join = "";
    if (!empty($request['mul_osasto'])) {
        $tuote_join .= "  AND tuote.osasto IN ('" . implode("','", $request['mul_osasto']) . "')";
    }
    if (!empty($request['mul_try'])) {
        $tuote_join .= "  AND tuote.try IN ('" . implode("','", $request['mul_try']) . "')";
    }
    if (!empty($request['mul_tme'])) {
        $tuote_join .= "  AND tuote.tuotemerkki IN ('" . implode("','", $request['mul_tme']) . "')";
    }
    //Haetaan valmisteet
    $query = "SELECT lasku.tunnus AS lasku_tunnus,\n            tilausrivi.tunnus AS tilausrivi_tunnus,\n            tilausrivi.tuoteno,\n            tilausrivi.nimitys,\n            tilausrivi.tyyppi,\n            lasku.kohde as valmistuslinja,\n            lasku.tila,\n            lasku.alatila,\n            lasku.kerayspvm,\n            lasku.toimaika,\n            (  SELECT toimi.nimi\n              FROM tuotteen_toimittajat\n              JOIN toimi\n              ON ( toimi.yhtio = tuotteen_toimittajat.yhtio\n                AND toimi.tunnus               = tuotteen_toimittajat.liitostunnus )\n              WHERE tuotteen_toimittajat.yhtio = '{$kukarow['yhtio']}'\n              AND tuotteen_toimittajat.tuoteno = tilausrivi.tuoteno\n              ORDER BY tuotteen_toimittajat.jarjestys ASC\n              LIMIT 1\n            ) AS toimittaja,\n            sum(tilausrivi.varattu) AS valmistettava_kpl\n            FROM lasku\n            JOIN tilausrivi\n            ON ( tilausrivi.yhtio = lasku.yhtio\n              AND tilausrivi.otunnus           = lasku.tunnus\n              AND tilausrivi.tyyppi            IN ('W')\n              AND tilausrivi.varattu           > 0)\n            JOIN tuote\n            ON ( tuote.yhtio = tilausrivi.yhtio\n              AND tuote.tuoteno                = tilausrivi.tuoteno\n              AND tuote.tuotetyyppi            not in ('A', 'B')\n              AND tuote.ei_saldoa              = ''\n              {$tuote_join} )\n            WHERE lasku.yhtio                  = '{$kukarow['yhtio']}'\n            AND lasku.toimaika BETWEEN '{$request['alku_pvm']}' AND '{$request['loppu_pvm']}'\n            {$lasku_where}\n            GROUP BY 1,2,3,4,5,6,7,8,9,10,11\n            ORDER BY lasku.tunnus ASC, tilausrivi.perheid ASC, tilausrivi.tyyppi DESC";
    $result = pupe_query($query);
    $valmistukset_joissa_raaka_aine_ei_riita = array();
    while ($valmiste_rivi = mysql_fetch_assoc($result)) {
        //Haetaan valmisteen raaka-aineet
        $query = "SELECT lasku.tunnus AS lasku_tunnus,\n              tilausrivi.tunnus AS tilausrivi_tunnus,\n              tilausrivi.tuoteno,\n              tilausrivi.nimitys,\n              tilausrivi.tyyppi,\n              lasku.kohde as valmistuslinja,\n              lasku.tila,\n              lasku.alatila,\n              lasku.kerayspvm,\n              lasku.toimaika,\n              (  SELECT toimi.nimi\n                FROM tuotteen_toimittajat\n                JOIN toimi\n                ON ( toimi.yhtio = tuotteen_toimittajat.yhtio\n                  AND toimi.tunnus               = tuotteen_toimittajat.liitostunnus )\n                WHERE tuotteen_toimittajat.yhtio = '{$kukarow['yhtio']}'\n                AND tuotteen_toimittajat.tuoteno = tilausrivi.tuoteno\n                ORDER BY tuotteen_toimittajat.jarjestys ASC\n                LIMIT 1\n              ) AS toimittaja,\n              sum(tilausrivi.varattu) AS valmistettava_kpl\n              FROM lasku\n              JOIN tilausrivi\n              ON ( tilausrivi.yhtio = lasku.yhtio\n                AND tilausrivi.otunnus           = lasku.tunnus\n                AND tilausrivi.tyyppi            IN ('V')\n                AND tilausrivi.varattu           > 0\n                AND tilausrivi.otunnus           = '{$valmiste_rivi['lasku_tunnus']}'\n                AND tilausrivi.perheid           = '{$valmiste_rivi['tilausrivi_tunnus']}' )\n              JOIN tuote\n              ON ( tuote.yhtio = tilausrivi.yhtio\n                AND tuote.tuoteno                = tilausrivi.tuoteno\n                AND tuote.tuotetyyppi            not in ('A', 'B')\n                AND tuote.ei_saldoa              = '' )\n              WHERE lasku.yhtio                  = '{$kukarow['yhtio']}'\n              GROUP BY 1,2,3,4,5,6,7,8,9,10,11";
        $valmistus_result = pupe_query($query);
        while ($valmistus_rivi = mysql_fetch_assoc($valmistus_result)) {
            list($saldo, $hyllyssa, $myytavissa) = saldo_myytavissa($valmistus_rivi['tuoteno']);
            if ($saldo < $valmistus_rivi['valmistettava_kpl']) {
                $valmistus_rivi['tilattu'] = hae_tilattu_kpl($valmistus_rivi['tuoteno']);
                $valmistus_rivi['saldo'] = $saldo;
                $valmistus_rivi['hyllyssa'] = $hyllyssa;
                $valmistus_rivi['myytavissa'] = $myytavissa;
                if (empty($valmistukset_joissa_raaka_aine_ei_riita[$valmiste_rivi['lasku_tunnus']]['tilausrivit'][$valmiste_rivi['tilausrivi_tunnus']])) {
                    $valmistukset_joissa_raaka_aine_ei_riita[$valmiste_rivi['lasku_tunnus']]['tilausrivit'][$valmiste_rivi['tilausrivi_tunnus']] = $valmiste_rivi;
                }
                $valmistukset_joissa_raaka_aine_ei_riita[$valmiste_rivi['lasku_tunnus']]['tilausrivit'][$valmiste_rivi['tilausrivi_tunnus']]['raaka_aineet'][] = $valmistus_rivi;
            }
        }
    }
    return $valmistukset_joissa_raaka_aine_ei_riita;
}