コード例 #1
0
ファイル: relex_suppliers.php プロジェクト: Hermut/pupesoft
$header = "code;name;country\n";
fwrite($fp, $header);
$toimittajarajaus = "";
// Haetaan aika jolloin tämä skripti on viimeksi ajettu
$datetime_checkpoint = cron_aikaleima("RELEX_SUPL_CRON");
// Otetaan mukaan vain edellisen ajon jälkeen muuttuneet
if ($paiva_ajo and $datetime_checkpoint != "") {
    $toimittajarajaus = " AND (toimi.muutospvm > '{$datetime_checkpoint}' or toimi.luontiaika > '{$datetime_checkpoint}')";
} elseif ($paiva_ajo) {
    $toimittajarajaus = " AND (toimi.muutospvm >= date_sub(now(), interval 24 HOUR) or toimi.luontiaika >= date_sub(now(), interval 24 HOUR))";
}
// Haetaan toimittajat
$query = "SELECT\n          yhtio.maa,\n          toimi.tunnus,\n          concat_ws(' ', toimi.nimi, toimi.nimitark) nimi,\n          toimi.maa toimittajan_maa\n          FROM toimi\n          JOIN yhtio ON (toimi.yhtio = yhtio.yhtio)\n          WHERE toimi.yhtio       = '{$yhtio}'\n          AND toimi.oletus_vienti in ('C','F','I')\n          AND toimi.toimittajanro not in ('0','')\n          AND toimi.tyyppi        = ''\n          {$toimittajarajaus}\n          ORDER BY toimi.tunnus";
$res = pupe_query($query);
// Tallennetaan aikaleima
cron_aikaleima("RELEX_SUPL_CRON", date('Y-m-d H:i:s'));
// Kerrotaan montako riviä käsitellään
$rows = mysql_num_rows($res);
echo date("d.m.Y @ G:i:s") . ": Relex Toimittajarivejä {$rows} kappaletta.\n";
$k_rivi = 0;
while ($row = mysql_fetch_assoc($res)) {
    $rivi = "{$row['maa']}-{$row['tunnus']};";
    $rivi .= pupesoft_csvstring($row['nimi']) . ";";
    $rivi .= pupesoft_csvstring($row['toimittajan_maa']);
    $rivi .= "\n";
    fwrite($fp, $rivi);
    $k_rivi++;
}
fclose($fp);
// Tehdään FTP-siirto
if (($paiva_ajo or $weekly_ajo) and !empty($relex_ftphost)) {
コード例 #2
0
//  kerätyt myyntirivit (ei normihyväreitä, mutta kerätyt reklamatiot kyllä)
//  kerätyt siirtorivit (paitsi sisäiset siirrot, eikä kirjanpidollisia siirtoja)
//  kerätyt kulutukset
$query_ale_lisa = generoi_alekentta('M');
$query = "(SELECT\n           yhtio.maa,\n           tapahtuma.laadittu laadittu,\n           date_format(tapahtuma.laadittu, '%Y-%m-%d') pvm,\n           tapahtuma.varasto,\n           tapahtuma.tuoteno,\n           tapahtuma.laji,\n           tapahtuma.kpl,\n           if (tapahtuma.laji = 'tulo', tapahtuma.kplhinta, tapahtuma.hinta) kplhinta,\n           lasku.tilaustyyppi,\n           lasku.varasto lahdevarasto,\n           lasku.clearing vastaanottovarasto,\n           lasku.liitostunnus,\n           tapahtuma.tunnus as sorttaustunnus,\n           if (lasku.tila is not null and lasku.tila = 'G' and tapahtuma.kpl < 0, 1, 0) keratty_siirto,\n           if (tapahtuma.laji = 'laskutus' and (tapahtuma.kpl < 0 or tapahtuma.kpl > 0 and lasku.tilaustyyppi = 'R'), 1, 0) keratty_myynti,\n           if (tapahtuma.laji = 'siirto' and (tilausrivi.varasto = lasku.clearing or lasku.chn = 'KIR'), 1, 0) sisainen_tai_kir_siirto\n           FROM tapahtuma\n           JOIN tuote ON (tuote.yhtio = tapahtuma.yhtio\n             AND tuote.tuoteno     = tapahtuma.tuoteno\n             {$tuoterajaus})\n           JOIN yhtio ON (tapahtuma.yhtio = yhtio.yhtio)\n           LEFT JOIN tilausrivi USE INDEX (PRIMARY) ON (tilausrivi.yhtio = tapahtuma.yhtio and tilausrivi.tunnus = tapahtuma.rivitunnus)\n           LEFT JOIN lasku USE INDEX (PRIMARY) ON (lasku.yhtio = tilausrivi.yhtio and lasku.tunnus = tilausrivi.otunnus)\n           WHERE tapahtuma.yhtio   = '{$yhtio}'\n           AND tapahtuma.laji      in ('laskutus', 'tulo', 'siirto', 'valmistus','inventointi')\n           AND tapahtuma.kpl      != 0\n           {$tapahtumarajaus}\n           HAVING keratty_siirto = 0 AND keratty_myynti = 0 AND sisainen_tai_kir_siirto = 0)\n\n           UNION\n\n           (SELECT\n           yhtio.maa,\n           tilausrivi.kerattyaika laadittu,\n           date_format(tilausrivi.kerattyaika, '%Y-%m-%d') pvm,\n           if (tilausrivi.tyyppi = 'L' and lasku.varastosiirto_tunnus > 0, kirjanpidollinen_siirto.varasto, tilausrivi.varasto) varasto,\n           tilausrivi.tuoteno,\n           if (tilausrivi.tyyppi='G', 'siirtolista', 'myynti') laji,\n           (tilausrivi.kpl+tilausrivi.varattu) * -1 kpl,\n           if (tilausrivi.tyyppi='G', tuote.kehahin, round(tilausrivi.hinta / if ('{$yhtiorow['alv_kasittely']}' = '' and tilausrivi.alv < 500, (1+tilausrivi.alv/100), 1) * {$query_ale_lisa}, 2)) kplhinta,\n           lasku.tilaustyyppi,\n           lasku.varasto lahdevarasto,\n           lasku.clearing vastaanottovarasto,\n           lasku.liitostunnus,\n           tilausrivi.tunnus as sorttaustunnus,\n           '' keratty_siirto,\n           '' keratty_myynti,\n           if (tilausrivi.tyyppi = 'G' and (tilausrivi.varasto = lasku.clearing or lasku.chn = 'KIR'), 1, 0) sisainen_tai_kir_siirto\n           FROM tilausrivi\n           JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio\n             AND tuote.tuoteno     = tilausrivi.tuoteno\n             {$tuoterajaus})\n           JOIN yhtio ON (tilausrivi.yhtio = yhtio.yhtio)\n           JOIN lasku USE INDEX (PRIMARY) ON (lasku.yhtio = tilausrivi.yhtio and lasku.tunnus = tilausrivi.otunnus)\n           LEFT JOIN lasku kirjanpidollinen_siirto USE INDEX (PRIMARY) ON (lasku.yhtio = kirjanpidollinen_siirto.yhtio and lasku.varastosiirto_tunnus = kirjanpidollinen_siirto.tunnus and lasku.varastosiirto_tunnus > 0)\n           WHERE tilausrivi.yhtio  = '{$yhtio}'\n           AND tilausrivi.tyyppi   IN ('L','G','V')\n           AND (tilausrivi.varattu+tilausrivi.kpl > 0 OR (tilausrivi.varattu+tilausrivi.kpl < 0 and lasku.tilaustyyppi = 'R'))\n           {$kerivirajaus}\n           HAVING sisainen_tai_kir_siirto = 0)\n\n           ORDER BY laadittu, tuoteno, sorttaustunnus";
$res = pupe_query($query);
if ($kuukausi_ajo) {
    $datetime_checkpoint_uusi = "{$vuosi}-{$kuukausi}-{$vikapaiva} 23:59:59";
    if (strtotime($datetime_checkpoint_uusi) > strtotime(date('Y-m-d H:i:s'))) {
        $datetime_checkpoint_uusi = date('Y-m-d H:i:s');
    }
} else {
    $datetime_checkpoint_uusi = date('Y-m-d H:i:s');
}
// Tallennetaan aikaleima
cron_aikaleima("RELEX_TRAN_CRON", $datetime_checkpoint_uusi);
// Kerrotaan montako riviä käsitellään
$rows = mysql_num_rows($res);
echo date("d.m.Y @ G:i:s") . ": Relex Tapahtumarivejä {$rows} kappaletta.\n";
$relex_transactions = array();
while ($row = mysql_fetch_assoc($res)) {
    $relex_transactions[] = $row;
}
$k_rivi = 0;
foreach ($relex_transactions as $row) {
    // Rivin arvo
    $arvo = abs(round($row['kplhinta'] * $row['kpl'], 2));
    // Määritellään transaktiotyyppi
    switch (strtolower($row['laji'])) {
        case 'tulo':
            $type = "DELIVERY";
コード例 #3
0
ファイル: relex_products.php プロジェクト: Hermut/pupesoft
    $tuotelista = "''";
    $namaonjotsekattu = "";
    $query = "SELECT tuote.tuoteno\n            FROM tuote\n            WHERE tuote.yhtio = '{$yhtio}'\n            {$tuoterajaus}\n            {$tuoteupdrajaus}";
    $res = pupe_query($query);
    while ($row = mysql_fetch_assoc($res)) {
        $tuotelista .= ",'" . pupesoft_cleanstring($row["tuoteno"]) . "'";
    }
    $query = "SELECT tuotteen_toimittajat.tuoteno\n            FROM tuotteen_toimittajat\n            WHERE tuotteen_toimittajat.yhtio = '{$yhtio}'\n            AND tuotteen_toimittajat.tuoteno not in ({$tuotelista})\n            {$tuotetoimupdrajaus}";
    $res = pupe_query($query);
    while ($row = mysql_fetch_assoc($res)) {
        $tuotelista .= ",'" . pupesoft_cleanstring($row["tuoteno"]) . "'";
    }
    $tuotteet = " AND tuote.tuoteno IN ({$tuotelista}) ";
}
// Tallennetaan aikaleima
cron_aikaleima("RELEX_PROD_CRON", date('Y-m-d H:i:s'));
// Otsikkotieto
$header = "code;";
$header .= "clean_code;";
$header .= "name;";
$header .= "tuoteosasto;";
$header .= "group;";
$header .= "tuotemerkki;";
$header .= "malli;";
$header .= "mallitarkenne;";
$header .= "kuvaus;";
$header .= "lyhytkuvaus;";
$header .= "mainosteksti;";
$header .= "aleryhma;";
$header .= "purkukommentti;";
$header .= "keskihankintahinta;";
コード例 #4
0
    echo "verkkokauppa_saldo_varasto pitää määritellä!\n";
    exit;
}
// Haetaan aika jolloin tämä skripti on viimeksi ajettu
$datetime_checkpoint = cron_aikaleima("MYY_STATIC_CRON");
echo date("d.m.Y @ G:i:s") . " - Aloitetaan myytavissa_static-päivitys.\n";
echo date("d.m.Y @ G:i:s") . " - Haetaan saldot.\n";
if ($datetime_checkpoint != "" and $ajetaanko_kaikki == "NO") {
    $muutoslisa1 = "AND tapahtuma.laadittu  >= '{$datetime_checkpoint}'";
    $muutoslisa2 = "AND tilausrivi.laadittu >= '{$datetime_checkpoint}'";
    $muutoslisa3 = "AND tuote.muutospvm     >= '{$datetime_checkpoint}'";
    // Haetaan saldot tuotteille, joille on tehty tunnin sisällä tilausrivi tai tapahtuma
    $query = "(SELECT tapahtuma.tuoteno\n              FROM tapahtuma\n              JOIN tuote ON (tuote.yhtio = tapahtuma.yhtio\n                AND tuote.tuoteno      = tapahtuma.tuoteno\n                AND tuote.status      != 'P'\n                AND tuote.tuotetyyppi  NOT in ('A','B')\n                AND tuote.tuoteno     != ''\n                AND tuote.nakyvyys    != '')\n              WHERE tapahtuma.yhtio    = '{$kukarow["yhtio"]}'\n              {$muutoslisa1})\n\n              UNION\n\n              (SELECT tilausrivi.tuoteno\n              FROM tilausrivi\n              JOIN tuote ON (tuote.yhtio = tilausrivi.yhtio\n                AND tuote.tuoteno      = tilausrivi.tuoteno\n                AND tuote.status      != 'P'\n                AND tuote.tuotetyyppi  NOT in ('A','B')\n                AND tuote.tuoteno     != ''\n                AND tuote.nakyvyys    != '')\n              WHERE tilausrivi.yhtio   = '{$kukarow["yhtio"]}'\n              {$muutoslisa2})\n\n              UNION\n\n              (SELECT tuote.tuoteno\n              FROM tuote\n              WHERE tuote.yhtio        = '{$kukarow["yhtio"]}'\n              AND tuote.status        != 'P'\n              AND tuote.tuotetyyppi    NOT in ('A','B')\n              AND tuote.tuoteno       != ''\n              AND tuote.nakyvyys      != ''\n              {$muutoslisa3})\n\n              ORDER BY 1";
} else {
    $query = "SELECT tuote.tuoteno\n             FROM tuote\n             WHERE tuote.yhtio      = '{$kukarow["yhtio"]}'\n             AND tuote.status      != 'P'\n             AND tuote.tuotetyyppi  NOT in ('A','B')\n             AND tuote.tuoteno     != ''\n             AND tuote.nakyvyys    != ''";
}
$result = pupe_query($query);
while ($row = mysql_fetch_assoc($result)) {
    foreach ($verkkokauppa_saldo_varasto as $varasto) {
        $query = "SELECT hyllyalue, hyllynro, hyllyvali, hyllytaso, tunnus\n               FROM tuotepaikat\n               WHERE yhtio = '{$kukarow["yhtio"]}'\n               AND tuoteno = '{$row["tuoteno"]}'\n               AND varasto = '{$varasto}'";
        $tpres = pupe_query($query);
        while ($tprow = mysql_fetch_assoc($tpres)) {
            list(, , $myytavissa) = saldo_myytavissa($row["tuoteno"], '', '', '', $tprow["hyllyalue"], $tprow["hyllynro"], $tprow["hyllyvali"], $tprow["hyllytaso"]);
            $query = "UPDATE tuotepaikat\n                 SET myytavissa_static = '{$myytavissa}'\n                 WHERE tunnus = '{$tprow["tunnus"]}'";
            pupe_query($query);
        }
    }
}
// Kun kaikki onnistui, päivitetään lopuksi timestamppi talteen
cron_aikaleima("MYY_STATIC_CRON", date('Y-m-d H:i:s'));
コード例 #5
0
ファイル: relex_customers.php プロジェクト: Hermut/pupesoft
$header = "code;name;customer_group\n";
fwrite($fp, $header);
$asiakasrajaus = "";
// Haetaan aika jolloin tämä skripti on viimeksi ajettu
$datetime_checkpoint = cron_aikaleima("RELEX_CUST_CRON");
// Otetaan mukaan vain edellisen ajon jälkeen muuttuneet
if ($paiva_ajo and $datetime_checkpoint != "") {
    $asiakasrajaus = " AND (asiakas.muutospvm > '{$datetime_checkpoint}' or asiakas.luontiaika > '{$datetime_checkpoint}')";
} elseif ($paiva_ajo) {
    $asiakasrajaus = " AND (asiakas.muutospvm >= date_sub(now(), interval 24 HOUR) or asiakas.luontiaika >= date_sub(now(), interval 24 HOUR))";
}
// Haetaan asiakkaat
$query = "SELECT\n          yhtio.maa,\n          asiakas.tunnus,\n          concat_ws(' ', asiakas.nimi, asiakas.nimitark) nimi,\n          asiakas.ryhma\n          FROM asiakas\n          JOIN yhtio ON (asiakas.yhtio = yhtio.yhtio)\n          WHERE asiakas.yhtio = '{$yhtio}'\n          AND asiakas.laji    not in ('P','R')\n          {$asiakasrajaus}\n          ORDER BY asiakas.tunnus";
$res = pupe_query($query);
// Tallennetaan aikaleima
cron_aikaleima("RELEX_CUST_CRON", date('Y-m-d H:i:s'));
// Kerrotaan montako riviä käsitellään
$rows = mysql_num_rows($res);
echo date("d.m.Y @ G:i:s") . ": Relex asiakasrivejä {$rows} kappaletta.\n";
$k_rivi = 0;
while ($row = mysql_fetch_assoc($res)) {
    $rivi = "{$row['maa']}-{$row['tunnus']};";
    $rivi .= pupesoft_csvstring($row['nimi']) . ";";
    $rivi .= pupesoft_csvstring($row['ryhma']);
    $rivi .= "\n";
    fwrite($fp, $rivi);
    $k_rivi++;
}
fclose($fp);
// Tehdään FTP-siirto
if (($paiva_ajo or $weekly_ajo) and !empty($relex_ftphost)) {