Code: Select all | Expand
/*
REDEFINE BUTTON oEnviarEmail ID 304 OF oDlg ;
ACTION ( ENVIAR_EMAIL_CONTATO( cEmailPaisa, CPAISANOME ) )
*/ // GENERAR EL ARCHIVO EM *.PDF /* CREAR UN DIALOGO DE BOTONES PARA GENERAR EL TIPO DE PREVIEW O PDF
LOCAL Tipo_Opcao_PDF := 1
REDEFINE BUTTONBMP oPrevAdobe ID 301 OF oDlgBtn ;
ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 1 ) ) // ADOBE
oPrevAdobe:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do Adobe" )
REDEFINE BUTTONBMP oPrevFive ID 302 OF oDlgBtn ;
ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 2 ) ) // FIVEWIN
oPrevFive:cToolTip := OemToAnsi( "Criar o Arquivo PDF com Preview do FiveWin" )
REDEFINE BUTTONBMP oPrevGravar ID 303 OF oDlgBtn ;
ACTION( IMP_ARQUIVO_EM_PDF( Tipo_Opcao_PDF := 3 ) ) // SEM PREVIEW
oPrevGravar:cToolTip := OemToAnsi( "Sem Preview, Apenas Gravar o PDF Para Email" )
REDEFINE BUTTONBMP oSaida ID 304 OF oDlgBtn ;
ACTION( oDlgBtn:End() ) CANCEL
*/FUNCTION IMP_ARQUIVO_EM_PDF
( Tipo_Opcao_PDF, lAppend
) LOCAL oPrn, nMargin, nWidth, nColWidth, nRow, nCol, oImage
LOCAL XDATALISTA, cAlias
LOCAL oFont, oFontLogo, oFontDivi, oFontList, oFontCurs, oPen1, oPen2, ;
oPen3, oFontSubl, ResLinha, ResColuna, cProposta, nLinha, nColuna, ;
oFontBold, nTotalParc :=
0.00, nTotalGeral :=
0.00 LOCAL nPulaLinha, oFontMin
LOCAL cFile
// := "C:\NFEPDF\CHAMADO.PDF" MEMVAR nProposta, nContrato, dPedidoEm, dAgendado, HoraAgend, dParaPaisa
MEMVAR dParaEscrit, dReageando, hReageHora, ClienPropo, EnderPropo
MEMVAR BairrPropo, CepdaPropo, cNomeZelad, cFoneZelad, cNomeSindi
MEMVAR cFoneSindi, cFaxSindic, cCodAdmini, cEnviaProp, cObsPropos
MEMVAR cContatoPro, cEmailProp1
MEMVAR cCodGrupo, cNomeGrupo, nClienCod
MEMVAR cPrimLimpeza, nValorLimp, cObsLimpeza, cManutPropo, nValorManut, ;
cObsManuten, cFerramen01, cFerramen02, cSacosLixo
MEMVAR CCOBGRAMADO, CSCSMAOOBRA, CUSOCARRINHO
MEMVAR nDesconto
// Desconto da proposta MEMVAR CPAISACODI, CPAISANOME, cEmailPaisa
MEMVAR CidadPropo, UFdaPropo, cEmailCli, cContatoCli, cFuncaoClie
MEMVAR cFonesClien, cFonesAdmin, cFonesPaisa, cFuncaoAdmi
XDATALISTA :=
"SÃO PAULO" +
", " + ;
LTRIM
( STR
( DAY
( DATE
() ) ) ) + ;
" de " + ;
OEMTOANSI
(CMONTH
( DATE
() )) + ;
" de " + ;
STR
( YEAR( DATE
() ) ) + ;
"." // NOME DO ARQUIVO PDF EM ONDE VAI GUARDAR IF lAppend
cFile :=
"C:\NFEPDF\"+"PROP
"+ALLTRIM( STR( nProposta ) ) +".PDF
"
ELSE
cFile := "C:\NFEPDF\
"+"PROP
"+ALLTRIM( nProposta ) + ".PDF
"
ENDIF
SELECT( DBCADPROPO )
SET ORDER TO 01
IF lAppend // Inclusao
SEEK nProposta
ELSE
SEEK VAL( nProposta )
ENDIF
IF EOF()
MsgStop( OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo
" ), ;
OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo
" ) )
RETURN NIL
ENDIF
oImage := ".\LOGO.jpg
" // tem que estar na pasta do plenoind
IF Tipo_Opcao_PDF = 1 // PREVIEW DO ADOBE
PRINT oPrn NAME "COLETA DE DADOS PARA COTAÇÃO
" PREVIEW FILE cFile
ELSEIF Tipo_Opcao_PDF = 2 // PREVIEW DO FIVEWIN
PRINT oPrn NAME "PROP
"+ALLTRIM( nProposta ) PREVIEW MODAL
ELSEIF Tipo_Opcao_PDF = 3 /// SEM PREVIEW: SO GRAVA O .PDF EM C:\NFEPDF
PRINT oPrn NAME "COLETA DE DADOS PARA COTAÇÃO
" FILE cFile
ENDIF
DEFINE FONT oFontMin NAME "Courier
New" SIZE 0, -8 OF oPrn
DEFINE FONT oFont NAME "Courier
New" SIZE 0, -10 OF oPrn
DEFINE FONT oFontBold NAME "Courier
New" SIZE 0, -10 BOLD OF oPrn
DEFINE FONT oFontSubl NAME "Courier
New" SIZE 0, -16 BOLD OF oPrn
DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn
DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
oPrn:SetPage(9) //-> A4 //9
oPrn:SetPortrait() //-> Vertical(Retrato)
ResLinha := oPrn:nLogPixely()/2.54
ResColuna := oPrn:nLogPixelx()/2.54
nMargin := Int( 0.1 * oPrn:nHorzRes() )
nWidth := 8 * nMargin
nColWidth := Int( ( nWidth - nMargin ) / 2 )
PAGE
nRow := 10 // Linha
nCol := 150 // Coluna do Logo.jpg
@ nRow, nCol PRINT TO oPrn IMAGE "LOGO.jpg
" SIZE 400, 400 LASTROW nRow
oPrn:Say( 0.50 * ResLinha, 10.00 * ResColuna, ;
"COLETA DE DADOS PARA COTAÇÃO
" , ;
oFontSubl,, CLR_BLACK,, PAD_CENTER )
oPrn:Box( 1.20 * ResLinha, 0.50 * ResColuna, ;
7.80 * ResLinha, 20.50 * ResColuna, oPen3 )
nLinha := 1.50
nColuna := 2.80
IF lAppend
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Solicitação Nº.:
" + ALLTRIM( STR( nProposta ) ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
ELSE
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Solicitação Nº.:
" + ALLTRIM( nProposta ), oFont,, ;
CLR_BLACK,, PAD_CENTER )
ENDIF
nColuna := nColuna += 5.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Data:
" + DTOC( dPedidoEm ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 5.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Agendado Para:
" + DTOC( dAgendado ), oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 5.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Horário:
" + HoraAgend, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 6.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Cliente:
" + ClienPropo, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Contato:
" + ALLTRIM( cContatoCli ), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.90
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Local:
" + EnderPropo, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Função:
" + cFuncaoClie, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 3.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Bairro:
" + BairrPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 4.80
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Cid:
" + CidadPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 3.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Uf:
" + UFdaPropo, oFontMin,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 2.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Cep.:
" + TRANSF( ( CepdaPropo ), "@R
99999-999" ), oFontMin,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 4.60
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Fone:
" + cFonesClien, oFontMin,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 9.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Email:
" + cEmailCli, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.80
nColuna := 4.20
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Administradora:
" + cCodAdmini, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 10.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Fones:
" + cFonesAdmin, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Contato:
" + cContatoPro, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 11.40
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Função:
" + cFuncaoAdmi, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 9.05
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Email:
" + cEmailProp1, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.80
nColuna := 5.40
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Descrição Simples
do Trabalho Pretendido:
", oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 14.85
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"_________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:Box( 8.00 * ResLinha, 0.50 * ResColuna, ;
10.00 * ResLinha, 20.50 * ResColuna, oPen3 )
nLinha := nLinha += 1.20
nColuna := 3.90
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Distribuição da Solicitação:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 14.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Data:
" + DTOC( dParaPaisa ), oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 6.45
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Paisagista:
" + CPAISANOME, oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 10.30
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Fones:
" + cFonesPaisa, oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 9.10
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Email:
" + cEmailPaisa, oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:Box( 10.20 * ResLinha, 0.50 * ResColuna, ;
13.30 * ResLinha, 20.50 * ResColuna, oPen3 )
nLinha := nLinha += 1.20
nColuna := 2.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"DADOS COLETADOS
", oFontBold,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.85
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Descrição Técnica
do Trabalho a Ser Executado:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := 15.25
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"_____________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
oPrn:Box( 13.52 * ResLinha, 0.50 * ResColuna, ;
26.30 * ResLinha, 10.70 * ResColuna, oPen3 )
oPrn:Box( 13.52 * ResLinha, 10.90 * ResColuna, ;
26.30 * ResLinha, 20.50 * ResColuna, oPen3 )
nLinha := nLinha += 1.20
nColuna := 4.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Materiais a Serem Utilizados
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 8.80
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Mão de Obra:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 3.00
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Quant. Descrição:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nColuna := nColuna += 11.15
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Descrição das Horas/Homens
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 5.50
FOR nPulaLinha = 1 TO 23
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"______ ______________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
NEXT nPulaLinha
nLinha := 14.70
nColuna := 15.60
FOR nPulaLinha = 1 TO 3
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"__________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
NEXT nPulaLinha
nLinha := 16.50
nColuna := 13.80
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Utilização de Ferramentas
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 13.20
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Quant. Descrição:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := 17.65
nColuna := 15.65
FOR nPulaLinha = 1 TO 17
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"______ ___________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha += 0.50
NEXT nPulaLinha
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"_______________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 4.65
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Retorno Para Formação da Proposta:
", oFont,, ;
CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 8.15
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Recepcionado Por: _________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Data: ___/___/___
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 8.15
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Elaborado Por: _________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nColuna := 17.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"Data: ___/___/___
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
nLinha := nLinha += 0.50
nColuna := 10.50
oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, ;
"_______________________________________________________________________________________________
", ;
oFont,, CLR_BLACK,, PAD_CENTER )
ENDPAGE
ENDPRINT
oFont:End()
oFontBold:End()
oFontSubl:End()
oFontMin:End()
oPen1:End()
oPen2:End()
oPen3:End()
IF Tipo_Opcao_PDF = 3
MsgInfo( OemToAnsi( "Arquivo *.PDF Criado em:
C:\NFEPDF Pode Enviar Email
" ), ;
OemToAnsi( "Arquivo *.PDF Criado em:
C:\NFEPDF Pode Enviar Email
" ) )
ENDIF
RETURN NIL
// ENVIO DE EMAIL
FUNCTION ENVIAR_EMAIL_CONTATO( cEmailPaisa, CPAISANOME )
LOCAL oDlgErro, oFnt, oFont, IDCor, oSaida, oIco, cSiteFlexs, oAjudaErro, ;
oSaida2, oSayFalha, cPromptDsay, cSiteGoogle, oEnviaEmail, cTitle, ;
oErro5305, cErro5305, cFile
LOCAL MailTo, cSndFile, cSndFile2, cText, cSubj, aFiles
PUBLIC WNOMEEMPRESA, CUF, cMatriz
PUBLIC lErroVemFalhaXML := .T.
PUBLIC cEMailCli
XDATALISTA := "SÃO PAULO
" + ",
" + ;
LTRIM( STR( DAY( DATE() ) ) ) + ;
" de
" + ;
OEMTOANSI(CMONTH( DATE() )) + ;
" de
" + ;
STR( YEAR( DATE() ) ) + ;
".
"
// MODIFICADO PARA SALVAR O PDF NA PASTA: C:\NFEPDF
cPRGPATH := cFILEPATH( "C:\NFEPDF\
" )
lCHDIR(cPRGPATH) // LOCAL ONDE FICAM OS ARQUIVOS *.PDF
// Campo Para:
MailTo := ALLTRIM( cEmailPaisa ) //"joao@pleno.com.br"
// Arquivo a Anexar
cFile := "C:\NFEPDF\
"+"PROP
"+ALLTRIM( nProposta )+".PDF
"
cSndFile := ALLTRIM( cFile ) // cDirPleno + "\gilmer.Log
"
cSndFile2 := "" // cDirPleno + "\ERROR.Log
"
IF .NOT. FILE( cSndFile )
MsgInfo( OemToAnsi( "Arquivo *.PDF NÆo Localizado em C:\NFEPDF
" ), ;
OemToAnsi( "Arquivo *.PDF NÆo Localizado em C:\NFEPDF
" ) )
cSndFile := ""
ENDIF
IF .NOT. FILE( cSndFile2 )
cSndFile2 := ""
ENDIF
cText := "Senhor:
" + ALLTRIM( CPAISANOME ) +CRLF+CRLF+ ;
"Segue em Anexo, em Formato PDF, Dados
do Primeiro
" +CRLF+CRLF+ ;
"Contato Para Análise e Providências de V.Sa.
" +CRLF+CRLF+ ;
"Texto
Final, deve ser repassado ...........
" +CRLF+CRLF+ ;
+ ALLTRIM( WNOMEEMPRESA )+" -
"+cUf +CRLF+CRLF+ ;
XDATALISTA
// Titulo do Email
cSubj := "Coleta de Dados Para Cotação
"
// Abre o OutLook Express ou o Windows Live Mail - Tem que estar padrao
SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj )
// VOLTO AO DIRETORIO
lCHDIR( cDirPleno )
RETURN NIL
// Envia o arquivo de erro do programa - Incluido em: 22/07/2014
FUNCTION SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj )
LOCAL oMail
DEFINE MAIL oMail ;
SUBJECT cSubj ;
TEXT cText ;
FILES cSndFile, cSndFile, cSndFile2, cSndFile2 ;
FROM USER ;
TO MailTo
ACTIVATE MAIL oMail
IF ( oMail:nRetCode ) = 0
//MsgInfo( "Mensagem Enviada com Sucesso
", "Aviso
" )
ELSE
MsgInfo( OemToAnsi( "NÆo Foi Possivel Enviar a Mensagem de Erro
" )+CRLF+;
OemToAnsi( "Por Favor Verifique se o Enviador de Email
" )+CRLF+;
OemToAnsi( "OutLook Express ou Windows Live
Mail,
" )+CRLF+;
OemToAnsi( "Est Definido Como Enviador PadrÆo, nas
" )+CRLF+;
OemToAnsi( "Op‡äes da Internet
do Internet Explorer.
" )+CRLF+;
OemToAnsi( "Op‡Æo: <Definir Programas> Anote
" )+CRLF+;
OemToAnsi( "Op‡Æo: <Definir os Programas PadrÆo>
" ), ;
OemToAnsi( "NÆo Foi Possivel Enviar a Mensagem de Erro
" ) )
ENDIF
RETURN( .T. )
Saludos.