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); }
function paivita_ennakko($params) { global $kukarow, $yhtiorow; $syotetyt_lisatiedot = $params['syotetyt_lisatiedot']; $valittu_tarjous_tunnus = $params['valittu_tarjous_tunnus']; $kappalemaarat = $params['kappalemaarat']; $toim = $params['toim']; // Siistiään parametrit tietokantaqueryjä varten $syotetyt_lisatiedot = pupesoft_cleanstring($syotetyt_lisatiedot); $valittu_tarjous_tunnus = pupesoft_cleanstring($valittu_tarjous_tunnus); // Haetaan kannasta tilausrivit $muokkaamaton_ennakko = hae_tarjous($valittu_tarjous_tunnus); foreach ($kappalemaarat as $key => $value) { // Kappalemäärä käyttöliittymästä, pilkut pisteiksi ja round 2 $value = round(str_replace(",", ".", pupesoft_cleanstring($value)), 2); // Etsitään tilausrivitunnuksen perusteella tuotteen kannassa oleva kappalemäärä $loytynyt_tilausrivi = search_array_key_for_value_recursive($muokkaamaton_ennakko['tilausrivit'], 'tunnus', $key); // Tarkistetaan löytyikö tilausrivi, jos ei löydy, ei tehdä mitään if (empty($loytynyt_tilausrivi[0])) { continue; } // Kappalemäärä kannasta $kplmaara = $loytynyt_tilausrivi[0]['kpl']; // jos Optio-rivi niin katsotaan onko syötetty arvo muutettu tyhjästä joksikin muuksi, jos ei niin toimenpiteitä riville ei vaadita if ($loytynyt_tilausrivi[0]['var'] == "O" and $value == '') { continue; } elseif ($kplmaara == $value and $loytynyt_tilausrivi[0]['var'] != "O") { continue; } // Tuoteperheen tapauksessa päivitetään/poistetaan kaikki tuoteperheen rivit, muuten vain ko. rivi if ($loytynyt_tilausrivi[0]['tunnus'] == $loytynyt_tilausrivi[0]['perheid_tunnus']) { $andy = "AND perheid = '{$loytynyt_tilausrivi[0]['tunnus']}'"; } else { $andy = "AND tunnus = '{$loytynyt_tilausrivi[0]['tunnus']}'"; } // Jos ollaan nollattu kappaleet, päivitetään rivi tilaan Optio if ($value == 0) { $query = "UPDATE tilausrivi\n SET var = 'O'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND otunnus = '{$valittu_tarjous_tunnus}'\n {$andy}"; pupe_query($query); } else { // Rivin poisto $query = "UPDATE tilausrivi\n SET tyyppi = 'D'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND otunnus = '{$valittu_tarjous_tunnus}'\n {$andy}"; pupe_query($query); $parametrit = array("lasku_tunnus" => $valittu_tarjous_tunnus, "tuoteno" => $loytynyt_tilausrivi[0]['tuoteno'], "kpl" => $value, "toim" => $toim, "syotettyhinta" => $loytynyt_tilausrivi[0]['hinta']); lisaa_ennakkorivi($parametrit); } } // Päivitetään käyttäjän lisäämät kommentit $query = "UPDATE lasku\n SET sisviesti1 = '{$syotetyt_lisatiedot}'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$valittu_tarjous_tunnus}'"; pupe_query($query); return true; }
} $kaikki_tiedostorivit = array_filter($kaikki_tiedostorivit); // Siivous ja validitytsekit foreach ($kaikki_tiedostorivit as $rowkey => &$tiedr) { // Indeksit: $tuoteno = $tiedr[0] = pupesoft_cleanstring($tiedr[0]); // 0 - Tuotenumero $kpl = $tiedr[1] = str_replace(",", ".", pupesoft_cleanstring($tiedr[1])); // 1 - Määrä $lahdevarastopk = $tiedr[2] = str_replace(" ", "", pupesoft_cleanstring($tiedr[2])); // 2 - Lähdevarastopaikka $kohdevarastopk = $tiedr[3] = str_replace(" ", "", pupesoft_cleanstring($tiedr[3])); // 3 - Kohdevarastopaikka $kom = $tiedr[4] = pupesoft_cleanstring($tiedr[4]); // 4 - Kommentti $poistetaanko_lahde = $tiedr[5] = str_replace(" ", "", strtoupper(pupesoft_cleanstring($tiedr[5]))); // 5 - Poistetaanko lähdevarastopaikka if ($poistetaanko_lahde != 'X') { $tiedr[5] = ''; } // Jos joku pakollisista tiedoista on tyhjä tai väärin hylätään koko rivi if (in_array("", array($tuoteno, $kpl, $lahdevarastopk, $kohdevarastopk)) or $lahdevarastopk == $kohdevarastopk or !is_numeric($kpl) and $kpl != 'X') { $seliseli = ""; if (in_array("", array($tuoteno, $kpl, $lahdevarastopk, $kohdevarastopk))) { $seliseli .= "-" . t("Tuotenumero, kappalemäärä, lähde- tai kohdevarastopaikka ei saa olla tyhjä") . ".<br>"; } if ($lahdevarastopk == $kohdevarastopk) { $seliseli .= "-" . t("Lähde- ja kohdevarastopaikka olivat identtisiä") . ".<br>"; } if (!is_numeric($kpl) and $kpl != 'X') { $seliseli .= "-" . t("Kappalemääräksi kelpaa %s tai numeerinen arvo", "", "X") . ".<br>";
<?php //* Tämä skripti käyttää slave-tietokantapalvelinta *// $useslave = 1; require "inc/parametrit.inc"; echo "<font class='head'>" . t("Uudelleenlähetä PostNord-keräyssanoma") . "</font><hr>"; if ($tee == "laheta" and $tilaukset != "") { $tilaukset = pupesoft_cleanstring(str_replace(array("\r", "\n"), "", $tilaukset)); $query = "SELECT distinct lasku.tunnus\n FROM lasku\n JOIN varastopaikat ON (lasku.yhtio=varastopaikat.yhtio AND lasku.varasto=varastopaikat.tunnus AND varastopaikat.ulkoinen_jarjestelma = 'P')\n WHERE lasku.yhtio = '{$kukarow['yhtio']}'\n AND lasku.tila in ('L','N', 'G')\n AND lasku.tunnus in ({$tilaukset})"; $res = pupe_query($query); if (mysql_num_rows($result) > 0) { while ($laskurow = mysql_fetch_assoc($res)) { echo t("Uudelleenlähetetään PostNord-keräyssanoma") . ": {$laskurow['tunnus']}<br>"; posten_outbounddelivery($laskurow["tunnus"]); } } else { echo "<font class='error'>" . t("Tilauksia ei löytynyt") . ": {$tilaukset}!</font><br>"; } } echo "<br><br><font class='message'>" . t("Anna tilausnumerot pilkulla eroteltuna") . "</font><br>"; echo "<form method='post'>"; echo "<input type='hidden' name='tee' value='laheta'>"; echo "<textarea name='tilaukset' rows='10' cols='60'></textarea>"; echo "<br><input type='submit' value='" . t("Lähetä keräyssanomat") . "'>"; echo "</form>"; require "inc/footer.inc";
require "inc/functions.inc"; // Logitetaan ajo cron_log(); $_yhtio = pupesoft_cleanstring($argv[1]); $yhtiorow = hae_yhtion_parametrit($_yhtio); // Kukarow setataan esim editilaus_in.inc:ssä if (!isset($kukarow)) { $kukarow = hae_kukarow('admin', $yhtiorow['yhtio']); // Komentoriviltä ku ajetaan, niin ei haluta posteja admin-käyttäjälle $kukarow["eposti"] = ""; } if (!is_array($kukarow)) { exit(1); } if (isset($argv[2])) { $kieli = pupesoft_cleanstring($argv[2]); } // Pupeasennuksen root $pupe_root_polku = dirname(dirname(__FILE__)); $laskkk = ""; $laskpp = ""; $laskvv = ""; $eilinen = ""; $eiketjut = ""; // jos komentorivin kolmas arg on "eilinen" niin edelliselle laskutus päivälle, ohitetaan laskutusviikonpäivät if ($argv[3] == "eilinen") { $laskkk = date("m", mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))); $laskpp = date("d", mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))); $laskvv = date("Y", mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))); } // jos komentorivin kolmas arg on "eilinen" niin edelliselle laskutus päivälle
if ($toimittaja != '') { $toimittajalisa .= " JOIN tuotteen_toimittajat ON (tuotteen_toimittajat.yhtio = tilausrivi.yhtio and tuotteen_toimittajat.tuoteno = tilausrivi.tuoteno and tuotteen_toimittajat.liitostunnus = '{$toimittajaid}') "; } if ($tilaus_on_jo == "KYLLA" and $asiakasid != '') { $laskulisa .= " and lasku.liitostunnus = '{$asiakasid}' "; } elseif ($tilaus_on_jo == "" and $asiakasid != '') { $laskulisa .= " and lasku.liitostunnus = '{$asiakasid}' "; } elseif ($tilaus_on_jo == "" and $asiakasno != '') { $laskulisa .= " and lasku.ytunnus = '{$asiakasno}' "; } if (isset($tuotenumero) and $tuotenumero != '') { $tuotteet = explode("\n", $tuotenumero); $tuoterajaus = ""; foreach ($tuotteet as $tuotenumero) { if (pupesoft_cleanstring($tuotenumero) != '') { $tuoterajaus .= "'" . pupesoft_cleanstring($tuotenumero) . "',"; } } if ($tuoterajaus != "") { $tilausrivilisa .= "and tilausrivi.tuoteno in (" . substr($tuoterajaus, 0, -1) . ") "; } } if ($tilaus != '') { $tilausrivilisa .= " and tilausrivi.otunnus = '{$tilaus}' "; } if (count($suoratoimitus_rivit) > 0) { $tilausrivilisa .= " and tilausrivi.tunnus in (" . implode(",", $suoratoimitus_rivit) . ") "; } if ($tilaus_on_jo == "KYLLA" and $toim == 'SIIRTOLISTA' and $tilaus_on_jo_row['clearing'] != '') { $laskulisa .= " and lasku.clearing = '{$tilaus_on_jo_row['clearing']}' "; }
} elseif ($tiedostomuoto == "AMMATTILAINEN") { /* Aineisto sarkaineroteltu tekstitiedosto 0 tilinumero 1 kustannuspaikka 2 selite 3 summa 4 summa 2 5 tositepvm 6 projekti 7 henkilö */ $kentat = explode("\t", $rivi); // Trimmataan kaikki foreach ($kentat as &$k) { $k = pupesoft_cleanstring(trim($k)); $k = pupesoft_csvstring($k); } // Tili $itili[$maara] = $kentat[0]; // Poimitaan kustannuspaikka ja projekti, perustetaan jos puuttuu $ikustp[$maara] = ""; $iprojekti[$maara] = ""; foreach (array(1 => "K", 6 => "P") as $x => $tsk_tyyppi) { $tsk_nimi = $kentat[$x]; if (strlen($tsk_nimi) > 0) { if ($tsk_tyyppi == "K") { $tsk_tyyppinimi = "Kustannuspaikka"; } elseif ($tsk_tyyppi == "P") { $tsk_tyyppinimi = "Projekti"; }
// Luetaan tiedosto loppuun ja tehdään taulukohtainen array koko datasta, tässä kohtaa putsataan jokaisen solun sisältö pupesoft_cleanstring -funktiolla for ($excei = 1; $excei < $excelrivimaara; $excei++) { for ($excej = 0; $excej < $excelsarakemaara; $excej++) { $taulunrivit[$taulut[$excej]][$excei - 1][] = pupesoft_cleanstring($excelrivit[$excei][$excej]); // Pitääkö tämä sarake laittaa myös johonki toiseen tauluun? foreach ($taulunotsikot as $taulu => $joinit) { if (strpos($headers[$excej], ".") !== FALSE) { list($etu, $taka) = explode(".", $headers[$excej]); if ($taka == "") { $taka = $etu; } } else { $taka = $headers[$excej]; } if (in_array($taka, $joinit) and $taulu != $taulut[$excej] and $taulut[$excej] == $joinattavat[$taulu][$taka]) { $taulunrivit[$taulu][$excei - 1][] = pupesoft_cleanstring($excelrivit[$excei][$excej]); } } } } if (in_array("tuotteen_toimittajat_pakkauskoot", $taulut)) { $chk_tuoteno = $chk_toim_tuoteno = "x"; foreach ($taulunotsikot["tuotteen_toimittajat_pakkauskoot"] as $key => $column) { if (isset($toimitunnusvalinta) and $toimitunnusvalinta != 1) { if ($column == "TOIM_TUOTENO_TUNNUS") { $chk_tunnus = $key; } switch ($toimitunnusvalinta) { case "2": if ($column == "TUOTENUMERO") { $chk_tuoteno = $key;
if (mysql_num_rows($toim_tuoteno_chk_res) == 1) { $toim_tuoteno_chk_row = mysql_fetch_assoc($toim_tuoteno_chk_res); $query = "UPDATE asn_sanomat SET\n tuoteno = '{$toim_tuoteno_chk_row['tuoteno']}'\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND status != 'X'\n AND tuoteno = ''\n AND toim_tuoteno = '{$toim_tuoteno_chk_row['ttt_tuoteno']}'\n AND toimittajanumero = '{$toim_tuoteno_chk_row['toimittajanro']}'"; $upd_res = pupe_query($query); } } if ($onko_tama_insert and $tunnus > 0 and isset($tee_myos_tuotteen_toimittaja_liitos) and isset($liitostunnus) and $toim == "tuote" and $tee_myos_tuotteen_toimittaja_liitos == 'JOO' and $liitostunnus != '') { $query = "SELECT *\n FROM tuote\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$tunnus}'"; $tuote_chk_res = pupe_query($query); $query = "SELECT *\n FROM toimi\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$liitostunnus}'"; $toimi_chk_res = pupe_query($query); if (mysql_num_rows($tuote_chk_res) == 1 and mysql_num_rows($toimi_chk_res) == 1) { $tuote_chk_row = mysql_fetch_assoc($tuote_chk_res); $toimi_chk_row = mysql_fetch_assoc($toimi_chk_res); $toimittaja_liitos_ostohinta = pupesoft_cleannumber($toimittaja_liitos_ostohinta); $toimittaja_liitos_tuoteno = pupesoft_cleanstring($toimittaja_liitos_tuoteno); $query = "INSERT INTO tuotteen_toimittajat SET\n yhtio = '{$kukarow['yhtio']}',\n tuoteno = '{$tuote_chk_row['tuoteno']}',\n liitostunnus = '{$liitostunnus}',\n alkuperamaa = '{$toimi_chk_row['maa']}',\n laatija = '{$kukarow['kuka']}',\n ostohinta = '{$toimittaja_liitos_ostohinta}',\n toim_tuoteno = '{$toimittaja_liitos_tuoteno}',\n luontiaika = now(),\n muutospvm = now(),\n muuttaja = '{$kukarow['kuka']}'"; $tuotteen_toimittaja_insertti = pupe_query($query); } } if ($tunnus > 0 and isset($paivita_myos_avoimet_tilaukset) and $toim == "asiakas") { $query = "SELECT *\n FROM asiakas\n WHERE tunnus = '{$tunnus}'\n and yhtio = '{$kukarow['yhtio']}'"; $otsikres = pupe_query($query); if (mysql_num_rows($otsikres) == 1) { $otsikrow = mysql_fetch_array($otsikres); $query = "SELECT tunnus, tila, alatila, sisviesti1\n FROM lasku use index (yhtio_tila_liitostunnus_tapvm)\n WHERE yhtio = '{$kukarow['yhtio']}'\n and (\n (tila IN ('L','N','R','V','E','C') AND alatila != 'X')\n OR\n (tila = 'T' AND alatila in ('','A'))\n OR\n (tila IN ('A','0'))\n )\n and liitostunnus = '{$otsikrow['tunnus']}'\n and tapvm = '0000-00-00'\n and chn != 999"; $laskuores = pupe_query($query); while ($laskuorow = mysql_fetch_array($laskuores)) { if (trim($otsikrow["toim_nimi"]) == "") { $otsikrow["toim_nimi"] = $otsikrow["nimi"]; $otsikrow["toim_nimitark"] = $otsikrow["nimitark"];
die("<font class='error'><br>" . t("Ainoastaan .txt ja .cvs tiedostot sallittuja") . "!</font>"); } if ($_FILES['userfile']['size'] == 0) { die("<font class='error'><br>" . t("Tiedosto on tyhjä") . "!</font>"); } $file = fopen($_FILES['userfile']['tmp_name'], "r") or die(t("Tiedoston avaus epäonnistui") . "!"); // luetaan tiedosto alusta loppuun... $rivi = fgets($file, 4096); while (!feof($file)) { $tuoteno = ''; $varattu = ''; $teksti = ''; $avarasto = ''; $bvarasto = ''; // luetaan rivi tiedostosta.. $rivi = explode("\t", pupesoft_cleanstring($rivi)); $tuoteno = $rivi[0]; $varattu = $rivi[1]; $teksti = $rivi[2]; $avarasto = $rivi[3]; $bvarasto = $rivi[4]; if ($bvarasto != '' and $avarasto != '' and $tuoteno != '') { $paikka = explode('#', $avarasto); $query = "SELECT *\n from tilausrivi\n where tyyppi='G'\n and otunnus IN ({$id})\n and tuoteno = '{$tuoteno}'\n and yhtio = '{$kukarow['yhtio']}'\n and hyllyalue = '{$paikka['0']}'\n and hyllynro = '{$paikka['1']}'\n and hyllyvali = '{$paikka['2']}'\n and hyllytaso = '{$paikka['3']}'"; $alkuresult = pupe_query($query); if (mysql_num_rows($alkuresult) == 1) { $alkurow = mysql_fetch_assoc($alkuresult); $bpaikka = explode('#', $bvarasto); $tunnus[] = $alkurow["tunnus"]; $t1[$alkurow["tunnus"]] = $bpaikka[0]; $t2[$alkurow["tunnus"]] = $bpaikka[1];
array_shift($rivit); foreach ($rivit as $line) { $fields = explode(";", $line); $order_number = pupesoft_cleanstring($fields[0]); $product_code = pupesoft_cleanstring($fields[1]); $quantity = pupesoft_cleannumber($fields[2]); $order_type = pupesoft_cleanstring($fields[3]); $location_code = pupesoft_cleanstring($fields[4]); $supplier_code = pupesoft_cleanstring($fields[5]); $delivery_date = pupesoft_cleanstring($fields[6]); $comment_1 = pupesoft_cleanstring($fields[7]); $comment_2 = pupesoft_cleanstring($fields[8]); $comment_3 = pupesoft_cleanstring($fields[9]); $comment_4 = pupesoft_cleanstring($fields[10]); $comment_5 = pupesoft_cleanstring($fields[11]); $order_date = pupesoft_cleanstring($fields[12]); // Poistetaan maa-etuliitteet $product_code = substr($product_code, 3); $location_code = substr($location_code, 3); $supplier_code = substr($supplier_code, 3); // Haetaan tuotteen tiedot $query = "SELECT tuoteno\n FROM tuote\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$product_code}'"; $result = pupe_query($query); if (mysql_num_rows($result) == 1) { $tuote = mysql_fetch_assoc($result); } else { echo "Tuotetta '{$product_code}' ei löydy. Ohitetaan rivi!<br>"; continue; } // Haetaan lähdevaraston tiedot $query = "SELECT *\n FROM varastopaikat\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$supplier_code}'";
die("Tiedoston avaus epäonnistui: {$filepath}\n"); } $tuotteet = ""; // Päiväajoon otetaan mukaan vain viimeisen vuorokauden aikana muuttuneet if ($paiva_ajo) { $tuotelista = "''"; $namaonjotsekattu = ""; $query = "SELECT tuote.tuoteno\n FROM tuote\n WHERE tuote.yhtio = '{$yhtio}'\n {$tuoterajaus}\n {$tuoteupdrajaus}"; $res = pupe_query($query); while ($row = mysql_fetch_assoc($res)) { $tuotelista .= ",'" . pupesoft_cleanstring($row["tuoteno"]) . "'"; } $query = "SELECT tuotteen_toimittajat.tuoteno\n FROM tuotteen_toimittajat\n WHERE tuotteen_toimittajat.yhtio = '{$yhtio}'\n AND tuotteen_toimittajat.tuoteno not in ({$tuotelista})\n {$tuotetoimupdrajaus}"; $res = pupe_query($query); while ($row = mysql_fetch_assoc($res)) { $tuotelista .= ",'" . pupesoft_cleanstring($row["tuoteno"]) . "'"; } $tuotteet = " AND tuote.tuoteno IN ({$tuotelista}) "; } // Tallennetaan aikaleima cron_aikaleima("RELEX_PROD_CRON", date('Y-m-d H:i:s')); // Otsikkotieto $header = "code;"; $header .= "clean_code;"; $header .= "name;"; $header .= "tuoteosasto;"; $header .= "group;"; $header .= "tuotemerkki;"; $header .= "malli;"; $header .= "mallitarkenne;"; $header .= "kuvaus;";
function kasittele_tuote_tiedosto($file_name, $real_name = '') { global $kukarow, $yhtiorow, $suuraakkosiin; $path_parts = $real_name == '' ? pathinfo($file_name) : pathinfo($real_name); $name = strtoupper($path_parts['filename']); $ext = strtoupper($path_parts['extension']); if ($ext != "TXT" and $ext != "CSV") { die("<font class='error'><br>" . t("Ainoastaan .txt ja .csv tiedostot sallittuja") . "!</font>"); } $file = fopen($file_name, "r") or die(t("Tiedoston avaus epäonnistui") . "!"); $error = 0; $count = 0; while ($rivi = fgets($file)) { // luetaan rivi tiedostosta.. $rivi = explode("\t", pupesoft_cleanstring($rivi)); $count++; $vantuoteno = trim($rivi[0]); $uustuoteno = strtoupper(trim($rivi[1])); if ($vantuoteno != '' and $uustuoteno != '') { // Etsitään vanha $query = "SELECT tunnus\n FROM tuote\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$vantuoteno}'"; $tuoteresult = pupe_query($query); if (mysql_num_rows($tuoteresult) == 0) { $error++; echo "<font class='message'>" . t("VANHAA TUOTENUMEROA EI LÖYDY") . ": {$vantuoteno}</font><br>"; } // Etsitään uusi $query = "SELECT tunnus\n FROM tuote\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$uustuoteno}'"; $tuoteuresult = pupe_query($query); if (mysql_num_rows($tuoteuresult) == 1) { // uusi tuoteno löytyy jo. tarkistetaan onko sama kuin vanha... if (strtoupper($vantuoteno) == $uustuoteno) { // uusi ja vanha tuoteno ovat samat. katsotaan onko vanha jo kokonaan uppercase... if (ctype_upper($vantuoteno)) { $error++; echo "<font class='message'>"; echo t("Vanha ja uusi tuotenumero ovat identtiset"); echo ": {$uustuoteno} = {$vantuoteno}</font><br>"; } else { // sallitaan muutos suuraakkosiin $suuraakkosiin[] = strtoupper($vantuoteno . "!¡!" . $uustuoteno); echo "<font class='message'>"; echo t("Tuotenumeron aakkoslaji vaihdetaan suuraakkosiin"); echo ": {$vantuoteno} --> {$uustuoteno}</font><br>"; } } else { $error++; echo "<font class='message'>" . t("UUSI TUOTENUMERO LÖYTYY JO") . ": {$uustuoteno}</font><br>"; } } } elseif ($vantuoteno == '' and $uustuoteno != '') { $error++; echo "<font class='message'>" . t("Vanha tuotenumero puuttuu tiedostosta") . ": (tyhjä) --> {$uustuoteno}</font><br>"; } elseif ($uustuoteno == '' and $vantuoteno != '') { $error++; echo "<font class='message'>" . t("Uusi tuotenumero puuttuu tiedostosta") . ": {$vantuoteno} --> (tyhjä)</font><br>"; } } fclose($file); if ($count == 0) { die("<font class='error'><br>" . t("Tiedosto on tyhjä") . "!</font>"); } return $error; }
$result = pupe_query($query); if (mysql_num_rows($result) == 0) { rest_virhe_header("Syötetty käyttäjätunnus tai salasana on virheellinen"); } $kukarow = mysql_fetch_assoc($result); // Haetaan yhtiörow $yhtiorow = hae_yhtion_parametrit($kukarow["yhtio"]); } // Kirjataan käyttäjä sisään rest_login($data); $tyyppi = isset($data["tyyppi"]) ? pupesoft_cleanstring($data["tyyppi"]) : ""; // Tarkistetaan "tilauspuolen" muuttujat if ($tyyppi == "order") { rest_tilaa($data); } elseif ($tyyppi == "customer") { $toiminto = isset($data["toiminto"]) ? strtoupper(pupesoft_cleanstring($data["toiminto"])) : ""; $api_kentat = array(); // Tehdään arrayn ekalle riville kenttien otsikot ja tokalle valuet foreach ($data as $key => $value) { if ($key != 'user' and $key != 'pass' and $key != 'tyyppi' and $key != 'versio' and $key != 'yhtio' and $key != 'tunnus' and $key != 'toiminto') { $api_kentat[0][] = "asiakas." . $key; $api_kentat[1][] = $value; } } if (count($api_kentat) == 0) { rest_virhe_header("Data puuttuu"); } // Vikaksi sarakkeeksi toiminto $api_kentat[0][] = "TOIMINTO"; $api_kentat[1][] = $toiminto; require "lue_data.php";
require "inc/functions.inc"; // Logitetaan ajo cron_log(); if (!isset($argv[1])) { echo "Anna yhtio!\n"; die; } if (!isset($argv[2])) { echo "Anna pvm vvvv-kk-pp\n"; die; } // Tehdään parametrit list($vv, $kk, $pp) = explode("-", $argv[2]); $teearkistointi = "joo"; // Haetaan yhtiörow ja kukarow $yhtio = pupesoft_cleanstring($argv[1]); $yhtiorow = hae_yhtion_parametrit($yhtio); $kukarow = hae_kukarow('admin', $yhtiorow['yhtio']); } else { require "inc/parametrit.inc"; } // Tämä vaatii paljon muistia error_reporting(E_ALL); ini_set("memory_limit", "5G"); ini_set("display_errors", 1); unset($pupe_query_debug); function is_log($str) { global $php_cli; $lf = $php_cli ? "\n" : "<br>"; echo date("d.m.Y @ G:i:s") . ": {$str}{$lf}";
echo "<tr>"; echo "<th>" . t("SSCC") . "</th>"; echo "<td><input type='text' name='sscc' class='varastopaikka' style='width:300px'></td>"; } echo "<td class='back'>"; echo "<input type='submit' class='hae_btn' value='" . t("Hae") . "'></form></td>"; echo "</tr>"; echo "</table>"; echo "<br>"; $thyllyalue = strtoupper(pupesoft_cleanstring($ahyllyalue)); // Tuleva tuotepaikka $thyllynro = strtoupper(pupesoft_cleanstring($ahyllynro)); // Tuleva tuotepaikka $thyllyvali = strtoupper(pupesoft_cleanstring($ahyllyvali)); // Tuleva tuotepaikka $thyllytaso = strtoupper(pupesoft_cleanstring($ahyllytaso)); // Tuleva tuotepaikka // Virhetarkastukset if ($tee == "W") { if ($thyllyalue == "" or $thyllynro == "" or $thyllyvali == "" or $thyllytaso == "") { echo "<font class='error'>" . t("VIRHE: Syötetty varastopaikka ei ollut täydellinen") . "</font><br>"; $tee = "V"; } if (kuuluukovarastoon($thyllyalue, $thyllynro) == 0) { echo "<font class='error'>" . t("VIRHE: Syötetty varastopaikka ei kuulu mihinkään varastoon") . " ({$ahyllyalue}-{$ahyllynro})</font><br>"; $tee = "V"; } // Et rukasannut mitään if (!is_array($tunnukset) or $tunnukset == "") { echo "<font class='error'>VIRHE: Ei yhtään valittua tuotetta</font><br>"; $tee = "V";
$tiedot_laskulta = "YES"; } } //Muutetaan otsikkoa if ($kukarow["extranet"] == "" and ($tee == "OTSIK" or $toim != "PIKATILAUS" and !isset($laskurow["liitostunnus"]))) { //Tämä jotta myös rivisyötön alkuhomma toimisi $tee = "OTSIK"; if ($toim == "VALMISTAVARASTOON" or $toim == "SIIRTOLISTA" or $toim == "SIIRTOTYOMAARAYS") { require "otsik_siirtolista.inc"; } elseif (($toim == 'EXTTARJOUS' or $toim == "EXTENNAKKO") and isset($tarjous_tee)) { if (isset($tarjous_tee) and $tarjous_tee != 'luo_dummy_tarjous') { require 'inc/valitse_asiakas.inc'; } else { $tee = ""; $kukarow['kesken'] = $tilausnumero; $saate_teksti = pupesoft_cleanstring($saate_teksti); $query = "UPDATE lasku\n JOIN laskun_lisatiedot ON (laskun_lisatiedot.yhtio = lasku.yhtio AND laskun_lisatiedot.otunnus = lasku.tunnus)\n SET lasku.olmapvm = '{$viimeinen_voimassaolo_pvm}',\n laskun_lisatiedot.saate = '{$saate_teksti}'\n WHERE lasku.yhtio = '{$kukarow['yhtio']}'\n AND lasku.tunnus = '{$tilausnumero}'"; pupe_query($query); } } else { require 'otsik.inc'; } //Tässä halutaan jo hakea uuden tilauksen tiedot if ($kukarow["extranet"] == "" and ($toim == "TYOMAARAYS" or $toim == "TYOMAARAYS_ASENTAJA" or $toim == "REKLAMAATIO" or $toim == "SIIRTOTYOMAARAYS")) { $query = "SELECT laskun_lisatiedot.*, lasku.*, tyomaarays.*\n FROM lasku\n JOIN tyomaarays ON (tyomaarays.yhtio = lasku.yhtio AND tyomaarays.otunnus = lasku.tunnus)\n LEFT JOIN laskun_lisatiedot ON (laskun_lisatiedot.yhtio = lasku.yhtio and laskun_lisatiedot.otunnus = lasku.tunnus)\n WHERE lasku.tunnus = '{$kukarow['kesken']}'\n AND lasku.yhtio = '{$kukarow['yhtio']}'\n AND lasku.tila != 'D'"; } else { // pitää olla: siirtolista, sisäinen työmääräys, reklamaatio, tarjous, valmistus, myyntitilaus, ennakko, myyntitilaus, ylläpitosopimus, projekti $query = "SELECT laskun_lisatiedot.*, lasku.*\n FROM lasku\n LEFT JOIN laskun_lisatiedot ON (laskun_lisatiedot.yhtio = lasku.yhtio and laskun_lisatiedot.otunnus = lasku.tunnus)\n WHERE lasku.tunnus = '{$kukarow['kesken']}'\n AND lasku.yhtio = '{$kukarow['yhtio']}'\n AND lasku.tila in ('G','S','C','T','V','N','E','L','0','R')\n AND (lasku.alatila != 'X' or lasku.tila = '0')"; } $result = pupe_query($query); $laskurow = mysql_fetch_assoc($result);
$rivi = str_replace($poista, "", $rivi); $rivi = explode("\t", trim($rivi)); if ($rivi[$sync_otsikot["fi"]] != "") { $sanakirjaquery = "SELECT kysytty,fi,se,no,en,de,dk,ee,muutospvm\n FROM sanakirja\n WHERE fi = BINARY '" . $rivi[$sync_otsikot["fi"]] . "'"; $sanakirjaresult = pupe_query($sanakirjaquery); if (mysql_num_rows($sanakirjaresult) > 0) { $sanakirjarow = mysql_fetch_assoc($sanakirjaresult); $sanakirjaquery = "UPDATE sanakirja SET synkronoi = 'X' where fi = BINARY '{$sanakirjarow['fi']}'"; $sanakirjaresult = pupe_query($sanakirjaquery); echo "<tr><td>" . $rivi[$sync_otsikot["kysytty"]] . "</td>"; echo "<td>" . $sanakirjarow["fi"] . "</td><td>" . $rivi[$sync_otsikot["fi"]] . "</td>"; foreach ($kieliarray as $kieli) { $e = ""; $t = ""; if ($sanakirjarow[$kieli] != $rivi[$sync_otsikot[$kieli]]) { $sanakirjarow[$kieli] = pupesoft_cleanstring($sanakirjarow[$kieli]); // Korjataan käännöksen eka merkki vastamaan referenssin ekan merkin kokoa if (ctype_upper(substr($sanakirjarow["fi"], 0, 1)) === TRUE) { // Eka merkki iso kirjain $sanakirjarow[$kieli] = ucfirst($sanakirjarow[$kieli]); } else { // Muuten koko stringi pienillä $sanakirjarow[$kieli] = strtolower($sanakirjarow[$kieli]); } if ($tee == "UPDATE") { $sanakirjaquery = "UPDATE sanakirja SET {$kieli} = '" . $rivi[$sync_otsikot[$kieli]] . "' where fi = BINARY '{$sanakirjarow['fi']}'"; $sanakirjaresult = pupe_query($sanakirjaquery); $sanakirjarow[$kieli] = $rivi[$sync_otsikot[$kieli]]; } else { $e = "<font class='error'>"; $t = "</font>";
$query = "SELECT nimi\n FROM asiakas\n WHERE tunnus = '{$asiakasid}'\n and yhtio = '{$kukarow['yhtio']}'"; } $result = pupe_query($query); if ($row = mysql_fetch_assoc($result)) { $asiakas_nimi = pupesoft_cleanstring($row["nimi"]); $asiakasstr = substr($row["nimi"], 0, 12); if (substr($ytunnus, 0, 1) == "£") { $asiakasid = $row['liitostunnus']; } } // tehdään dummy-lasku johon liitetään kirjaukset $tapvm = $vva . "-" . $kka . "-" . $ppa; $query = "INSERT into lasku\n SET yhtio = '{$kukarow['yhtio']}',\n tapvm = '{$tapvm}',\n tila = 'X',\n laatija = '{$kukarow['kuka']}',\n luontiaika = now()"; $result = pupe_query($query); $ltunnus = mysql_insert_id($GLOBALS["masterlink"]); $selite = pupesoft_cleanstring($selite); list($kustp_ins, $kohde_ins, $projekti_ins) = kustannuspaikka_kohde_projekti($myyntisaamiset); // Myyntisaamiset $query = "INSERT INTO tiliointi SET\n yhtio = '{$kukarow['yhtio']}',\n laatija = '{$kukarow['kuka']}',\n laadittu = now(),\n tapvm = '{$tapvm}',\n ltunnus = '{$ltunnus}',\n tilino = '{$myyntisaamiset}',\n summa = {$omasumma} * -1,\n summa_valuutassa = {$pistesumma} * -1,\n valkoodi = '{$tilivaluutta}',\n selite = 'Käsin syötetty suoritus {$asiakas_nimi} {$selite}',\n lukko = '1',\n kustp = '{$kustp_ins}',\n kohde = '{$kohde_ins}',\n projekti = '{$projekti_ins}'"; $result = pupe_query($query); $ttunnus = mysql_insert_id($GLOBALS["masterlink"]); list($kustp_ins, $kohde_ins, $projekti_ins) = kustannuspaikka_kohde_projekti($kassatili, $kustannuspaikka); // Rahatili $query = "INSERT INTO tiliointi SET\n yhtio = '{$kukarow['yhtio']}',\n laatija = '{$kukarow['kuka']}',\n laadittu = now(),\n tapvm = '{$tapvm}',\n ltunnus = '{$ltunnus}',\n tilino = '{$kassatili}',\n summa = '{$omasumma}',\n summa_valuutassa = '{$pistesumma}',\n valkoodi = '{$tilivaluutta}',\n selite = 'Käsin syötetty suoritus {$asiakas_nimi} {$selite}',\n aputunnus = '{$ttunnus}',\n lukko = '1',\n kustp = '{$kustp_ins}',\n kohde = '{$kohde_ins}',\n projekti = '{$projekti_ins}'"; $result = pupe_query($query); // Näin kaikki tiliöinnit ovat kauniisti linkitetty toisiinsa $query = "INSERT INTO suoritus SET\n yhtio = '{$kukarow['yhtio']}',\n tilino = '{$tilistr}',\n nimi_maksaja = '{$asiakasstr}',\n summa = '{$pistesumma}',\n maksupvm = '{$tapvm}',\n kirjpvm = '{$tapvm}',\n asiakas_tunnus = '{$asiakasid}',\n ltunnus = '{$ttunnus}',\n viesti = '{$selite}',\n valkoodi = '{$tilivaluutta}',\n kurssi = '{$tilikurssi}'"; $result = pupe_query($query); $suoritus_tunnus = mysql_insert_id($GLOBALS["masterlink"]); echo "<font class='message'>" . t("Suoritus tallennettu") . ".</font><br>"; // tulostetaan suorituksesta kuitti