Jump to content
Fivewin Brasil

Boleto Banco Sicoob


edutraini

Recommended Posts

  • 1 year later...

Method Banco_756() Class MR_Boleto

   ::Banco_Dv_____ := "0"
   ::Banco_Nome___ := "Siccob"
   
    IF EMPTY( ::Prefixo______ )
      ::Prefixo______ := ::Conta________
      ::Conta________ := ''
      ::Prefixo_DV___ := ::Conta_DV_____
      ::Conta_DV_____ := ''
   ENDIF
  
   ::NossoNumer_DV := ::DC_ModEsp( ::Banco________, 9, .F., ::Banco_Agencia + STRZERO(VAL(::Prefixo______),9) + ::Prefixo_DV___ + PADL( ALLTRIM( Left( ::NossoNumero__, 07 ) ), 07, '0' ), .F. )
    
    ::NossoNumero_z := ::NossoNumero__ + "-" + ::NossoNumer_DV
    
    ::Banco_Agencia := PADL( ALLTRIM( Left( ::Banco_Agencia,  4 ) ),  4, '0' )
   ::Ag_Cod_Cedent := TRAN( ::Banco_Agencia + '/' + strzero(val(::Prefixo______),6) + '-'  +   ::Prefixo_DV___  , "@!")
    *-->
    ::cCarteira   := ::Carteira_____ 
     ::cNumAgencia := ::Banco_Agencia
     ::cTipoCob    := "01"
     ::cCDPF       := strzero(val(::Prefixo______ ),6)
     ::cDVCDPF     :=  ::Prefixo_DV___ 
     ::cNsNm       := ::NossoNumero__ +::NossoNumer_DV
        
    ::Campo_Livre__ := ::cCarteira + ::cNumAgencia + StrZero( Val( ::cTipoCob ),2 ) + ::cCDPF + ::cDVCDPF + ::cNsNm + "001" // teste eroni
                                                                                                                

Return NIL

Link to comment
Share on other sites

Method DC_ModEsp( c_Banco, mBSDG, mFGCB, mNMOG, lMult10 ) Class MR_Boleto

   LOCAL mVLDG
   LOCAL mSMMD
   LOCAL mCTDG
   LOCAL mSQMP
   LOCAL mRSDV
   LOCAL mDCMD := 0


   IF c_Banco == "033"                  // Banespa
      mSMMD := 0
      mSQMP := 3
      FOR mCTDG := 1 TO Len( mNMOG )
         mVLDG := Val( SubStr( mNMOG,Len(mNMOG ) - mCTDG + 1,1 ) ) * ( mSQMP )
         mSMMD += mVLDG - ( Int( mVLDG / 10 ) * 10 )
         mSQMP := IF( mSQMP == 3, 7, IF( mSQMP == 7,9,IF(mSQMP == 9,1,3 ) ) )
      NEXT
      mRSDV := mSMMD - ( Int( mSMMD / 10 ) * 10 )
      mDCMD := IF( mRSDV == 0, 0, 10 - mRSDV )
   ENDIF
   *
    IF c_Banco == "756"                  // Sicoob 
      mSMMD := 0
      mSQMP := 3
      FOR mCTDG := 1 TO LEN(mNMOG)
          mVLDG := VAL( SUBSTR( mNMOG , mCTDG, 1 ) ) * mSQMP
          mSMMD += mVLDG
          DO CASE
              CASE mSQMP == 3 ; mSQMP := 1
              CASE mSQMP == 1 ; mSQMP := 9
              CASE mSQMP == 9 ; mSQMP := 7
              CASE mSQMP == 7 ; mSQMP := 3
          ENDCASE
      NEXT

      mRSDV := Int( Mod( mSMMD, 11) )
      IF mRSDV == 0 .OR.  mRSDV == 1
          mDCMD := 0
      ELSE
          mDCMD := 11 - mRSDV
      ENDIF
   Endif

   RETURN Str( mDCMD, 1 )
 

 

Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...