Salut, je suis un newbe et écrit un code simple à des fins fiscales. Jusqu'à présent, j'ai écrit un petit code mais je pense qu'il semble y avoir un problème avec la fonction taxable_i($i)
qui ne me laisse pas faire $taxable_i
NIL
. J'ai tout essayé. Lorsque j'essaie de faire $taxable_i
NIL
via la fonction, il ne me laisse pas le faire. Il me montre un résultat de £13900
. Je pense que le programme fait écho à $taxable_i
plutôt qu'à l'impôt à payer. Si je supprime tous les ci-dessus tous ensemble, l'impôt à payer vient à -£2199.80
, ce qui est en moins. S'il vous plaît noter que je mets $taxable_i <personal_allowance
de sorte que la réponse est zéro mais le résultat n'est pas zéro. Je ne sais pas pourquoi et ce que je fais mal. Toute aide est la bienvenue.php comment éviter la réponse négative
<?php
// VAT
define("vat_threshold",83000);
define("vat_rate",0.2);
// RELIEFS
define("personal_allowance",11000);
//RATES
define("starting_rate",0);
define("basic_rate",0.2);
define("higher_rate",0.4);
define("add_rate",0.45);
define("divs_ord_rate",0.075);
define("divs_uuper_rate",0.325);
define("divs_add_rate",0.381);
// THRESHOLDS
define("savings_income_band",5000);
define("basic_rate_band",32000);
define("higher_rate_band",150000);
define("divs_allowance",5000);
define ("band_0",0);
define("band_1",11000);
define("band_2",32000);
define("band_3",100000);
define("band_4",122000);
define("band_5",150000);
function taxable_i($i) {
if ($i <= band_1) {
$taxable_i = $i * 0;
return $taxable_i;
}
if ($i <= band_3) {
$taxable_i = $i - personal_allowance;
return $taxable_i;
}
if ($i >band_3 && $i <=band_4) {
$taxable_i = $i - (personal_allowance-($i - band_3)/2);
return $taxable_i;
}
if ($i > band_4) {
$taxable_i = $i;
return $taxable_i;
}
}
$starting_income = $i = 1;
echo $i;
$taxable_i = taxable_i($i);
echo $taxable_i;
switch ($taxable_i) {
case ($taxable_i > band_5):
$diff = $taxable_i - band_5;
$tax5 = $diff * add_rate;
$taxable_i = band_5;
$diff = $taxable_i - band_2;
$tax4 = $diff * higher_rate;
$taxable_i = band_2;
$tax3 = $taxable_i * basic_rate;
$tax_payable = $tax5 + $tax4 + $tax3;
break;
case ($taxable_i > band_2 && $taxable_i <= band_5):
$diff = $taxable_i - band_2;
$tax4 = $diff * higher_rate;
$taxable_i = band_2;
$tax3 = $taxable_i * basic_rate;
$tax_payable = $tax4 + $tax3;
break;
case ($taxable_i < band_2):
$tax = $taxable_i * basic_rate;
$tax_payable = $tax;
break;
default:
$taxable_i <= band_0;
$tax_payable == 0;
break;
}
echo $tax_payable;
?>
Stackoverflow n'est pas pour le débogage de code ou d'erreur de trouver des tâches. Veuillez réduire l'exemple à l'exemple de code minimal requis pour mettre en évidence votre problème, élaborer sur ce que vous essayez d'atteindre (et pourquoi) et indiquer le comportement attendu par opposition au comportement réel. – k0pernikus
J'ai été coupable de cela aussi mais ... non, écrire des programmes fiscaux ne vous aidera pas à les faire. La seule façon d'obtenir des impôts, est de s'asseoir votre cul désolé sur une chaise et les faire :) –
Salut Felix - malheureusement c'est ce que je fais pour vivre. Je suis un conseiller fiscal. Le codage est mon passe-temps. J'ai une calculatrice d'impôt sur mon site Web www.sipheraccounting.com qui a été écrit dans Excel en utilisant des déclarations if. J'ai toujours voulu apprendre la programmation maintenant j'ai mis environ 30 jours pour écrire ce que j'ai écrit. J'espère que ça marchera aussi. –