Beispiel #1
0
function batch_salg($id)
{
    global $fakturadate;
    global $valutakurs;
    global $version;
    global $regnaar;
    $r = db_fetch_array(db_select("select art,cvrnr from ordrer where id = '{$id}'", __FILE__ . " linje " . __LINE__));
    $cvrnr = $r['cvrnr'];
    $art = $r['art'];
    $r = db_fetch_array(db_select("select box6 from grupper where art = 'DIV' and kodenr = '3'", __FILE__ . " linje " . __LINE__));
    $fifo = $r['box6'];
    $x = 0;
    $query = db_select("select * from batch_salg where ordre_id = '{$id}'", __FILE__ . " linje " . __LINE__);
    while ($row = db_fetch_array($query)) {
        $x++;
        $batch_id[$x] = $row['id'];
        $vare_id[$x] = $row['vare_id'];
        $antal[$x] = $row['antal'];
        $serienr[$x] = $row['serienr'];
        $batch_kob_id[$x] = $row['batch_kob_id'];
        $batch_linje_id[$x] = $row['linje_id'];
        # Indsat 20101129 - Der bliver undertiden oprettet batch_salg linjer uden tilhorende ordrelinje hvilket giver fejl. Aarsag skal findes.
        if (!db_fetch_array(db_select("select id from ordrelinjer where id = '{$batch_linje_id[$x]}'", __FILE__ . " linje " . __LINE__))) {
            db_modify("delete from batch_salg where id='{$batch_id[$x]}'", __FILE__ . " linje " . __LINE__);
            $x--;
        }
    }
    $linjeantal = $x;
    for ($x = 1; $x <= $linjeantal; $x++) {
        $kostpris = 0;
        $query = db_select("select id,pris,rabat,projekt,bogf_konto,kostpris,samlevare,saet,procent from ordrelinjer where id = '{$batch_linje_id[$x]}'", __FILE__ . " linje " . __LINE__);
        $row = db_fetch_array($query);
        $ordre_linje_id = $row['id'];
        $pris = $row['pris'] - $row['pris'] * $row['rabat'] / 100;
        if ($row['procent'] || $row['procent'] == '0') {
            $pris *= $row['procent'] / 100;
        }
        #20150817
        $linjekostpris = $row['kostpris'] * 1;
        $projekt = $row['projekt'];
        $bogf_konto = $row['bogf_konto'];
        $fast_db = $row['fast_db'];
        $samlevare = $row['samlevare'];
        $saet = $row['saet'];
        if ($valutakurs) {
            $pris = afrund($pris * $valutakurs / 100, 3);
            $linjekostpris = afrund($linjekostpris * $valutakurs / 100, 3);
        }
        db_modify("update batch_salg set pris={$pris}, fakturadate='{$fakturadate}' where id='{$batch_id[$x]}'", __FILE__ . " linje " . __LINE__);
        if ($batch_kob_id[$x]) {
            $query = db_select("select pris, ordre_id from batch_kob where id = '{$batch_kob_id[$x]}'", __FILE__ . " linje " . __LINE__);
            if ($row = db_fetch_array($query)) {
                $kostpris = $row['pris'];
                if ($row['ordre_id']) {
                    $query = db_select("select status from ordrer where id = '{$row['ordre_id']}'", __FILE__ . " linje " . __LINE__);
                    $row = db_fetch_array($query);
                    if ($row['status']) {
                        $kobsstatus = $row['status'];
                    }
                } else {
                    $kobsstatus = 0;
                }
            }
        }
        $query2 = db_select("select gruppe from varer where id = {$vare_id[$x]}", __FILE__ . " linje " . __LINE__);
        $row2 = db_fetch_array($query2);
        $gruppe = $row2['gruppe'];
        $query2 = db_select("select * from grupper where art='VG' and kodenr='{$gruppe}'", __FILE__ . " linje " . __LINE__);
        $row2 = db_fetch_array($query2);
        $box1 = trim($row2['box1']);
        $box2 = trim($row2['box2']);
        $box3 = trim($row2['box3']);
        $box4 = trim($row2['box4']);
        $box8 = trim($row2['box8']);
        $box9 = trim($row2['box9']);
        $box12 = trim($row2['box12']);
        $box14 = trim($row2['box14']);
        if ($box12 && cvrnr_omr(cvrnr_land($cvrnr)) == "EU") {
            $bf_kto = $box12;
        } elseif ($box14 && cvrnr_omr(cvrnr_land($cvrnr)) == "UD") {
            $bf_kto = $box14;
        } elseif ($bogf_konto) {
            $bf_kto = $bogf_konto;
        } else {
            $bf_kto = $box4;
        }
        $r = db_fetch_array(db_select("select box2 from grupper where kodenr='{$regnaar}' and art='RA'", __FILE__ . " linje " . __LINE__));
        $r['box2'] >= '2015' ? $aut_lager = 'on' : ($aut_lager = NULL);
        #		if ($bogf_konto) $box4=$bogf_konto;
        if (!$version) {
            include "../includes/version.php";
        }
        if ($version < "3.0.6") {
            $projekt = $projekt * 1;
        }
        #xit;
        db_modify("update ordrelinjer set bogf_konto='{$bf_kto}',projekt='{$projekt}' where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__);
        #cho"Fifo $fifo<br>";
        if ($fifo && !$box9) {
            $y = 0;
            $mangler = $antal[$x];
            $kostsum = 0;
            $qtxt = "select * from batch_kob where rest>'0' and vare_id='{$vare_id[$x]}' and ordre_id!= '{$id}' order by fakturadate,id";
            $q = db_select($qtxt, __FILE__ . " linje " . __LINE__);
            while ($mangler && ($r = db_fetch_array($q))) {
                $rest = $r['rest'];
                if ($mangler && $rest >= $mangler) {
                    $kostsum += $mangler * $r['pris'];
                    $rest = $rest - $mangler;
                    $mangler = 0;
                } elseif ($mangler && $rest < $mangler) {
                    $kostsum += $r['rest'] * $r['pris'];
                    $mangler = $mangler - $rest;
                    $rest = 0;
                }
                db_modify("update batch_kob set rest='{$rest}' where id='{$r['id']}'", __FILE__ . " linje " . __LINE__);
                $y++;
            }
            if ($y == 0) {
                $qtxt = "select kostpris from varer where id='{$vare_id[$x]}'";
                $r = db_fetch_array(db_select($qtxt, __FILE__ . " linje " . __LINE__));
                $kostpris = $r['kostpris'] * 1;
                $kostsum = $kostpris * $mangler;
            }
            if ($antal[$x] - $mangler) {
                $kostpris = $kostsum / ($antal[$x] - $mangler);
                # -mangler tilfojet 20120607 grundet fejl i lager->varekob v. negativt lager (saldi_444)
                $kostpris *= 1;
                db_modify("update ordrelinjer set kostpris='{$kostpris}' where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__);
            }
            if ($mangler) {
                #så bliver lagerbeholdningen negativ
                #cho "update ordrelinjer set kostpris='$kostpris' where id='$ordre_linje_id'<br>";
                db_modify("update ordrelinjer set kostpris='{$kostpris}' where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__);
            }
        }
        if ($box9 == 'on') {
            # box 9 betyder at der anvendes batch styring
            if ($antal[$x] > 0) {
                if (!$batch_kob_id[$x]) {
                    # saa er varen ikke paa lager, dvs at indkobsordren skal findes i tabellen reservation
                    $query = db_select("select linje_id, lager from reservation where batch_salg_id = '{$batch_id[$x]}'", __FILE__ . " linje " . __LINE__);
                    $row = db_fetch_array($query);
                    $res_antal = $res_antal + $row['antal'];
                    $res_linje_id = $row['linje_id'];
                    $lager = $row['lager'];
                    $r1 = db_fetch_array(db_select("select ordre_id, pris, rabat, projekt from ordrelinjer where id = '{$res_linje_id}'", __FILE__ . " linje " . __LINE__));
                    $kob_ordre_id = $r1['ordre_id'];
                    $projekt = $r1['projekt'];
                    $r2 = db_fetch_array(db_select("select valutakurs from ordrer where id = '{$kob_ordre_id}'", __FILE__ . " linje " . __LINE__));
                    #cho "$r1['pris']-($r1['pris']*$r1['rabat']/100))*$r2['valutakurs']/100<br>";
                    $kostpris = ($r1['pris'] - $r1['pris'] * $r1['rabat'] / 100) * $r2['valutakurs'] / 100;
                    if ($valutakurs && $valutakurs != 100) {
                        $kostpris *= 100 / $valutakurs;
                    }
                    db_modify("update ordrelinjer set kostpris = '{$kostpris}' where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__);
                    # Hvis levering er sket i flere omgange vil der vaere flere batch_salg linjer paa samme kobs linje, derfor nedenstaende.
                    if ($row = db_fetch_array(db_select("select id from batch_kob where linje_id='{$res_linje_id}' and vare_id='{$vare_id[$x]}' and ordre_id='{$kob_ordre_id}'", __FILE__ . " linje " . __LINE__))) {
                        $batch_kob_id[$x] = $row['id'];
                    } else {
                        db_modify("insert into batch_kob (linje_id, vare_id, ordre_id, pris, lager) values ('{$res_linje_id}','{$vare_id[$x]}','{$kob_ordre_id}','{$kostpris}','{$lager}')", __FILE__ . " linje " . __LINE__);
                        #Antal indsaettes ikke - dette styres i "reservation"
                        $row = db_fetch_array(db_select("select id from batch_kob where linje_id='{$res_linje_id}' and vare_id='{$vare_id[$x]}' and ordre_id='{$kob_ordre_id}'", __FILE__ . " linje " . __LINE__));
                        $batch_kob_id[$x] = $row['id'];
                    }
                    db_modify("update reservation set batch_kob_id='{$batch_kob_id[$x]}' where linje_id = '{$res_linje_id}'", __FILE__ . " linje " . __LINE__);
                    #cho "update batch_salg set batch_kob_id='$batch_kob_id[$x]' where id='$batch_id[$x]'<br>";
                    db_modify("update batch_salg set batch_kob_id='{$batch_kob_id[$x]}' where id='{$batch_id[$x]}'", __FILE__ . " linje " . __LINE__);
                }
                # Nedenstående er muligvis overflødig - skal testes.
                # 20120730 Remmet folgende 3 linjer da de giver forkert lagertræk v. salg før køb.
                $row = db_fetch_array(db_select("select pris,fakturadate from batch_kob where id='{$batch_kob_id[$x]}'", __FILE__ . " linje " . __LINE__));
                # kostprisen findes..
                if ($row['fakturadate']) {
                    $kostpris = $row['pris'] * 1;
                } else {
                    $kostpris = $linjekostpris;
                }
                $row = db_fetch_array(db_select("select kostpris from varer where id={$vare_id[$x]}", __FILE__ . " linje " . __LINE__));
                $kostpris = $row['kostpris'] * 1;
            }
            if (!$aut_lager && $box1 && $box2 && $kostpris) {
                #kostvaerdien flyttes fra "afgang varelager" til "varekob".- hvis der ikke bogfoeres direkte paa varekobs kontoen
                #	if ($valutakurs) $pris=$pris*100/$valutakurs;
                #cho " insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt) values ('-1','$antal[$x]', '$kostpris', 0, '$id', '$box2','$projekt')<br>";
                db_modify("insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt) values ('-1','{$antal[$x]}', '{$kostpris}', 0, '{$id}', '{$box2}','{$projekt}','0')", __FILE__ . " linje " . __LINE__);
                $kostpris = $kostpris * -1;
                #cho "insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt) values ('-1','$antal[$x]', '$kostpris', 0, '$id', '$box3','$projekt')";
                db_modify("insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt) values ('-1','{$antal[$x]}', '{$kostpris}', 0, '{$id}', '{$box3}','{$projekt}','0')", __FILE__ . " linje " . __LINE__);
            }
            #xit;
        } elseif ($box8 == 'on') {
            # hvis box8 er 'on' er varen lagerfoert
            $r = db_fetch_array(db_select("select pris,fast_db from ordrelinjer where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__));
            $fast_db = $r['fast_db'] * 1;
            if ($fast_db) {
                $kostpris = $r['pris'] * $fast_db;
            } else {
                if ($samlevare && $saet) {
                    $kostpris = 0;
                } else {
                    $r = db_fetch_array(db_select("select kostpris from varer where id='{$vare_id[$x]}'", __FILE__ . " linje " . __LINE__));
                    $kostpris = $r['kostpris'] * 1;
                }
            }
            if (!$fifo) {
                #			if ($valutakurs) $kostpris=$kostpris*100/$valutakurs;
                db_modify("update ordrelinjer set kostpris = '{$kostpris}' where id='{$ordre_linje_id}'", __FILE__ . " linje " . __LINE__);
            }
            #cho "$box1 && $box2 && $kostpris<br>";
            if (!$aut_lager && $box1 && $box2 && ($kostpris || $linjekostpris)) {
                #cho "$kostpris=$linjekostpris<br>";
                if (!$kostpris) {
                    $kostpris = $linjekostpris;
                }
                db_modify("insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt,saet) values ('-1','{$antal[$x]}', '{$kostpris}', '0', '{$id}', '{$box2}','{$projekt}','0')", __FILE__ . " linje " . __LINE__);
                $kostpris = $kostpris * -1;
                db_modify("insert into ordrelinjer (posnr, antal, pris, rabat, ordre_id, bogf_konto, projekt,saet) values ('-1','{$antal[$x]}', '{$kostpris}', '0', '{$id}', '{$box3}','{$projekt}','0')", __FILE__ . " linje " . __LINE__);
            }
        }
        #cho "C select * from ordrer where id='$id'<br>";
        $q = db_select("select * from ordrer where id='{$id}'", __FILE__ . " linje " . __LINE__);
        $r = db_fetch_array($q);
        #cho "Sum $r[sum] $r[moms]<br>";
    }
    #xit;
}
Beispiel #2
0
 if ($aut_lager) {
     $box1 = $box3;
     $box2 = $box4;
 } else {
     if (!$box1 && $box3) {
         $box1 = $box3;
     }
     #20131108
     if (!$box2 && $box4) {
         $box2 = $box4;
     }
     #20141117
 }
 if ($box11 && cvrnr_omr(cvrnr_land($cvrnr)) == "EU") {
     $bf_kto = $box11;
 } elseif ($box13 && cvrnr_omr(cvrnr_land($cvrnr)) == "UD") {
     $bf_kto = $box13;
 } else {
     $bf_kto = $box3;
 }
 #cho "cvr $cvrnr box11 $box11 box13 $box13 bf_kto $bf_kto<br>";
 if ($box8 != 'on') {
     #cho "update ordrelinjer set bogf_konto='$bf_kto' where id='$linje_id[$x]'<br>";
     db_modify("update ordrelinjer set bogf_konto='{$bf_kto}' where id='{$linje_id[$x]}'", __FILE__ . " linje " . __LINE__);
     db_modify("update batch_kob set pris = '{$dkpris[$x]}', fakturadate='{$levdate}' where linje_id={$linje_id[$x]}", __FILE__ . " linje " . __LINE__);
 } else {
     if ($box1) {
         #Box 1 er konto for lagertilgang,
         #cho "update ordrelinjer set bogf_konto='$box1' where id='$linje_id[$x]'<br>";
         db_modify("update ordrelinjer set bogf_konto='{$box1}' where id='{$linje_id[$x]}'", __FILE__ . " linje " . __LINE__);
     } else {
Beispiel #3
0
#$query=db_select("select * from grupper where art = 'RA' order by box2 desc",__FILE__ . " linje " . __LINE__);
#$x=0;
#while ($row = db_fetch_array($query)) {
#}
#$regnaar[0]=
$datafil = "0," . $egetcvrnr . ",LISTE,,,,,,";
$eu_debitorgrp[0] = 2;
$totalsumdkk = 0;
$antal_poster = 0;
$query = db_select("select id, cvrnr from adresser where art = 'D'", __FILE__ . " linje " . __LINE__);
while ($row = db_fetch_array($query)) {
    $varesumdkk = 0;
    $ydelsessumdkk = 0;
    $fakturaer = 0;
    $debitorcvrnr = $row[cvrnr];
    if (cvrnr_omr(cvrnr_land($debitorcvrnr)) == "EU") {
        echo "<!-- <p>Hvis i EU </p> -->\n";
    } else {
        continue;
    }
    $debughtml .= "<p>Debitor: " . $row[id] . "</p>\n";
    $debughtml .= "\n<table>\n";
    $debughtml .= "<tr><th>Dato</th><th>Cvrnr.</th><th>Bel&oslash;b</th><th>Valuta</th></tr>\n";
    #cho "select id, fakturadate, kontonr, sum, cvrnr, valuta, valutakurs from ordrer where konto_id = '$row[id]' and fakturadate >= '$kvartal_startdato' and fakturadate <= '$kvartal_slutdato' and status = '4' order by cvrnr<br>";
    $q = db_select("select id, fakturadate, kontonr, sum, cvrnr, valuta, valutakurs from ordrer where konto_id = '{$row['id']}' and fakturadate >= '{$liste_startdato}' and fakturadate <= '{$liste_slutdato}' and status = '4' order by cvrnr", __FILE__ . " linje " . __LINE__);
    # 20140729 afsnit 2
    while ($r = db_fetch_array($q)) {
        $fakturaer++;
        if ($r[cvrnr]) {
            $modtagercvrnr = $r['cvrnr'];
        } else {