Akopia Akopia Services

[Date Prev][Date Next][Thread Prev][Thread Next][Minivend by date ][Minivend by thread ]

Re: [mv] Prorate discount script bug



******    message to minivend-users from Sydney Urshan <urshan@nethollywood.net>     ******

Well, if it's a $30 item in a 30 day month, day 30 should be $1, day 
29 should be $2...day 2 should be $29, and the first day of the month 
should be $30 with everything else in between adjusted accordingly.

>Sydney Urshan wrote:
>>
>>  ******    message to minivend-users from Sydney Urshan 
>><urshan@nethollywood.net>     ******
>>
>>  The following discount script works perfect until the last day of the
>>  month at which time the result is 0.  Can someone help me out on this
>>  one?
>>
>>  [loop list='2001 2002 3001 3002']
>>  [discount [loop-code]]
>>  my $bit = $Tag->time('', {}, '%m %d');
>>  my ($month, $n) = split /\s+/, $bit;
>>  $n =~ s/^0//;
>>  my %mon = (
>>          '01' => 31,
>>          '02' => 29,
>>          '03' => 31,
>>          '04' => 30,
>>          '05' => 31,
>>          '06' => 30,
>>          '07' => 31,
>>          '08' => 31,
>>          '09' => 30,
>>          '10' => 31,
>>          '11' => 30,
>>          '12' => 31,
>>  );
>>  if ($mon{$month} and $n > 1) {
>>             return ($s - ($s / $mon{$month} * $n));
>>  }
>>  return $s;
>>  [/discount]
>>  [/loop]
>>
>>  Thanks,
>>
>>  Sydney Urshan
>
>Look at your calculation again:
>	$s - ($s / days_in_month * day_of_month);
>This is equivalent to saying:
>	$s - $s * (days_in_month / day_of_month);
>when day_of_month is the same as days_in_month, you get
>	$s - $s * 1;
>which is 0.
>
>What did you intend the prorate to be at the end of the month?
>
>	-Bill

-
To unsubscribe from the list, DO NOT REPLY to this message.  Instead, send
email with 'UNSUBSCRIBE minivend-users' in the body to Majordomo@minivend.com.
Archive of past messages: http://www.minivend.com/minivend/minivend-list


Search for: Match: Format: Sort by: