예제 #1
0
     $summa = hintapyoristys($summa / $alvillisuus_jako);
     $myyntihinta = hintapyoristys(tuotteen_myyntihinta($laskurow, $trow, 1) / $alvillisuus_jako);
 } else {
     // Oletuksena verottomat hinnat tai käännetty arvonlisäverovelvollisuus
     if ($tilausrivi_alvillisuus == "E" or $row["alv"] >= 600) {
         // Oletukset
         $alvillisuus_kerto = 1;
     } else {
         // Halutaan alvilliset hinnat
         $alvillisuus_kerto = 1 + $row["alv"] / 100;
     }
     $hinta = hintapyoristys($hinta * $alvillisuus_kerto);
     $summa = hintapyoristys($summa * $alvillisuus_kerto);
     $myyntihinta = hintapyoristys(tuotteen_myyntihinta($laskurow, $trow, 1) * $alvillisuus_kerto);
 }
 $kplhinta = $hinta * generoi_alekentta_php($row, 'M', 'kerto', 'ei_erikoisale');
 if ($kukarow['hinnat'] == 1) {
     echo "<td {$class} align='right' valign='top'>{$myyntihinta}</td>";
 } elseif ($kukarow['hinnat'] == 0) {
     if ($myyntihinta != $hinta) {
         $myyntihinta = hintapyoristys($myyntihinta) . " (" . hintapyoristys($hinta) . ")";
     } else {
         $myyntihinta = hintapyoristys($myyntihinta);
     }
     echo "<td {$class} align='right' valign='top'>{$myyntihinta}</td>";
     for ($alepostfix = 1; $alepostfix <= $yhtiorow['myynnin_alekentat']; $alepostfix++) {
         echo "<td {$class} align='right' valign='top'>", $row["ale{$alepostfix}"] * 1, "</td>";
     }
     echo "<td {$class} align='right' valign='top'>" . hintapyoristys($kplhinta, 2) . "</td>";
 }
 if ($kukarow['hinnat'] == 1) {
예제 #2
0
     if (isset($hinnat["aleperuste"]["ale" . $alepostfix]) and $hinnat["aleperuste"]["ale" . $alepostfix] !== FALSE and $hinnat["aleperuste"]["ale" . $alepostfix] < 13) {
         $onko_asiakkaalla_alennuksia = TRUE;
         break;
     }
 }
 // Jos tuote näytetään vain jos asiakkaalla on asiakasalennus tai asiakahinta niin skipataan se jos alea tai hintaa ei löydy
 if ($rrow["hinnastoon"] == "V" and (($hinnat["hintaperuste"] > 13 or $hinnat["hintaperuste"] === FALSE) and $onko_asiakkaalla_alennuksia === FALSE)) {
     continue;
 } else {
     $osuma = true;
 }
 if ((double) $hinta == 0) {
     $hinta = $rrow["myyntihinta"];
 }
 if ($netto == "") {
     $alennukset = generoi_alekentta_php($hinnat, 'M', 'kerto');
     $asiakashinta = hintapyoristys($hinta * $alennukset);
 } else {
     $asiakashinta = $hinta;
 }
 $veroton = 0;
 $verollinen = 0;
 $asiakashinta_veroton = 0;
 $asiakashinta_verollinen = 0;
 if ($yhtiorow["alv_kasittely"] == "") {
     // Hinnat sisältävät arvonlisäveron
     $verollinen = $rrow["myyntihinta"];
     $veroton = round($rrow["myyntihinta"] / (1 + $rrow['alv'] / 100), 2);
     $asiakashinta_veroton = round($asiakashinta / (1 + $lis_alv / 100), 2);
     $asiakashinta_verollinen = $asiakashinta;
 } else {
예제 #3
0
 $format_bold = array("bold" => TRUE);
 $excelrivi = 0;
 $excelsarake = 0;
 $data = array();
 $i = 0;
 $tuotteiden_alehinnat = array();
 $bar = new ProgressBar();
 $bar->initialize(mysql_num_rows($laskures));
 while ($laskurow = mysql_fetch_assoc($laskures)) {
     $bar->increase();
     $x = 1;
     $query = "SELECT *\n                FROM tilausrivi\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                AND otunnus = '{$laskurow['tunnus']}'\n                AND tyyppi  = 'L'\n                AND kpl+varattu > 0\n                AND tuoteno NOT IN (\n                  '{$yhtiorow['rahti_tuotenumero']}',\n                  '{$yhtiorow['jalkivaatimus_tuotenumero']}',\n                  '{$yhtiorow['erilliskasiteltava_tuotenumero']}',\n                  '{$yhtiorow['kasittelykulu_tuotenumero']}',\n                  '{$yhtiorow['maksuehto_tuotenumero']}',\n                  '{$yhtiorow['ennakkomaksu_tuotenumero']}',\n                  '{$yhtiorow['alennus_tuotenumero']}',\n                  '{$yhtiorow['laskutuslisa_tuotenumero']}',\n                  '{$yhtiorow['kuljetusvakuutus_tuotenumero']}'\n                )";
     $tilausrivires = pupe_query($query);
     $num_rows = mysql_num_rows($tilausrivires);
     while ($tilausrivirow = mysql_fetch_assoc($tilausrivires)) {
         $alet = generoi_alekentta_php($tilausrivirow, 'M', 'kerto');
         $tilausrivirow['hinta'] = $tilausrivirow['hinta'] * $alet;
         $_chk = $laskurow['liitostunnus'] . '####' . $tilausrivirow['tuoteno'] . '####' . $tilausrivirow['kpl'];
         if (!isset($tuotteiden_alehinnat[$_chk])) {
             $query = "SELECT *\n                    FROM tuote\n                    WHERE yhtio = '{$kukarow['yhtio']}'\n                    AND tuoteno = '{$tilausrivirow['tuoteno']}'";
             $tres = pupe_query($query);
             $trow = mysql_fetch_assoc($tres);
             list($lis_hinta, $lis_netto, $lis_ale_kaikki, $alehinta_alv, $alehinta_val) = alehinta($laskurow, $trow, $tilausrivirow['kpl'], '', '', array());
             for ($alepostfix = 1; $alepostfix <= $yhtiorow['myynnin_alekentat']; $alepostfix++) {
                 $lis_hinta *= 1 - $lis_ale_kaikki['ale' . $alepostfix] / 100;
             }
             $tuotteiden_alehinnat[$_chk] = $lis_hinta;
         } else {
             $lis_hinta = $tuotteiden_alehinnat[$_chk];
         }
         $ero = $tilausrivirow['hinta'] - $lis_hinta;
예제 #4
0
 $ostohinta = $ostohinta * $ttrow['tuotekerroin'];
 $alennukset = 1;
 $ostohinta_netto = $ostohinta;
 // lisätään kuluprosentti hintaan jos sitä käytetään saapumisellakin
 if (in_array($yhtiorow['jalkilaskenta_kuluperuste'], array('KP', 'VS', 'PX'))) {
     $ostohinta_netto = $ostohinta_netto * (1 + $ttrow['oletus_kulupros'] / 100);
 }
 // Nolla tai pienempi on virhe, laitetaan ne vikaks
 if ($ostohinta <= 0) {
     $ostohinta = 0;
     $ostohinta_netto = 9999999;
     $netto = "N";
 }
 // Jos ei ole nettohinta, niin lasketaan alennukset
 if (empty($netto)) {
     $alennukset = generoi_alekentta_php($alennus, 'O', 'kerto', 'EI');
     $ostohinta_netto = $ostohinta_netto * $alennukset;
 }
 $ostohinta_netto = round($ostohinta_netto, 6);
 $alennukset = round((1 - $alennukset) * 100, 2);
 $ttrow['ostohinta_oletusvaluutta'] = $ostohinta;
 $ttrow['ostohinta_oletusvaluutta_netto'] = $ostohinta_netto;
 $ttrow['alennukset_oletusvaluutta_netto'] = $alennukset;
 $pakkaukset = tuotteen_toimittajat_pakkauskoot($ttrow['tutotunnus'], 'suurin');
 $ttrow['lavakoko'] = !empty($pakkaukset) ? $pakkaukset[0][0] : '0';
 $toimittajat_a_hinta[] = $ostohinta_netto;
 $toimittajat_a[] = $ttrow;
 // Tuotteen toimittajatiedot omaan failiin
 $trivi = $row['maa'] . "-" . pupesoft_csvstring($row['tuoteno']) . ";";
 $trivi .= pupesoft_csvstring($row['tuoteno']) . ";";
 $trivi .= "{$row['maa']}-{$ttrow['toimittaja']};";
예제 #5
0
function piirra_hinta($row, $oleasrow, $valuurow, $vari, $classmidl, $hinta_rajaus, $poistetut, $lisatiedot)
{
    global $kukarow, $yhtiorow, $verkkokauppa;
    if ($kukarow['hinnat'] >= 0 and ($verkkokauppa == "" or $kukarow["kuka"] != "www")) {
        $myyntihinta = hintapyoristys($row["myyntihinta"]) . " {$yhtiorow['valkoodi']}";
        if ($kukarow["extranet"] != "" and $kukarow["naytetaan_asiakashinta"] != "") {
            list($hinta, $netto, $ale_kaikki, $alehinta_alv, $alehinta_val) = alehinta($oleasrow, $row, 1, '', '', '');
            $myyntihinta_echotus = $hinta * generoi_alekentta_php($ale_kaikki, 'M', 'kerto');
            $myyntihinta = hintapyoristys($myyntihinta_echotus) . " {$alehinta_val}";
        } elseif ($kukarow["extranet"] != "") {
            // jos kyseessä on extranet asiakas yritetään näyttää kaikki hinnat oikeassa valuutassa
            if ($oleasrow["valkoodi"] != $yhtiorow["valkoodi"]) {
                $myyntihinta = hintapyoristys($row["myyntihinta"]) . " {$yhtiorow['valkoodi']}";
                $query = "SELECT *\n                  FROM hinnasto\n                  WHERE yhtio  = '{$kukarow["yhtio"]}'\n                  AND tuoteno  = '{$row["tuoteno"]}'\n                  AND valkoodi = '{$oleasrow["valkoodi"]}'\n                  AND laji     = ''\n                  AND (\n                    (alkupvm <= current_date and if(loppupvm = '0000-00-00',\n                                                    '9999-12-31',\n                                                    loppupvm) >= current_date)\n                    or (alkupvm = '0000-00-00' and loppupvm = '0000-00-00'))\n                  ORDER BY ifnull(to_days(current_date) - to_days(alkupvm), 9999999999999)\n                  LIMIT 1";
                $olhires = pupe_query($query);
                if (mysql_num_rows($olhires) == 1) {
                    $olhirow = mysql_fetch_assoc($olhires);
                    $myyntihinta = hintapyoristys($olhirow["hinta"]) . " {$olhirow['valkoodi']}";
                } elseif ($valuurow["kurssi"] != 0) {
                    $myyntihinta = hintapyoristys(laskuval($row["myyntihinta"], $valuurow["kurssi"])) . " {$oleasrow['valkoodi']}";
                }
            }
        } else {
            $query = "SELECT DISTINCT valkoodi,\n                maa\n                FROM hinnasto\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                AND tuoteno = '{$row['tuoteno']}'\n                AND laji    = ''\n                ORDER BY maa, valkoodi";
            $hintavalresult = pupe_query($query);
            while ($hintavalrow = mysql_fetch_assoc($hintavalresult)) {
                // katotaan onko tuotteelle valuuttahintoja
                $query = "SELECT *\n                  FROM hinnasto\n                  WHERE yhtio  = '{$kukarow['yhtio']}'\n                  AND tuoteno  = '{$row['tuoteno']}'\n                  AND valkoodi = '{$hintavalrow['valkoodi']}'\n                  AND maa      = '{$hintavalrow['maa']}'\n                  AND laji     = ''\n                  AND (\n                    (alkupvm <= current_date and if(loppupvm = '0000-00-00',\n                                                    '9999-12-31',\n                                                    loppupvm) >= current_date)\n                    or (alkupvm = '0000-00-00' and loppupvm = '0000-00-00'))\n                  ORDER BY ifnull(to_days(current_date) - to_days(alkupvm), 9999999999999)\n                  LIMIT 1";
                $hintaresult = pupe_query($query);
                while ($hintarow = mysql_fetch_assoc($hintaresult)) {
                    $myyntihinta .= "<br>{$hintarow['maa']}: " . hintapyoristys($hintarow["hinta"]) . " {$hintarow['valkoodi']}";
                }
            }
        }
        echo "<td valign='top' class='{$vari}' align='right' {$classmidl} nowrap>";
        if ($hinta_rajaus != "") {
            echo '<font style="text-decoration:line-through;">' . hintapyoristys($row["myymalahinta"]) . ' ' . $yhtiorow["valkoodi"] . '</font></br>';
        }
        if ($poistetut != "" and $kukarow["extranet"] != "") {
            echo " <font class='green'>{$myyntihinta}</font>";
        } else {
            echo $myyntihinta;
        }
        if ($lisatiedot != "" and $kukarow["extranet"] == "") {
            echo "<br>" . hintapyoristys($row["nettohinta"]) . " {$yhtiorow['valkoodi']}";
        }
        echo "</td>";
    }
}
예제 #6
0
 foreach ($_tuotteet as $_tuoteno_arr) {
     if ($_tuoteno_arr['tuoteno'] != $row['tuoteno']) {
         if ($i == 6) {
             break;
         }
         $vastaava_saldo = saldo_funktio($_tuoteno_arr['tuoteno'], $varastot_yhtiot, $varastot, $paikoittain, $lisa, $row['yhtio']);
         $vastaava_myydy_kappaleet = myydyt_kappaleet($row['yhtio'], $_tuoteno_arr['tuoteno'], $apvm, $lpvm, $lisa, $ei_vienteja_lisa, $ei_asiakkaan_myynteja_lisa);
         $tuotteen_toimittajat = hae_tuotteen_toimittajat($_tuoteno_arr['tuoteno']);
         $trow = hae_tuote($_tuoteno_arr['tuoteno']);
         $ostohinta = "";
         $tuotteen_toimittajat_string = "";
         foreach ($tuotteen_toimittajat as $tuotteen_toimittaja) {
             $laskurow_temp = array('liitostunnus' => $tuotteen_toimittaja['liitostunnus'], 'valkoodi' => $tuotteen_toimittaja['valkoodi'], 'vienti_kurssi' => $tuotteen_toimittaja['kurssi'], 'ytunnus' => $tuotteen_toimittaja['ytunnus']);
             list($ostohinta_temp, $netto, $alennus, ) = alehinta_osto($laskurow_temp, $trow, 1, '', '', '');
             if (empty($netto)) {
                 $ostohinta_temp = $ostohinta_temp * generoi_alekentta_php($alennus, 'O', 'kerto', 'EI');
             }
             $ostohinta .= sprintf('%.2f', $ostohinta_temp) . ' / ';
             $tuotteen_toimittajat_string .= $tuotteen_toimittaja['toimittajan_nimi'] . ' / ';
         }
         $ostohinta = substr($ostohinta, 0, -3);
         $tuotteen_toimittajat_string = substr($tuotteen_toimittajat_string, 0, -3);
         $vastaava_ennp_myynti = kappaleet_tila_myynti($_tuoteno_arr['tuoteno'], $row['yhtio'], $lisavarattu, $varastosiirtolisa, $ei_vienteja_lisa, $ei_asiakkaan_myynteja_lisa);
         $vastaava_ennp_osto = kappaleet_tila_osto($_tuoteno_arr['tuoteno'], $row['yhtio'], $lisavarattu, $varastolisa);
         $vastaava_ennp = $vastaava_ennp_myynti + $vastaava_ennp_osto;
         if ($valitut["SARAKE{$_x}"] != '') {
             //tuoteno
             $rivi .= "\"{$_tuoteno_arr['tuoteno']}\"\t";
             $worksheet->write($excelrivi, $excelsarake, $_tuoteno_arr["tuoteno"]);
             $excelsarake++;
         }
예제 #7
0
function xf02($tanaan, $xf02loppulause)
{
    global $path_xf02, $yhtiorow, $tuoterajaukset, $toimirajaus;
    echo "TULOSTETAAN xf02...\n";
    $valuuttaQ = "SELECT nimi, kurssi\n                FROM valuu\n                WHERE yhtio = '{$yhtiorow['yhtio']}'";
    $resaluutta = pupe_query($valuuttaQ);
    $valuutat = array();
    while ($valurow = mysql_fetch_assoc($resaluutta)) {
        $valuutat[$valurow["nimi"]] = $valurow["kurssi"];
    }
    $kyselyxfo2 = "SELECT tuote.tuoteno,\n                 tuote.tuotekorkeus,\n                 tuote.tuoteleveys,\n                 tuote.tuotesyvyys,\n                 tuote.nimitys,\n                 tuote.status,\n                 tuote.suoratoimitus,\n                 tuote.epakurantti25pvm epakura,\n                 tuote.ostoehdotus,\n                 (\n                   SELECT korv.tuoteno\n                   FROM korvaavat AS korv\n                   WHERE korv.yhtio = tuote.yhtio\n                   AND korv.id      = korvaavat.id\n                   ORDER BY if(korv.jarjestys = 0, 9999, korv.jarjestys), korv.tuoteno\n                   LIMIT 1\n                 ) korvaavatuoteno,\n                 round((abc_aputaulu.summa / abc_aputaulu.kpl),4) as KAhinta,\n                 round(tuote.tuotemassa,3) tuotemassa,\n                 round(((tuote.tuotekorkeus * tuote.tuoteleveys * tuote.tuotesyvyys)/1000000000),4) as tilavuus\n                 FROM tuote use index (tuoteno_index)\n                 LEFT JOIN abc_aputaulu use index (yhtio_tyyppi_tuoteno) ON (abc_aputaulu.yhtio=tuote.yhtio AND abc_aputaulu.tyyppi='TM' AND tuote.tuoteno=abc_aputaulu.tuoteno)\n                 LEFT JOIN korvaavat ON (korvaavat.yhtio = tuote.yhtio AND korvaavat.tuoteno = tuote.tuoteno)\n                 WHERE tuote.yhtio  = '{$yhtiorow['yhtio']}' {$tuoterajaukset}\n                 GROUP BY tuote.tuoteno, tuote.tuotekorkeus, tuote.tuoteleveys, tuote.tuotesyvyys, tuote.nimitys, tuote.status, tuote.suoratoimitus, tuote.epakurantti25pvm, tuote.ostoehdotus, korvaavatuoteno\n                 HAVING (korvaavatuoteno = tuote.tuoteno OR korvaavatuoteno is null)\n                 ORDER BY 1";
    $rests = pupe_query($kyselyxfo2);
    $rows = mysql_num_rows($rests);
    $fp = fopen($path_xf02, 'w+');
    while ($xf02 = mysql_fetch_assoc($rests)) {
        $query = "SELECT\n              toimi.ytunnus,\n              toimi.tunnus,\n              tuotteen_toimittajat.valuutta,\n              toimi.toimittajanro,\n              tuotteen_toimittajat.ostohinta,\n              ROUND(tuotteen_toimittajat.pakkauskoko, 0) ostokpl,\n              toimi.tyyppi\n              FROM tuotteen_toimittajat use index (yhtio_tuoteno)\n              JOIN toimi on (toimi.yhtio = tuotteen_toimittajat.yhtio AND tuotteen_toimittajat.liitostunnus = toimi.tunnus {$toimirajaus})\n              WHERE tuotteen_toimittajat.yhtio = '{$yhtiorow['yhtio']}'\n              AND tuotteen_toimittajat.tuoteno = '{$xf02['tuoteno']}'\n              ORDER BY if(tuotteen_toimittajat.jarjestys = 0, 9999, tuotteen_toimittajat.jarjestys), tuotteen_toimittajat.tunnus\n              LIMIT 1";
        $rest_toimittajista = pupe_query($query);
        $toim_row = mysql_fetch_assoc($rest_toimittajista);
        if ($toim_row['toimittajanro'] == '' or $toim_row['tyyppi'] == 'P') {
            continue;
        }
        // Hetaan ostohinta
        $laskurow = array();
        $laskurow["liitostunnus"] = $toim_row["tunnus"];
        $laskurow["valkoodi"] = $toim_row["valuutta"];
        $laskurow["vienti_kurssi"] = (isset($valuutat[$toim_row["valuutta"]]) and $valuutat[$toim_row["valuutta"]] > 0) ? $valuutat[$toim_row["valuutta"]] : 1;
        $laskurow["ytunnus"] = $toim_row["ytunnus"];
        $tuote_row = array();
        $tuote_row["tuoteno"] = $xf02["tuoteno"];
        list($hinta, $netto, $ale, $valuutta) = alehinta_osto($laskurow, $tuote_row, 1, "", "", "");
        // Muutetaan valuuttahinta euroiksi.
        if (trim(strtoupper($valuutta)) != trim(strtoupper($yhtiorow["valkoodi"]))) {
            $hinta = $hinta * $laskurow["vienti_kurssi"];
        }
        $alennukset = generoi_alekentta_php($ale, 'O', 'kerto');
        $ostonetto = sprintf("%01.4f", round($hinta * $alennukset, 4));
        $tilavuus = $xf02['tilavuus'];
        if ($tilavuus > 99) {
            $tilavuus = '9999999';
        } else {
            $tilavuus = $tilavuus * 1000;
            $tilavuus = str_replace('.', '', $tilavuus);
        }
        $KA_myynti_hinta = $xf02['KAhinta'];
        if ($KA_myynti_hinta == '') {
            if ($ostonetto == 999999999) {
                $KA_myynti_hinta = 999999999;
            } else {
                $KA_myynti_hinta = sprintf("%.4f", $ostonetto * 1.3);
            }
        }
        if ($xf02['status'] == 'T') {
            $tuotestatus = 'M';
            //tehdastoimitustuotteet
        } elseif ($xf02['ostoehdotus'] == 'E') {
            $tuotestatus = 'D';
            //ostoehdotus=no tuotteet tänne
        } else {
            $tuotestatus = 'R';
        }
        if ($toim_row['ostokpl'] == '0') {
            $toim_row['ostokpl'] = '1';
        }
        $out = sprintf("%-8.8s", $toim_row['toimittajanro']);
        //XVNDR
        $out .= sprintf("%-18.18s", $xf02['tuoteno']);
        //XITEM
        $out .= sprintf("%-3.3s", "001");
        //XWHSE
        $out .= sprintf("%013.13s", str_replace('.', '', $ostonetto));
        //XPCHP
        $out .= sprintf("%013.13s", str_replace('.', '', $KA_myynti_hinta));
        //XSLSP
        $out .= sprintf("%07.7s", $toim_row['ostokpl']);
        //XPACK
        $out .= sprintf("%07.7s", "1");
        //XMINQ
        $out .= sprintf("%07.7s", str_replace('.', '', $xf02['tuotemassa']));
        //XWGHT
        $out .= sprintf("%07.7s", $tilavuus);
        //XVOLM
        $out .= sprintf("%-35.35s", trim($xf02['nimitys']));
        //XNAME
        $out .= sprintf("%-2.2s", "");
        //XUOMS
        $out .= sprintf("%-1.1s", $tuotestatus);
        //XDWO
        $out .= sprintf("%-18.18s", "");
        //XSEQ#
        $out .= sprintf("%-1.1s", "");
        //XDELET
        if (!fwrite($fp, $out . "\n")) {
            echo "Failed writing row.\n";
            die;
        }
    }
    if (!fwrite($fp, $xf02loppulause . "\n")) {
        echo "Failed writing row.\n";
        die;
    }
    fclose($fp);
}