Creation numero facture

Signaler
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013
-
aureliemerlin
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013
-
Bonjour à tous

j'aimerais reproduire la fonction suivante (qui me permet de calculer mon numéro de facture) en php

voici la fonction :

Private Function New_no_facture() As Long
Dim lngNo As Long
lngNo = CLng(Year(txtDate)) * 100 + CLng(Month(txtDate))
If DCount("[no facture]", "facture", "fix([no facture]/1000)=" & lngNo) > 0 Then
New_no_facture = DMax("[no facture]", "facture", "fix([no facture]/1000)=" & lngNo) + 1
Else
New_no_facture = 1000 * lngNo + 1
End If
End Function




quelqu'un a t il une idée ????


Merci d'avance

Bonne journée

Aurélie

9 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonsoir

tu veux generer un numero de facture unique en php ?
une proposition


<?php
$date = date('YmdHis');
$date =(float)$date; /*force le type*/
echo $date;
echo '
';

//tu peux concaténer le timestamp
//echo time();
echo '<hr> Avec la concanètation
';
echo $date2=$date.'_'.time();
echo '<hr>';
//mais tu auras un string

//verifier si la facture existe
$link=mysql_connect('localhost','root','') or  die('? serveur');
$db=mysql_select_db('mabase') or  die('? base');
$sql="select * factures where id='$date'";
$query=mysql_query($sql) or  die('? query');
if(mysql_num_rows($query)>0){
$nb_fact = $date;
} else {
echo 'pas de facture presente';
/* ... */
}   
mysql_close($link);      
?>

a++
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
select * from ... (erratum) a++
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013

bonjour

Merci pour vos réponses.

A la place de reproduire la fonction je change de méthode
Je stocke l'année, le mois et le numéro de création de chaque facture et je voudrais récupérer lors de la création le plus grand numéro selon la date ce j'ai saisi voici le code (mais cela ne fonctionne pas ):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajout nouvelle facture</title>
</head>
<?php
require_once('includes/bd.inc.php');
require_once('includes/magicquotes.inc.php');
//vide ou client ou banque
if (isset($_POST['nouvellefacture_0']) == 'oui')
{
//facture vide
} else
{
if (isset($_POST['nouvellefacture_1']) == 'oui')
{
//facture client
if(isset($_POST['Num']) && !empty($_POST['Num']))
{
$NumClient = mysqli_real_escape_string($lien, $_POST['Num']);
}
if(isset($_POST['CodeCom']) && !empty($_POST['CodeCom']))
{
$CodeCom = htmlspecialchars(mysqli_real_escape_string($lien, $_POST['CodeCom']));
}

}else
{
if (isset($_POST['nouvellefacture_2']) == 'oui')
//facture banque
{
if(isset($_POST['NumBanque']) && !empty($_POST['NumBanque']))
{
$NumClient = mysqli_real_escape_string($lien, $_POST['NumBanque']);
}
if(isset($_POST['CodeCom']) && !empty($_POST['CodeCom']))
{
$CodeCom = htmlspecialchars(mysqli_real_escape_string($lien, $_POST['CodeCom']));
}
}
}

}
if(isset($_POST['Date']))
{
$date_explosee = explode("/", $Date);
$jour = $date_explosee[0];
$mois = $date_explosee[1];
$annee = $date_explosee[2];
$resultat1 mysqli_query($lien, "select max(Numero) bdfacture where Mois'$mois' and Annee ='$annee'");
$rs=mysqli_query($resultat1);
if ($rs = @mysqli_query ($sql))
{
if (@mysqli_num_rows($rs)>0)
{
while ($tab = mysqli_fetch_array($rs))
{
//traitement
$NumFacture = $tab['Numero'] +1;
}
}
else {
$NumFacture = 1;
}
}
else {
echo 'Erreur MySQL : '.mysql_error();
}

$Date =changedatefrus(mysqli_real_escape_string($lien, $_POST['Date']));
$sql 'INSERT INTO bdfacture set Nofacture "' .$NumFacture .'", CodeClient = "' .$NumClient .'", Codecommercial = "' .$CodeCom .'", Date = "' .$Date .'"' ;

if (!mysqli_query($lien, $sql))
{
$erreur = "erreur dans l'ajout de la facture : " .mysqli_error($lien);
include 'erreur.html.php';
header ('location : modifreglementapp.php');

}
}



