Example #1
0
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&oslash;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&oslash;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";
}
Example #2
0
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&oslash;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&aring;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";
}