PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms 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
Possible License(s): LGPL-2.1
  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. @session_start();
  26. $s_id=session_id();
  27. $css="../css/standard.css";
  28. $title="Lagerstatus";
  29. $linjebg=NULL;
  30. $kostvalue=0;$lagervalue=0;$salgsvalue=0;
  31. include("../includes/connect.php");
  32. include("../includes/online.php");
  33. include("../includes/std_func.php");
  34. # if ($popup) $returside="../includes/luk.php";
  35. # else $returside="rapport.php";
  36. $returside="rapport.php";
  37. if (isset($_GET['vare_id']) && isset($_GET['opdater']) && isset($_GET['beholdning'])) {
  38. db_modify("update varer set beholdning='$_GET[beholdning]' where id = '$_GET[vare_id]'",__FILE__ . " linje " . __LINE__);
  39. }
  40. $varegruppe=if_isset($_GET['varegruppe']);
  41. if ($varegruppe=="0:Alle") $varegruppe=NULL;
  42. else {
  43. setcookie("saldi_lagerstatus", $varegruppe);
  44. $returside="rapport.php?varegruppe=$varegruppe";
  45. }
  46. if (isset($_POST['dato']) && $_POST['dato']) {
  47. $dato=$_POST['dato'];
  48. $varegruppe=trim($_POST['varegruppe']);
  49. setcookie("saldi_lagerstatus", $varegruppe);
  50. }
  51. elseif(!$varegruppe) {
  52. $dato=date("d-m-Y");
  53. $varegruppe=($_COOKIE['saldi_lagerstatus']);
  54. if (!$varegruppe) $varegruppe="0:Alle";
  55. }
  56. $csv=if_isset($_GET['csv']);
  57. $dd=date("Y-m-d");
  58. $date=usdate($dato);
  59. $dato=dkdato($date);
  60. $x=0;
  61. $q1= db_select("select kodenr, box9 from grupper where art = 'VG' and box8 = 'on'",__FILE__ . " linje " . __LINE__);
  62. while ($r1=db_fetch_array($q1)) {
  63. $x++;
  64. $lagervare[$x]=$r1['kodenr'];
  65. $batchvare[$x]=$r1['box9'];
  66. }
  67. $x=0;
  68. list($a,$b)=explode(":",$varegruppe);
  69. if ($a) $query = "select * from varer where gruppe='$a' order by varenr";
  70. else $query = "select * from varer order by varenr";
  71. $q2=db_select($query,__FILE__ . " linje " . __LINE__);
  72. while ($r2=db_fetch_array($q2)){
  73. if (in_array($r2['gruppe'], $lagervare)) {
  74. $x++;
  75. $vare_id[$x]=$r2['id'];
  76. $varenr[$x]=stripslashes($r2['varenr']);
  77. $enhed[$x]=stripslashes($r2['enhed']);
  78. $beholdning[$x]=$r2['beholdning'];
  79. $beskrivelse[$x]=stripslashes($r2['beskrivelse']);
  80. $salgspris[$x]=$r2['salgspris'];
  81. $kostpris[$x]=$r2['kostpris'];
  82. }
  83. }
  84. $vareantal=$x;
  85. print "<table border=0 cellpadding=0 cellspacing=0 width=100%><tbody>";
  86. print "<tr><td colspan=9><table width=100% align=center border=0 cellspacing=2 cellpadding=0><tbody>";
  87. print "<tr>";
  88. print "<td width=10% $top_bund><a href=$returside accesskey=L>Luk</a></td>";
  89. print "<td width=80% $top_bund align=center>Lagerstatus</td>";
  90. print "<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>";
  91. print "</tr></td></tbody></table>\n";
  92. print "<form action=lagerstatus.php method=post>";
  93. print "<tr><td colspan=\"7\" align=\"center\"> Varegruppe: <select class=\"inputbox\" name=\"varegruppe\">";
  94. if ($varegruppe) print "<option>$varegruppe</option>";
  95. if ($varegruppe!="0:Alle") print "<option>0:Alle</option>";
  96. $query = db_select("select * from grupper where art = 'VG' order by kodenr",__FILE__ . " linje " . __LINE__);
  97. while ($row = db_fetch_array($query)){
  98. if ($varegruppe!=$row['kodenr'].":".$row['beskrivelse']) {print "<option>$row[kodenr]:$row[beskrivelse]</option>";}
  99. }
  100. print "</select>";
  101. print "Dato:<input class=\"inputbox\" type=\"text\" name=\"dato\" value=\"$dato\" size=\"10\"></td>";
  102. print "<td colspan=6 align=right><input type=submit value=OK></form></td></tr>";
  103. print "<tr><td colspan=9><hr></td></tr>";
  104. print "<tr><td width=8%>Varenr.</td><td width=5%>Enhed</td><td width=48%>Beskrivelse</td>
  105. <td align=right width=5%><span title='Antal enheder k&oslash;bt f&oslash;r den $dato'>K&oslash;bt</span></td>
  106. <td align=right width=5%><span title='Antal enheder solgt f&oslash;r den $dato'>Solgt</span></td>
  107. <td align=right width=5%><span title='Lagerbeholdning pr. $dato'>Antal</span></td>
  108. <td align=right width=8%><span title='K&oslash;bsv&aelig;rdi af lagerbeholdning (Reel k&oslash;bspris)'>K&oslash;bspris</span></td>
  109. <td align=right width=8%><span title='Kostpris af lagerbeholdning (fra varekort)'>Kostpris</span></td>
  110. <td align=right width=8%><span title='Salgsv&aelig;rdi af lagerbeholdning (fra varekort)'>Salgspris</span></td></tr>";
  111. if ($csv) {
  112. $fp=fopen("../temp/$db/lagerstatus.csv","w");
  113. 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");
  114. }
  115. for($x=1; $x<=$vareantal; $x++) {
  116. $handlet[$x]=0;
  117. $batch_k_antal[$x]=0;$batch_t_antal[$x]=0;$batch_pris[$x]=0;$batch_s_antal[$x]=0;
  118. if ($date==$dd) $q1=db_select("select * from batch_kob where vare_id=$vare_id[$x]",__FILE__ . " linje " . __LINE__); #20140128
  119. else $q1=db_select("select * from batch_kob where vare_id=$vare_id[$x] and kobsdate <= '$date'",__FILE__ . " linje " . __LINE__);
  120. while ($r1=db_fetch_array($q1)){
  121. $batch_k_antal[$x]=$batch_k_antal[$x]+$r1['antal'];
  122. $batch_t_antal[$x]=$batch_t_antal[$x]+$r1['antal'];
  123. $batch_pris[$x]=$batch_pris[$x]+($r1['pris']*$r1['antal']);
  124. $handlet[$x]=1;
  125. if (isset($batchvare[$x]) && $batchvare[$x]) {
  126. if ($date==$dd) $q2=db_select("select * from batch_salg where batch_kob_id=$r1[id]",__FILE__ . " linje " . __LINE__); #20140128
  127. else $q2=db_select("select * from batch_salg where batch_kob_id=$r1[id] and salgsdate <= '$date'",__FILE__ . " linje " . __LINE__);
  128. while ($r2=db_fetch_array($q2)){
  129. $batch_s_antal[$x]=$batch_s_antal[$x]+$r2['antal'];
  130. $batch_t_antal[$x]=$batch_t_antal[$x]-$r2['antal'];
  131. $batch_pris[$x]=$batch_pris[$x]-($r1['pris']*$r2['antal']);
  132. }
  133. }
  134. # db_modify("update varer set beholdning = '$batch_t_antal[$x]' where id='$vare_id[$x]'",__FILE__ . " linje " . __LINE__);
  135. }
  136. if (!isset($batchvare[$x])) $batchvare[$x]=NULL;
  137. if (!$batchvare[$x]) {
  138. $tmp=$batch_t_antal[$x];
  139. if ($date==$dd) $q2=db_select("select * from batch_salg where vare_id=$vare_id[$x]",__FILE__ . " linje " . __LINE__); #20140128
  140. else $q2=db_select("select * from batch_salg where vare_id=$vare_id[$x] and salgsdate <= '$date'",__FILE__ . " linje " . __LINE__);
  141. while ($r2=db_fetch_array($q2)){
  142. $batch_s_antal[$x]=afrund($batch_s_antal[$x]+$r2['antal'],2);
  143. $batch_t_antal[$x]=afrund($batch_t_antal[$x]-$r2['antal'],2);
  144. $handlet[$x]=1;
  145. # $batch_pris[$x]=$batch_pris[$x]-($r1['pris']*$r2['antal']);
  146. }
  147. if ($tmp*$batch_t_antal[$x]!=0) $batch_pris[$x]=$batch_pris[$x]/$tmp*$batch_t_antal[$x];
  148. else $batch_pris[$x]=0;
  149. }
  150. if ($batch_k_antal[$x]||$batch_s_antal[$x]||$beholdning[$x]||$handlet[$x]) {
  151. if ($linjebg!=$bgcolor5){$linjebg=$bgcolor5; $color='#000000';}
  152. else {$linjebg=$bgcolor; $color='#000000';}
  153. print "<tr bgcolor=\"$linjebg\">";
  154. 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>";
  155. else print "<td><a href=varespor.php?vare_id=$vare_id[$x]>$varenr[$x]<br></td>";
  156. print "<td>$enhed[$x]<br></td><td>$beskrivelse[$x]<br></td>
  157. <td align=right>$batch_k_antal[$x]<br></td><td align=right>$batch_s_antal[$x]<br></td>";
  158. 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>";
  159. else print "<td align=right>$batch_t_antal[$x]<br></td>";
  160. print "<td align=right>".dkdecimal($batch_pris[$x])."<br></td>
  161. <td align=right title='stkpris:".dkdecimal($kostpris[$x])."'>".dkdecimal($kostpris[$x]*$batch_t_antal[$x])."<br></td>
  162. <td align=right>".dkdecimal($salgspris[$x]*$batch_t_antal[$x])."<br></td></tr>";
  163. 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");
  164. $lagervalue=$lagervalue+$batch_pris[$x];$kostvalue=$kostvalue+$kostpris[$x]*$batch_t_antal[$x]; $salgsvalue=$salgsvalue+($salgspris[$x]*$batch_t_antal[$x]);
  165. }
  166. }
  167. if ($csv){
  168. fclose($fp);
  169. print "<BODY onLoad=\"JavaScript:window.open('../temp/$db/lagerstatus.csv' ,'' ,'$jsvars');\">\n";
  170. }
  171. print "<tr><td colspan=9><hr></td></tr>";
  172. print "<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>
  173. <td align=right><br></td><td align=right>".dkdecimal($lagervalue)."<br></td>
  174. <td align=right>".dkdecimal($kostvalue)."<br></td>
  175. <td align=right>".dkdecimal($salgsvalue)."<br></td></tr>";
  176. ?>
  177. </tbody></table>
  178. </body></html>