예제 #1
0
/**
 * 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;
}
예제 #2
0
/**
 * @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]);
}
예제 #3
0
/**
 * //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;
}
예제 #4
0
/**
 * @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;
}
예제 #5
0
/**
 * @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;
    }
}
예제 #6
0
 /**
  * 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;
             }
         }
     }
 }
/**
 * 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
}
/**
 * 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;
}
예제 #9
0
/**
 * 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
    }
}
/**
 * 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;
}
/**
 * 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;
}
예제 #12
0
 /**
  * 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 
        }
    }
}
예제 #14
0
 /**
  * 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);
}
예제 #16
0
/**
 * 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);
}
예제 #17
0
<?php

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]);
 /**
  * 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]);
 }
/**
 * @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);
}
예제 #20
0
/**
 * 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;
}
예제 #21
0
/**
 * 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);
}