Calcul de tva marge avec remise fournisseur spéciale pour les commercants.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 836 fois - Téléchargée 17 fois

Contenu du snippet

Le titre est assez parlant ,Calcul de TVA MARGE avec remise fournisseur ,c'est une application spéciale pour les commercants.

Source / Exemple :


<html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Calculer sa marge</title>
</head>
<?php
$colortext="#666666"; 
$bgcolor="#000000"; 
$cellulebgcolor="#ffffff"; 
ECHO"<body text=$colortext bgcolor=$bgcolor>
<center>";
@$calcul=$_GET['calcul'];
 
if( isset( $_GET['calcul'] ) && $_GET['calcul'] == 'oui' ) 
{
//PHP créer un tableau : $_POST qui contient les information des formulaire utilisant la methode post, pour otbenir les information c'est très simple, voyez :
echo "<FONT COLOR=red> 
Tva : ".$_POST["caseoption"]."|
PRIX CATALOGUE HT : ".$_POST["textbox"]."|
TRANSPORT HT : ".$_POST["textarea"]."|
REMISE SUR LE CATALOGUE: ".$_POST["listbox"]."|
COEFFICIENT SUR LE CATALOGUE  : ".$_POST["coeff"]."</FONT>
";
$remise = $_POST['listbox']; //c'est la remise  
$paht = $_POST['textbox']; //c'est le prix hors taxes catalogue  
$portht = $_POST['textarea']; // le prix hors taxes de transport 
$coeff = $_POST['coeff']; // le coefficient appliqué  pour se faire une petite marge 
$taux = $_POST['caseoption']; // tva.... 
$coeftva = ($taux + 100) / 100;// CALCUL TVA.... 
$remise =(100-$remise) / 100;// CALCUL REMISE.... 
$revientht = ($paht * $remise) + $portht;// HT TOTAL.... 
$revientttc = round(($paht * $remise * $coeftva)+($portht*1.196), 2);// TTC TOTAL.... 
$tvaarecuperer = $revientttc - $revientht;// HT TOTAL.... 
$pvttc1 = ($paht * $remise) * $coeff;// HT PRODUIT + MARGE.... 
$portht = $portht ;// HT TRANSPORT 
$pvttc2 = $portht+(($paht * $remise) * $coeff);// HT PRODUIT + MARGE.... 
$pvttc = $revientht * $coeff;// COEF TOTAL TTC
$pvttcp = round($pvttc1 * $coeftva, 2);// PV TTC PRODUIT
$pvttcT = round($portht*1.196, 2);// PV TTC TRANSPORT
$pvTotal= $pvttcT+$pvttcp ;
$tvaEncaisse = $pvttcp - $pvttc1 ; //TVA PRODUIT
$tvaEncaisse2 = $pvttcT - $portht; //TVA TRANSPORT 
$tvaEncaisse3 = $tvaEncaisse + $tvaEncaisse2; //TVA 
$tvaAPayer = $tvaEncaisse + $tvaEncaisse2 - $tvaarecuperer; //COUT DE LA TVA
$marge = $pvttc2 - $revientht;//MARGE
$margePourCent = round($marge / ($pvttc2 / 100), 2);

echo '

<TABLE CELLSPACING=1>';

$boucle1 = array( 
'LES ACHATS'=>'', 
'ACHAT HT'=>''.$revientht.'', 
'ACHAT TVA'=>''.$tvaarecuperer.'', 
'ACHAT TTC'=>''.$revientttc.'', 
'PRIX DE VENTE'=>'', 
'PRODUIT____HT'=>''.$pvttc1.'', 
'TRANSPORT____HT'=>''.$portht.'', 
'TOTAL____HT'=>''.$pvttc2.'', 
'PRODUIT____TVA'=>''.$tvaEncaisse.'', 
'TRANSPORT____TVA'=>''.$tvaEncaisse2.'', 
'TOTAL____TVA'=>''.$tvaEncaisse3.'', 
'PRODUIT____TTC'=>''.$pvttcp.'', 
'TRANSPORT____TTC'=>''.$pvttcT.'', 
'TOTAL____TTC'=>''.$pvTotal.'',  
'RESUME'=>'', 
'TVA à payer'=>'' . $tvaAPayer .'', 
'Ma marge'=>'' . $marge .' Euros, soit  ' . $margePourCent . '% du prix Ht de vente',  
); 

// pour parcourir ce tableau, utilisons la boucle foreach 
foreach($boucle1 as $cle=>$valeur) 
    { 
    echo "<tr ALIGN=LEFT><td ALIGN=LEFT VALIGN=TOP BGCOLOR=$cellulebgcolor >$cle </td><td ALIGN=LEFT VALIGN=TOP BGCOLOR=$cellulebgcolor> $valeur</td><tr/>"; 

    } 

	 
	 
	 
echo '

<table />
<A HREF="tvas.php" >RETOUR</a>

';

}ELSE{

//Balise d'ouverture de la zone de formulaire
?>
<form method="POST" action="tvas.php?calcul=oui">
 

 <p align="<center>">

<?php
//La case d'option
//nom : caseoption
?>
  TVA<input type="radio" name="caseoption" value="5.5" CHECKED>5.5<input type="radio" name="caseoption" value="19.6" >19.6</p>

<?php

;?>
<p align="<center>">MONTANT CATALOGUE HT 	&nbsp;  <input type="text" name="textbox" value="100"size="5">	&nbsp;TRANSPORT HT   	&nbsp;
<input type="text" name="textarea" value="0"size="5"></p>

<?php
//Liste Deroulante
//nom : listbox
?>
  <p align="<center>">
 <SELECT NAME="listbox"  MULTIPLE SIZE=25>
     <optgroup label="REMISE FOURNISSEUR">
	 <OPTION >20 %
	 <OPTION >30 %
	 <OPTION >35 %
	    <?php for ($a=40;$a<=54;$a++){
 echo"<option > $a %";};?>
   <OPTION SELECTED>55 %
    <?php for ($a=56;$a<=60;$a++){
 echo"<option > $a % ";};?>

     </optgroup>
  </SELECT>
  
  <SELECT NAME="coeff"  MULTIPLE LONG=10 SIZE=25>
  
   <optgroup label="coefficient">
 <?php for ($a=18;$a<=21;$a++){$b=($a/10);
 echo"<option > $b ";};?>
   <OPTION  SELECTED>2.2
   <?php for ($a=23;$a<=40;$a++){$b=($a/10);
 echo"<option > $b ";};?>
   
      </optgroup>
  </SELECT>
  
  
  </p>
  <p align="<center>">

<?php
//Bouton d'envoie
//pas besoin de nom
?>
<input type="submit" value="Envoyer"></p>

</form>

<?php
//Balise de fermeture de la zone de formulaire

};
?>