?>
<?php
function changedatefrus($datefr)
{
$dateus=$datefr{6}.$datefr{7}.$datefr{8}.$datefr{9}."-".$datefr{3}.$datefr{4}."-".$datefr{0}.$datefr{1};
return $dateus;
}
?>


</html>
je n'arrive pas à récupérer le plus grand numéro


quelqu'un a t il une idée ???

merci d'avance

Bonne journée

Aurélie
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonjour

dans ta fonction je crois que c'est pas dans le bonne ordre

<?php
$Date = mysqli_real_escape_string(changedatefrus($_POST['Date']));

/* $lien ça vient d'ou ?

$lien = mysqli_real_escape_string($lien);

// puis ton insertion
*/
?>


a++
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013

si je mets $Date = mysqli_real_escape_string(changedatefrus($_POST['Date']));
j'arrive à créer une ligne dans ma table facture mais tous les champs sont vides

merci
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
11
Salut,

@cod57 : Tu devrais lire la doc de mysqli_real_escape_string() avant de répondre,c e que tu propose ne peux pas fonctionner. En effet, mysqli_real_escape_string() prend toujours deux arguments : en premier le lien mysqli et en second la chaîne à protéger.
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
@TychoBrahe

d'accord avec toi, excuse moi
j ai pas fait gaffe au i tu as raison
je travaille tjs avec mysql je penser que c'était pareil ...
c'est l'ordre des fonctions qui me dérangé

$Date = mysqli_real_escape_string($lien,changedatefrus($_POST['Date']));

bon faut voir maintenant si c'est bien ça ...

a++
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013

bonjour,


voici un bout de mon code pour ma création de facture :
$Date = changedatefrus(mysqli_real_escape_string($_POST['Date']));
$date_explosee = explode("/", $Date);
$jour = $date_explosee[0];
$mois = $date_explosee[1];
$annee = $date_explosee[2];
$resultat1 mysqli_query($lien, "select max(Numero) bdfacture where Mois'$mois' and Annee ='$annee'");
$bdfacture = array();
while ($ligne = mysqli_fetch_array($resultat1))
{
$bdfacture[]= array('Numero' => $ligne ['Numero']);

}
$NumFacture = $bdfacture['Numero'] ;
$sql 'INSERT INTO bdfacture set Nofacture "' .$NumFacture .'", CodeClient = "' .$NumClient .'", Codecommercial = "' .$CodeCom .'", Date = "' .$Date .'", Annee = "' .$annee .'"' ;

je n'arrive pas a récupérer mon plus grand numéro

quelqu'un a t il une idée ???


merci d'avance

Aurélie
Messages postés
86
Date d'inscription
jeudi 24 juin 2010
Statut
Membre
Dernière intervention
17 avril 2013

bonjour

voici un morceau de code qui me permet de créer une facture mais j'ai un problème pour récupérer mon numéro maximum
voici le code :
if(isset($_POST['Date']))
{
require_once('includes/bd.inc.php');
require_once('includes/magicquotes.inc.php');
$Date =changedatefrus( mysqli_real_escape_string($lien, $_POST['Date']));
$CodeCom = htmlspecialchars(mysqli_real_escape_string($lien, $_POST['CodeCom']));
$Evolutionfacture = 'NPAY';
$mois = htmlspecialchars(mysqli_real_escape_string($lien, $_POST['mois']));
$annee = htmlspecialchars(mysqli_real_escape_string($lien, $_POST['annee']));
// $query "SELECT MAX(Numero) as num FROM bdfacture WHERE Mois'$mois' and Annee ='$annee' "
$requete "select max(Numero) from bdfacture WHERE Mois'$mois' and Annee ='$annee' ";
$result = mysqli_query($requete);
if (! $result)
{
$NumFacture = "01";
} else {
// traitements ....
$ligne = mysqli_fetch_array($result);
$NumFacture = $ligne +1 ;
}

$sql 'INSERT INTO bdfacture set CodeClient "' .$NumClient .'", Codecommercial = "' .$CodeCom .'", Date = "' .$Date .'", Mois = "' .$mois .'", Annee = "' .$annee .'", Numero = "' .$NumFacture .'", TypeFacture = "' .$TypeFacture .'", TypeClient2 = "' .$TypeClient2 .'", Evolutionfacture = "' .$Evolutionfacture .'"';



quelqu'un a t il une idée ????,


merci d'avance

Aurélie