Jump to content
Fivewin Brasil

nardeypm

Membros
  • Posts

    119
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by nardeypm

  1. Provavelmente está relacionado com o nosso numero. coloque um numero qq só para testes. Fiz para o santander e está gerando os boletos corretamente. NÁRDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  2. santander - 033 me informe quais os #include, #translate e os #defines que vc tá usando. adiciona meu contato no skype / msn = nardey@gmail.com NÁRDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  3. o problema de abortar desaparece quando deixo as linhas abaixo (em vermelho) comentadas. com elas habilitadas o sistema aborta sozinho..... METHOD New( cBco, cLocalPg ) CONSTRUCTOR /* -------------------------------------------------------------------------- */ METHOD new( cBco, cLocalPg ) CLASS oBoleto LOCAL lFem := .F. DEFAULT cBco := "033" #ifndef __PLATFORM__Linux IF EMPTY(::HtmEdit) ::HtmEdit := "C:\Arquivos de programas" // se algum cliente tiver Windows em ingles ... ENDIF ::HtmEdit += "\Internet Explorer\iexplore.exe" #endif /* DO CASE CASE cBco == "001" ::cDvBco := "9" ::cNomeBco := "Banco do Brasil" DEFAULT cLocalPg := "Pagável em Qualquer Banco Até o Vencimento" CASE cBco == "070" // Colaboracao de Taibnis Vieira <tbnvieira@uol.com.br> ::cDvBco := "1" ::cNomeBco := "Banco do Brasilia" CASE cBco == "008" ::cDvBco := "6" ::cNomeBco := "Santander Meridional" CASE cBco == "033" ::cDvBco := "7" ::cNomeBco := "Santander" DEFAULT cLocalPg := "Pagar preferencialmente no Grupo Santander - GC" CASE cBco == "104" ::cDvBco := "0" ::cNomeBco := "Caixa" //::lRemessa := .F. // Implementado 30/10/09 ( Padrao SIGCB Caixa ), by SysTux (Toninho Silva), systux@yahoo.com.br, 30/10/09 lFem := .T. //SET DEFAULT cLocalPg TO "PREFERENCIALMENTE NAS CASAS LOTÉRICAS E AGÊNCIAS DA CAIXA" DEFAULT cLocalPg := "CASAS LOTÉRICAS, AGÊNCIAS DA CAIXA E REDE BANCÁRIA, APÓS VENC. SOMENTE NA CAIXA" CASE cBco == "237" ::cDvBco := "2" ::cNomeBco := "Bradesco" CASE cBco == "244" ::cDvBco := "5" ::cNomeBco := "Cidade" ::lRemessa := .F. // falta implementar no oRemessa CASE cBco == "341" ::cDvBco := "7" ::cNomeBco := "Itau" + __ANSI CASE cBco == "353" ::cDvBco := "0" ::cNomeBco := "Santander" CASE cBco == "356" ::cDvBco := "5" ::cNomeBco := "Real" CASE cBco == "399" ::cDvBco := "9" ::cNomeBco := "HSBC" CASE cBco == "409" ::cDvBco := "0" ::cNomeBco := "Unibanco" CASE cBco == "422" ::cDvBco := "7" ::cNomeBco := "Safra" ::EspecieTit:="DS" CASE cBco == "739" ::cDvBco := "7" ::cNomeBco := "Banco BGN" ENDCASE */ DEFAULT cLocalPg := "Até o vencimento, pagável em qualquer banco. Após o vencimento, em qualquer"+; " agência d"+IIF(lFem,"a","o")+" "+::cNomeBco+; IIF(cBco == "999"," ou Banco Postal","")+"."+__ANSI ::cLocalPgto := cLocalPg ::cCodBco := cBco RETURN Self NARDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  4. fiz as alterações do comando default e compilou normal. agora o programa abre, assim que clico em alguma opção, ele aborta sem mostrar qq erro.
  5. esclarecendo: 1 - compilando só os arquivos do harbourboleto, funciona normalmente, ou seja , gera e aparecem os boletos no navegador 2 - usando o mesmo arquivo oboleto.prg no meu sistema, o comando DEFAULT dá erro, substitui as linhas do comando DEFAULT e compilou normalmente. depois disso, ao criar o bol.ini, simplesmente aparece esse erro e não cria o arquivo. se eu usar o arquivo bol.ini com dados, os boletos não são gerados. STATIC FUNCTION CriaIni( cFileName ) LOCAL oIni oIni = TIniFile():New(Default(cFilename, 'bol.ini')) oIni:WriteString("CAB", "Banco", "033") oIni:WriteString("CAB", "cImageLnk", "") oIni:WriteBool("CAB", "lBoleto", .T.) oIni:WriteBool("CAB", "lRemessa", .f.) oIni:WriteBool("CAB", "lAnsi", .T.) oIni:WriteBool("CAB", "lPrint", .T.) oIni:WriteBool("CAB", "lPreview", .T.) oIni:WriteBool("CAB", "lPromptPrint", .T.) oIni:WriteNumber("CAB", "nBolsPag", 3) oIni:WriteString("CAB", "Cedente", "TESTE") oIni:WriteString("CAB", "CedenteCNPJ", "12345649791") oIni:WriteString("CAB", "cNumCC", "422353") oIni:WriteString("CAB", "cNumAgencia", "9093-9") oIni:WriteString("CAB", "cCarteira", "0102") oIni:WriteString("CAB", "EspecieTit", "DS") oIni:WriteString("CAB", "cTipoCob", "5") oIni:WriteNumber("CAB", "cCDPF", 422353) oIni:WriteNumber("CAB", "nMora", 0) oIni:WriteNumber("CAB", "nMulta", 0) oIni:WriteNumber("CAB", "nDiasProt", 0) oIni:WriteString("CAB", "cDir", "") oIni:WriteString("CAB", "cDirRemessa", "") oIni:WriteString("BOL1", "Sacado", "Nome") oIni:WriteString("BOL1", "Endereco", "Rua_num") oIni:WriteString("BOL1", "Bairro", "Bairro") oIni:WriteString("BOL1", "Cidade", "Cidade") oIni:WriteString("BOL1", "Estado", "UF") oIni:WriteString("BOL1", "CEP", "Cep") oIni:WriteString("BOL1", "CNPJ", "Cpf") oIni:WriteString("BOL1", "Instrucoes", "") oIni:WriteString("BOL1", "cNumDoc", "3850003") // seu numero do documento oIni:WriteString("BOL1", "cNossoNumero", "24240069") // numero do banco oIni:WriteNumber("BOL1", "nValor", 144,00) // valor do boleto oIni:WriteDate("BOL1", "DtVenc", CTOD("12/06/2014")) a linha que apresenta o erro e a mensagem do erro: nAux := AT("-", ::cNumAgencia) IF nAux > 0 .AND. EMPTY(::cDVAgencia) ::cDVAgencia := TRIM(SUBSTR(::cNumAgencia, nAux + 1)) // Digito da Agencia ::cNumAgencia := LEFT(::cNumAgencia, nAux - 1) // Numero da Agencia ENDIF Descricao: Erro BASE/1108 Argument error: AT Args: [ 1] = C - [ 2] = U Chamadas ao Stack ================= CHAMADA DE AT(0) CHAMADA DE OBOLETO:OPEN(160) CHAMADA DE GERABOLETO(44) NARDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  6. o problema parece estar nos comandos DEFAULT e AT . substituindo o comando default ou comentando a linha, o meu sistema não aborta. dá erro no comando AT. DEFAULT cLocalPg TO "Pagar preferencialmente no Grupo Santander - GC" nAux := AT("-", ::cNumAgencia) IF nAux > 0 .AND. EMPTY(::cDVAgencia) ::cDVAgencia := TRIM(SUBSTR(::cNumAgencia, nAux + 1)) // Digito da Agencia ::cNumAgencia := LEFT(::cNumAgencia, nAux - 1) // Numero da Agencia ENDIF nAux := AT("-", ::cCDPF) //*FJF* - 28/09/09 IF nAux > 0 .AND. EMPTY(::cDvCDPF) //*FJF* - 28/09/09 ::cDvCDPF := TRIM(SUBSTR(::cCDPF, nAux + 1)) // Digito do CDPF ::cCDPF := LEFT(::cCDPF, nAux - 1) // CDPF ENDIF erro: Aplicacao ========== Tamanho: 2,610,688 bytes Maximo de arquivos abertos: ( SetHandleCount() ) 0 Ocorreu erro em: 26/06/2014, 20:20:34 Descricao: Erro BASE/1108 Argument error: AT Args: [ 1] = C - [ 2] = U Chamadas ao Stack ================= CHAMADA DE AT(0) CHAMADA DE OBOLETO:OPEN(160) CHAMADA DE GERABOLETO(44) CHAMADA DE (b)MENSALIDADES(154) CHAMADA DE TBUTTON:CLICK(0) CHAMADA DE TBUTTON:HANDLEEVENT(0) CHAMADA DE _FWH(0) CHAMADA DE SENDMESSAGE(0) CHAMADA DE TDIALOG:COMMAND(0) CHAMADA DE TWINDOW:HANDLEEVENT(0) CHAMADA DE TDIALOG:HANDLEEVENT(0) CHAMADA DE DIALOGBOXINDIRECT(0) CHAMADA DE TDIALOG:ACTIVATE(0) CHAMADA DE MENSALIDADES(162) CHAMADA DE (b)MAIN(148) CHAMADA DE TBTNBMP:CLICK(0) CHAMADA DE TBTNBMP:LBUTTONUP(0) CHAMADA DE TWINDOW:HANDLEEVENT(0) CHAMADA DE TBTNBMP:HANDLEEVENT(0) CHAMADA DE _FWH(0) CHAMADA DE WINRUN(0) CHAMADA DE TWINDOW:ACTIVATE(0) CHAMADA DE MAIN(205) só dá erro quando integrado ao meu sistema..... NARDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  7. testei como administrador e continua abortando o sistema. o problema é realmente no oboleto.prg sem esse modulo, o programa funciona normalmente. NARDEY - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  8. estou tendo problemas com harbourboleto. sozinho, ele compila e gera os boletos. quando tento compilar junto com o meu sistema, compila normalmente, gera o executável e depois simplesmente aborta. não dá mensagem de erro. do harbourboleto, sem carregar os módulos, o meu sistema funciona normalmente. o problema parece estar no módulo oboleto.prg. #include "harbourboleto.ch" #include "hbclass.ch" #Translate StoD(<p>) => CTOD(RIGHT(<p>, 2) + "/" + SUBSTR(<p>, 5, 2) + "/" + LEFT(<p>, 4)) #DEFINE dDataBase CTOD("07/10/1997") CLASS oBoleto DATA Modelo INIT "" DATA AuxModelo INIT "" // Se Necessario, Auxiliar no Controle de Modelo do Boleto DATA Bolhtm INIT "" DATA Destino INIT "" DATA nHandle INIT 0 PROTECTED // link - Arquivo do boleto (FCREATE) DATA NomeHtm INIT "" DATA HtmEdit INIT getenv("ProgramFiles") // o Win 98 nao tem esta variavel !!! DATA cImageLnk INIT "" // Funcao ::merge troca a variavel pelo diretorio no bol.htm DATA lPreview INIT .T. DATA lAnsi INIT .T. DATA lBoleto INIT .T. DATA lRemessa INIT .T. DATA oRem INIT "" DATA cLocalPgto INIT "" DATA Cedente INIT "" DATA CedenteCNPJ INIT "" DATA Avalista INIT "" DATA cAvalCodBco INIT "" DATA cAvalNumAgencia INIT "" DATA cAvalNumCC INIT "" DATA cAvalDvAgencia INIT "" DATA cAvalDvCC INIT "" //DATA cNumCli INIT "" // Numero do cliente no Cód. Barras - 409-Unibanco Cob. Especial (6 posiçoes + DV) //DATA cNumRefCli INIT "" // Numero de Referência Cliente - 409-Unibanco Cob. Especial (15 posicoes) DATA SACADO INIT "" DATA ENDERECO INIT "" DATA COMPLEMENTO INIT "" DATA BAIRRO INIT "" DATA CIDADE INIT "" DATA ESTADO INIT "" DATA ENDERECO1 INIT "" READONLY DATA ENDERECO2 INIT "" READONLY DATA CEP INIT "" DATA CNPJ INIT "" DATA cCNPJ INIT "" READONLY DATA cCPF INIT "" READONLY DATA TpCarteira INIT "" READONLY DATA EspecieTit INIT "01" DATA cTipoCob INIT "" DATA ACEITE INIT "N" DATA INSTRUCOES INIT "" DATA INSTRUCOES2 INIT "" DATA DtVenc INIT CTOD("") DATA DtEmis INIT DATE() DATA cCodBco INIT "" DATA cDvBco INIT "" // Digito Verificador - Banco DATA cNomeBco INIT "" DATA cNumAgencia INIT "" DATA cDvAgencia INIT "" // Digito Verificador - Agencia DATA cNumCC INIT "" DATA cDvCC INIT "" // Digito Verificador - Conta Corrente DATA cDvAgCC INIT "" // Digito Verificador - Agência/Conta Corrente DATA cCarteira INIT "6" DATA cNossoNumero INIT "" DATA cNumDoc INIT "" DATA cTipoMoeda INIT "9" DATA cCDPF INIT "" // Codigo Cedente/Prefixo utilizado por alguns Bancos para identificar o Cliente BB,Unibanco,Bradesco DATA cDvCDPF INIT "" // Digito Verificador do CDPF, usado pela Caixa //*FJF* - 28/09/09 DATA cDGNN INIT "" DATA nDiasProt INIT 0 // Numero de dias p/ protesto DATA nValor INIT 0 DATA nMulta INIT 0 // % Multa - em caso de atraso. No boleto, é mostrado como Valor DATA nMora INIT 0 // % Mora diária a ser cobrado por dia de atraso DATA nDescDia INIT 0 // % Desconto Diário (pagamento antes do vencimento) DATA nValMulta INIT 0 READONLY // Valor - Multa - em caso de atraso. No boleto, é mostrado como Valor DATA nValMora INIT 0 READONLY // Valor - Mora diária a ser cobrado por dia de atraso DATA nValDescDia INIT 0 READONLY // Valor - Desconto Diário (pagamento antes do vencimento) DATA nBoletos INIT 0 READONLY // Numero de Boletos Impressos DATA nBolsPag INIT 1 // Numero de Boletos por Pagina METHOD New( cBco, cLocalPg ) CONSTRUCTOR METHOD Open( cArq, cPasta, cArqRem, cPastaRem, nNumRemessa, CNAB400 ) METHOD Close( ) METHOD ERASE() METHOD Merge( cCampo, cConteudo, lTudo ) METHOD Execute( ) METHOD Remessa( lAdd, cArqRem, cPastaRem, nNumRemessa, CNAB400 ) METHOD Print( lPreview, lPromptPrint, cPrinter ) METHOD Eject( ) METHOD isRegistrada( ) METHOD SetNomeRem( cArq ) ENDCLASS /* -------------------------------------------------------------------------- */ METHOD new( cBco, cLocalPg ) CLASS oBoleto LOCAL lFem := .F. DEFAULT cBco TO "033" #ifndef __PLATFORM__Linux IF EMPTY(::HtmEdit) ::HtmEdit := "C:\Arquivos de programas" // se algum cliente tiver Windows em ingles ... ENDIF ::HtmEdit += "\Internet Explorer\iexplore.exe" #endif DO CASE CASE cBco == "001" ::cDvBco := "9" ::cNomeBco := "Banco do Brasil" DEFAULT cLocalPg TO "Pagável em Qualquer Banco Até o Vencimento" CASE cBco == "070" // Colaboracao de Taibnis Vieira <tbnvieira@uol.com.br> ::cDvBco := "1" ::cNomeBco := "Banco do Brasilia" CASE cBco == "008" ::cDvBco := "6" ::cNomeBco := "Santander Meridional" CASE cBco == "033" ::cDvBco := "7" ::cNomeBco := "Santander" DEFAULT cLocalPg TO "Pagar preferencialmente no Grupo Santander - GC" CASE cBco == "104" ::cDvBco := "0" ::cNomeBco := "Caixa" //::lRemessa := .F. // Implementado 30/10/09 ( Padrao SIGCB Caixa ), by SysTux (Toninho Silva), systux@yahoo.com.br, 30/10/09 lFem := .T. //DEFAULT cLocalPg TO "PREFERENCIALMENTE NAS CASAS LOTÉRICAS E AGÊNCIAS DA CAIXA" DEFAULT cLocalPg TO "CASAS LOTÉRICAS, AGÊNCIAS DA CAIXA E REDE BANCÁRIA, APÓS VENC. SOMENTE NA CAIXA" CASE cBco == "237" ::cDvBco := "2" ::cNomeBco := "Bradesco" CASE cBco == "244" ::cDvBco := "5" ::cNomeBco := "Cidade" ::lRemessa := .F. // falta implementar no oRemessa CASE cBco == "341" ::cDvBco := "7" ::cNomeBco := "Itau" + __ANSI CASE cBco == "353" ::cDvBco := "0" ::cNomeBco := "Santander" CASE cBco == "356" ::cDvBco := "5" ::cNomeBco := "Real" CASE cBco == "399" ::cDvBco := "9" ::cNomeBco := "HSBC" CASE cBco == "409" ::cDvBco := "0" ::cNomeBco := "Unibanco" CASE cBco == "422" ::cDvBco := "7" ::cNomeBco := "Safra" ::EspecieTit:="DS" CASE cBco == "739" ::cDvBco := "7" ::cNomeBco := "Banco BGN" ENDCASE DEFAULT cLocalPg TO "Até o vencimento, pagável em qualquer banco. Após o vencimento, em qualquer"+; " agência d"+IIF(lFem,"a","o")+" "+::cNomeBco+; IIF(cBco == "999"," ou Banco Postal","")+"."+__ANSI ::cLocalPgto := cLocalPg ::cCodBco := cBco RETURN Self /* -------------------------------------------------------------------------- */ METHOD Open( cArq, cPasta, cArqRem, cPastaRem, nNumRemessa, CNAB400 ) CLASS oBoleto alguém tem alguma sugestão ???? BOBKOLHO1 - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  9. manda. email / skype = nardey@gmail.com
  10. obs. importante::::: não usei o arquivo acento.prg, pois, essas funções, salvo engano, estão dentro do bibbol.prg. se usar o acento.prg, vai dar erro na compilação. BOBKOLHO1 - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  11. baixe aqui os arquivos originais e tb com algumas alterações feitas por mim e compilando normalmente: http://3madvogados.com.br/index.php?folder=c2lzdGVtYSBhbHVub3M= estou trabalhando nele para o Santander (033) para imprimir 3 boletos por pagina em forma de carnê e com certeza vamos precisar de ajuda. BOBKOLHO1 - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  12. não consegui compilar mrboleto. vários erros em relação a xharbour/lib/rti.lib FWH/FWHX 6.12 - WORKSHOP - xdev 0.70 - bcc582
  13. mrboleto apresenta várias mensagens de erro com relação a xharbour/lib/rti.lib alguem conseguiu compilar normalmente???
  14. preciso de exemplos e ajuda. email / skype: nardey@gmail.com
  15. Olá Theotokos, envie para mim também. nardeypm@ig.com.br
  16. preciso incluir no meu programa o sistema de emissão de boletos, geração do arquivo remessa e processamento do arquivo retorno para dar baixa automatica nos boletos pagos. não tenho idéia de como fazer isso ou como funciona. aceito sugestões. BOBKOLHO1 - FWH/FWHX 6.12 + WORKSHOP + xdev 0.70
  17. podes enviar os resources e o voget.ch para testar. agradeço.
  18. procurei no forum essa informação e não obtive resposta. tem como eu fazer backup da base de dados dbf de dentro do programa, sem ocorrer erro na cópia? se sim, aceito sugestão de rotina para backup, pois, as que tentei, não funcionaram.
  19. resolvido em parte, amigo. obrigado pela ajuda...... entretanto, gostaria que alternasse entre azul (crédito) e vermelho (débito) ou que em caso de débito ficasse piscando (vermelho) para chamar a tenção do operador.
  20. o que eu pretendo é: - quando escolher credito ou debito na combobox, aparecer ao lado do campo preenchido, a palavra credito ou debito (grande e colorido ou piscando) para evitar erros e alertar o usuario sobre a opção escolhida. parece ser coisa simples, mas as vezes dá um branco. já tentei e só consigo que apareça uma opção. aceito sugestão.?? DEFINE FONT oSayFnt NAME "Arial" SIZE 0, -12 BOLD ITALIC DEFINE FONT oGetFnt NAME "Arial" SIZE 0, -12 BOLD DEFINE FONT oFon1 NAME "Arial" SIZE 0, -17 BOLD DEFINE DIALOG oDlg RESOURCE "CAD_PAGREC" TITLE If( lAppend, "Cadastro dos Pagamentos e Recebimentos", "Alteração dos Pagamentos e Recebimentos" ) REDEFINE GET oL02 VAR wndoc ID 33 OF oDlg PICTURE "@!" VALID ChkNomPgr(wndoc,lAppend) REDEFINE COMBOBOX ocbx VAR wtipo ITEMS {OemToAnsi("CRDITO"),OemToAnsi("DBITO")} ID 34 OF oDlg REDEFINE SAY oL15 VAR wtipo ID 43 OF oDlg PICTURE "@!" font oFon1 // qdo seleciono no combobox, quero mostrar a escolha em letras grandes e coloridas (ao lado do campo preenchido), para evitar enganos ao cadastrar credito no ludar de debito. REDEFINE GET oL04 VAR wdt_venc ID 35 OF oDlg PICTURE "@K,@D 99/99/9999" valid (wdt_venc#ctod(" / / ")) REDEFINE GET oL05 VAR wval ID 36 OF oDlg PICTURE "@E 999,999.99" VALID (IIF(left(wtipo,1)="C", wentr:=wval, wsaid:=wval), oL07:Refresh(), oL08:Refresh(),.t.) REDEFINE GET oL06 VAR wdt_pgto ID 37 OF oDlg PICTURE "@K,@D 99/99/9999" REDEFINE GET oL07 VAR wentr ID 38 OF oDlg PICTURE "@E 999,999.99" WHEN wsaid=0 .AND. SUBSTR(wtipo,1,1) = "C" UPDATE REDEFINE GET oL08 VAR wsaid ID 39 OF oDlg PICTURE "@E 999,999.99" COLORS RGB(255,000,000) WHEN wentr=0 .AND. SUBSTR(wtipo,1,1) = "D" UPDATE REDEFINE GET oL09 VAR wdoc_pgto ID 40 OF oDlg PICTURE "@!" REDEFINE GET oL10 VAR wdescri ID 41 OF oDlg PICTURE "@!" REDEFINE GET oL11 VAR wnome ID 42 OF oDlg PICTURE "@!" REDEFINE BUTTON oBt1 ID 30 OF oDlg ACTION ( lSave := .t. , oDlg:End()) WHEN ( !EMPTY(wndoc) .AND. !EMPTY(wtipo) .AND. !EMPTY(wval) .AND. !EMPTY(wdt_venc)) REDEFINE BUTTON oBt3 ID 31 OF oDlg ACTION ( lSave := .f. , oDlg:End()) ACTIVATE DIALOG oDlg CENTERED CursorArrow()
  21. uso indices cdx. a rotina é essa: FUNCTION EditRem( oLbx, lAppend ) local oDlg, oBt1, oBt2, lSave := .f., lSave2 := .f., nOldRec := RecNo(), nLimt, Old44, oDlg1 LOCAL oH01, oH02, oH03, oH04, oH05, oH06, oH07, oH08, oH09, oH10,; oH11, oH12, oH13, oH14, oH15, oH16, oH17, oH18, oH19, oH20,; oH21, oH22, oH23, oH24, oH25, oH26, oH27, oH28, oH29,; owcontr, owdt_matr, owestag, owdia1, owdia2, lOk := .T. SELECT 5 # banco alunos DbSetOrder(1) IF lAppend wcontr := SACAD->controle+1 wn_cli := SACAD->N_CLI nOldc := SACAD->N_CLI wnome := SACAD->NOME wdt_s := SACAD->DT_SAIDA wmatr := wn_cli wdt_saida := SACAD->DT_SAIDA wdt_nasc := SACAD->dt_nasc westag := space(10) wnota_mid := wnota_fine := wnota_oral := 0 whora1 := whora2 := SPACE(5) wvl_p1 := wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := wdesc := 0 wdt_matr := wdt_v1 := date() wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := SPACE(10) wdt_p1 := wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := SPACE(10) wmedia := wfaltas := wqtep := 0 wvl_estag := wturma := 0 wdia1 := wdia2 := SPACE(7) wpgto := SPACE(7) wdoc_pgto := space(20) wcarne := .f. ELSE wmatr := wn_cli := SACAD->n_cli wcontr := SACAD->controle wnome:=SACAD->NOME wdt_s:=SACAD->DT_SAIDA wdt_nasc:=SACAD->dt_nasc nOldc :=SACAD->N_CLI SELECT 7 # banco de notas e mensalidades dos alunos SANOTA->(DBSETORDER(4)) SANOTA->(DBGOTOP()) seek str(wmatr,6)+str(wcontr,3) if !FOUND() MsgAlert("Matricula e/ou Controle não encontrado","Atencao") RETURN ELSE nOldRec := RecNo() wdt_matr:= SANOTA->dt_matr westag := SANOTA->estagio westag_ant:= SANOTA->estagio wturma := SANOTA->turma wdia1 := SANOTA->dia_sem1 wdia2 := SANOTA->dia_sem2 whora1 := SANOTA->hora1 whora2 := SANOTA->hora2 wliv := SANOTA->livro wpgto := SANOTA->tipo_pg wdesc := SANOTA->desconto wnota_mid := SANOTA->nota_mid wnota_fine := SANOTA->nota_fine wnota_oral := SANOTA->nota_oral wvl_p1 := SANOTA->VL_RECEB1 wvl_p2 := SANOTA->VL_RECEB2 wvl_p3 := SANOTA->VL_RECEB3 wvl_p4 := SANOTA->VL_RECEB4 wvl_p5 := SANOTA->VL_RECEB5 wvl_p6 := SANOTA->VL_RECEB6 wdt_v1 := SANOTA->dt_venc1 wdt_v2 := SANOTA->dt_venc2 wdt_v3 := SANOTA->dt_venc3 wdt_v4 := SANOTA->dt_venc4 wdt_v5 := SANOTA->dt_venc5 wdt_v6 := SANOTA->dt_venc6 wdt_p1 := SANOTA->DT_PG1 wdt_p2 := SANOTA->DT_PG2 wdt_p3 := SANOTA->DT_PG3 wdt_p4 := SANOTA->DT_PG4 wdt_p5 := SANOTA->DT_PG5 wdt_p6 := SANOTA->DT_PG6 wmedia := SANOTA->media wfaltas:= SANOTA->faltas wvl_estag := SANOTA->vl_curso wqtep := SANOTA->qte_parc wdoc_pgto := space(20) endif ENDIF IF !EMPTY(DT_SAIDA) MsgAlert("Aluno está cadastrado como DESISTENTE - DATA DA SAIDA --> "+DTOC(DT_SAIDA),OemToAnsi("Aten‡Æo!")) RETURN ENDIF DEFINE DIALOG oDlg1 RESOURCE "CONTROLE" TITLE If( lAppend, "Rematricula do Aluno", "Alteração da Rematricula do Aluno" ) REDEFINE SAY oSay VAR wn_cli ID 33 OF oDlg1 PICTURE "999999" font ofon1 REDEFINE SAY oSay VAR wnome ID 34 OF oDlg1 PICTURE "@!" font ofon1 REDEFINE GET oH80 VAR wdt_matr ID 35 OF oDlg1 PICTURE "@K,@D 99/99/9999" font ofon1 REDEFINE GET oH81 VAR wcontr ID 36 OF oDlg1 PICTURE "@!" VALID ChkNomCtr(wcontr) Redefine Button obtn[1] Prompt "Estagio" ID 70 Of oDlg1 Action NomeEstRem(oH82) REDEFINE GET oH82 var westag ID 37 OF oDlg1 PICTURE "@!" VALID ChkNomEst2(westag) REDEFINE GET oH83 var wturma ID 38 OF oDlg1 PICTURE "999" REDEFINE COMBOBOX oH84 VAR wdia1 ITEMS {"SEGUNDA","TERÇA","QUARTA","QUINTA","SEXTA","SÃBADO"} ID 39 OF oDlg1 UPDATE REDEFINE COMBOBOX oH85 VAR wdia2 ITEMS {"SEGUNDA","TERÇA","QUARTA","QUINTA","SEXTA","SÃBADO"} ID 40 OF oDlg1 UPDATE REDEFINE GET oH86 VAR whora1 ID 41 OF oDlg1 PICTURE "99:99" REDEFINE GET oH87 var whora2 ID 42 OF oDlg1 PICTURE "99:99" REDEFINE GET oH88 VAR wnota_mid ID 43 OF oDlg1 PICTURE "999.99" UPDATE REDEFINE GET oH89 VAR wnota_fine ID 44 OF oDlg1 PICTURE "999.99" UPDATE REDEFINE GET oH90 var wnota_oral ID 45 OF oDlg1 PICTURE "999.99" VALID ((wmedia:=((wnota_oral*2)+wnota_mid+wnota_fine)/4), oH91:Refresh(),.t.) UPDATE REDEFINE GET oH91 var wmedia ID 46 OF oDlg1 PICTURE "999.99" UPDATE IF lAppend REDEFINE COMBOBOX oCbx VAR wpgto ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" } ID 47 OF oDlg1 ON CHANGE VER_PARCELAS( oCbx ) valid !empty(wpgto) oCbx:refresh() REDEFINE BUTTON oBt1 ID 30 OF oDlg1 ACTION ( lSave2 := .t. , oDlg1:End()) WHEN (!EMPTY(wpgto)) REDEFINE BUTTON oBt3 ID 31 OF oDlg1 ACTION ( lSave2 := .F. , oDlg1:End()) WHEN (EMPTY(wpgto)) ELSE REDEFINE COMBOBOX oCbx VAR wpgto ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" } ID 47 OF oDlg1 oCbx:refresh() REDEFINE BUTTON oBt1 ID 30 OF oDlg1 ACTION ( lSave2 := .t. , oDlg1:End()) REDEFINE BUTTON oBt3 ID 31 OF oDlg1 ACTION ( lSave2 := .F. , oDlg1:End()) ENDIF ACTIVATE DIALOG oDlg1 CENTERED IF lsave2 SELECT 7 IF lAppend SANOTA->(DBSETORDER(2)) WHIL ! SANOTA->(RLOCK()) ; END SANOTA->(DBAPPEND()) ELSE go nOldRec ENDIF SANOTA->(DBSETORDER(0)) REPLACE SANOTA->MATRIC WITH wmatr REPLACE SANOTA->NOME WITH wnome REPLACE SANOTA->DT_MATR WITH wdt_matr REPLACE SANOTA->CONTROLE WITH wcontr REPLACE SANOTA->ESTAGIO WITH westag REPLACE SANOTA->TURMA WITH wturma REPLACE SANOTA->FALTAS WITH wfaltas REPLACE SANOTA->DIA_SEM1 WITH wdia1 REPLACE SANOTA->DIA_SEM2 WITH wdia2 REPLACE SANOTA->HORA1 WITH whora1 REPLACE SANOTA->HORA2 WITH whora2 REPLACE SANOTA->NOTA_MID WITH wnota_mid REPLACE SANOTA->NOTA_FINE WITH wnota_fine REPLACE SANOTA->NOTA_ORAL WITH wnota_oral REPLACE SANOTA->MEDIA WITH wmedia REPLACE SANOTA->LIVRO WITH "N" IF EMPTY(wnota_mid) .AND. EMPTY(wnota_fine) .AND. EMPTY(wnota_oral) REPLACE SANOTA->OBS WITH SPACE(15) ELSE REPLACE SANOTA->OBS WITH IIF(wmedia >= 69,"APROVADO","REPROVADO") ENDIF IF lAppend REPLACE SANOTA->DT_VENC1 WITH wdt_v1 REPLACE SANOTA->DT_VENC2 WITH wdt_v2 REPLACE SANOTA->DT_VENC3 WITH wdt_v3 REPLACE SANOTA->DT_VENC4 WITH wdt_v4 REPLACE SANOTA->DT_VENC5 WITH wdt_v5 REPLACE SANOTA->DT_VENC6 WITH wdt_v6 REPLACE SANOTA->DT_PG1 WITH wdt_p1 REPLACE SANOTA->DT_PG2 WITH wdt_p2 REPLACE SANOTA->DT_PG3 WITH wdt_p3 REPLACE SANOTA->DT_PG4 WITH wdt_p4 REPLACE SANOTA->DT_PG5 WITH wdt_p5 REPLACE SANOTA->DT_PG6 WITH wdt_p6 REPLACE SANOTA->TIPO_PG WITH wpgto REPLACE SANOTA->QTE_PARC WITH wqtep REPLACE SANOTA->DESCONTO WITH wdesc REPLACE SANOTA->VL_CURSO WITH wvl_estag REPLACE SANOTA->DT_DIGIT WITH date() REPLACE SANOTA->DT_SAIDA WITH wdt_s IF wpgto="A VISTA" *----------- A matricula e a primeira mensalidade. ---------* REPLACE SANOTA->DT_RECEB1 WITH wdt_v1 REPLACE SANOTA->VL_RECEB1 WITH wvl_p1 *------------------------------------------------------------* ENDIF REPLACE SANOTA->VL_PARC1 WITH wVL_p1 REPLACE SANOTA->VL_PARC2 WITH wVL_p2 REPLACE SANOTA->VL_PARC3 WITH wVL_p3 REPLACE SANOTA->VL_PARC4 WITH wVL_p4 REPLACE SANOTA->VL_PARC5 WITH wVL_p5 REPLACE SANOTA->VL_PARC6 WITH wVL_p6 ENDIF SANOTA->(DBSETORDER(1)) dbunlock() DbCommit() SysRefresh() IF lAppend LOGReg(nOper,cOper,"CADASTROU A REMATRICULA E MENSALIDADES DO ALUNO "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_ESTAG, "SANOTA", wn_cli) ELSE LOGReg(nOper,cOper,"ALTEROU A REMATRICULA E MENSALIDADES DO ALUNO "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_ESTAG, "SANOTA", wn_cli) ENDIF IF lAppend .AND. wpgto="A VISTA" SELECT 10 # banco do movimento de caixa/receitas/despesas SACPMOV->(DBSETORDER(1)) WHIL ! SACPMOV->(RLOCK()) ; END SACPMOV->(DBGOBOTTOM()) SACPMOV->(DBAPPEND()) SACPMOV->(DBSETORDER(0)) REPLACE SACPMOV->N_DOC WITH "M"+ltrim(str(wmatr,6))+ltrim(str(wcontr,3))+"1" REPLACE SACPMOV->DT_VENC WITH wdt_v1,tipo with "C" REPLACE SACPMOV->VALOR WITH wvl_p1 REPLACE SACPMOV->PARCELA WITH 1 REPLACE SACPMOV->DT_PGTO WITH wdt_v1 REPLACE SACPMOV->VL_PG_REC WITH wvl_p1 REPLACE SACPMOV->DOC_PGTO WITH wdoc_pgto REPLACE SACPMOV->DESCRI WITH "MENS. DE "+wnome+"-"+westag SACPMOV->(DBSETORDER(1)) dbunlock() DbCommit() SysRefresh() LOGReg(nOper,cOper,"CADASTROU O RECEBIMENTO DA 1ª PARCELA "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_P1, "SACPMOV", wn_cli) ELSE LOGReg(nOper,cOper,"CADASTROU O RECEBIMENTO DA 1ª PARCELA "+ALLTRIM(STR(wn_cli))+"-"+wnome, WVL_P1, "SACPMOV", wn_cli) ENDIF SELECT 5 SACAD->(DBSETORDER(1)) SACAD->(DBGOTOP()) SEEK wmatr WHIL ! SACAD->(RLOCK()) ; END SACAD->(DBSETORDER(0)) REPLACE SACAD->DT_MATR WITH wdt_matr REPLACE SACAD->ESTAGIO WITH westag REPLACE SACAD->TIPO_PG WITH wpgto REPLACE SACAD->CONTROLE WITH wcontr SACAD->(DBSETORDER(1)) dbunlock() DbCommit() SysRefresh() IF lAppend .AND. (wpgto="A VISTA") *--------impressão do recibo--------------------------------- ENDIF else Select 5 ENDIF IF oLbx <> NIL oLbx:UpStable() oLbx:Refresh() ENDIF oDlg1:Refresh() RETURN(lSave) //----------------------------------------------------------------------------// static function ver_parcelas( oCbx ) // ITEMS { "A VISTA", "A PRAZO", "BOLETO", "BOLSA" } IF ( oCbx:nAt ) = 1 // Primeira opcao do combo wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := CTOD(SPACE(10)) wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := 0 wdt_p1=wdt_v1 wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := CTOD(SPACE(10)) DEFINE DIALOG oDlg2 RESOURCE "AVISTA" REDEFINE SAY oSay VAR wvl_estag ID 37 OF oDlg2 PICTURE "@E 999,999.99" REDEFINE GET oH30 var wdesc ID 33 OF oDlg2 PICTURE "99.99" VALID (wvl_p1:=(wvl_estag-(wvl_estag*wdesc)/100), oH31:Refresh(),.t.) UPDATE REDEFINE SAY oSay VAR wdt_v1 ID 34 OF oDlg2 PICTURE "@K,@D 99/99/9999" REDEFINE GET oH31 VAR wvl_p1 ID 35 OF oDlg2 PICTURE "999,999.99" UPDATE REDEFINE GET oH32 VAR wdoc_pgto ID 36 OF oDlg2 PICTURE "@!" UPDATE REDEFINE BUTTON oBt4 ID 30 OF oDlg2 ACTION ( lSave2 := .t. , oDlg2:End()) WHEN ( !EMPTY(WDT_V1) .AND. !EMPTY(WDOC_PGTO)) REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End()) ACTIVATE DIALOG oDlg2 ELSEIF ( oCbx:nAt ) = 2 // Segunda opcao do combo DEFINE DIALOG oDlg2 RESOURCE "PARCELADO" REDEFINE SAY oSay VAR wvl_estag ID 65 OF oDlg2 PICTURE "@E 999,999.99" REDEFINE GET oH40 var wqtep ID 48 OF oDlg2 PICTURE "99" VALID CONDICAO() oDlg2:Refresh() REDEFINE GET oH41 var wdesc ID 49 OF oDlg2 PICTURE "99.99" UPDATE REDEFINE GET oH42 VAR wdt_v1 ID 50 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH43 VAR wdt_v2 ID 51 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH44 VAR wdt_v3 ID 52 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH45 VAR wdt_v4 ID 53 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH46 VAR wdt_v5 ID 54 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH47 VAR wdt_v6 ID 55 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH48 VAR wdt_p2 ID 56 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH49 VAR wdt_p3 ID 57 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH50 VAR wdt_p4 ID 58 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH51 VAR wdt_p5 ID 59 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH52 VAR wdt_p6 ID 60 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE BUTTON oBt4 ID 30 OF oDlg2 ACTION ( lSave2 := .t., oDlg2:End()) WHEN !EMPTY(WDT_V1) REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End()) ACTIVATE DIALOG oDlg2 ELSEIF ( oCbx:nAt ) = 3 // Terceira opcao do combo DEFINE DIALOG oDlg2 RESOURCE "PARCELADO" REDEFINE SAY oSay VAR wvl_estag ID 65 OF oDlg2 PICTURE "@E 999,999.99" REDEFINE GET oH60 var wqtep ID 48 OF oDlg2 PICTURE "99" VALID CONDICAO() oDlg2:Refresh() REDEFINE GET oH61 var wdesc ID 49 OF oDlg2 PICTURE "99.99" UPDATE REDEFINE GET oH62 VAR wdt_v1 ID 50 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH63 VAR wdt_v2 ID 51 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH64 VAR wdt_v3 ID 52 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH65 VAR wdt_v4 ID 53 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH66 VAR wdt_v5 ID 54 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH67 VAR wdt_v6 ID 55 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH68 VAR wdt_p2 ID 56 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH69 VAR wdt_p3 ID 57 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH70 VAR wdt_p4 ID 58 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH71 VAR wdt_p5 ID 59 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE GET oH72 VAR wdt_p6 ID 60 OF oDlg2 PICTURE "@K,@D 99/99/9999" UPDATE REDEFINE BUTTON oBt4 ID 30 OF oDlg2 ACTION ( lSave2 := .t., oDlg2:End()) WHEN !EMPTY(WDT_V1) REDEFINE BUTTON oBt5 ID 31 OF oDlg2 ACTION ( lSave2 := .F. , oDlg2:End()) ACTIVATE DIALOG oDlg2 ELSEIF ( oCbx:nAt ) = 4 // Quarta opcao do combo wdt_v1 := wdt_v2 := wdt_v3 := wdt_v4 := wdt_v5 := wdt_v6 := CTOD(SPACE(10)) wvl_p1 := wvl_p2 := wvl_p3 := wvl_p4 := wvl_p5 := wvl_p6 := 0 wdt_p1 := wdt_p2 := wdt_p3 := wdt_p4 := wdt_p5 := wdt_p6 := CTOD(SPACE(10)) wvl_estag := wdesc := 0 wdoc_pgto := space(20) ENDIF RETURN( .T. ) // ------------------------------------------------------------------------ FUNCTION ChkNomCtr(wcontr) SET ORDER TO 4 SEEK wcontr IF FOUND() MsgStop(OemToAnsi("Este Controle j est cadastrado. Verifique antes de prosseguir!"),OemToAnsi("Aten‡Æo!")) SET ORDER TO 2 RETURN .T. ENDIF SET ORDER TO 2 RETURN (!EMPTY(wcontr)) // ------------------------------------------------------------------------ Function NomeEstRem(oH82) LOCAL oSelect := SELECT() Select 8 SAESTA->(DBSETORDER(1)) SAESTA->(DBGOTOP()) Define Dialog oDlg1 Resource "buscar_2" title "..::Nome do Estagio" REDEFINE Get oGet Var cBusca Picture "@!" ID 104 Of oDlg1 ON CHANGE ( oLbx:Refresh(), Buscar( nKey, oGet ) ) Redefine ListBox olbx Fields SAESTA->ESTAGIO,Trans(SAESTA->VALOR_CUR,"@E 999,999.99"); Header "ESTAGIO","VALOR DO CURSO" ID 101 of odlg1 FONT oGetFnt; ON DBLCLICK Sele_EstRem(oH82) oLbx:nClrBackHead := RGB( 0, 0, 255 ) // Cor do Fundo do Cabe‡alho oLbx:nClrBackFocus := RGB( 040, 004, 090 ) // Cor do Cursor Em Cima do Ötem oLbx:nClrForeHead := RGB( 255, 255, 235 ) // Cor nos Headers - Cabe‡alhos %3
×
×
  • Create New...