From 422dafeeb3f413d3bea76665488c95c5d5a07bb3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 27 Feb 2009 18:35:17 +0000 Subject: [PATCH] New: Support of deposit invoices Removed deprecated table --- htdocs/compta/dons/fiche.php | 42 +++++---------- htdocs/compta/dons/liste.php | 4 +- htdocs/compta/dons/stats.php | 2 +- htdocs/compta/facture.php | 7 ++- htdocs/don.class.php | 61 ++++++++++++---------- htdocs/html.form.class.php | 7 +-- htdocs/langs/en_US/bills.lang | 4 +- htdocs/langs/en_US/companies.lang | 2 +- htdocs/langs/fr_FR/bills.lang | 4 +- htdocs/langs/fr_FR/companies.lang | 2 +- htdocs/public/donations/donateurs_code.php | 4 +- mysql/migration/2.5.0-2.6.0.sql | 1 + mysql/tables/llx_don_projet.sql | 29 ---------- 13 files changed, 67 insertions(+), 102 deletions(-) delete mode 100644 mysql/tables/llx_don_projet.sql diff --git a/htdocs/compta/dons/fiche.php b/htdocs/compta/dons/fiche.php index efa2f8e6291..b0f0fb45eef 100644 --- a/htdocs/compta/dons/fiche.php +++ b/htdocs/compta/dons/fiche.php @@ -59,7 +59,7 @@ if ($_POST["action"] == 'update') $don->cp = $_POST["cp"]; $don->ville = $_POST["ville"]; $don->email = $_POST["email"]; - $don->date = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); + $don->date = dol_mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); $don->note = $_POST["note"]; $don->pays = $_POST["pays"]; $don->public = $_POST["public"]; @@ -75,7 +75,7 @@ if ($_POST["action"] == 'update') } else { - $mesg="Montant non défini"; + $mesg=$langs->trans("ErrorFieldRequired",$langs->trans("Amount")); } } @@ -93,7 +93,7 @@ if ($_POST["action"] == 'add') $don->cp = $_POST["cp"]; $don->ville = $_POST["ville"]; $don->email = $_POST["email"]; - $don->date = mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); + $don->date = dol_mktime(12, 0 , 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); $don->note = $_POST["note"]; $don->pays = $_POST["pays"]; $don->public = $_POST["public"]; @@ -157,7 +157,7 @@ if ($_GET["action"] == 'set_encaisse') } /* - * Générer ou regénérer le document + * Build doc */ if ($_REQUEST['action'] == 'builddoc') { @@ -201,7 +201,7 @@ $formfile = new FormFile($db); /* ************************************************************************** */ /* */ -/* Création d'une fiche don */ +/* Creation */ /* */ /* ************************************************************************** */ @@ -209,6 +209,8 @@ if ($_GET["action"] == 'create') { print_fiche_titre($langs->trans("AddDonation")); + if ($mesg) print '
'.$mesg.'
'; + print '
'; print ''; @@ -301,26 +303,10 @@ if ($_GET["rowid"] && $_GET["action"] == 'edit') // Project if ($conf->projet->enabled) { - print "\n"; + $langs->load('projects'); + print ''; } print "
".$langs->trans("Project")."
"; - print "
'.$langs->trans('Project').''; + select_projects($soc->id, isset($_POST["projetid"])?$_POST["projetid"]:$don->projetid, 'projetid'); + print '
".$langs->trans("PublicDonation").""; @@ -424,7 +410,7 @@ if ($_GET["rowid"] && $_GET["action"] != 'edit') print ""; - // \TODO Gérer action émettre paiement + // \TODO G�rer action �mettre paiement $resteapayer = 0; @@ -440,7 +426,7 @@ if ($_GET["rowid"] && $_GET["action"] != 'edit') print ''.$langs->trans("ValidPromess").''; } - // \TODO Gérer action émettre paiement + // \TODO G�rer action �mettre paiement if ($don->statut == 1 && $resteapayer > 0) { print "".$langs->trans("DoPayment").""; @@ -466,7 +452,7 @@ if ($_GET["rowid"] && $_GET["action"] != 'edit') print ''; - // Ligne info remises tiers + // Discount print ''; print ''; diff --git a/htdocs/don.class.php b/htdocs/don.class.php index 5a8bd4a76e5..a98d0a6c399 100644 --- a/htdocs/don.class.php +++ b/htdocs/don.class.php @@ -60,7 +60,7 @@ class Don extends CommonObject /** * \brief Constructeur - * \param DB Handler d'accès base + * \param DB Handler d'acc�s base */ function Don($DB) { @@ -80,8 +80,8 @@ class Don extends CommonObject /** - * \brief Retourne le libellé du statut d'un don (brouillon, validée, abandonnée, payée) - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long + * \brief Retourne le libell� du statut d'un don (brouillon, valid�e, abandonn�e, pay�e) + * \param mode 0=libell� long, 1=libell� court, 2=Picto + Libell� court, 3=Picto, 4=Picto + Libell� long * \return string Libelle */ function getLibStatut($mode=0) @@ -90,10 +90,10 @@ class Don extends CommonObject } /** - * \brief Renvoi le libellé d'un statut donné + * \brief Renvoi le libell� d'un statut donn� * \param statut Id statut - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto - * \return string Libellé du statut + * \param mode 0=libell� long, 1=libell� court, 2=Picto + Libell� court, 3=Picto, 4=Picto + Libell� long, 5=Libell� court + Picto + * \return string Libell� du statut */ function LibStatut($statut,$mode=0) { @@ -137,14 +137,14 @@ class Don extends CommonObject /** - * \brief Initialise le don avec valeurs fictives aléatoire - * Sert à générer une recu de don pour l'aperu des modèles ou demo + * \brief Initialise le don avec valeurs fictives al�atoire + * Sert � g�n�rer une recu de don pour l'aperu des mod�les ou demo */ function initAsSpecimen() { global $user,$langs; - // Charge tableau des id de société socids + // Charge tableau des id de soci�t� socids $socids = array(); $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10"; $resql = $this->db->query($sql); @@ -161,7 +161,7 @@ class Don extends CommonObject } } - // Initialise paramètres + // Initialise param�tres $this->id=0; $this->ref = 'SPECIMEN'; $this->specimen=1; @@ -206,7 +206,7 @@ class Don extends CommonObject { if ((strlen(trim($this->nom)) + strlen(trim($this->prenom))) == 0) { - $error_string[$err] = "Vous devez saisir vos nom et prénom ou le nom de votre société."; + $error_string[$err] = "Vous devez saisir vos nom et pr�nom ou le nom de votre soci�t�."; $err++; } } @@ -242,7 +242,7 @@ class Don extends CommonObject { if (!isset($map[substr($this->amount, $i, 1)] )) { - $error_string[$err] = "Le montant du don contient un/des caractère(s) invalide(s)"; + $error_string[$err] = "Le montant du don contient un/des caract�re(s) invalide(s)"; $err++; $amount_invalid = 1; break; @@ -279,9 +279,9 @@ class Don extends CommonObject } /** - * \brief Création du don en base - * \param user Objet utilisateur qui crée le don - * \return int Id don crée si ok, <0 si ko + * \brief Cr�ation du don en base + * \param user Objet utilisateur qui cr�e le don + * \return int Id don cr�e si ok, <0 si ko */ function create($user) { @@ -308,8 +308,8 @@ class Don extends CommonObject } /** - * \brief Mise à jour du don - * \param user Objet utilisateur qui met à jour le don + * \brief Mise � jour du don + * \param user Objet utilisateur qui met � jour le don * \return int >0 si ok, <0 si ko */ function update($user) @@ -328,7 +328,7 @@ class Don extends CommonObject $sql .= ",ville='".$this->ville."'"; $sql .= ",pays='".$this->pays."'"; $sql .= ",public=".$this->public; - if ($this->projetid) { $sql .= ",fk_don_projet=".$this->projetid; } + $sql .= ",fk_don_projet=".($this->projetid>0?$this->projetid:'null'); $sql .= ",note='".$this->note."'"; $sql .= ",datedon='".$this->date."'"; $sql .= ",email='".$this->email."'"; @@ -336,6 +336,7 @@ class Don extends CommonObject $sql .= " WHERE rowid = $this->id"; + dol_syslog("Don::update sql=".$sql); $result = $this->db->query($sql); if ($result) { @@ -350,7 +351,7 @@ class Don extends CommonObject /* * \brief Suppression du don de la base - * \param rowid id du don à supprimer + * \param rowid id du don � supprimer */ function delete($rowid) { @@ -376,20 +377,22 @@ class Don extends CommonObject } /* - * \brief Charge l'objet don en mémoire depuis la base de donnée - * \param rowid Id du don à charger + * \brief Charge l'objet don en m�moire depuis la base de donn�e + * \param rowid Id du don � charger * \return int <0 si ko, >0 si ok */ function fetch($rowid) { $sql = "SELECT d.rowid, ".$this->db->pdate("d.datec")." as datec,"; $sql.= " ".$this->db->pdate("d.datedon")." as datedon,"; - $sql.= " d.prenom, d.nom, d.societe, d.amount, p.libelle as projet, d.fk_statut, d.adresse, d.cp, d.ville, d.pays, d.public, d.amount, d.fk_paiement, d.note, cp.libelle, d.email, d.fk_don_projet"; + $sql.= " d.prenom, d.nom, d.societe, d.amount, d.fk_statut, d.adresse, d.cp, d.ville, d.pays, d.public, d.amount, d.fk_paiement, d.note, cp.libelle, d.email, d.fk_don_projet,"; + $sql.= " p.title as projet"; $sql.= " FROM ".MAIN_DB_PREFIX."c_paiement as cp, ".MAIN_DB_PREFIX."don as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."don_projet as p"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p"; $sql.= " ON p.rowid = d.fk_don_projet"; $sql.= " WHERE cp.id = d.fk_paiement AND d.rowid = ".$rowid; + dol_syslog("Don::fetch sql=".$sql); if ( $this->db->query( $sql) ) { if ($this->db->num_rows()) @@ -430,7 +433,7 @@ class Don extends CommonObject /* * \brief Valide une promesse de don - * \param rowid id du don à modifier + * \param rowid id du don � modifier * \param userid utilisateur qui valide la promesse * */ @@ -458,8 +461,8 @@ class Don extends CommonObject } /* - * \brief Classe le don comme payé, le don a été recu - * \param rowid id du don à modifier + * \brief Classe le don comme pay�, le don a �t� recu + * \param rowid id du don � modifier * \param modepaiementd mode de paiement */ function set_paye($rowid, $modepaiement='') @@ -492,8 +495,8 @@ class Don extends CommonObject /* - * \brief Classe le don comme encaissé - * \param rowid id du don à modifier + * \brief Classe le don comme encaiss� + * \param rowid id du don � modifier * */ function set_encaisse($rowid) @@ -521,7 +524,7 @@ class Don extends CommonObject /** * \brief Somme des dons - * \param param 1=promesses de dons validées , 2=xxx, 3=encaissés + * \param param 1=promesses de dons valid�es , 2=xxx, 3=encaiss�s */ function sum_donations($param) { diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 2ec5083b139..a833747d61e 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -524,11 +524,8 @@ class Form { $obj = $this->db->fetch_object($resql); $desc=dol_trunc($obj->description,40); - if ($desc=='(CREDIT_NOTE)') - { - $desc=$langs->trans("CreditNote"); - //$desc.=$obj->fk_facture_source; - } + if ($desc=='(CREDIT_NOTE)') $desc=$langs->trans("CreditNote"); + if ($desc=='(DEPOSIT)') $desc=$langs->trans("Deposit"); $selectstring=''; if ($selected > 0 && $selected == $obj->rowid) $selectstring=' selected="true"'; diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 70c4c494a7e..a826f43b88b 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -228,6 +228,8 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes +Deposit=Deposit +Deposits=Deposits DiscountFromCreditNote=Discount from credit note %s DiscountFromDeposit=Payments from deposit invoice %s NewGlobalDiscount=New discount @@ -316,7 +318,7 @@ LawApplicationPart3=the seller until the complete cashing of LawApplicationPart4=their price. LimitedLiabilityCompanyCapital=SARL with Capital of UseDiscount=Use discount -UseCreditNoteInInvoicePayment=Reduce payment with this credit note +UseCreditNoteInInvoicePayment=Reduce payment with this credit MenuChequeDeposits=Cheques deposits MenuCheques=Cheques MenuChequesReceipts=Cheques receipts diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 02cc132a53d..b962798dc35 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -129,7 +129,7 @@ CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default CompanyHasAbsoluteDiscount=This customer still has discount credits for %s %s -CompanyHasCreditNote=This customer still has credit notes for %s %s +CompanyHasCreditNote=This customer still has credit notes or previous deposits for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) CustomerAbsoluteDiscountMy=Absolute discounts (granted by yourself) diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 24fcebd9474..f5ad393f4fa 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -227,6 +227,8 @@ RelativeDiscount=Remise relative GlobalDiscount=Remise fixe CreditNote=Avoir CreditNotes=Avoirs +Deposit=Accompte +Deposits=Accomptes DiscountFromCreditNote=Remise issue de l'avoir %s DiscountFromDeposit=Paiements issue de l'accompte %s NewGlobalDiscount=Nouvelle remise fixe @@ -317,7 +319,7 @@ LawApplicationPart3=vendeur jusqu'à complet encaissement de LawApplicationPart4=leurs prix. LimitedLiabilityCompanyCapital=SARL au Capital de UseDiscount=Appliquer remise -UseCreditNoteInInvoicePayment=Réduire paiement avec cet avoir +UseCreditNoteInInvoicePayment=Réduire paiement avec ce credit MenuChequeDeposits=Remises de chèques MenuCheques=Gestion chèques MenuChequesReceipts=Bordereaux diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 44d49ed23a1..336c04f2863 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -130,7 +130,7 @@ CustomerAbsoluteDiscountShort=Remise fixe CompanyHasRelativeDiscount=Ce client a une remise par défaut de %s%% CompanyHasNoRelativeDiscount=Ce client n'a pas de remises relatives par défaut CompanyHasAbsoluteDiscount=Ce client a %s %s de remises fixes disponibles -CompanyHasCreditNote=Ce client a %s %s d'avoirs disponibles +CompanyHasCreditNote=Ce client a %s %s d'avoirs ou accomptes disponibles CompanyHasNoAbsoluteDiscount=Ce client n'a pas ou plus de remises fixes disponibles CustomerAbsoluteDiscountAllUsers=Remises fixes en cours (accordées par tout utilisateur) CustomerAbsoluteDiscountMy=Remises fixes en cours (accordées personnellement) diff --git a/htdocs/public/donations/donateurs_code.php b/htdocs/public/donations/donateurs_code.php index eae1ddf719c..7b161ed6ff2 100644 --- a/htdocs/public/donations/donateurs_code.php +++ b/htdocs/public/donations/donateurs_code.php @@ -29,7 +29,7 @@ $langs->load("donations"); $sql = "SELECT ".$db->pdate("d.datedon")." as datedon, d.nom, d.prenom, d.amount, d.public, d.societe"; $sql .= " FROM ".MAIN_DB_PREFIX."don as d"; -$sql .= " WHERE d.fk_don_projet = 1 AND d.fk_statut in (2, 3) ORDER BY d.datedon DESC"; +$sql .= " WHERE d.fk_statut in (2, 3) ORDER BY d.datedon DESC"; if ( $db->query( $sql) ) { @@ -43,7 +43,7 @@ if ( $db->query( $sql) ) print ''; print ""; print ""; - print ""; + print ""; print "\n"; $var=True; diff --git a/mysql/migration/2.5.0-2.6.0.sql b/mysql/migration/2.5.0-2.6.0.sql index 23a30259de9..d9f56813c3b 100644 --- a/mysql/migration/2.5.0-2.6.0.sql +++ b/mysql/migration/2.5.0-2.6.0.sql @@ -81,6 +81,7 @@ alter table llx_societe add price_level tinyint(4) NULL; delete from llx_document_model where nom = 'huitre' and type = 'invoice'; +drop table llx_don_projet; -- V4.1 delete from llx_projet_task where fk_projet not in (select rowid from llx_projet); -- V4.1 ALTER TABLE llx_projet_task ADD CONSTRAINT fk_projet_task_fk_projet FOREIGN KEY (fk_projet) REFERENCES llx_projet (rowid); diff --git a/mysql/tables/llx_don_projet.sql b/mysql/tables/llx_don_projet.sql deleted file mode 100644 index 3fe58646f22..00000000000 --- a/mysql/tables/llx_don_projet.sql +++ /dev/null @@ -1,29 +0,0 @@ --- =================================================================== --- Copyright (C) 2001-2002 Rodolphe Quiedeville --- --- 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$ --- =================================================================== - -create table llx_don_projet -( - rowid integer AUTO_INCREMENT PRIMARY KEY, - tms timestamp, - datec datetime, - libelle varchar(255), - fk_user_author integer NOT NULL, - note text -)type=innodb;
'; /* - * Documents générés + * Documents g�n�r�s */ $filename=sanitizeFileName($don->id); $filedir=$conf->don->dir_output . '/' . get_exdir($filename,2); diff --git a/htdocs/compta/dons/liste.php b/htdocs/compta/dons/liste.php index abc3fd1c052..4961d3db3c4 100644 --- a/htdocs/compta/dons/liste.php +++ b/htdocs/compta/dons/liste.php @@ -58,8 +58,8 @@ $donstatic=new Don($db); // Genere requete de liste des dons $sql = "SELECT d.rowid, ".$db->pdate("d.datedon")." as datedon, d.prenom, d.nom, d.societe,"; $sql.= " d.amount, d.fk_statut as statut, "; -$sql.= " p.libelle as projet"; -$sql.= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."don_projet AS p"; +$sql.= " p.title as projet"; +$sql.= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."projet AS p"; $sql.= " ON p.rowid = d.fk_don_projet WHERE 1 = 1"; if ($statut >= 0) { diff --git a/htdocs/compta/dons/stats.php b/htdocs/compta/dons/stats.php index 18330a813b1..272ecba8379 100644 --- a/htdocs/compta/dons/stats.php +++ b/htdocs/compta/dons/stats.php @@ -40,7 +40,7 @@ print_fiche_titre($langs->trans("Statistics")); $sql = "SELECT d.amount"; -$sql .= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."don_projet as p"; +$sql .= " FROM ".MAIN_DB_PREFIX."don as d LEFT JOIN ".MAIN_DB_PREFIX."projet as p"; $sql .= " ON p.rowid = d.fk_don_projet"; $result = $db->query($sql); diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 3c46ce5ee62..4026bf06ff5 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -66,6 +66,7 @@ $NBLINES=4; $usehm=$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE; + /******************************************************************************/ /* Actions */ /******************************************************************************/ @@ -2182,7 +2183,7 @@ else } print '
'.$langs->trans('Discounts').''; if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); else print $langs->trans("CompanyHasNoRelativeDiscount"); @@ -2317,7 +2318,9 @@ else { $obj = $db->fetch_object($resql); $invoice->fetch($obj->fk_facture_source); - print '
'.$langs->trans("CreditNote").' '; + print '
'; + if ($invoice->type == 2) print $langs->trans("CreditNote").' '; + if ($invoice->type == 3) print $langs->trans("Deposit").' '; print $invoice->getNomUrl(0); print ' :'.price($obj->amount_ttc).'
".$langs->trans("Name")." / ".$langs->trans("Company")."DateMontant".$langs->trans("Amount")."