Intgration de la remise client et des prestations annexes
This commit is contained in:
parent
6eedf89132
commit
71d171a1c2
@ -302,7 +302,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
$fac = new Facture($db, $soc->id);
|
||||
$cancel_facture = 1;
|
||||
$fac->date = $datetime;
|
||||
$fac->cond_reglement = 1;
|
||||
$fac->cond_reglement_id = 1;
|
||||
$fac->remise_percent = 0;
|
||||
|
||||
$facid = $fac->create($user);
|
||||
@ -313,8 +313,8 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("Erreur création objet facture");
|
||||
$error = 4;
|
||||
dolibarr_syslog("Erreur création objet facture erreur : $facid");
|
||||
$error = 16;
|
||||
}
|
||||
}
|
||||
|
||||
@ -336,7 +336,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("ERREUR lecture facture téléphonique $factel_id");
|
||||
$error++;
|
||||
$error = 17;
|
||||
}
|
||||
|
||||
/* Lecture de la ligne correspondante */
|
||||
@ -349,7 +349,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("ERREUR lecture ligne $factel->ligne");
|
||||
$error++;
|
||||
$error = 18;
|
||||
}
|
||||
|
||||
if (!$error && $ligne->facturable) /* Test si on doit facturer ou non la ligne */
|
||||
@ -364,7 +364,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
}
|
||||
else
|
||||
{
|
||||
$error++;
|
||||
$error = 19;
|
||||
}
|
||||
|
||||
$soca = new Societe($db);
|
||||
@ -392,7 +392,6 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
$ventil = 0 ;
|
||||
if (defined("TELEPHONIE_COMPTE_VENTILATION"))
|
||||
{
|
||||
|
||||
if (is_numeric(TELEPHONIE_COMPTE_VENTILATION))
|
||||
{
|
||||
$ventil = TELEPHONIE_COMPTE_VENTILATION;
|
||||
@ -454,7 +453,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = 2;
|
||||
$error = 20;
|
||||
dolibarr_syslog("Erreur $error");
|
||||
}
|
||||
}
|
||||
@ -503,6 +502,150 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/* */
|
||||
/* Remise exceptionnelle */
|
||||
/* */
|
||||
/*********************************/
|
||||
if (!$error)
|
||||
{
|
||||
$remise_exceptionnelle = 0;
|
||||
//$fac = new Facture($db, $soc->id);
|
||||
|
||||
$sql = "SELECT rowid,amount,fk_user";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_client_remise";
|
||||
$sql .= " WHERE fk_client = ".$soc->id;
|
||||
$sql .= " AND fk_facture = 0";
|
||||
|
||||
$resql = $db->query($sql) ;
|
||||
if ( $resql )
|
||||
{
|
||||
while ($row = $db->fetch_row($resql))
|
||||
{
|
||||
$remise_id = $row[0];
|
||||
$remise_exceptionnelle = $row[1];
|
||||
$remise_user = $row[2];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = 32;
|
||||
dolibarr_syslog("Erreur remise exceptionnelle");
|
||||
dolibarr_syslog($sql);
|
||||
}
|
||||
|
||||
if ($remise_exceptionnelle > 0)
|
||||
{
|
||||
// Calcul valeur de remise a appliquer (remise) et reliquat
|
||||
if ($remise_exceptionnelle > ($fac->total_ht * 0.9))
|
||||
{
|
||||
$remise = floor($this->total_ht * 0.9);
|
||||
$reliquat = $remise_exceptionnelle - $remise;
|
||||
}
|
||||
else
|
||||
{
|
||||
$remise = $remise_exceptionnelle;
|
||||
$reliquat=0;
|
||||
}
|
||||
|
||||
$result_insert = $fac->addline($fac->id,
|
||||
addslashes('Remise exceptionnelle'),
|
||||
(0 - $remise),
|
||||
1,
|
||||
'19.6');
|
||||
if ($result_insert < 0)
|
||||
{
|
||||
$error = 33;
|
||||
}
|
||||
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'telephonie_client_remise';
|
||||
$sql .= ' SET fk_facture = '.$fac->id;
|
||||
$sql .= " ,amount = '".ereg_replace(',','.',$remise)."'";
|
||||
$sql .= ' WHERE rowid ='.$remise_id;
|
||||
$sql .= ' AND fk_client ='. $soc->id;
|
||||
|
||||
if (! $db->query( $sql))
|
||||
{
|
||||
$error = 34;
|
||||
}
|
||||
|
||||
if ($reliquat > 0 && $error == 0)
|
||||
{
|
||||
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'telephonie_client_remise';
|
||||
$sql .= ' (fk_client, datec, amount, fk_user) ';
|
||||
$sql .= ' VALUES ';
|
||||
$sql .= ' ('.$soc->id;
|
||||
$sql .= ' ,now()';
|
||||
$sql .= " ,'".ereg_replace(',','.',$reliquat)."'";
|
||||
$sql .= ' ,'.$remise_user;
|
||||
$sql .= ')';
|
||||
|
||||
if (! $db->query( $sql) )
|
||||
{
|
||||
$error = 35;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*********************************/
|
||||
/* */
|
||||
/* Prestas annexes */
|
||||
/* */
|
||||
/*********************************/
|
||||
if (!$error)
|
||||
{
|
||||
$prestas = 0;
|
||||
|
||||
$sql = "SELECT rowid,amount,libelle";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_client_presta";
|
||||
$sql .= " WHERE fk_client = ".$soc->id;
|
||||
$sql .= " AND fk_facture = 0";
|
||||
|
||||
$resql = $db->query($sql) ;
|
||||
if ( $resql )
|
||||
{
|
||||
while ($row = $db->fetch_row($resql))
|
||||
{
|
||||
$presta_id[$prestas] = $row[0];
|
||||
$presta_amount[$prestas] = $row[1];
|
||||
$presta_libelle[$prestas] = $row[2];
|
||||
$prestas++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = 36;
|
||||
}
|
||||
|
||||
if ($prestas > 0)
|
||||
{
|
||||
$i = 0;
|
||||
while ($i < $prestas)
|
||||
{
|
||||
$result_insert = $fac->addline($fac->id,
|
||||
addslashes($presta_libelle[$i]),
|
||||
$presta_amount[$i],
|
||||
1,
|
||||
'19.6');
|
||||
if ($result_insert < 0)
|
||||
{
|
||||
$error = 37;
|
||||
}
|
||||
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'telephonie_client_presta';
|
||||
$sql .= ' SET fk_facture = '.$fac->id;
|
||||
$sql .= ' WHERE rowid ='.$presta_id[$i];
|
||||
$sql .= ' AND fk_client ='. $soc->id;
|
||||
|
||||
if (! $db->query( $sql))
|
||||
{
|
||||
$error = 38;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*********************************/
|
||||
/* */
|
||||
@ -548,7 +691,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("ERREUR lecture facture téléphonique $factel_id");
|
||||
$error++;
|
||||
$error = 17;
|
||||
}
|
||||
|
||||
/* Lecture de la ligne correspondante */
|
||||
@ -561,7 +704,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("ERREUR lecture ligne $factel->ligne");
|
||||
$error++;
|
||||
$error = 18;
|
||||
}
|
||||
|
||||
/* Facture détaillée standard */
|
||||
@ -643,9 +786,12 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
if ($fac->client->bank_account->verif() && $ligne->mode_paiement == 'pre')
|
||||
{
|
||||
$message .= "Cette facture sera prélevée sur votre compte bancaire numéro : ";
|
||||
$message .= $fac->client->bank_account->number;
|
||||
$message .= $fac->client->bank_account->number."\n";
|
||||
}
|
||||
|
||||
$message .= "Toute l'équipe ibreizh vous offre ses meilleurs voeux 2006\n";
|
||||
$message .= "Dans le cadre de notre charte qualité nous prendrons contact avec vous au cours de ce mois à bientôt...";
|
||||
|
||||
if ($verbose) dolibarr_syslog("Création du pdf facture : $facid");
|
||||
|
||||
if (! facture_pdf_create($db, $facid, $message))
|
||||
@ -681,7 +827,7 @@ function facture_contrat($db, $user, $contrat_id, $factel_ids, $datetime, &$fact
|
||||
else
|
||||
{
|
||||
$db->query("ROLLBACK");
|
||||
dolibarr_syslog("ROLLBACK de la transaction");;
|
||||
dolibarr_syslog("ROLLBACK de la transaction $error");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user