Fico contente por poder ter ajudado,
:xau
Moderador: Moderadores






Código: Selecionar todos
CASE ::cCodBco == "001" // Brasil
IF LEFT( cCarteira, 2 ) $ "16|18" // SEM REGISTRO, Carteira com 17 Posicoes Livres
// Janio
If Len(::cNossoNumero) = 17
cNsNm := ::cNossoNumero
cCpoLivre := "000000" + ::cNossoNumero + "18"
ElseIf Len(::cNossoNumero) = 12
::cCDPF := StrZero( Val( ::cCDPF ), 7 )
::cNossoNumero := ::cCDPF + StrZero( Val( ::cNossoNumero ), 10 )
cNsNm := ::cNossoNumero
cCpoLivre := "000000" + ::cNossoNumero + "18"
Endif
ELSE
// Jânio - CARTEIRA 17 registrada (18.04.2016)
cNsNm := ::cNossoNumero
cCpoLivre := "000000" + ::cNossoNumero + StrZero(VAL(cCarteira), 2)
ENDIF
Código: Selecionar todos
lPrint = .t.
lPreview = .t.
lPromptPrint = .t.
oBol := oBoleto():New(boleto->CODBCO)
oBol:lAnsi := .t.
oBol:lRemessa := .f. // Se nao quiser gerar Arquivo Remessa.
oBol:lBoleto := .t. // Se nao quiser gerar Boleto Bancario.
oBol:nBolsPag := 1
oBol:Cedente := AllTrim( empresa->NOMEMP )
oBol:CedenteCNPJ := AllTrim( empresa->CGCEMP )
oBol:cCDPF := AllTrim( boleto->CODCED ) // Cod. Cedente / Cod. Empresa no Banco
oBol:cNumCC := AllTrim( boleto->CODCTA ) // Numero da Conta
oBol:cDvCC := AllTrim( boleto->DIGCTA ) // DV Conta
oBol:cNumAgencia := AllTrim( boleto->CODAGE ) // Agencia
oBol:cDVAgencia := AllTrim( boleto->DIGAGE ) // Digito Agencia
oBol:cCarteira := AllTrim( boleto->CARTEI ) // Carteira de Cobranca
oBol:EspecieTit := If( vFlg = "P", "NP", "NF" )
*------------------------------------------------------------------*
* Cria html - Sempre colocar apos a definicao completa do Cedente, *
* isso influencia na criacao do Arquivo Remessa. *
*------------------------------------------------------------------*
oBol:Open( "boleto", , , , , .F. ) // .F. Padrao CNAB240, .T. Padrao CNAB400
vInstrucoes = "CONSIDERAR QUITADO SO APOS COMPENSACAO DO(S) CHEQUE(S) PELO BANCO SACADO. APOS O VENCIMENTO, COBRAR " + AllTrim( Trans( empresa->PCTMLT, "@E 99.99" ) ) + " % DE JUROS AO MES E PROTESTAR NO 5o. DIA UTIL."
If vFlg = "P"
parc = parcela->NOSNUM
Else
parc = ParcNfe->NOSNUM
Endif
If Empty(parc)
nNossoNumero = AllTrim( boleto->CODCED )
If vFlg = "P"
Select Parcela
Else
Select ParcNfe
Endif
DbSetOrder(2)
DbGoTop()
OrdScope( 0, nNossoNumero )
OrdScope( 1, nNossoNumero )
DbGoTop()
Count to nNrBlt
DbGoBottom()
If boleto->QTDENN = 12
If left(nosnum, Len( AllTrim( boleto->CODCED ) ) ) != nNossoNumero
bNossoNumero = AllTrim( boleto->CODCED ) + StrZero( 0, 11 - Len( AllTrim( boleto->CODCED ) ) )
mNossoNumero = AllTrim( Str( Val( Left(bNossoNumero,11) ) + 1 ) )
Else
mNossoNumero = AllTrim( Str( Val( Left(nosnum,11) ) + 1 ) )
Endif
oNossoNumero = DigNossoNumero(mNossoNumero)
kNossoNumero = mNossoNumero + oNossoNumero
ElseIf boleto->QTDENN = 17 // banco do brasil 17 posicoes
If nNrBlt = 0
bNossoNumero = AllTrim( boleto->CODCED ) + "0000000000"
mNossoNumero = AllTrim( Str( Val( bNossoNumero ) + 1 ) )
Else
mNossoNumero = AllTrim( Str( Val( nosnum ) + 1 ) )
Endif
kNossoNumero = mNossoNumero
Endif
OrdScope( 0, Nil )
OrdScope( 1, Nil )
Endif
If vFlg = "P"
Select PARCELA
DbSetOrder(1)
DbGoTop()
DbSeek( Str(vPEDIDO,6) + Str(vSEQPRC,2) )
Else
Select ParcNfe
DbSetOrder(1)
DbGoTop()
DbSeek( Str(vCODEMT,2) + vSERNFE + Str(vNUMNFE,6) + Str(vSEQPRC,2) )
Endif
empresa->( DbGoTop() )
while !eof()
oBol:SACADO := Left(CLIENTE->NOMCLI,40)
oBol:ENDERECO := AllTrim(CLIENTE->ENDCLI) + ", " + cliente->NUMERO
oBol:BAIRRO := CLIENTE->BAIRRO
oBol:CIDADE := CIDADE->CIDADE
oBol:ESTADO := CIDADE->ESTADO
oBol:CEP := CLIENTE->CEPCLI
oBol:CNPJ := If( CLIENTE->TIPPES = "1", CLIENTE->CGCCLI, CLIENTE->CPFCLI )
oBol:nMulta := empresa->PCTMLT //0.00 // Multa Apos Vencimento
oBol:nMora := If( EMPRESA->JURMES > 0, EMPRESA->JURMES / 30, 0 ) //6 // Mora Diaria a Ser Cobrado Por Dia de Atraso
oBol:nDiasProt := 5 // Dias Para Protesto
oBol:DtEmis := If( vFlg = "P", parcela->DATEMI, parcNfe->DATEMI )
oBol:DtVenc := vDatVen
oBol:cNumDoc := If( vFlg = "P", Trans(vPEDIDO, "@E 999,999"), Trans(vNumNfe, "@E 999,999") ) + "-" + StrZero(vSEQPRC,2) // Seu Numero do Documento
cNossoNumBd := If( vFlg = "P", parcela->NOSNUM, parcNfe->NOSNUM )
If boleto->QTDENN = 12
oBol:cNossoNumero := If( Empty(cNossoNumBd), Left(kNossoNumero,11), Left(cNossoNumBd,11) )
ElseIf boleto->QTDENN = 17
oBol:cNossoNumero := If( Empty(cNossoNumBd), kNossoNumero, AllTrim(cNossoNumBd) )
Endif
If vFLGVLR = "S"
oBol:nValor := vVlrBlt
Else
oBol:nValor := " "
Endif
oBol:Aceite := "N"
oBol:Execute() // monta html
exit
Enddo
If vFlg = "P"
If Empty(parcela->NOSNUM)
Select Parcela
TRAVA()
replace NOSNUM with kNossoNumero
Endif
Else
If Empty(parcNfe->NOSNUM)
Select ParcNfe
TRAVA()
replace NOSNUM with kNossoNumero
Endif
Endif
DESTRAVA()
oBol:Close()
oBol:Print() // Imprime o boleto
