Changeset 111835 in spip-zone


Ignore:
Timestamp:
Oct 3, 2018, 3:14:53 PM (10 months ago)
Author:
abelass@…
Message:

v 1.4.2

  • possibilité de modifier le montant payé depuis l'espace privé
  • afficher les montants payés sur le recapitulatif
Location:
_plugins_/reservations_bank/branches/v1
Files:
8 edited
3 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/reservations_bank/branches/v1

  • _plugins_/reservations_bank/branches/v1/lang/reservation_bank_en.php

    r111160 r111835  
    1010$GLOBALS[$GLOBALS['idx_lang']] = array(
    1111
    12         // C
    13         'cfg_titre_espace_prive' => 'Private space',
    14 
    1512        // L
    16         'label_cacher_paiement_public' => 'Do not display the payment form on the public site',
    17         'label_choisir_mode_paiement' => 'Choose your payment type :',
    18         'label_definir_presta_defaut' => 'Define a unique payment type for the payment selection.',
     13        'label_cacher_paiement_public' => 'do not display the paiment form on the public site', # MODIF
    1914        'label_fieldset_montant_detail' => 'Specify the amount (in @devise@) for each booking item',
    2015        'label_fieldset_specifier' => 'Specify',
     
    2722        'message_erreur_montant_credit' => 'The amount is higher than your current credit of @credit@ !',
    2823        'message_erreur_montant_reservations_detail' => 'The amount should not be higher than @montant_ouvert@ (open amount)',
    29         'message_paiement_vendeur' => 'Payment mode: "@mode@",  see <a href="@url@">details</a>',
    3024        'montant_paye' => 'Paid :',
    3125
     
    3630        // R
    3731        'reservation_bank_titre' => 'Booking Bank',
    38         'reservation_paiement_reference' => 'Payment reference: @reference@',
    3932
    4033        // T
     
    4336        'titre_page_configurer_reservation_bank' => 'Settings Booking Bank',
    4437        'titre_paiement_reservation' => 'Paiment of the Booking',
    45         'titre_paiement_vendeur' => 'Payment:',
    4638        'titre_payer_reservation' => 'Pay the booking'
    4739);
  • _plugins_/reservations_bank/branches/v1/lang/reservation_bank_fr.php

    r111160 r111835  
    2626        'message_erreur_montant_reservations_detail' => 'Le montant ne doit pas être supérieure à @montant_ouvert@ (montant encore à payer)',
    2727        'message_paiement_vendeur' => 'Mode de paiement : "@mode@",  voir <a href="@url@">détail</a>',
     28        'montant_du' => 'Total à payer :',
    2829        'montant_paye' => 'Payé :',
    2930
  • _plugins_/reservations_bank/branches/v1/paquet.xml

    r111160 r111835  
    22        prefix="reservation_bank"
    33        categorie="outil"
    4         version="1.4.1"
     4        version="1.4.2"
    55        etat="test"
    66        compatibilite="[3.0.20;3.2.*]"
  • _plugins_/reservations_bank/branches/v1/reservation_bank_fonctions.php

    r110734 r111835  
    99 * @package    SPIP\Reservation_bank\Fonctions
    1010 */
    11 if (! defined ( '_ECRIRE_INC_VERSION' ))
     11if (! defined('_ECRIRE_INC_VERSION'))
    1212        return;
    1313
     
    2121function rb_inserer_transaction($id_reservation) {
    2222
    23         // Voir si on peut récupérer une transaction, sino on crée une.
    24         if (! $id_transaction = sql_getfetsel ( 'id_transaction', 'spip_transactions', 'id_reservation=' . $id_reservation . ' AND statut LIKE ("commande")' )) {
    25                 $inserer_transaction = charger_fonction ( "inserer_transaction", "bank" );
    26                 $donnees = unserialize ( recuperer_fond ( 'inclure/paiement_reservation', array(
    27                         'id_reservation' => $id_reservation,
    28                         'cacher_paiement_public' => TRUE
    29                 ) ) );
    30                 $id_transaction = $inserer_transaction ( $donnees ['montant'], $donnees ['options'] );
     23        // Voir si on peut récupérer une transaction, sinon on crée une.
     24        if (! $id_transaction = sql_getfetsel('id_transaction', 'spip_transactions',
     25                        'id_reservation=' . $id_reservation . ' AND statut LIKE ("commande")',
     26                        '', 'date_transaction DESC')) {
     27                $inserer_transaction = charger_fonction("inserer_transaction", "bank");
     28                $donnees = unserialize(
     29                                recuperer_fond('inclure/paiement_reservation',
     30                                                array(
     31                                                        'id_reservation' => $id_reservation,
     32                                                        'cacher_paiement_public' => TRUE
     33                                                )));
     34                $id_transaction = $inserer_transaction($donnees['montant'],
     35                                $donnees['options']);
    3136        }
    3237
     
    3540
    3641/**
    37  * Retourne les prestataires simple (pas besoin d'une application externe à spip) pour une réservation.
     42 * Retourne les prestataires simple (pas besoin d'une application externe à
     43 * spip) pour une réservation.
    3844 *
    3945 * @param integer $id_reservation
     
    4450function rb_prestataires_simples_actives_reservation($id_reservation) {
    4551        $fonction_prix = charger_fonction('prix', 'inc/');
    46         $sql = sql_select('id_reservations_detail', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
     52        $sql = sql_select('id_reservations_detail', 'spip_reservations_details',
     53                        'id_reservation=' . $id_reservation);
    4754        $prix_details = array();
    48         while($data = sql_fetch($sql)) {
    49                 $prix_details[] = $fonction_prix('reservations_detail', $data['id_reservations_detail']);
     55        while ($data = sql_fetch($sql)) {
     56                $prix_details[] = $fonction_prix('reservations_detail',
     57                                $data['id_reservations_detail']);
    5058        }
    5159        $prix = array_sum($prix_details);
    5260
    53         // Si montant supérieur à 0, on prend les types de prestas nécessitant pas de callback du fournisseur.
     61        // Si montant supérieur à 0, on prend les types de prestas nécessitant pas
     62        // de callback du fournisseur.
    5463        if ($prix > 0) {
    5564                $prestataires = rb_prestataires_simples_actives();
    5665        }
    5766        // Sinon presta = gratuit.
    58         else{
    59                 $prestataires = array('gratuit' => _T ( 'bank:titre_bouton_payer_gratuit'));
     67        else {
     68                $prestataires = array(
     69                        'gratuit' => _T('bank:titre_bouton_payer_gratuit')
     70                );
    6071        }
    6172
     
    6475
    6576/**
    66  * Retourne les prestataires simple (pas besoin d'une application externe à spip).
     77 * Retourne les prestataires simple (pas besoin d'une application externe à
     78 * spip).
    6779 *
    6880 * @return array
     
    7082function rb_prestataires_simples_actives() {
    7183        // Les prestas coonfigurés.
    72         include_spip ( 'inc/bank' );
     84        include_spip('inc/bank');
    7385
    74         $prestas_actifs = bank_lister_configs ();
     86        $prestas_actifs = bank_lister_configs();
    7587
    7688        $prestas_simple = array(
     
    7991        );
    8092        $prestataires = array();
    81         foreach ($prestas_simple as $presta ) {
    82                 if (isset ($prestas_actifs [$presta] ) and $prestas_actifs [$presta] ['actif']) {
    83                         $prestataires[$presta] = _T ( 'bank:label_presta_' . $presta );
     93        foreach ($prestas_simple as $presta) {
     94                if (isset($prestas_actifs[$presta]) and $prestas_actifs[$presta]['actif']) {
     95                        $prestataires[$presta] = _T('bank:label_presta_' . $presta);
    8496                }
    8597        }
     
    8799        return $prestataires;
    88100}
     101
     102/**
     103 * Éablit le montant du ht.
     104 *
     105 * @param number $montant
     106 *              montant ttc, si montant_payé déjà déduit, ne pas mettre de
     107 *              valeur pour $montant_paye.
     108 * @param number $taxe
     109 *              taxe applicable en pourcentage.
     110 * @param number $montant_paye
     111 *              le montant payé.
     112 * @return number
     113 */
     114function rb_montant_du_ht($montant, $taxe, $montant_paye = 0) {
     115        return ($montant - $montant_paye) / (1 / 100 * $taxe + 1);
     116}
  • _plugins_/reservations_bank/branches/v1/reservation_bank_pipelines.php

    r110734 r111835  
    218218        $form = $flux['args']['form'];
    219219
    220         // Affiche le formulaire de paiment au retour du formulaire réservation
     220        // Affiche le formulaire de paiement au retour du formulaire réservation
    221221        if ($form == 'reservation') {
    222222                if (!_request('gratuit')) {
     
    224224                        $config = lire_config('reservation_bank', array());
    225225                        $cacher_paiement_public = isset($config['cacher_paiement_public']) ? $config['cacher_paiement_public'] : '';
    226                         $preceder_formulaire = isset($config['preceder_formulaire']) ? $config['preceder_formulaire'] : '';
    227226                        $id_reservation = session_get('id_reservation');
    228                         $id_transaction = rb_inserer_transaction($id_reservation);
     227                        rb_inserer_transaction($id_reservation);
    229228                        if (!$cacher_paiement_public) {
    230229                                $flux['data']['redirect'] = generer_url_public(
     
    234233                        }
    235234                }
     235        }
     236
     237        // Adapte la transaction aorès la modification du montan payé.
     238        if ($form == 'editer_reservations_detail') {
     239                if ($id_reservation = sql_getfetsel('id_reservation',
     240                                'spip_reservations_details',
     241                                'id_reservations_detail=' . _request('id_reservations_detail'))) {
     242                        $inserer_transaction = charger_fonction ("inserer_transaction", "bank" );
     243                        $donnees = unserialize (recuperer_fond('inclure/paiement_reservation', array(
     244                                'id_reservation' => $id_reservation,
     245                                'cacher_paiement_public' => TRUE
     246                        )));
     247                        $donnees['options']['force'] = FALSE;
     248                        spip_log($donnees,'teste');
     249                        $inserer_transaction($donnees['montant'], $donnees['options']);
     250                }
     251
    236252        }
    237253
     
    261277                        $prix = array_sum(array_column($montants, 'prix'));
    262278                        if ($prix_ht <= 0 && $prix <= 0) {
    263                                 spip_log($flux, 'teste');
    264279                                $id_transaction = rb_inserer_transaction($id_reservation);
    265280                                $row = sql_fetsel('*','spip_transactions','id_transaction='.intval($id_transaction));
     
    360375        }
    361376
    362         // Ajoute le message de paiement à la notification de réservation.
     377        // Le recapitulatif de la réservation.
    363378        if ($fond == 'inclure/reservation' and
    364                         $id_reservation = $flux['data']['contexte']['id_reservation'] and
    365                         $statut = sql_getfetsel('statut', 'spip_reservations', 'id_reservation=' . $id_reservation) and
    366                         ($statut == 'attente_paiement' or $statut == 'accepte')) {
    367                 $qui = $flux['data']['contexte']['qui'];
    368                 $transaction = sql_fetsel('mode, id_transaction, transaction_hash, message, tracking_id', 'spip_transactions', 'id_reservation=' . $id_reservation, '', 'date_transaction DESC');
    369                 $mode = $transaction['mode'];
    370                 $id_transaction = $transaction['id_transaction'];
    371                 if ($qui == 'client') {
    372                         if ($statut == 'attente_paiement') {
    373                                 $pattern = array(
    374                                         '|<p class="titre h4">|',
    375                                         '|</p>|'
    376                                 );
    377                                 $replace = array(
    378                                         '<h3>',
    379                                         '</h3>'
    380                                 );
    381                                 $texte = preg_replace($pattern, $replace, bank_afficher_attente_reglement($mode, $id_transaction, $transaction['transaction_hash'], ''));
    382                         }
    383                         else {
    384                                 $texte = '<p>' . $transaction['message'] . '</p>';
    385                         }
    386                 }
    387                 elseif ($qui == 'vendeur') {
    388                         $url = generer_url_ecrire('transaction', 'id_transaction=' . $id_transaction);
    389                         $texte = '<h2>' . _T('reservation_bank:titre_paiement_vendeur') . '</h2>';
    390                         $texte .= '<p>' . _T('reservation_bank:message_paiement_vendeur', array(
    391                                 'mode' => $mode,
    392                                 'url' => $url
    393                         )) . '</p>';
    394                 }
    395 
    396                 $flux['data']['texte'] .= $texte;
     379                        $id_reservation = $flux['data']['contexte']['id_reservation']) {
     380
     381                // Ajouite le montant payé
     382                $texte_montant_paye = recuperer_fond('inclure/texte_montant_paye', array('id_reservation' => $id_reservation));
     383
     384                $flux['data']['texte'] = str_replace(
     385                                '</tr>
     386                        </tfoot>',
     387                                "</tr>\n
     388                                $texte_montant_paye \n
     389                        </tfoot>\n"     ,
     390                        $flux['data']['texte']);
     391
     392
     393                // Ajoute le message de paiement à la notification de réservation.
     394                if ($statut = sql_getfetsel('statut', 'spip_reservations', 'id_reservation=' . $id_reservation) and
     395                                $statut == 'attente_paiement' or $statut == 'accepte') {
     396                        $qui = $flux['data']['contexte']['qui'];
     397                        $transaction = sql_fetsel('mode, id_transaction, transaction_hash, message, tracking_id', 'spip_transactions', 'id_reservation=' . $id_reservation, '', 'date_transaction DESC');
     398                        $mode = $transaction['mode'];
     399                        $id_transaction = $transaction['id_transaction'];
     400                        if ($qui == 'client') {
     401                                if ($statut == 'attente_paiement') {
     402                                        $pattern = array(
     403                                                '|<p class="titre h4">|',
     404                                                '|</p>|'
     405                                        );
     406                                        $replace = array(
     407                                                '<h3>',
     408                                                '</h3>'
     409                                        );
     410                                        $texte = preg_replace(
     411                                                        $pattern,
     412                                                        $replace, bank_afficher_attente_reglement($mode, $id_transaction, $transaction['transaction_hash'], ''));
     413                                }
     414                                else {
     415                                        $texte = '<p>' . $transaction['message'] . '</p>';
     416                                }
     417                        }
     418                        elseif ($qui == 'vendeur') {
     419                                $url = generer_url_ecrire('transaction', 'id_transaction=' . $id_transaction);
     420                                $texte = '<h2>' . _T('reservation_bank:titre_paiement_vendeur') . '</h2>';
     421                                $texte .= '<p>' . _T('reservation_bank:message_paiement_vendeur', array(
     422                                        'mode' => $mode,
     423                                        'url' => $url
     424                                )) . '</p>';
     425                        }
     426                        $flux['data']['texte'] .= $texte;
     427                }
    397428        }
    398429
     
    412443                        $flux['data']['texte'] = str_replace('<!-- Infos extras -->', $button . ' <!-- Infos extras -->', $flux['data']['texte']);
    413444                }
     445        }
     446
     447        // Ajoute le champ montant payé au formulaire d'édition.
     448        if ($fond == 'formulaires/inc-editer_reservations_details_champs') {
     449                        $flux['data']['texte'] .= recuperer_fond('formulaires/champ_montant_paye', $contexte);
     450        }
     451
     452        // Ajoute le champ montant `la page du détail de réservation.
     453        if ($fond == 'prive/objets/contenu/reservations_detail') {
     454                        $flux['data']['texte'] .= recuperer_fond('prive/objets/contenu/inc-reservation_detail_montant_paye', $contexte);
    414455        }
    415456
  • _plugins_/reservations_bank/branches/v1/squelettes/inclure/lien_paiement.html

    r103236 r111835  
    1919        <//B_details>
    2020
    21         <BOUCLE_transactions(TRANSACTIONS){id_reservation}{statut IN commande,attente}{par date_transaction}{0,1}>
     21        <BOUCLE_transactions(TRANSACTIONS){id_reservation}{statut IN commande,attente}{!par date_transaction}{0,1}>
    2222        [(#AUTORISER{regler,transaction,#ID_TRANSACTION})
    2323                [(#GET{paiement}|oui|et{#TRANSACTION_HASH|oui})
  • _plugins_/reservations_bank/branches/v1/squelettes/inclure/paiement_reservation.html

    r110267 r111835  
    33        #SET{email,#EMAIL|sinon{#INFO_EMAIL{auteur,#ID_AUTEUR}}}
    44        #SET{id_reservation,#ID_RESERVATION}
    5         #SET{prix, #ARRAY}
    6         #SET{prix_ht, #ARRAY}
     5        #SET{prix_ht_total, #ARRAY}
     6        #SET{prix_total, #ARRAY}
    77        <BOUCLE_reservation_details(RESERVATIONS_DETAILS){id_reservation}{id_reservations_detail ?}{tout}>
    8                 #SET{prix_ht,#GET{prix_ht}|push{#PRIX_HT*}}
    9                 #SET{prix,#GET{prix}|push{#PRIX*}}
    10                 </BOUCLE_reservation_details>
    11                 #SET{total,#GET{prix}|array_sum}
    12                 #SET{montant_ht,#GET{prix_ht}|array_sum}
    13                 </B_reservation_details>
     8                #SET{prix,#PRIX*|moins{#MONTANT_PAYE}}
     9                #SET{prix_ht_total,#GET{prix_ht_total}|push{#GET{prix}|rb_montant_du_ht{#TAXE}}}
     10                #SET{prix_total,#GET{prix_total}|push{#GET{prix}}}
     11        </BOUCLE_reservation_details>
     12                #SET{montant_ht,#GET{prix_ht_total}|array_sum}
     13                #SET{total,#GET{prix_total}|array_sum}
     14        </B_reservation_details>
    1415</BOUCLE_reservation>
    1516#SET{options,#ARRAY{
Note: See TracChangeset for help on using the changeset viewer.