/** * Tallennetaan ostotilauskirja arkistoon ja tyhjennetään alkuperäisen ostotilauskirjan sisältö * @param DByhteys $db * @param $ostotilauskirja_id * @return bool */ function laheta_ostotilauskirja(DByhteys $db, $ostotilauskirja_id) { //Lisätään osotilauskirja arkistoon $sql = "INSERT INTO ostotilauskirja_arkisto (hankintapaikka_id, tunniste, rahti, oletettu_saapumispaiva)\n SELECT hankintapaikka_id, tunniste, rahti, oletettu_saapumispaiva\n FROM ostotilauskirja\n WHERE id = ? "; if (!$db->query($sql, [$ostotilauskirja_id])) { return false; } $uusi_otk_id = $db->query("SELECT LAST_INSERT_ID() AS last_id", []); //Lisätään ostotilauskirjan tuotteet arkistoon $sql = "SELECT * FROM ostotilauskirja_tuote\n \t\t\tLEFT JOIN tuote\n \t\t\t ON ostotilauskirja_tuote.tuote_id = tuote.id\n \t\t\tWHERE ostotilauskirja_id = ?"; if (!($products = $db->query($sql, [$ostotilauskirja_id], FETCH_ALL))) { return false; } foreach ($products as $product) { $result = $db->query("\tINSERT INTO ostotilauskirja_tuote_arkisto (ostotilauskirja_id, tuote_id, kpl, \n\t\t\t\t\t\t\t\t\t\tlisays_tapa, lisays_pvm, lisays_selite, lisays_kayttaja_id, ostohinta) \n \t\t\t\t\t\t\t\tVALUES(?, ?, ?, ?, ?, ?, ?, ?)", [$uusi_otk_id->last_id, $product->id, $product->kpl, $product->lisays_tapa, $product->lisays_pvm, $product->lisays_selite, $product->lisays_kayttaja_id, $product->sisaanostohinta]); if (!$result) { return false; } } //Tyhjennetään alkuperäinen ostotilauskirja $sql = "DELETE FROM ostotilauskirja_tuote WHERE ostotilauskirja_id = ? "; if (!$db->query($sql, [$ostotilauskirja_id])) { return false; } return true; }
/** * @param DByhteys $db * @param stdClass $user * @param string $uusi_salasana * @param string $reset_key */ function db_vaihda_salasana(DByhteys $db, stdClass $user, $uusi_salasana, $reset_key) { $hajautettu_uusi_salasana = password_hash($uusi_salasana, PASSWORD_DEFAULT); $query = "\tUPDATE\tkayttaja \n\t\t\t\tSET \tsalasana_hajautus = ?, salasana_vaihdettu=NOW(), salasana_uusittava = 0\n\t\t\t\tWHERE\tid = ? "; $db->query($query, [$hajautettu_uusi_salasana, $user->id]); $query = "UPDATE pw_reset SET kaytetty = 1 WHERE kayttaja_id = ? AND reset_key_hash = ?"; $db->query($query, [$user->id, $reset_key]); }
/** * @param DByhteys $db * @param int|string $brandNo <p> Minkä brändin tuotteet haetaan. * Jos === "all", niin tulostaa kaikki tietokannassa olevat tuotteet. * @param int|string $hankintapaikka_id * @param int $ppp <p> Montako tuotetta kerralla ruudussa. * @param int $offset <p> Mistä tuotteesta aloitetaan palautus. * @return stdClass[] <p> Tuotteet */ function haeTuotteet(DByhteys $db, $brandNo, $hankintapaikka_id, $ppp, $offset) { if ($brandNo !== "all" && $hankintapaikka_id !== "all") { $sql = "SELECT *, (SELECT COUNT(id) FROM tuote WHERE brandNo = ?) AS row_count\n\t\t\t\tFROM tuote \n\t\t\t\tWHERE brandNo = ? AND hankintapaikka_id = ?\n\t\t\t\tLIMIT ? OFFSET ?"; $result = $db->query($sql, [$brandNo, $brandNo, $hankintapaikka_id, $ppp, $offset], FETCH_ALL); } else { $sql = "SELECT *, (SELECT COUNT(id) FROM tuote) AS row_count\n\t\t\t\tFROM tuote\n\t\t\t\tLIMIT ? OFFSET ?"; $result = $db->query($sql, [$ppp, $offset], FETCH_ALL); } return $result; }
/** * Hakee, ja palauttaa tilaukseen liitettyjen tuotteiden tiedot. * @param DByhteys $db * @param int $tilaus_id * @return array <p> Array of objects. tiedot tilatuista tuotteista. Palauttaa tyhjän arrayn, jos ei tuotteita */ function get_products_in_tilaus(DByhteys $db, $tilaus_id) { $sql = "SELECT tuote_id AS id, pysyva_hinta, pysyva_alv, pysyva_alennus, kpl,\n\t\t\t\t( (pysyva_hinta * (1 + pysyva_alv)) * (1 - pysyva_alennus) ) AS maksettu_hinta,\n\t\t\t\t tuote.articleNo, tuote.brandNo\n\t\t\tFROM tilaus_tuote\n\t\t\tLEFT JOIN tuote ON tuote.id = tilaus_tuote.tuote_id\n\t\t\tWHERE tilaus_id = ?"; $products = $db->query($sql, [$tilaus_id], FETCH_ALL); get_basic_product_info($products); return $products; }
/** * //TODO: Voisi olla tehokkaampi * @param DByhteys $db * @param int $yritys_id * @return User[] */ function hae_yrityksen_asiakkaat(DByhteys $db, $yritys_id) { $asiakkaat = array(); $rows = $db->query("SELECT id FROM kayttaja WHERE yritys_id = ? AND aktiivinen = 1", [$yritys_id], DByhteys::FETCH_ALL); foreach ($rows as $row) { $asiakkaat[] = new User($db, $row->id); } return $asiakkaat; }
/** * Luetaan / päivitetään valmistajan hinnasto tietokantaan. * @param DByhteys $db * @param int $brandId * @param int $hankintapaikka_id * @return array */ function lue_hinnasto_tietokantaan(DByhteys $db, $brandId, $hankintapaikka_id) { $handle = fopen($_FILES['tuotteet']['tmp_name'], 'r'); if (isset($_POST['otsikkorivi'])) { // Hypätään ensimmäisen rivin yli, jos otsikkorivi $row = -1; } else { $row = 0; } $product_array = []; $failed_inserts = 0; while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { if ($row == -1) { $row++; continue; } $row++; //TODO: Tarkasta myös $datan sisältö, väärien syötteiden varalta. $num = count($data); // rivin sarakkeiden lkm if ($num != 6) { $failed_inserts++; continue; } $articleNo = str_replace(" ", "", $data[$_POST["s0"]]); $ostohinta = (double) str_replace(",", ".", $data[$_POST["s1"]]); $myyntihinta = (double) str_replace(",", ".", $data[$_POST["s2"]]); $vero_id = (int) $data[$_POST["s3"]]; $minimimyyntiera = (int) $data[$_POST["s4"]]; $kappaleet = (int) $data[$_POST["s5"]]; $tuotekoodi = $hankintapaikka_id . "-" . $articleNo; //esim: 100-QTB249 $product_array[0] = (object) ['articleNo' => $articleNo, 'brandNo' => $brandId, 'hankintapaikka_id' => $hankintapaikka_id]; //get_basic_product_info($product_array); //sleep(0.1); $sql = "INSERT INTO tuote (articleNo, sisaanostohinta, keskiostohinta, hinta_ilman_ALV, ALV_kanta, \n\t\t\t\t\tminimimyyntiera, varastosaldo, yhteensa_kpl, brandNo, hankintapaikka_id, tuotekoodi) \n\t\t\t\tVALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\t\t\tON DUPLICATE KEY\n\t\t\t\t\tUPDATE sisaanostohinta = VALUES(sisaanostohinta), hinta_ilman_ALV = VALUES(hinta_ilman_ALV),\n\t\t\t\t\t\tALV_kanta = VALUES(ALV_kanta), minimimyyntiera = VALUES(minimimyyntiera),\n\t\t\t\t\t\tvarastosaldo = varastosaldo + VALUES(varastosaldo), \n\t\t\t\t\t\tkeskiostohinta = IFNULL(((keskiostohinta*yhteensa_kpl + VALUES(sisaanostohinta) * \n\t\t\t\t\t\t\tVALUES(yhteensa_kpl) )/(yhteensa_kpl + VALUES(yhteensa_kpl) )),0),\n\t\t\t\t\t\tyhteensa_kpl = yhteensa_kpl + VALUES(yhteensa_kpl)"; $response = $db->query($sql, [$articleNo, $ostohinta, $ostohinta, $myyntihinta, $vero_id, $minimimyyntiera, $kappaleet, $kappaleet, $brandId, $hankintapaikka_id, $tuotekoodi]); //Jos syötetään tuote ensimmäistä kertaa tietokantaan, haetaan tecdocista myös nimi } /*if ($new_catalog_products) { get_basic_product_info($new_catalog_products); foreach ($new_catalog_products as $product) { $sql = "UPDATE tuote SET nimi = ? WHERE articleNo = ? AND brandNo = ? AND tuote.hankintapaikka_id = ?"; $db->query($sql, [$product->articleName, $product->articleNo, $product->brandNo, $product->hankintapaikka_id]); } }*/ fclose($handle); return array($row, $failed_inserts); //kaikki rivit , epäonnistuneet syötöt }
/** * @param DByhteys $db * @param User $user * @param $osoite_id * @return bool */ function poista_osoite(DByhteys $db, User $user, $osoite_id) { $osoite_id_viimeinen = count($user->toimitusosoitteet); $sql = "DELETE FROM toimitusosoite WHERE kayttaja_id = ? AND osoite_id = ?"; $stmt = $db->getConnection()->prepare($sql); //Tarvitaan rowCount-metodia, joten hieman manuaalia PDO:ta. $stmt->execute([$user->id, $osoite_id]); if ($stmt->rowCount() > 0) { $sql = "UPDATE\ttoimitusosoite\n\t\t\t\tSET\t\tosoite_id = ?\n\t\t\t\tWHERE\tkayttaja_id = ? AND osoite_id = ?"; return $db->query($sql, [$osoite_id, $user->id, $osoite_id_viimeinen]); } else { return false; } }
/** * Yritys-luokan konstruktori.<p> * Jos annettu parametrit, hakee yrityksen tiedot tietokannasta. Muuten ei tee mitään. * Jos ei löydä yritystä ID:llä, niin kaikki olion arvot pysyvät default arvoissaan. * Testaa, löytyikö yritys metodilla .isValid(). * @param DByhteys $db [optional] * @param int $yritys_id [optional] */ function __construct(DByhteys $db = NULL, $yritys_id = NULL) { if ($yritys_id !== NULL) { // Varmistetaan parametrin oikeellisuus $sql = "SELECT id, aktiivinen, nimi, sahkoposti, puhelin, y_tunnus, katuosoite, postinumero, \n\t\t\t\t\t\tpostitoimipaikka, maa, rahtimaksu, ilmainen_toimitus_summa_raja AS ilm_toim_sum_raja\n\t\t\t\t\tFROM yritys\n\t\t\t\t\tWHERE id = ?\n\t\t\t\t\tLIMIT 1"; $row = $db->query($sql, [$yritys_id]); if ($row) { // Varmistetaan, että jokin asiakas löytyi foreach ($row as $property => $propertyValue) { $this->{$property} = $propertyValue; } } } }
/** * Hakee kaikki ALV-kannat tietokannasta. Lisäksi täyttää kantojen arrayin, jos siinä ei ole viisi elementtiä, * koska olen päättänyt yksimielisesti, että meillä on nyt viisi ALV-kantaa + nolla. * @param DByhteys $db * @return stdClass[] */ function hae_kaikki_ALV_kannat(DByhteys $db) { $sql = "SELECT kanta, prosentti FROM ALV_kanta ORDER BY kanta ASC"; $rows = $db->query($sql, NULL, DByhteys::FETCH_ALL); if ($rows[0]->kanta == 0 && $rows[0]->prosentti == 0) { unset($rows[0]); } for ($i = count($rows) + 1; $i <= 5; $i++) { // Täytetään array, jos ei tarpeeksi elementtejä $rows[] = (object) ["kanta" => $i, "prosentti" => 0.0]; // Lisätään tyhjä alv arrayhin object muodossa. } return $rows; }
/** * Resetoidaan käyttäjän salasana, joko käyttäjän toimesta, tai ylläpidollisista syistä. * Lähettää käyttäjälle linkin sähköpostilla pw_reset-sivulle, tai jos salasana vanhentunut: * ohjaa suoraan kyseiselle sivulle. * @param DByhteys $db * @param stdClass $user * @param string $reset_mode <p> onko kyseessä 'reset' vai 'expired'. Eka lähettää linkin, toka ohjaa suoraan. */ function password_reset(DByhteys $db, stdClass $user, $reset_mode) { $key = GUID(); $key_hashed = sha1($key); $sql_query = "\tINSERT INTO pw_reset (kayttaja_id, reset_key_hash)\n\t\t\t\t\tVALUES ( ?, ? )"; $db->query($sql_query, [$user->id, $key_hashed]); if ($reset_mode == "expired") { //Jos salasana vanhentunut, ohjataan suoraan salasananvaihtosivulle header("Location:pw_reset.php?id={$key}"); exit; } else { // jos salasanaa pyydetty sähköpostiin, lähetetään linkki laheta_salasana_linkki($user->sahkoposti, $key); header("Location:index.php?redir=6"); exit; // Palautuslinkki lähetetty } }
/** * Vaihtaa salasanan käyttäjälle. * Salasana hajautetaan metodissa. Salasanan pitää olla vähintään 8 merkkiä pitkä. * @param DByhteys $db * @param $uusi_salasana <p> Hajauttamaton uusi salasana, vähintään 8 merkkiä pitkä. * @return bool <p> Palauttaa true, jos salasana > 8 ja vaihtaminen onnistui. Muuten false. */ public function vaihdaSalasana(DByhteys $db, $uusi_salasana) { if (strlen($uusi_salasana) >= 8) { $hajautettu_uusi_salasana = password_hash($uusi_salasana, PASSWORD_DEFAULT); return $db->query("UPDATE kayttaja SET salasana_hajautus = ? WHERE id = ?", [$hajautettu_uusi_salasana, $this->id]); } else { return false; } }
/** * @param DByhteys $db * @param $brandId */ function tulosta_hankintapaikat(DByhteys $db, $brandId) { //tarkastetaan onko valmistajaan linkitetty hankintapaikka $query = "\tSELECT *, LPAD(`id`,3,'0') AS id FROM valmistajan_hankintapaikka\n \t\t\t\tJOIN hankintapaikka\n \t\t\t\t\tON valmistajan_hankintapaikka.hankintapaikka_id = hankintapaikka.id\n \t\t\t\tWHERE valmistajan_hankintapaikka.brandId = ? "; $hankintapaikat = $db->query($query, [$brandId], FETCH_ALL, PDO::FETCH_OBJ); $i = 1; if (isset($hankintapaikat)) { foreach ($hankintapaikat as $hankintapaikka) { ?> <div style="float:left; padding-right: 30px;"> <form action="" method="post" class="poista_hankintapaikka_linkitys"> <table> <tr><th colspan='2' class='text-center'>Hankintapaikka <?php echo $i++; ?> </th></tr> <tr><td>ID</td><td><?php echo $hankintapaikka->id; ?> </td></tr> <tr><td>Yritys</td><td><?php echo $hankintapaikka->nimi; ?> </td></tr> <tr><td>Osoite</td><td><?php echo $hankintapaikka->katuosoite; ?> <br><?php echo $hankintapaikka->postinumero, " ", $hankintapaikka->kaupunki; ?> </td></tr> <tr><td>Maa</td><td><?php echo $hankintapaikka->maa; ?> </td></tr> <tr><td>Puh</td><td><?php echo $hankintapaikka->puhelin; ?> </td></tr> <tr><td>Fax</td><td><?php echo $hankintapaikka->fax; ?> </td></tr> <tr><td>URL</td><td><?php echo $hankintapaikka->www_url; ?> </td></tr> <tr><td>Tilaustapa</td><td><?php echo $hankintapaikka->tilaustapa; ?> </td></tr> <tr><th colspan='2' class='text-center'>Yhteyshenkilö</th></tr> <tr><td>Nimi</td><td><?php echo $hankintapaikka->yhteyshenkilo_nimi; ?> </td></tr> <tr><td>Puh</td><td><?php echo $hankintapaikka->yhteyshenkilo_puhelin; ?> </td></tr> <tr><td>Email</td><td><?php echo $hankintapaikka->yhteyshenkilo_email; ?> </td></tr> <tr> <td colspan="2"> <input name="hankintapaikka_id" type="hidden" value="<?php echo $hankintapaikka->id; ?> " /> <input name="poista_linkitys" class="nappi" type="submit" value="Poista" style="background:#d20006; border-color:#b70004;"/> <span onclick="avaa_modal_muokkaa_hankintapaikka('<?php echo $hankintapaikka->id; ?> ', '<?php echo $hankintapaikka->nimi; ?> ', '<?php echo $hankintapaikka->katuosoite; ?> ','<?php echo $hankintapaikka->postinumero; ?> ','<?php echo $hankintapaikka->kaupunki; ?> ', '<?php echo $hankintapaikka->maa; ?> ','<?php echo $hankintapaikka->puhelin; ?> ','<?php echo $hankintapaikka->fax; ?> ', '<?php echo $hankintapaikka->www_url; ?> ', '<?php echo $hankintapaikka->yhteyshenkilo_nimi; ?> ', '<?php echo $hankintapaikka->yhteyshenkilo_puhelin; ?> ', '<?php echo $hankintapaikka->yhteyshenkilo_email; ?> ', '<?php echo $hankintapaikka->tilaustapa; ?> ')" class="nappi">Muokkaa</span> </td> </tr> <tr> <td colspan="2"> <a href="yp_lisaa_tuotteita.php?brandId=<?php echo $brandId; ?> &hankintapaikka=<?php echo intval($hankintapaikka->id); ?> " class="nappi">Lisää tuotteita</a> <a href="yp_valikoima.php?brand=<?php echo $brandId; ?> &hankintapaikka=<?php echo intval($hankintapaikka->id); ?> " class="nappi">Valikoima</a> </td> </tr> </table> </form> </div> <?php } } }
/** * Haetaan tuote tietokannasta artikkelinumeron ja brandinumeron perusteella. * @param DByhteys $db * @param stdClass $product * @return array|bool|stdClass */ function get_product_from_database(DByhteys $db, stdClass $product) { $query = "\tSELECT \t*, (hinta_ilman_alv * (1+ALV_kanta.prosentti)) AS hinta\n\t\t\t \t\tFROM \ttuote \n\t\t \t \t \tJOIN \tALV_kanta\n\t\t \t\t\t\tON\ttuote.ALV_kanta = ALV_kanta.kanta\n\t\t\t\t \tWHERE \ttuote.articleNo = ?\n\t\t\t\t\t AND tuote.brandNo = ?\n\t\t\t\t\t \t AND tuote.aktiivinen = 1 "; return $db->query($query, [str_replace(" ", "", $product->articleNo), $product->brandNo], FETCH_ALL, PDO::FETCH_OBJ); }
function hae_aktiiviset_hankintapaikat(DByhteys $db) { $sql = "SELECT LPAD(hankintapaikka.id,3,'0') AS id, hankintapaikka.nimi, GROUP_CONCAT(valmistajan_hankintapaikka.brandName) AS brandit\n FROM hankintapaikka\n RIGHT JOIN valmistajan_hankintapaikka\n ON hankintapaikka.id = valmistajan_hankintapaikka.hankintapaikka_id\n GROUP BY hankintapaikka.id"; return $db->query($sql, [], FETCH_ALL); }
/** * Hakee tilaukset * @param DByhteys $db * @return stdClass[] */ function hae_tilaukset(DByhteys $db) { $sql = "SELECT tilaus.id, tilaus.paivamaara, kayttaja.etunimi, kayttaja.sukunimi, \n\t\t\t\tSUM(tilaus_tuote.kpl * (tilaus_tuote.pysyva_hinta * (1+tilaus_tuote.pysyva_alv))) AS summa\n\t\t\tFROM tilaus\n\t\t\tLEFT JOIN kayttaja\n\t\t\t\tON kayttaja.id = tilaus.kayttaja_id\n\t\t\tLEFT JOIN tilaus_tuote\n\t\t\t\tON tilaus_tuote.tilaus_id = tilaus.id\n\t\t\tWHERE tilaus.kasitelty = 0\n\t\t\tGROUP BY tilaus.id"; return $db->query($sql, NULL, FETCH_ALL); }
print "<pre>"; $data = parse_ini_file("../tietokanta/db-config.ini.php", true); require '../luokat/db_yhteys_luokka.class.php'; $data_db = $data['Tietokannan tiedot']; $db = new DByhteys($data_db['user'], $data_db['pass'], $data_db['name'], $data_db['host']); $f = file('tietokanta.sql', FILE_IGNORE_NEW_LINES); // Tietokannan taulut foreach ($f as $k => $v) { // Poistetaan .sql-tiedoston kommentit $f[$k] = strstr($v, '--', true) ?: $v; } $db_file = explode(";", implode("", $f)); // Muunnetaan jokainen query omaan indexiin foreach ($db_file as $sql) { if (!empty($sql) && strlen($sql) > 5) { $db->query($sql); } } // Ei tehdä mitään, jos tietokanta on jo alustettu if ($db->query("SELECT 1 FROM kayttaja LIMIT 1")) { die('Tietokanta on jo alustettu!'); } $db->prepare_stmt("INSERT INTO kayttaja (sahkoposti, salasana_hajautus, yllapitaja, yritys_id) \n\t\tVALUES (?, ?, 1, 1)"); for ($i = 0; $i < count($data['Admin tunnukset']['kayttajatunnus']); $i++) { $db->run_prepared_stmt([$data['Admin tunnukset']['kayttajatunnus'][$i], password_hash($data['Admin tunnukset']['salasana'][$i], PASSWORD_DEFAULT)]); } // Luodaan ylläpitäjälle yritys ja ostoskori $result = $db->query("INSERT INTO yritys (nimi, y_tunnus, maa, sahkoposti, puhelin, katuosoite, postinumero, postitoimipaikka) VALUES (?,?,?,?,?,?,?,?)", [$data['Admin tunnukset']['y_nimi'], $data['Admin tunnukset']['y_tunnus'], $data['Admin tunnukset']['y_maa'], $data['Admin tunnukset']['y_sahkoposti'], $data['Admin tunnukset']['y_puhelin'], $data['Admin tunnukset']['y_osoite'][0], $data['Admin tunnukset']['y_osoite'][1], $data['Admin tunnukset']['y_osoite'][2]]); $result = $db->query("INSERT INTO ostoskori (yritys_id) VALUES (?)", [1]); if ($result) { echo 'Ylläpitäjä luotu.<br>Tietokannan asennus on nyt suoritettu.<br>Poista tämä tiedosto (<i>asenna.php</i>) palvelimelta.';
/** * Tyhjentaa ostoskorin. * @param DByhteys $db * @return bool <p> Onnistuiko tyhjennys */ public function tyhjenna_kori(DByhteys $db) { return $db->query("DELETE FROM ostoskori_tuote WHERE ostoskori_id = ?", [$this->ostoskori_id]); }
/** * Hakee kaikkien tietokannasta löytyvien valmistajien valmistajien id:t * ja hinnastojen sisäänajopäivämäärät. * @return array|bool|stdClass */ function hae_hinnaston_sisaanajo_pvm(DByhteys $db, $brandId) { $query = "SELECT MAX(hinnaston_sisaanajo_pvm) as suurin_pvm FROM valmistajan_hankintapaikka WHERE brandId = ?"; return $db->query($query, [$brandId], NULL, PDO::FETCH_OBJ); }
/** * @param DByhteys $db * @param User $user * @return stdClass[] */ function hae_tilaukset(DByhteys $db, User $user) { $sql = "SELECT tilaus.id, tilaus.paivamaara, tilaus.kasitelty,\n\t\t\t\tSUM(tilaus_tuote.kpl) AS kpl,\n\t\t\t\tSUM( tilaus_tuote.kpl * ( (tilaus_tuote.pysyva_hinta*(1+tilaus_tuote.pysyva_alv))\n\t\t\t\t\t* (1-tilaus_tuote.pysyva_alennus) ) ) AS summa\n\t\t\tFROM tilaus\n\t\t\tLEFT JOIN tilaus_tuote ON tilaus_tuote.tilaus_id = tilaus.id\n\t\t\tWHERE kayttaja_id = ?\n\t\t\tGROUP BY tilaus.id"; return $db->query($sql, [$user->id], DByhteys::FETCH_ALL); }
/** * Hakee kaikki ALV-kannat, tekee niistä dropdown-valikon, ja palauttaa HTML-koodin. * @param DByhteys $db * @return String <p> HTML-koodia. Dropdown-valikko. */ function hae_kaikki_ALV_kannat_ja_lisaa_alasvetovalikko($db) { $sql = "SELECT kanta, prosentti FROM ALV_kanta ORDER BY kanta ASC;"; $rows = $db->query($sql, NULL, FETCH_ALL); $return_string = '<select name="alv_lista">'; foreach ($rows as $alv) { $alv->prosentti = str_replace('.', ',', $alv->prosentti); $return_string .= "<option name=\"alv\" value=\"{$alv->kanta}\">{$alv->kanta}; {$alv->prosentti}</option>"; } $return_string .= "</select>"; return $return_string; }
/** * Lähettää ilmoituksen epäilyttävästä IP-osoitteesta ylläpidolle. * @param DByhteys $db * @param $email * @param $vanha_sijainti * @param $uusi_sijainti * @return bool */ function laheta_ilmoitus_epailyttava_IP(DByhteys $db, $email, $vanha_sijainti, $uusi_sijainti) { //haetaan yllapitajan sposti $query = "SELECT sahkoposti FROM kayttaja WHERE yllapitaja=1"; $yp = $db->query($query, NULL, NULL, PDO::FETCH_OBJ); if (!$yp) { return false; } //emailin sisältö $subject = "Epäilyttävää käytöstä"; $message = "Asiakas ...tiedot tähän..... <br>" . "Vanha sijainti:" . $vanha_sijainti . "<br>" . "Uusi sijainti:" . $uusi_sijainti; send_email($yp->sahkoposti, $subject, $message); return true; }