Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as PHP by ddas2 ( 17 years ago )
<?php
include ('naglowek.php');
?>
<html>
<head>
</head>
<body>

<script type="text/javascript"><!--
function zat(formularz){
formularz.submit();
}//--></script>

<?php


$item_action = $_GET['action'];
$item_id = $_GET['id'];
$am_step = $_POST['am2'];



// Wyszukuje przedmiot w bazie i na tej podstawie zostaje wybrana opcja

			echo 'Zosta&Aring;‚ wybrany nast&Auml;™puj&Auml;…cy &Aring;›rodek trwa&Aring;‚y : <br />';
 			$zapytanie = "SELECT DISTINCT * from pomoc AS t1, srodki as t2, amortyzacja as t3 where t1.id = ".$item_id." and t2.id =".$item_id." and t3.id =".$item_id;
 			$wynik = mysql_query($zapytanie) or die ('b&Aring;‚&Auml;…d: ' . mysql_error());
 			//$rekord = mysql_fetch_assoc($wynik);
 			echo('<table border="1" cellpadding="2" cellspacing="1">
	<tr>
	<th>Nazwa</th>
	<th>Numer Inwentarzowy</th>
	<th>Data zakupu</th>
	<th>Dowod zakupu</th>
	<th>KRST</th>
	<th>Cena zakupu</th>
	<th>Umorzono</th>
	<th>Metoda</th>
	</tr>');
    while($rekord = mysql_fetch_assoc($wynik))
{
switch($rekord['id_amor'])
{
case '1':
$metoda_tabela = "Jednorazowa";
break;
case '2':
$metoda_tabela = "Liniowa";
break;
case '3':
$metoda_tabela = "Degresywna";
break;
default:
$metoda_tabela = "Brak";
}

$rekordd = $rekord; // Zapisanie rodzaju amortyzacji do zmiennej nim tablica zostanie wyczyszczona
echo "<tr style="background-color: #eaeaea;">";

echo "<td>" . $rekord['nazwa'] . "</td><td>" . $rekord['ninw'] . "</td><td>" . $rekord['dataz'] . "</td><td>" . $rekord['dowodz'] . "</td><td>" . $rekord['kst'] . "</td><td>" . $rekord['cenaz'] ."</td><td>"."<font color=#FF0000>". $rekord['um'] ."</td><td>". $metoda_tabela ."</td>"; }
echo "</tr>
";
echo ('</table>');

	if(!$am_step)
	{
	$am_step = $rekordd[id_amor];
	}
//switch($rekordd[id_amor])
switch($am_step)
{
	// Przypadek "0" - Wystepuje wtedy gdy nie zosta&Aring;‚a okreslona metoda amortyzacji dlatego skrypt generuje formularz do wype&Aring;‚nienia potrzebnych danych i wybrania konkretnej metody.
case '0':
		   echo "<br />";
if(!$_GET['id_amor'])
{
	echo ('<form action="" method="GET">
     <input type="hidden" name="id" value="'.$item_id.'"/>
     <select name="id_amor" type="button" selected="selected">
    <option value="1" onclick="zat(this.form);return false;">Jednorazowa</option>
	<option value="2" onclick="zat(this.form);return false;">Liniowa</option>
	<option value="3" onclick="zat(this.form);return false;">Degresywna</option>

</select>
</form>');
}
//Teraz zaleznie od rodzialu wybranej opcji beda generowane odpowiednie pola.
switch($_GET['id_amor'])
{
//Jednorazowa
case '1':
echo "&Aring;šrodek trwa&Aring;‚ zostanie umorzony o nast&Auml;™puj&Auml;…ca kwot&Auml;™: 3 500 z&Aring;‚ <br />";
echo ('<form action="" method=post><table border=0>
      <input type="hidden" name="method" value="'.$_GET['id_amor'].'"/>
      <input type="hidden" name="am2" value="yes"/>
     <input type="hidden" name="id" value="'.$item_id.'"/>
<tr><td colspan="2"><input type="submit" value="OK" ></td></tr>
</table></form>');

break;

//Liniowa -
// Cena zakupu/Cena nabycia - Wp
// Wpisywanie reczne - ew wbudowane
// Wybor czy jest to miesieczna/kwartalna/roczna
//
case '2':
echo "Wybrano Metode Liniowa - dokonaj konfiguracji <br /><br />";
echo ('<form action="" method=post><table border=0>
      <input type="hidden" name="method" value="'.$_GET['id_amor'].'"/>
      <input type="hidden" name="am2" value="yes"/>
     <input type="hidden" name="id" value="'.$item_id.'"/>
<tr>
<td>Stopa</td>
<td align="center"><input type="text" name="stawka" size="10"></td>
</tr>

<tr>
<td>Okres</td>
     <td align="center"><select name="czesto">
    <option value="12">Miesiecznie</option>
	<option value="4">Kwartalnie</option>
	<option value="1">Rocznie</option>
</select></td></tr>

</select>
<tr><td colspan="2"><input type="submit" value="OK" ></td></tr>
</table></form>');

break;

//Degresywna
// Wp
// stawka reczna
// wsp.degresji

case '3':
echo "Wybrano Metode Degresywna - dokonaj konfiguracji <br /><br />";
echo ('<form action="" method=post><table border=0>
     <input type="hidden" name="method" value="'.$_GET['id_amor'].'"/>
     <input type="hidden" name="id" value="'.$item_id.'"/>
     <input type="hidden" name="am2" value="yes"/>
<tr>
<td>Stopa</td>
<td align="center"><input type="text" name="stawka" size="10"></td>
</tr>

<tr>
<td>Wspolczynnik degresji</td>
<td align="center"><input type="text" name="wspd" size="10"></td>
</tr>

<tr>
<td>Okres</td>
     <td align="center"><select name="czesto">
    <option value="12">Miesiecznie</option>
	<option value="4">Kwartalnie</option>
	<option value="1">Rocznie</option>
</select></td></tr>

</select>
<tr><td colspan="2"><input type="submit" value="OK" ></td></tr>
</table></form>');
break;
}
 			break;
 		

case 'yes':
$pmetoda=$_POST['method']; // Jednorazowa/Liniowa/Degresywna
$przedmiot=$_POST['id']; // numer przedmiotu
$czesto=$_POST['czesto']; // Jak czesto beda robione odpisy amortyzacyjne
$stawka=$_POST['stawka']; // stawka amortyzacyjna
$wspd=$_POST['wspd']; // wsp Degresji
echo 'Oto Wynik amortyzacji: <br />';
$stawka = $stawka/100; // Dzielimy przez 100 aby uzyskac procent
unset($_SESSION['tab']);
//Funkcja do pokazywania amortyzacji
if($pmetoda == 1)
{
echo "Jednorazowa";
$result = wyliczam($stawka, $wspd, $rekordd['cenaz'], $czesto, 0, 1);
}
else
$result = wyliczam($stawka, $wspd, $rekordd['cenaz'], $czesto);
// Jezeli niema wspolczynika degresji to zapisywany jest do talicy jako 0;
if(!isset($wspd))
{
$wspd = 0;
}

$tablica_amortyzacji = array("metoda" => $pmetoda,"przedmiot" => $przedmiot,"czesto" => $czesto, "stopa" => $stawka, "wspd" => $wspd, "um" => ($result[0]), "wp" => $rekordd['cenaz'], "datar" => strtotime("now"), "datan" => strtotime("-1 year"));
echo ('<form action="" method=post><table border=0>
     <input type="hidden" name="method" value="'.$_GET['id_amor'].'"/>
     <input type="hidden" name="id" value="'.$item_id.'"/>
     <input type="hidden" name="am2" value="yes2"/>
<tr><td colspan="2"><input type="submit" value="OK" ></td></tr>
</table></form>');

//Wpisywanie do tablicy sesji.
if(!isset($_SESSION['tab'])) // 2
	{
		$_SESSION['tab'] = $tablica_amortyzacji;
	}

break;

case 'yes2':
echo 'Wynik potwierdzony! - wpisywanie do bazy danych <br />';
$tab = $_SESSION['tab'];
if (!get_magic_quotes_gpc())
{
$tab['metoda'] = addslashes($tab['metoda']);
$tab['przedmiot'] = addslashes($tab['przedmiot']);
$tab['czesto'] = addslashes($tab['czesto']);
$tab['stopa'] = addslashes($tab['stopa']);
$tab['wspd'] = addslashes($tab['wspd']);
$tab['um'] = addslashes($tab['um']);
$tab['wp'] = addslashes($tab['wp']);
$tab['datar'] = addslashes($tab['datar']);
$tab['datan'] = addslashes($tab['datan']);
}

$zapytanie = "UPDATE amortyzacja set id_amor='$tab[metoda]', stopa='$tab[stopa]', wspd='$tab[wspd]', czesto='$tab[czesto]', um='$tab[um]' where amortyzacja.id = '$tab[przedmiot]'";


$wynik = mysql_query($zapytanie);
if ($wynik)
			echo "<p>Dodano wpisow: " . mysql_affected_rows($polaczenie) . "</p>";
		else
			echo "B&Aring;‚&Auml;…d: " . mysql_error() . "<p />
";
			
			$zapytanie = "UPDATE pomoc set id_amor='$tab[metoda]', datar='$tab[datar]', datan='$tab[datan]' where pomoc.id = '$tab[przedmiot]'";
			
      $wynik = mysql_query($zapytanie);
			if ($wynik)
			echo "<p>Dane zosta&Aring;‚y poprawne zapisane.</p>";
		else
			echo "B&Aring;‚&Auml;…d: " . mysql_error() . "<p />
";

break;
// Teraz kiedy juz wyniki zosta&Aring;‚ zapisane czas na poprawne wyswietlanie danych.
case '1': // Dla Metody Jednorazowej


break;

case '2': // Dla Metody Liniowej
automatyczna($item_id);

break;
case '3': // Dla Metody Degresywnej
automatyczna($item_id);

break;
default:
 			echo 'Brak potrzebnych danych do pelnego wyswietlenia strony.';
}

//Funkcja liczenia amortyzacji
//Factor1 - stopa amortyzacji
//Factor2 - wspolczynik degresji
//cenapo - cena poczatkowa srodka trwalego
//factor3 - jak czesto ma byc amortyzowany w skali roku
//factor4 - Jesli poraz drugi amortyzujemy ...
//factor5 - w zaleznie od miejsca wywolania funkcji - rozne zastosowania
function wyliczam($factor1, $factor2, $cenapo, $factor3,$factor4 = 0, $factor5 = 0)
{
$mod = 0; // Modyfikator metody amortyzacji

if($factor5 == 1 )
{
if($cenapo >= 3500)
{
$suma = 3500;
}
elseif($cenapo < 3500)
{
$suma = $cenapo;
}
$res = array($suma,$mod);
echo "Tutaj";
return $res;
}

echo('<form action="" method=post><table border=1 cellpading="3">
<tr>
<td bgcolor = "#CCCCCC" align=center>Miesiac</td>
<td bgcolor = "#CCCCCC" align=center>Kwota</td>
<td bgcolor = "#CCCCCC" align=center>Suma</td>
</tr>');
// Element Degresji
if($factor4 != 0 and $factor2 != 0)
{
//Liczymy pierw wyniki normalna metoda liniowa a potem degresywna i porownujemy
$wzor2 = ($cenapo * $factor1)/$factor3;
$wzor3 = $factor2 * (($cenapo-$factor4) * $factor1)/$factor3;
//Jezeli Degresja jest mniejsza niz liniowa to przechodzimy na liniowa
if($wzor3 <= $wzor2)
{
$factor2 = 0;
$mod = 1;
}
else
{
//Zmniejszamy wartosc poczatkowa o wartosc dotychczas umorzona poniewaz degresja wciaz wychodzi lepiej niz liniowa.
$cenapo = $cenapo - $factor4;
}
}
// A teraz funkcja amortyzujaca.
for($i = 1; $i <= $factor3; $i += 1)
{
	if(isset($factor2) and $factor2 != 0)
	{
	// Funkcja Degresji
	$wzor = $factor2 * ($cenapo * $factor1)/$factor3;
	$last_one = $factor2 * ($cenapo * $factor1);
	}
	else
	{
	// Funckja liniowa
        $wzor = ($cenapo * $factor1)/$factor3;
        $last_one = ($cenapo * $factor1);
	}
	
	$zaokr=round($wzor, 2); // Zaokraglanie wynikow do dwoch miejsc.
	echo "<tr>
 <td aling='right'>$i</td>
";
	
	$factor = $last_one-($zaokr*($factor3-1));
	if($i == ($factor3))
	{
    echo "<td aling='right'>$factor</td>
";
   	$suma = $zaokr*($i-1)+$factor;
	echo "<td aling='right'>$suma</td>
";
	}
	else
	{
	echo "<td aling='right'>$zaokr</td>
";
	$suma = $zaokr*$i;
	echo "<td aling='right'>$suma</td>
";
	}
}
echo ('</table>');
$res = array($suma,$mod);

return $res;

}
// Funkcja czytania zamortyzowanych srodk&Atilde;&sup3;w trwa&Aring;‚ych i ich ponownej amortyzacji jesli zachodzi taka koniecznosc
function automatyczna($obiekt)
{
$zapytanie = "SELECT * from pomoc AS t1, amortyzacja as t2 where t1.id = ".$obiekt." and t2.id =".$obiekt;
 			$wynik = mysql_query($zapytanie) or die ('b&Aring;‚&Auml;…d: ' . mysql_error());
      $rekord = mysql_fetch_assoc($wynik);
			if($rekord['um'] >= $rekord['wp']) 
			{
			// Jezeli juz nie ma co umarzac.
			Echo "<h2>&Aring;šrodek trwa&Aring;‚y zosta&Aring;‚ umorzony w ca&Aring;‚o&Aring;›ci.</h2>";
			echo "Tabela przedstawia przebieg ostatniej amortyzacji:";
			wyliczam($rekord['stopa'],$rekord['wspd'],$rekord['wp'],$rekord['czesto']);
			
			//Jezeli srodek zosta&Aring;‚ umorzony w calosci zmieniamy wartosc w tabeli srodki kolumne end na 1 przez co podczas wyszukiwania srodek zawsze bedzie wygladal na umorzony.
			
			$zapytanie = "UPDATE pomoc set end='1' where pomoc.id = '$obiekt'";
			$wynik = mysql_query($zapytanie) or die ('b&Aring;‚&Auml;…d: ' . mysql_error());
			
			exit;
			}
			if($rekord['datar'] >= $rekord['datan'] )
			{
			echo "<br />";
			$amortyzacja = wyliczam($rekord['stopa'],$rekord['wspd'],$rekord['wp'],$rekord['czesto'],	$rekord['um']);
			$aftermethod = $rekord['id_amor']; // Oryginalny wyznacznik metody
			if($amortyzacja[1] != 0) 
			{
			echo "<br /> Metoda amortyzacji zostala zmieniona z degresywnej na liniowa.";
			$aftermethod = 2;
			}
			$umorzenie = $rekord['um']+$amortyzacja[0];
			$zapytanie = "UPDATE amortyzacja set id_amor=".$aftermethod.", um=".$umorzenie." where amortyzacja.id = '$obiekt'";
			
			$wynik = mysql_query($zapytanie) or die ('b&Aring;‚&Auml;…d: ' . mysql_error());
			
			$datefuture = strtotime("-1 year");
			$datenow = strtotime("now");
			
			$zapytanie = "UPDATE pomoc set id_amor='$aftermethod', datar='$datenow', datan='$datefuture' where pomoc.id = '$obiekt'";
			$wynik = mysql_query($zapytanie);
			
			if ($wynik)
			echo "<p>Dane zosta&Aring;‚y poprawne zapisane!.</p>";
		else
			echo "B&Aring;‚&Auml;…d: " . mysql_error() . "<p />
";
			}
			else
			{
			echo "<br /> Ostatnia amortyzacja odby&Aring;‚a sie w dniu : ".date("Y-m-d",$rekord['datar']);
			wyliczam($rekord['stopa'],$rekord['wspd'],$rekord['wp'],$rekord['czesto']);
			echo "Nastepna amortyzacja przypisania na : ".date("Y-m-d",$rekord['datan']);
      }
			return;
}


?>

 

Revise this Paste

Parent: 5210
Children: 5212
Your Name: Code Language: