diff --git a/htdocs/compta/paiement_charge.php b/htdocs/compta/paiement_charge.php new file mode 100755 index 00000000000..4fa167adbbf --- /dev/null +++ b/htdocs/compta/paiement_charge.php @@ -0,0 +1,346 @@ + + * + * 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("../chargesociales.class.php"); +include_once(DOL_DOCUMENT_ROOT."/compta/bank/account.class.php"); +/* + * + */ + +$chid=isset($_GET["id"])?$_GET["id"]:$_POST["id"]; + + +if ($_POST["action"] == 'add_paiement') +{ + if ($_POST["paiementtype"] > 0) + { + + $datepaye = $db->idate(mktime(12, 0 , 0, + $_POST["remonth"], + $_POST["reday"], + $_POST["reyear"])); + + $paiement_id = 0; + $amounts = array(); + foreach ($_POST as $key => $value) + { + if (substr($key,0,7) == 'amount_') + { + $other_chid = substr($key,7); + + $amounts[$other_chid] = $_POST[$key]; + } + } + + // TODO Mettre toute la chaine dans une même transaction + + // Creation de la ligne paiement + $paiement = new PaiementCharge($db); + $paiement->chid = $chid; + $paiement->datepaye = $datepaye; + $paiement->amounts = $amounts; // Tableau de montant + $paiement->paiementtype = $_POST["paiementtype"]; + $paiement->num_paiement = $_POST["num_paiement"]; + $paiement->note = $_POST["note"]; + $paiement_id = $paiement->create($user); + + if ($paiement_id > 0) + { + // On determine le montant total du paiement + $total=0; + foreach ($paiement->amounts as $key => $value) + { + $chid = $key; + $value = trim($value); + $amount = round(ereg_replace(",",".",$value), 2); + if (is_numeric($amount)) + { + $total += $amount; + } + } + + // Insertion dans llx_bank + $label = "Règlement charge"; + $acc = new Account($db, $_POST["accountid"]); + $bank_line_id = $acc->addline($paiement->datepaye, $paiement->paiementtype, $label, $total, $paiement->num_paiement, '', $user); + + // Mise a jour fk_bank dans llx_paiementcharge. On connait ainsi le paiement qui a généré l'écriture bancaire + if ($bank_line_id) { + $paiement->update_fk_bank($bank_line_id); + } + + // Mise a jour liens (pour chaque charge concernée par le paiement) + //foreach ($paiement->amounts as $key => $value) + //{ + // $chid = $key; + // $fac = new Facture($db); + // $fac->fetch($chid); + // $fac->fetch_client(); + // $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/sociales/charges.php?id='.$chid; + Header("Location: $loc"); + } + else + { + // Il y a eu erreur + $fiche_erreur_message = "Echec de la création du paiement: ".$db->error(); + } + } + 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 ($fiche_erreur_message) +{ + print "