From e6d9d18f252613b5fc92bf9e72a6a0347c7644de Mon Sep 17 00:00:00 2001 From: aspangaro Date: Wed, 18 Mar 2015 06:29:10 +0100 Subject: [PATCH] Update work on donation --- htdocs/compta/dons/card.php | 36 ++++++------------- htdocs/compta/dons/class/don.class.php | 12 +++---- .../dons/class/paymentdonation.class.php | 21 +++++------ htdocs/compta/dons/payment.php | 14 ++++---- .../install/mysql/migration/3.7.0-3.8.0.sql | 1 + htdocs/install/mysql/tables/llx_don.sql | 2 +- 6 files changed, 37 insertions(+), 49 deletions(-) diff --git a/htdocs/compta/dons/card.php b/htdocs/compta/dons/card.php index 0c4c92cecd7..d20af7f8ba6 100644 --- a/htdocs/compta/dons/card.php +++ b/htdocs/compta/dons/card.php @@ -32,7 +32,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/dons/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; -if (! empty($conf->projet->enabled)) { +if (! empty($conf->projet->enabled)) +{ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; } require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; @@ -99,7 +100,7 @@ if ($action == 'update') $object->email = GETPOST("email"); $object->date = $donation_date; $object->public = GETPOST("public"); - $object->fk_project = GETPOST("projectid"); + $object->fk_project = GETPOST("fk_project"); $object->note_private= GETPOST("note_private"); $object->note_public = GETPOST("note_public"); @@ -334,10 +335,9 @@ if ($action == 'create') $formproject=new FormProjets($db); - // Si module projet actif print "".$langs->trans("Project").""; - $formproject->select_projects('',GETPOST("projectid"),"projectid"); - print "\n"; + $formproject->select_projects(-1, GETPOST("fk_project"),'fk_project', 0, 1, 0, 1); + print "\n"; } // Other attributes @@ -431,7 +431,7 @@ if (! empty($id) && $action == 'edit') $langs->load('projects'); print ''.$langs->trans('Project').''; - $formproject->select_projects(-1, (isset($_POST["projectid"])?$_POST["projectid"]:$don->fk_project), 'projectid'); + $formproject->select_projects(-1, $object->fk_project,'fk_project', 0, 1, 0, 1); print ''; } @@ -523,7 +523,10 @@ if (! empty($id) && $action != 'edit') // Project if (! empty($conf->projet->enabled)) { - print "".''.$langs->trans("Project").''.$object->projet.''; + print ''; + print ''.$langs->trans("Project").''; + print ''.$object->projet.''; + print ''; } // Other attributes @@ -567,22 +570,6 @@ if (! empty($id) && $action != 'edit') } } - /* - // Classify paid - if ($object->statut == 1 && $object->paye == 0 && $user->rights->facture->paiement && (($object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT && $resteapayer <= 0) || ($object->type == Facture::TYPE_CREDIT_NOTE && $resteapayer >= 0)) - || ($object->type == Facture::TYPE_DEPOSIT && $object->paye == 0 && $resteapayer == 0 && $user->rights->facture->paiement && empty($discount->id)) - ) - { - print '
'.$langs->trans('ClassifyPaid').'
'; - } - - // Emit payment - if ($object->statut == 1 && $object->paid == 0 && ((price2num($object->amount) > 0 && round($remaintopay) > 0)) && $user->rights->don->creer) - { - print '
'.$langs->trans("DoPayment").'
'; - } - */ - // Classify 'paid' if ($object->statut == 1 && round($remaintopay) == 0 && $object->paid == 0 && $user->rights->don->creer) { @@ -625,6 +612,5 @@ if (! empty($id) && $action != 'edit') } - llxFooter(); -$db->close(); +$db->close(); \ No newline at end of file diff --git a/htdocs/compta/dons/class/don.class.php b/htdocs/compta/dons/class/don.class.php index b677a3afad2..273d54a6eef 100644 --- a/htdocs/compta/dons/class/don.class.php +++ b/htdocs/compta/dons/class/don.class.php @@ -332,7 +332,7 @@ class Don extends CommonObject // $sql.= ", country"; -- Deprecated $sql.= ", fk_country"; $sql.= ", public"; - $sql.= ", fk_don_projet"; + $sql.= ", fk_project"; $sql.= ", note_private"; $sql.= ", note_public"; $sql.= ", fk_user_author"; @@ -415,7 +415,7 @@ class Don extends CommonObject $sql .= ",town='".$this->db->escape($this->town)."'"; $sql .= ",fk_country = ".$this->country_id; $sql .= ",public=".$this->public; - $sql .= ",fk_don_projet=".($this->fk_project>0?$this->fk_project:'null'); + $sql .= ",fk_project=".($this->fk_project>0?$this->fk_project:'null'); $sql .= ",note_private=".(!empty($this->note_private)?("'".$this->db->escape($this->note_private)."'"):"NULL"); $sql .= ",note_public=".(!empty($this->note_public)?("'".$this->db->escape($this->note_public)."'"):"NULL"); $sql .= ",datedon='".$this->db->idate($this->date)."'"; @@ -498,11 +498,11 @@ class Don extends CommonObject $sql = "SELECT d.rowid, d.datec, d.tms as datem, d.datedon,"; $sql.= " d.firstname, d.lastname, d.societe, d.amount, d.fk_statut, d.address, d.zip, d.town, "; $sql.= " d.fk_country, d.country as country_olddata, d.public, d.amount, d.fk_payment, d.paid, d.note_private, d.note_public, cp.libelle, d.email, d.phone, "; - $sql.= " d.phone_mobile, d.fk_don_projet,"; + $sql.= " d.phone_mobile, d.fk_project,"; $sql.= " p.title as project_label,"; $sql.= " c.code as country_code, c.label as country"; $sql.= " FROM ".MAIN_DB_PREFIX."don as d"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_don_projet"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_project"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as cp ON cp.id = d.fk_payment"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.fk_country = c.rowid"; $sql.= " WHERE d.rowid = ".$rowid." AND d.entity = ".$conf->entity; @@ -535,8 +535,8 @@ class Don extends CommonObject $this->email = $obj->email; $this->phone = $obj->phone; $this->phone_mobile = $obj->phone_mobile; - $this->projet = $obj->project_label; - $this->fk_project = $obj->fk_don_projet; + $this->project = $obj->project_label; + $this->fk_project = $obj->fk_project; $this->public = $obj->public; $this->modepaymentid = $obj->fk_payment; $this->modepayment = $obj->libelle; diff --git a/htdocs/compta/dons/class/paymentdonation.class.php b/htdocs/compta/dons/class/paymentdonation.class.php index 65d72fbfb52..907ea46bf72 100644 --- a/htdocs/compta/dons/class/paymentdonation.class.php +++ b/htdocs/compta/dons/class/paymentdonation.class.php @@ -33,6 +33,7 @@ class PaymentDonation extends CommonObject public $table_element='payment_donation'; //!< Name of table without prefix where object is stored var $id; + var $rowid; var $ref; var $fk_donation; @@ -74,7 +75,7 @@ class PaymentDonation extends CommonObject $now=dol_now(); // Validate parameters - if (! $this->datepaye) + if (! $this->datepaid) { $this->error='ErrorBadValueForParameterCreatePaymentDonation'; return -1; @@ -110,7 +111,7 @@ class PaymentDonation extends CommonObject $sql = "INSERT INTO ".MAIN_DB_PREFIX."payment_donation (fk_donation, datec, datep, amount,"; $sql.= " fk_typepayment, num_payment, note, fk_user_creat, fk_bank)"; $sql.= " VALUES ($this->chid, '".$this->db->idate($now)."',"; - $sql.= " '".$this->db->idate($this->datepaye)."',"; + $sql.= " '".$this->db->idate($this->datepaid)."',"; $sql.= " ".$totalamount.","; $sql.= " ".$this->paymenttype.", '".$this->db->escape($this->num_payment)."', '".$this->db->escape($this->note)."', ".$user->id.","; $sql.= " 0)"; @@ -485,7 +486,7 @@ class PaymentDonation extends CommonObject // Insert payment into llx_bank $bank_line_id = $acc->addline( - $this->datepaye, + $this->datepaid, $this->paymenttype, // Payment mode id or code ("CHQ or VIR for example") $label, $total, @@ -496,7 +497,7 @@ class PaymentDonation extends CommonObject $emetteur_banque ); - // Mise a jour fk_bank dans llx_paiement. + // Update fk_bank in llx_paiement. // On connait ainsi le paiement qui a genere l'ecriture bancaire if ($bank_line_id > 0) { @@ -509,7 +510,7 @@ class PaymentDonation extends CommonObject // Add link 'payment', 'payment_supplier', 'payment_sc' in bank_url between payment and bank transaction $url=''; - if ($mode == 'payment_sc') $url=DOL_URL_ROOT.'/compta/payment_sc/card.php?id='; + if ($mode == 'payment_donation') $url=DOL_URL_ROOT.'/compta/dons/card.php?rowid='; if ($url) { $result=$acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode); @@ -520,15 +521,15 @@ class PaymentDonation extends CommonObject } } - // Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment) + // Add link 'thirdparty' in bank_url between donation and bank transaction (for each donation concerned by payment) $linkaddedforthirdparty=array(); foreach ($this->amounts as $key => $value) { - if ($mode == 'payment_sc') + if ($mode == 'payment_donation') { - $socialcontrib = new ChargeSociales($this->db); - $socialcontrib->fetch($key); - $result=$acc->add_url_line($bank_line_id, $socialcontrib->id, DOL_URL_ROOT.'/compta/charges.php?id=', $socialcontrib->type_libelle.(($socialcontrib->lib && $socialcontrib->lib!=$socialcontrib->type_libelle)?' ('.$socialcontrib->lib.')':''),'sc'); + $don = new Don($this->db); + $don->fetch($key); + $result=$acc->add_url_line($bank_line_id, $don->rowid, DOL_URL_ROOT.'/compta/card.php?rowid=', $don->type_libelle.(($don->lib && $don->lib!=$don->type_libelle)?' ('.$don->lib.')':''),'sc'); if ($result <= 0) dol_print_error($this->db); } } diff --git a/htdocs/compta/dons/payment.php b/htdocs/compta/dons/payment.php index 12b0296ca5a..948cd221b0c 100644 --- a/htdocs/compta/dons/payment.php +++ b/htdocs/compta/dons/payment.php @@ -55,14 +55,14 @@ if ($action == 'add_payment') exit; } - $datepaye = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); + $datepaid = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); if (! $_POST["paymenttype"] > 0) { $mesg = $langs->trans("ErrorFieldRequired",$langs->transnoentities("PaymentMode")); $error++; } - if ($datepaye == '') + if ($datepaid == '') { $mesg = $langs->trans("ErrorFieldRequired",$langs->transnoentities("Date")); $error++; @@ -100,7 +100,7 @@ if ($action == 'add_payment') // Create a line of payments $payment = new PaymentDonation($db); $payment->chid = $chid; - $payment->datepaye = $datepaye; + $payment->datepaid = $datepaid; $payment->amounts = $amounts; // Tableau de montant $payment->paymenttype = $_POST["paymenttype"]; $payment->num_payment = $_POST["num_payment"]; @@ -202,8 +202,8 @@ if (GETPOST("action") == 'create') print ''; print ''.$langs->trans("Date").''; - $datepaye = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); - $datepayment=empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaye):0; + $datepaid = dol_mktime(12, 0, 0, $_POST["remonth"], $_POST["reday"], $_POST["reyear"]); + $datepayment=empty($conf->global->MAIN_AUTOFILL_DATE)?(empty($_POST["remonth"])?-1:$datepaid):0; $form->select_date($datepayment,'','','','',"add_payment",1,1); print ""; print ''; @@ -214,9 +214,9 @@ if (GETPOST("action") == 'create') print ''; print ''; - print ''.$langs->trans('AccountToDebit').''; + print ''.$langs->trans('AccountToCredit').''; print ''; - $form->select_comptes(isset($_POST["accountid"])?$_POST["accountid"]:$don->accountid, "accountid", 0, '',1); // Show opend bank account list + $form->select_comptes(isset($_POST["accountid"])?$_POST["accountid"]:$don->accountid, "accountid", 0, '',1); // Show open bank account list print ''; // Number diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index c92c78014cb..b07974b8889 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -375,6 +375,7 @@ ALTER TABLE llx_societe_extrafields ADD UNIQUE INDEX uk_societe_extrafields (fk_ ALTER TABLE llx_don ADD COLUMN fk_country integer NOT NULL after country; ALTER TABLE llx_don CHANGE COLUMN fk_paiement fk_payment integer; ALTER TABLE llx_don ADD COLUMN paid smallint default 0 NOT NULL after fk_payment; +ALTER TABLE llx_don CHANGE COLUMN fk_don_projet fk_project integer NULL; create table llx_payment_donation ( diff --git a/htdocs/install/mysql/tables/llx_don.sql b/htdocs/install/mysql/tables/llx_don.sql index d4e03c55d0c..a3882fc6f99 100644 --- a/htdocs/install/mysql/tables/llx_don.sql +++ b/htdocs/install/mysql/tables/llx_don.sql @@ -44,7 +44,7 @@ create table llx_don phone varchar(24), phone_mobile varchar(24), public smallint DEFAULT 1 NOT NULL, -- le don est-il public (0,1) - fk_don_projet integer NULL, -- projet auquel est fait le don + fk_project integer NULL, -- projet auquel est fait le don fk_user_author integer NOT NULL, fk_user_valid integer NULL, note_private text,