function datansisalto_e3($e3_ehdotuskansio, $dfile, $otunnus, $toimituspaiva) { global $yhtiorow, $kukarow; $laskuquery = "SELECT *\n FROM lasku\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$otunnus}'"; $lasku_result = pupe_query($laskuquery); $laskurow = mysql_fetch_array($lasku_result); $lines = file($e3_ehdotuskansio . "/" . $dfile); foreach ($lines as $line) { $tuoteno = pupesoft_cleanstring(substr($line, 12, 17)); $varasto = pupesoft_cleanstring(substr($line, 30, 3)); $tuotenimi = pupesoft_cleanstring(substr($line, 33, 34)); $kpl = pupesoft_cleannumber(substr($line, 68, 7)); //$hinta = pupesoft_cleannumber(substr($line, 91, 13)); //$hinta = $hinta / 10000; $tuote_query = "SELECT tuote.try,\n tuote.osasto,\n tuote.tuoteno,\n tuote.nimitys,\n tuote.yksikko,\n tuotepaikat.hyllyalue,\n tuotepaikat.hyllynro,\n tuotepaikat.hyllytaso,\n tuotepaikat.hyllyvali\n FROM tuote\n LEFT JOIN tuotepaikat ON (tuotepaikat.yhtio = tuote.yhtio and tuotepaikat.tuoteno = tuote.tuoteno)\n WHERE tuote.yhtio = '{$kukarow['yhtio']}'\n AND tuote.tuoteno = '{$tuoteno}'\n ORDER BY tuotepaikat.oletus DESC\n LIMIT 1"; $tuote_result = pupe_query($tuote_query); $tuote_row = mysql_fetch_array($tuote_result); if ($tuote_row['tuoteno'] == '') { echo "<br>"; echo "<font class='error'>" . t("Tiedostosta %s tuotetietoja tuotteelle %s ei löydy tuotehallinnasta. Tuotetta ei lisätty ostoehdotukseen.", "", $file, $tuoteno) . "</font>"; echo "<br>"; } else { list($hinta, $netto, $ale, ) = alehinta_osto($laskurow, $tuote_row, $kpl); $insert_query = "INSERT INTO tilausrivi SET\n yhtio = '{$kukarow['yhtio']}',\n tyyppi = 'O',\n toimaika = '{$toimituspaiva}',\n otunnus = '{$otunnus}',\n tuoteno = '{$tuoteno}',\n try = '{$tuote_row['try']}',\n osasto = '{$tuote_row['osasto']}',\n nimitys = '{$tuote_row['nimitys']}',\n tilkpl = '{$kpl}',\n yksikko = '{$tuote_row['yksikko']}',\n varattu = '{$kpl}',\n hinta = '{$hinta}',\n netto = '{$netto}',\n ale1 = '{$ale['ale1']}',\n ale2 = '{$ale['ale2']}',\n ale3 = '{$ale['ale3']}',\n laatija = 'E3',\n laadittu = now(),\n hyllyalue = '{$tuote_row['hyllyalue']}',\n hyllynro = '{$tuote_row['hyllynro']}',\n hyllytaso = '{$tuote_row['hyllytaso']}',\n hyllyvali = '{$tuote_row['hyllyvali']}'"; $insertdata = pupe_query($insert_query); } } echo "<br>"; echo "<font class='message'>" . t("Ostoehdotus %s siirretty ostotilaukseksi %s.", "", $filunloppu, $otunnus) . "</font>"; echo "<br><br>"; // Siirretään done kansioon rename($e3_ehdotuskansio . "/" . $dfile, $e3_ehdotuskansio . "/done/" . $dfile); }
} if ($toim == "RESEPTI") { echo "<td align='left'>{$tuoterow['yksikko']}</td>"; $worksheet->writeString($excelrivi, $excelsarake++, $tuoterow["yksikko"], $style); foreach ($resepti_kentat as $resepti_kentta) { echo "<td>{$prow[$resepti_kentta["selite"]]}</td>"; $worksheet->writeString($excelrivi, $excelsarake++, $prow[$resepti_kentta["selite"]], $style); } $query = "SELECT\n tuotteen_toimittajat.liitostunnus,\n toimi.oletus_valkoodi,\n toimi.ytunnus,\n if(jarjestys = 0, 9999, jarjestys) sorttaus\n FROM tuotteen_toimittajat\n LEFT 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 = '{$tuoterow["tuoteno"]}'\n ORDER BY sorttaus\n LIMIT 1"; $ttrow = pupe_query($query); $ttrow = mysql_fetch_assoc($ttrow); $query = "SELECT kurssi\n FROM valuu\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND nimi = '{$ttrow['oletus_valkoodi']}'\n ORDER BY tunnus DESC\n LIMIT 1"; $valuurow = pupe_query($query); $valuurow = mysql_fetch_assoc($valuurow); $params = array('liitostunnus' => $ttrow['liitostunnus'], 'valkoodi' => $ttrow['oletus_valkoodi'], 'ytunnus' => $ttrow['ytunnus'], 'vienti_kurssi' => $valuurow['kurssi']); $ostohintatiedot = alehinta_osto($params, $tuoterow, 1, '', '', array()); $ostohinta = hintapyoristys(hinta_kuluineen($tuoterow['tuoteno'], $ostohintatiedot[0])); $valuutta = $ostohintatiedot[3]; echo "<td align='right'>{$ostohinta} {$valuutta}</td>"; $worksheet->writeString($excelrivi, $excelsarake++, "{$ostohinta} {$valuutta}", $style); } if ($toim != "VSUUNNITTELU") { echo "<td align='right'>" . (double) $tuoterow["kehahin"] . "</td>"; echo "<td align='right'>" . round($lapsiyht, 6) . "</td>"; $worksheet->writeNumber($excelrivi, $excelsarake++, $tuoterow["kehahin"], $style); $worksheet->writeNumber($excelrivi, $excelsarake++, round($lapsiyht, 6), $style); } if ($toim == "PERHE") { if (isset($prow['ohita_kerays']) and trim($prow['ohita_kerays']) != '') { $chk_ohita_kerays = t("Kyllä"); } else {
$query = "SELECT nimi, kurssi, tunnus\n FROM valuu\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND nimi = '{$ttrow['valuutta']}'\n ORDER BY jarjestys"; $vresult = pupe_query($query); if (mysql_num_rows($vresult) == 1) { $valtrow = mysql_fetch_assoc($vresult); } } if (!isset($valtrow)) { $valtrow['kurssi'] = 1; } // alehinta_ostoa varten tehdään pieni kikka ja käännetään kurssi // tämä siksi että toimittajan valuuttaa katsotaan funkkarissa ns kotivaluuttana vs oikea kotivaluutta $valtrow['kurssi'] = 1 / $valtrow['kurssi']; // Hetaan kaikki ostohinnat yhtiön oletusvaluutassa $laskurow = array('liitostunnus' => $ttrow['toimittaja'], 'valkoodi' => $yhtiorow["valkoodi"], 'vienti_kurssi' => $valtrow['kurssi'], 'ytunnus' => $ttrow['ytunnus']); // Haetaan ostohinta list($ostohinta, $netto, $alennus, $valuutta) = alehinta_osto($laskurow, array("tuoteno" => $row['tuoteno']), 1, '', '', ''); // kerrotaan ostohinta tuotekertoimella, jotta saadaan yhden kpl ostohinta $ostohinta = $ostohinta * $ttrow['tuotekerroin']; $alennukset = 1; $ostohinta_netto = $ostohinta; // lisätään kuluprosentti hintaan jos sitä käytetään saapumisellakin if (in_array($yhtiorow['jalkilaskenta_kuluperuste'], array('KP', 'VS', 'PX'))) { $ostohinta_netto = $ostohinta_netto * (1 + $ttrow['oletus_kulupros'] / 100); } // Nolla tai pienempi on virhe, laitetaan ne vikaks if ($ostohinta <= 0) { $ostohinta = 0; $ostohinta_netto = 9999999; $netto = "N"; } // Jos ei ole nettohinta, niin lasketaan alennukset
// Haetaan tuotteet ketjukohtaisesti $_tuotteet = $vastaavat->tuotteet($ketju); foreach ($_tuotteet as $_tuoteno_arr) { if ($_tuoteno_arr['tuoteno'] != $row['tuoteno']) { if ($i == 6) { break; } $vastaava_saldo = saldo_funktio($_tuoteno_arr['tuoteno'], $varastot_yhtiot, $varastot, $paikoittain, $lisa, $row['yhtio']); $vastaava_myydy_kappaleet = myydyt_kappaleet($row['yhtio'], $_tuoteno_arr['tuoteno'], $apvm, $lpvm, $lisa, $ei_vienteja_lisa, $ei_asiakkaan_myynteja_lisa); $tuotteen_toimittajat = hae_tuotteen_toimittajat($_tuoteno_arr['tuoteno']); $trow = hae_tuote($_tuoteno_arr['tuoteno']); $ostohinta = ""; $tuotteen_toimittajat_string = ""; foreach ($tuotteen_toimittajat as $tuotteen_toimittaja) { $laskurow_temp = array('liitostunnus' => $tuotteen_toimittaja['liitostunnus'], 'valkoodi' => $tuotteen_toimittaja['valkoodi'], 'vienti_kurssi' => $tuotteen_toimittaja['kurssi'], 'ytunnus' => $tuotteen_toimittaja['ytunnus']); list($ostohinta_temp, $netto, $alennus, ) = alehinta_osto($laskurow_temp, $trow, 1, '', '', ''); if (empty($netto)) { $ostohinta_temp = $ostohinta_temp * generoi_alekentta_php($alennus, 'O', 'kerto', 'EI'); } $ostohinta .= sprintf('%.2f', $ostohinta_temp) . ' / '; $tuotteen_toimittajat_string .= $tuotteen_toimittaja['toimittajan_nimi'] . ' / '; } $ostohinta = substr($ostohinta, 0, -3); $tuotteen_toimittajat_string = substr($tuotteen_toimittajat_string, 0, -3); $vastaava_ennp_myynti = kappaleet_tila_myynti($_tuoteno_arr['tuoteno'], $row['yhtio'], $lisavarattu, $varastosiirtolisa, $ei_vienteja_lisa, $ei_asiakkaan_myynteja_lisa); $vastaava_ennp_osto = kappaleet_tila_osto($_tuoteno_arr['tuoteno'], $row['yhtio'], $lisavarattu, $varastolisa); $vastaava_ennp = $vastaava_ennp_myynti + $vastaava_ennp_osto; if ($valitut["SARAKE{$_x}"] != '') { //tuoteno $rivi .= "\"{$_tuoteno_arr['tuoteno']}\"\t"; $worksheet->write($excelrivi, $excelsarake, $_tuoteno_arr["tuoteno"]);
function xf02($tanaan, $xf02loppulause) { global $path_xf02, $yhtiorow, $tuoterajaukset, $toimirajaus; echo "TULOSTETAAN xf02...\n"; $valuuttaQ = "SELECT nimi, kurssi\n FROM valuu\n WHERE yhtio = '{$yhtiorow['yhtio']}'"; $resaluutta = pupe_query($valuuttaQ); $valuutat = array(); while ($valurow = mysql_fetch_assoc($resaluutta)) { $valuutat[$valurow["nimi"]] = $valurow["kurssi"]; } $kyselyxfo2 = "SELECT tuote.tuoteno,\n tuote.tuotekorkeus,\n tuote.tuoteleveys,\n tuote.tuotesyvyys,\n tuote.nimitys,\n tuote.status,\n tuote.suoratoimitus,\n tuote.epakurantti25pvm epakura,\n tuote.ostoehdotus,\n (\n SELECT korv.tuoteno\n FROM korvaavat AS korv\n WHERE korv.yhtio = tuote.yhtio\n AND korv.id = korvaavat.id\n ORDER BY if(korv.jarjestys = 0, 9999, korv.jarjestys), korv.tuoteno\n LIMIT 1\n ) korvaavatuoteno,\n round((abc_aputaulu.summa / abc_aputaulu.kpl),4) as KAhinta,\n round(tuote.tuotemassa,3) tuotemassa,\n round(((tuote.tuotekorkeus * tuote.tuoteleveys * tuote.tuotesyvyys)/1000000000),4) as tilavuus\n FROM tuote use index (tuoteno_index)\n LEFT JOIN abc_aputaulu use index (yhtio_tyyppi_tuoteno) ON (abc_aputaulu.yhtio=tuote.yhtio AND abc_aputaulu.tyyppi='TM' AND tuote.tuoteno=abc_aputaulu.tuoteno)\n LEFT JOIN korvaavat ON (korvaavat.yhtio = tuote.yhtio AND korvaavat.tuoteno = tuote.tuoteno)\n WHERE tuote.yhtio = '{$yhtiorow['yhtio']}' {$tuoterajaukset}\n GROUP BY tuote.tuoteno, tuote.tuotekorkeus, tuote.tuoteleveys, tuote.tuotesyvyys, tuote.nimitys, tuote.status, tuote.suoratoimitus, tuote.epakurantti25pvm, tuote.ostoehdotus, korvaavatuoteno\n HAVING (korvaavatuoteno = tuote.tuoteno OR korvaavatuoteno is null)\n ORDER BY 1"; $rests = pupe_query($kyselyxfo2); $rows = mysql_num_rows($rests); $fp = fopen($path_xf02, 'w+'); while ($xf02 = mysql_fetch_assoc($rests)) { $query = "SELECT\n toimi.ytunnus,\n toimi.tunnus,\n tuotteen_toimittajat.valuutta,\n toimi.toimittajanro,\n tuotteen_toimittajat.ostohinta,\n ROUND(tuotteen_toimittajat.pakkauskoko, 0) ostokpl,\n toimi.tyyppi\n FROM tuotteen_toimittajat use index (yhtio_tuoteno)\n JOIN toimi on (toimi.yhtio = tuotteen_toimittajat.yhtio AND tuotteen_toimittajat.liitostunnus = toimi.tunnus {$toimirajaus})\n WHERE tuotteen_toimittajat.yhtio = '{$yhtiorow['yhtio']}'\n AND tuotteen_toimittajat.tuoteno = '{$xf02['tuoteno']}'\n ORDER BY if(tuotteen_toimittajat.jarjestys = 0, 9999, tuotteen_toimittajat.jarjestys), tuotteen_toimittajat.tunnus\n LIMIT 1"; $rest_toimittajista = pupe_query($query); $toim_row = mysql_fetch_assoc($rest_toimittajista); if ($toim_row['toimittajanro'] == '' or $toim_row['tyyppi'] == 'P') { continue; } // Hetaan ostohinta $laskurow = array(); $laskurow["liitostunnus"] = $toim_row["tunnus"]; $laskurow["valkoodi"] = $toim_row["valuutta"]; $laskurow["vienti_kurssi"] = (isset($valuutat[$toim_row["valuutta"]]) and $valuutat[$toim_row["valuutta"]] > 0) ? $valuutat[$toim_row["valuutta"]] : 1; $laskurow["ytunnus"] = $toim_row["ytunnus"]; $tuote_row = array(); $tuote_row["tuoteno"] = $xf02["tuoteno"]; list($hinta, $netto, $ale, $valuutta) = alehinta_osto($laskurow, $tuote_row, 1, "", "", ""); // Muutetaan valuuttahinta euroiksi. if (trim(strtoupper($valuutta)) != trim(strtoupper($yhtiorow["valkoodi"]))) { $hinta = $hinta * $laskurow["vienti_kurssi"]; } $alennukset = generoi_alekentta_php($ale, 'O', 'kerto'); $ostonetto = sprintf("%01.4f", round($hinta * $alennukset, 4)); $tilavuus = $xf02['tilavuus']; if ($tilavuus > 99) { $tilavuus = '9999999'; } else { $tilavuus = $tilavuus * 1000; $tilavuus = str_replace('.', '', $tilavuus); } $KA_myynti_hinta = $xf02['KAhinta']; if ($KA_myynti_hinta == '') { if ($ostonetto == 999999999) { $KA_myynti_hinta = 999999999; } else { $KA_myynti_hinta = sprintf("%.4f", $ostonetto * 1.3); } } if ($xf02['status'] == 'T') { $tuotestatus = 'M'; //tehdastoimitustuotteet } elseif ($xf02['ostoehdotus'] == 'E') { $tuotestatus = 'D'; //ostoehdotus=no tuotteet tänne } else { $tuotestatus = 'R'; } if ($toim_row['ostokpl'] == '0') { $toim_row['ostokpl'] = '1'; } $out = sprintf("%-8.8s", $toim_row['toimittajanro']); //XVNDR $out .= sprintf("%-18.18s", $xf02['tuoteno']); //XITEM $out .= sprintf("%-3.3s", "001"); //XWHSE $out .= sprintf("%013.13s", str_replace('.', '', $ostonetto)); //XPCHP $out .= sprintf("%013.13s", str_replace('.', '', $KA_myynti_hinta)); //XSLSP $out .= sprintf("%07.7s", $toim_row['ostokpl']); //XPACK $out .= sprintf("%07.7s", "1"); //XMINQ $out .= sprintf("%07.7s", str_replace('.', '', $xf02['tuotemassa'])); //XWGHT $out .= sprintf("%07.7s", $tilavuus); //XVOLM $out .= sprintf("%-35.35s", trim($xf02['nimitys'])); //XNAME $out .= sprintf("%-2.2s", ""); //XUOMS $out .= sprintf("%-1.1s", $tuotestatus); //XDWO $out .= sprintf("%-18.18s", ""); //XSEQ# $out .= sprintf("%-1.1s", ""); //XDELET if (!fwrite($fp, $out . "\n")) { echo "Failed writing row.\n"; die; } } if (!fwrite($fp, $xf02loppulause . "\n")) { echo "Failed writing row.\n"; die; } fclose($fp); }
if (mysql_num_rows($res) == 1) { $laskuloytyi = 1; } } } if ($laskuloytyi == 1) { $laskurow = mysql_fetch_assoc($res); $tilausnro = $laskurow['tunnus']; if ($laskurow['alatila'] == 'X') { $error = t("Tilaus") . ' ' . $tilausnro . ' ' . t("ei ole sopiva") . "!"; $tee = 'etsi'; } else { $query = "SELECT * FROM tuote WHERE yhtio = '{$kukarow['yhtio']}' AND tuoteno = '{$tuoteno}'"; $result = pupe_query($query); $trow = mysql_fetch_assoc($result); list($hinta, , , ) = alehinta_osto($laskurow, $trow, $kpl); //pidetään kaikki muuttujat tallessa $muut_siirrettavat = $asn_rivi . "!¡!" . $toimittaja . "!¡!" . $tilausnro . "!¡!" . $tuoteno . "!¡!" . $tilaajanrivinro . "!¡!" . $kpl . "!¡!" . $valitse . "!¡!" . $kolli . "!¡!" . $toimittajanumero . "!¡!" . $asn_numero . "!¡!" . $toimipaikka; $rivinotunnus = $tilausnro; $toimaika = date('Y') . "-" . date('m') . "-" . date('d'); echo t("Tee uusi rivi") . ":<br>"; require 'tilauskasittely/syotarivi_ostotilaus.inc'; require 'inc/footer.inc'; exit; } } else { $error = t("Ostotilausta") . ' ' . $tilausnro . ' ' . t("ei löydy") . "!"; $tee = 'etsi'; } } //poistetaan rivi, näytetään lista
echo "</tr>"; echo "<tr>"; echo "<td>"; foreach ($ttrow as $tt_rivi) { echo "{$tt_rivi["toim_tuoteno"]}<br>"; } echo "</td>"; echo "<td valign='top' align='right' style='font-weight:bold;'>" . hintapyoristys($tuoterow["myyntihinta"]) . " {$yhtiorow['valkoodi']}{$valuuttalisa}</td>"; echo "<td valign='top' align='right'>" . hintapyoristys($tuoterow["nettohinta"]) . "/" . hintapyoristys($tuoterow["myymalahinta"]) . "</td>"; echo "<td valign='top' align='right'>"; foreach ($ttrow as $tt_rivi) { $query = "SELECT *\n FROM valuu\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND nimi = '{$tt_rivi['oletus_valkoodi']}'\n ORDER BY tunnus DESC\n LIMIT 1"; $kurssi_chk_res = pupe_query($query); $kurssi_chk_row = mysql_fetch_assoc($kurssi_chk_res); $_laskurow = array('liitostunnus' => $tt_rivi['liitostunnus'], 'valkoodi' => $tt_rivi['oletus_valkoodi'], 'ytunnus' => $tt_rivi['ytunnus'], 'vienti_kurssi' => $kurssi_chk_row['kurssi']); list($_hinta, $_netto, $_ale, $_valuutta) = alehinta_osto($_laskurow, $tuoterow, 1, '', '', array()); echo "<span style='font-weight:bold;'>", hintapyoristys(hinta_kuluineen($tuoterow['tuoteno'], $_hinta)), " {$_valuutta}</span> / "; foreach ($_ale as $key => $val) { if (substr($key, 3, 1) > $yhtiorow['oston_alekentat']) { continue; } echo "{$val}% "; } echo "<br />"; } echo "</td>"; echo "<td valign='top' align='right' style='font-weight:bold;'>{$tuoterow['kehahin']}"; if ($tuoterow["myyntihinta_maara"] != 0) { echo " {$tuoterow['yksikko']}<br>"; echo hintapyoristys($tuoterow["kehahin"] * $tuoterow["myyntihinta_maara"], 6, TRUE); echo " {$tuoterow['myyntihinta_maara']} {$tuoterow['yksikko']}";