Author: benj
Date: Thu Jul  7 14:53:10 2016
New Revision: 1725

URL: http://svn.gna.org/viewcvs/gdtc?rev=1725&view=rev
Log:
Fix calculation of CB with expiration dates in the next year


Modified:
    trunk/gdtc/include/cb_cmcic.php
    trunk/gdtc/include/coherence.php

Modified: trunk/gdtc/include/cb_cmcic.php
URL: 
http://svn.gna.org/viewcvs/gdtc/trunk/gdtc/include/cb_cmcic.php?rev=1725&r1=1724&r2=1725&view=diff
==============================================================================
--- trunk/gdtc/include/cb_cmcic.php     (original)
+++ trunk/gdtc/include/cb_cmcic.php     Thu Jul  7 14:53:10 2016
@@ -22,6 +22,19 @@
 
 
 @include "../include/CMCIC_HMAC.inc.php";
+
+
+function compute_real_cbrecur_amount ( $start_date, $end_date, $amount, 
$prorata )
+{
+      $date1 = new DateTime($start_date);
+      $date2 = new DateTime($end_date);
+      $interval = $date1->diff($date2);
+      $months = $interval->format('%m') + $interval->format('%y')*12;
+      if ( date_format($date1, 'd' ) > 5 ) $months--;
+      if ( date_format($date2, 'd' ) > 5 ) $months++;
+      #if ( date_format($date1, 'd' ) == date_format($date2, 'd' ) ) $months--;
+      return $months * $amount + $prorata;
+}
 
 
 function pre_paiement ( $http_args, $amount = 0, $additional = Array(), 
$recurrent = false )

Modified: trunk/gdtc/include/coherence.php
URL: 
http://svn.gna.org/viewcvs/gdtc/trunk/gdtc/include/coherence.php?rev=1725&r1=1724&r2=1725&view=diff
==============================================================================
--- trunk/gdtc/include/coherence.php    (original)
+++ trunk/gdtc/include/coherence.php    Thu Jul  7 14:53:10 2016
@@ -19,6 +19,8 @@
 /*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
*/
 /*                                                                            
*/
 /* ************************************************************************** 
*/
+
+@include "../include/cb_cmcic.php";
 
 
 function basic_query ( $search )
@@ -425,21 +427,6 @@
 
 /***** CB amount is fucked */
 
-function compute_real_cbrecur_amount ( $result )
-{
-      $start_date = $result['start_date'];
-      $end_date = $result['end_date'];
-      $date1 = new DateTime($start_date);
-      $date2 = new DateTime($end_date);
-      $interval = $date1->diff($date2);
-      $months = $interval->format('%m') + $interval->format('%y')*12;
-      if ( date_format($date1, 'd' ) > 5 ) $months--;
-      if ( date_format($date2, 'd' ) > 5 ) $months++;
-      #if ( date_format($date1, 'd' ) == date_format($date2, 'd' ) ) $months--;
-      return $months * $result [ 'prelevement_amount' ] + $result [ 
'cbrecur_prorata' ];
-}
-
-
 function check_cmcic_amount_is_fucked ()
 {
   $results = basic_query ( "AND subscription.payment_mode = 'cbweb_recur'" );
@@ -448,7 +435,7 @@
   $output = Array ( "Problème de montant CB récur : " . sizeof($results). " 
résultat(s)", 'cmcic_amount', true );
   foreach ( $results as $result )
     {
-      $computed_amount = compute_real_cbrecur_amount ( $result );
+      $computed_amount = compute_real_cbrecur_amount ( $result['start_date'], 
$result['end_date'], $result['prelevement_amount'], $result['cbrecur_prorata'] 
);
       if ( $computed_amount != $result [ 'amount' ] )
        {
          $name = actor_get_clickable_name ( $result );   
@@ -479,14 +466,17 @@
 
   if ( $orig )
     {
+      $start_date = $orig['start_date'];
+      $end_date = $orig['end_date'];
+
       if ( simple_query
           ( sprintf
             ( "UPDATE subscription SET amount=%d WHERE subscription_id = 
'%d';",
-              compute_real_cbrecur_amount ( $orig ), $orig [ 'subscription_id' 
] ) ) )
+              compute_real_cbrecur_amount ( $orig['start_date'], 
$orig['end_date'], $orig['prelevement_amount'], $orig['cbrecur_prorata'] ), 
$orig [ 'subscription_id' ] ) ) )
        {
          record_change ( 'changed', 'subscription', 'subscription_id',
                          $orig['subscription_id'], 'amount', $orig [ 'amount' 
],
-                         compute_real_cbrecur_amount ( $orig ) );
+                         compute_real_cbrecur_amount ( $orig['start_date'], 
$orig['end_date'], $orig['prelevement_amount'], $orig['cbrecur_prorata'] ) );
          return print "good";
        }
     }
@@ -540,9 +530,9 @@
       if ( simple_query
           ( sprintf
             ( "UPDATE subscription SET voucher = '%s', reference='%s', 
cbrecur_prorata = 0, amount=%d WHERE subscription_id = '%d';",
-              $result [ 'voucher' ], $result [ 'reference' ], 
compute_real_cbrecur_amount ( $result ), $orig [ 'subscription_id' ] ) ) )
+              $result [ 'voucher' ], $result [ 'reference' ], 
compute_real_cbrecur_amount ( $result['start_date'], $result['end_date'], 
$result['prelevement_amount'], $result['cbrecur_prorata'] ), $orig [ 
'subscription_id' ] ) ) )
        record_change ( 'changed', 'subscription', 'subscription_id', 
-                       $orig['subscription_id'], 'amount', $orig [ 'amount' ], 
compute_real_cbrecur_amount ( $result ) );
+                       $orig['subscription_id'], 'amount', $orig [ 'amount' ], 
compute_real_cbrecur_amount ( $result['start_date'], $result['end_date'], 
$result['prelevement_amount'], $result['cbrecur_prorata'] ) );
        record_change ( 'changed', 'subscription', 'subscription_id', 
                        $orig['subscription_id'], 'reference', $orig [ 
'reference' ], $result [ 'reference' ] );
        record_change ( 'changed', 'subscription', 'subscription_id', 


_______________________________________________
Gdtc-commits mailing list
[email protected]
https://mail.gna.org/listinfo/gdtc-commits

Reply via email to