Just nu i M3-nätverket
Gå till innehåll

Räkna Moms.


Knas

Rekommendera Poster

Jag behöver lite hjälp med att få sidan att räkna momsen på total belopp. Koden ser ut så här.

 

						<?
					$j=0;
					$totalpris=0;

					if(isset($antal))
					{
						reset($antal);
						while($res=each($antal))
						{
							$totalpris=$totalpris+($res[1]*$pris[$j]);
							$j++;
						}
					}
					$totalfrakt=0;
					if(count($frakt)!=0)
					{
						reset($frakt);
						while($res=each($frakt))
						{
							$totalfrakt=$totalfrakt+$res['1'];
						}
					}
					else
					{
						$totalfrakt=0;
					}
					$produktpris=$totalpris;
					$totalpris=$totalpris+$totalfrakt;
					echo "<span class='an7w'>".$totalpris."&nbsp;kr</span>"; 
					?>

 

Eventuell skulle man ta det via db men den är inte min bäste kompis.

 

Någon som kan?

 

Livet är underbart om man betänker alternativet.....

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Prova att efter:

$totalpris=$totalpris+$totalfrakt;

lägga till:

$moms=$totalpris*0.25;

Om nu momsen är 25% av priset.

 

Länk till kommentar
Dela på andra webbplatser

Förlåt mig.

 

Jag utryckte mig lite fel (förlåt) Jag vill att den skal visa vad momsen blir men med siffra men inte drag från den.

 

Ex.

 

Kassan

 

Produkt Pris Antal 1

Test produkt 999.99 kr

Fraktavgift: 56 kr

Postförskott: 50 kr

Summa: 1105.99 kr

(Moms: 276.49 kr)

 

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Det är det som variabeln $moms innehåller, 25% av totalpriset.

Skriver du ut variabeln $moms visar den hur mycket moms det blev, i siffror.

 

Länk till kommentar
Dela på andra webbplatser

Nu kom det på sidan som jag ville

Men med 4 decimaler.

Hur gör man så det blir 2?

Så ser det ut.

 

Test produkt 999.99 kr

Fraktavgift: 56 kr

Postförskott: 50 kr

Summa: 1105.99 kr

Moms: 276.4975 kr

 

Tackar för svar.

 

Länk till kommentar
Dela på andra webbplatser

