Exemplo n.º 1
0
 function piirra_tuntiraportti($asentaja = "", $kukarow, $yhtiorow, $vva, $kka, $ppa, $vvl, $kkl, $ppl, $tyom_nro = '', $asiakasid = '', $asiakasosasto = '', $asiakasryhma = '', $tyojono = '', $tyostatus = '', $ytunnus = '')
 {
     if (trim($asentaja) != "") {
         $asentaja = mysql_real_escape_string($asentaja);
         $asenlisa = " and kuka.kuka = '{$asentaja}' ";
         $keiklisa = " and matkalasku.toim_ovttunnus = '{$asentaja}' ";
     } else {
         $asenlisa = "";
         $keiklisa = "";
     }
     if (trim($tyom_nro) != '') {
         $lisa .= " and lasku.tunnus = '" . (int) $tyom_nro . "' ";
     }
     if (trim($asiakasid) != '') {
         $lisa .= " and lasku.liitostunnus = '" . (int) $asiakasid . "' ";
     }
     $asiakaslisa = "";
     if (trim($asiakasosasto) != '') {
         $asiakaslisa .= " and asiakas.osasto = '" . mysql_real_escape_string($asiakasosasto) . "' ";
     }
     if (trim($asiakasryhma) != '') {
         $asiakaslisa .= " and asiakas.ryhma = '" . mysql_real_escape_string($asiakasryhma) . "' ";
     }
     if (trim($ytunnus) != '') {
         $asiakaslisa .= " and asiakas.ytunnus = '" . mysql_real_escape_string($ytunnus) . "' ";
     }
     $tyomaarayslisa = '';
     if (trim($tyojono) != '') {
         $tyomaarayslisa .= " and tyomaarays.tyojono = '" . mysql_real_escape_string($tyojono) . "' ";
     }
     if (trim($tyostatus) != '') {
         $tyomaarayslisa .= " and tyomaarays.tyostatus = '" . mysql_real_escape_string($tyostatus) . "' ";
     }
     if (trim($tyom_nro) == '' and trim($vva) != '' and trim($kka) != '' and trim($ppa) != '' and trim($vvl) != '' and trim($kkl) != '' and trim($ppl) != '') {
         $vva = (int) $vva;
         $kka = (int) $kka;
         $ppa = (int) $ppa;
         $vvl = (int) $vvl;
         $kkl = (int) $kkl;
         $ppl = (int) $ppl;
         $lisa = " and lasku.luontiaika >= '{$vva}-{$kka}-{$ppa} 00:00:00' and lasku.luontiaika <= '{$vvl}-{$kkl}-{$ppl} 23:59:59' ";
     }
     $query = "SELECT\n              lasku.tunnus, lasku.nimi, lasku.nimitark, lasku.ytunnus, lasku.luontiaika,\n              (SELECT selitetark FROM avainsana WHERE avainsana.yhtio = lasku.yhtio AND avainsana.selite = tyomaarays.tyostatus AND avainsana.laji = 'TYOM_TYOSTATUS') tyostatus,\n              lasku.erikoisale, lasku.valkoodi,\n              group_concat(DISTINCT concat(left(kalenteri.pvmalku,16), '##', left(kalenteri.pvmloppu,16), '##', kuka.nimi, '##', kuka.kuka) ORDER BY kalenteri.pvmalku) asennuskalenteri\n              FROM lasku\n              JOIN yhtio ON (lasku.yhtio = yhtio.yhtio)\n              JOIN tyomaarays ON (tyomaarays.yhtio = lasku.yhtio and tyomaarays.otunnus = lasku.tunnus {$tyomaarayslisa})\n              JOIN asiakas ON (asiakas.yhtio = lasku.yhtio AND asiakas.tunnus = lasku.liitostunnus {$asiakaslisa})\n              LEFT JOIN kalenteri ON (kalenteri.yhtio = lasku.yhtio and kalenteri.tyyppi = 'asennuskalenteri' and kalenteri.liitostunnus = lasku.tunnus)\n              LEFT JOIN kuka ON (kuka.yhtio = kalenteri.yhtio and kuka.kuka = kalenteri.kuka {$asenlisa})\n              WHERE lasku.yhtio      = '{$kukarow['yhtio']}'\n              and lasku.tila         IN ('A','L','N','S','C')\n              and lasku.tilaustyyppi = 'A'\n              {$lisa}\n              GROUP BY 1,2,3,4,5,6,7,8\n              ORDER BY lasku.tunnus";
     $sresult = pupe_query($query);
     if (mysql_num_rows($sresult) > 0) {
         $echootsikot = "<tr><th>" . t("Työmääräys") . ":<br>" . t("Nimi") . ":<br>" . t("Ytunnus") . ":</th><th>" . t("Työnjohdon työtunnit") . ":</th><th>" . t("Asentajien työtunnit") . "</th><th>" . t("Työstatus") . ":</th><th>" . t("Matkalaskut") . ":</th></tr>";
         $kaletunnit = array();
         $asekaletunnit = array();
         $rivihinnat = array();
         $kplyht = '';
         $i = 0;
         $query_ale_lisa = generoi_alekentta('M');
         while ($row = mysql_fetch_array($sresult)) {
             $query = "SELECT DISTINCT matkalasku.nimi, tilausrivi.tunnus, tilausrivi.tuoteno, tilausrivi.yksikko, tilausrivi.nimitys, tilausrivi.hinta, tilausrivi.kpl, tilausrivi.kommentti, tilausrivi.rivihinta\n                   FROM lasku keikka\n                   JOIN lasku liitosotsikko ON (keikka.yhtio = liitosotsikko.yhtio and keikka.laskunro = liitosotsikko.laskunro and keikka.tila = liitosotsikko.tila and liitosotsikko.alatila = '' and liitosotsikko.vanhatunnus != 0)\n                   JOIN lasku matkalasku ON (matkalasku.yhtio = liitosotsikko.yhtio and matkalasku.tunnus = liitosotsikko.vanhatunnus and matkalasku.tilaustyyppi = 'M')\n                   JOIN tilausrivi ON (tilausrivi.yhtio = matkalasku.yhtio and tilausrivi.otunnus = matkalasku.tunnus)\n                   WHERE keikka.yhtio       = '{$kukarow['yhtio']}'\n                   and keikka.tila          = 'K'\n                   and keikka.alatila       = 'T'\n                   and keikka.liitostunnus  = '{$row['tunnus']}'\n                   and keikka.ytunnus       = '{$row['tunnus']}'\n                   and tilausrivi.kpl       > 0\n                   and tilausrivi.tyyppi   != 'D'\n                   {$keiklisa}";
             $keikkares = pupe_query($query);
             if ($asentaja == "" or mysql_num_rows($keikkares) > 0 or $row["asennuskalenteri"] != "") {
                 echo "{$echootsikot}";
                 if ($asentaja == "") {
                     $echootsikot = "";
                 }
                 echo "<tr>\n              <td valign='top'>{$row['tunnus']}<br/>{$row['nimi']}";
                 if (trim($row['nimitark']) != '') {
                     echo "<br/>{$row['nimitark']}";
                 }
                 if (trim($row['ytunnus']) != '') {
                     echo "<br/>{$row['ytunnus']}";
                 }
                 echo "</td>\n              <td valign='top' style='padding: 0px;' align='right'>";
                 if ($row["asennuskalenteri"] != "") {
                     echo "<table width='100%'>";
                     foreach (explode(",", $row["asennuskalenteri"]) as $asekale) {
                         list($alku, $loppu, $nimi, $kuka) = explode("##", $asekale);
                         $atstamp = mktime(substr($alku, 11, 2), substr($alku, 14, 2), 0, substr($alku, 5, 2), substr($alku, 8, 2), substr($alku, 0, 4));
                         $ltstamp = mktime(substr($loppu, 11, 2), substr($loppu, 14, 2), 0, substr($loppu, 5, 2), substr($loppu, 8, 2), substr($loppu, 0, 4));
                         if (!isset($kaletunnit[$nimi])) {
                             $kaletunnit[$nimi] = 0;
                         }
                         $kaletunnit[$nimi] += ($ltstamp - $atstamp) / 60;
                         echo "<tr><td>{$nimi}:</td><td align='right'>" . tv1dateconv($alku, "P") . " - " . tv1dateconv($loppu, "P") . "</td></tr>";
                     }
                     echo "</table>";
                 }
                 $query = "SELECT GROUP_CONCAT(tilausrivi.yksikko,'#',if(tuote.tuotetyyppi = 'K', tilausrivi.varattu, 0)) yksikko,\n                    sum(if(tuote.tuotetyyppi = '', round(tilausrivi.hinta * (tilausrivi.varattu+tilausrivi.jt+tilausrivi.kpl) * {$query_ale_lisa},2), 0)) rivihinta_tuote,\n                    sum(if(tuote.tuotetyyppi = 'K', round(tilausrivi.hinta * (tilausrivi.varattu+tilausrivi.jt+tilausrivi.kpl) * {$query_ale_lisa},2), 0)) rivihinta_tyo\n                    FROM tilausrivi\n                    JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio AND tuote.tuoteno = tilausrivi.tuoteno)\n                    WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n                    AND tilausrivi.otunnus = '{$row['tunnus']}'";
                 $rivihinta_res = pupe_query($query);
                 $rivihinta_row = mysql_fetch_assoc($rivihinta_res);
                 if (!isset($rivihinnat['Tuotteet'][$row['valkoodi']])) {
                     $rivihinnat['Tuotteet'][$row['valkoodi']] = 0;
                 }
                 if (!isset($rivihinnat['Työt'][$row['valkoodi']])) {
                     $rivihinnat['Työt'][$row['valkoodi']] = 0;
                 }
                 $rivihinnat['Tuotteet'][$row['valkoodi']] += $rivihinta_row['rivihinta_tuote'];
                 $rivihinnat['Työt'][$row['valkoodi']] += $rivihinta_row['rivihinta_tyo'];
                 if ($rivihinta_row['yksikko'] != '') {
                     $kplyht = $rivihinta_row['yksikko'];
                 }
                 echo "</td>";
                 echo "<td valign='top' style='padding: 0px'>";
                 if ($row["tunnus"] != "") {
                     $query = "SELECT concat(left(kalenteri2.pvmalku,16), '##', left(kalenteri2.pvmloppu,16), '##', kuka.nimi, '##', kuka.kuka) kalenteri\n                      FROM kalenteri kalenteri2\n                      LEFT JOIN kuka ON (kuka.yhtio = kalenteri2.yhtio and kuka.kuka = kalenteri2.kuka {$asenlisa})\n                      WHERE kalenteri2.yhtio  = '{$kukarow['yhtio']}'\n                      AND kalenteri2.tyyppi   = 'kalenteri'\n                      AND kalenteri2.kentta02 = '{$row['tunnus']}'";
                     $kalenteri_res = pupe_query($query);
                     while ($kalenteri_row = mysql_fetch_assoc($kalenteri_res)) {
                         echo "<table width='100%'>";
                         foreach (explode(",", $kalenteri_row["kalenteri"]) as $asekale) {
                             list($alku, $loppu, $nimi, $kuka) = explode("##", $asekale);
                             $atstamp = mktime(substr($alku, 11, 2), substr($alku, 14, 2), 0, substr($alku, 5, 2), substr($alku, 8, 2), substr($alku, 0, 4));
                             $ltstamp = mktime(substr($loppu, 11, 2), substr($loppu, 14, 2), 0, substr($loppu, 5, 2), substr($loppu, 8, 2), substr($loppu, 0, 4));
                             if (!isset($asekaletunnit[$nimi])) {
                                 $asekaletunnit[$nimi] = 0;
                             }
                             $asekaletunnit[$nimi] += ($ltstamp - $atstamp) / 60;
                             echo "<tr><td>{$nimi}:</td><td align='right'>" . tv1dateconv($alku, "P") . " - " . tv1dateconv($loppu, "P") . "</td></tr>";
                         }
                         echo "</table>";
                     }
                 }
                 echo "</td>";
                 echo "<td valign='top' style='padding: 0px'>{$row['tyostatus']}</td>";
                 echo "<td valign='top' style='padding: 0px;'>";
                 if (mysql_num_rows($keikkares) > 0) {
                     echo "<table width='100%'>";
                     while ($keikkarow = mysql_fetch_array($keikkares)) {
                         echo "<tr><td>{$keikkarow['nimi']}:</td><td>{$keikkarow['nimitys']}</td><td align='right'>" . (double) $keikkarow["kpl"] . "</td><td align='right'>" . sprintf("%.2f", $keikkarow["hinta"]) . " {$yhtiorow['valkoodi']}</td></tr>";
                         $matkakulut[$keikkarow["nimi"]][$keikkarow["nimitys"]] += $keikkarow["rivihinta"];
                     }
                     echo "</table>";
                 }
                 echo "</td>";
                 echo "</tr>";
             }
             $i++;
         }
         if (isset($rivihinnat) and count($rivihinnat) > 0) {
             echo "<tr><td class='spec' valign='top'>" . t("Tuotteet ja työt yhteensä") . ":</td>";
             echo "<td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             $hinnatyht = array();
             foreach ($rivihinnat as $tuotetyyppi => $hinta) {
                 foreach ($hinta as $valuutta => $rivihinta) {
                     if ($rivihinta == 0) {
                         continue;
                     }
                     echo "<tr><td class='spec' align='left'>", t("{$tuotetyyppi}") . ":";
                     if ($tuotetyyppi == 'Työt') {
                         echo "<br/>";
                         $yksgroup = array();
                         foreach (explode(',', $kplyht) as $yksikko_kpl) {
                             list($yksikko, $kpl) = explode('#', $yksikko_kpl);
                             if ($yksikko != '' and $kpl != 0) {
                                 $yksgroup[$yksikko] += $kpl;
                             }
                         }
                         $i = 0;
                         foreach ($yksgroup as $yksikko => $kpl) {
                             if ($i != 0) {
                                 echo "<br/>";
                             }
                             echo "{$kpl} " . t_avainsana("Y", "", " and avainsana.selite='{$yksikko}'", "", "", "selite");
                             $i++;
                         }
                     }
                     echo "</td><td class='spec' align='right'>{$rivihinta} {$valuutta}</td></tr>";
                     if (!isset($hinnatyht[$valuutta])) {
                         $hinnatyht[$valuutta] = 0;
                     }
                     $hinnatyht[$valuutta] += $rivihinta;
                 }
             }
             echo "<tr><td class='spec'>", t("Yhteensä"), ":</td>";
             foreach ($hinnatyht as $val => $hinta) {
                 echo "<td class='spec' align='right'>{$hinta} {$valuutta}</td>";
             }
             echo "</tr></table></td>";
             echo "<td class='spec'>&nbsp;</td><td class='spec'>&nbsp;</td><td class='spec'>&nbsp;</td></tr>";
         }
         if (isset($kaletunnit) and count($kaletunnit) > 0 or isset($matkakulut) and count($matkakulut) > 0 or isset($asekaletunnit) and count($asekaletunnit) > 0) {
             echo "<tr><td class='spec' valign='top'>" . t("Tunnit yhteensä") . ":</td>";
             echo "<td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             if (count($kaletunnit) > 0) {
                 foreach ($kaletunnit as $kuka => $minuutit) {
                     $tunti = floor($minuutit / 60);
                     $minuutti = sprintf('%02d', $minuutit - $tunti * 60);
                     echo "<tr><td class='spec'>{$kuka}:</td><td class='spec' align='right'>{$tunti}:{$minuutti} " . t("tuntia") . "</td></tr>";
                 }
             }
             echo "</table></td>";
             echo "<td class='spec' style='padding: 0px' valign='top'><table width='100%'>";
             if (count($asekaletunnit) > 0) {
                 foreach ($asekaletunnit as $kuka => $minuutit) {
                     $tunti = floor($minuutit / 60);
                     $minuutti = sprintf('%02d', $minuutit - $tunti * 60);
                     echo "<tr><td class='spec'>{$kuka}:</td><td class='spec' align='right'>{$tunti}:{$minuutti} " . t("tuntia") . "</td></tr>";
                 }
             }
             echo "</table></td>";
             echo "<td class='spec'>&nbsp;</td><td class='spec' style='padding: 0px;' valign='top'><table width='100%'>";
             if (isset($matkakulut) and count($matkakulut) > 0) {
                 foreach ($matkakulut as $kuka => $matkat) {
                     foreach ($matkat as $tuoteno => $hinta) {
                         echo "<tr><td class='spec'>{$kuka}:</td><td class='spec'>{$tuoteno}</td><td class='spec'>&nbsp;</td><td class='spec' align='right'>" . sprintf("%.2f", $hinta) . " {$yhtiorow['valkoodi']}</td></tr>";
                     }
                 }
             }
             echo "</table></td>";
             echo "</tr>";
             echo "<tr><td class='back'><br></td></tr>";
         }
     }
 }
