function ennakkolaskuta($tunnus)
 {
     global $kukarow, $yhtiorow;
     ///* Etsitään laskun kaikki tiedot jolle maksusopimus on tehty *///
     $query = "SELECT *\n              FROM lasku\n              WHERE yhtio  = '{$kukarow['yhtio']}'\n              and tunnus   = '{$tunnus}'\n              and tila     in ('L','N','R')\n              and alatila != 'X'";
     $stresult = pupe_query($query);
     if (mysql_num_rows($stresult) == 0) {
         echo "Otsikkoa '{$tunnus}' ei löytynyt, tai se on väärässä tilassa.";
         return 0;
     }
     $laskurow = mysql_fetch_assoc($stresult);
     //  Lasku voi mennä myös kaukomaille, joten haetaan tämän asiakkaan kieli..
     $query = "SELECT kieli from asiakas WHERE yhtio = '{$kukarow['yhtio']}' and tunnus='{$laskurow['liitostunnus']}'";
     $kielires = pupe_query($query);
     $kielirow = mysql_fetch_assoc($kielires);
     if ($debug == 1) {
         echo t("Perusotsikko löytyi") . " {$laskurow['nimi']}<br>";
     }
     // Onko sopimuksella vielä jotain ennakkolaskutettavaa
     $query = "SELECT yhtio\n              FROM maksupositio\n              WHERE yhtio     = '{$kukarow['yhtio']}'\n              and otunnus     = '{$tunnus}'\n              and uusiotunnus = 0";
     $posres = pupe_query($query);
     if (mysql_num_rows($posres) <= 1) {
         echo t("VIRHE: Tilauksella ei ole ennakkolaskutettavia positioita!") . "<br>";
         return 0;
     }
     //  tarkistetaan että meillä on jotain järkevää laskutettavaa
     $query = "SELECT *\n              FROM maksupositio\n              WHERE yhtio     = '{$kukarow['yhtio']}'\n              and otunnus     = '{$tunnus}'\n              and uusiotunnus = 0\n              ORDER BY tunnus\n              LIMIT 1";
     $posres = pupe_query($query);
     $posrow = mysql_fetch_assoc($posres);
     if ($debug == 1) {
         echo t("Löydettiin maksupositio") . " {$posrow['tunnus']}, {$posrow['osuus']} %, {$posrow['maksuehto']}<br>";
     }
     if ($posrow["summa"] <= 0 or $posrow["maksuehto"] == 0 or (int) $posrow["tunnus"] == 0) {
         echo t("VIRHE: laskutusposition summa on nolla tai sen alle. Korjaa tämä!") . "<br>";
         return 0;
     }
     // Tilausrivin kommentti-kenttään menevä kommentti
     $query = "SELECT\n              sum(if (uusiotunnus > 0, 1, 0)) laskutettu,\n              count(*) yhteensa\n              FROM maksupositio\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              and otunnus = '{$tunnus}'";
     $abures = pupe_query($query);
     $aburow = mysql_fetch_assoc($abures);
     $lahteva_lasku = $aburow["laskutettu"] + 1 . "/" . $aburow["yhteensa"];
     // tehdään vanhasta laskusta 1:1 kopio...
     $query = "INSERT INTO lasku SET ";
     for ($i = 0; $i < mysql_num_fields($stresult); $i++) {
         $fieldname = mysql_field_name($stresult, $i);
         // paitsi tilaan laitetaan N
         if ($fieldname == 'tila') {
             $query .= "tila='N',";
         } elseif ($fieldname == 'alatila') {
             $query .= "alatila='',";
         } elseif ($fieldname == 'ketjutus') {
             $query .= "ketjutus='o',";
         } elseif ($fieldname == 'tilaustyyppi') {
             if (strtoupper($laskurow["tilaustyyppi"]) == "A") {
                 $query .= "tilaustyyppi='A',";
             } else {
                 $query .= "tilaustyyppi='L',";
             }
         } elseif ($fieldname == 'laatija') {
             $query .= "laatija='{$kukarow['kuka']}',";
         } elseif ($fieldname == 'eilahetetta') {
             $query .= "eilahetetta='',";
         } elseif ($fieldname == 'kerayspvm' or $fieldname == 'luontiaika' or $fieldname == 'toimaika') {
             $query .= $fieldname . "=now(),";
         } elseif ($fieldname == 'kapvm' or $fieldname == 'tapvm' or $fieldname == 'olmapvm' or $fieldname == 'summa' or $fieldname == 'kasumma' or $fieldname == 'hinta' or $fieldname == 'kate' or $fieldname == 'arvo' or $fieldname == 'maksuaika' or $fieldname == 'lahetepvm' or $fieldname == 'viite' or $fieldname == 'laskunro' or $fieldname == 'mapvm' or $fieldname == 'tilausvahvistus' or $fieldname == 'viikorkoeur' or $fieldname == 'tullausnumero' or $fieldname == 'laskutuspvm' or $fieldname == 'laskuttaja' or $fieldname == 'laskutettu' or $fieldname == 'lahetepvm' or $fieldname == 'maksaja' or $fieldname == 'maksettu' or $fieldname == 'maa_maara' or $fieldname == 'kuljetusmuoto' or $fieldname == 'kauppatapahtuman_luonne' or $fieldname == 'sisamaan_kuljetus' or $fieldname == 'sisamaan_kuljetusmuoto' or $fieldname == 'poistumistoimipaikka' or $fieldname == 'vanhatunnus' or $fieldname == 'poistumistoimipaikka_koodi') {
             $query .= $fieldname . "='',";
         } elseif ($fieldname == 'kate_korjattu') {
             $query .= $fieldname . " = NULL,";
         } elseif ($fieldname == 'maksuehto') {
             $query .= "maksuehto = '{$posrow['maksuehto']}',";
         } elseif ($fieldname == 'erpcm') {
             if ($posrow["erpcm"] != '0000-00-00') {
                 $query .= "erpcm = '{$posrow['erpcm']}',";
             } else {
                 $query .= "erpcm = '0000-00-00',";
             }
         } elseif ($fieldname == 'clearing') {
             $query .= "clearing = 'ENNAKKOLASKU',";
         } elseif ($fieldname == 'jaksotettu') {
             // Käännetän ennakkolaskun jaksotettukenttä negatiiviseksi jotta me löydetään ne yksiselitteisesti,
             // mutta kuitenkin niin, etteivät ne sekoitu maksusopimuksen alkuperäisiin tilauksiin
             $query .= "jaksotettu = '" . $laskurow['jaksotettu'] * -1 . "',";
         } elseif ($fieldname == 'viesti' and !empty($yhtiorow['ennakkolaskun_tyyppi'])) {
             $viesti = t("Ennakkolasku", $kielirow["kieli"]) . " {$lahteva_lasku} " . t("tilaukselle", $kielirow["kieli"]) . " {$tunnus} " . t("Osuus", $kielirow["kieli"]) . " " . round($posrow["osuus"], 2) . "% ";
             $query .= "viesti = '" . $viesti . "',";
         } elseif ($fieldname != 'tunnus') {
             // ja kaikki muut paitsi tunnus sellaisenaan
             $query .= $fieldname . " = '" . $laskurow[$fieldname] . "',";
         }
     }
     $query = substr($query, 0, -1);
     $stresult = pupe_query($query);
     $id = mysql_insert_id($GLOBALS["masterlink"]);
     // tehdään vanhan laskun lisätiedoista 1:1 kopio...
     $query = "SELECT *\n              FROM laskun_lisatiedot\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              AND otunnus = '{$tunnus}'";
     $lisatiedot_result = pupe_query($query);
     $lisatiedot_row = mysql_fetch_assoc($lisatiedot_result);
     $query = "INSERT INTO laskun_lisatiedot SET ";
     for ($i = 0; $i < mysql_num_fields($lisatiedot_result); $i++) {
         $fieldname = mysql_field_name($lisatiedot_result, $i);
         if ($fieldname == 'laatija') {
             $query .= $fieldname . "='{$kukarow['kuka']}',";
         } elseif ($fieldname == 'luontiaika') {
             $query .= $fieldname . "=now(),";
         } elseif ($fieldname == 'otunnus') {
             $query .= $fieldname . "='{$id}',";
         } elseif ($fieldname != 'tunnus') {
             $query .= $fieldname . "='" . $lisatiedot_row[$fieldname] . "',";
         }
     }
     $query = substr($query, 0, -1);
     $lisatiedot_result = pupe_query($query);
     // tehdään vanhan laskun työmääräystidoista 1:1 kopio...
     $query = "SELECT *\n              FROM tyomaarays\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              AND otunnus = '{$tunnus}'";
     $lisatiedot_result = pupe_query($query);
     $lisatiedot_row = mysql_fetch_assoc($lisatiedot_result);
     $query = "INSERT INTO tyomaarays SET ";
     for ($i = 0; $i < mysql_num_fields($lisatiedot_result); $i++) {
         $fieldname = mysql_field_name($lisatiedot_result, $i);
         if ($fieldname == 'laatija') {
             $query .= $fieldname . "='{$kukarow['kuka']}',";
         } elseif ($fieldname == 'luontiaika') {
             $query .= $fieldname . "=now(),";
         } elseif ($fieldname == 'otunnus') {
             $query .= $fieldname . "='{$id}',";
         } elseif ($fieldname != 'tunnus') {
             $query .= $fieldname . "='" . $lisatiedot_row[$fieldname] . "',";
         }
     }
     $query = substr($query, 0, -1);
     $lisatiedot_result = pupe_query($query);
     if ($debug == 1) {
         echo t("Perustin laskun") . " {$laskurow['nimi']} {$id}<br>";
     }
     $query_ale_lisa = generoi_alekentta('M');
     // Lasketaan maksusopimuksen arvo verokannoittain jotta voidaan laskuttaa ennakot oikeissa alveissa
     // ja lisätään ennakkolaskutusrivi laskulle, vain jaksotetut rivit!
     $query = "SELECT\n              sum(if (tilausrivi.jaksotettu=lasku.jaksotettu, tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1) * (tilausrivi.varattu+tilausrivi.jt) * {$query_ale_lisa}, 0)) jaksotettavaa\n              FROM lasku\n              JOIN tilausrivi ON tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus and tilausrivi.tyyppi = 'L' and (tilausrivi.varattu+tilausrivi.jt) > 0 and tilausrivi.jaksotettu=lasku.jaksotettu\n              WHERE lasku.yhtio    = '{$kukarow['yhtio']}'\n              and lasku.jaksotettu = '{$tunnus}'\n              GROUP by lasku.jaksotettu";
     $result = pupe_query($query);
     $sumrow = mysql_fetch_assoc($result);
     if ($yhtiorow['ennakkolaskun_tyyppi'] == 'E') {
         $alet = generoi_alekentta_select('erikseen', 'M');
         $query = "SELECT\n                tilausrivi.tuoteno,\n                tilausrivi.nimitys,\n                tilausrivi.kommentti,\n                tilausrivi.varattu,\n                tilausrivi.tilkpl,\n                {$alet}\n                if (tilausrivi.jaksotettu=lasku.jaksotettu, tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1), 0) summa,\n                if (tilausrivi.alv >= 600 or tilausrivi.alv < 500, tilausrivi.alv, 0) alv\n                FROM lasku\n                JOIN tilausrivi ON (tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus and tilausrivi.tyyppi = 'L' and (tilausrivi.varattu + tilausrivi.jt) > 0 and tilausrivi.jaksotettu = lasku.jaksotettu)\n                WHERE lasku.yhtio    = '{$kukarow['yhtio']}'\n                and lasku.jaksotettu = '{$tunnus}'";
     } else {
         $query = "SELECT\n                sum(if (tilausrivi.jaksotettu=lasku.jaksotettu, tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1) * (tilausrivi.varattu+tilausrivi.jt) * {$query_ale_lisa}, 0)) summa,\n                if (tilausrivi.alv >= 600 or tilausrivi.alv < 500, tilausrivi.alv, 0) alv\n                FROM lasku\n                JOIN tilausrivi ON (tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus and tilausrivi.tyyppi = 'L' and (tilausrivi.varattu + tilausrivi.jt) > 0 and tilausrivi.jaksotettu = lasku.jaksotettu)\n                WHERE lasku.yhtio    = '{$kukarow['yhtio']}'\n                and lasku.jaksotettu = '{$tunnus}'\n                GROUP BY lasku.jaksotettu, alv";
     }
     $sresult = pupe_query($query);
     $tot = 0;
     if ($kielirow["kieli"] == "") {
         $kielirow["kieli"] = "fi";
     }
     if (mysql_num_rows($sresult) == 0) {
         $nimitys = t($posrow["kuvaus"], $kielirow["kieli"]);
         $rivikommentti = t("Ennakkolasku", $kielirow["kieli"]) . " {$lahteva_lasku} " . t("tilaukselle", $kielirow["kieli"]) . " {$tunnus} " . t("Osuus", $kielirow["kieli"]) . " " . round($posrow["osuus"], 2) . "% ";
         if ($posrow["lisatiedot"] != "") {
             $rivikommentti .= "\n " . $posrow["lisatiedot"];
         }
         echo "<font class = 'error'>" . t("VIRHE: Ennakkolaskulla ei ole yhtään jaksotettua tilausriviä!") . " {$tunnus}</font><br>";
         echo "<font class = 'message'>" . t("Käy tekemässä ennakkolasku manuaalisesti. Ennakkolaskulle perustetun laskun tunnus on") . " {$id}</font><br>";
         echo "<font class = 'message'>" . t("Ennakkolaskutuksen tuotenumero on") . " {$yhtiorow['ennakkomaksu_tuotenumero']}</font><br><br>";
         $query = "INSERT into tilausrivi (hinta, netto, varattu, tilkpl, otunnus, tuoteno, nimitys, yhtio, tyyppi, alv, kommentti, laatija, laadittu) values\n                 ('0', 'N', '1', '1', '{$id}', '{$yhtiorow['ennakkomaksu_tuotenumero']}', '{$nimitys}', '{$kukarow['yhtio']}', 'L', '{$laskurow['alv']}', '{$rivikommentti}', '{$kukarow['kuka']}', now())";
         $addtil = pupe_query($query);
     } else {
         while ($row = mysql_fetch_assoc($sresult)) {
             // $summa on verollinen tai veroton riippuen yhtiön myyntihinnoista
             $summa = $row["summa"] / $sumrow["jaksotettavaa"] * $posrow["summa"];
             if (!empty($yhtiorow['ennakkolaskun_tyyppi'])) {
                 $nimitys = $row['tuoteno'] . ' - ' . $row['nimitys'];
                 $rivikommentti = $row['kommentti'];
             } else {
                 $nimitys = t($posrow["kuvaus"], $kielirow["kieli"]);
                 $rivikommentti = t("Ennakkolasku", $kielirow["kieli"]) . " {$lahteva_lasku} " . t("tilaukselle", $kielirow["kieli"]) . " {$tunnus} " . t("Osuus", $kielirow["kieli"]) . " " . round($posrow["osuus"], 2) . "% ";
                 if ($posrow["lisatiedot"] != "") {
                     $rivikommentti .= "\n " . $posrow["lisatiedot"];
                 }
             }
             $varattu = $yhtiorow['ennakkolaskun_tyyppi'] == 'E' ? $row['varattu'] : 1;
             $tilkpl = $yhtiorow['ennakkolaskun_tyyppi'] == 'E' ? $row['tilkpl'] : 1;
             $ale_kentat = "";
             $ale_arvot = "";
             if ($yhtiorow['ennakkolaskun_tyyppi'] == 'E') {
                 for ($i = 1; $i <= $yhtiorow['myynnin_alekentat']; $i++) {
                     $ale_kentat .= ",ale{$i}";
                     $ale_arvot .= ", '" . $row["ale{$i}"] . "'";
                 }
             }
             $summa = round($summa, 6);
             $laitetaanko_netto = $yhtiorow['ennakkolaskun_tyyppi'] == 'E' ? "" : "N";
             $query = "INSERT into tilausrivi (hinta, netto, varattu, tilkpl, otunnus, tuoteno, nimitys, yhtio, tyyppi, alv, kommentti, laatija, laadittu {$ale_kentat}) values\n                   ('{$summa}', '{$laitetaanko_netto}', '{$varattu}', '{$tilkpl}', '{$id}', '{$yhtiorow['ennakkomaksu_tuotenumero']}', '{$nimitys}', '{$kukarow['yhtio']}', 'L', '{$row['alv']}', '{$rivikommentti}', '{$kukarow['kuka']}', now() {$ale_arvot})";
             $addtil = pupe_query($query);
             if ($debug == 1) {
                 echo t("Lisättiin ennakkolaskuun rivi") . " {$summa} {$row['alv']} otunnus {$id}<br>";
             }
             $tot += $summa;
         }
         echo "<font class = 'message'>" . t("Tehtiin ennakkolasku tilaukselle") . " {$tunnus} " . t("tunnus") . ": {$id} " . t("osuus") . ": {$posrow['osuus']}% " . t("summa") . ": {$tot}</font><br>";
     }
     // Päivitetään positiolle tämän laskun tunnus
     $query = "UPDATE maksupositio set uusiotunnus='{$id}' where tunnus='{$posrow['tunnus']}'";
     $result = pupe_query($query);
     // merkataan tässä vaiheessa luotu ennakkomaksu-tilaus toimitetuksi
     $query = "UPDATE tilausrivi\n              SET toimitettu = '{$kukarow['kuka']}', toimitettuaika=now(), kerattyaika=now()\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              and otunnus = '{$id}'";
     $result = pupe_query($query);
     // ja päivitetään luotu ennakkomaksu-tilaus laskutusjonoon
     $query = "UPDATE lasku\n              set tila='L', alatila='D'\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              and tunnus  = '{$id}'";
     $result = pupe_query($query);
     return $id;
 }
