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