function loop_packet($xml_element, $parameters) { global $kukarow; static $paketti_nro = 0; static $tunnus_liitetiedostoon = 0; $tavarantoimittajanumero = $parameters["tavarantoimittajanumero"]; $asn_numero = $parameters["asn_numero"]; $toimituspvm = $parameters["toimituspvm"]; $vastaanottaja = $parameters["vastaanottaja"]; $pakkauslista = $parameters["pakkauslista"]; $sscc = $parameters["sscc"]; $laatikkoind = $parameters["laatikkoind"]; foreach ($xml_element as $key => $element) { // Tämä on tuote-elementti if ($key == "PkgItem") { $tuote = (string) $element->ProductId->ProductNumber; $tuote = utf8_decode(trim($tuote)); $tuote2 = (string) $element->ProductId->BuyerProductNumber; $tuote2 = utf8_decode(trim($tuote2)); $kpl = (double) $element->DeliveredQuantity->Quantity; $tilausrivinpositio = (int) $element->OrderItemRef->BuyerOrderItemRef; $tuotteelta_tilausno = (int) $element->OrderRef->BuyerOrderNumber; if ($kpl > 0.0 and $tuote != "") { $toim_tuoteno_wherelisa = trim($tuote2) != "" ? "AND tt.toim_tuoteno IN ('{$tuote}','{$tuote2}')" : "AND tt.toim_tuoteno = '{$tuote}'"; $query = "SELECT tt.*\n FROM tuotteen_toimittajat AS tt\n JOIN toimi ON (toimi.yhtio = tt.yhtio AND toimi.tunnus = tt.liitostunnus AND toimi.toimittajanro = '{$tavarantoimittajanumero}' AND toimi.tyyppi != 'P')\n WHERE tt.yhtio = 'artr'\n {$toim_tuoteno_wherelisa}"; $chk_res = pupe_query($query); if (mysql_num_rows($chk_res) != 0) { $chk_row = mysql_fetch_assoc($chk_res); $tuote = $chk_row['toim_tuoteno']; } elseif (mysql_num_rows($chk_res) == 0) { // haetaan vaihtoehtoisten tuotenumeroiden (tuotteen_toimittajat_tuotenumerot) kautta tuotteen_toimittajat.toim_tuoteno. Osataan myös hakea vaihtoehtoinen tuotenumero ilman että $chk_res = tuotteen_toimittajat_tuotenumerot_haku($tuote, $tavarantoimittajanumero); if (mysql_num_rows($chk_res) != 0) { $chk_row = mysql_fetch_assoc($chk_res); $tuote = $chk_row['toim_tuoteno']; } else { if (trim($tuote2) != "") { $chk_res = tuotteen_toimittajat_tuotenumerot_haku($tuote2, $tavarantoimittajanumero); if (mysql_num_rows($chk_res) != 0) { $chk_row = mysql_fetch_assoc($chk_res); $tuote = $chk_row['toim_tuoteno']; } } } } $query = "SELECT tuotteen_toimittajat.tuotekerroin\n FROM toimi\n JOIN tuotteen_toimittajat ON (tuotteen_toimittajat.yhtio = toimi.yhtio\n AND tuotteen_toimittajat.liitostunnus = toimi.tunnus\n AND tuotteen_toimittajat.toim_tuoteno = '{$tuote}'\n AND tuotteen_toimittajat.toim_tuoteno != '')\n JOIN tuote ON (tuote.yhtio = tuotteen_toimittajat.yhtio\n AND tuote.tuoteno = tuotteen_toimittajat.tuoteno\n AND tuote.status != 'P')\n WHERE toimi.yhtio = '{$kukarow['yhtio']}'\n AND toimi.toimittajanro = '{$tavarantoimittajanumero}'\n AND toimi.tyyppi != 'P'\n AND toimi.asn_sanomat = 'K'"; $tuotekerroin_chk_res = pupe_query($query); if (mysql_num_rows($tuotekerroin_chk_res) > 0) { $tuotekerroin_chk_row = mysql_fetch_assoc($tuotekerroin_chk_res); if ($tuotekerroin_chk_row['tuotekerroin'] != 0) { $kpl /= $tuotekerroin_chk_row['tuotekerroin']; } } // tämä siksi ettei haluta tallentaa 0 rivejä kantaan. $sqlinsert = "INSERT INTO asn_sanomat SET\n yhtio = '{$kukarow['yhtio']}',\n laji = 'asn',\n toimittajanumero = '{$tavarantoimittajanumero}',\n asn_numero = '{$asn_numero}',\n sscc_koodi = '{$sscc}',\n saapumispvm = '{$toimituspvm}',\n vastaanottaja = '{$vastaanottaja}',\n tilausnumero = '{$tuotteelta_tilausno}',\n paketinnumero = '{$paketti_nro}',\n paketintunniste = '{$laatikkoind}',\n lahetyslistannro = '{$pakkauslista}',\n toim_tuoteno = '{$tuote}',\n toim_tuoteno2 = '{$tuote2}',\n kappalemaara = '{$kpl}',\n tilausrivinpositio = '{$tilausrivinpositio}',\n laatija = '{$kukarow['kuka']}',\n luontiaika = now()"; $result = pupe_query($sqlinsert); $tunnus_liitetiedostoon = mysql_insert_id($GLOBALS["masterlink"]); } } // Tämä on paketti-elementti if ($key == "Package") { $paketti_nro++; $parameters = array("tavarantoimittajanumero" => $tavarantoimittajanumero, "asn_numero" => $asn_numero, "toimituspvm" => $toimituspvm, "vastaanottaja" => $vastaanottaja, "pakkauslista" => $pakkauslista); list($_sscc, $_laatikkoind) = teccom_asn_paketti($element, $tavarantoimittajanumero, $asn_numero); $parameters['sscc'] = $_sscc; $parameters['laatikkoind'] = $_laatikkoind; loop_packet($element, $parameters); } } return $tunnus_liitetiedostoon; }
while ($row = mysql_fetch_assoc($result)) { $virhe++; echo "<tr>"; $poikkeus_tuoteno = trim($row["toim_tuoteno2"]) != "" ? "AND tt.toim_tuoteno IN ('{$row[toim_tuoteno]}','{$row["toim_tuoteno2"]}')" : "AND tt.toim_tuoteno = '{$row[toim_tuoteno]}'"; $query = "SELECT tt.*\n FROM tuotteen_toimittajat AS tt\n JOIN toimi ON (toimi.yhtio = tt.yhtio AND toimi.tunnus = tt.liitostunnus AND toimi.toimittajanro = '{$toimittajanumero}' AND toimi.tyyppi != 'P')\n WHERE tt.yhtio = 'artr'\n {$poikkeus_tuoteno}"; $chk_res = pupe_query($query); if (mysql_num_rows($chk_res) == 0) { // haetaan vaihtoehtoisten tuotenumeroiden (tuotteen_toimittajat_tuotenumerot) kautta tuotteen_toimittajat.toim_tuoteno. Osataan myös hakea vaihtoehtoinen tuotenumero ilman että $chk_res = tuotteen_toimittajat_tuotenumerot_haku($row['toim_tuoteno'], $toimittajanumero); if (mysql_num_rows($chk_res) != 0) { $chk_row = mysql_fetch_assoc($chk_res); $row['toim_tuoteno'] = $chk_row['toim_tuoteno']; $poikkeus_tuoteno = trim($row["toim_tuoteno2"]) != "" ? "AND tt.toim_tuoteno IN ('{$row[toim_tuoteno]}','{$row["toim_tuoteno2"]}')" : "AND tt.toim_tuoteno = '{$row[toim_tuoteno]}'"; } else { if (trim($row["toim_tuoteno2"]) != "") { $chk_res = tuotteen_toimittajat_tuotenumerot_haku($row["toim_tuoteno2"], $toimittajanumero); if (mysql_num_rows($chk_res) != 0) { $chk_row = mysql_fetch_assoc($chk_res); $row['toim_tuoteno'] = $chk_row['toim_tuoteno']; $poikkeus_tuoteno = trim($row["toim_tuoteno2"]) != "" ? "AND tt.toim_tuoteno IN ('{$row[toim_tuoteno]}','{$row["toim_tuoteno2"]}')" : "AND tt.toim_tuoteno = '{$row[toim_tuoteno]}'"; } } } } $query = "SELECT tt.tuoteno\n FROM tuotteen_toimittajat as tt\n JOIN tuote on (tuote.yhtio=tt.yhtio and tt.tuoteno = tuote.tuoteno and tuote.status !='P')\n WHERE tt.yhtio = '{$kukarow['yhtio']}'\n {$poikkeus_tuoteno}\n AND tt.liitostunnus = '{$row['toimi_tunnus']}'"; $res = pupe_query($query); if (mysql_num_rows($res) > 0) { $ttrow = mysql_fetch_assoc($res); $row['tuoteno'] = $ttrow['tuoteno']; $query = "SELECT nimitys\n FROM tuote\n WHERE yhtio = '{$kukarow['yhtio']}'\n AND tuoteno = '{$ttrow['tuoteno']}'"; $tres = pupe_query($query);