$vastaavat = new Vastaavat($row['tuoteno']); if ($vastaavat->onkovastaavia()) { $i = 1; // Loopataan kaikki tuotteen vastaavuusketjut foreach (explode(",", $vastaavat->getIDt()) as $ketju) { // 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);
if ($tapa != 'VAIHDARIVI') { tarkista_myynti_osto_liitos_ja_poista($rivitunnus, false); } // Tehdään pari juttua jos tuote on sarjanumeroseurannassa if ($tilausrivirow["sarjanumeroseuranta"] != '') { //Nollataan sarjanumero $query = "SELECT tunnus FROM sarjanumeroseuranta WHERE yhtio='{$kukarow['yhtio']}' and tuoteno='{$tilausrivirow['tuoteno']}' and ostorivitunnus='{$tilausrivirow['tunnus']}'"; $sarjares = pupe_query($query); $sarjarow = mysql_fetch_assoc($sarjares); //Pidetään sarjatunnus muistissa $osto_sarjatunnus = $sarjarow["tunnus"]; $query = "UPDATE sarjanumeroseuranta SET ostorivitunnus=0 WHERE yhtio='{$kukarow['yhtio']}' AND tuoteno='{$tilausrivirow['tuoteno']}' AND ostorivitunnus='{$tilausrivirow['tunnus']}'"; $sarjares = pupe_query($query); } if ($tapa == 'VAIHDARIVI') { $trow = hae_tuote($vastaavatuoteno); $kpl = $tilausrivirow['varattu'] + $tilausrivirow['jt']; if (!empty($tilausrivirow['tilausrivilinkki'])) { $query = "SELECT lasku.*\n FROM lasku\n JOIN tilausrivi\n ON ( tilausrivi.yhtio = lasku.yhtio\n AND tilausrivi.otunnus = lasku.tunnus\n AND tilausrivi.tunnus = '{$tilausrivirow['tilausrivitunnus']}')\n WHERE lasku.yhtio = '{$kukarow['yhtio']}'\n GROUP BY lasku.tunnus"; $result = pupe_query($query); $myyntitilausrow = mysql_fetch_assoc($result); list($hinta, $netto, $ale, , ) = alehinta($myyntitilausrow, $trow, $kpl, '', '', ''); //Jos vaihdettava rivi on linkattu myyntitilaukseen, käydään vaihtamassa myös myyntitilauksen tuote vastaavaan tuotteeseen. $ale_query = ""; foreach ($ale as $a_index => $a) { $ale_query .= $a_index . ' = ' . $a . ','; } $ale_query = substr($ale_query, 0, -1); $query = "UPDATE tilausrivi\n SET tuoteno = '{$vastaavatuoteno}',\n nimitys = '{$trow['nimitys']}',\n hinta = '{$hinta}',\n {$ale_query}\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tunnus = '{$tilausrivirow['tilausrivitunnus']}'"; pupe_query($query); }
function lisaa_tuote($tuoteno = '', $vastaava, $ketju_id = '') { global $kukarow; // Tarkistetaan että tuote on olemassa $tuote = hae_tuote($vastaava); if ($tuote) { // Jos ketju on setattu, lisätään tuote haluttuun ketjuun if ($ketju_id != '') { // Tarkistetaan että tuote ei ole missään ketjussa päätuotteena $paatuote = false; if (onko_paatuote($vastaava)) { $paatuote = true; echo "<font class='error'>" . t("Lisäys ei onnistu! Tuote") . " {$vastaava} " . t("on päätuotteena jossain toisessa ketjussa") . "!</font><br><br>"; } // Tarkistetaan että tuote ei jo ole kyseisessä ketjussa $query = "SELECT * FROM vastaavat WHERE yhtio='{$kukarow['yhtio']}' AND tuoteno='{$vastaava}' AND id='{$ketju_id}'"; $result = pupe_query($query); // Tuote on jo ketjussa if (mysql_num_rows($result) > 0) { echo "<font class='error'>" . t("Lisäys ei onnistu! Tuote") . " {$vastaava} " . t("on jo ketjussa") . " {$ketju_id}!</font><br><br>"; } elseif ($paatuote == false) { $query = "INSERT INTO vastaavat (id, tuoteno, yhtio, laatija, luontiaika, muutospvm, muuttaja)\n VALUES ('{$ketju_id}', '{$tuote['tuoteno']}', '{$kukarow['yhtio']}', '{$kukarow['kuka']}', now(), now(), '{$kukarow['kuka']}')"; $result = pupe_query($query); } } elseif ($tuoteno != '' and $ketju_id == '') { // Etsitään isä tuotetta (haettu tuoteno) $query = "SELECT * FROM vastaavat WHERE tuoteno = '{$tuoteno}' AND yhtio = '{$kukarow['yhtio']}'"; $result = pupe_query($query); if (mysql_num_rows($result) != 0) { //jos on, otetaan ID luku talteen... $row = mysql_fetch_array($result); $fid = $row['id']; } // Etsitään lisättävää tuotetta // Vastaavissa tarkistetaan vain että tuote ei ole päätuotteena missään toisessa ketjussa. // Jos isätuotetta ei löytynyt eikä lisättävä tuote ole missään ketjussa päätuotteena, // voidaan tuotteista tehdä uusi ketju $query = "SELECT * FROM vastaavat WHERE tuoteno = '{$vastaava}' AND yhtio = '{$kukarow['yhtio']}' AND jarjestys='1'"; $result = pupe_query($query); if (mysql_num_rows($result) != 0) { //vastaava on jo lisätty.. otetaan senki id.. $row = mysql_fetch_array($result); $cid = $row['id']; } //jos kumpaakaan ei löytynyt... if ($cid == "" and $fid == "") { //silloin tämä on eka vastaava.. etsitään sopiva ID. $query = "SELECT max(id) FROM vastaavat"; $result = pupe_query($query); $row = mysql_fetch_array($result); $id = $row[0] + 1; //lisätään "isä tuote"... $query = "INSERT INTO vastaavat (id, tuoteno, yhtio, laatija, luontiaika, muutospvm, muuttaja)\n VALUES ('{$id}', '{$tuoteno}', '{$kukarow['yhtio']}', '{$kukarow['kuka']}', now(), now(), '{$kukarow['kuka']}')"; $result = pupe_query($query); // lisätään vastaava tuote... $query = "INSERT INTO vastaavat (id, tuoteno, yhtio, laatija, luontiaika, muutospvm, muuttaja)\n VALUES ('{$id}', '{$vastaava}', '{$kukarow['yhtio']}', '{$kukarow['kuka']}', now(), now(), '{$kukarow['kuka']}')"; $result = pupe_query($query); } //lapsi on löytynyt, isää ei if ($cid != "" and $fid == "") { //lisätään "isä tuote"... $query = "INSERT INTO vastaavat (id, tuoteno, yhtio, laatija, luontiaika, muutospvm, muuttaja)\n VALUES ('{$cid}', '{$tuoteno}', '{$kukarow['yhtio']}', '{$kukarow['kuka']}', now(), now(), '{$kukarow['kuka']}')"; $result = pupe_query($query); } //isä on löytynyt, lapsi ei if ($fid != "" and $cid == "") { // Siirretään ketjun muita eteenpäin jarjestys + 1 $query = "UPDATE vastaavat SET jarjestys=jarjestys+1\n WHERE jarjestys!=0 AND id='{$fid}' AND yhtio='{$kukarow['yhtio']}'"; $result = pupe_query($query); // Lisätään uusi aina päätuotteeksi jarjestys=1 //lisätään vastaava päätuotteeksi $query = "INSERT INTO vastaavat (id, tuoteno, yhtio, jarjestys, laatija, luontiaika, muutospvm, muuttaja)\n VALUES ('{$fid}', '{$vastaava}', '{$kukarow['yhtio']}', '1', '{$kukarow['kuka']}', now(), now(), '{$kukarow['kuka']}')"; $result = pupe_query($query); } //kummatkin löytyivät.. ja ne korvaa toisensa if ($fid != "" and $cid != "" and $fid == $cid) { echo "<font class='error'>" . t("Tuotteet") . " {$vastaava} <> {$tuoteno} " . t("ovat jo vastaavia") . "!</font><br><br>"; } elseif ($fid != "" and $cid != "") { echo "<font class='error'>" . t("Tuotteet") . " {$vastaava}, {$tuoteno} " . t("kuuluvat jo eri vastaavuusketjuihin") . "!</font><br><br>"; } } else { echo "<font class='error'>" . t("Odottamaton virhe") . "!</font><br><br>"; } } }