예제 #1
0
if ($tee == "ajaraportti" and isset($submit_nappi)) {
    if (include 'Spreadsheet/Excel/Writer.php') {
        //keksitään failille joku varmasti uniikki nimi:
        list($usec, $sec) = explode(' ', microtime());
        mt_srand((double) $sec + (double) $usec * 100000);
        $excelnimi = md5(uniqid(mt_rand(), true)) . ".xls";
        $workbook = new Spreadsheet_Excel_Writer('/tmp/' . $excelnimi);
        $workbook->setVersion(8);
        $worksheet = $workbook->addWorksheet('Raportti Valmistuksista');
        $format_bold = $workbook->addFormat();
        $format_bold->setBold();
        $excelsarake = 0;
        $excelrivi = 0;
    }
    $lasku_join_ehto = "";
    $valmistuksen_tila = search_array_key_for_value_recursive($valmistuksien_tilat, 'value', $valmistuksen_tila);
    $lasku_join_ehto .= $valmistuksen_tila[0]['query_where'];
    if (isset($valmistuslinja) and $valmistuslinja != '') {
        $lasku_join_ehto .= " AND lasku.kohde = '{$valmistuslinja}'";
    }
    $query = "SELECT\n            tuote.tuoteno,\n            lasku.kohde valmistuslinja,\n            tilausrivi.toimaika,\n            tilausrivi.toimitettuaika,\n            tilausrivi.kerattyaika,\n            tilausrivi.nimitys,\n            lasku.tila,\n            lasku.alatila,\n            tuote.try,\n            tuote.osasto,\n            left(lasku.kerayspvm, 10) kerayspvm,\n            lasku.toimaika,\n            lasku.tunnus valmistusnumero,\n            ifnull(sum(tilausrivi.kpl), 0) valmistettu,\n            ifnull(sum(tilausrivi.varattu), 0) valmistetaan\n            FROM lasku\n            JOIN tilausrivi ON (tilausrivi.yhtio = lasku.yhtio\n              AND tilausrivi.otunnus  = lasku.tunnus\n              AND tilausrivi.tyyppi   = 'W'\n              AND tilausrivi.var     != 'P')\n            JOIN tuote ON (tuote.yhtio = lasku.yhtio\n              AND tuote.tuoteno       = tilausrivi.tuoteno)\n            {$lisa_parametri}\n            WHERE lasku.yhtio         = '{$kukarow["yhtio"]}'\n            AND lasku.tila            = 'V'\n            AND lasku.toimaika        >= '{$pvmalku}'\n            AND lasku.toimaika        <= '{$pvmloppu}'\n            {$lasku_join_ehto}\n            {$lisa}\n            GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13\n            HAVING valmistettu != 0 OR valmistetaan != 0\n            ORDER BY lasku.kohde, tilausrivi.tuoteno, lasku.alatila, lasku.tunnus";
    $result = pupe_query($query);
    if (mysql_num_rows($result) > 0) {
        // Alustetaan array
        $yhteenveto_valmistettu = array();
        $yhteenveto_valmistetaan = array();
        if (isset($workbook)) {
            $worksheet->write($excelrivi, $excelsarake, t("tuoteno"), $format_bold);
            $excelsarake++;
            $worksheet->write($excelrivi, $excelsarake, t("Tuotteen nimi"), $format_bold);
            $excelsarake++;
예제 #2
0
 /**
  *  Tonkii arraysta key->value pairia ja jos löytyy nii palauttaa sen
  */
 private function getParentArray($tree, $parent_cat_id)
 {
     //etsitään keytä "category_id" valuella isatunnus ja return sen lapset
     return search_array_key_for_value_recursive($tree, 'category_id', $parent_cat_id);
 }
예제 #3
0
         if (in_array($toim, array('RIVISYOTTO', 'PIKATILAUS')) and !empty($v_toimipaikka) and $varasto['tyyppi'] != 'E') {
             if ($v_toimipaikka['tunnus'] == 0) {
                 $_toimipaikka = $kukarow['toimipaikka'];
                 $kukarow['toimipaikka'] = 0;
             }
             $toimipaikan_yhtiorow = hae_yhtion_parametrit($kukarow['yhtio'], $v_toimipaikka['tunnus']);
             $kukarow['toimipaikka'] = isset($_toimipaikka) ? $_toimipaikka : $kukarow['toimipaikka'];
             $_toimipaikan_kerayserat_mittatiedot = $toimipaikan_yhtiorow['kerayserat'] == 'K';
             $toimipaikka_ja_varasto_ei_sama = $v_toimipaikka['tunnus'] != $laskurow['yhtio_toimipaikka'];
             $tarvii_lahdon = ($laskurow['eilahetetta'] == '' and $laskurow['sisainen'] == '');
             $_toimitustapa = $laskurow['toimitustapa'] != '';
             // jos varaston toimipaikka ei ole tilauksen toimipaikka, niin aina true.
             $tarvii_lahdon = $toimipaikka_ja_varasto_ei_sama ? TRUE : $tarvii_lahdon;
             if ($_toimipaikan_kerayserat_mittatiedot and $tarvii_lahdon and $_toimitustapa) {
                 $toimitustavat = hae_kaikki_toimitustavat();
                 $toimitustapa = search_array_key_for_value_recursive($toimitustavat, 'selite', $laskurow['toimitustapa']);
                 $toimitustapa = $toimitustapa[0];
                 if (!empty($toimitustapa['tunnus'])) {
                     $query = "SELECT *\n                          FROM lahdot\n                          WHERE yhtio              = '{$kukarow['yhtio']}'\n                          AND liitostunnus         = {$toimitustapa['tunnus']}\n                          AND varasto              = {$varasto['tunnus']}\n                          AND aktiivi              = ''\n                          AND ((pvm                 > CURRENT_DATE)\n                          OR (pvm                   = CURRENT_DATE\n                          AND viimeinen_tilausaika > CURRENT_TIME))";
                     $lahdot_result = pupe_query($query);
                     if (mysql_num_rows($lahdot_result) == 0) {
                         echo "<font class='error'>" . t("VIRHE: Tilauksen toimitustavalla ei ole") . " {$varasto['nimitys']} " . t("varastossa lähtöjä") . "!</font><br><br>";
                         $tilausok++;
                     }
                 }
             }
         }
         unset($_toimipaikka);
     }
 }
 $tuotetyyppi = "";
function paivita_ennakko($params)
{
    global $kukarow, $yhtiorow;
    $syotetyt_lisatiedot = $params['syotetyt_lisatiedot'];
    $valittu_tarjous_tunnus = $params['valittu_tarjous_tunnus'];
    $kappalemaarat = $params['kappalemaarat'];
    $toim = $params['toim'];
    // Siistiään parametrit tietokantaqueryjä varten
    $syotetyt_lisatiedot = pupesoft_cleanstring($syotetyt_lisatiedot);
    $valittu_tarjous_tunnus = pupesoft_cleanstring($valittu_tarjous_tunnus);
    // Haetaan kannasta tilausrivit
    $muokkaamaton_ennakko = hae_tarjous($valittu_tarjous_tunnus);
    foreach ($kappalemaarat as $key => $value) {
        // Kappalemäärä käyttöliittymästä, pilkut pisteiksi ja round 2
        $value = round(str_replace(",", ".", pupesoft_cleanstring($value)), 2);
        // Etsitään tilausrivitunnuksen perusteella tuotteen kannassa oleva kappalemäärä
        $loytynyt_tilausrivi = search_array_key_for_value_recursive($muokkaamaton_ennakko['tilausrivit'], 'tunnus', $key);
        // Tarkistetaan löytyikö tilausrivi, jos ei löydy, ei tehdä mitään
        if (empty($loytynyt_tilausrivi[0])) {
            continue;
        }
        // Kappalemäärä kannasta
        $kplmaara = $loytynyt_tilausrivi[0]['kpl'];
        // jos Optio-rivi niin katsotaan onko syötetty arvo muutettu tyhjästä joksikin muuksi, jos ei niin toimenpiteitä riville ei vaadita
        if ($loytynyt_tilausrivi[0]['var'] == "O" and $value == '') {
            continue;
        } elseif ($kplmaara == $value and $loytynyt_tilausrivi[0]['var'] != "O") {
            continue;
        }
        // Tuoteperheen tapauksessa päivitetään/poistetaan kaikki tuoteperheen rivit, muuten vain ko. rivi
        if ($loytynyt_tilausrivi[0]['tunnus'] == $loytynyt_tilausrivi[0]['perheid_tunnus']) {
            $andy = "AND perheid = '{$loytynyt_tilausrivi[0]['tunnus']}'";
        } else {
            $andy = "AND tunnus = '{$loytynyt_tilausrivi[0]['tunnus']}'";
        }
        // Jos ollaan nollattu kappaleet, päivitetään rivi tilaan Optio
        if ($value == 0) {
            $query = "UPDATE tilausrivi\n                SET var = 'O'\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                AND otunnus = '{$valittu_tarjous_tunnus}'\n                {$andy}";
            pupe_query($query);
        } else {
            // Rivin poisto
            $query = "UPDATE tilausrivi\n                SET tyyppi = 'D'\n                WHERE yhtio = '{$kukarow['yhtio']}'\n                AND otunnus = '{$valittu_tarjous_tunnus}'\n                {$andy}";
            pupe_query($query);
            $parametrit = array("lasku_tunnus" => $valittu_tarjous_tunnus, "tuoteno" => $loytynyt_tilausrivi[0]['tuoteno'], "kpl" => $value, "toim" => $toim, "syotettyhinta" => $loytynyt_tilausrivi[0]['hinta']);
            lisaa_ennakkorivi($parametrit);
        }
    }
    // Päivitetään käyttäjän lisäämät kommentit
    $query = "UPDATE lasku\n            SET sisviesti1 = '{$syotetyt_lisatiedot}'\n            WHERE yhtio = '{$kukarow['yhtio']}'\n            AND tunnus  = '{$valittu_tarjous_tunnus}'";
    pupe_query($query);
    return true;
}
예제 #5
0
파일: edi.php 프로젝트: Hermut/pupesoft
 /**
  * Luo edi tilauksen
  *
  * @param array   $order Tilauksen tiedot ja tilauserivit
  * @return true/false
  */
 static function create($order)
 {
     // require 'magento_salasanat.php' muuttujat
     global $magento_api_ht_edi, $ovt_tunnus, $pupesoft_tilaustyyppi;
     global $verkkokauppa_asiakasnro, $rahtikulu_tuoteno, $rahtikulu_nimitys, $verkkokauppa_erikoiskasittely;
     if (empty($magento_api_ht_edi) or empty($ovt_tunnus) or empty($pupesoft_tilaustyyppi)) {
         exit("Parametrejä puuttuu\n");
     }
     if (empty($verkkokauppa_asiakasnro) or empty($rahtikulu_tuoteno) or empty($rahtikulu_nimitys)) {
         exit("Parametrejä puuttuu\n");
     }
     //Tilauksella käytetyt lahjakortit ei saa vehentää myynti pupen puolella
     $giftcards = json_decode($order['webtex_giftcard']);
     if (!empty($giftcards)) {
         $giftcard_sum = 0;
         foreach ($giftcards as $giftcard_values) {
             foreach ($giftcard_values as $index => $value) {
                 if (!stristr($index, 'classname')) {
                     $giftcard_sum += $value;
                 }
             }
         }
         $grand_total = $order['grand_total'] + $giftcard_sum;
     } else {
         $grand_total = $order['grand_total'];
     }
     // Miten storen nimi?
     //$storenimi = (isset($_COOKIE["store_name"])) ? $_COOKIE["store_name"] : "";
     $storenimi = '';
     //tilauksen otsikko
     //return $order->getUpdatedAt();
     $edi_order = "*IS from:721111720-1 to:IKH,ORDERS*id:" . $order['increment_id'] . " version:AFP-1.0 *MS\n";
     $edi_order .= "*MS " . $order['increment_id'] . "\n";
     $edi_order .= "*RS OSTOTIL\n";
     $edi_order .= "OSTOTIL.OT_NRO:" . $order['increment_id'] . "\n";
     //Tarkistetaan onko tämän nimiselle verkkokaupalle asetettu erikoiskäsittelyjä
     if (isset($verkkokauppa_erikoiskasittely) and count($verkkokauppa_erikoiskasittely) > 0) {
         $edi_store = str_replace("\n", " ", $order['store_name']);
         foreach ($verkkokauppa_erikoiskasittely as $verkkokauppaparametrit) {
             // $verkkokauppaparametrit[0] - Verkkokaupan nimi
             // $verkkokauppaparametrit[1] - Editilaus_tilaustyyppi
             // $verkkokauppaparametrit[2] - Tilaustyyppilisa
             // $verkkokauppaparametrit[3] - Myyjanumero
             // $verkkokauppaparametrit[4] - Vaihtoehtoinen ovttunnus
             if (strpos($edi_store, $verkkokauppaparametrit[0]) !== false) {
                 $vaihtoehtoinen_ovt = $verkkokauppaparametrit[4];
             }
         }
         // Jos erikoiskäsittelyyn on määritelty eri yhtiö tälle kaupalle niin yliajetaan $ovt_tunnus
         if (isset($vaihtoehtoinen_ovt) and !empty($vaihtoehtoinen_ovt)) {
             $ovt_tunnus = $vaihtoehtoinen_ovt;
         }
     }
     //Yrityksen ovt_tunnus MUISTA MUUTTAA
     $edi_order .= "OSTOTIL.OT_TOIMITTAJANRO:" . $ovt_tunnus . "\n";
     $edi_order .= "OSTOTIL.OT_TILAUSTYYPPI:{$pupesoft_tilaustyyppi}\n";
     $edi_order .= "OSTOTIL.VERKKOKAUPPA:" . str_replace("\n", " ", $order['store_name']) . "\n";
     $edi_order .= "OSTOTIL.OT_VERKKOKAUPPA_ASIAKASNRO:" . $order['customer_id'] . "\n";
     $edi_order .= "OSTOTIL.OT_VERKKOKAUPPA_TILAUSVIITE:" . str_replace("\n", " ", $order['reference_number']) . "\n";
     $edi_order .= "OSTOTIL.OT_VERKKOKAUPPA_TILAUSNUMERO:" . str_replace("\n", " ", $order['order_number']) . "\n";
     $edi_order .= "OSTOTIL.OT_VERKKOKAUPPA_KOHDE:" . str_replace("\n", " ", $order['target']) . "\n";
     $edi_order .= "OSTOTIL.OT_TILAUSAIKA:\n";
     $edi_order .= "OSTOTIL.OT_KASITTELIJA:\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUSAIKA:\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUSTAPA:" . $order['shipping_description'] . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUSEHTO:\n";
     //Onko tilaus maksettu = processing vai jälkvaatimus = pending_cashondelivery_asp
     $edi_order .= "OSTOTIL.OT_MAKSETTU:" . $order['status'] . "\n";
     $edi_order .= "OSTOTIL.OT_MAKSUEHTO:" . strip_tags($order['payment']['method']) . "\n";
     $edi_order .= "OSTOTIL.OT_VIITTEEMME:\n";
     $edi_order .= "OSTOTIL.OT_VIITTEENNE:{$storenimi}\n";
     $edi_order .= "OSTOTIL.OT_VEROMAARA:" . $order['tax_amount'] . "\n";
     $edi_order .= "OSTOTIL.OT_SUMMA:" . $grand_total . "\n";
     $edi_order .= "OSTOTIL.OT_VALUUTTAKOODI:" . $order['order_currency_code'] . "\n";
     $edi_order .= "OSTOTIL.OT_KLAUSUULI1:\n";
     $edi_order .= "OSTOTIL.OT_KLAUSUULI2:\n";
     $edi_order .= "OSTOTIL.OT_KULJETUSOHJE:\n";
     $edi_order .= "OSTOTIL.OT_LAHETYSTAPA:\n";
     $edi_order .= "OSTOTIL.OT_VAHVISTUS_FAKSILLA:\n";
     $edi_order .= "OSTOTIL.OT_FAKSI:\n";
     $billingadress = str_replace("\n", ", ", $order['billing_address']['street']);
     $shippingadress = str_replace("\n", ", ", $order['shipping_address']['street']);
     //Asiakkaan ovt_tunnus MUISTA MUUTTAA
     $edi_order .= "OSTOTIL.OT_ASIAKASNRO:" . $verkkokauppa_asiakasnro . "\n";
     // Yritystilauksissa vaihdetaan yrityksen ja tilaajan nimi toisin päin
     if (!empty($order['billing_address']['company'])) {
         $edi_order .= "OSTOTIL.OT_YRITYS:" . $order['billing_address']['lastname'] . " " . $order['billing_address']['firstname'] . "\n";
         $edi_order .= "OSTOTIL.OT_YHTEYSHENKILO:" . $order['billing_address']['company'] . "\n";
     } else {
         $edi_order .= "OSTOTIL.OT_YRITYS:" . $order['billing_address']['company'] . "\n";
         $edi_order .= "OSTOTIL.OT_YHTEYSHENKILO:" . $order['billing_address']['lastname'] . " " . $order['billing_address']['firstname'] . "\n";
     }
     $edi_order .= "OSTOTIL.OT_KATUOSOITE:" . $billingadress . "\n";
     $edi_order .= "OSTOTIL.OT_POSTITOIMIPAIKKA:" . $order['billing_address']['city'] . "\n";
     $edi_order .= "OSTOTIL.OT_POSTINRO:" . $order['billing_address']['postcode'] . "\n";
     $edi_order .= "OSTOTIL.OT_YHTEYSHENKILONPUH:" . $order['billing_address']['telephone'] . "\n";
     $edi_order .= "OSTOTIL.OT_YHTEYSHENKILONFAX:" . $order['billing_address']['fax'] . "\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_YRITYS:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_KATUOSOITE:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_POSTITOIMIPAIKKA:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_POSTINRO:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_MAAKOODI:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_YHTEYSHENKILO:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_YHTEYSHENKILONPUH:\n";
     $edi_order .= "OSTOTIL.OT_MYYNTI_YHTEYSHENKILONFAX:\n";
     // Yritystilauksissa vaihdetaan yrityksen ja tilaajan nimi toisin päin
     if (!empty($order['shipping_address']['company'])) {
         $edi_order .= "OSTOTIL.OT_TOIMITUS_YRITYS:" . $order['shipping_address']['lastname'] . " " . $order['shipping_address']['firstname'] . "\n";
         $edi_order .= "OSTOTIL.OT_TOIMITUS_NIMI:" . $order['shipping_address']['company'] . "\n";
     } else {
         $edi_order .= "OSTOTIL.OT_TOIMITUS_YRITYS:" . $order['shipping_address']['company'] . "\n";
         $edi_order .= "OSTOTIL.OT_TOIMITUS_NIMI:" . $order['shipping_address']['lastname'] . " " . $order['shipping_address']['firstname'] . "\n";
     }
     $edi_order .= "OSTOTIL.OT_TOIMITUS_KATUOSOITE:" . $shippingadress . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUS_POSTITOIMIPAIKKA:" . $order['shipping_address']['city'] . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUS_POSTINRO:" . $order['shipping_address']['postcode'] . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUS_MAAKOODI:" . $order['shipping_address']['country_id'] . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUS_PUH:" . $order['shipping_address']['telephone'] . "\n";
     $edi_order .= "OSTOTIL.OT_TOIMITUS_EMAIL:" . $order['customer_email'] . "\n";
     $edi_order .= "*RE OSTOTIL\n";
     $i = 1;
     foreach ($order['items'] as $item) {
         $product_id = $item['product_id'];
         if ($item['product_type'] != "configurable") {
             // Tuoteno
             $tuoteno = $item['sku'];
             if (substr($tuoteno, 0, 4) == "SKU_") {
                 $tuoteno = substr($tuoteno, 4);
             }
             // Nimitys
             $nimitys = $item['name'];
             // Määrä
             $kpl = $item['qty_ordered'] * 1;
             // Hinta pitää hakea isältä
             $result = search_array_key_for_value_recursive($order['items'], "item_id", $item['parent_item_id']);
             // Löyty yks tai enemmän, otetaan eka?
             if (count($result) != 0) {
                 $_item = $result[0];
             } else {
                 $_item = $item;
             }
             // Verollinen yksikköhinta
             $verollinen_hinta = $_item['original_price'];
             // Veroton yksikköhinta
             $veroton_hinta = $_item['price'];
             // Rivin alennusprosentti
             $alennusprosentti = $_item['discount_percent'];
             // Rivin alennusmäärä
             $alennusmaara = $_item['base_discount_amount'];
             // Jos alennusprosentti on 0, tarkistetaan vielä onko annettu euromääräistä alennusta
             if ($alennusprosentti == 0 and $alennusmaara > 0) {
                 // Lasketaan alennusmäärä alennusprosentiksi
                 $alennusprosentti = round($alennusmaara / $verollinen_hinta * 100, 6);
             }
             // Verokanta
             $alvprosentti = $_item['tax_percent'];
             // Verollinen rivihinta
             $rivihinta_verollinen = round($verollinen_hinta * $kpl * (1 - $alennusprosentti / 100), 6);
             // Veroton rivihinta
             $rivihinta_veroton = round($veroton_hinta * $kpl * (1 - $alennusprosentti / 100), 6);
             $edi_order .= "*RS OSTOTILRIV {$i}\n";
             $edi_order .= "OSTOTILRIV.OTR_NRO:" . $order['increment_id'] . "\n";
             $edi_order .= "OSTOTILRIV.OTR_RIVINRO:{$i}\n";
             $edi_order .= "OSTOTILRIV.OTR_TOIMITTAJANRO:\n";
             $edi_order .= "OSTOTILRIV.OTR_TUOTEKOODI:{$tuoteno}\n";
             $edi_order .= "OSTOTILRIV.OTR_NIMI:{$nimitys}\n";
             $edi_order .= "OSTOTILRIV.OTR_TILATTUMAARA:{$kpl}\n";
             // Verottomat hinnat
             $edi_order .= "OSTOTILRIV.OTR_VEROKANTA:{$alvprosentti}\n";
             $edi_order .= "OSTOTILRIV.OTR_RIVISUMMA:{$rivihinta_veroton}\n";
             $edi_order .= "OSTOTILRIV.OTR_OSTOHINTA:{$veroton_hinta}\n";
             $edi_order .= "OSTOTILRIV.OTR_ALENNUS:{$alennusprosentti}\n";
             $edi_order .= "OSTOTILRIV.OTR_VIITE:\n";
             $edi_order .= "OSTOTILRIV.OTR_OSATOIMITUSKIELTO:\n";
             $edi_order .= "OSTOTILRIV.OTR_JALKITOIMITUSKIELTO:\n";
             $edi_order .= "OSTOTILRIV.OTR_YKSIKKO:\n";
             $edi_order .= "OSTOTILRIV.OTR_SALLITAANJT:0\n";
             $edi_order .= "*RE  OSTOTILRIV {$i}\n";
             $i++;
         }
     }
     // // Rahtikulu, veroton
     $rahti_veroton = $order['shipping_amount'];
     if ($rahti_veroton != 0) {
         // Rahtikulu, verollinen
         $rahti = $order['shipping_amount'] + $order['shipping_tax_amount'];
         // Rahtin alviprossa
         $rahti_alvpros = round(($rahti / $rahti_veroton - 1) * 100);
         $edi_order .= "*RS OSTOTILRIV {$i}\n";
         $edi_order .= "OSTOTILRIV.OTR_NRO:" . $order['increment_id'] . "\n";
         $edi_order .= "OSTOTILRIV.OTR_RIVINRO:{$i}\n";
         $edi_order .= "OSTOTILRIV.OTR_TOIMITTAJANRO:\n";
         $edi_order .= "OSTOTILRIV.OTR_TUOTEKOODI:{$rahtikulu_tuoteno}\n";
         $edi_order .= "OSTOTILRIV.OTR_NIMI:{$rahtikulu_nimitys}\n";
         $edi_order .= "OSTOTILRIV.OTR_TILATTUMAARA:1\n";
         $edi_order .= "OSTOTILRIV.OTR_RIVISUMMA:{$rahti_veroton}\n";
         $edi_order .= "OSTOTILRIV.OTR_OSTOHINTA:{$rahti_veroton}\n";
         $edi_order .= "OSTOTILRIV.OTR_ALENNUS:0\n";
         $edi_order .= "OSTOTILRIV.OTR_VEROKANTA:{$rahti_alvpros}\n";
         $edi_order .= "OSTOTILRIV.OTR_VIITE:\n";
         $edi_order .= "OSTOTILRIV.OTR_OSATOIMITUSKIELTO:\n";
         $edi_order .= "OSTOTILRIV.OTR_JALKITOIMITUSKIELTO:\n";
         $edi_order .= "OSTOTILRIV.OTR_YKSIKKO:\n";
         $edi_order .= "*RE  OSTOTILRIV {$i}\n";
     }
     $edi_order .= "*ME\n";
     $edi_order .= "*IE";
     if (!PUPE_UNICODE) {
         $edi_order = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $edi_order);
     }
     $filename = $magento_api_ht_edi . "/magento-order-{$order['increment_id']}-" . date("Ymd") . "-" . md5(uniqid(rand(), true)) . ".txt";
     file_put_contents($filename, $edi_order);
     return true;
 }
