PageRenderTime 4ms CodeModel.GetById 19ms app.highlight 19ms RepoModel.GetById 2ms app.codeStats 0ms

/lager/lagerstatus.php

https://github.com/nielsrune/saldi
PHP | 193 lines | 156 code | 12 blank | 25 comment | 21 complexity | 1d234a302e164aff329a39c492f8ca0f MD5 | raw file
  1<?php
  2// -----------------lager/lagerstatus.php----lap 3.3.9-----2014-01-28--
  3// LICENS
  4//
  5// Dette program er fri software. Du kan gendistribuere det og / eller
  6// modificere det under betingelserne i GNU General Public License (GPL)
  7// som er udgivet af The Free Software Foundation; enten i version 2
  8// af denne licens eller en senere version efter eget valg
  9// Fra og med version 3.2.2 dog under iagttagelse af følgende:
 10// 
 11// Programmet må ikke uden forudgående skriftlig aftale anvendes
 12// i konkurrence med DANOSOFT ApS eller anden rettighedshaver til programmet.
 13//
 14// Dette program er udgivet med haab om at det vil vaere til gavn,
 15// men UDEN NOGEN FORM FOR REKLAMATIONSRET ELLER GARANTI. Se
 16// GNU General Public Licensen for flere detaljer.
 17//
 18// En dansk oversaettelse af licensen kan laeses her:
 19// http://www.fundanemt.com/gpl_da.html
 20//
 21// Copyright (c) 2003-2014 DANOSOFT ApS
 22// ----------------------------------------------------------------------
 23// 2014.01.28 Ved søgning på modtaget / leveret tjekkes ikke for dato hvis angivet dato = dags dato da det gav forkert lagerantal for 
 24//          leverancer med leveringsdato > dd. Søg 20140128   
 25
 26@session_start();
 27$s_id=session_id();
 28$css="../css/standard.css";
 29
 30$title="Lagerstatus";
 31
 32$linjebg=NULL;
 33$kostvalue=0;$lagervalue=0;$salgsvalue=0;
 34
 35include("../includes/connect.php");
 36include("../includes/online.php");
 37include("../includes/std_func.php");
 38
 39# if ($popup) $returside="../includes/luk.php";
 40# else $returside="rapport.php";
 41$returside="rapport.php";
 42
 43if (isset($_GET['vare_id']) && isset($_GET['opdater']) && isset($_GET['beholdning'])) {
 44	db_modify("update varer set beholdning='$_GET[beholdning]' where id = '$_GET[vare_id]'",__FILE__ . " linje " . __LINE__);
 45}
 46$varegruppe=if_isset($_GET['varegruppe']);
 47if ($varegruppe=="0:Alle") $varegruppe=NULL;
 48else {
 49	setcookie("saldi_lagerstatus", $varegruppe);
 50	$returside="rapport.php?varegruppe=$varegruppe";
 51}
 52if (isset($_POST['dato']) && $_POST['dato']) {
 53	$dato=$_POST['dato'];
 54	$varegruppe=trim($_POST['varegruppe']);
 55	setcookie("saldi_lagerstatus", $varegruppe);
 56}
 57elseif(!$varegruppe)  {
 58	$dato=date("d-m-Y");
 59	$varegruppe=($_COOKIE['saldi_lagerstatus']);
 60	if (!$varegruppe) $varegruppe="0:Alle";
 61}	
 62
 63$csv=if_isset($_GET['csv']);
 64
 65$dd=date("Y-m-d");
 66$date=usdate($dato);
 67$dato=dkdato($date);
 68
 69$x=0;
 70$q1= db_select("select kodenr, box9 from grupper where art = 'VG' and box8 = 'on'",__FILE__ . " linje " . __LINE__);
 71while ($r1=db_fetch_array($q1)) {
 72	$x++;
 73	$lagervare[$x]=$r1['kodenr'];
 74	$batchvare[$x]=$r1['box9'];
 75}
 76	
 77$x=0;
 78list($a,$b)=explode(":",$varegruppe);
 79if ($a) $query = "select * from varer where gruppe='$a' order by varenr";
 80else $query = "select * from varer order by varenr";
 81$q2=db_select($query,__FILE__ . " linje " . __LINE__);
 82while ($r2=db_fetch_array($q2)){
 83	if (in_array($r2['gruppe'], $lagervare)) {
 84		$x++;
 85		$vare_id[$x]=$r2['id'];
 86		$varenr[$x]=stripslashes($r2['varenr']);
 87		$enhed[$x]=stripslashes($r2['enhed']);
 88		$beholdning[$x]=$r2['beholdning'];
 89		$beskrivelse[$x]=stripslashes($r2['beskrivelse']);
 90		$salgspris[$x]=$r2['salgspris'];
 91		$kostpris[$x]=$r2['kostpris'];
 92	}
 93}
 94$vareantal=$x;
 95
 96print "<table border=0 cellpadding=0 cellspacing=0 width=100%><tbody>";
 97print "<tr><td colspan=9><table width=100% align=center border=0 cellspacing=2 cellpadding=0><tbody>";
 98print "<tr>";
 99print "<td width=10% $top_bund><a href=$returside accesskey=L>Luk</a></td>";