Exemplo n.º 2
0
     // tuote löytyi, joten haetaan sen id...
     $row = mysql_fetch_assoc($vastaresult);
     $id = $row['id'];
     $query = "SELECT * FROM vastaavat WHERE id='{$id}' AND tuoteno<>'{$tuoteno}' AND yhtio='{$kukarow['yhtio']}' ORDER BY jarjestys, tuoteno";
     $vasta2result = pupe_query($query);
     while ($row = mysql_fetch_assoc($vasta2result)) {
         list($saldo, $hyllyssa, ) = saldo_myytavissa($row["tuoteno"], '', '', '', '', '', '', '', '', $saldoaikalisa);
         echo "<tr>";
         echo "<td><a href='{$PHP_SELF}?toim={$toim}&tee=Z&tuoteno=" . urlencode($row["tuoteno"]) . "&lopetus={$lopetus}'>{$row['tuoteno']}</a></td>";
         echo "<td align='right'>" . sprintf("%.2f", $saldo) . "</td>";
         echo "</tr>";
     }
     echo "</table>";
 }
 echo "</td></tr></table><br>";
 $ale_query_lisa = generoi_alekentta('M');
 $tyyppilisa = $toim == "EDUSTAJA" ? "  and tilausrivi.tyyppi in ('L','E','O','G','V','W','M') " : " and tilausrivi.tyyppi = 'G' ";
 // Tilausrivit tälle tuotteelle
 $query = "SELECT if (asiakas.ryhma != '', concat(lasku.nimi,' (',asiakas.ryhma,')'), lasku.nimi) nimi, lasku.tunnus, (tilausrivi.varattu+tilausrivi.jt) kpl,\n              if (tilausrivi.tyyppi!='O' and tilausrivi.tyyppi!='W', tilausrivi.kerayspvm, tilausrivi.toimaika) pvm, tilausrivi.laadittu,\n              varastopaikat.nimitys varasto, tilausrivi.tyyppi, lasku.laskunro, lasku.tila laskutila, lasku.tilaustyyppi, tilausrivi.var, lasku2.laskunro as keikkanro, tilausrivi.jaksotettu, tilausrivin_lisatiedot.osto_vai_hyvitys\n              FROM tilausrivi use index (yhtio_tyyppi_tuoteno_laskutettuaika)\n              LEFT JOIN tilausrivin_lisatiedot ON (tilausrivin_lisatiedot.yhtio=tilausrivi.yhtio and tilausrivin_lisatiedot.tilausrivitunnus=tilausrivi.tunnus)\n              JOIN lasku use index (PRIMARY) ON lasku.yhtio = tilausrivi.yhtio and lasku.tunnus = tilausrivi.otunnus\n              LEFT JOIN varastopaikat ON varastopaikat.yhtio = lasku.yhtio and varastopaikat.tunnus = lasku.varasto\n              LEFT JOIN lasku as lasku2 ON lasku2.yhtio = tilausrivi.yhtio and lasku2.tunnus = tilausrivi.uusiotunnus\n              LEFT JOIN asiakas ON asiakas.yhtio = lasku.yhtio and asiakas.tunnus = lasku.liitostunnus\n              WHERE tilausrivi.yhtio         = '{$kukarow['yhtio']}'\n              {$tyyppilisa}\n              and tilausrivi.tuoteno         = '{$tuoteno}'\n              and tilausrivi.laskutettuaika  = '0000-00-00'\n              and tilausrivi.varattu + tilausrivi.jt != 0\n              and tilausrivi.var            != 'P'\n              ORDER BY pvm, tunnus";
 $jtresult = pupe_query($query);
 if (mysql_num_rows($jtresult) != 0) {
     // Varastosaldot ja paikat
     echo "<font class='message'>" . t("Tuotteen tilaukset") . "</font><hr>";
     $myyta = $kokonaismyytavissa;
     // Avoimet rivit
     echo "<table>";
     echo "<tr>\n          <th>" . t("Asiakas/Toimittaja") . "</th>\n          <th>" . t("Tilaus/Saapuminen") . "</th>\n          <th>" . t("Tyyppi") . "</th>\n          <th>" . t("Luontiaika") . "</th>\n          <th>" . t("Toim.aika") . "</th>\n          <th>" . t("Määrä") . "</th>\n          <th>" . t("Myytävissä") . "</th>\n          </tr>";
     $yhteensa = array();
     $ekotettiin = 0;
     while ($jtrow = mysql_fetch_assoc($jtresult)) {
         $tyyppi = "";
Exemplo n.º 3
0
 if ($sahkoinen_tilausliitanta and ($yhtiorow['vastaavat_tuotteet_esitysmuoto'] == 'S' or $yhtiorow['vastaavat_tuotteet_esitysmuoto'] == 'A')) {
     $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++) {
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 $ppa = sprintf('%02d', (int) $ppa);
 $kka = sprintf('%02d', (int) $kka);
 $vva = sprintf('%04d', (int) $vva);
 $ppl = sprintf('%02d', (int) $ppl);
 $kkl = sprintf('%02d', (int) $kkl);
 $vvl = sprintf('%04d', (int) $vvl);
 if ($toimittajaid != '') {
     $toimittajaid = mysql_real_escape_string($toimittajaid);
     $toimittajalisa = " and toimi.tunnus = '{$toimittajaid}' ";
 }
 $query = "SELECT nimi, ytunnus, tunnus\n            FROM toimi\n            WHERE yhtio = '{$kukarow['yhtio']}'\n            {$toimittajalisa}";
 $res = pupe_query($query);
 echo "<table>";
 $vaihtuuko_toimittaja = '';
 $tunnukset = array();
 $query_ale_lisa = generoi_alekentta('O');
 while ($toimittajarow = mysql_fetch_assoc($res)) {
     $query = "SELECT count(*) riveja,\n              sum(if(tilausrivi.kpl != 0, 1, 0)) riveja_varastossa,\n              sum(tilausrivi.kpl+tilausrivi.varattu) kpl,\n              sum(tilausrivi.kpl) kpl_varastossa,\n              sum((tilausrivi.kpl+tilausrivi.varattu)*tilausrivi.hinta*{$query_ale_lisa}) arvo,\n              lasku.tunnus ltunnus,\n              lasku.lahetepvm,\n              sum(tuote.tuotemassa*(tilausrivi.varattu+tilausrivi.kpl)) massa,\n              sum(if(tuotemassa!=0, varattu+kpl, 0)) kplok,\n              lasku.comments,\n              lasku.valkoodi\n              FROM lasku\n              JOIN tilausrivi ON (tilausrivi.yhtio = lasku.yhtio and tilausrivi.otunnus = lasku.tunnus and tilausrivi.tyyppi = 'O')\n              JOIN tuote ON (tuote.yhtio=tilausrivi.yhtio and tuote.tuoteno=tilausrivi.tuoteno)\n              WHERE lasku.yhtio      = '{$kukarow['yhtio']}'\n              AND lasku.tila         = 'O'\n              AND lasku.liitostunnus = '{$toimittajarow['tunnus']}'\n              and lasku.lahetepvm >='{$vva}-{$kka}-{$ppa} 00:00:00'\n              and lasku.lahetepvm <='{$vvl}-{$kkl}-{$ppl} 23:59:59'\n              GROUP BY lasku.tunnus\n              ORDER BY lasku.ytunnus, lasku.lahetepvm";
     $tilrivi_res = pupe_query($query);
     if (mysql_num_rows($tilrivi_res) > 0) {
         $ed_tunn = "";
         $yht_paino = 0;
         $yht_kpl = 0;
         $yht_varastossa_kpl = 0;
         $yht_rivit = 0;
         $yht_varastossa_rivit = 0;
         $yht_arvo = 0;
         $yht_tavara_summa = array();
         $yht_kulu_summa = array();
         $yht_eturahti = array();
         $tilrivi_laskuri = 0;
Exemplo n.º 6
0
function hae_yhteenveto_tiedot($toimittajaid = null, $toimipaikka = 0, $pp = null, $kk = null, $vv = null)
{
    global $kukarow, $yhtiorow, $onkolaajattoimipaikat, $kaikkiliitettyyhteensa, $kaikkivarastossayhteensa, $rahti_ja_kulut, $vaihtoomaisuuslaskujayhteensa, $kululaskujayhteensa, $vaihtoomaisuuslaskujayhteensa_kulut, $kululaskujayhteensa_kulut;
    if (!$pp) {
        $pp = date('d');
    }
    if (!$kk) {
        $kk = date('m');
    }
    if (!$vv) {
        $vv = date('Y');
    }
    if ($toimittajaid == null) {
        $toimittaja_where = '';
    } else {
        $toimittaja_where = "AND lasku.liitostunnus = '{$toimittajaid}'";
    }
    $toimipaikkalisa = ($onkolaajattoimipaikat and isset($toimipaikka) and $toimipaikka != 'kaikki') ? "AND lasku.yhtio_toimipaikka = '" . (int) $toimipaikka . "'" : "";
    $compare_date1 = new DateTime("now");
    $compare_date2 = new DateTime("{$vv}-{$kk}-{$pp}");
    $comp = $compare_date1->format('Y-m-d') != $compare_date2->format('Y-m-d');
    $query_ale_lisa = generoi_alekentta("O");
    if ($comp) {
        $_groupby = "GROUP BY lasku.liitostunnus";
        $_where1 = "AND lasku.alatila = ''\n                AND lasku.mapvm = '0000-00-00'\n                AND lasku.kohdistettu IN ('','K')";
        $_where2 = "AND lasku.alatila = 'X'\n                AND lasku.mapvm >= '{$vv}-{$kk}-{$pp}'\n                AND lasku.kohdistettu = 'X'";
        // näytetään millä toimittajilla on keskeneräisiä keikkoja
        $query = "SELECT\n              group_concat(distinct lasku.laskunro SEPARATOR ', ') keikat,\n              round(sum(IF((tilausrivi.laskutettuaika <= '{$vv}-{$kk}-{$pp}' AND tilausrivi.laskutettuaika != '0000-00-00' AND tilausrivi.kpl != 0), tilausrivi.rivihinta, 0)),2) varastossaarvo,\n              ROUND(SUM(IF((tilausrivi.laskutettuaika <= '{$vv}-{$kk}-{$pp}' AND tilausrivi.laskutettuaika != '0000-00-00'), tilausrivi.kpl, 0) * tilausrivi.hinta * {$query_ale_lisa}), 2) varastoonvietyarvo,\n              round(sum((tilausrivi.varattu+tilausrivi.kpl) * tilausrivi.hinta * {$query_ale_lisa}),2) kohdistettuarvo\n              FROM lasku USE INDEX (yhtio_tila_mapvm)\n              LEFT JOIN tilausrivi USE INDEX (uusiotunnus_index) on (tilausrivi.yhtio = lasku.yhtio and tilausrivi.uusiotunnus = lasku.tunnus and tilausrivi.tyyppi = 'O')\n              WHERE lasku.yhtio     = '{$kukarow['yhtio']}'\n              and lasku.tila        = 'K'\n              and lasku.vanhatunnus = 0\n              AND lasku.luontiaika  <= '{$vv}-{$kk}-{$pp}'\n              {$toimipaikkalisa}\n              {$toimittaja_where}";
        $query = "( {$query}\n                {$_where1}\n                {$_groupby})\n                UNION\n              ( {$query}\n                {$_where2}\n                {$_groupby})";
        $result_x = pupe_query($query);
        $kaikkiliitettyyhteensa = 0;
        $kaikkivarastossayhteensa = 0;
        $rahti_ja_kulut = 0;
        $vaihtoomaisuuslaskujayhteensa = 0;
        $kululaskujayhteensa = 0;
        $vaihtoomaisuuslaskujayhteensa_kulut = 0;
        $kululaskujayhteensa_kulut = 0;
        while ($row_x = mysql_fetch_assoc($result_x)) {
            $kaikkivarastossayhteensa += $row_x['varastossaarvo'];
            $kaikkiliitettyyhteensa += $row_x['kohdistettuarvo'];
            $rahti_ja_kulut += $row_x["varastossaarvo"] - $row_x['varastoonvietyarvo'];
            $query = "SELECT\n                sum(if(vienti in ('C','F','I','J','K','L'), arvo * vienti_kurssi, 0)) vosumma,\n                sum(if(vienti in ('C','F','I','J','K','L'), (osto_kulu + osto_rahti + osto_rivi_kulu), 0)) vosumma_kulut,\n                sum(if(vienti not in ('C','F','I','J','K','L'), arvo * vienti_kurssi, 0)) kusumma,\n                sum(if(vienti not in ('C','F','I','J','K','L'), (osto_kulu + osto_rahti + osto_rivi_kulu), 0)) kusumma_kulut\n                FROM lasku use index (yhtio_tila_laskunro)\n                WHERE yhtio     = '{$kukarow['yhtio']}'\n                AND tila        = 'K'\n                AND vanhatunnus > 0\n                AND laskunro    IN ({$row_x['keikat']})";
            $laskuja_result = pupe_query($query);
            $laskuja_row = mysql_fetch_assoc($laskuja_result);
            $vaihtoomaisuuslaskujayhteensa += $laskuja_row["vosumma"];
            $kululaskujayhteensa += $laskuja_row["kusumma"];
            $vaihtoomaisuuslaskujayhteensa_kulut += $laskuja_row['vosumma_kulut'];
            $kululaskujayhteensa_kulut += $laskuja_row['kusumma_kulut'];
        }
    }
    // haetaan vaihto-omaisuus- ja huolinta/rahti- laskut joita ei oo liitetty saapumisiin
    $query = "SELECT\n            lasku.tunnus,\n            if(lasku.vienti in ('C','F','I','J','K','L'), lasku.summa * lasku.vienti_kurssi, 0) vosumma,\n            if(lasku.vienti in ('B','E','H'),         lasku.summa * lasku.vienti_kurssi, 0) kusumma,\n            sum(if(lasku.vienti in ('C','F','I','J','K','L'), tiliointi.summa, 0)) voalvit,\n            sum(if(lasku.vienti in ('B','E','H'),         tiliointi.summa, 0)) kualvit\n            FROM lasku\n            LEFT JOIN tiliointi USE INDEX (tositerivit_index) ON (tiliointi.yhtio = lasku.yhtio and tiliointi.ltunnus = lasku.tunnus and tiliointi.tilino = '{$yhtiorow['alv']}' and tiliointi.korjattu = '' AND if(lasku.summa > 0, tiliointi.summa, tiliointi.summa*-1) > 0)\n            LEFT JOIN lasku AS liitos ON liitos.yhtio = lasku.yhtio AND liitos.vanhatunnus = lasku.tunnus AND liitos.tila = 'K'\n            WHERE lasku.yhtio = '{$kukarow['yhtio']}'\n            AND lasku.tila    IN ('H','Y','M','P','Q')\n            AND lasku.vienti  in ('B','C','J','E','F','K','H','I','L')\n            AND (liitos.tunnus IS NULL or liitos.luontiaika > '{$vv}-{$kk}-{$pp}')\n            AND (lasku.tapvm <= '{$vv}-{$kk}-{$pp}' AND lasku.tapvm >= date_sub('{$vv}-{$kk}-{$pp}', interval 12 month))\n            {$toimittaja_where}\n            GROUP BY lasku.tunnus";
    $result_vaihto_omaisuus = pupe_query($query);
    $rv_vosumma = 0;
    $rv_voalvit = 0;
    $rv_kusumma = 0;
    $rv_kualvit = 0;
    while ($row_vaihto = mysql_fetch_assoc($result_vaihto_omaisuus)) {
        $rv_vosumma += $row_vaihto["vosumma"];
        $rv_voalvit += $row_vaihto["voalvit"];
        $rv_kusumma += $row_vaihto["kusumma"];
        $rv_kualvit += $row_vaihto["kualvit"];
    }
    $row_vaihto["vosumma"] = $rv_vosumma - $rv_voalvit;
    $row_vaihto["kusumma"] = $rv_kusumma - $rv_kualvit;
    // haetaan rahti/huolinta laskut jotka on liitetty vain osittain saapumisiin
    $query = "SELECT\n            (SELECT sum(summa) summa\n               FROM tiliointi\n               WHERE tiliointi.yhtio  = lasku.yhtio\n               AND tiliointi.ltunnus  = lasku.tunnus\n               AND tiliointi.tilino   in ('{$yhtiorow['varasto']}','{$yhtiorow['raaka_ainevarasto']}')\n               AND tiliointi.korjattu = '') varastossa,\n            sum(liitos.arvo*liitos.vienti_kurssi) kohdistettu\n            FROM lasku\n            JOIN lasku AS liitos on (liitos.yhtio = lasku.yhtio and liitos.vanhatunnus = lasku.tunnus and liitos.tila = 'K')\n            WHERE lasku.yhtio         = '{$kukarow['yhtio']}'\n            AND lasku.tila            in ('H','Y','M','P','Q')\n            AND lasku.vienti          in ('B','E','H')\n            AND (lasku.tapvm <= '{$vv}-{$kk}-{$pp}' AND lasku.tapvm >= date_sub('{$vv}-{$kk}-{$pp}', interval 12 month))\n            {$toimittaja_where}\n            GROUP BY lasku.tunnus\n            HAVING varastossa != kohdistettu";
    $result_huolintarahdit = pupe_query($query);
    $row_vaihto["kuosasumma"] = 0;
    while ($row_huorah = mysql_fetch_assoc($result_huolintarahdit)) {
        $row_vaihto["kuosasumma"] += $row_huorah["varastossa"] - $row_huorah["kohdistettu"];
    }
    $liitetty_lasku_viety_summa = 0;
    $liitetty_lasku_viety_summa_tuloutettu = 0;
    $ei_liitetty_lasku_viety_summa = 0;
    $ei_liitetty_lasku_viety_summa_tuloutettu = $liitetty_lasku_ei_viety_summa = 0;
    $liitetty_lasku_ei_viety_summa_tuloutettu = 0;
    $ei_liitetty_lasku_ei_viety_summa = 0;
    $ei_liitetty_lasku_ei_viety_summa_tuloutettu = 0;
    $liitetty_lasku_osittain_ei_viety_summa = 0;
    $liitetty_lasku_osittain_ei_viety_summa_tuloutettu = 0;
    $ei_liitetty_lasku_osittain_ei_viety_summa = 0;
    $ei_liitetty_lasku_osittain_ei_viety_summa_tuloutettu = 0;
    $liitetty_lasku_osittain_viety_summa = 0;
    $liitetty_lasku_osittain_viety_summa_tuloutettu = 0;
    $ei_liitetty_lasku_osittain_viety_summa = 0;
    $ei_liitetty_lasku_osittain_viety_summa_tuloutettu = 0;
    $laskut_ei_viety = 0;
    $laskut_ei_viety_osittain = 0;
    $laskut_viety = 0;
    $laskut_osittain_viety = 0;
    if ($comp) {
        $query = "SELECT lasku.laskunro,\n              lasku.tila,\n              lasku.vanhatunnus,\n              lasku.tunnus,\n              count(DISTINCT liitos.tunnus) liitetty,\n              group_concat(liitos.vanhatunnus) tunnukset\n              FROM lasku\n              LEFT JOIN lasku AS liitos ON liitos.yhtio = lasku.yhtio AND liitos.laskunro = lasku.laskunro AND liitos.vanhatunnus > 0 AND liitos.vienti IN ('C','F','I','J','K','L') AND liitos.tila = 'K'\n                AND liitos.luontiaika <= '{$vv}-{$kk}-{$pp} 00:00:00'\n              WHERE  lasku.yhtio      = '{$kukarow['yhtio']}'\n              AND lasku.tila          = 'K'\n              AND ((lasku.alatila = '' AND lasku.mapvm = '0000-00-00' AND lasku.kohdistettu in ('', 'K'))\n                OR\n                (lasku.alatila = 'X' AND lasku.mapvm >= '{$vv}-{$kk}-{$pp}' AND lasku.kohdistettu = 'X'))\n              AND lasku.vanhatunnus   = 0\n              AND lasku.luontiaika    <= '{$vv}-{$kk}-{$pp} 00:00:00'\n              {$toimipaikkalisa}\n              {$toimittaja_where}\n              GROUP BY 1,2,3,4";
    } else {
        $query = "SELECT lasku.laskunro,\n              lasku.tila,\n              lasku.vanhatunnus,\n              lasku.tunnus,\n              count(DISTINCT liitos.tunnus) liitetty,\n              group_concat(liitos.vanhatunnus) tunnukset\n              FROM lasku\n              LEFT JOIN lasku AS liitos ON liitos.yhtio = lasku.yhtio AND liitos.laskunro = lasku.laskunro AND liitos.vanhatunnus > 0 AND liitos.vienti IN ('C','F','I','J','K','L') AND liitos.tila = 'K'\n              WHERE  lasku.yhtio    = '{$kukarow['yhtio']}'\n              AND lasku.tila        = 'K'\n              AND lasku.alatila     = ''\n              AND lasku.mapvm       = '0000-00-00'\n              AND lasku.vanhatunnus = 0\n              {$toimipaikkalisa}\n              {$toimittaja_where}\n              GROUP BY 1,2,3,4";
    }
    $result = pupe_query($query);
    //haetaan saapuvia ostotilauksia, joihin liitetty tai ei liitetty lasku (kts. liitetty)
    while ($row = mysql_fetch_assoc($result)) {
        if ($comp) {
            $query = "SELECT\n                sum(IF((laskutettuaika <= '{$vv}-{$kk}-{$pp}' AND laskutettuaika != '0000-00-00'), kpl, 0) * hinta * {$query_ale_lisa}) viety,\n                sum(IF(laskutettuaika > '{$vv}-{$kk}-{$pp}', kpl, IF(laskutettuaika = '0000-00-00', varattu, 0)) * hinta * {$query_ale_lisa}) ei_viety,\n                sum(IF((laskutettuaika <= '{$vv}-{$kk}-{$pp}' AND laskutettuaika != '0000-00-00'), rivihinta, 0)) tuloutettu\n                FROM tilausrivi\n                WHERE yhtio     = '{$kukarow['yhtio']}'\n                AND uusiotunnus = {$row['tunnus']}\n                AND tyyppi      = 'O'";
        } else {
            $query = "SELECT\n                sum(kpl * hinta * {$query_ale_lisa}) viety,\n                sum(varattu * hinta * {$query_ale_lisa}) ei_viety,\n                sum(rivihinta) tuloutettu\n                FROM tilausrivi\n                WHERE yhtio     = '{$kukarow['yhtio']}'\n                AND uusiotunnus = {$row['tunnus']}\n                AND tyyppi      = 'O'";
        }
        $result2 = pupe_query($query);
        $tilausrivirow = mysql_fetch_assoc($result2);
        if ($row['liitetty'] == 0) {
            if ($tilausrivirow['viety'] == 0 and $tilausrivirow['ei_viety'] != 0) {
                $ei_liitetty_lasku_ei_viety_summa += $tilausrivirow['ei_viety'];
                $ei_liitetty_lasku_ei_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
            } elseif ($tilausrivirow['viety'] != 0 and $tilausrivirow['ei_viety'] == 0) {
                //viety kokonaan
                $ei_liitetty_lasku_viety_summa += $tilausrivirow['viety'];
                $ei_liitetty_lasku_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
            } else {
                //saapuminen viety osittain varastoon ja ei liitetty lasku
                $ei_liitetty_lasku_osittain_viety_summa += $tilausrivirow['viety'];
                $ei_liitetty_lasku_osittain_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
                $ei_liitetty_lasku_osittain_ei_viety_summa += $tilausrivirow['ei_viety'];
                $ei_liitetty_lasku_osittain_ei_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
            }
        } else {
            $query = "SELECT round(lasku.vienti_kurssi * lasku.summa, 2) summa,\n                sum(round(tiliointi.summa, 2)) alvit\n                FROM lasku\n                LEFT JOIN tiliointi USE INDEX (tositerivit_index) ON (tiliointi.yhtio = lasku.yhtio and tiliointi.ltunnus = lasku.tunnus and tiliointi.tilino = '{$yhtiorow['alv']}' and tiliointi.korjattu = '' AND if(lasku.summa > 0, tiliointi.summa, tiliointi.summa*-1) > 0)\n                WHERE lasku.yhtio = '{$kukarow['yhtio']}'\n                AND lasku.tunnus  IN ({$row['tunnukset']})\n                GROUP BY 1";
            $result_laskut = pupe_query($query);
            $laskujensummat = 0;
            while ($laskut = mysql_fetch_assoc($result_laskut)) {
                $laskujensummat += $laskut['summa'] - $laskut['alvit'];
            }
            //on liitetty lasku
            if ($tilausrivirow['viety'] == 0 and $tilausrivirow['ei_viety'] != 0) {
                // ei viety ollenkaan
                $liitetty_lasku_ei_viety_summa += $tilausrivirow['ei_viety'];
                $liitetty_lasku_ei_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
                $laskut_ei_viety += $laskujensummat;
            } elseif ($tilausrivirow['viety'] != 0 and $tilausrivirow['ei_viety'] == 0) {
                //viety kokonaan
                $liitetty_lasku_viety_summa += $tilausrivirow['viety'];
                $liitetty_lasku_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
                $laskut_viety += $laskujensummat;
            } else {
                //saapuminen viety osittain varastoon ja liitetty lasku
                $liitetty_lasku_osittain_viety_summa += $tilausrivirow['viety'];
                $liitetty_lasku_osittain_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
                $liitetty_lasku_osittain_ei_viety_summa += $tilausrivirow['ei_viety'];
                //$liitetty_lasku_osittain_ei_viety_summa_tuloutettu += $tilausrivirow['tuloutettu'];
                $laskut_osittain_viety += $laskujensummat;
                //$laskut_ei_viety_osittain += $laskujensummat;
            }
        }
    }
    return array($liitetty_lasku_viety_summa, $liitetty_lasku_viety_summa_tuloutettu, $ei_liitetty_lasku_viety_summa, $ei_liitetty_lasku_viety_summa_tuloutettu, $liitetty_lasku_ei_viety_summa, $ei_liitetty_lasku_ei_viety_summa, $ei_liitetty_lasku_ei_viety_summa_tuloutettu, $liitetty_lasku_osittain_viety_summa, $liitetty_lasku_osittain_viety_summa_tuloutettu, $ei_liitetty_lasku_osittain_viety_summa, $ei_liitetty_lasku_osittain_viety_summa_tuloutettu, $laskut_ei_viety, $laskut_ei_viety_osittain, $laskut_viety, $laskut_osittain_viety, $row_vaihto, $liitetty_lasku_osittain_ei_viety_summa, $liitetty_lasku_osittain_ei_viety_summa_tuloutettu, $ei_liitetty_lasku_osittain_ei_viety_summa, $ei_liitetty_lasku_osittain_ei_viety_summa_tuloutettu, $liitetty_lasku_ei_viety_summa_tuloutettu);
}
Exemplo n.º 7
0
function myynti($limit = '')
{
    global $path_myynti, $yhtiorow, $yhtio, $logisticar;
    $where_logisticar = $logisticar[$yhtio]["where"];
    echo "Myynnit... ";
    if (!($fp = fopen($path_myynti, 'w+'))) {
        die("Ei voitu avata filea {$path_myynti}");
    }
    $query_ale_lisa = generoi_alekentta('M');
    $query = "SELECT\n            tilausrivi.tuoteno nimiketunnus,\n            lasku.liitostunnus asiakastunnus,\n            lasku.liitostunnus toimitusasiakas,\n            if(tilausrivi.tyyppi = 'G', lasku.clearing, lasku.liitostunnus) asiakastunnus,\n            if(tilausrivi.tyyppi = 'G', lasku.clearing, lasku.liitostunnus) toimitusasiakas,\n            tilausrivi.toimaika toimituspaiva,\n            tilausrivi.tyyppi tapahtumalaji,\n            round(tilausrivi.hinta  / if('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv<500, (1+tilausrivi.alv/100), 1) * (tilausrivi.varattu+tilausrivi.jt) * {$query_ale_lisa}, {$yhtiorow['hintapyoristys']}) myyntiarvo,\n            (tilausrivi.varattu+tilausrivi.jt) * tuote.kehahin ostoarvo,\n            tilausrivi.varattu tapahtumamaara,\n            lasku.tunnus tilausnro,\n            kuka.kuka myyjatunnus,\n            lasku.yhtio_toimipaikka  toimipaikka,\n            varastopaikat.tunnus varastotunnus,\n            tilausrivi.toimitettu\n            FROM tilausrivi\n            JOIN lasku USE INDEX (PRIMARY) ON lasku.tunnus=tilausrivi.otunnus and lasku.yhtio=tilausrivi.yhtio\n            JOIN tuote ON tuote.tuoteno = tilausrivi.tuoteno and tuote.yhtio = tilausrivi.yhtio\n            JOIN tuotepaikat USE INDEX (tuote_index) ON tuotepaikat.tuoteno=tilausrivi.tuoteno and tuotepaikat.hyllyvali=tilausrivi.hyllyvali and tuotepaikat.hyllytaso=tilausrivi.hyllytaso AND tilausrivi.hyllyalue=tuotepaikat.hyllyalue and tilausrivi.hyllynro=tuotepaikat.hyllynro and tilausrivi.yhtio=tuotepaikat.yhtio\n            JOIN varastopaikat ON (varastopaikat.yhtio = tuotepaikat.yhtio\n              AND varastopaikat.tunnus     = tuotepaikat.varasto)\n            LEFT JOIN kuka ON kuka.tunnus=lasku.myyja and kuka.yhtio=lasku.yhtio\n            WHERE tilausrivi.varattu      != 0\n            AND tilausrivi.tyyppi          IN ('L','O','G')\n            AND tilausrivi.laskutettuaika  = '0000-00-00'\n            AND tilausrivi.yhtio           = '{$yhtio}'\n            ORDER BY tilausrivi.laadittu\n            {$limit}";
    $res = pupe_query($query);
    $rows = mysql_num_rows($res);
    $row = 0;
    if ($rows == 0) {
        echo "Yhtään myyntitapahtumaa ei löytynyt\n";
        die;
    }
    $headers = array('nimiketunnus' => null, 'asiakastunnus' => null, 'toimitusasiakas' => null, 'toimituspaiva' => null, 'tapahtumalaji' => null, 'myyntiarvo' => null, 'ostoarvo' => null, 'tapahtumamaara' => null, 'tilausnro' => null, 'myyjatunnus' => null, 'toimipaikka' => null, 'varastotunnus' => null);
    // tehdään otsikot
    create_headers($fp, array_keys($headers));
    while ($trow = mysql_fetch_assoc($res)) {
        $row++;
        switch (strtoupper($trow['tapahtumalaji'])) {
            case 'G':
                // kirjoitetaan fileen vain avoimia siirtolistoja eli toimitettu pitää olla tyhjää
                if ($trow['toimitettu'] != '') {
                    continue;
                }
                // laji 3 = saapuva tilaus
                $trow['tapahtumalaji'] = '3';
                $trow['myyntiarvo'] = 0;
                $trow['toimitusasiakas'] = $trow['varastotunnus'];
                $trow['varastotunnus'] = $trow['asiakastunnus'];
                // ei haluta toimitettu-saraketta mukaan
                unset($trow['toimitettu']);
                // Siivotaan kentät:
                foreach ($trow as &$tk) {
                    $tk = pupesoft_csvstring($tk);
                }
                $data = array_merge($headers, $trow);
                $data = implode("\t", $data);
                if (!fwrite($fp, $data . "\n")) {
                    echo "Failed writing row.\n";
                    die;
                }
                // laji 4 = varattu
                $trow['tapahtumalaji'] = '4';
                $trow['varastotunnus'] = $trow['toimitusasiakas'];
                $trow['toimitusasiakas'] = $trow['asiakastunnus'];
                break;
            case 'L':
                $trow['tapahtumalaji'] = '4';
                // ei haluta toimitettu-saraketta mukaan
                unset($trow['toimitettu']);
                break;
            case 'O':
                $trow['tapahtumalaji'] = '3';
                $trow['myyntiarvo'] = 0;
                // ei haluta toimitettu-saraketta mukaan
                unset($trow['toimitettu']);
                break;
        }
        // Siivotaan kentät:
        foreach ($trow as &$tk) {
            $tk = pupesoft_csvstring($tk);
        }
        $data = array_merge($headers, $trow);
        $data = implode("\t", $data);
        if (!fwrite($fp, $data . "\n")) {
            echo "Failed writing row.\n";
            die;
        }
    }
    fclose($fp);
    echo "Done.\n";
}
Exemplo n.º 8
0
$content_body .= "</head>";
$content_body .= "<body>";
$content_body .= "<h3>" . htmlentities("Asiakkaat, jotka ovat käyttäneet yli {$luottorajaprosentti}% luottorajastaan") . ":</h3>";
$content_body .= "<table summary='" . htmlentities($content_subject) . "'>";
$content_body .= "<tr>";
$content_body .= "<th>" . t("Ytunnus") . "</th>";
$content_body .= "<th>" . t("Laskutusnimi") . "<br>" . t("Toimitusnimi") . "</th>";
$content_body .= "<th>" . t("Avoimet") . "<br>" . t("laskut") . "</th>";
$content_body .= "<th>" . t("Avoimet") . "<br>" . t("tilaukset") . "</th>";
$content_body .= "<th>" . t("Kaatotili") . "</th>";
$content_body .= "<th>" . t("Luottotilanne nyt") . "</th>";
$content_body .= "<th>" . t("Luottorajasta käytetty") . "</th>";
$content_body .= "<th>" . t("Luottoraja") . "<br>{$yhtiorow['valkoodi']}</th>";
$content_body .= "<th>" . t("Myyntikielto") . "</th>";
$content_body .= "</tr>";
$query_alennuksia = generoi_alekentta('M');
while ($asiakasrow = mysql_fetch_array($asiakasres)) {
    // Avoimet laskut
    $query = "SELECT sum(lasku.summa - lasku.saldo_maksettu) laskuavoinsaldo\n            FROM lasku use index (yhtio_tila_mapvm)\n            WHERE lasku.yhtio      = '{$yhtiorow['yhtio']}'\n            AND lasku.tila         = 'U'\n            AND lasku.alatila      = 'X'\n            AND lasku.mapvm        = '0000-00-00'\n            AND lasku.liitostunnus IN ({$asiakasrow['liitostunnukset']})";
    $avoimetlaskutres = pupe_query($query);
    $avoimetlaskutrow = mysql_fetch_assoc($avoimetlaskutres);
    // Avoimet tilaukset
    $query = "SELECT\n            round(sum(tilausrivi.hinta * if('{$yhtiorow['alv_kasittely']}' != '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1) * (tilausrivi.varattu+tilausrivi.jt) * {$query_alennuksia}),2) tilausavoinsaldo\n            FROM lasku\n            JOIN tilausrivi use index (yhtio_otunnus) on (tilausrivi.yhtio=lasku.yhtio and tilausrivi.otunnus=lasku.tunnus and tilausrivi.tyyppi IN ('L','W'))\n            WHERE lasku.yhtio      = '{$yhtiorow['yhtio']}'\n            AND ((lasku.tila = 'L' and lasku.alatila in ('A','B','C','D','E','J','V'))  # Kaikki myyntitilaukset, paitsi laskutetut\n              OR (lasku.tila = 'N' and lasku.alatila in ('','A','F'))          # Myyntitilaus kesken, tulostusjonossa tai odottaa hyväksyntää\n              OR (lasku.tila = 'V' and lasku.alatila in ('','A','C','J','V'))      # Valmistukset\n            )\n            AND lasku.liitostunnus in ({$asiakasrow['liitostunnukset']})";
    $avoimettilauksetres = pupe_query($query);
    $avoimettilauksetrow = mysql_fetch_assoc($avoimettilauksetres);
    // Kaatotili
    $query = "SELECT\n            sum(round(summa*if(kurssi=0, 1, kurssi),2)) summa\n            FROM suoritus\n            WHERE yhtio        = '{$yhtiorow['yhtio']}'\n            and ltunnus        > 0\n            and kohdpvm        = '0000-00-00'\n            and asiakas_tunnus in ({$asiakasrow['liitostunnukset']})";
    $kaatotilires = pupe_query($query);
    $kaatotilirow = mysql_fetch_assoc($kaatotilires);
    // Lasketaan luottotilanne nyt
    $luottotilanne_nyt = round($asiakasrow["luottoraja"] - $avoimetlaskutrow["laskuavoinsaldo"] + $kaatotilirow["summa"] - $avoimettilauksetrow["tilausavoinsaldo"], 2);
Exemplo n.º 9
0
 $alvquery = "SELECT IF(ISNULL(varastopaikat.maa) or varastopaikat.maa='', '{$yhtiorow['maa']}', varastopaikat.maa) maa, group_concat(tilausrivi.tunnus) rivit\n                     FROM tilausrivi\n                     LEFT JOIN varastopaikat ON (varastopaikat.yhtio =\n                       IF(tilausrivi.var = 'S',\n                         IF((SELECT tyyppi_tieto\n                             FROM toimi\n                             WHERE yhtio         = tilausrivi.yhtio\n                             AND tunnus          = tilausrivi.tilaajanrivinro) != '',\n                              (SELECT tyyppi_tieto\n                               FROM toimi\n                               WHERE yhtio       = tilausrivi.yhtio\n                               AND tunnus        = tilausrivi.tilaajanrivinro),\n                              tilausrivi.yhtio),\n                         tilausrivi.yhtio)\n                       AND varastopaikat.tunnus  = tilausrivi.varasto)\n                     WHERE tilausrivi.yhtio      = '{$kukarow['yhtio']}'\n                     and tilausrivi.tyyppi       in ({$tilrivity})\n                     and tilausrivi.tyyppi       not in ('D','V','M')\n                     and tilausrivi.var         != 'O'\n                     {$tunnuslisa}\n                     GROUP BY 1\n                     ORDER BY 1";
 $alvresult = pupe_query($alvquery);
 // typekästätään koska joskus tulee spacena.. en tajua.
 $laskurow["erikoisale"] = (double) $laskurow["erikoisale"];
 if ($laskurow["valkoodi"] != '' and trim(strtoupper($laskurow["valkoodi"])) != trim(strtoupper($yhtiorow["valkoodi"])) and $laskurow["vienti_kurssi"] != 0) {
     $hinta_riv = "(tilausrivi.hinta/{$laskurow['vienti_kurssi']})";
     $hinta_myy = "(tuote.myyntihinta/{$laskurow['vienti_kurssi']})";
 } else {
     $hinta_riv = "tilausrivi.hinta";
     $hinta_myy = "tuote.myyntihinta";
 }
 if ($kukarow['hinnat'] == 1) {
     $lisat = "  {$hinta_myy} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.varattu+tilausrivi.jt) * (tilausrivi.alv/100) alv,\n                {$hinta_myy} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.varattu+tilausrivi.jt) rivihinta,\n                {$hinta_myy} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.varattu+tilausrivi.jt) * (tilausrivi.alv/100) alv_ei_erikoisaletta,\n                {$hinta_myy} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.varattu+tilausrivi.jt) rivihinta_ei_erikoisaletta";
 } else {
     $query_ale_lisa = generoi_alekentta('M');
     $query_ale_lisa_ei_erik = generoi_alekentta('M', '', 'ei_erikoisale');
     if (($asiakasrow['extranet_tilaus_varaa_saldoa'] == "" and $yhtiorow["extranet_tilaus_varaa_saldoa"] == "E" or $asiakasrow["extranet_tilaus_varaa_saldoa"] == "E") and $laskurow["tilaustyyppi"] == "H") {
         $kplkentta = "tilkpl";
     } else {
         $kplkentta = "varattu";
     }
     $lisat = "  if (tilausrivi.alv<500, {$hinta_riv} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa} * (tilausrivi.alv/100), 0) alv,\n                {$hinta_riv} / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv<500, (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa} rivihinta,\n                if (tilausrivi.alv<500, {$hinta_riv} / if ('{$yhtiorow['alv_kasittely']}' = '', (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa_ei_erik} * (tilausrivi.alv/100), 0) alv_ei_erikoisaletta,\n                {$hinta_riv} / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv<500, (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa_ei_erik} rivihinta_ei_erikoisaletta,\n                tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv<500, (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa} kotirivihinta,\n                tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv<500, (1+tilausrivi.alv/100), 1) * (tilausrivi.kpl+tilausrivi.{$kplkentta}+tilausrivi.jt) * {$query_ale_lisa_ei_erik} kotirivihinta_ei_erikoisaletta";
 }
 while ($alvrow = mysql_fetch_assoc($alvresult)) {
     $aquery = "SELECT\n                     tuote.sarjanumeroseuranta,\n                     tuote.ei_saldoa,\n                     tuote.tuoteno,\n                     {$kehahin_select} kehahin,\n                     tilausrivi.tunnus,\n                     tilausrivi.varattu+tilausrivi.jt varattu,\n                     tilausrivin_lisatiedot.osto_vai_hyvitys,\n                     {$lisat}\n                     FROM tilausrivi\n                     JOIN tuote ON tilausrivi.yhtio=tuote.yhtio and tilausrivi.tuoteno=tuote.tuoteno\n                     LEFT JOIN tilausrivin_lisatiedot ON (tilausrivin_lisatiedot.yhtio=tilausrivi.yhtio and tilausrivin_lisatiedot.tilausrivitunnus=tilausrivi.tunnus)\n                     WHERE tilausrivi.yhtio =  '{$kukarow['yhtio']}'\n                     AND tilausrivi.otunnus =  '{$kukarow['kesken']}'\n                     AND tilausrivi.tunnus  IN  ({$alvrow['rivit']})";
     $aresult = pupe_query($aquery);
     while ($arow = mysql_fetch_assoc($aresult)) {
         $rivikate = 0;
         // Rivin kate yhtiön valuutassa
         $rivikate_eieri = 0;
         // Rivin kate yhtiön valuutassa ilman erikoisalennusta
Exemplo n.º 10
0
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;
}
Exemplo n.º 11
0
     $lisavarlisa = "";
 }
 if ($vaintullinimike != "") {
     $vainnimikelisa = " and tuote.tullinimike1 = '{$vaintullinimike}' and lasku.kuljetusmuoto = '{$vainkuljetusmuoto}' and lasku.kauppatapahtuman_luonne = '{$vainkauppatapahtuman_luonne}' and tullinimike.su_vientiilmo = '{$vainsu}' ";
     $maalisa .= " and maalahetys = '{$vainmaalahetys}' and alkuperamaa = '{$vainalkuperamaa}' and maamaara = '{$vainmaamaara}' ";
     $vainnimikelisa2 = " tilausrivi.tunnus, ";
     $vainnimikegroup = " ,9 ";
 } else {
     $vainnimikelisa = "";
     $vainnimikelisa2 = "";
     $vainnimikegroup = "";
 }
 $query = "";
 // tässä tulee sitten nimiketietueet unionilla
 if ($tapahtumalaji == "kaikki" or $tapahtumalaji == "keikka") {
     $alennukset = generoi_alekentta('O', 'tilausrivi');
     $query = "(SELECT\n               tuote.tullinimike1,\n               if (lasku.maa_lahetys='', toimi.maa, lasku.maa_lahetys) maalahetys,\n               ifnull((SELECT alkuperamaa FROM tuotteen_toimittajat WHERE tuotteen_toimittajat.yhtio=tilausrivi.yhtio and tuotteen_toimittajat.tuoteno=tilausrivi.tuoteno and tuotteen_toimittajat.alkuperamaa not in ('{$yhtiorow['maa']}','') LIMIT 1), if (lasku.maa_lahetys='', toimi.maa, lasku.maa_lahetys)) alkuperamaa,\n               if (lasku.maa_maara='', if (lasku.toim_maa='', if(varastopaikat.maa is null or varastopaikat.maa='', '{$yhtiorow['maa']}', varastopaikat.maa), lasku.toim_maa), lasku.maa_maara) maamaara,\n               lasku.kuljetusmuoto,\n               lasku.kauppatapahtuman_luonne,\n               tullinimike.su_vientiilmo su,\n               'Saapuminen' as tapa,\n               {$vainnimikelisa2}\n               {$ee_kentat}\n               max(lasku.laskunro) laskunro,\n               max(tuote.tuoteno) tuoteno,\n               left(max(tuote.nimitys), 40) nimitys,\n               round(sum(tilausrivi.kpl * if(tuote.toinenpaljous_muunnoskerroin = 0, 1, tuote.toinenpaljous_muunnoskerroin)),0) kpl,\n               round(sum(if(tuote.tuotemassa > 0, tilausrivi.kpl * tuote.tuotemassa, if(lasku.summa > tilausrivi.rivihinta, tilausrivi.rivihinta / lasku.summa, 1) * lasku.bruttopaino)), 0) as paino,\n               if (round(sum(tilausrivi.rivihinta),0) > 0.50, round(sum(tilausrivi.rivihinta),0), 1) rivihinta,\n               if (round(sum(tilausrivi.rivihinta / (1 + (lasku.rahti / 100))),0) > 0.50,\n                 if (valuu.intrastat_kurssi = 0,\n                   round(sum(tilausrivi.rivihinta / (1 + (lasku.rahti / 100)) / lasku.vienti_kurssi),0),\n                   round(sum(tilausrivi.rivihinta / (1 + (lasku.rahti / 100)) / valuu.intrastat_kurssi),0)), 1) as rivihinta_laskutusarvo,\n               group_concat(lasku.tunnus) as kaikkitunnukset,\n               group_concat(distinct tilausrivi.perheid2) as perheid2set,\n               group_concat(concat(tuote.tunnus,'!¡!', tuote.tuoteno)) as kaikkituotteet";
     if ($yhtiorow['intrastat_pvm'] == '') {
         $query .= "  FROM lasku use index (yhtio_tila_mapvm)\n            JOIN toimi ON (lasku.yhtio=toimi.yhtio and lasku.liitostunnus=toimi.tunnus)\n            JOIN tilausrivi use index (uusiotunnus_index) ON (tilausrivi.yhtio=lasku.yhtio and tilausrivi.uusiotunnus=lasku.tunnus and tilausrivi.tyyppi = 'O' and tilausrivi.kpl > 0)\n            JOIN tuote use index (tuoteno_index) ON (tuote.yhtio=lasku.yhtio and tuote.tuoteno=tilausrivi.tuoteno and tuote.ei_saldoa = '')\n            LEFT JOIN tullinimike ON (tuote.tullinimike1=tullinimike.cn and tullinimike.kieli = '{$yhtiorow['kieli']}' and tullinimike.cn != '')\n            LEFT JOIN varastopaikat ON (varastopaikat.yhtio = tilausrivi.yhtio\n              AND varastopaikat.tunnus = tilausrivi.varasto)\n            LEFT JOIN valuu ON (lasku.yhtio=valuu.yhtio and lasku.valkoodi=valuu.nimi)\n            WHERE lasku.kohdistettu = 'X'\n            and lasku.tila = 'K'\n            and lasku.vanhatunnus = 0\n            and lasku.kauppatapahtuman_luonne != '999'\n            and lasku.yhtio = '{$kukarow['yhtio']}'\n            and lasku.mapvm >= '{$vva}-{$kka}-{$ppa}'\n            and lasku.mapvm <= '{$vvl}-{$kkl}-{$ppl}'";
     } else {
         $query .= "  FROM tilausrivi\n            JOIN lasku ON (tilausrivi.uusiotunnus=lasku.tunnus and tilausrivi.yhtio=lasku.yhtio and lasku.tila = 'K' and lasku.vanhatunnus = 0 and lasku.kauppatapahtuman_luonne != '999')\n            JOIN toimi ON (lasku.yhtio=toimi.yhtio and lasku.liitostunnus=toimi.tunnus)\n            JOIN tuote use index (tuoteno_index) ON (tuote.yhtio=lasku.yhtio and tuote.tuoteno=tilausrivi.tuoteno and tuote.ei_saldoa = '')\n            LEFT JOIN tullinimike ON (tuote.tullinimike1=tullinimike.cn and tullinimike.kieli = '{$yhtiorow['kieli']}' and tullinimike.cn != '')\n            LEFT JOIN varastopaikat ON (varastopaikat.yhtio = tilausrivi.yhtio\n              AND varastopaikat.tunnus = tilausrivi.varasto)\n            LEFT JOIN valuu ON (lasku.yhtio=valuu.yhtio and lasku.valkoodi=valuu.nimi)\n            WHERE tilausrivi.yhtio = '{$kukarow['yhtio']}'\n            and tilausrivi.tyyppi = 'O'\n            and tilausrivi.laskutettuaika >= '{$vva}-{$kka}-{$ppa}'\n            and tilausrivi.laskutettuaika <= '{$vvl}-{$kkl}-{$ppl}'\n            and tilausrivi.kpl > 0";
     }
     $query .= "  {$vainnimikelisa}\n          {$lisavarlisa}\n          GROUP BY 1,2,3,4,5,6,7,8 {$vainnimikegroup} {$ee_group}\n          HAVING {$maalisa})";
 }
 if ($tapahtumalaji == "kaikki") {
     $query .= "  UNION";
 }
 if ($tapahtumalaji == "kaikki" or $tapahtumalaji == "lasku") {
     $query .= "  (SELECT\n          tuote.tullinimike1,\n          if (lasku.maa_lahetys='', ifnull(varastopaikat.maa, lasku.yhtio_maa), lasku.maa_lahetys) maalahetys,\n          ifnull((SELECT alkuperamaa FROM tuotteen_toimittajat WHERE tuotteen_toimittajat.yhtio=tilausrivi.yhtio and tuotteen_toimittajat.tuoteno=tilausrivi.tuoteno and tuotteen_toimittajat.alkuperamaa!='' ORDER BY if (alkuperamaa='{$yhtiorow['maa']}','2','1') LIMIT 1), '{$yhtiorow['maa']}') alkuperamaa,\n          if (lasku.maa_maara='', lasku.toim_maa, lasku.maa_maara) maamaara,\n          lasku.kuljetusmuoto,\n          lasku.kauppatapahtuman_luonne,\n          tullinimike.su_vientiilmo su,\n          'Lasku' as tapa,\n          {$vainnimikelisa2}\n          {$ee_kentat}\n          max(lasku.laskunro) laskunro,\n          max(tuote.tuoteno) tuoteno,\n          left(max(tuote.nimitys), 40) nimitys,\n          round(sum(tilausrivi.kpl * if (tuote.toinenpaljous_muunnoskerroin = 0, 1, tuote.toinenpaljous_muunnoskerroin)),0) kpl,\n          round(sum(if(tuote.tuotemassa > 0, tilausrivi.kpl * tuote.tuotemassa, if(lasku.summa > tilausrivi.rivihinta, tilausrivi.rivihinta / lasku.summa, 1) * lasku.bruttopaino)), 0) as paino,\n          if (round(sum(tilausrivi.rivihinta),0) > 0.50,round(sum(tilausrivi.rivihinta),0), 1) rivihinta,\n          if (round(sum(tilausrivi.rivihinta),0) > 0.50,round(sum(tilausrivi.rivihinta),0), 1) rivihinta_laskutusarvo,\n          group_concat(lasku.tunnus) as kaikkitunnukset,\n          group_concat(distinct tilausrivi.perheid2) as perheid2set,\n          group_concat(concat(tuote.tunnus,'!¡!', tuote.tuoteno)) as kaikkituotteet\n          FROM lasku use index (yhtio_tila_tapvm)\n          JOIN tilausrivi use index (yhtio_otunnus) ON (tilausrivi.otunnus=lasku.tunnus and tilausrivi.yhtio=lasku.yhtio and tilausrivi.kpl > 0)\n          JOIN tuote use index (tuoteno_index) ON (tuote.yhtio=lasku.yhtio and tuote.tuoteno=tilausrivi.tuoteno and tuote.ei_saldoa = '')\n          LEFT JOIN tullinimike ON (tuote.tullinimike1=tullinimike.cn and tullinimike.kieli = '{$yhtiorow['kieli']}' and tullinimike.cn != '')\n          LEFT JOIN varastopaikat ON (varastopaikat.yhtio=lasku.yhtio and varastopaikat.tunnus=lasku.varasto)\n          WHERE lasku.tila = 'L'\n          and lasku.alatila = 'X'\n          and lasku.kauppatapahtuman_luonne != '999'\n          and lasku.yhtio = '{$kukarow['yhtio']}'\n          and lasku.tapvm >= '{$vva}-{$kka}-{$ppa}'\n          and lasku.tapvm <= '{$vvl}-{$kkl}-{$ppl}'\n          {$vainnimikelisa}\n          {$lisavarlisa}\n          GROUP BY 1,2,3,4,5,6,7,8 {$vainnimikegroup} {$ee_group}\n          HAVING {$maalisa})";
 }
 if ($tapahtumalaji == "kaikki") {