- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Re: Envio Danfe PDf E-mail Cliente
×
Linguagem de Programação ADVPL
Perguntas Re: Envio Danfe PDf E-mail Cliente
- iranildo74205
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
12 anos 4 meses atrás #3029
por iranildo74205
Envio Danfe PDf E-mail Cliente foi criado por iranildo74205
Pessoal do MasterAdvpl criei uma rotina que roda em JOB para gerar o danfe_numerodanfe.pdf e enviar o pdf para o e-mail do cliente. Basta criar o campo F3_YDANFE na SF3 sendo um flag para a rotina processar.
Caso precisem do restante do fonte é só avisar que irei enviar o fonte completo.
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³ RPdfDanfe ³ Autor ³ Iranildo Cavalcante ³ Data ³ 25/04/2012³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri+.o ³ Gerar e Enviar e-mail do PDF da Danfe da Nf-e ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±ºUso ³ Especifico COGERH º±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
User Function RPdfDanfe()
Private oDanfe
Private nConsNeg := 0.4 // Constante para concertar o cálculo retornado pelo GetTextWidth para fontes em negrito.
Private nConsTex := 0.5 // Constante para concertar o cálculo retornado pelo GetTextWidth.
// Gera Log De Servico
ConOut("INICIO DO PROCESSAMENTO DE EMAILS DA DANFE :" + DtoC(Msdate()) + " Hora: " + Time())
// Inicializa a environment para execucao do schedule
PREPARE ENVIRONMENT EMPRESA aspassimples01aspassimples FILIAL aspassimples01aspassimples MODULO aspassimplesFATURAMENTOaspassimples FUNNAME aspassimplesRPDFaspassimples TABLES "SF2","SF3"
dbSelectArea("SF3")
cIndexName := Criatrab(Nil,.F.)
cIndexKey := "F3_NFISCAL+F3_CLIEFOR"
cFilter := "F3_FILIAL==aspassimples"+xFilial("SF3")+"aspassimples .And. "
cFilter += "F3_CODRSEF=aspassimples100aspassimples .And. F3_CHVNFE <>aspassimples aspassimples .And."
cFilter += "F3_YDANFE<>aspassimplesSaspassimples .And. F3_CFO >= aspassimples5000aspassimples "
IndRegua("SF3", cIndexName, cIndexKey,, cFilter, Nil)
dbSelectArea("SF3")
dbGoTop()
oFont1 := TFont():New( "Courier New", , -18, .T.)
While !EOF()
MV_PAR01 := SF3->F3_NFISCAL
MV_PAR02 := SF3->F3_NFISCAL
MV_PAR03 := aspassimples1 aspassimples
MV_PAR04 := 2
MV_PAR05 := 2
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Posiciona o SA1 (Cliente) ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DbSelectArea("SA1")
DbSetOrder(1)
DbSeek(xFilial()+SF3->F3_CLIEFOR+SF3->F3_LOJA,.T.)
DbSelectArea("SF3")
if Alltrim(SA1->A1_EMAIL) <> "" // Se tiver cadastrado o e-mail do Cliente.
If oDanfe == Nil
lPreview := .T.
oDanfe := FWMSPrinter():New(aspassimplesDanfe_aspassimples+SF3->F3_NFISCAL,6,.F.,,.T.)
oDanfe:SetPortrait()
oDanfe:SetPaperSize(9)
oDanfe:SetMargin(60,60,60,60)
oDanfe:cPathPDF := "C:\"
oDanfe:SetViewPDF(.F.)
EndIf
Private PixelX := oDanfe:nLogPixelX()
Private PixelY := oDanfe:nLogPixelY()
DanfePro1(@oDanfe,,"000001",,,.F.)
If lPreview
oDanfe:Preview() //Visualiza antes de imprimir
EndIf
// ---- Enviar e-mail do Danfe.pdf para o e-mail do Cliente 18/04/2012
EnvDanfe(Alltrim(SA1->A1_EMAIL),Alltrim(SF3->F3_NFISCAL))
FreeObj(oDanfe)
oDanfe := Nil
endif
Reclock("SF3",.F.)
SF3->F3_YDANFE := "S"
MsUnlock()
dbSkip()
EndDo
Caso precisem do restante do fonte é só avisar que irei enviar o fonte completo.
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³ RPdfDanfe ³ Autor ³ Iranildo Cavalcante ³ Data ³ 25/04/2012³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri+.o ³ Gerar e Enviar e-mail do PDF da Danfe da Nf-e ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±ºUso ³ Especifico COGERH º±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
User Function RPdfDanfe()
Private oDanfe
Private nConsNeg := 0.4 // Constante para concertar o cálculo retornado pelo GetTextWidth para fontes em negrito.
Private nConsTex := 0.5 // Constante para concertar o cálculo retornado pelo GetTextWidth.
// Gera Log De Servico
ConOut("INICIO DO PROCESSAMENTO DE EMAILS DA DANFE :" + DtoC(Msdate()) + " Hora: " + Time())
// Inicializa a environment para execucao do schedule
PREPARE ENVIRONMENT EMPRESA aspassimples01aspassimples FILIAL aspassimples01aspassimples MODULO aspassimplesFATURAMENTOaspassimples FUNNAME aspassimplesRPDFaspassimples TABLES "SF2","SF3"
dbSelectArea("SF3")
cIndexName := Criatrab(Nil,.F.)
cIndexKey := "F3_NFISCAL+F3_CLIEFOR"
cFilter := "F3_FILIAL==aspassimples"+xFilial("SF3")+"aspassimples .And. "
cFilter += "F3_CODRSEF=aspassimples100aspassimples .And. F3_CHVNFE <>aspassimples aspassimples .And."
cFilter += "F3_YDANFE<>aspassimplesSaspassimples .And. F3_CFO >= aspassimples5000aspassimples "
IndRegua("SF3", cIndexName, cIndexKey,, cFilter, Nil)
dbSelectArea("SF3")
dbGoTop()
oFont1 := TFont():New( "Courier New", , -18, .T.)
While !EOF()
MV_PAR01 := SF3->F3_NFISCAL
MV_PAR02 := SF3->F3_NFISCAL
MV_PAR03 := aspassimples1 aspassimples
MV_PAR04 := 2
MV_PAR05 := 2
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Posiciona o SA1 (Cliente) ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DbSelectArea("SA1")
DbSetOrder(1)
DbSeek(xFilial()+SF3->F3_CLIEFOR+SF3->F3_LOJA,.T.)
DbSelectArea("SF3")
if Alltrim(SA1->A1_EMAIL) <> "" // Se tiver cadastrado o e-mail do Cliente.
If oDanfe == Nil
lPreview := .T.
oDanfe := FWMSPrinter():New(aspassimplesDanfe_aspassimples+SF3->F3_NFISCAL,6,.F.,,.T.)
oDanfe:SetPortrait()
oDanfe:SetPaperSize(9)
oDanfe:SetMargin(60,60,60,60)
oDanfe:cPathPDF := "C:\"
oDanfe:SetViewPDF(.F.)
EndIf
Private PixelX := oDanfe:nLogPixelX()
Private PixelY := oDanfe:nLogPixelY()
DanfePro1(@oDanfe,,"000001",,,.F.)
If lPreview
oDanfe:Preview() //Visualiza antes de imprimir
EndIf
// ---- Enviar e-mail do Danfe.pdf para o e-mail do Cliente 18/04/2012
EnvDanfe(Alltrim(SA1->A1_EMAIL),Alltrim(SF3->F3_NFISCAL))
FreeObj(oDanfe)
oDanfe := Nil
endif
Reclock("SF3",.F.)
SF3->F3_YDANFE := "S"
MsUnlock()
dbSkip()
EndDo
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
12 anos 4 meses atrás #3033
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Re: Envio Danfe PDf E-mail Cliente
Iranildo Muito Obrigado, seria legal vc colocar na área de downloads na opção de envio de arquivo ok.
Obrigado
Obrigado
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- iranildo74205
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
12 anos 4 meses atrás - 12 anos 4 meses atrás #3034
por iranildo74205
Respondido por iranildo74205 no tópico Re: Envio Danfe PDf E-mail Cliente
Prezados, foi enviado o arquivo fonte para downloads categoria fonte diversos esperamos que seja publicado.
Ultima edição: 12 anos 4 meses atrás por iranildo74205.
Por favor Acessar ou Registrar para participar da conversa.
- iranildo74205
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
12 anos 4 meses atrás #3039
por iranildo74205
Respondido por iranildo74205 no tópico Re: Envio Danfe PDf E-mail Cliente
Prezados foi publicado ok! esta em DOWNLOADS -> Fontes diversos. ok.
Por favor Acessar ou Registrar para participar da conversa.
- pinheiro
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 91
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16636
por pinheiro
Respondido por pinheiro no tópico Re: Envio Danfe PDf E-mail Cliente
Caros, usando a rotina via chamada no menu ta funcionando beleza, porem ao tentar schedular esta dando erro abaixo, pesquisei e no TDN fala que esta função deve ser usada somente atraves do Smart client. alguem sabe como resolver?
Stack :
Function GetFontPixWidths() doesn't available in JOB. in file c:\advtec9\interface\srvfunctions.inl at line 2791
on FWFONTSIZE:CHKFONT(FWFONTSIZE.PRW) 19/04/2013 10:08:03 line : 86
[build: 7.00.120420A-20120726]
[environment: SCH]
[thread: 2396]
[dbthread: 1880]
[rpodb: TOP]
[localfiles: ADS]
[remark: U_RPDFDANFE|12|01]
[threadtype: JobThread]
Called from FWFONTSIZE:GETTEXTWIDTH(FWFONTSIZE.PRW) 19/04/2013 10:08:03 line : 173
Called from RETTAMCOL(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 3269
Called from PRTDANFE(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 2166
Called from IMPDET(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 552
Called from DANFEPRO1(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 362
Called from U_RPDFDANFE(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 99
Called from WFLAUNCHER(WF.PRW) 18/07/2012 13:54:21 line : 445
*/
Stack :
Function GetFontPixWidths() doesn't available in JOB. in file c:\advtec9\interface\srvfunctions.inl at line 2791
on FWFONTSIZE:CHKFONT(FWFONTSIZE.PRW) 19/04/2013 10:08:03 line : 86
[build: 7.00.120420A-20120726]
[environment: SCH]
[thread: 2396]
[dbthread: 1880]
[rpodb: TOP]
[localfiles: ADS]
[remark: U_RPDFDANFE|12|01]
[threadtype: JobThread]
Called from FWFONTSIZE:GETTEXTWIDTH(FWFONTSIZE.PRW) 19/04/2013 10:08:03 line : 173
Called from RETTAMCOL(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 3269
Called from PRTDANFE(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 2166
Called from IMPDET(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 552
Called from DANFEPRO1(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 362
Called from U_RPDFDANFE(RPDFDANFE.PRW) 26/08/2013 12:54:21 line : 99
Called from WFLAUNCHER(WF.PRW) 18/07/2012 13:54:21 line : 445
*/
Por favor Acessar ou Registrar para participar da conversa.
- anizio.souza
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 83
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16682
por anizio.souza
Respondido por anizio.souza no tópico Envio Danfe PDf E-mail Cliente
Caro Iranildo, boa tarde.
Muito legal o Protheus enviar os danfes por email e em pdf.
Essa rotina roda por trás do processamento. ou é rotina de user?
Podes enviar o fonte completo pra eu analisar aqui?
Obriagdo,
Muito legal o Protheus enviar os danfes por email e em pdf.
Essa rotina roda por trás do processamento. ou é rotina de user?
Podes enviar o fonte completo pra eu analisar aqui?
Obriagdo,
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Re: Envio Danfe PDf E-mail Cliente
Tempo para a criação da página:0.109 segundos