예제 #6
0
 }
 if ($rappari != $edrappari) {
     unset($valitut);
     $tee = "JATKA";
 }
 if (!isset($edrappari) or $rappari == "" and $edrappari != "") {
     $defaultit = "PÄÄLLE";
 }
 $abcnimi = $ryhmanimet[$abcrajaus];
 echo "  <form method='post' autocomplete='off'>\n        <input type='hidden' name='tee' value='RAPORTOI'>\n        <input type='hidden' name='osasto' value='{$osasto}'>";
 foreach ($tuoryh as $tuoteryhma) {
     echo "<input type='hidden' name='tuoryh[]' value='{$tuoteryhma}'>";
 }
 echo "\n        <input type='hidden' name='ytunnus' value='{$ytunnus}'>\n        <input type='hidden' name='edrappari' value='{$rappari}'>\n        <input type='hidden' name='toimittajaid' value='{$toimittajaid}'>\n        <input type='hidden' name='asiakasid' value='{$asiakasid}'>\n        <input type='hidden' name='tuotemerkki' value='{$tuotemerkki}'>\n        <input type='hidden' name='asiakasno' value='{$asiakasno}'>\n        <input type='hidden' name='asiakasosasto' value='{$asiakasosasto}'>\n        <input type='hidden' name='abcrajaus' value='{$abcrajaus}'>\n        <input type='hidden' name='abcrajaustapa' value='{$abcrajaustapa}'>\n        <input type='hidden' name='KAIKKIJT' value='{$KAIKKIJT}'>\n\n        <table>\n        <tr><th>" . t("Osasto") . "</th><td colspan='3'>{$osasto} {$trow['selitetark']}</td></tr>\n        <tr>\n          <th>" . t("Tuoteryhmä") . "</th>\n          <td colspan='3'>\n          ";
 foreach ($tuoryh as $tuoteryhma) {
     $tuoteryhma_avainsana = search_array_key_for_value_recursive($srow, 'selite', $tuoteryhma);
     //search_array_key_for_value_recursive funktio tukee monen solun löytymistä haettavasta array:stä.
     //Tässä tapauksessa tiedämme, että srow array:stä löytyy kullakin selitteellä vain yksi solu niin voimme viitata $tuoteryhma_avainsana arrayn ensimmäiseen alkioon
     echo $tuoteryhma . ' ' . $tuoteryhma_avainsana[0]['selitetark'] . '<br/>';
 }
 echo "\n          </td>\n        </tr>\n        <tr><th>" . t("Toimittaja") . "</th><td colspan='3'>{$ytunnus} {$trow1['nimi']}</td></tr>\n        <tr><th>" . t("Tuotemerkki") . "</th><td colspan='3'>{$tuotemerkki}</td></tr>\n        <tr><th>" . t("ABC-rajaus") . "</th><td colspan='3'>{$abcnimi}</td></tr>\n        <tr><th>" . t("Asiakasosasto") . "</th><td colspan='3'>{$asiakasosasto}</td></tr>\n        <tr><th>" . t("Asiakas") . "</th><td colspan='3'>{$asiakasno} {$trow2['nimi']}</td></tr>\n        <tr><th>" . t("JT") . "</th><td colspan='3'>{$KAIKKIJT}</td></tr>";
 echo "  <tr><td class='back'><br></td></tr>";
 echo "<tr>";
 echo "<td class='back'></td>";
 echo "<th colspan='3'>", t("Alkupäivämäärä (pp-kk-vvvv)"), "</th>";
 echo "<td class='back'></td>";
 echo "<th colspan='3'>", t("Loppupäivämäärä (pp-kk-vvvv)"), "</th>";
 echo "</tr>";
 for ($i = 1; $i < 13; $i++) {
     echo "<tr>";
     echo "<th>", t("Kuukausi"), " {$i}</th>";
예제 #7
0
 // loopataan tuotteet läpi
 foreach ($valmistettavat_tuotteet as $tuoterivi) {
     // Jos yhteensänäkymä, kerätään vaan data ja continue
     if ($ehdotetut_valmistukset == 'valmistuslinjoittain') {
         $valmistukset_yhteensa[$tuoterivi['valmistuslinja']]['valmistusmaara'] += $tuoterivi["valmistussuositus"];
         $valmistukset_yhteensa[$tuoterivi['valmistuslinja']]['yhteensa_kpl'] += $tuoterivi["valmistussuositus"];
         $valmistukset_yhteensa[$tuoterivi['valmistuslinja']]['valmistusaika_sekunneissa'] += $tuoterivi['valmistusaika'];
         continue;
     }
     if ($tuoterivi['valmistuslinja'] != $EDlinja or $EDlinja === false) {
         $kumulatiivinen_valmistusaika = 0;
         $valmistuspaiva = 1;
         $kapasiteetti_varaus = 0;
     }
     // Haetaan valmistuslinjan tiedot (päiväkapasiteetti)
     $tuoterivin_valmistuslinja = search_array_key_for_value_recursive($valmistuslinjat, 'selite', $tuoterivi['valmistuslinja']);
     // Jos päiväkapasiteettiä ei ole syötetty, laitetaan 24h
     $paivakapasiteetti = $tuoterivin_valmistuslinja[0]['selitetark_2'] == 0 ? 86400 : $tuoterivin_valmistuslinja[0]['selitetark_2'];
     $valmistuksen_kokonaiskesto = $tuoterivi['valmistusaika'];
     // Lasketaan valmistuksien kumulatiivistä valmistusaikaa per linja
     $kumulatiivinen_valmistusaika += $valmistuksen_kokonaiskesto;
     // Lasketaan onko tällä päivällä vapaata aikaa
     $vapaa_paivakapasiteetti = $paivakapasiteetti - $kapasiteetti_varaus - $valmistuksen_kokonaiskesto;
     // Valmistus mahtuu tälle päivälle
     if ($vapaa_paivakapasiteetti >= 0) {
         $kapasiteetti_varaus += $valmistuksen_kokonaiskesto;
     } else {
         // Valmistus ei mahdu päivälle
         // Katsotaan varattu kapasiteetti päivissä, jotta tiedetään miltä päivältä tämä valmistus pitää aloittaa
         $kesto_paivissa = floor($kapasiteetti_varaus / $paivakapasiteetti);
         $kesto_paivissa = $kesto_paivissa == 0 ? 1 : $kesto_paivissa;
예제 #8
0
function hae_asiakasalet($request)
{
    global $kukarow, $yhtiorow;
    $tuotenumerot = array_keys($request['tuotteet']);
    $tuote_where = "AND status NOT IN ('P','X')";
    if (!empty($request['nayta_poistetut'])) {
        $tuote_where = "";
    }
    $query = "SELECT *\n            FROM tuote\n            WHERE yhtio   = '{$kukarow['yhtio']}'\n            AND tuoteno   IN ('" . implode("','", $tuotenumerot) . "')\n            {$tuote_where}\n            AND aleryhma != ''\n            ORDER BY tuote.aleryhma ASC, tuote.nimitys ASC";
    $result = pupe_query($query);
    $tuotteet = array();
    $palautettavat_kentat = "hinta,netto,ale,hintaperuste";
    while ($tuote = mysql_fetch_assoc($result)) {
        if (!empty($request['valittu_asiakas'])) {
            $laskurow = array();
            //haetaan asiakkaan oma hinta
            $laskurow["ytunnus"] = $request['asiakas']["ytunnus"];
            $laskurow["liitostunnus"] = $request['asiakas']["tunnus"];
            $laskurow["vienti"] = $request['asiakas']["vienti"];
            $laskurow["alv"] = $request['asiakas']["alv"];
            $laskurow["valkoodi"] = $request['asiakas']["valkoodi"];
            $laskurow["maa"] = $request['asiakas']["maa"];
            $laskurow['toim_ovttunnus'] = $request['asiakas']["toim_ovttunnus"];
            $laskurow['liitostunnus'] = $request['valittu_asiakas'];
            $alehinnat = alehinta($laskurow, $tuote, 1, '', '', '', $palautettavat_kentat, '', '');
        } else {
            $alehinnat = alehinta(array(), $tuote, 1, '', '', '', $palautettavat_kentat, '', '', $request['valittu_asiakasryhma']);
        }
        $query = "SELECT *\n              FROM tuotteen_toimittajat\n              WHERE yhtio = '{$kukarow['yhtio']}'\n              AND tuoteno = '{$tuote['tuoteno']}'\n              ORDER BY jarjestys ASC\n              LIMIT 1";
        $tuotteen_toimittaja_result = pupe_query($query);
        $tuotteen_toimittaja_row = mysql_fetch_assoc($tuotteen_toimittaja_result);
        $alennettu_hinta = (1 - $alehinnat['ale']['ale1'] / 100) * $tuote['myyntihinta'];
        $alennusryhma = search_array_key_for_value_recursive($request['aleryhmat'], 'ryhma', $tuote['aleryhma']);
        if ($alennettu_hinta == 0) {
            $kateprosentti = number_format(0, 2);
        } else {
            $kateprosentti = number_format((1 - $tuote['kehahin'] / $alehinnat['hinta']) * 100, 2);
        }
        $status_array = array('A' => t('Aktiivi'), 'P' => t('Poistettu'), 'T' => t('Tilaustuote'));
        $tuote_temp = array('aleryhma' => $alennusryhma[0], 'tuoteno' => $tuote['tuoteno'], 'tuote_nimi' => $tuote['nimitys'], 'kappalemaara' => 1, 'yksikko' => $tuote['yksikko'], 'paivitys_pvm' => $tuote['muutospvm'], 'ostohinta' => number_format($tuotteen_toimittaja_row['ostohinta'], 2), 'kehahin' => number_format($tuote['kehahin'], 2), 'ovh_hinta' => number_format($tuote['myyntihinta'], 2), 'ryhman_ale' => number_format($alennettu_hinta, 2), 'hinnasto_hinta' => ($alehinnat['hintaperuste'] == 2 or $alehinnat['hintaperuste'] == 5) ? number_format($alehinnat['hinta'], 2) : '', 'status' => $status_array[$tuote['status']], 'ale_prosentti' => '', 'tarjous_hinta' => '', 'alennus_prosentti' => '', 'kate_prosentti' => $kateprosentti);
        $tuotteet[] = $tuote_temp;
    }
    return $tuotteet;
}
예제 #9
0
function echo_valmistukset_joissa_raaka_aine_ei_riita($request)
{
    global $kukarow, $yhtiorow;
    $tulostettu = false;
    echo "<table>";
    foreach ($request['valmistukset'] as $valmistus) {
        foreach ($valmistus['tilausrivit'] as $tilausrivi) {
            if ($request['esitysmuoto'] == 'A') {
                echo "<thead>";
                echo "<tr>";
                echo "<th>" . t('Valmisteen tuoteno') . "</th>";
                echo "<th>" . t('Valmisteen nimitys') . "</th>";
                echo "<th>" . t('Valmistusnumero') . "</th>";
                echo "<th>" . t('Valmistuslinja') . "</th>";
                echo "<th>" . t('Valmistetaan kpl') . "</th>";
                echo "<th>" . t('Valmistuksen tila') . "</th>";
                echo "<th>" . t('Keräyspäivä') . "</th>";
                echo "<th>" . t('Valmistuspäivä') . "</th>";
                echo "</tr>";
                echo "</thead>";
                echo "<tbody>";
                echo "<tr class='aktiivi'>";
                echo "<td>";
                echo $tilausrivi['tuoteno'];
                echo "</td>";
                echo "<td>";
                echo $tilausrivi['nimitys'];
                echo "</td>";
                echo "<td>";
                echo $tilausrivi['lasku_tunnus'];
                echo "</td>";
                echo "<td>";
                $valmistuslinja = search_array_key_for_value_recursive($request['valmistuslinjat'], 'selite', $tilausrivi['valmistuslinja']);
                $valmistuslinja = $valmistuslinja[0];
                if (empty($valmistuslinja)) {
                    echo t('Ei valmistuslinjaa');
                } else {
                    echo $valmistuslinja['selitetark'];
                }
                echo "</td>";
                echo "<td>";
                echo $tilausrivi['valmistettava_kpl'];
                echo "</td>";
                echo "<td>";
                $laskutyyppi = $tilausrivi['tila'];
                $alatila = $tilausrivi['alatila'];
                require 'inc/laskutyyppi.inc';
                echo $laskutyyppi . ' ' . $alatila;
                echo "</td>";
                echo "<td>";
                echo date('d.m.Y', strtotime($tilausrivi['kerayspvm']));
                echo "</td>";
                echo "<td>";
                echo date('d.m.Y', strtotime($tilausrivi['toimaika']));
                echo "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td colspan='8'>";
                echo "&nbsp;";
                echo "</td>";
                echo "</tr>";
                echo "</tbody>";
            }
            if (!$tulostettu and $request['esitysmuoto'] == 'B') {
                echo "<thead>";
                echo "<tr>";
                echo "<th>" . t('Raaka-aineen tuoteno') . "</th>";
                echo "<th>" . t('Raaka-aineen nimitys') . "</th>";
                echo "<th>" . t('Valmistusnumero') . "</th>";
                echo "<th>" . t('Saldo') . "</th>";
                echo "<th>" . t('Hyllyssä') . "</th>";
                echo "<th>" . t('Myytävissä') . "</th>";
                echo "<th>" . t('Tilattu') . "</th>";
                echo "<th>" . t('Toimittaja') . "</th>";
                echo "</tr>";
                echo "</thead>";
                $tulostettu = true;
            }
            echo "<tbody>";
            foreach ($tilausrivi['raaka_aineet'] as $raaka_aine) {
                echo "<tr class='aktiivi'>";
                echo "<td>";
                echo $raaka_aine['tuoteno'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['nimitys'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['lasku_tunnus'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['saldo'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['hyllyssa'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['myytavissa'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['tilattu'];
                echo "</td>";
                echo "<td>";
                echo $raaka_aine['toimittaja'];
                echo "</td>";
                echo "</tr>";
            }
            if ($request['esitysmuoto'] == 'A') {
                echo "<tr>";
                echo "<td class='back' colspan='8'>";
                echo "&nbsp;";
                echo "</td>";
                echo "</tr>";
                echo "<tr>";
                echo "<td class='back' colspan='8'>";
                echo "&nbsp;";
                echo "</td>";
                echo "</tr>";
            }
            echo "</tbody>";
        }
    }
    echo "</table>";
}
예제 #10
0
    if (!empty($request['tallenna_exceliin'])) {
        $excel_filepath = generoi_custom_excel_tiedosto($request);
        echo_tallennus_formi($excel_filepath, t('Saldovahvistus'));
    }
    echo_saldovahvistukset($request);
} elseif ($request['tee'] == 'NAYTATILAUS' or $request['tee'] == 'tulosta_saldovahvistus_pdf') {
    //requestissa tulee tietyn ytunnuksen lasku_tunnuksia. Tällöin $laskut arrayssa on vain yksi solu
    $laskut = hae_myyntilaskuja_joilla_avoin_saldo($request, true);
    //Jos saldovahvistus_rivi löytyy jo valittujen rivien joukosta, niin haetaan riville tallennetut viesti ja päivämäärä sessiosta
    $lasku_tunnukset_temp = implode('', $laskut['lasku_tunnukset']);
    if (array_key_exists($lasku_tunnukset_temp, $_SESSION['valitut_laskut'])) {
        $laskut['saldovahvistus_viesti'] = search_array_key_for_value_recursive($request['saldovahvistus_viestit'], 'selite', $_SESSION['valitut_laskut'][$lasku_tunnukset_temp]['saldovahvistus_viesti']);
        $laskut['saldovahvistus_viesti'] = $laskut['saldovahvistus_viesti'][0];
        $laskut['laskun_avoin_paiva'] = $_SESSION['valitut_laskut'][$lasku_tunnukset_temp]['laskun_avoin_paiva'];
    } else {
        $laskut['saldovahvistus_viesti'] = search_array_key_for_value_recursive($request['saldovahvistus_viestit'], 'selite', $request['saldovahvistus_viesti']);
        $laskut['saldovahvistus_viesti'] = $laskut['saldovahvistus_viesti'][0];
        $laskut['laskun_avoin_paiva'] = $request['paiva'];
    }
    if ($request['ryhmittely_tyyppi'] == 'ytunnus') {
        $boss = true;
    } else {
        $boss = false;
    }
    $laskut['tiliotepvm'] = "{$request['vv']}-{$request['kk']}-{$request['pp']}";
    //Valittu saldovahvistusviesti
    $pdf_filepath = hae_saldovahvistus_pdf($laskut, $boss);
    if ($request['tee'] == 'NAYTATILAUS') {
        echo file_get_contents($pdf_filepath);
    } elseif ($request['tee'] == 'tulosta_saldovahvistus_pdf') {
        $kirjoitin_komento = hae_kayttajan_kirjoitin();
예제 #11
0
function parsi_paivat(&$request)
{
    if (!empty($request['valittu_tilikausi'])) {
        $tilikausi_temp = search_array_key_for_value_recursive($request['tilikaudet'], 'tunnus', $request['valittu_tilikausi']);
        //funktion on tarkoitus palauttaa ainoastaan yksi tilikausi, siksi voimme viitata indeksillä
        $request['alku_aika'] = $tilikausi_temp[0]['tilikausi_alku'];
        $request['loppu_aika'] = $tilikausi_temp[0]['tilikausi_loppu'];
    } else {
        $request['alku_aika'] = $request['vva'] . '-' . $request['kka'] . '-' . $request['ppa'];
        $request['loppu_aika'] = date('Y-m-d', strtotime($request['vvl'] . '-' . $request['kkl'] . '-' . $request['ppl'] . ' + 1 day'));
    }
}