Exemple #1
0
function regnskab($regnaar, $maaned_fra, $maaned_til, $aar_fra, $aar_til, $dato_fra, $dato_til, $konto_fra, $konto_til, $rapportart, $ansat_fra, $ansat_til, $afd, $projekt_fra, $projekt_til, $simulering, $lagerbev)
{
    print "<!--Function regnskab start-->\n";
    global $connection;
    global $top_bund;
    global $md;
    global $ansatte;
    global $ansatte_id;
    global $afd_navn;
    global $prj_navn_fra;
    global $prj_navn_til;
    global $bgcolor;
    global $bgcolor4;
    global $bgcolor5;
    global $menu;
    $periodesum = array();
    $kto_periode = array();
    #cho "942 $projekt_fra $prj_navn_fra - $projekt_til $prj_navn_til<br>";
    if ($rapportart == 'budget') {
        $budget = 1;
        $cols1 = 2;
        $cols2 = 3;
        $cols3 = 4;
        $cols4 = 5;
        $cols5 = 6;
        $cols6 = 7;
    } else {
        $budget = 0;
        $cols1 = 1;
        $cols2 = 2;
        $cols3 = 3;
        $cols4 = 4;
        $cols5 = 5;
        $cols6 = 6;
    }
    if ($row = db_fetch_array(db_select("select firmanavn from adresser where art='S'", __FILE__ . " linje " . __LINE__))) {
        $firmanavn = $row['firmanavn'];
    }
    if ($afd && ($row = db_fetch_array(db_select("select beskrivelse from grupper where art='AFD' and kodenr='{$afd}'", __FILE__ . " linje " . __LINE__)))) {
        $afd_navn = $row['beskrivelse'];
    }
    $regnaar = $regnaar * 1;
    #fordi den er i tekstformat og skal vaere numerisk
    $maaned_fra = trim($maaned_fra);
    $maaned_til = trim($maaned_til);
    $konto_fra = trim($konto_fra);
    $konto_til = trim($konto_til);
    $mf = $maaned_fra;
    $mt = $maaned_til;
    for ($x = 1; $x <= 12; $x++) {
        if ($maaned_fra == $md[$x]) {
            $maaned_fra = $x;
        }
        if ($maaned_til == $md[$x]) {
            $maaned_til = $x;
        }
        if (strlen($maaned_fra) == 1) {
            $maaned_fra = "0" . $maaned_fra;
        }
        if (strlen($maaned_til) == 1) {
            $maaned_til = "0" . $maaned_til;
        }
        if (strlen($dato_fra) == 1) {
            $dato_fra = "0" . $dato_fra;
        }
        if (strlen($dato_til) == 1) {
            $dato_til = "0" . $dato_til;
        }
    }
    $query = db_select("select * from grupper where kodenr='{$regnaar}' and art='RA'", __FILE__ . " linje " . __LINE__);
    $row = db_fetch_array($query);
    #	$regnaar=$row[kodenr];
    $startmaaned = $row['box1'] * 1;
    $startaar = $row['box2'] * 1;
    $slutmaaned = $row['box3'] * 1;
    $slutaar = $row['box4'] * 1;
    $slutdato = 31;
    if ($rapportart == 'budget') {
        $startmd = $maaned_fra - $startmaaned + 1;
        $slutmd = $maaned_til - $startmaaned + 1;
        if ($slutaar > $startaar && $maaned_fra > $maaned_til) {
            $slutmd = $slutmd + 12;
        }
    }
    if (strlen($startmaaned) == 1) {
        $startmaaned = "0" . $startmaaned;
    }
    if (strlen($slutmaaned) == 1) {
        $slutmaaned = "0" . $slutmaaned;
    }
    $regnaarstart = $startaar . "-" . $startmaaned . "-" . '01';
    if ($maaned_fra) {
        $startmaaned = $maaned_fra;
    }
    if ($maaned_til) {
        $slutmaaned = $maaned_til;
    }
    if ($dato_fra) {
        $startdato = $dato_fra;
    }
    if ($dato_til) {
        $slutdato = $dato_til;
    }
    while (!checkdate($startmaaned, $startdato, $startaar)) {
        $startdato = $startdato - 1;
        if ($startdato < 28) {
            break 1;
        }
    }
    while (!checkdate($slutmaaned, $slutdato, $slutaar)) {
        $slutdato = $slutdato - 1;
        if ($slutdato < 28) {
            break 1;
        }
    }
    #cho "1008 $projekt_fra $prj_navn_fra - $projekt_til $prj_navn_til<br>";
    $regnstart = $aar_fra . "-" . $startmaaned . "-" . $startdato;
    $regnslut = $aar_til . "-" . $slutmaaned . "-" . $slutdato;
    $startaar >= '2015' ? $aut_lager = 'on' : ($aut_lager = NULL);
    if ($aut_lager && $lagerbev) {
        $x = 0;
        $varekob = array();
        $q = db_select("select box1,box2,box3 from grupper where art = 'VG' and box8 = 'on'", __FILE__ . " linje " . __LINE__);
        while ($r = db_fetch_array($q)) {
            if ($r['box1'] && $r['box2'] && !in_array($r['box3'], $varekob)) {
                $varelager_i[$x] = $r['box1'];
                $varelager_u[$x] = $r['box2'];
                #cho "VL $varelager_u[$x]<br>";
                $varekob[$x] = $r['box3'];
                #cho "VK $varekob[$x]<br>";
                $x++;
            }
        }
    }
    $x = 0;
    $valdate = array();
    $valkode = array();
    $q = db_select("select * from valuta order by gruppe,valdate desc");
    while ($r = db_fetch_array($q)) {
        $y = $x - 1;
        if (!$x || $r['gruppe'] != $valkode[$x] || $valdate[$x] >= $regnstart) {
            $valkode[$x] = $r['gruppe'];
            $valkurs[$x] = $r['kurs'];
            $valdate[$x] = $r['valdate'];
            $x++;
        }
    }
    print "<table width = 100% cellpadding=\"1\" cellspacing=\"1\" border=\"0\"><tbody>";
    if ($menu == 'T') {
        $leftbutton = "<a title=\"Klik her for at komme til forsiden af rapporter\" href=\"rapport.php?rapportart=kontokort&regnaar={$regnaar}&dato_fra={$startdato}&maaned_fra={$mf}&aar_fra={$aar_fra}&dato_til={$slutdato}&maaned_til={$mt}&aar_til={$aar_til}&konto_fra={$konto_fra}&konto_til={$konto_til}&ansat_fra={$ansat_fra}&ansat_til={$ansat_til}&afd={$afd}&projekt_fra={$projekt_fra}&projekt_til={$projekt_til}&simulering={$simulering}&lagerbev={$lagerbev}\" accesskey=\"L\">LUK</a>";
        $rightbutton = "";
        include "../includes/topmenu.php";
    } elseif ($menu == 'S') {
        include "../includes/sidemenu.php";
    } else {
        print "<tr><td colspan=\"{$cols6}\" height=\"8\">";
        print "<table width=\"100%\" align=\"center\" border=\"0\" cellspacing=\"3\" cellpadding=\"0\"><tbody>";
        #B
        print "<td width=\"10%\" {$top_bund}><a accesskey=L href=\"rapport.php?rapportart={$rapportart}&regnaar={$regnaar}&dato_fra={$startdato}&maaned_fra={$mf}&aar_fra={$aar_fra}&dato_til={$slutdato}&maaned_til={$mt}&aar_til={$aar_til}&konto_fra={$konto_fra}&konto_til={$konto_til}&ansat_fra={$ansat_fra}&ansat_til={$ansat_til}&afd={$afd}&projekt_fra={$projekt_fra}&projekt_til={$projekt_til}&simulering={$simulering}&lagerbev={$lagerbev}\">Luk</a></td>";
        print "<td width=\"80%\" {$top_bund}> Rapport - {$rapportart} </td>";
        print "<td width=\"10%\" {$top_bund}><br></td>";
        print "</tbody></table>";
        #B s**t
        print "</td></tr>";
    }
    if ($rapportart == 'resultat') {
        $simulering ? $tmp = "Simuleret resultat" : ($tmp = "Resultat");
    } elseif ($rapportart == 'budget') {
        $simulering ? $tmp = "Simuleret resultat/budget" : ($tmp = "Resultat/budget");
    } else {
        $simulering ? $tmp = "Simuleret Balance" : ($tmp = "Balance");
    }
    print "<tr><td colspan=\"{$cols4}\"><big><big>{$tmp}</span></big></big></td>";
    print "<td colspan=\"{$cols2}\" align=right><table style=\"text-align: left; width: 100%;\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tbody><tr>";
    if ($afd) {
        print "<td>Afdeling</span></td>";
        print "<td>{$afd}: {$afd_navn}</span></td></tr>";
    }
    print "<td>Regnskabs&aring;r</span></td>";
    print "<td>{$regnaar}.</span></td></tr>";
    print "<tr><td>Periode</span></td>";
    if ($startdato < 10) {
        $startdato = "0" . $startdato * 1;
    }
    print "<td>Fra " . $startdato . ". {$mf} {$aar_fra}<br />Til " . $slutdato . ". {$mt} {$aar_til}</span></td></tr>";
    if ($ansat_fra) {
        if (!$ansat_til || $ansat_fra == $ansat_til) {
            print "<tr><td>Medarbejder</span></td><td>{$ansatte}</span></td></tr>";
        } else {
            print "<tr><td>Medarbejdere</span></td><td>{$ansatte}</span></td></tr>";
        }
    }
    if ($afd) {
        print "<tr><td>Afdeling</span></td><td>{$afd_navn}</span></td></tr>";
    }
    if ($projekt_fra) {
        print "<td>Projekt:</td><td>";
        #		print "<tr><td>Projekt $prj_navn_fra</td>";
        if (!strstr($projekt_fra, "?")) {
            if ($projekt_til && $projekt_fra != $projekt_til) {
                print "Fra: {$projekt_fra}, {$prj_navn_fra}<br>Til : {$projekt_til}, {$prj_navn_til}";
            } else {
                print "{$projekt_fra}, {$prj_navn_fra}";
            }
        } else {
            print "{$projekt_fra}, {$prj_navn_fra}";
        }
        print "</td></tr>";
    }
    print "</tbody></table></td></tr>";
    print "<tr><td colspan=\"4\"><big><b>{$firmanavn}</b></big></td>";
    print "<td align=right> Perioden </td>";
    if ($rapportart == 'budget') {
        print "<td align=right> Budget </td><td align=right> Afvigelse </td></tr>";
    } else {
        print "<td align=right> &Aring;r til dato </td></tr>";
    }
    print "<tr><td colspan=\"{$cols6}\"><hr></td></tr>";
    $x = 0;
    $query = db_select("select * from kontoplan where regnskabsaar='{$regnaar}' order by kontonr", __FILE__ . " linje " . __LINE__);
    while ($row = db_fetch_array($query)) {
        $x++;
        $kontonr[$x] = $row['kontonr'] * 1;
        $ktonr[$x] = $kontonr[$x];
        $kontobeskrivelse[$x] = $row['beskrivelse'];
        $kontotype[$x] = $row['kontotype'];
        $fra_kto[$x] = $row['fra_kto'] * 1;
        $primo[$x] = afrund($row['primo'], 2);
        $saldo[$x] = $row['saldo'] * 1;
        $lukket[$x] = $row['lukket'];
        #20120927
        $aarsum[$x] = 0;
        $kto_aar[$x] = 0;
        $kto_periode[$x] = 0;
        $vis_kto[$x] = 0;
        $kontovaluta[$x] = $row['valuta'];
        $kontokurs[$x] = $row['valutakurs'];
        if (!$dim && $kontotype[$x] == "S") {
            $primo[$x] = afrund($row['primo'], 2);
        } else {
            $primo[$x] = 0;
        }
        if ($primo[$x] && $kontovaluta[$x]) {
            for ($y = 0; $y <= count($valkode); $y++) {
                if ($valkode[$y] == $kontovaluta[$x] && $valdate[$y] <= $slutdato) {
                    $kontokurs[$x] = $valkurs[$y];
                    break 1;
                }
            }
        } else {
            $primokurs[$x] = 100;
        }
    }
    $kontoantal = $x;
    $dim = '';
    if (($afd || $ansat_fra || $projekt_fra) && $rapportart != 'budget') {
        if ($afd) {
            $dim = "and afd = '{$afd}' ";
        }
        if ($ansat_fra && $ansat_til) {
            $tmp = str_replace(",", " or ansat=", $ansatte_id);
            $dim = $dim . " and (ansat={$tmp}) ";
        } elseif ($ansat_fra) {
            $dim = $dim . "and ansat = '{$ansat_fra}' ";
        }
        $projekt_fra = str2low($projekt_fra);
        $projekt_til = str2low($projekt_til);
        if ($projekt_fra && $projekt_til && $projekt_fra != $projekt_til) {
            $dim = $dim . " and lower(projekt) >= '{$projekt_fra}' and lower(projekt) <= '{$projekt_til}' ";
        } elseif ($projekt_fra) {
            $tmp = str_replace("?", "_", $projekt_fra);
            if (substr($tmp, -1) == '_') {
                while (substr($tmp, -1) == '_') {
                    $tmp = substr($tmp, 0, strlen($tmp) - 1);
                }
                $tmp = str2low($tmp) . "%";
            }
            $dim = $dim . "and lower(projekt) LIKE '{$tmp}' ";
        }
    }
    $x = 0;
    for ($x = 1; $x <= $kontoantal; $x++) {
        if ($r = db_fetch_array(db_select("select * from transaktioner where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' {$dim} and kontonr={$ktonr[$x]}", __FILE__ . " linje " . __LINE__))) {
            $vis_kto[$x] = 1;
        }
        if (db_fetch_array(db_select("select * from transaktioner where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' and kontonr='{$ktonr[$x]}' {$dim}", __FILE__ . " linje " . __LINE__))) {
            $vis_kto[$x] = 1;
        }
        if ($simulering) {
            if ($r = db_fetch_array(db_select("select * from simulering where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' {$dim} and kontonr={$ktonr[$x]}", __FILE__ . " linje " . __LINE__))) {
                $vis_kto[$x] = 1;
            }
            if (db_fetch_array(db_select("select * from simulering where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' and kontonr='{$ktonr[$x]}' {$dim}", __FILE__ . " linje " . __LINE__))) {
                $vis_kto[$x] = 1;
            }
        }
        if ($aut_lager && $lagerbev) {
            if (in_array($kontonr[$x], $varekob)) {
                $vis_kto[$x] = 1;
            }
            if (in_array($kontonr[$x], $varelager_i)) {
                $vis_kto[$x] = 1;
            }
            if (in_array($kontonr[$x], $varelager_u)) {
                $vis_kto[$x] = 1;
            }
        }
        if ($kontotype[$x] == 'R') {
            $vis_kto[$x] = 1;
        }
    }
    if ($rapportart == 'budget') {
        for ($x = 1; $x <= $kontoantal; $x++) {
            if (!$lukket[$x]) {
                #20120927
                if ($r = db_fetch_array(db_select("select sum(amount) as amount from budget where regnaar='{$regnaar}' and kontonr='{$ktonr[$x]}' and md >= '{$startmd}' and md <= '{$slutmd}'", __FILE__ . " linje " . __LINE__))) {
                    $vis_kto[$x] = 1;
                }
            }
        }
    }
    for ($x = 1; $x <= $kontoantal; $x++) {
        $kto_aar[$x] = 0;
        $kto_periode[$x] = 0;
        # Herunder tilfoejes primovaerdi.
        if ($rapportart == 'balance' && !$afd && !$projekt_fra && !$ansat_fra && ($r2 = db_fetch_array(db_select("select primo from kontoplan where regnskabsaar='{$regnaar}' and kontonr={$ktonr[$x]} and kontotype='S'", __FILE__ . " linje " . __LINE__)))) {
            $kto_aar[$x] = afrund($r2['primo'], 2);
        }
        $query = db_select("select * from transaktioner where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' and kontonr='{$ktonr[$x]}' {$dim}", __FILE__ . " linje " . __LINE__);
        while ($row = db_fetch_array($query)) {
            if ($row['transdate'] >= $regnstart) {
                $kto_periode[$x] = $kto_periode[$x] + afrund($row['debet'], 2) - afrund($row['kredit'], 2);
            }
            if ($rapportart != 'budget') {
                $kto_aar[$x] = $kto_aar[$x] + afrund($row['debet'], 2) - afrund($row['kredit'], 2);
            }
        }
        if ($simulering) {
            $query = db_select("select * from simulering where transdate>='{$regnaarstart}' and transdate<='{$regnslut}' and kontonr='{$ktonr[$x]}' {$dim}", __FILE__ . " linje " . __LINE__);
            while ($row = db_fetch_array($query)) {
                #cho "$kto_periode[$x] --> ";
                if ($row['transdate'] >= $regnstart) {
                    $kto_periode[$x] = $kto_periode[$x] + afrund($row['debet'], 2) - afrund($row['kredit'], 2);
                }
                #cho "$kto_periode[$x]<br>";
                if ($rapportart != 'budget') {
                    $kto_aar[$x] = $kto_aar[$x] + afrund($row['debet'], 2) - afrund($row['kredit'], 2);
                }
            }
        }
        if ($aut_lager && $lagerbev) {
            if (in_array($ktonr[$x], $varekob)) {
                $l_a_primo[$x] = find_lagervaerdi($ktonr[$x], $regnaarstart, 'start');
                $l_a_sum[$x] = find_lagervaerdi($ktonr[$x], $regnslut, 's**t');
                $l_p_primo[$x] = find_lagervaerdi($ktonr[$x], $regnstart, 'start');
                #cho "LAP $l_a_primo[$x] $l_a_sum[$x] $ktonr[$x]<br>";
                # Varekøb (debet) debiteres lager primo og krediteres lager saldo. Dvs tallet mindskes hvis lager øges
                $kto_aar[$x] += $l_a_primo[$x];
                $kto_aar[$x] -= $l_a_sum[$x];
                $kto_periode[$x] += $l_p_primo[$x];
                $kto_periode[$x] -= $l_a_sum[$x];
            }
            if (in_array($ktonr[$x], $varelager_i) || in_array($ktonr[$x], $varelager_u)) {
                $l_a_primo[$x] = find_lagervaerdi($ktonr[$x], $regnaarstart, 'start');
                $l_a_sum[$x] = find_lagervaerdi($ktonr[$x], $regnslut, 's**t');
                $l_p_primo[$x] = find_lagervaerdi($ktonr[$x], $regnstart, 'start');
                #cho "LAP $l_a_primo[$x] $l_a_sum[$x] $ktonr[$x]<br>";
                # Varelager (debet) krediteres lager primo og og debiteres lager saldo.  Dvs tallet øges hvis lager øges
                $kto_aar[$x] -= $l_a_primo[$x];
                #20150125 + næste 3 linjer
                $kto_aar[$x] += $l_a_sum[$x];
                $kto_periode[$x] -= $l_p_primo[$x];
                $kto_periode[$x] += $l_a_sum[$x];
            }
        }
    }
    if ($rapportart == 'budget') {
        for ($x = 1; $x <= $kontoantal; $x++) {
            if ($vis_kto[$x]) {
                #20120927
                $r2 = db_fetch_array(db_select("select sum(amount) as amount from budget where regnaar='{$regnaar}' and kontonr='{$ktonr[$x]}' and md >= '{$startmd}' and md <= '{$slutmd}'", __FILE__ . " linje " . __LINE__));
                $kto_aar[$x] = afrund($r2['amount'], 2);
            }
        }
    }
    #else $kto_aar[$x]=$kto_aar[$x]+afrund($row['debet'],2)-afrund($row['kredit'],2);
    $kto_antal = $kontoantal;
    for ($x = 1; $x <= $kontoantal; $x++) {
        # Her fanges konti med primovaerdi og ingen bevaegelser i perioden.
        if (!in_array($kontonr[$x], $ktonr) && !$afd && !$projekt_fra && !$ansat_fra) {
            if ($primo[$x]) {
                $kto_antal++;
                $ktonr[$kto_antal] = $kontonr[$x];
                $kto_aar[$kto_antal] = $primo[$x];
                #				if (in_array($ktonr[$kto_antal],$varekob)) {
                #			$l_a_primo[$kto_antal]=find_lagervaerdi($ktonr[$kto_antal],$varekob,$regnstart);
                #			$l_a_sum[$kto_antal]=find_lagervaerdi($ktonr[$kto_antal],$varekob,$regnslut);
                #				$l_p_primo[$x]=find_lagervaerdi($kontonr[$x],$varekob,$regnaarstart);
                #			$kto_aar[$kto_antal]-=$l_a_primo[$kto_antal];
                #			$kto_aar[$kto_antal]+=$l_a_sum[$kto_antal];
                #				$periodesum[$x]-=$l_p_primo[$x];
                #				$periodesum[$x]+=$l_a_sum[$x];
                #		}
            }
        }
    }
    for ($x = 1; $x <= $kontoantal; $x++) {
        # Her fanges konti med lagerrelation & primovaerdi og ingen bevaegelser i perioden.
        if (in_array($kontonr[$x], $varelager_i) || in_array($kontonr[$x], $varelager_u)) {
            if (in_array($kontonr[$x], $ktonr)) {
                $kto_antal++;
                $ktonr[$kto_antal] = $kontonr[$x];
                $kto_aar[$kto_antal] = 0;
            }
        }
    }
    for ($x = 1; $x <= $kontoantal; $x++) {
        if ($kontotype[$x] == 'R') {
            for ($y = 1; $y <= $kontoantal; $y++) {
                #20140825
                if ($ktonr[$y] == $fra_kto[$x]) {
                    $aarsum[$x] = $aarsum[$y];
                    $periodesum[$x] = $periodesum[$y];
                    $kto_aar[$x] = $aarsum[$x];
                    #20140909 rettet fra = $kto_aar[$y]
                    $kto_periode[$x] = $periodesum[$x];
                    #20140909 rettet fra = $kto_periode[$y]
                }
            }
            #			$aarsum[$x]=$saldo[$x];
            #			$periodesum[$x]=$saldo[$x];
            #			$kto_aar[$x]=$saldo[$x];
            #			$kto_periode[$x]=$saldo[$x];
        }
        if (!isset($periodesum[$x])) {
            $periodesum[$x] = 0;
        }
        for ($y = 1; $y <= $kto_antal; $y++) {
            if (!isset($kto_periode[$y])) {
                $kto_periode[$y] = 0;
            }
            if ($kontotype[$x] == 'D' || $kontotype[$x] == 'S') {
                if ($kontonr[$x] == $ktonr[$y]) {
                    $aarsum[$x] = $aarsum[$x] + $kto_aar[$y];
                    $periodesum[$x] = $periodesum[$x] + $kto_periode[$y];
                }
            } elseif ($kontotype[$x] == 'Z') {
                if ($fra_kto[$x] <= $ktonr[$y] && $kontonr[$x] >= $ktonr[$y] && $kontonr[$x] != $ktonr[$y]) {
                    $aarsum[$x] = $aarsum[$x] + $kto_aar[$y];
                    $periodesum[$x] = $periodesum[$x] + $kto_periode[$y];
                }
            }
        }
    }
    for ($x = 1; $x <= $kontoantal; $x++) {
        if ($kontonr[$x] >= $konto_fra && $kontonr[$x] <= $konto_til && ($aarsum[$x] || $periodesum[$x] || $kontotype[$x] == 'H' || $kontotype[$x] == 'R')) {
            if ($kontotype[$x] == 'H') {
                $linjebg = $bgcolor;
                print "<tr><td><br></td></tr>";
                $tmp = kontobemaerkning($kontobeskrivelse[$x]);
                print "<tr bgcolor=\"{$bgcolor5}\"><td {$tmp} colspan=\"{$cols6}\"><b>{$kontobeskrivelse[$x]}</b></td>";
                print "<tr><td colspan=\"{$cols6}\"><hr></td></tr>";
            } elseif ($kontotype[$x] == 'Z') {
                print "<tr><td colspan=\"{$cols6}\"><hr></td></tr>";
                $tmp = kontobemaerkning($kontobeskrivelse[$x]);
                if (!$budget) {
                    print "<td><br></td>";
                }
                print "<td {$tmp} colspan=\"{$cols3}\"><b> {$kontobeskrivelse[$x]} </b></td>";
                if ($kontovaluta[$x]) {
                    for ($y = 0; $y <= count($valkode); $y++) {
                        if ($valkode[$y] == $kontovaluta[$x] && $valdate[$y] <= $slutdate) {
                            $transkurs[$x] = $valkurs[$y];
                            break 1;
                        }
                    }
                    $tmp = $periodesum[$x] * 100 / $kontokurs[$y];
                    $title = "DKK " . dkdecimal($periodesum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                } else {
                    $tmp = $periodesum[$x];
                    $title = NULL;
                }
                print "<td align=\"right\" title=\"{$title}\"><b>" . dkdecimal($tmp) . "</b></td>";
                if ($kontovaluta[$x]) {
                    $tmp = $aarsum[$x] * 100 / $kontokurs[$x];
                    $title = "DKK " . dkdecimal($aarsum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                } else {
                    $tmp = $aarsum[$x];
                    $title = NULL;
                }
                print "<td align=\"right\" title=\"{$title}\"><b>" . dkdecimal($tmp) . "</b></td>";
                if ($rapportart == 'budget') {
                    if ($kontovaluta[$x]) {
                        $tmp = $aarsum[$x] * 100 / $kontokurs[$x];
                        $title = "DKK " . dkdecimal($aarsum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                    } else {
                        if ($aarsum[$x]) {
                            $tmp = ($periodesum[$x] - $aarsum[$x]) * 100 / $aarsum[$x];
                        } else {
                            $tmp = "--";
                        }
                        $title = NULL;
                    }
                    print "<td align=\"right\" title=\"{$title}\"><b> {$tmp}%</b></td>";
                }
                print "<tr><td colspan=\"{$cols6}\"><hr></td></tr>";
            } else {
                if (in_array($kontonr[$x], $varekob)) {
                    $title = "Heraf på lager: " . dkdecimal($l_a_sum[$x] - $l_p_primo[$x]);
                } else {
                    $title = '';
                }
                $linjebg != $bgcolor5 ? $linjebg = $bgcolor5 : ($linjebg = $bgcolor);
                print "<tr bgcolor=\"{$linjebg}\"><td>{$kontonr[$x]}</td>";
                $tmp = kontobemaerkning($kontobeskrivelse[$x]);
                print "<td {$tmp} colspan=\"3\">{$kontobeskrivelse[$x]}</td>";
                if ($kontovaluta[$x]) {
                    $tmp = $periodesum[$x] * 100 / $kontokurs[$x];
                    $title = "DKK " . dkdecimal($periodesum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                } else {
                    $tmp = $periodesum[$x];
                    $title = NULL;
                }
                print "<td align=\"right\" title=\"{$title}\">" . dkdecimal($tmp) . "</td>";
                if ($kontovaluta[$x]) {
                    $tmp = $aarsum[$x] * 100 / $kontokurs[$x];
                    $title = "DKK " . dkdecimal($aarsum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                } else {
                    $tmp = $aarsum[$x];
                    $title = NULL;
                }
                #$tmp=dkdecimal($aarsum[$x]); #aar til dato
                print "<td align=\"right\" title=\"{$title}\">" . dkdecimal($tmp) . "</td>";
                if ($rapportart == 'budget') {
                    if ($kontovaluta[$x] && $aarsum[$x]) {
                        $tmp = ($periodesum[$x] - $aarsum[$x]) * 100 / $aarsum[$x] * 100 / $kontokurs[$x];
                        $title = "DKK " . dkdecimal($periodesum[$x]) . " Kurs: " . dkdecimal($kontokurs[$x]);
                    } elseif ($aarsum[$x]) {
                        $tmp = ($periodesum[$x] - $aarsum[$x]) * 100 / $aarsum[$x];
                        $title = NULL;
                    } else {
                        $tmp = "--";
                    }
                    print "<td align=\"right\">" . dkdecimal($tmp) . "%</td>";
                    #afvigelse fra budget
                }
                print "</tr>";
            }
        }
    }
    print "<tr><td colspan=\"{$cols6}\"><hr></td></tr>";
    print "</tbody></table>";
    print "<!--Function regnskab s**t-->\n";
}
Exemple #2
0
function aar_x($id, $kodenr, $beskrivelse, $startmd, $startaar, $slutmd, $slutaar, $aaben)
{
    global $overfor_til;
    $r = db_fetch_array(db_select("select max(kodenr) as max_aar from grupper where art = 'RA'", __FILE__ . " linje " . __LINE__));
    $max_aar = $r['max_aar'];
    $pre_regnaar = $kodenr - 1;
    $query = db_select("select * from grupper where art = 'RA' and kodenr = '{$pre_regnaar}'", __FILE__ . " linje " . __LINE__);
    if ($row = db_fetch_array($query)) {
        $pre_startmd = $row['box1'];
        $pre_startaar = $row['box2'];
        $pre_slutmd = $row['box3'];
        $pre_slutaar = $row['box4'];
    }
    $pre_slutdato = 31;
    while (!checkdate($pre_slutmd, $pre_slutdato, $pre_slutaar)) {
        $pre_slutdato = $pre_slutdato - 1;
        if ($pre_slutdato < 28) {
            break 1;
        }
    }
    $pre_regnstart = $pre_startaar . "-" . $pre_startmd . "-" . '01';
    $pre_regnslut = $pre_slutaar . "-" . $pre_slutmd . "-" . $pre_slutdato;
    print "<form name=aar_1 action=regnskabskort.php method=post>";
    if ($id) {
        print "<tr><td colspan=5 align = center><big><b>Ret {$kodenr}. regnskabs&aring;r: {$beskrivelse}</td></tr>\n";
    } else {
        print "<tr><td colspan=5 align = center><big><b>Opret {$kodenr}. regnskabs&aring;r: {$beskrivelse}</td></tr>\n";
    }
    print "<tr><td colspan=5 align=center><table width=100% border=0><tbody><tr>";
    ###########################table 8d start
    print "<tr><td></td><td align=center>Start</td><td align=center>Start</td><td align=center>S**t</td><td align=center>S**t</td><td align=center>Bogf&oslash;ring</td></tr>\n";
    print "<tr><td align=center>Beskrivelse</td><td align=center>m&aring;ned</td><td align=center>&aring;r</td><td align=center>m&aring;ned</td><td align=center>&aring;r</td><td align=center>tilladt</td></tr>\n";
    print "<tr><input type=hidden name=kodenr value={$kodenr}><input type=hidden name=id value='{$id}'\t>";
    print "<td align=center><input type=text size=30 name=beskrivelse value=\"{$beskrivelse}\" onchange=\"javascript:docChange = true;\"></td>";
    print "<td align=center><input readonly=readonly style=\"text-align:right\" size=2 name=startmd value={$startmd}></td>";
    print "<td align=center><input readonly=readonly style=\"text-align:right\" size=4 name=startaar value={$startaar}></td>";
    print "<td align=center><input type=text style=\"text-align:right\" size=2 name=slutmd value={$slutmd} onchange=\"javascript:docChange = true;\"></td>";
    print "<td align=center><input type=text style=\"text-align:right\" size=4 name=slutaar value={$slutaar} onchange=\"javascript:docChange = true;\"></td>";
    strstr($aaben, 'on') ? $checked = 'checked' : ($checked = NULL);
    if (!$id) {
        $checked = 'checked';
    }
    print "<td align=center><input type=checkbox name=aaben {$checked} onchange=\"javascript:docChange = true;\"></td>";
    print "</tr>\n</tbody></table></td></tr>\n";
    #####################################################table 8d s**t
    print "<tr><td colspan=2 align=center> Primotal for {$kodenr}. regnskabs&aring;r:</td><td align = center> saldo</td><td align = center> overf&oslash;r til</td><td align = center> ny primo</td></tr>\n";
    $tmp = $kodenr;
    $kontoantal = 0;
    while ($kontoantal < 1 && $tmp > 0) {
        #Hvis der ikke er oprettet konti for indevaerende regsskabsaar, hentes konti fra forrige.
        $query = db_select("select primo, kontonr, beskrivelse from kontoplan where kontotype='S' and regnskabsaar='{$tmp}' order by kontonr", __FILE__ . " linje " . __LINE__);
        while ($row = db_fetch_array($query)) {
            $kontoantal++;
            $primo[$kontoantal] = $row['primo'];
            $kontonr[$kontoantal] = $row['kontonr'];
        }
        $tmp--;
    }
    $pre_regnaar = $kodenr - 1;
    $r = db_fetch_array(db_select("select box2 from grupper where kodenr='{$pre_regnaar}' and art='RA'", __FILE__ . " linje " . __LINE__));
    $r['box2'] >= '2015' ? $aut_lager = 'on' : ($aut_lager = NULL);
    if (!$pre_regnaar) {
        echo "regnaar mangler";
        exit;
    }
    if ($aut_lager) {
        $x = 0;
        $varekob = array();
        $q = db_select("select box1,box2,box3 from grupper where art = 'VG' and box8 = 'on'", __FILE__ . " linje " . __LINE__);
        while ($r = db_fetch_array($q)) {
            if ($r['box1'] && !in_array($r['box3'], $varekob)) {
                $varelager_i[$x] = $r['box1'];
                $varelager_u[$x] = $r['box2'];
                $varekob[$x] = $r['box3'];
                $x++;
            }
        }
    }
    $ny_sum = 0;
    $resultat = 0;
    $q = db_select("select * from kontoplan where kontotype='D' and regnskabsaar={$pre_regnaar} order by kontonr", __FILE__ . " linje " . __LINE__);
    $y = 0;
    while ($r = db_fetch_array($q)) {
        $resultat += afrund($r['primo'], 2);
        $q2 = db_select("select * from transaktioner where transdate>='{$pre_regnstart}' and transdate<='{$pre_regnslut}' and kontonr='{$r['kontonr']}'", __FILE__ . " linje " . __LINE__);
        while ($r2 = db_fetch_array($q2)) {
            $resultat += afrund($r2['debet'] - $r2['kredit'], 2);
        }
        if ($aut_lager) {
            if (in_array($r['kontonr'], $varekob)) {
                $l_a_primo[$x] = find_lagervaerdi($r['kontonr'], $pre_regnstart);
                $l_a_sum[$x] = find_lagervaerdi($r['kontonr'], $pre_regnslut);
                # Varekøb (debet) debiteres lager primo og krediteres lager saldo. Dvs tallet mindskes hvis lager øges
                $resultat += $l_a_primo[$x];
                $resultat -= $l_a_sum[$x];
            }
            if (in_array($r['kontonr'], $varelager_i) || in_array($r['kontonr'], $varelager_u)) {
                $l_a_primo[$x] = find_lagervaerdi($r['kontonr'], $pre_regnstart);
                $l_a_sum[$x] = find_lagervaerdi($r['kontonr'], $pre_regnslut);
                # Varelager (debet) krediteres lager primo og og debiteres lager saldo.  Dvs tallet øges hvis lager øges
                $resultat -= $l_a_primo[$x];
                $resultat += $l_a_sum[$x];
            }
        }
    }
    $resultat = afrund($resultat, 2);
    $r = db_fetch_array(db_select("select * from kontoplan where kontotype='X' and regnskabsaar={$pre_regnaar}", __FILE__ . " linje " . __LINE__));
    $sideskift = $r['kontonr'] * 1;
    if ($sideskift) {
        $q2 = db_select("select * from transaktioner where transdate>='{$pre_regnstart}' and transdate<='{$pre_regnslut}' and kontonr='{$sideskift}'", __FILE__ . " linje " . __LINE__);
        while ($r2 = db_fetch_array($q2)) {
            $resultat += afrund($r2['debet'] - $r2['kredit'], 2);
        }
        $saldosum = $resultat;
        print "<td><br /></td>";
        print "<td>Resultat</td>";
        print "<input type=hidden name=kontonr[0] value={$sideskift}>";
        print "<td width=10 align=right><input type=hidden name=saldo[0] value={$resultat}>" . dkdecimal($resultat) . "</td>";
        print "<td><SELECT NAME=overfor_til[0]>";
        if ($r['overfor_til']) {
            print "<option>{$r['overfor_til']}</option>";
        }
        print "<option>{$kontonr[$y]}</option>";
        for ($x = 1; $x <= $kontoantal; $x++) {
            print "<option>{$kontonr[$x]}</option>";
        }
        print "</SELECT></td>";
        print "<td width=10><br /></td></tr>\n";
        $ny_sum += $ny_primo[$y];
    }
    #cho "select * from kontoplan where kontotype='S' and regnskabsaar='$pre_regnaar' order by kontonr<br>";
    $query = db_select("select * from kontoplan where kontotype='S' and regnskabsaar='{$pre_regnaar}' order by kontonr", __FILE__ . " linje " . __LINE__);
    $y = 0;
    while ($row = db_fetch_array($query)) {
        $y++;
        $ny_primo[$y] = 0;
        for ($x = 1; $x <= $kontoantal; $x++) {
            if ($kontonr[$x] == $row['kontonr']) {
                $ny_primo[$y] = $primo[$x];
                #				$overfor_til[$y]=$row['overfor_til'];
            }
        }
        $belob = 0;
        $belob = $row['primo'];
        print "<tr><input type=hidden name=kontonr[{$y}] value={$row['kontonr']}>";
        $q2 = db_select("select * from transaktioner where transdate>='{$pre_regnstart}' and transdate<='{$pre_regnslut}' and kontonr='{$row['kontonr']}'", __FILE__ . " linje " . __LINE__);
        while ($r2 = db_fetch_array($q2)) {
            $belob += afrund($r2['debet'] - $r2['kredit'], 2);
        }
        if ($aut_lager) {
            if (in_array($row['kontonr'], $varekob)) {
                $l_a_primo[$x] = find_lagervaerdi($row['kontonr'], $pre_regnstart);
                $l_a_sum[$x] = find_lagervaerdi($row['kontonr'], $pre_regnslut);
                # Varekøb (debet) debiteres lager primo og krediteres lager saldo. Dvs tallet mindskes hvis lager øges
                $belob += $l_a_primo[$x];
                $belob -= $l_a_sum[$x];
            }
            if (in_array($row['kontonr'], $varelager_i) || in_array($row['kontonr'], $varelager_u)) {
                $l_a_primo[$x] = find_lagervaerdi($row['kontonr'], $pre_regnstart);
                $l_a_sum[$x] = find_lagervaerdi($row['kontonr'], $pre_regnslut);
                # Varelager (debet) krediteres lager primo og og debiteres lager saldo.  Dvs tallet øges hvis lager øges
                $belob -= $l_a_primo[$x];
                $belob += $l_a_sum[$x];
            }
        }
        $saldosum = $saldosum + $belob;
        print "<td>{$row['kontonr']}</td>";
        print "<td>{$row['beskrivelse']}</td>";
        print "<td width=10 align=right><input type=hidden name=saldo[{$y}] value={$belob}>" . dkdecimal($belob) . "</td>";
        print "<td><SELECT NAME=overfor_til[{$y}]>";
        if ($row['overfor_til'] && in_array($row['overfor_til'], $kontonr)) {
            print "<option>{$row['overfor_til']}</option>";
        } elseif (in_array($row['kontonr'], $kontonr)) {
            print "<option>{$row['kontonr']}</option>";
        } else {
            print "<option></option>";
        }
        for ($x = 1; $x <= $kontoantal; $x++) {
            print "<option>{$kontonr[$x]}</option>";
        }
        print "</SELECT></td>";
        print "<td width=10 align=right><input type=hidden name=ny_primo[{$y}] value={$ny_primo[$y]}>" . dkdecimal($ny_primo[$y]) . "</td></tr>\n";
        $ny_sum = $ny_sum + $ny_primo[$y];
    }
    print "<td></td><td></td><td align=right>" . dkdecimal($saldosum) . "</td><td></td><td align=right>" . dkdecimal($ny_sum) . "</td></tr>\n";
    if ($debetsum - $kreditsum != 0) {
        print "<BODY onLoad=\"javascript:alert('Konti er ikke i balance')\">";
    }
    #	print "<tr><td colspan = 3> Overfr �ningsbalance</td><td align=center><input type=checkbox name=primotal checked></td></tr>\n";
    print "<input type=hidden name=kontoantal value={$y}>";
    print "<tr><td colspan = 5 align = center><input type=submit accesskey=\"g\" value=\"Gem/opdat&eacute;r\" name=\"submit\" onclick=\"javascript:docChange = false;\">";
    if ($regnaar == $max_aar) {
        print "<input type=submit value=\"Slet\" name=\"submit\" onclick=\"javascript:docChange = false;\">";
    }
    print "</td></tr>\n";
    print "</form>";
    exit;
}