Esempio n. 2
0
     $style = "width: 15px; height: 15px; display: inline-table; border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%;";
     echo "&nbsp;&nbsp;&nbsp;<span class='tooltip' id='color_tooltip'><span style='{$style} background-color: #5D2; margin-right: 5px;'></span><span style='{$style} background-color: #FCF300; margin-right: 5px;'></span><span style='{$style} background-color: #E66; margin-right: 5px;'></span></span></a>";
     echo "<div id='div_color_tooltip' class='popup' style='width: 300px; line-height: 15px; height: 60px;'>";
     echo "<table>";
     echo "<tr><td class='back'><span style='{$style} background-color: #5D2;'></span></td><td class='back'><span style='float: right'>", t("kysytty määrä löytyy"), "</span></td></tr>";
     echo "<tr><td class='back'><span style='{$style} background-color: #FCF300;'></span></td><td class='back'><span style='float: right;'>", t("osa kysytystä määrästä löytyy"), "</span></td></tr>";
     echo "<tr><td class='back'><span style='{$style} background-color: #E66'></span></td><td class='back'><span style='float: right;'>", t("kysyttyä määrää ei löydy"), "</span></td></tr>";
     echo "<tr><td class='back'><img src='{$palvelin2}pics/lullacons/alert.png' /></td><td class='back'><span style='float: right;'>", t("kysyttyä tuotetta ei löydy"), "</span></td></tr>";
     echo "</table>";
     echo "</div>";
 }
 // katotaan miten halutaan sortattavan
 $sorttauskentta = generoi_sorttauskentta($yhtiorow["tilauksen_jarjestys"]);
 //"ei_erikoisale" koska rivillä ei haluta vähentää erikoisalea hinnasta, vaan se näytetään erikseen yhteenvedossa
 $query_ale_lisa = generoi_alekentta("O", '', 'ei_erikoisale');
 $ale_query_select_lisa = generoi_alekentta_select('erikseen', 'O');
 //Listataan tilauksessa olevat tuotteet
 $query = "SELECT\n              tilausrivi.nimitys,\n              concat_ws(' ', tilausrivi.hyllyalue,\n                tilausrivi.hyllynro,\n                tilausrivi.hyllyvali,\n                tilausrivi.hyllytaso) paikka,\n              tilausrivi.tuoteno,\n              tuotteen_toimittajat.toim_tuoteno,\n              tuotteen_toimittajat.toim_nimitys,\n              tuotteen_toimittajat.valuutta,\n              tilausrivi.tilkpl tilattu,\n              round(tilausrivi.tilkpl\n                * if (tuotteen_toimittajat.tuotekerroin = 0\n                  OR tuotteen_toimittajat.tuotekerroin is NULL,\n                    1, tuotteen_toimittajat.tuotekerroin),\n                    4) tilattu_ulk,\n              round((tilausrivi.varattu + tilausrivi.jt)\n                * tilausrivi.hinta\n                * if (tuotteen_toimittajat.tuotekerroin = 0\n                  OR tuotteen_toimittajat.tuotekerroin IS NULL,\n                    1,\n                    tuotteen_toimittajat.tuotekerroin)\n                * {$query_ale_lisa}, '{$yhtiorow['hintapyoristys']}') rivihinta,\n              tilausrivi.alv,\n              tilausrivi.toimaika,\n              tilausrivi.kerayspvm,\n              tilausrivi.uusiotunnus,\n              tilausrivi.tunnus,\n              tilausrivi.perheid,\n              tilausrivi.perheid2,\n              tilausrivi.hinta,\n              {$ale_query_select_lisa}\n              tilausrivi.varattu varattukpl,\n              tilausrivi.kommentti,\n              {$sorttauskentta},\n              tilausrivi.var,\n              tilausrivi.var2,\n              tilausrivi.jaksotettu,\n              tilausrivi.yksikko,\n              tuotteen_toimittajat.toim_yksikko,\n              tuote.tuotemassa,\n              tuote.kehahin keskihinta,\n              tuote.sarjanumeroseuranta,\n              tuotteen_toimittajat.ostohinta,\n              if(tuotteen_toimittajat.osto_era = 0, 1, tuotteen_toimittajat.osto_era) AS osto_era,\n              tuotteen_toimittajat.valuutta,\n              tuotteen_toimittajat.tunnus as tt_tunnus,\n              tilausrivi.erikoisale,\n              tilausrivi.ale1,\n              tilausrivi.ale2,\n              tilausrivi.ale3,\n              tilausrivin_lisatiedot.tilausrivitunnus,\n              tilausrivin_lisatiedot.tilausrivilinkki,\n              tilausrivi.vahvistettu_maara,\n              tilausrivi.vahvistettu_kommentti,\n              tilausrivi.hinta_alkuperainen\n              FROM tilausrivi\n              LEFT JOIN tuote ON tilausrivi.yhtio = tuote.yhtio\n                AND tilausrivi.tuoteno                      = tuote.tuoteno\n              LEFT JOIN tuotteen_toimittajat ON tuote.yhtio = tuotteen_toimittajat.yhtio\n                AND tuote.tuoteno                           = tuotteen_toimittajat.tuoteno\n                AND tuotteen_toimittajat.liitostunnus       = '{$laskurow['liitostunnus']}'\n              LEFT JOIN tilausrivin_lisatiedot ON (tilausrivin_lisatiedot.yhtio = tilausrivi.yhtio\n                AND tilausrivin_lisatiedot.tilausrivilinkki > 0\n                AND tilausrivin_lisatiedot.tilausrivilinkki = tilausrivi.tunnus)\n              WHERE tilausrivi.otunnus                      = '{$kukarow['kesken']}'\n              and tilausrivi.yhtio                          = '{$kukarow['yhtio']}'\n              and tilausrivi.tyyppi                         = 'O'\n              ORDER BY sorttauskentta {$yhtiorow['tilauksen_jarjestys_suunta']}, tilausrivi.tunnus";
 $presult = pupe_query($query);
 $rivienmaara = mysql_num_rows($presult);
 if ($rivienmaara > 0) {
     echo "<table><tr>";
     echo "<th>#</th>";
     echo "<th align='left'>" . t("Nimitys") . "</th>";
     echo "<th align='left'>" . t("Paikka") . "</th>";
     echo "<th align='left'>" . t("Tuote") . "</th>";
     echo "<th align='left'>" . t("Toim Tuote") . "</th>";
     echo "<th align='left'>" . t("Määrä") . "<br>" . t("Määrä/Ulk") . "</th>";
     echo "<th align='left'>" . t("Hinta") . "</th>";
     for ($alepostfix = 1; $alepostfix <= $yhtiorow['oston_alekentat']; $alepostfix++) {
         echo "<th align='left'>" . t("Ale") . "{$alepostfix}</th>";
Esempio n. 3
0
             $epakurpantti = "(" . t("Puoliepäkurantti") . ")";
         } elseif ($tuote['epakurantti25pvm'] != '0000-00-00') {
             $tuote['kehahin'] = round($tuote['kehahin'] * 0.75, 6);
             $epakurpantti = "(" . t("25% Epäkurantti") . ")";
         }
     }
     if ($kukarow["yhtio"] == "srs") {
         echo "<tr><th>" . t("Hinta 25% katteella") . "</th><td align='right'>" . hintapyoristys($tuote['kehahin'] / 0.75) . " {$yhtiorow['valkoodi']}</td></tr>";
     }
     echo "<tr><th>" . t("Keskihankintahinta") . " {$epakurpantti}</th><td align='right'>" . hintapyoristys($tuote['kehahin']) . " {$yhtiorow['valkoodi']}</td></tr>";
     if ($tuote["myyntihinta_maara"] != 0) {
         echo "<tr><th>" . t("Keskihankintahinta") . " {$epakurpantti} {$tuote['myyntihinta_maara']} {$tuote['yksikko']}</th>";
         echo "<td align='right'>" . hintapyoristys($tuote['kehahin'] * $tuote["myyntihinta_maara"]) . " {$yhtiorow['valkoodi']}</td></tr>";
     }
 }
 $query_ale_select_lisa = generoi_alekentta_select('erikseen', 'M');
 $cur_date = date('Y-m-d');
 $date_2yo = date("Y-m-d", mktime(0, 0, 0, date("n"), date("j"), date("Y") - 2));
 // Jos kahden vuoden aikarajaus ylittyy, breikataan looppi
 while ($cur_date >= $date_2yo) {
     $pre_date = $cur_date;
     $cur_date = explode('-', $cur_date);
     $cur_date = date("Y-m-d", mktime(0, 0, 0, $cur_date[1] - 1, $cur_date[2], $cur_date[0]));
     //haetaan viimeisin hinta millä asiakas on tuotetta ostanut
     $query = "SELECT tilausrivi.hinta,\n                    tilausrivi.otunnus,\n                    tilausrivi.laskutettuaika,\n                    {$query_ale_select_lisa}\n                    lasku.tunnus,\n                    lasku_ux.tunnus AS ux_tunnus,\n                    lasku_ux.laskunro AS ux_laskunro\n                    FROM tilausrivi USE INDEX (yhtio_tyyppi_tuoteno_laskutettuaika)\n                    JOIN lasku USE INDEX (PRIMARY) ON (\n                      lasku.yhtio                  = tilausrivi.yhtio AND\n                      lasku.tunnus                 = tilausrivi.otunnus AND\n                      lasku.liitostunnus           = '{$laskurow['liitostunnus']}' AND\n                      lasku.tila                   = 'L' AND\n                      lasku.alatila                = 'X'\n                    )\n                    JOIN lasku AS lasku_ux ON (\n                      lasku_ux.yhtio               = lasku.yhtio AND\n                      lasku_ux.tunnus              = tilausrivi.uusiotunnus\n                    )\n                    WHERE tilausrivi.yhtio         = '{$kukarow['yhtio']}'\n                    AND tilausrivi.tyyppi          = 'L'\n                    AND tilausrivi.tuoteno         = '{$tuote['tuoteno']}'\n                    AND tilausrivi.laskutettuaika  <= '{$pre_date}'\n                    AND tilausrivi.laskutettuaika  >= '{$cur_date}'\n                    AND tilausrivi.kpl            != 0\n                    ORDER BY tilausrivi.tunnus DESC\n                    LIMIT 1";
     $viimhintares = pupe_query($query);
     if (mysql_num_rows($viimhintares) != 0) {
         $viimhinta = mysql_fetch_assoc($viimhintares);
         echo "<tr>";
         echo "<th>", t("Viimeisin hinta"), "</th>";
         echo "<td align='right'>";
     $query_ale_lisa = generoi_alekentta('O');
     $ale_query_select_lisa = generoi_alekentta_select('erikseen', 'O');
     $query = "SELECT\n              tilausrivi.tunnus,\n              lasku.tunnus tilaus,\n               lasku.ytunnus,\n              lasku.nimi,\n              lasku.postitp,\n              tilausrivi.tuoteno,\n              round((tilausrivi.varattu+tilausrivi.kpl),4) määrä,\n              round((tilausrivi.varattu+tilausrivi.kpl)*if(tuotteen_toimittajat.tuotekerroin=0 or tuotteen_toimittajat.tuotekerroin is null,1,tuotteen_toimittajat.tuotekerroin),4) ulkmäärä,\n              round(tilausrivi.hinta*if(lasku.vienti_kurssi=0, 1, lasku.vienti_kurssi), '{$yhtiorow['hintapyoristys']}') hinta,\n              {$ale_query_select_lisa}\n              round((tilausrivi.varattu+tilausrivi.kpl)*tilausrivi.hinta*if(lasku.vienti_kurssi=0, 1, lasku.vienti_kurssi)*if(tuotteen_toimittajat.tuotekerroin=0 or tuotteen_toimittajat.tuotekerroin is null,1,tuotteen_toimittajat.tuotekerroin)*{$query_ale_lisa},'{$yhtiorow['hintapyoristys']}') rivihinta,\n              lasku.toimaika,\n              tilausrivi.laskutettuaika tuloutettu,\n              lasku.tila, lasku.alatila\n              FROM tilausrivi\n              JOIN lasku ON lasku.yhtio=tilausrivi.yhtio and lasku.tunnus=tilausrivi.otunnus\n              JOIN tuotteen_toimittajat ON tuotteen_toimittajat.yhtio=tilausrivi.yhtio and tuotteen_toimittajat.tuoteno=tilausrivi.tuoteno and tuotteen_toimittajat.liitostunnus=lasku.liitostunnus\n              WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n              and lasku.tila         IN ('O','K')\n              and tilausrivi.tyyppi  = 'O'\n              and tilausrivi.{$pvmtapa} >='{$vva}-{$kka}-{$ppa} 00:00:00'\n              and tilausrivi.{$pvmtapa} <='{$vvl}-{$kkl}-{$ppl} 23:59:59'";
 } else {
     $query_ale_lisa = generoi_alekentta('M');
     if ((int) $asiakasid > 0) {
         $asiakaslisa = "";
     } else {
         $asiakaslisa = "ytunnus, if(nimi!=toim_nimi and toim_nimi!='', concat(nimi,'<br>(',toim_nimi,')'), nimi) nimi, if(postitp!=toim_postitp and toim_postitp!='', concat(postitp,'<br>(',toim_postitp,')'), postitp) postitp, ";
     }
     if ($kukarow['extranet'] == '' and ($kukarow["naytetaan_katteet_tilauksella"] == "Y" or $kukarow["naytetaan_katteet_tilauksella"] == "" and $yhtiorow["naytetaan_katteet_tilauksella"] == "Y")) {
         $katelisa = " tilausrivi.kate, ";
     } else {
         $katelisa = "";
     }
     $ale_query_select_lisa = generoi_alekentta_select("erikseen", "M");
     $query = "SELECT distinct\n              tilausrivi.tunnus,\n              tilausrivi.otunnus tilaus,\n              lasku.laskunro,\n              {$asiakaslisa}\n              tilausrivi.tuoteno,\n              tilausrivi.nimitys,\n              (tilausrivi.kpl+tilausrivi.varattu) määrä,\n              tilausrivi.hinta,\n              {$ale_query_select_lisa}\n              if (tilausrivi.kpl!=0, tilausrivi.rivihinta, tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1) * (tilausrivi.varattu+tilausrivi.jt) * {$query_ale_lisa}) rivihinta,\n              tilausrivi.kate,\n              lasku.toimaika,\n              lasku.lahetepvm Käsittelyyn,\n              lasku.tila,\n              lasku.alatila,\n              lasku.tapvm,\n              tilausrivi.tyyppi,\n              tuote.kehahin,\n              tuote.sarjanumeroseuranta,\n              tilausrivi.var\n              FROM tilausrivi\n              JOIN lasku ON tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus\n              JOIN tuote ON (tuote.yhtio=tilausrivi.yhtio and tilausrivi.tuoteno=tuote.tuoteno)\n              WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n              and lasku.yhtio=tilausrivi.yhtio\n              and lasku.tunnus=tilausrivi.otunnus\n              and lasku.tila         in ('L','N','U')\n              and tilausrivi.tyyppi  = 'L'\n              and tilausrivi.{$pvmtapa} >='{$vva}-{$kka}-{$ppa} 00:00:00'\n              and tilausrivi.{$pvmtapa} <='{$vvl}-{$kkl}-{$ppl} 23:59:59'\n              and lasku.tunnus=tilausrivi.otunnus ";
 }
 if ($tuoteno != '') {
     $query .= " and tilausrivi.tuoteno='{$tuoteno}' ";
 }
 if ((int) $asiakasid > 0) {
     $query .= " and lasku.liitostunnus = '{$asiakasid}' ";
 }
 if ((int) $toimittajaid > 0) {
     $query .= " and lasku.liitostunnus = '{$toimittajaid}' ";
 }
 $query .= "{$jarj}";
 $result = pupe_query($query);
 if ($toim == 'OSTO') {
     $miinus = 2;
function get_vahvistamattomat_rivit($tilaus_otunnukset, $toimittajaid, $laskurow, $kieli)
{
    global $yhtiorow, $kukarow;
    $query_ale_lisa = generoi_alekentta('O');
    $ale_query_select_lisa = generoi_alekentta_select('erikseen', 'O');
    $query = "SELECT tilausrivi.otunnus, tilausrivi.tuoteno, tilausrivi.yksikko, tuotteen_toimittajat.toim_tuoteno, tilausrivi.nimitys,\n            tilkpl,\n            round(tilkpl*if(tuotteen_toimittajat.tuotekerroin=0 or tuotteen_toimittajat.tuotekerroin is null,1,tuotteen_toimittajat.tuotekerroin),4) ulkkpl,\n            hinta, {$ale_query_select_lisa} round((varattu+jt)*hinta*if(tuotteen_toimittajat.tuotekerroin=0 or tuotteen_toimittajat.tuotekerroin is null,1,tuotteen_toimittajat.tuotekerroin)*{$query_ale_lisa},'{$yhtiorow['hintapyoristys']}') rivihinta,\n            toimaika, tilausrivi.jaksotettu as vahvistettu, tilausrivi.tunnus,\n            toim_tuoteno\n            FROM tilausrivi\n            LEFT JOIN tuote ON tuote.yhtio=tilausrivi.yhtio and tuote.tuoteno=tilausrivi.tuoteno\n            LEFT JOIN tuotteen_toimittajat ON tuotteen_toimittajat.yhtio=tilausrivi.yhtio and tuotteen_toimittajat.tuoteno=tilausrivi.tuoteno and tuotteen_toimittajat.liitostunnus='{$toimittajaid}'\n            WHERE otunnus             in ({$tilaus_otunnukset})\n            and tilausrivi.yhtio='{$kukarow['yhtio']}'\n            and tilausrivi.uusiotunnus=0\n            and tilausrivi.tyyppi='O'\n            and tilausrivi.jaksotettu = 0\n            ORDER BY tilausrivi.otunnus";
    $result = pupe_query($query);
    $rivit = array();
    $total = 0;
    while ($row = mysql_fetch_assoc($result)) {
        //  Tarkastetaan olisiko toimittajalla yksikkö!
        $query = "SELECT toim_yksikko\n              FROM tuotteen_toimittajat\n              WHERE yhtio      = '{$kukarow['yhtio']}'\n              and tuoteno      = '{$row['tuoteno']}'\n              and liitostunnus = '{$laskurow['liitostunnus']}'\n              LIMIT 1";
        $rarres = pupe_query($query);
        $rarrow = mysql_fetch_assoc($rarres);
        if ($row["yksikko"] == "") {
            $row["yksikko"] = $rarrow["toim_yksikko"];
        }
        if ($rarrow["toim_yksikko"] == "") {
            $rarrow["toim_yksikko"] = $row["yksikko"];
        }
        $omyks = t_avainsana("Y", $kieli, "and avainsana.selite='{$row['yksikko']}'", "", "", "selite");
        $toyks = t_avainsana("Y", $kieli, "and avainsana.selite='{$rarrow['toim_yksikko']}'", "", "", "selite");
        $row['omyks'] = $omyks;
        $row['toyks'] = $toyks;
        $rivit[] = $row;
        $total += $row['rivihinta'];
    }
    $rivit['total_rivihinta'] = $total;
    return $rivit;
}