<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -230,9 +230,20 @@ module Riopro
           return [0,10,11].include?(valor) ? 1 : valor
         end
 
+
+        def module11_2to7P(value = &quot;&quot;)
+          dv = self.module11_2to7base(value)
+          return dv == 10 ? &quot;P&quot; : ( dv == 11 ? 0 : dv )
+        end
+
+        def module11_2to7(value = &quot;&quot;)
+          dv = self.module11_2to7base(value)
+          return ([10, 11].include?(dv) ) ? 0 : dv
+        end
+
         # Calculus Module 11 with multipliers 2 to 7
         # returns nil if does not receive a only numbers string
-        def module11_2to7(value = &quot;&quot;)
+        def module11_2to7base(value = &quot;&quot;)
           return nil unless value &amp;&amp; (value !~ /[^0-9]+/)
 
           multipliers = [2,3,4,5,6,7]</diff>
      <filename>lib/bank/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,7 +59,7 @@ module Riopro
 
         # Calculates our number check digit according to Bradesco criteria
         def calculate_our_number_cd
-          module11_2to7(&quot;#{self.portfolio}#{self.our_number}&quot;);
+          module11_2to7P(&quot;#{self.portfolio}#{self.our_number}&quot;);
         end
 
         # Calculates account check digit according to Bradesco criteria</diff>
      <filename>lib/bank/bradesco.rb</filename>
    </modified>
    <modified>
      <diff>@@ -157,26 +157,24 @@ describe Riopro::KillBill::Bank::Bradesco do
       before(:each) do
         @bank_bradesco.portfolio = &quot;09&quot;
       end
-      describe &quot;portfolio 09&quot; do
-        it &quot;should call module11_2to7&quot; do
-          @bank_bradesco.should_receive(:module11_2to7).with(&quot;#{@bank_bradesco.portfolio}#{@bank_bradesco.our_number}&quot;).and_return(1)
-          @bank_bradesco.calculate_our_number_cd.should == 1
-        end
-        [
-          [&quot;02&quot;, &quot;90960000533&quot;, 8],
-          [&quot;02&quot;, &quot;90700000300&quot;, 2],
-          [&quot;02&quot;, &quot;90840000416&quot;, 0],
-          [&quot;02&quot;, &quot;90510000304&quot;, &quot;P&quot;],
-          [&quot;19&quot;, &quot;00000000002&quot;, 8],
-          [&quot;09&quot;, &quot;00000000002&quot;, &quot;P&quot;],
-          [&quot;19&quot;, &quot;00000000006&quot;, 0],
-          [&quot;09&quot;, &quot;00606011457&quot;, &quot;P&quot;],
-        ].each do |portfolio, our_number, cd|
-          it &quot;should return #{cd} as check digit for #{our_number} and portfolio #{portfolio}&quot; do
-            @bank_bradesco.portfolio = portfolio
-            @bank_bradesco.our_number = our_number
-            @bank_bradesco.calculate_our_number_cd.should == cd
-          end
+      it &quot;should call module11_2to7&quot; do
+        @bank_bradesco.should_receive(:module11_2to7P).with(&quot;#{@bank_bradesco.portfolio}#{@bank_bradesco.our_number}&quot;).and_return(1)
+        @bank_bradesco.calculate_our_number_cd.should == 1
+      end
+      [
+        [&quot;02&quot;, &quot;90960000533&quot;, 8],
+        [&quot;02&quot;, &quot;90700000300&quot;, 2],
+        [&quot;02&quot;, &quot;90840000416&quot;, 0],
+        [&quot;02&quot;, &quot;90510000304&quot;, &quot;P&quot;],
+        [&quot;19&quot;, &quot;00000000002&quot;, 8],
+        [&quot;09&quot;, &quot;00000000002&quot;, &quot;P&quot;],
+        [&quot;19&quot;, &quot;00000000006&quot;, 0],
+        [&quot;09&quot;, &quot;00606011457&quot;, &quot;P&quot;],
+      ].each do |portfolio, our_number, cd|
+        it &quot;should return #{cd} as check digit for #{our_number} and portfolio #{portfolio}&quot; do
+          @bank_bradesco.portfolio = portfolio
+          @bank_bradesco.our_number = our_number
+          @bank_bradesco.calculate_our_number_cd.should == cd
         end
       end
     end</diff>
      <filename>spec/bank/bradesco_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f72c9567dbcba5e2656e75b2cb8bdc4b41eda1ab</id>
    </parent>
  </parents>
  <author>
    <name>Ot&#225;vio de Freitas e Castro Sampaio</name>
    <email>osampaio@riopro.com.br</email>
  </author>
  <url>http://github.com/riopro/kill_bill/commit/1d197c1e65cea6c401693e81c6bbcb6c664a0ad2</url>
  <id>1d197c1e65cea6c401693e81c6bbcb6c664a0ad2</id>
  <committed-date>2009-04-17T07:59:15-07:00</committed-date>
  <authored-date>2009-04-17T07:59:15-07:00</authored-date>
  <message>melhorando a forma de calcular modulo 11 2 a 7</message>
  <tree>ce43b55c7c24052f21be59098c89d9bc54d61931</tree>
  <committer>
    <name>Ot&#225;vio de Freitas e Castro Sampaio</name>
    <email>osampaio@riopro.com.br</email>
  </committer>
</commit>