100print "<td width=80% $top_bund align=center>Lagerstatus</td>";
101print "<td width=10% $top_bund><a href=lagerstatus.php?dato=$dato&varegruppe=$varegruppe&csv=1' title=\"Klik her for at eksportere til csv\">CSV</a></td>";
102print "</tr></td></tbody></table>\n";
103print "<form action=lagerstatus.php method=post>";
104print "<tr><td colspan=\"7\" align=\"center\"> Varegruppe: <select class=\"inputbox\" name=\"varegruppe\">";
105if ($varegruppe) print "<option>$varegruppe</option>";
106if ($varegruppe!="0:Alle") print "<option>0:Alle</option>";
107$query = db_select("select * from grupper where art = 'VG' order by kodenr",__FILE__ . " linje " . __LINE__);
108while ($row = db_fetch_array($query)){
109	if ($varegruppe!=$row['kodenr'].":".$row['beskrivelse']) {print "<option>$row[kodenr]:$row[beskrivelse]</option>";}
110}
111print "</select>";
112print "Dato:<input class=\"inputbox\" type=\"text\" name=\"dato\" value=\"$dato\" size=\"10\"></td>";
113print "<td  colspan=6 align=right><input type=submit value=OK></form></td></tr>";
114print "<tr><td colspan=9><hr></td></tr>";
115print "<tr><td width=8%>Varenr.</td><td width=5%>Enhed</td><td width=48%>Beskrivelse</td>
116	<td align=right width=5%><span title='Antal enheder k&oslash;bt f&oslash;r den $dato'>K&oslash;bt</span></td>
117	<td align=right width=5%><span title='Antal enheder solgt f&oslash;r den $dato'>Solgt</span></td>
118	<td align=right width=5%><span title='Lagerbeholdning pr. $dato'>Antal</span></td>
119	<td align=right width=8%><span title='K&oslash;bsv&aelig;rdi af lagerbeholdning (Reel k&oslash;bspris)'>K&oslash;bspris</span></td>
120	<td align=right width=8%><span title='Kostpris af lagerbeholdning (fra varekort)'>Kostpris</span></td>
121	<td align=right width=8%><span title='Salgsv&aelig;rdi af lagerbeholdning (fra varekort)'>Salgspris</span></td></tr>";
122
123if ($csv) {
124	$fp=fopen("../temp/$db/lagerstatus.csv","w");
125	fwrite($fp,"Varenr".chr(9)."Enhed".chr(9)."Beskrivelse".chr(9)."Købt".chr(9)."Solgt".chr(9)."Antal".chr(9)."Købspris".chr(9)."Kostpris".chr(9)."Salgspris\n");
126}
127 
128
129for($x=1; $x<=$vareantal; $x++) {
130	$handlet[$x]=0;
131	$batch_k_antal[$x]=0;$batch_t_antal[$x]=0;$batch_pris[$x]=0;$batch_s_antal[$x]=0;
132	if ($date==$dd) $q1=db_select("select * from batch_kob where vare_id=$vare_id[$x]",__FILE__ . " linje " . __LINE__); #20140128
133	else $q1=db_select("select * from batch_kob where vare_id=$vare_id[$x] and kobsdate <= '$date'",__FILE__ . " linje " . __LINE__);
134	while ($r1=db_fetch_array($q1)){
135		$batch_k_antal[$x]=$batch_k_antal[$x]+$r1['antal'];
136		$batch_t_antal[$x]=$batch_t_antal[$x]+$r1['antal'];
137		$batch_pris[$x]=$batch_pris[$x]+($r1['pris']*$r1['antal']);
138		$handlet[$x]=1;
139		if (isset($batchvare[$x]) && $batchvare[$x]) {
140			if ($date==$dd) $q2=db_select("select * from batch_salg where batch_kob_id=$r1[id]",__FILE__ . " linje " . __LINE__); #20140128
141			else $q2=db_select("select * from batch_salg where batch_kob_id=$r1[id] and salgsdate <= '$date'",__FILE__ . " linje " . __LINE__);
142			while ($r2=db_fetch_array($q2)){
143				$batch_s_antal[$x]=$batch_s_antal[$x]+$r2['antal'];
144				$batch_t_antal[$x]=$batch_t_antal[$x]-$r2['antal'];
145				$batch_pris[$x]=$batch_pris[$x]-($r1['pris']*$r2['antal']);
146			}
147		}	
148#	db_modify("update varer set beholdning = '$batch_t_antal[$x]' where id='$vare_id[$x]'",__FILE__ . " linje " . __LINE__);  
149	}
150	if (!isset($batchvare[$x])) $batchvare[$x]=NULL;
151	if (!$batchvare[$x]) {
152		$tmp=$batch_t_antal[$x];
153		if ($date==$dd) $q2=db_select("select * from batch_salg where vare_id=$vare_id[$x]",__FILE__ . " linje " . __LINE__); #20140128
154		else $q2=db_select("select * from batch_salg where vare_id=$vare_id[$x] and salgsdate <= '$date'",__FILE__ . " linje " . __LINE__);
155		while ($r2=db_fetch_array($q2)){
156			$batch_s_antal[$x]=afrund($batch_s_antal[$x]+$r2['antal'],2);
157			$batch_t_antal[$x]=afrund($batch_t_antal[$x]-$r2['antal'],2);
158			$handlet[$x]=1;
159#			$batch_pris[$x]=$batch_pris[$x]-($r1['pris']*$r2['antal']);
160		}
161		if ($tmp*$batch_t_antal[$x]!=0) $batch_pris[$x]=$batch_pris[$x]/$tmp*$batch_t_antal[$x];
162		else $batch_pris[$x]=0;
163	}
164	if ($batch_k_antal[$x]||$batch_s_antal[$x]||$beholdning[$x]||$handlet[$x]) {
165		if ($linjebg!=$bgcolor5){$linjebg=$bgcolor5; $color='#000000';}
166		else {$linjebg=$bgcolor; $color='#000000';}
167		print "<tr bgcolor=\"$linjebg\">";
168		if ($popup) print "<td onClick=\"javascript:varespor=window.open('varespor.php?vare_id=$vare_id[$x]','varespor','$jsvars')\" onMouseOver=\"this.style.cursor = 'pointer'\"><u>$varenr[$x]</u><br></td>";
169		else print "<td><a href=varespor.php?vare_id=$vare_id[$x]>$varenr[$x]<br></td>";
170		print	"<td>$enhed[$x]<br></td><td>$beskrivelse[$x]<br></td>
171		<td align=right>$batch_k_antal[$x]<br></td><td align=right>$batch_s_antal[$x]<br></td>";
172		if ($date==$dd && $batch_t_antal[$x]!=$beholdning[$x]) print "<td align=right title=\"Beholdning (".$beholdning[$x]*1 .") stemmer ikke med det antal som er k&oslash;bt og solgt. Klik her for at opdatere beholdning\"><a href=".$_SERVER['PHP_SELF']."?vare_id=$vare_id[$x]&beholdning=$batch_t_antal[$x]&opdater=on onclick=\"return confirm('Opdater lagerbeholdning fra $beholdning[$x] til $batch_t_antal[$x] for denne vare?')\"><span style=\"color: rgb(255, 0, 0);\">$batch_t_antal[$x]</span></a><br></td>";
173		else print "<td align=right>$batch_t_antal[$x]<br></td>";
174		print "<td align=right>".dkdecimal($batch_pris[$x])."<br></td>
175		<td align=right title='stkpris:".dkdecimal($kostpris[$x])."'>".dkdecimal($kostpris[$x]*$batch_t_antal[$x])."<br></td>
176		<td align=right>".dkdecimal($salgspris[$x]*$batch_t_antal[$x])."<br></td></tr>";
177		if ($csv) fwrite($fp,"$varenr[$x]".chr(9)."$enhed[$x]".chr(9)."$beskrivelse[$x]".chr(9)."$batch_k_antal[$x]".chr(9)."$batch_s_antal[$x]".chr(9).$batch_t_antal[$x].chr(9).dkdecimal($batch_pris[$x]).chr(9).dkdecimal($kostpris[$x]*$batch_t_antal[$x]).chr(9).dkdecimal($salgspris[$x]*$batch_t_antal[$x])."\n");
178		$lagervalue=$lagervalue+$batch_pris[$x];$kostvalue=$kostvalue+$kostpris[$x]*$batch_t_antal[$x]; $salgsvalue=$salgsvalue+($salgspris[$x]*$batch_t_antal[$x]);
179	} 
180}
181if ($csv){ 
182	fclose($fp);
183	print "<BODY onLoad=\"JavaScript:window.open('../temp/$db/lagerstatus.csv' ,'' ,'$jsvars');\">\n";
184}
185print "<tr><td colspan=9><hr></td></tr>";
186print "<tr><td colspan=2><br></td><td>Samlet lagerv&aelig;rdi pr. $dato<br></td><td align=right><br></td><td align=right><br></td>
187<td align=right><br></td><td align=right>".dkdecimal($lagervalue)."<br></td>
188<td align=right>".dkdecimal($kostvalue)."<br></td>
189<td align=right>".dkdecimal($salgsvalue)."<br></td></tr>";
190
191?>
192</tbody></table>
193</body></html>