* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ * */ include_once("./pre.inc.php"); include_once("../paiement.class.php"); include_once(DOL_DOCUMENT_ROOT."/facture.class.php"); include_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); /* * */ if ($HTTP_POST_VARS["action"] == 'add_paiement') { if ($HTTP_POST_VARS["paiementid"] > 0) { $datepaye = $db->idate(mktime(12, 0 , 0, $HTTP_POST_VARS["remonth"], $HTTP_POST_VARS["reday"], $HTTP_POST_VARS["reyear"])); $paiement_id = 0; $amounts = array(); foreach ($HTTP_POST_VARS as $key => $value) { if (substr($key,0,7) == 'amount_') { $other_facid = substr($key,7); $amounts[$other_facid] = $HTTP_POST_VARS[$key]; } } $paiement = new Paiement($db); $paiement->datepaye = $datepaye; $paiement->amounts = $amounts; $paiement->author = $HTTP_POST_VARS["author"]; $paiement->paiementid = $HTTP_POST_VARS["paiementid"]; $paiement->num_paiement = $HTTP_POST_VARS["num_paiement"]; $paiement->note = $HTTP_POST_VARS["note"]; $paiement_id = $paiement->create($user); if ($paiement_id > 0) { $paiement = new Paiement($db); if ( $paiement->fetch($paiement_id) ) { $fac = new Facture($db); $fac->fetch($HTTP_POST_VARS["facid"]); $fac->fetch_client(); $label = "Règlement facture"; // On ajoute une ligne dans la table llx_bank pour qu'ensuite on puisse rapprocher le compte ! $acc = new Account($db, $HTTP_POST_VARS["accountid"]); //paiementid est correct, il contient "CHQ ou VIR par exemple" $bank_line_id = $acc->addline($datepaye, $HTTP_POST_VARS["paiementid"], $label, $paiement->montant, $num_paiement); // Mise a jour fk_bank dans llx_paiement. On connait ainsi le paiement qui a généré l'écriture bancaire $pai = new Paiement($db); //$pai->update_fk_bank($paiement_id,$bank_line_id); // TODO Méthode à creer $acc->add_url_line($bank_line_id, $paiement_id, DOL_URL_ROOT.'/compta/paiement/fiche.php?id=', "(paiement)"); $acc->add_url_line($bank_line_id, $fac->client->id, DOL_URL_ROOT.'/compta/fiche.php?socid=', $fac->client->nom); $loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id; Header("Location: $loc"); } } else { // print "Pas d'entrée dans la banque"; } } else { $fiche_erreur_message = "Vous devez sélectionner un mode de paiement"; } } /* * Sécurité accés client */ if ($user->societe_id > 0) { $action = ''; $socidp = $user->societe_id; } /* * Affichage */ llxHeader(); if ($_GET["action"] == 'create') { $facture = new Facture($db); $facture->fetch($_GET["facid"]); $sql = "SELECT s.nom,s.idp, f.amount, f.total_ttc as total, f.facnumber"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.idp"; $sql .= " AND f.rowid = $facid"; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); if ($num) { $obj = $db->fetch_object( 0); $total = $obj->total; print_titre("Emettre un paiement"); print '
\n"; } } } if ($action == '') { if ($page == -1) $page = 0 ; $limit = $conf->liste_limit; $offset = $limit * $page ; if ($sortorder == "") $sortorder="DESC"; if ($sortfield == "") $sortfield="p.datep"; $sql = "SELECT ".$db->pdate("p.datep")." as dp, p.amount, f.amount as fa_amount, f.facnumber"; $sql .=", f.rowid as facid, c.libelle as paiement_type, p.num_paiement"; $sql .= " FROM ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."c_paiement as c"; $sql .= " WHERE p.fk_facture = f.rowid AND p.fk_paiement = c.id"; if ($socidp) { $sql .= " AND f.fk_soc = $socidp"; } $sql .= " ORDER BY $sortfield $sortorder"; $sql .= $db->plimit( $limit +1 ,$offset); $result = $db->query($sql); if ($result) { $num = $db->num_rows(); $i = 0; $var=True; print_barre_liste("Paiements", $page, $PHP_SELF,"",$sortfield,$sortorder,'',$num); print '| Facture | "; print "Date | "; print ""; print_liste_field_titre("Type",$PHP_SELF,"c.libelle","",""); print ' | Montant | '; print ""; print " |
| facid\">$objp->facnumber | \n"; print "".strftime("%d %B %Y",$objp->dp)." | \n"; print "$objp->paiement_type $objp->num_paiement | \n"; print ''.price($objp->amount).' | '; print " |