</body>

</html>

Conclusion :


J'attends vos commentaires et avec toutes les sources que j'ai pris je me devais bien de tisser moi aussi la toile .C'est mon premier script posté ici .

A voir également

Ajouter un commentaire

Commentaires

willeraser
Messages postés
56
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009
-
Zomfgwtfbbqh4x !? $HTTP_POST_VARS ?! Il faut le bannir et utiliser $_POST à la place !
Tu utilises l'opérateur @ dans le test de la valeur d'une variable (et l'affectation aussi), je vois pas l'utilité là... Il te suffit de tester si la variable existe...avec isset(), qui ne renvoit pas de message d'erreur dans le cas où elle n'existe pas. et si tu veux ensuite tester la valeur précise de cette var, tu rajoutes && $_GET['mavar'] == mavaleur après le isset().

Surtout, utiliser une variable intermédiaire pour une valeur qui n'est utilisée qu'une fois... autant mettre un if( isset( $_GET['mavar'] ) && $_GET['mavar'] == '2' ) { le reste; }

Mais si j'ai bien compris ton script, tu testes cette valeur pour savoir si le formulaire a été validé ? Si c'est le cas, ton bouton submit va forcément être défini, autant le tester lui et virer ton champ caché. Aussi, utilise les simples quotes au lieu des doubles.

Pour ta partie HTML, j'aurais bien vu l'utilisation d'un sprintf avec ta chaine HTML mémorisée et 2 injections de string dedans

$var = '<tr ALIGN=LEFT><td ALIGN=LEFT VALIGN=TOP BGCOLOR="#ffffff" >%s</td><td ALIGN=LEFT VALIGN=TOP BGCOLOR="#ffffff">%s</td><tr/> ';
echo sprintf( $var , 'achat ht' , 'blabla' ) ,
sprintf( $var , 'achat ttc' , 'blabla2' );
etc...

En allant plus loin, un array( array( '' , '' ) ); contenant chaque intitulé avec sa variable...tu mets un for qui boucle de 0 jusqu'au nombre d'éléments du tableau (count) et tu peux boucler pour injecter les valeurs au fur et à mesure dans ton sprintf, ça serait super propre ;)

En HTML valide (et XHTML), pas de majuscules dans les tags ! Et les valeurs de chaque attribut doivent être entourée de guillemets (certains mettent des apostrophes). Puis vaut mieux mettre le style dans une partie CSS que l'intégrer directement dans l'HTML.

Ensuite, enlève : <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
(pour éviter de te faire incendier :D)
lcomb
Messages postés
11
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
10 mai 2008
-
Salut
Commentaire objectif , je me suis jamais servi de frontpage LOL UN COPIER COLLER EST PASSER PAR LA LOL .
J'ai bien compris merci de ton aide ,j'ai appris sur le tas ici et ailleurs ,je le changerai quand j'ai le temps :D)
DAM74
Messages postés
10
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
15 janvier 2010
-
ou est le fichier zip !!!!
prog35
Messages postés
1
Date d'inscription
vendredi 8 octobre 2010
Statut
Membre
Dernière intervention
26 octobre 2010
-
salut dites moi est ce que je peux tenter de reecrire ce programm en vba c est pour un projet que nous devons realier en cours

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.