function levering($id, $hurtigfakt, $genfakt, $webservice) { echo "<!--function levering start-->"; #cho "$id,$hurtigfakt,$genfakt,$webservice<br>"; # Denne funktion kontrollerer levering of kalder funktioner som registrerer salget i tabellerne varer,batch_salg og ect batch_kob global $regnaar; global $levdate; global $lev_nr; global $db; $lager = 0; #$fp=fopen("../temp/ordrelev.log","a"); $r = db_fetch_array(db_select("select afd,ref from ordrer where id = {$id}", __FILE__ . " linje " . __LINE__)); if ($r['afd'] == '') { if ($ref = $r['ref']) { $r = db_fetch_array(db_select("select ansatte.afd from ansatte where navn='{$ref}'", __FILE__ . " linje " . __LINE__)); $afd = $r['afd'] * 1; if (!$afd) { $r = db_fetch_array(db_select("select ansat_id from brugere where brugernavn='{$ref}'", __FILE__ . " linje " . __LINE__)); $ansat_id = $r['ansat_id'] * 1; $r = db_fetch_array(db_select("select afd from ansatte where id='{$ansat_id}'", __FILE__ . " linje " . __LINE__)); $afd = $r['afd'] * 1; } db_modify("update ordrer set afd='{$afd}' where id='{$id}'", __FILE__ . " linje " . __LINE__); } if ($afd) { $r = db_fetch_array(db_select("select kodenr from grupper where box1='{$afd}' and art = 'LG'", __FILE__ . " linje " . __LINE__)); $lager = $r['kodenr'] * 1; } } $q = db_select("select lev_nr from batch_salg where ordre_id = {$id} order by lev_nr", __FILE__ . " linje " . __LINE__); while ($r = db_fetch_array($q)) { if ($lev_nr <= $r['lev_nr']) { $lev_nr = $r['lev_nr'] + 1; } } if (!$lev_nr) { $lev_nr = 1; } $x = 0; $q = db_select("select id from ordrelinjer where ordre_id = '{$id}' and posnr > '0' order by posnr", __FILE__ . " linje " . __LINE__); while ($r = db_fetch_array($q)) { $x++; db_modify("update ordrelinjer set posnr='{$x}',lager='{$lager}' where id='{$r['id']}'", __FILE__ . " linje " . __LINE__); } $query = db_select("select * from ordrer where id = {$id}", __FILE__ . " linje " . __LINE__); $row = db_fetch_array($query); $ref = $row['ref']; $levdate = $row['levdate']; $ordredate = $row['ordredate']; #20150810 $fakturadate = $row['fakturadate']; $art = $row['art']; $query = db_select("select box1, box2, box3, box4 from grupper where art='RA' and kodenr='{$regnaar}'", __FILE__ . " linje " . __LINE__); if ($row = db_fetch_array($query)) { # $year=substr(str_replace(" ","",$row['box2']),-2); #aendret 060308 - grundet mulighed for fakt i aar 2208 $year = trim($row['box2']); $aarstart = str_replace(" ", "", $year . $row['box1']); # $year=substr(str_replace(" ","",$row['box4']),-2); $year = trim($row['box4']); $aarslut = str_replace(" ", "", $year . $row['box3']); } #if ($hurtigfakt && !$fakturadate) { # $fakturadate=date("Y-m-d"); # db_modify("update ordrer set fakturadate = '$fakturadate' where id = $id",__FILE__ . " linje " . __LINE__); #} if ($hurtigfakt && $fakturadate && $fakturadate != $levdate) { db_modify("update ordrer set levdate = fakturadate where id = {$id}", __FILE__ . " linje " . __LINE__); #cho "update ordrer set levdate = fakturadate where id = $id<br>"; # exit; $levdate = $fakturadate; } if ($hurtigfakt && $fakturadate && (!$ordredate || $ordredate > $fakturadate)) { db_modify("update ordrer set ordredate = fakturadate where id = {$id}", __FILE__ . " linje " . __LINE__); $ordredate = $fakturadate; } $r = db_fetch_array(db_select("select * from ordrer where id = '{$id}'", __FILE__ . " linje " . __LINE__)); if ($fakturadate && !$r['levdate']) { if ($webservice) { return 'Manglende leveringsdato'; } else { print "<BODY onLoad=\"javascript:alert('Leveringsdato SKAL udfyldes')\">"; } exit; } else { if (!$hurtigfakt && $r['levdate'] < $r['ordredate']) { print "<BODY onLoad=\"javascript:alert('Leveringsdato er før ordredato {$r['levdate']}<{$r['ordredate']}')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } list($year, $month, $day) = explode('-', $r['levdate']); $year = trim($year); $tmp = date("Y"); if (!$hurtigfakt && $art != 'PO' && !$webservice && !$genfakt && ($year < $tmp - 10 || $year > $tmp + 10)) { print "<BODY onLoad=\"javascript:alert('Tjek leveringsdato {$levdate}')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } if ($hurtigfakt == 'on' && !$fakturadate) { $fakturadate = date('Y-m-d'); db_modify("update ordrer set fakturadate='{$fakturadate}' where id='{$id}'", __FILE__ . " linje " . __LINE__); # #print "<meta http-equiv=\"refresh\" content=\"0;URL=fakturadato.php?id=$id&returside=levering.php&hurtigfakt=on\">"; # exit; } if ($fejl == 0) { $fakturanr = 1; $x = 0; # $query = db_select("select * from ordrelinjer where ordre_id = '$id' and samlevare = 'on'",__FILE__ . " linje " . __LINE__); # while ($row =db_fetch_array($query)){ #cho "$x linje_id $row[id] kred_linje_id $row[kred_linje_id]<br>"; # if ($row['leveres']!=0) samlevare($id,$art,$row['id'], $row['vare_id'], $row['leveres']); # } #cho "select * from ordrelinjer where ordre_id = '$id'<br>"; $query = db_select("select * from ordrelinjer where ordre_id = '{$id}' order by posnr,id", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { if ($row['posnr'] > 0 && strlen(trim($row['varenr'])) > 0) { $x++; $linje_id[$x] = $row['id']; $folgevare[$x] = $row['folgevare']; $kred_linje_id[$x] = $row['kred_linje_id']; #cho "$x kred_linje_id $kred_linje_id[$x]<br>"; $vare_id[$x] = $row['vare_id']; $varenr[$x] = $row['varenr']; $antal[$x] = afrund($row['antal'], 3); #20131202 $leveres[$x] = afrund($row['leveres'], 3); #20131202 $pris[$x] = $row['pris']; $kostpris[$x] = $row['kostpris']; $rabat[$x] = $row['rabat']; $nettopris[$x] = $row['pris'] - $row['pris'] * $row['rabat'] / 100; $serienr[$x] = trim($row['serienr']); $posnr[$x] = $row['posnr']; $bogf_konto[$x] = $row['bogf_konto']; $variant_id[$x] = $row['variant_id']; if ($hurtigfakt == 'on') { $leveres[$x] = $antal[$x]; } } } $linjeantal = $x; for ($x = 1; $x <= $linjeantal; $x++) { $tidl_lev = 0; $query = db_select("select antal from batch_salg where linje_id = {$linje_id[$x]}", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $tidl_lev = $tidl_lev + $row['antal']; } if ($hurtigfakt == 'on') { $leveres[$x] = $antal[$x] - $tidl_lev; } if ($antal[$x] > 0 && $antal[$x] < $leveres[$x] + $tidl_lev) { print "<BODY onLoad=\"javascript:alert('Der er sat for meget til levering (pos nr. {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } if ($leveres[$x] > 0 && $serienr[$x]) { $sn_antal[$x] = 0; $query = db_select("select * from serienr where salgslinje_id = '{$linje_id[$x]}' and batch_salg_id=0", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $sn_antal[$x]++; } if ($leveres[$x] != $sn_antal[$x]) { print "<BODY onLoad=\"javascript:alert('Der er sat {$leveres[$x]} til levering men valgt {$sn_antal[$x]} serienumre (pos nr: {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } } if ($leveres[$x] < 0 && $serienr[$x]) { $sn_antal[$x] = 0; if ($art == 'DK') { $qtxt = "select * from serienr where salgslinje_id = {$kred_linje_id[$x]}*-1"; } else { $qtxt = "select * from serienr where salgslinje_id <0 and vare_id={$vare_id[$x]}"; } $q = db_select($qtxt, __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($q)) { db_modify("insert into serienr (vare_id,kobslinje_id,salgslinje_id,batch_kob_id,batch_salg_id,serienr) values ('{$vare_id[$x]}','{$linje_id[$x]}','0','0','0','{$row['serienr']}')", __FILE__ . " linje " . __LINE__); db_modify("update serienr set salgslinje_id=abs(salgslinje_id) where id = '{$row['id']}'", __FILE__ . " linje " . __LINE__); $sn_antal[$x]++; } if ($leveres[$x] + $sn_antal[$x] != 0) { $tmp = $leveres[$x] * -1; print "<BODY onLoad=\"javascript:alert('Der er sat {$tmp} til returnering men valgt {$sn_antal[$x]} serienumre (pos nr: {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } } if ($leveres[$x] < 0 && $art == 'DK') { $tidl_lev = 0; $query = db_select("select * from batch_kob where linje_id = '{$linje_id[$x]}' and ordre_id={$id}", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $tidl_lev = $tidl_lev - $row['antal']; } if ($leveres[$x] > $tidl_lev + $antal[$x]) { $leveres[$x] = $antal[$x] - $tidl_lev; } } } for ($x = 1; $x <= $linjeantal; $x++) { $sn_start = 0; $query = db_select("select * from varer where id='{$vare_id[$x]}'", __FILE__ . " linje " . __LINE__); $row = db_fetch_array($query); # $kostpris[$x]=$row['kostpris']; $gruppe[$x] = $row['gruppe']; if ($row['beholdning']) { $beholdning[$x] = $row['beholdning']; } else { $beholdning[$x] = 0; } $beholdning[$x] = $beholdning[$x] - $leveres[$x]; if (trim($row['samlevare']) == 'on') { # samlevare($id,$art,$linje_id[$x], $vare_id[$x], $leveres[$x]) # for ($a=1; $a<=$leveres[$x]; $a++) samlevare($vare_id[$x], $linje_id[$x]); } if (!$gruppe[$x]) { print "<BODY onLoad=\"javascript:alert('Vare tilhører ikke nogen varegruppe - kontroller vare og indstillinger! (pos nr: {$posnr[$x]})')\">"; if ($art == 'PO') { print "<meta http-equiv=\"refresh\" content=\"0;URL=pos_ordre.php?id={$id}\">"; } else { print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; } exit; } if ($vare_id[$x] && $leveres[$x]) { linjeopdat($id, $gruppe[$x], $linje_id[$x], $beholdning[$x], $vare_id[$x], $leveres[$x], $pris[$x], $nettopris[$x], $rabat[$x], $row['samlevare'], $x, $posnr[$x], $serienr[$x], $kred_linje_id[$x], $bogf_konto[$x], $variant_id[$x], $lager); # if (trim($row['samlevare'])=='on') { # $q2 = db_select("select * from varer where id='$vare_id[$x]'",__FILE__ . " linje " . __LINE__); # while($r2 =db_fetch_array($q2)) # } } } } } #fclose ($fp); echo "<!--function levering s**t-->"; #xit; return "OK"; }
function levering($id, $hurtigfakt, $genfakt, $webservice) { global $regnaar; global $levdate; global $lev_nr; global $db; $fp = fopen("../temp/ordrelev.log", "a"); transaktion("begin"); $q = db_select("select lev_nr from batch_salg where ordre_id = {$id} order by lev_nr", __FILE__ . " linje " . __LINE__); while ($r = db_fetch_array($q)) { if ($lev_nr <= $r['lev_nr']) { $lev_nr = $r['lev_nr'] + 1; } } if (!$lev_nr) { $lev_nr = 1; } $query = db_select("select * from ordrer where id = {$id}", __FILE__ . " linje " . __LINE__); $row = db_fetch_array($query); $ref = $row['ref']; $levdate = $row['levdate']; $fakturadate = $row['fakturadate']; $art = $row['art']; $query = db_select("select box1, box2, box3, box4 from grupper where art='RA' and kodenr='{$regnaar}'", __FILE__ . " linje " . __LINE__); if ($row = db_fetch_array($query)) { # $year=substr(str_replace(" ","",$row['box2']),-2); #aendret 060308 - grundet mulighed for fakt i aar 2208 $year = trim($row['box2']); $aarstart = str_replace(" ", "", $year . $row['box1']); # $year=substr(str_replace(" ","",$row['box4']),-2); $year = trim($row['box4']); $aarslut = str_replace(" ", "", $year . $row['box3']); } if ($hurtigfakt && $fakturadate && $fakturadate != $levdate) { db_modify("update ordrer set levdate = fakturadate where id = {$id}", __FILE__ . " linje " . __LINE__); } $r = db_fetch_array(db_select("select * from ordrer where id = '{$id}'", __FILE__ . " linje " . __LINE__)); if (!$r['levdate']) { print "<BODY onLoad=\"javascript:alert('Leveringsdato SKAL udfyldes')\">"; # print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id=$id\">"; exit; } else { if ($r['levdate'] < $r['ordredate']) { print "<BODY onLoad=\"javascript:alert('Leveringsdato er før ordredato')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } list($year, $month, $day) = split('-', $r['levdate']); $year = trim($year); $ym = $year . $month; if (!$webservice && ($ym < $aarstart || $ym > $aarslut)) { print "<BODY onLoad=\"javascript:alert('Leveringsdato uden for regnskabsår')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } if ($hurtigfakt == 'on' && !$fakturadate) { print "<meta http-equiv=\"refresh\" content=\"0;URL=fakturadato.php?id={$id}&returside=levering.php&hurtigfakt=on\">"; # include("fakturadato.php"); # fakturadato($id); exit; } if ($fejl == 0) { $fakturanr = 1; $x = 0; $query = db_select("select * from ordrelinjer where ordre_id = '{$id}' and samlevare = 'on'", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { if ($row[leveres] != 0) { samlevare($row[id], $row['vare_id'], $row['leveres']); } } $query = db_select("select * from ordrelinjer where ordre_id = '{$id}'", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { if ($row[posnr] > 0 && strlen(trim($row[varenr])) > 0) { $x++; $linje_id[$x] = $row[id]; $kred_linje_id[$x] = $row[kred_linje_id]; $vare_id[$x] = $row['vare_id']; $varenr[$x] = $row['varenr']; $antal[$x] = $row[antal]; $leveres[$x] = $row[leveres]; $pris[$x] = $row[pris]; $rabat[$x] = $row[rabat]; $nettopris[$x] = $row[pris] - $row[pris] * $row[rabat] / 100; $serienr[$x] = trim($row['serienr']); $posnr[$x] = $row[posnr]; if ($hurtigfakt == 'on') { $leveres[$x] = $antal[$x]; } } } $linjeantal = $x; for ($x = 1; $x <= $linjeantal; $x++) { $tidl_lev = 0; $query = db_select("select antal from batch_salg where linje_id = {$linje_id[$x]}", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $tidl_lev = $tidl_lev + $row[antal]; } if ($hurtigfakt == 'on') { $leveres[$x] = $antal[$x] - $tidl_lev; } if ($antal[$x] > 0 && $antal[$x] < $leveres[$x] + $tidl_lev) { print "<BODY onLoad=\"javascript:alert('Der er sat for meget til levering (pos nr. {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } if ($leveres[$x] > 0 && $serienr[$x]) { $sn_antal[$x] = 0; $query = db_select("select * from serienr where salgslinje_id = '{$linje_id[$x]}' and batch_salg_id=0", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $sn_antal[$x] = $sn_antal[$x] + 1; } if ($leveres[$x] != $sn_antal[$x]) { print "<BODY onLoad=\"javascript:alert('Der er sat {$leveres[$x]} til levering men valgt {$sn_antal[$x]} serienumre (pos nr: {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } } if ($leveres[$x] < 0 && $serienr[$x]) { $sn_antal[$x] = 0; $query = db_select("select * from serienr where salgslinje_id = {$kred_linje_id[$x]}*-1", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $sn_antal[$x] = $sn_antal[$x] + 1; } if ($leveres[$x] + $sn_antal[$x] != 0) { $tmp = $leveres[$x] * -1; print "<BODY onLoad=\"javascript:alert('Der er sat {$tmp} til returnering men valgt {$sn_antal[$x]} serienumre (pos nr: {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } } if ($leveres[$x] < 0 && $art == 'DK') { $tidl_lev = 0; $query = db_select("select * from batch_kob where linje_id = '{$linje_id[$x]}' and ordre_id={$id}", __FILE__ . " linje " . __LINE__); while ($row = db_fetch_array($query)) { $tidl_lev = $tidl_lev - $row[antal]; } if ($leveres[$x] > $tidl_lev + $antal[$x]) { $leveres[$x] = $antal[$x] - $tidl_lev; } } } for ($x = 1; $x <= $linjeantal; $x++) { $sn_start = 0; $query = db_select("select * from varer where id='{$vare_id[$x]}'", __FILE__ . " linje " . __LINE__); $row = db_fetch_array($query); $kostpris[$x] = $row[kostpris]; $gruppe[$x] = $row[gruppe]; if ($row[beholdning]) { $beholdning[$x] = $row[beholdning]; } else { $beholdning[$x] = 0; } $beholdning[$x] = $beholdning[$x] - $leveres[$x]; # if (trim($row['samlevare'])=='on') { # for ($a=1; $a<=$leveres[$x]; $a++) samlevare($vare_id[$x], $linje_id[$x]); # } if (!$gruppe[$x]) { print "<BODY onLoad=\"javascript:alert('Vare tilhrer ikke nogen varegruppe - kontroller vare og indstillinger! (pos nr: {$posnr[$x]})')\">"; print "<meta http-equiv=\"refresh\" content=\"0;URL=ordre.php?id={$id}\">"; exit; } if ($vare_id[$x] && $leveres[$x] != 0) { linjeopdat($id, $gruppe[$x], $linje_id[$x], $beholdning[$x], $vare_id[$x], $leveres[$x], $pris[$x], $nettopris[$x], $rabat[$x], $row['samlevare'], $x, $posnr[$x], $serienr[$x], $kred_linje_id[$x]); } } } } transaktion("commit"); return "Levering OK"; }