Så har jag gjor koden.

					</td>
				<td width="70" valign="bottom">
				</td>
				<td width="30" align='left' valign="bottom">
				</td>
			</tr>
			<tr>
				<td align="right" valign="bottom">
					<span class='ab7w'>Summa:&nbsp;</span>
				</td>
				<td width="70" valign="bottom">
					<?
					$j=0;
					$totalpris=0;

					if(isset($antal))
					{
						reset($antal);
						while($res=each($antal))
						{
							$totalpris=$totalpris+($res[1]*$pris[$j]);
							$j++;
						}
					}
					$totalfrakt=0;
					if(count($frakt)!=0)
					{
						reset($frakt);
						while($res=each($frakt))
						{
							$totalfrakt=$totalfrakt+$res['1'];
						}
					}
					else
					{
						$totalfrakt=0;
					}
					$produktpris=$totalpris;
					$totalpris=$totalpris+$totalfrakt;
					echo "<span class='an7w'>".$totalpris."&nbsp;kr</span>";
					?>
				</td>
				<td width="70" valign="bottom">
				</td>
				<td width="30" align='left' valign="bottom">
				</td>
			</tr>
			<tr>
				<td align="right" valign="bottom">
					<span class='an7w'>(Moms:&nbsp;</span>
				</td>
				<td width="70" valign="bottom">
					<?
					$j=0;
					$totalpris=0;

					if(isset($antal))
					{
						reset($antal);
						while($res=each($antal))
						{
							$totalpris=$totalpris+($res[1]*$pris[$j]);
							$j++;
						}
					}
					$totalfrakt=0;
					if(count($frakt)!=0)
					{
						reset($frakt);
						while($res=each($frakt))
						{
							$totalfrakt=$totalfrakt+$res['1'];
						}
					}
					else
					{
						$totalfrakt=0;
					}
					$produktpris=$totalpris;
					$totalpris=$totalpris+$totalfrakt;
                       $moms=$totalpris*0.25;
                       echo "<span class='an7w'>".$moms."&nbsp;kr)</span>";
					?>

 

[bild bifogad 2007-04-17 18:13:11 av Knas]

937824_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Om nu det inte innehåller några textsträngar i dina uträkningar så gör så här:

$moms=round($totalpris*0.25,2);

 

Länk till kommentar
Dela på andra webbplatser

Tackar för den. Nu blev det (Moms: 276.5 kr)

?

 

(PHP är en vetenskap sa dom)

 

Livet är underbart om man betänker alternativet.....

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Det ska bli 2 decimaler, det styr den andra parametern(2).

Prova att säkerställ värdet du vill avrunda till ett tal-värde och inte ett text-värde.

 

Länk till kommentar
Dela på andra webbplatser

Behöver lite hjälp med det tror jag för jag vet inte riktigt vad du menar...

 

(Intelligens kan man inte köpa...Vad gör jag då?)

 

 

Livet är underbart om man betänker alternativet.....

 

Länk till kommentar
Dela på andra webbplatser

Svjv styr andra parametern till round() precisionen på det returnerade värdet, men det är fortfarande ett flyttal (dvs det finns ingen information om hur det ska formatteras). För att formattera tal till strängar finns det ett antal funktioner du kan använda, t ex number_format, money_format eller sprintf.

 

T ex borde det här funka:

setlocale(LC_MONETARY, 'sv_SE');
echo money_format('%.2n', $moms);

 

Länk till kommentar
Dela på andra webbplatser

Tackar för den. Var exakt skal koden ligga på sidan om det går bra att fråga?

 

Livet är underbart om man betänker alternativet.....

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Antingen skapar du en ny variabel för det värdet och skriver ut det där du vill skriva ut momsen eller så skriver du ut zerblats förslag där du vill ha det.

 

Länk till kommentar
Dela på andra webbplatser

(Moms: 0,00 kr )

 

						<?
					$j=0;
					$totalpris=0;

					if(isset($antal))
					{
						reset($antal);
						while($res=each($antal))
						{
							$totalpris=$totalpris+($res[1]*$pris[$j]);
							$j++;
						}
					}
					$totalfrakt=0;
					if(count($frakt)!=0)
					{
						reset($frakt);
						while($res=each($frakt))
						{
							$totalfrakt=$totalfrakt+$res['1'];
						}
					}
					else
					{
						$totalfrakt=0;
					}
					$produktpris=$totalpris;
					$totalpris=$totalpris+$totalfrakt;
                       setlocale(LC_MONETARY, 'sv_SE');
                       echo money_format('%.2n', $moms);
					?>

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Ja, nu skrivs väl momsen ut som du tänkt!?

Annars kan man göra så här:

$moms=$totalpris*0.25;
setlocale(LC_MONETARY, 'sv_SE');
$shortedMoms = money_format('%.2n', $moms);

Nu skriver du bara ut $shortedMoms där du vill ha det.

 

Länk till kommentar
Dela på andra webbplatser

Det blev inga decimaler med detta.

 

Jag behöver lite hjälp med att få sidan att skriva 2 decimaler efter totalbeloppet.

 

Om någon kan lösa detta eller tror dom kan går det att hämta filen här:

http://mrdansken.se.sajtx.net/fil/

 

Först med en som fungera får 200 kr kontant när filen är testat.

[inlägget ändrat 2007-04-19 00:01:08 av Knas]

Länk till kommentar
Dela på andra webbplatser

$moms=$totalpris*0.25;
$moms = sprintf("%01.2lf", floor($moms*100)/100);

 

Altså 1105.990 blir 276.49 kr moms och inte 276.5.

 

Hoppas att det fungerar.

 

Länk till kommentar
Dela på andra webbplatser

Det blev jo bra med momsen men det hade jag redan fixat innan. Har problem med totalpriset.

Fraktavgift: 56 kr

Postförskott: 50 kr

Summa: 135.7 kr

Moms: 33.92 kr

 

Vill bara visa en decimal?

Men tack enda.

 

Länk till kommentar
Dela på andra webbplatser

Har själv hittat felet.

 

Fraktavgift: 56 kr

Postförskott: 50 kr

Summa: 135.70 kr

Moms: 33.92 kr

 

 

Livet är underbart om man betänker alternativet.....

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...