- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- ERRO COM A FUNÇÃO MaFisIniPC
×
Linguagem de Programação ADVPL
Perguntas ERRO COM A FUNÇÃO MaFisIniPC
- alyson
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
11 anos 9 meses atrás #10073
por alyson
ERRO COM A FUNÇÃO MaFisIniPC foi criado por alyson
GALERA APÓS A ULTIMA ATUALIZAÇÃO DA LIG DO DIA 22/12/12 ALGUMAS ROTINAS DE IMPRESSÃO PARARAM DE FUNCIONAR ELAS SÃO CUSTOMIZADAS MAS NÃO SÃO DO MEU TEMPO, POR EXEMPLO UMA Q FAZ A IMPRESSÃO DOS PEDIDOS DE COMRPA UTILIZA UMA FUNÇÃO ESTRANHA CHAMADA MaFisIniPC ESTA APRESENTANDO O ERRO.
variable is not array - Type on MAFISRET(MATXFIS.PRX) 07/01/2013 15:17:14 line : 2509
AGUEM TEVE ALGUM PROBLEMA PARECIDO ACHO QUE MUDARAM ALGUMA COISA NA FUNÇÃO MAS TA DIFICIL DE DESCOBRIR.
variable is not array - Type on MAFISRET(MATXFIS.PRX) 07/01/2013 15:17:14 line : 2509
AGUEM TEVE ALGUM PROBLEMA PARECIDO ACHO QUE MUDARAM ALGUMA COISA NA FUNÇÃO MAS TA DIFICIL DE DESCOBRIR.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 9 meses atrás #10080
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 ERRO COM A FUNÇÃO MaFisIniPC
Alyson manda o trecho do programa que está utilizando esta função para eu dar uma olhada.
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 9 meses atrás #10081
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 ERRO COM A FUNÇÃO MaFisIniPC
Essa função é utilizada para calculo dos impostos no pedido de compra, segue um trecho aonde mostra como deve ser utilizada.
Local nVlrIPI := 0
Local nToTIPI := 0
Local nTotal := 0
Local nItemIVA := 0
Local nValor := ((cAliasSC7)->C7_QUANT) * IIf(Empty((cAliasSC7)->C7_REAJUST),(cAliasSC7)->C7_PRECO,Formula((cAliasSC7)->C7_REAJUST))
Local nTotDesc := (cAliasSC7)->C7_VLDESC
Local nTxMoeda := IIF((cAliasSC7)->C7_TXMOEDA > 0,(cAliasSC7)->C7_TXMOEDA,Nil)
Local nI
If cPaisLoc <> "BRA"
MaFisIniPC((cAliasSC7)->C7_NUM,(cAliasSC7)->C7_ITEM,(cAliasSC7)->C7_SEQUEN)
aValIVA := MaFisRet(,"NF_VALIMP")
If !Empty( aValIVA )
For nI := 1 To Len( aValIVA )
nItemIVA += aValIVA[nI]
Next
Endif
nVlrIPI := xMoeda(nItemIVA,(cAliasSC7)->C7_MOEDA,mv_par13,(cAliasSC7)->C7_DATPRF,,nTxMoeda)
Else
If nTotDesc == 0
nTotDesc := CalcDesc(nValor,(cAliasSC7)->C7_DESC1,(cAliasSC7)->C7_DESC2,(cAliasSC7)->C7_DESC3)
EndIF
nTotal := nValor - nTotDesc
nTotIPI := IIF((cAliasSC7)->C7_IPIBRUT == "L",nTotal, nValor) * ( (cAliasSC7)->C7_IPI / 100 )
nVlrIPI := xMoeda(nTotIPI,(cAliasSC7)->C7_MOEDA,mv_par13,(cAliasSC7)->C7_DATPRF,,nTxMoeda)
EndIf
RestArea(aArea)
Local nVlrIPI := 0
Local nToTIPI := 0
Local nTotal := 0
Local nItemIVA := 0
Local nValor := ((cAliasSC7)->C7_QUANT) * IIf(Empty((cAliasSC7)->C7_REAJUST),(cAliasSC7)->C7_PRECO,Formula((cAliasSC7)->C7_REAJUST))
Local nTotDesc := (cAliasSC7)->C7_VLDESC
Local nTxMoeda := IIF((cAliasSC7)->C7_TXMOEDA > 0,(cAliasSC7)->C7_TXMOEDA,Nil)
Local nI
If cPaisLoc <> "BRA"
MaFisIniPC((cAliasSC7)->C7_NUM,(cAliasSC7)->C7_ITEM,(cAliasSC7)->C7_SEQUEN)
aValIVA := MaFisRet(,"NF_VALIMP")
If !Empty( aValIVA )
For nI := 1 To Len( aValIVA )
nItemIVA += aValIVA[nI]
Next
Endif
nVlrIPI := xMoeda(nItemIVA,(cAliasSC7)->C7_MOEDA,mv_par13,(cAliasSC7)->C7_DATPRF,,nTxMoeda)
Else
If nTotDesc == 0
nTotDesc := CalcDesc(nValor,(cAliasSC7)->C7_DESC1,(cAliasSC7)->C7_DESC2,(cAliasSC7)->C7_DESC3)
EndIF
nTotal := nValor - nTotDesc
nTotIPI := IIF((cAliasSC7)->C7_IPIBRUT == "L",nTotal, nValor) * ( (cAliasSC7)->C7_IPI / 100 )
nVlrIPI := xMoeda(nTotIPI,(cAliasSC7)->C7_MOEDA,mv_par13,(cAliasSC7)->C7_DATPRF,,nTxMoeda)
EndIf
RestArea(aArea)
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.
- alyson
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
11 anos 9 meses atrás #10082
por alyson
Respondido por alyson no tópico ERRO COM A FUNÇÃO MaFisIniPC
então éssa é uma parte q ta dando erro
Static Function ImpCampos()
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
_cValor := ""
dbSelectArea("SC7")
If PAR07 == 2 .And. !Empty(SC7->C7_SEGUM)
oPrn:Say( li, 2032, SC7->C7_SEGUM ,oFont4,100 )
Else
oPrn:Say( li, 2032, SC7->C7_UM ,oFont4,100 )
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2266,Transform(SC7->C7_QTSEGUM,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
Else
oPrn:Say(li,2266,Transform(SC7->C7_QUANT,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2545,Transform(xMoeda((SC7->C7_TOTAL/SC7->C7_QTSEGUM),SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),PesqPict("SC7","C7_PRECO",14, Par12)),oFont4,100,,,1)
Else
_cValor := Transform(xMoeda(SC7->C7_PRECO,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 9,999,999.999999")
IF Substr(_cValor,13,4) == "0000"
_cValor := Substr(_cValor,1,12) + " "
ELSEIF Substr(_cValor,14,5) == "000"
_cValor := Substr(_cValor,1,13) + " "
ELSEIF Substr(_cValor,15,6) == "00"
_cValor := Substr(_cValor,1,14) + " "
ELSEIF Substr(_cValor,16,7) == "0"
_cValor := Substr(_cValor,1,15) + " "
EndIf
oPrn:Say(li,2545,_cValor,oFont4,100,,,1)
EndIf
oPrn:Say(li,2655,Transform(SC7->C7_DESC1,"@E 99.99"),oFont4,100,,,1)
oPrn:Say(li,2765,Transform(SC7->C7_IPI,"@E 99"),oFont4,100,,,1)
oPrn:Say(li,3065,Transform(xMoeda(SC7->C7_TOTAL,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda),"@E 999,999,999.99"),oFont4,100,,,1)
oPrn:Say(li,3270,DTOC(SC7->C7_DATPRF),oFont4,100,,,1)
nTotal :=nTotal+SC7->C7_TOTAL
nTotMerc:=MaFisRet(,"NF_TOTAL")
nTotDesc+=SC7->C7_VLDESC
Return .T.
Static Function ImpCampos()
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
_cValor := ""
dbSelectArea("SC7")
If PAR07 == 2 .And. !Empty(SC7->C7_SEGUM)
oPrn:Say( li, 2032, SC7->C7_SEGUM ,oFont4,100 )
Else
oPrn:Say( li, 2032, SC7->C7_UM ,oFont4,100 )
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2266,Transform(SC7->C7_QTSEGUM,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
Else
oPrn:Say(li,2266,Transform(SC7->C7_QUANT,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2545,Transform(xMoeda((SC7->C7_TOTAL/SC7->C7_QTSEGUM),SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),PesqPict("SC7","C7_PRECO",14, Par12)),oFont4,100,,,1)
Else
_cValor := Transform(xMoeda(SC7->C7_PRECO,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 9,999,999.999999")
IF Substr(_cValor,13,4) == "0000"
_cValor := Substr(_cValor,1,12) + " "
ELSEIF Substr(_cValor,14,5) == "000"
_cValor := Substr(_cValor,1,13) + " "
ELSEIF Substr(_cValor,15,6) == "00"
_cValor := Substr(_cValor,1,14) + " "
ELSEIF Substr(_cValor,16,7) == "0"
_cValor := Substr(_cValor,1,15) + " "
EndIf
oPrn:Say(li,2545,_cValor,oFont4,100,,,1)
EndIf
oPrn:Say(li,2655,Transform(SC7->C7_DESC1,"@E 99.99"),oFont4,100,,,1)
oPrn:Say(li,2765,Transform(SC7->C7_IPI,"@E 99"),oFont4,100,,,1)
oPrn:Say(li,3065,Transform(xMoeda(SC7->C7_TOTAL,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda),"@E 999,999,999.99"),oFont4,100,,,1)
oPrn:Say(li,3270,DTOC(SC7->C7_DATPRF),oFont4,100,,,1)
nTotal :=nTotal+SC7->C7_TOTAL
nTotMerc:=MaFisRet(,"NF_TOTAL")
nTotDesc+=SC7->C7_VLDESC
Return .T.
Por favor Acessar ou Registrar para participar da conversa.
- alyson
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
11 anos 9 meses atrás #10185
por alyson
Respondido por alyson no tópico ERRO COM A FUNÇÃO MaFisIniPC
Galera após mudar a lib para a do dia 22/12/12 a função MaFisIniPC e MAFISRET começou apresentar erro quem puder dar uma olhada no fonte agradeço
Por favor Acessar ou Registrar para participar da conversa.
- alyson
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
11 anos 9 meses atrás - 11 anos 9 meses atrás #10186
por alyson
Respondido por alyson no tópico ERRO COM A FUNÇÃO MaFisIniPC
#INCLUDE "rwmake.ch"
#INCLUDE "topconn.ch"
#INCLUDE "ap5mail.ch"
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ISCOM012 º Autor ³ Isogama - PR º Data ³ 08/10/07 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Impressão do Pedido de Compras º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºAlteracao ³ISCOM012 º Autor ³ Alyson Auriglieti º Data ³ 23/02/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Adicionado os mpos data, hora e email destinatario no pedido que vai º±±
±±º por email e no pedido que vai para impressora º±±
±±º Funcoes alteradas --> FinalPed() / ImpHtml() º±±
±±º º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Isogama Industria Quimica Ltda º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
User Function ISCOM012()
//Declaracao de Variaveis
Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := ""
Local cPict := ""
Local Titulo := "Pedido de Compra Isogama"
Local nLin := 80
Local Cabec1 := "Item Codigo Descrição do Material Observações UM Qtde Valor Unitário %Desc IPI% Valor Total Data Entrega"
Local Cabec2 := ""
Local Imprime := .T.
Local aOrd := {}
Private nPag := 1
Private nPagd := 0
Private lEnd := .F.
Private lAbortPrint := .F.
Private CbTxt := ""
Private Limite := 80
Private Tamanho := "G"
Private NomeProg := "ISCOM012" // Coloque aqui o nome do programa para impressao no cabecalho
Private nTipo := 15
Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
Private nLastKey := 0
Private cPerg := PADR("MTR11G",10)
Private cbtxt := Space(10)
Private cbcont := 00
Private CONTFL := 01
Private m_pag := 01
Private wnrel := "ISCOM012"
Private cString := "SC7"
ValidPerg(cPerg)
Pergunte(cPerg,.F.)
//Monta a interface padrao com o usuario...
wnrel := SetPrint(cString,wnrel,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.T.,Tamanho,,.F.,,,.F.,.T.,)
Par01 := mv_par01
Par02 := mv_par02
Par03 := mv_par03
Par04 := mv_par04
Par05 := mv_par05
Par06 := mv_par06
Par07 := mv_par07
Par08 := mv_par08
Par09 := mv_par09
Par10 := mv_par10
Par11 := mv_par11
Par12 := mv_par12
Par13 := mv_par13
Par14 := mv_par14
Par15 := mv_par15
If nLastKey == 27
Return
Endif
If mv_par15==1
//Configurações para a Impressão
SetDefault(aReturn,cString,,,@Tamanho,2)
EndIf
If nLastKey == 27
Return
Endif
nTipo := If(aReturn[4]==1,15,18)
If mv_par15==2
If SC7->C7_CONAPRO == "B"
Alert("Pedidos não Liberados não podem ser enviados ao Fornecedor ")
Else
Processa({||ImpHtml()}, 'Processando Envio...')
Endif
Else
RptStatus({||Relato()})
EndIf
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ISCOM12A º Autor ³ Mauricio Micheli º Data ³ 10/03/08 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Impressão do Pedido de Compras. º±±
±±º ³ Direto na Tela. º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Isogama Industria Quimica Ltda º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
User Function ISCOM12A()
//Declaracao de Variaveis
Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := ""
Local cPict := ""
Local Titulo := "Pedido de Compra Isogama"
Local nLin := 80
Local Cabec1 := "Item Codigo Descrição do Material Observações UM Qtde Valor Unitário %Desc IPI% Valor Total Data Entrega"
Local Cabec2 := ""
Local Imprime := .T.
Local aOrd := {}
Private nPag := 1
Private nPagd := 0
Private lEnd := .F.
Private lAbortPrint := .F.
Private CbTxt := ""
Private Limite := 80
Private Tamanho := "G"
Private NomeProg := "ISCOM12A" // Coloque aqui o nome do programa para impressao no cabecalho
Private nTipo := 15
Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
Private nLastKey := 0
Private cPerg := PADR("COM12A",10)
Private cbtxt := Space(10)
Private cbcont := 00
Private CONTFL := 01
Private m_pag := 01
Private wnrel := "ISCOM12A"
Private cString := "SC7"
AjustaSX1(cPerg)
Pergunte(cPerg,.F.)
//Monta a interface padrao com o usuario...
wnrel := SetPrint(cString,wnrel,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.T.,Tamanho,,.F.,,,.F.,.T.,)
Par01 := SC7->C7_NUM
Par02 := SC7->C7_NUM
Par03 := SC7->C7_EMISSAO
Par04 := SC7->C7_EMISSAO
Par05 := mv_par01
Par06 := mv_par02
Par07 := mv_par03
Par08 := mv_par04
Par09 := mv_par05
Par10 := mv_par06
Par11 := mv_par07
Par12 := mv_par08
Par13 := mv_par09
Par14 := mv_par10
Par15 := mv_par11
If nLastKey == 27
Return
Endif
If mv_par11==1
//Configurações para a Impressão
SetDefault(aReturn,cString,,,@Tamanho,2)
EndIf
If nLastKey == 27
Return
Endif
nTipo := If(aReturn[4]==1,15,18)
If mv_par11==2
If SC7->C7_CONAPRO == "B"
Alert("Pedidos não Liberados não podem ser enviados ao Fornecedor ")
Else
Processa({||ImpHtml()}, 'Processando Envio...')
Endif
Else
RptStatus({||Relato()})
EndIf
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³ Funcao ³VALIDPERG ³ Autor³Adalberto Moreno Batista³ Data ³11.02.2000³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ValidPerg()
Local _aAlias := Alias(), aRegs
dbSelectArea("SX1")
dbSetOrder(1)
aRegs:={}
// Grupo/Ordem/Pergunta/Variavel/Tipo/Tamanho/Decimal/Presel/GSC/Valid/Var01/Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/Def05/Cnt05
aAdd(aRegs,{cPerg,"01","Do Pedido ?","¿De Pedido?","From Order ?","mv_ch1","C",6,0,0,"G","","mv_par01","","","","000068","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"02","Até o Pedido ?","¿A Pedido?","To Order ?","mv_ch2","C",6,0,0,"G","","mv_par02","","","","000068","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"03","A partir da Data ?","¿De Fecha?","From Date ?","mv_ch3","D",8,0,0,"G","","mv_par03","","","","'01/01/2002'","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"04","Até a Data ?","¿A Fecha?","To Date ?","mv_ch4","D",0,0,0,"G","","mv_par04","","","","'26/12/2003'","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"05","Somente os novos ?","¿Solo los Nuevos?","Only the new ones ?","mv_ch5","N",1,0,2,"C","","mv_par05","Sim","Si","Yes","","","Nao","No","No","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"06","Descricao Produto ?","¿Descripcion Prodc.?","Product Description ?","mv_ch6","N",10,0,4,"C","","mv_par06","B1_DESC","","","","","B5_CEME","","","","","C7_DESCRI","","","","","C1_DESCRI","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"07","Qual Unid. de Med. ?","¿Cual Unidad Medida?","Which Unit of Meas. ?","mv_ch7","N",1,0,1,"C","","mv_par07","Primaria","Primaria","Primary","","","Secundaria","Secundaria","Secondary","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"08","Imprime ?","¿Imprime?","Print ?","mv_ch8","N",1,0,1,"C","","mv_par08","Pedido Compra","Pedido Compra","Purchase Order","","","Aut. de Entrega","Aut. de Entrega","Delivery Author","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"09","Numero de Vias ?","¿Numero de Copias?","Number of Copies ?","mv_ch9","N",2,0,0,"G","","mv_par09","","",""," 1","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"10","Imprime Pedidos ?","¿Imprime Pedidos?","Print Orders ?","mv_cha","N",1,0,3,"C","","mv_par10","Liberados","Aprobados","Approved","","","Bloqueados","Bloqueados","Blocked","","","Ambos","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"11","Considera SCs ?","¿Considerar SCs?","Consider Purc.Req. ?","mv_chb","N",1,0,3,"C","","mv_par11","Firmes","Confirmadas","Confirmed","","","Previstas","Previstas","Expected","","","Ambas","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"12","Qual Moeda ?","¿Cual Moneda?","Currency ?","mv_chc","N",1,0,1,"C","","mv_par12","Reais","","","","","Dolar","","","","","Ufir","","","","","Euro","","","","","Dolar Turismo","","","","","S","",""})
aAdd(aRegs,{cPerg,"13","Endereco de Entrega ?","","","mv_chd","C",40,0,0,"G","","mv_par13","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"14","Cont.End.Entrega ?","","","mv_che","C",40,0,0,"G","","mv_par14","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"15","Envia Email para Fornecedor ?","","","mv_chf","N",1,0,2,"C","","mv_par15","Não","","","","","Sim","","","","","","","","","","","","","","","","","","","","S","",""})
For i:=1 to Len(aRegs)
If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
Endif
Next
MsUnlock()
Endif
Next
dbSelectArea(_aAlias)
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³ Funcao ³AjustaSX1 ³ Autor³ Mauricio Micheli ³ Data ³10.03.2008³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function AjustaSX1()
Local _aAlias := Alias(), aRegs
dbSelectArea("SX1")
dbSetOrder(1)
aRegs:={}
// Grupo/Ordem/Pergunta/Variavel/Tipo/Tamanho/Decimal/Presel/GSC/Valid/Var01/Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/Def05/Cnt05
aAdd(aRegs,{cPerg,"01","Somente os novos ?","¿Solo los Nuevos?","Only the new ones ?","mv_ch1","N",1,0,2,"C","","mv_par01","Sim","Si","Yes","","","Nao","No","No","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"02","Descricao Produto ?","¿Descripcion Prodc.?","Product Description ?","mv_ch2","N",10,0,4,"C","","mv_par02","B1_DESC","","","","","B5_CEME","","","","","C7_DESCRI","","","","","C1_DESCRI","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"03","Qual Unid. de Med. ?","¿Cual Unidad Medida?","Which Unit of Meas. ?","mv_ch3","N",1,0,1,"C","","mv_par03","Primaria","Primaria","Primary","","","Secundaria","Secundaria","Secondary","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"04","Imprime ?","¿Imprime?","Print ?","mv_ch4","N",1,0,1,"C","","mv_par04","Pedido Compra","Pedido Compra","Purchase Order","","","Aut. de Entrega","Aut. de Entrega","Delivery Author","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"05","Numero de Vias ?","¿Numero de Copias?","Number of Copies ?","mv_ch5","N",2,0,0,"G","","mv_par05","","",""," 1","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"06","Imprime Pedidos ?","¿Imprime Pedidos?","Print Orders ?","mv_ch6","N",1,0,3,"C","","mv_par06","Liberados","Aprobados","Approved","","","Bloqueados","Bloqueados","Blocked","","","Ambos","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"07","Considera SCs ?","¿Considerar SCs?","Consider Purc.Req. ?","mv_ch7","N",1,0,3,"C","","mv_par07","Firmes","Confirmadas","Confirmed","","","Previstas","Previstas","Expected","","","Ambas","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"08","Qual Moeda ?","¿Cual Moneda?","Currency ?","mv_chc","N",1,0,1,"C","","mv_par12","Reais","","","","","Dolar","","","","","Ufir","","","","","Euro","","","","","Dolar Turismo","","","","","S","",""})
aAdd(aRegs,{cPerg,"09","Endereco de Entrega ?","","","mv_ch9","C",40,0,0,"G","","mv_par09","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"10","Cont.End.Entrega ?","","","mv_cha","C",40,0,0,"G","","mv_par10","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"11","Envia Email para Fornecedor ?","","","mv_chb","N",1,0,2,"C","","mv_par11","Não","","","","","Sim","","","","","","","","","","","","","","","","","","","","S","",""})
For i:=1 to Len(aRegs)
If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
Endif
Next
MsUnlock()
Endif
Next
dbSelectArea(_aAlias)
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ RELATO ºAutor ³ Jeyson Gurek º Data ³ 16/10/06 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function Relato()
Local nReem
Local nOrder
Local cCondBus
Local nSavRec
Local aSavRec := {}
Private lEnc := .F.
Private cTitulo
Private oFont, cCode, oPrn
Private cCGCPict, cCepPict
Private lPrimPag :=.T.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definir as pictures ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cCepPict:=PesqPict("SA2","A2_CEP")
cCGCPict:=PesqPict("SA2","A2_CGC")
oFont1 := TFont():New( "Arial",,14,,.t.,,,,,.f. )
oFont2 := TFont():New( "Arial",,16,,.f.,,,,,.f. )
oFont3 := TFont():New( "Arial",,10,,.t.,,,,,.f. )
oFont4 := TFont():New( "Arial",,10,,.f.,,,,,.f. )
oFont5 := TFont():New( "Arial",,08,,.t.,,,,,.f. )
oFont6 := TFont():New( "Arial",,08,,.f.,,,,,.f. )
oFont7 := TFont():New( "Arial",,14,,.t.,,,,,.f. )
oFont8 := TFont():New( "Arial",,14,,.f.,,,,,.f. )
oFont9 := TFont():New( "Arial",,12,,.t.,,,,,.f. )
oFont10:= TFont():New( "Arial",,12,,.f.,,,,,.f. )
oFont11:= TFont():New( "Arial",,07,,.t.,,,,,.f. )
oFont12:= TFont():New( "Arial",,07,,.f.,,,,,.f. )
oFont13:= TFont():New( "Arial",,09,,.t.,,,,,.f. )
oFont1c := TFont():New( "Courier New",,16,,.t.,,,,,.f. )
oFont2c := TFont():New( "Courier New",,16,,.f.,,,,,.f. )
oFont3c := TFont():New( "Courier New",,10,,.t.,,,,,.f. )
oFont4c := TFont():New( "Courier New",,10,,.f.,,,,,.f. )
oFont5c := TFont():New( "Courier New",,09,,.t.,,,,,.f. )
oFont6c := TFont():New( "Courier New",,09,,.T.,,,,,.f. )
oFont7c := TFont():New( "Courier New",,14,,.t.,,,,,.f. )
oFont8c := TFont():New( "Courier New",,14,,.f.,,,,,.f. )
oFont9c := TFont():New( "Courier New",,12,,.t.,,,,,.f. )
oFont10c:= TFont():New( "Courier New",,12,,.f.,,,,,.f. )
nDescProd:= 0
nTotal := 0
nTotMerc := 0
cCondBus := Par01
nOrder := 1
nPagD:=1
dbSelectArea("SC7")
dbSetOrder(nOrder)
SetRegua(nPagD)
dbSeek(xFilial("SC7")+cCondBus,.T.)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Faz manualmente porque nao chama a funcao Cabec() ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//@ 0,0 PSay AvalImp(Iif(nDifColCC > 0,132,220))
While !Eof() .And. C7_FILIAL = xFilial("SC7") .And. C7_NUM >= Par01 .And. C7_NUM <= Par02
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Cria as variaveis para armazenar os valores do pedido ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nOrdem := 1
nReem := 0
If C7_EMITIDO == "S" .And. Par05 == 1
dbSkip()
Loop
Endif
If (C7_CONAPRO == "B" .And. Par10 == 1) .Or.;
(C7_CONAPRO != "B" .And. Par10 == 2)
dbSkip()
Loop
Endif
If (C7_EMISSAO < Par03) .Or. (C7_EMISSAO > Par04)
dbSkip()
Loop
Endif
If C7_TIPO == 2
dbSkip()
Loop
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Filtra Tipo de SCs Firmes ou Previstas ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If !MtrAValOP(Par11, 'SC7')
dbSkip()
Loop
EndIf
MaFisEnd()
MaFisIniPC(SC7->C7_NUM)
//MaFisIniPC( SC7->C7_NUM, SC7->C7_ITEM, SC7->C7_SEQUEN)
For ncw := 1 To Par09 // Imprime o numero de vias informadas
ImpCabec()
nTotal := 0
nTotMerc := 0
nDescProd:= 0
nReem := SC7->C7_QTDREEM + 1
nSavRec := SC7->(Recno())
NumPed := SC7->C7_NUM
li := 465
nTotDesc := 0
cFornece := SC7->(C7_FORNECE+C7_LOJA)
While !Eof() .And. SC7->C7_FILIAL = xFilial("SC7") .And. SC7->C7_NUM == NumPed
dbSelectArea("SC7")
If Ascan(aSavRec,Recno()) == 0 // Guardo recno p/gravacao
AADD(aSavRec,Recno())
Endif
IncRegua()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se havera salto de formulario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If li > 1350
nOrdem++
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 465
Endif
li:=li+60
oPrn:Say( li, 0050, StrZero(Val(SC7->C7_ITEM),4) ,oFont4,100 )
oPrn:Say( li, 0175, UPPER(SC7->C7_PRODUTO),oFont4,100 )
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pesquisa Descricao do Produto ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ImpProd()
If SC7->C7_DESC1 != 0 .or. SC7->C7_DESC2 != 0 .or. SC7->C7_DESC3 != 0
nDescProd+= CalcDesc(SC7->C7_TOTAL,SC7->C7_DESC1,SC7->C7_DESC2,SC7->C7_DESC3)
Else
nDescProd+=SC7->C7_VLDESC
Endif
dbSkip()
EndDo
dbGoto(nSavRec)
If li>1350
nOrdem++
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 465
Endif
FinalPed() // Imprime os dados complementares do PC
Next
MaFisEnd()
/*
dbSelectArea("SC7")
If Len(aSavRec)>0
For i:=1 to Len(aSavRec)
dbGoto(aSavRec)
RecLock("SC7",.F.) //Atualizacao do flag de Impressao
Replace C7_QTDREEM With (C7_QTDREEM+1)
Replace C7_EMITIDO With "S"
MsUnLock()
Next
dbGoto(aSavRec[Len(aSavRec)]) // Posiciona no ultimo elemento e limpa array
Endif
*/
dbGoto(aSavRec[Len(aSavRec)]) // Posiciona no ultimo elemento e limpa array
aSavRec := {}
dbSkip()
EndDo
dbSelectArea("SC7")
Set Filter To
dbSetOrder(1)
dbSelectArea("SX3")
dbSetOrder(1)
If lEnc
oPrn:Preview()
MS_FLUSH()
EndIf
Return .T.
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpCabec ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime o Cabecalho do Pedido de Compra ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpCabec(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ImpCabec()
Local nOrden, cCGC
LOcal cAlter := ""
Local cAprova := ""
Local cCompr := ""
Local cMoeda
Private cSubject
Private cTitRel := "PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "
Private nMoedaP := 1
Private nTxMoedaP := 1
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
If !lPrimPag
oPrn:EndPage()
oPrn:StartPage()
nPag += 1
Else
lPrimPag := .F.
lEnc := .T.
oPrn := TMSPrinter():New()
//Define o Posicionamento da Pagina
oPrn:SetLandscape()
//Define o Tamanho da Pagina para Impressão
oPrn:SetPaperSize(9)='A4'
EndIF
oPrn:Say( 0020, 0020, " ",oFont,100 ) // startando a impressora
cCompr:= LEFT(UsrFullName(SC7->C7_USER),20)
If Empty(cCompr)
//Cadastro Comprador
SY1->(DBSetOrder(3))
If SY1->(DBSeek(XFILIAL("SY1")+SC7->C7_USER))
cCompr:= Substr(SY1->Y1_NOME,1,20)
EndIf
EndIf
If Empty(cCompr)
cCompr:= embaralha(SC7->C7_USERLGI,1)
EndIf
dbSelectArea("SC7")
If C7_CONAPRO != "B"
dbSelectArea("SCR")
dbSetOrder(1)
dbSeek(xFilial()+"PC"+SC7->C7_NUM)
While !Eof() .And. SCR->CR_FILIAL+Alltrim(SCR->CR_NUM)==xFilial("SCR")+SC7->C7_NUM .And. SCR->CR_TIPO == "PC"
IF SCR->CR_STATUS=="03"
cAprova += AllTrim(UsrFullName(SCR->CR_USER))
EndIF
dbSelectArea("SCR")
dbSkip()
Enddo
If !Empty(SC7->C7_GRUPCOM)
dbSelectArea("SAJ")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_GRUPCOM)
While !Eof() .And. SAJ->AJ_FILIAL+SAJ->AJ_GRCOM == xFilial("SAJ")+SC7->C7_GRUPCOM
If SAJ->AJ_USER != SC7->C7_USER
cAlter += AllTrim(UsrFullName(SAJ->AJ_USER))+"/"
EndIf
dbSelectArea("SAJ")
dbSkip()
EndDo
EndIf
Else
cAprova := "Não Aprovado"
EndIF
//oPrn:SayBitmap( 0100,0010,"\sigaadv\marca.bmp",400,170 )
//Cabecalho (Enderecos da Empresa e Fornecedor)
oPrn:Box( 0000, 0010, 0420,0410)
oPrn:Box( 0000, 0410, 0175,2550)
oPrn:Box( 0000, 2550, 0175,2900)
oPrn:Box( 0000, 2900, 0175,3300)
oPrn:Box( 0175, 0410, 0420,1380)
oPrn:Box( 0175, 1380, 0420,2550)
oPrn:Box( 0175, 2550, 0420,3300)
//Cabecalho Produto do Pedido
oPrn:Box( 0420, 0010, 0480,0140)
oPrn:Box( 0420, 0140, 0480,0410)
oPrn:Box( 0420, 0410, 0480,2019)
oPrn:Box( 0420, 2019, 0480,2085)
oPrn:Box( 0420, 2085, 0480,2280)
oPrn:Box( 0420, 2280, 0480,2550)
oPrn:Box( 0420, 2550, 0480,2690)
oPrn:Box( 0420, 2690, 0480,2800)
oPrn:Box( 0420, 2800, 0480,3110)
oPrn:Box( 0420, 3110, 0480,3300)
//Espaco dos Itens do Pedido
oPrn:Box( 0480, 0010, 1430,0140)
oPrn:Box( 0480, 0140, 1430,0410)
oPrn:Box( 0480, 0410, 1430,2019)
oPrn:Box( 0480, 2019, 1430,2085)
oPrn:Box( 0480, 2085, 1430,2280)
oPrn:Box( 0480, 2280, 1430,2550)
oPrn:Box( 0480, 2550, 1430,2690)
oPrn:Box( 0480, 2690, 1430,2800)
oPrn:Box( 0480, 2800, 1430,3110)
oPrn:Box( 0480, 3110, 1430,3300)
oPrn:SayBitmap( 0100,0015,"\system\marca.bmp",360,140 )
DBSelectArea("SA2")
DBSetOrder(1)
DBSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
DBSelectArea("SM2")
DBSetOrder(1)
//Variavel recebe a moeda e a Taxa informada
nMoedaP := SC7->C7_MOEDA
nTxMoedaP := SC7->C7_TXMOEDA
cIdMoeda := SubStr(cValToChar(Par12),0,1)
//Verifica qual a taxa que sera utilizada
If nMoedaP <> 1 .And. nTxMoedaP > 0
nTxMoedaP := SC7->C7_TXMOEDA
ElseIf nMoedaP == 1 .And. Par12 <> 1
nTxMoedaP := &("SM2->M2_MOEDA" + Str(Par12,1))
ElseIf Par12 == 2 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA2
ElseIf Par12 == 3 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA3
ElseIf Par12 == 4 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA4
ElseIf Par12 == 5 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA5
Endif
//Impressao do Titulo do Relatorio com o Real
If nMoedaP <> 1 .And. Par12 == 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA1")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP == 1 .And. Par12 == 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA1"),oFont1,100 )
ElseIf nMoedaP == 1 .And. Par12 <> 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA"+cMoeda)+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 2
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA2")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 3
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA3")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 4
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA4")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 5
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA5")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
Endif
oPrn:Say( 0085, 2600, "Nr. "+SC7->C7_NUM,oFont1,100 )
oPrn:Say( 0080, 2990, "FOLHA:" ,oFont4,100 )
oPrn:Say( 0080, 3130, Alltrim(StrZero(nPag,2))+" / "+Alltrim(StrZero(nPagD,2)) ,oFont4,100 )
//Itens das Empresas
oPrn:Say( 0185, 0430, "EMPRESA",oFont3,100 )
oPrn:Say( 0185, 1400, "FORNECEDOR",oFont3,100 )
oPrn:Say( 0185, 2570, "DATA EMISSÃO: " + DTOC(SC7->C7_EMISSAO),oFont3,100 )
oPrn:Say( 0230, 0430, SM0->M0_NOMECOM ,oFont6,100 )
oPrn:Say( 0230, 1400, Alltrim(Substr(SA2->A2_NOME,1,40))+" - ("+SA2->A2_COD+")" ,oFont6,100 )
DbSelectArea("SI3")
DbSetOrder(1)
If DbSeek(xFilial("SI3") + SC7->C7_CC)
oPrn:Say( 0230, 2570, UPPER("C.Custo: " ) + UPPER(Alltrim(SC7->C7_CC) + " - "+Alltrim(Substr(SI3->I3_DESC,1,25))),oFont6,100 )
Else
oPrn:Say( 0230, 2570, UPPER("C.Custo: Material Produtivo") ,oFont6,100 )
EndIF
oPrn:Say( 0265, 0430, UPPER(SM0->M0_ENDENT) ,oFont6,100 )
oPrn:Say( 0265, 1400, UPPER(Alltrim(Substr(SA2->A2_END,1,50))+" - "+ Substr(SA2->A2_BAIRRO,1,10)) ,oFont6,100 )
DbSelectArea("AFG") //Projetos x Sol. Compras
dbSetOrder(2)
dbSeek(xFilial()+SC7->C7_NUMSC+SC7->C7_ITEMSC)
SC1->(dbSeek(xFilial()+SC7->C7_NUMSC+SC7->C7_ITEMSC))
oPrn:Say( 0275, 2570, "Nr SC: " + SC1->C1_NUM,oFont6,100 )
oPrn:Say( 0300, 0430, UPPER("CEP: "+Trans(SM0->M0_CEPENT,cCepPict)),oFont6,100 )
oPrn:Say( 0300, 0940, UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT) ,oFont6,100 )
oPrn:Say( 0300, 1400, Upper(Trim(SA2->A2_MUN)+" - "+SA2->A2_EST+" "+"CEP: "+SA2->A2_CEP) ,oFont6,100 )
oPrn:Say( 0300, 2170, "FAX: " + "("+Substr(SA2->A2_DDD,1,3)+") "+SA2->A2_FAX ,oFont6,100 )
oPrn:Say( 0320, 2570, "COMPRADOR : " + Upper(Alltrim(cCompr)),oFont6,100 )
oPrn:Say( 0335, 0430, "TEL: " + SM0->M0_TEL ,oFont6,100 )
oPrn:Say( 0335, 0940, "FAX: " + SM0->M0_FAX ,oFont6,100 )
oPrn:Say( 0335, 1400, "VENDEDOR: " + Upper(Substr(SC7->C7_CONTATO,1,10)),oFont6,100 )
oPrn:Say( 0335, 2170, "FONE: " + "("+Substr(SA2->A2_DDD,1,3)+") "+Substr(SA2->A2_TEL,1,15) ,oFont6,100 )
oPrn:Say( 0365, 2570, "APROVADO POR : " + UPPER(Alltrim(cAprova)),oFont6,100 )
dbSelectArea("SX3")
dbSetOrder(2)
dbSeek("A2_CGC")
cCGC := Alltrim(X3TITULO())
nOrden = IndexOrd()
oPrn:Say( 0370, 0430, (cCGC) + " "+ Transform(SM0->M0_CGC,cCgcPict) ,oFont6,100 )
oPrn:Say( 0370, 0940, "IE:" + InscrEst() ,oFont6,100 )
dbSelectArea("SA2")
dbSetOrder(nOrden)
oPrn:Say( 0370, 1400, "CNPJ: " + Transform(SA2->A2_CGC,cCgcPict) ,oFont6,100 )
oPrn:Say( 0370, 2170, "IE: " + SA2->A2_INSCR ,oFont6,100 )
oPrn:Say( 0435, 0035, "Item" ,oFont3,100 )
oPrn:Say( 0435, 0165, "Código" ,oFont3,100 )
oPrn:Say( 0435, 0430, "Descrição do Material e/ou Serviço" ,oFont3,100 )
oPrn:Say( 0435, 1400, "Observações" ,oFont3,100 )
oPrn:Say( 0435, 2025, "UM" ,oFont3,100 )
oPrn:Say( 0435, 2140, "Qtde" ,oFont3,100 )
oPrn:Say( 0435, 2305, "Valor Unitário" ,oFont3,100 )
oPrn:Say( 0435, 2560, "%Desc" ,oFont3,100 )
oPrn:Say( 0435, 2710, "IPI%" ,oFont3,100 )
oPrn:Say( 0435, 2895, "Valor Total" ,oFont3,100 )
oPrn:Say( 0435, 3145, "Entrega" ,oFont3,100 )
cSubject := "Pedido de Compras nr."+SC7->C7_NUM+" / "+AllTrim(Left(SA2->A2_NOME,30))
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpProd ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Pesquisar e imprimir dados Cadastrais do Produto. ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpProd(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpProd()
LOCAL cDesc, nLinRef := 1, nBegin := 0, cDescri := "", nLinha:=0,;
nTamDesc := 50 , aColuna := Array(
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Impressao da descricao generica do Produto. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Par06 == 1 // B1_DESC"
cDescri := Trim(Posicione("SB1",1,xFilial("SB1")+SC7->C7_PRODUTO,"SB1->B1_DESC"))
ElseIf Par06 == 2 // B5_CEME
cDescri := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME"))
ElseIf Par06 == 4 // C1_DESCRI
cDescri := Trim(Posicione("SC1",1,xFilial("SC1")+SC7->C7_NUMSC+SC7->C7_ITEMSC,"SC1->C1_DESCRI"))
EndIf
cDescri := If(Empty(cDescri),Trim(SC7->C7_DESCRI),cDescri) // opcao 3
//cObs := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME")) //
cObs := Trim(SC7->C7_OBS)
dbSelectArea("SC7")
nLinhaD:= MLCount(cDescri,nTamDesc)
nLinhaO:= MLCount(cObs,30)
nLinha := If(nLinhaD>nLInhaO,nLinhaD,nLinhaO)
oPrn:Say( li, 0430, MemoLine(cDescri,nTamDesc,1) ,oFont4,100 )
oPrn:Say( li, 1400, If(nLinhaO>0,MemoLine(cObs,30,1),""),oFont6,100 )
ImpCampos()
For nBegin := 2 To nLinha
// li+=35
li+=50
If nLinhaD>=nBegin
oPrn:Say( li, 0430, MemoLine(cDescri,nTamDesc,nBegin) ,oFont4,100 )
EndIf
If nLinhaO>=nBegin
oPrn:Say( li, 1400, MemoLine(cObs,30,nBegin),oFont6,100 )
EndIf
Next nBegin
Return NIL
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpCampos³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprimir dados Complementares do Produto no Pedido. ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpCampos(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpCampos()
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
_cValor := ""
dbSelectArea("SC7")
If PAR07 == 2 .And. !Empty(SC7->C7_SEGUM)
oPrn:Say( li, 2032, SC7->C7_SEGUM ,oFont4,100 )
Else
oPrn:Say( li, 2032, SC7->C7_UM ,oFont4,100 )
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2266,Transform(SC7->C7_QTSEGUM,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
Else
oPrn:Say(li,2266,Transform(SC7->C7_QUANT,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2545,Transform(xMoeda((SC7->C7_TOTAL/SC7->C7_QTSEGUM),SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),PesqPict("SC7","C7_PRECO",14, Par12)),oFont4,100,,,1)
Else
_cValor := Transform(xMoeda(SC7->C7_PRECO,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 9,999,999.999999")
IF Substr(_cValor,13,4) == "0000"
_cValor := Substr(_cValor,1,12) + " "
ELSEIF Substr(_cValor,14,5) == "000"
_cValor := Substr(_cValor,1,13) + " "
ELSEIF Substr(_cValor,15,6) == "00"
_cValor := Substr(_cValor,1,14) + " "
ELSEIF Substr(_cValor,16,7) == "0"
_cValor := Substr(_cValor,1,15) + " "
EndIf
oPrn:Say(li,2545,_cValor,oFont4,100,,,1)
EndIf
oPrn:Say(li,2655,Transform(SC7->C7_DESC1,"@E 99.99"),oFont4,100,,,1)
oPrn:Say(li,2765,Transform(SC7->C7_IPI,"@E 99"),oFont4,100,,,1)
oPrn:Say(li,3065,Transform(xMoeda(SC7->C7_TOTAL,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda),"@E 999,999,999.99"),oFont4,100,,,1)
oPrn:Say(li,3270,DTOC(SC7->C7_DATPRF),oFont4,100,,,1)
nTotal :=nTotal+SC7->C7_TOTAL
nTotMerc:=MaFisRet(,"NF_TOTAL")
nTotDesc+=SC7->C7_VLDESC
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpRodape³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime o rodape do formulario e salta para a proxima folha³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpRodape(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpRodape()
oPrn:Say( 1700, 0070, "CONTINUA ..." ,oFont3,100 )
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ FinalPed ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime os dados complementares do Pedido de Compra ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ FinalPed(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function FinalPed()
Local nk := 1,nG
Local nQuebra := 0
Local lNewAlc := .F.
Local lLiber := .F.
Local lImpLeg := .T.
LOcal cAlter :=""
Local cAprova :=""
Local cCompr :=""
Local aColuna := Array(, nTotLinhas
Local nTotIpi := MaFisRet(,'NF_VALIPI')
Local nTotIcms := MaFisRet(,'NF_VALICM')
Local nTotDesp := MaFisRet(,'NF_DESPESA')
Local nTotFrete := MaFisRet(,'NF_FRETE')
Local nTotalNF := MaFisRet(,'NF_TOTAL')
Local nTotSeguro:= MaFisRet(,'NF_SEGURO')
Local aValIVA := MaFisRet(,"NF_VALIMP")
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
Local cMoeda
Local cCodEmp := FWCodEmp()
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
//Rodape
oPrn:Box( 1430, 0010, 1710,1820)
oPrn:Box( 1430, 1820, 1710,2550)
oPrn:Box( 1430, 2550, 1710,3300)
oPrn:Box( 1430, 2550, 1580,3300)
oPrn:Box( 1710, 0010, 1900,3300)
oPrn:Box( 1900, 0010, 2110,3300)
oPrn:Box( 2110, 0010, 2350,3300)
If cPaisLoc <> "BRA" .And. !Empty(aValIVA)
For nG:=1 to Len(aValIVA)
nValIVA+=aValIVA[nG]
Next
Endif
oPrn:Say( 1465, 2580, "SUB TOTAL ",oFont9,100 )
oPrn:Say( 1465, 2850, GetMv("MV_SIMB"+cMoeda) + Transform(xMoeda(nTotal,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 999,999,999.99"),oFont9c, 100)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acessar o Endereco para Entrega do Arquivo de Empresa SM0. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cAlias := Alias()
dbSelectArea("SM0")
dbSetOrder(1) // forca o indice na ordem certa
nRegistro := Recno()
dbSeek(SUBS(cNumEmp,1,2)+SC7->C7_FILENT)
oPrn:Say( 1450, 0050, "Local de Entrega : " ,oFont3,100 )
If Empty(PAR13)
oPrn:Say( 1450, 0420, UPPER(SM0->M0_ENDENT)+" - "+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT), oFont4,100 )
Else
oPrn:Say( 1450, 0420, Upper(Alltrim(PAR13)+Alltrim(PAR14)) ,oFont4,100 )
EndIf
dbGoto(nRegistro)
dbSelectArea( cAlias )
oPrn:Say( 1495,0050, "Local de Cobrança : ",oFont3,100 )
oPrn:Say( 1495, 0420,UPPER(SM0->M0_ENDENT)+" - "+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT), oFont4,100 )
dbSelectArea("SE4")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_COND)
dbSelectArea("SC7")
dbSelectArea("SA2")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
// insere data hora e email do destinatario no pedido para impressão
oPrn:Say( 1540, 0050, "Condição de Pagto :",oFont3,100 )
oPrn:Say( 1540, 0420, Alltrim(SE4->E4_DESCRI),oFont4,100 )
oPrn:Say( 1585, 0050, "Data / Hora Email :",oFont3,100 )
oPrn:Say( 1585, 0420, DTOC(SC7->C7_DATAPED),oFont4,100 )
oPrn:Say( 1585, 0550, " / ",oFont3,100 )
oPrn:Say( 1585, 0580, SC7->C7_HORAPED,oFont4,100 )
oPrn:Say( 1630, 0050, "Email Destinatario :",oFont3,100 )
oPrn:Say( 1630, 0420, Alltrim(SC7->C7_EMAILFO),oFont4,100 )
oPrn:Say( 1630, 2580, "TOTAL " ,oFont9,100 )
oPrn:Say( 1630, 2850, GetMv("MV_SIMB"+cMoeda) + Transform(xMoeda(nTotMerc,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 999,999,999.99"),oFont9c, 100)
dbSelectArea("SM4")
dbSetOrder(1)
dbSelectArea("SC7")
oPrn:Say( 1435, 1850, "IPI :" ,oFont3,100 )
oPrn:Say( 1435, 2095, Transform(xMoeda(nTotIPI,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotIpi,12,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1480, 1850, "ICMS :" ,oFont3,100 )
oPrn:Say( 1480, 2050, Transform(xMoeda(nTotIcms,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotIcms,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1525, 1850, "Tipo Frete :" ,oFont3,100 )
oPrn:Say( 1525, 2060, IIF(SC7->C7_TPFRETE=='C',"CIF","FOB") ,oFont4c,100 )
oPrn:Say( 1570, 1850, "Valor Frete :" ,oFont3,100 )
oPrn:Say( 1570, 2050, Transform(xMoeda(nTotFrete,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotFrete,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1615, 1850, "Seguro :" ,oFont3,100 )
oPrn:Say( 1615, 2050, Transform(xMoeda(nTotSeguro,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotSeguro,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1660, 1850, "Desconto:" ,oFont3,100 )
oPrn:Say( 1660, 2050, Transform(xMoeda(nTotDesc,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotSeguro,14,MsDecimais(PAR12))) ,oFont4c,100 )
//oPrn:Say( 1835, 1850, "Despesas :" ,oFont3,100 )
//oPrn:Say( 1835, 2200, Transform(xMoeda(nTotDesp,SC7->C7_MOEDA,MV_PAR12,SC7->C7_DATPRF),tm(nTotDesp,14,MsDecimais(MV_PAR12))) ,oFont4,100 )
//Definição do Rodape referente ao Complemento
oPrn:Say( 1730, 0050, "Complemento :",oFont3,100 )
If !Empty(SC7->C7_OBSINTE)
//Variaveis para Impressão do Campo Memo
nLine := 1740
cObsInter := SC7->C7_OBSINTE
nTamObs := 130
For nBegin := 1 To 4
//Impressão do Campo Obserção Interna do Pedido de Compras
oPrn:Say( nLine, 0420, MemoLine(cObsInter,nTamObs,nBegin),oFont4c,100 )
nLine+=35
Next nBegin
Endif
if cCodEmp = "00" // verifica a empresa
oPrn:Say( 1920, 0040,"A NF enviada a Isogama deve conter o número do Pedido de Compra recebido acima, retratando fielmente os dados constantes no pedido, especialmente preços, impostos e quantidades.",oFont13,100 )
If SC7->C7_FILIAL == "01"
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2000, 0040,"Horário de recebimento de Matéria-prima e Embalagem: De segunda a sexta das 08:00 ao 12:00. Horário de recebimento de de outros Materias: de segunda a sexta das 08:00 ao 12:00 e das 13:00 as 17:00",oFont13,100 )
If SA2->A2_TPESSOA == "OS"
oPrn:Say( 2040, 0040,"Para envio de NFSe(Serviços), por favor utilize o endereço nfsepr@isogama.com.br",oFont13,100 )
Else
oPrn:Say( 2040, 0040,"Para envio de NFe, por favor utilize o endereço nfepr@isogama.com.br",oFont13,100 )
EndIf
ElseIf SC7->C7_FILIAL == "03"
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2000, 0040,"Horário de recebimento de Matéria-prima e Embalagem: De segunda a sexta das 08:00 ao 12:00. Horário de recebimento de de outros Materias: de segunda a sexta das 08:00 ao 12:00 e das 13:00 as 17:00",oFont13,100 )
If SA2->A2_TPESSOA == "OS"
oPrn:Say( 2040, 0040,"Para envio de NFSe(Serviços), por favor utilize o endereço nfseba@isogama.com.br",oFont13,100 )
Else
oPrn:Say( 2040, 0040,"Para envio de NFe, por favor utilize o endereço nfeba@isogama.com.br",oFont13,100 )
EndIf
EndIf
endif
if cCodEmp = "01"
oPrn:Say( 1920, 0040,"A NF enviada a Transportadora Isogama deve conter o número do Pedido de Compra recebido acima, retratando fielmente os dados constantes no pedido, especialmente preços, impostos e quantidades.",oFont13,100 )
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2040, 0040,"Para envio de NFe ou NFSe(Serviços), por favor utilize o endereço nfe.transportadora@isogama.com.br",oFont13,100 )
endif
//Definição do Rodape referente as Assinaturas
oPrn:Say( 2150, 0050, "ASSINATURAS: ",oFont7,100 )
oPrn:Say( 2300, 0600, "Comprador",oFont4,100 )
oPrn:Say( 2300, 1500, "Gerência",oFont4,100 )
oPrn:Say( 2300, 2500, "Diretoria",oFont4,100 )
Return .T.
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ ImpHtml ºAutor ³Silvio Cesar Alpi º Data ³ 26/02/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Tratamento para Visualição do Pedido em HTML º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Específico TERMOPAR IMPORT LTDA º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ImpHtml()
Local nTotIpi
Local nTotIcms
Local nTotFrete
Local nTotSeguro
Local nTotDesc
Local nTotalNF
Local nCondPagDescr
Local nVerNumPed
Local cDescri
Local CodProd
Local nCondpagCod
Local cMoeda
Local cTpFrete := IIF(SC7->C7_TPFRETE=='C',"CIF","FOB")
Local cCodEmp := FWCodEmp()
Private cCGCPict, cCepPict
Private nNumCotacao
Private cMsg
private lEnvMail
//Verifica qual a moeda informada na Impressão
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
nVerNumPed := VAL(Par01)
nMoedaP := SC7->C7_MOEDA //Variavel recebe a moeda que foi usada no Pedido
ProcRegua(10)
//verificar antes o pedido
While SC7->(!Eof()) .And. nVerNumPed <= VAL(Par02)
DbSelectArea("SC7")
DbSetOrder(1)
DbSeek(xFilial("SC7")+STRZERO(nVerNumPed,6))
dbSelectArea("SA2")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
lEnvMail := MsgYesNo("Confirma o Envio para o Email: "+Trim(SA2->A2_EMAIL)+" ?")
If !lEnvMail
return
endif
aEmail := {}
cCepPict:=PesqPict("SA2","A2_CEP")
cCGCPict:=PesqPict("SA2","A2_CGC")
cCompr:= LEFT(UsrFullName(SC7->C7_USER),20)
If Empty(cCompr)
//Cadastro Comprador
SY1->(DBSetOrder(3))
If SY1->(DBSeek(XFILIAL("SY1")+SC7->C7_USER))
cCompr:= Substr(SY1->Y1_NOME,1,20)
EndIf
EndIf
If Empty(cCompr)
cCompr:= embaralha(SC7->C7_USERLGI,1)
EndIf
cSubject := "Pedido de Compra Nº."+SC7->C7_NUM+" / "+AllTrim(Left(SA2->A2_NOME,30))
cEmailEnd:= SA2->A2_EMAIL
//verificando se o Fornecedor tem e-mail
IF cEmailEnd <> ' '
nCondPagDescr:=" "
nCondpagCod:=" "
dbSelectArea("SE4")
dbSetOrder(1)
SE4->(DBSEEK(XFILIAL("SE4") + SC7->C7_COND))
nCondpagCod :=Trim(SC7->C7_COND)
nCondPagDescr:=Trim(SE4->E4_DESCRI)
cMsg :="<html>"
cMsg += "<head>"
cMsg += "<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>"
cMsg += "<meta name='GENERATOR' content='Microsoft FrontPage 4.0'>"
cMsg += "<meta name='ProgId' content='FrontPage.Editor.Document'>"
cMsg += "<title>"+UPPER(SM0->M0_NOMECOM)+"</title>"
cMsg += "</head>"
cMsg += "<body>"
cMsg += "<table border='1' width='745' cellspacing='1' cellpadding='0'>"
cMsg += "<tr>"
cMsg += "<th width='566' height='19' colspan='6' valign='middle' align='center'>"
cMsg += "<div align='center'>"
cMsg += "<center>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 1
If nMoedaP == 1
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA1")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 2
ElseIf nMoedaP == 2
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA2")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 3
ElseIf nMoedaP == 3
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA3")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 4
ElseIf nMoedaP == 4
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA4")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 5
ElseIf nMoedaP == 5
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA5")+"</font></b></pre>"
Endif
cMsg += "</center>"
cMsg += "</div>"
cMsg += "</th>"
cMsg += "<td width='150' height='19' colspan='3'>"
cMsg += "<pre><center><font face='Arial' size='3'><b>Nº"+SC7->C7_NUM+"</b></font></center></pre>"
cMsg += "</td>"
cMsg += "</tr>"
cMsg += "<tr>"
cMsg += "<td width='425' colspan='3' height='94'>"
cMsg += "<font face='Arial' size='1'><b>EMPRESA</b></font><b> <font face='Arial' size='1'><br>"
cMsg += "</font></b>"
cMsg += "<font face='Arial' size='2'color='red'><b>"+UPPER(SM0->M0_NOMECOM)+" </b> </font><br>"
cMsg += "<font face='Arial' size='1'>"+UPPER(SM0->M0_ENDENT)+" <br>"
cMsg += "CEP: "+Transform(SM0->M0_CEPENT,cCepPict)+" "
cMsg += " "
cMsg += ""+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT)+"<br>"
cMsg += "TEL: "+"("+Substr(SM0->M0_TEL,2,3)+") "+Substr(SM0->M0_TEL,5,9)+" "
cMsg += " "
cMsg += "FAX: "+"("+Substr(SM0->M0_FAX,2,3)+") "+Substr(SM0->M0_FAX,5,9)+"<br>"
cMsg += "CNPJ: "+Transform(SM0->M0_CGC,cCgcPict)+" "
cMsg += " "
cMsg += "IE: "+InscrEst()+"</font>"
cMsg += " </td>"
cMsg += " <td width='347' colspan='6' height='94'>"
cMsg += " <font face='Arial' size='1'><b>FORNECEDOR <br></b>"
cMsg += " "+Alltrim(Substr(SA2->A2_NOME,1,28))+" ("+Alltrim(SA2->A2_COD)+"/"+SA2->A2_LOJA+") <br>"
cMsg += " VENDEDOR:"+SA2->A2_CONTATO+" <br>"
cMsg += " "+Upper(Alltrim(Substr(SA2->A2_END,1,45))+" - "+ Substr(SA2->A2_BAIRRO,1,10))+" <br>"
cMsg += " CIDADE: "+SA2->A2_MUN+" - "+SA2->A2_EST+" <br>"
cMsg += " CEP: "+Upper(SA2->A2_CEP)+" <br>"
cMsg += " FONE:"+"("+Substr(SA2->A2_DDD,1,3)+") "+Substr(SA2->A2_TEL,1,9)+" FAX: "+SA2->A2_FAX +"<br>"
cMsg += " CNPJ:"+ Upper(Trim(SA2->A2_CGC))+ " IE:" +Upper(Trim(SA2->A2_INSCR))+"</font>"
cMsg += " </td>"
cMsg += " </tr>"
cMsg += " <tr>"
cMsg += " <td width='716' height='16' colspan='9'>"
cMsg += " <address>"
cMsg += " <font face='Arial' size='1'><b>Data de Emissão:</b>"+Substr(Dtos(dDataBase),7,2)+"/"+Substr(Dtos(dDataBase),5,2)+"/"+Substr(Dtos(dDataBase),1,4)+"<br>"
cMsg += " <b>Comprador:</b>"+UPPER(Alltrim(cCompr))+"<br>"
cMsg += " <b>E-mail: "+UsrRetMail(__CUSERID)+"</b></font>"
cMsg += " </address>"
cMsg += " </td>"
cMsg += " </tr>"
cMsg += " <tr>"
cMsg += " <td width='11' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>ite</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='50' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>Cod:</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='357' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>Descrição do Material</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='21' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>UN</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='58' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>QTD</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='69' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>VLR. UNIT.</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='24' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>%IPI</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='69' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>VLR. TOTAL</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='57' height='16' align='center'>"
cMsg += " <pre><font size='1' face='Arial'><b>Data Entreg</b></font></pre>"
cMsg += " </td>"
cMsg += " </tr>"
//VARIAVEL DE CONTAGEM
nTotIpi := 0
nTotIcms := 0
nTotFrete := 0
nTotSeguro := 0
nTotDesc := 0
nTotalNF := 0
_cFilial := ""
nNumCotacao :=" "
CodProd :=" "
//Imprime Itens do no formato HTML
nItem:=0
_dDatEm := DDATABASE // data de envio de email
_dHoraEm := Time() // hora de envio de email
_cDesEm := SA2->A2_EMAIL // Email do Destinatario
While !Eof() .And. SC7->C7_NUM == STRZERO(nVerNumPed,6) .And. SC7->(C7_FORNECE+C7_LOJA)==SC7->C7_FORNECE+SC7->C7_LOJA
// grava a data e a hora do envio do email antes do envio --- Incluido Mauricio Micheli - 14/12/11
cQueryB:="UPDATE "+RetSqlName("SC7")+" "
cQueryB+="SET C7_HORAPED = '"+_dHoraEm+"', C7_DATAPED = '"+DTOS(_dDatEm)+"', C7_EMAILFO = '"+_cDesEm+"', C7_EMAILUS = '"+UsrRetMail(__CUSERID)+"' "
cQueryB+="WHERE C7_NUM = '"+SC7->C7_NUM+"'
cQueryB+="AND C7_ITEM = '"+SC7->C7_ITEM+"'
cQueryB+="AND C7_FILIAL = '"+SC7->C7_FILIAL+"' AND D_E_L_E_T_ <> '*' "
TCSQLEXEC(cQueryB)
//atribuindo a variavel ao produto
CodProd:= SC7->C7_PRODUTO
cDescri:= " "
IncProc()
nItem++
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pesquisa Descricao do Produto ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Par06 == 1 // B1_DESC"
cDescri := Trim(Posicione("SB1",1,xFilial("SB1")+SC7->C7_PRODUTO,"SB1->B1_DESC"))
ElseIf Par06 == 2 // B5_CEME
cDescri := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME"))
ElseIf Par06 == 4 // C1_DESCRI
cDescri := Trim(Posicione("SC1",1,xFilial("SC1")+SC7->C7_NUMSC+SC7->C7_ITEMSC,"SC1->C1_DESCRI"))
EndIf
cDescri := If(E
#INCLUDE "topconn.ch"
#INCLUDE "ap5mail.ch"
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ISCOM012 º Autor ³ Isogama - PR º Data ³ 08/10/07 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Impressão do Pedido de Compras º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºAlteracao ³ISCOM012 º Autor ³ Alyson Auriglieti º Data ³ 23/02/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º Adicionado os mpos data, hora e email destinatario no pedido que vai º±±
±±º por email e no pedido que vai para impressora º±±
±±º Funcoes alteradas --> FinalPed() / ImpHtml() º±±
±±º º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Isogama Industria Quimica Ltda º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
User Function ISCOM012()
//Declaracao de Variaveis
Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := ""
Local cPict := ""
Local Titulo := "Pedido de Compra Isogama"
Local nLin := 80
Local Cabec1 := "Item Codigo Descrição do Material Observações UM Qtde Valor Unitário %Desc IPI% Valor Total Data Entrega"
Local Cabec2 := ""
Local Imprime := .T.
Local aOrd := {}
Private nPag := 1
Private nPagd := 0
Private lEnd := .F.
Private lAbortPrint := .F.
Private CbTxt := ""
Private Limite := 80
Private Tamanho := "G"
Private NomeProg := "ISCOM012" // Coloque aqui o nome do programa para impressao no cabecalho
Private nTipo := 15
Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
Private nLastKey := 0
Private cPerg := PADR("MTR11G",10)
Private cbtxt := Space(10)
Private cbcont := 00
Private CONTFL := 01
Private m_pag := 01
Private wnrel := "ISCOM012"
Private cString := "SC7"
ValidPerg(cPerg)
Pergunte(cPerg,.F.)
//Monta a interface padrao com o usuario...
wnrel := SetPrint(cString,wnrel,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.T.,Tamanho,,.F.,,,.F.,.T.,)
Par01 := mv_par01
Par02 := mv_par02
Par03 := mv_par03
Par04 := mv_par04
Par05 := mv_par05
Par06 := mv_par06
Par07 := mv_par07
Par08 := mv_par08
Par09 := mv_par09
Par10 := mv_par10
Par11 := mv_par11
Par12 := mv_par12
Par13 := mv_par13
Par14 := mv_par14
Par15 := mv_par15
If nLastKey == 27
Return
Endif
If mv_par15==1
//Configurações para a Impressão
SetDefault(aReturn,cString,,,@Tamanho,2)
EndIf
If nLastKey == 27
Return
Endif
nTipo := If(aReturn[4]==1,15,18)
If mv_par15==2
If SC7->C7_CONAPRO == "B"
Alert("Pedidos não Liberados não podem ser enviados ao Fornecedor ")
Else
Processa({||ImpHtml()}, 'Processando Envio...')
Endif
Else
RptStatus({||Relato()})
EndIf
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ISCOM12A º Autor ³ Mauricio Micheli º Data ³ 10/03/08 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ Impressão do Pedido de Compras. º±±
±±º ³ Direto na Tela. º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Isogama Industria Quimica Ltda º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
User Function ISCOM12A()
//Declaracao de Variaveis
Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := ""
Local cPict := ""
Local Titulo := "Pedido de Compra Isogama"
Local nLin := 80
Local Cabec1 := "Item Codigo Descrição do Material Observações UM Qtde Valor Unitário %Desc IPI% Valor Total Data Entrega"
Local Cabec2 := ""
Local Imprime := .T.
Local aOrd := {}
Private nPag := 1
Private nPagd := 0
Private lEnd := .F.
Private lAbortPrint := .F.
Private CbTxt := ""
Private Limite := 80
Private Tamanho := "G"
Private NomeProg := "ISCOM12A" // Coloque aqui o nome do programa para impressao no cabecalho
Private nTipo := 15
Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
Private nLastKey := 0
Private cPerg := PADR("COM12A",10)
Private cbtxt := Space(10)
Private cbcont := 00
Private CONTFL := 01
Private m_pag := 01
Private wnrel := "ISCOM12A"
Private cString := "SC7"
AjustaSX1(cPerg)
Pergunte(cPerg,.F.)
//Monta a interface padrao com o usuario...
wnrel := SetPrint(cString,wnrel,cPerg,@titulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.T.,Tamanho,,.F.,,,.F.,.T.,)
Par01 := SC7->C7_NUM
Par02 := SC7->C7_NUM
Par03 := SC7->C7_EMISSAO
Par04 := SC7->C7_EMISSAO
Par05 := mv_par01
Par06 := mv_par02
Par07 := mv_par03
Par08 := mv_par04
Par09 := mv_par05
Par10 := mv_par06
Par11 := mv_par07
Par12 := mv_par08
Par13 := mv_par09
Par14 := mv_par10
Par15 := mv_par11
If nLastKey == 27
Return
Endif
If mv_par11==1
//Configurações para a Impressão
SetDefault(aReturn,cString,,,@Tamanho,2)
EndIf
If nLastKey == 27
Return
Endif
nTipo := If(aReturn[4]==1,15,18)
If mv_par11==2
If SC7->C7_CONAPRO == "B"
Alert("Pedidos não Liberados não podem ser enviados ao Fornecedor ")
Else
Processa({||ImpHtml()}, 'Processando Envio...')
Endif
Else
RptStatus({||Relato()})
EndIf
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³ Funcao ³VALIDPERG ³ Autor³Adalberto Moreno Batista³ Data ³11.02.2000³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ValidPerg()
Local _aAlias := Alias(), aRegs
dbSelectArea("SX1")
dbSetOrder(1)
aRegs:={}
// Grupo/Ordem/Pergunta/Variavel/Tipo/Tamanho/Decimal/Presel/GSC/Valid/Var01/Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/Def05/Cnt05
aAdd(aRegs,{cPerg,"01","Do Pedido ?","¿De Pedido?","From Order ?","mv_ch1","C",6,0,0,"G","","mv_par01","","","","000068","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"02","Até o Pedido ?","¿A Pedido?","To Order ?","mv_ch2","C",6,0,0,"G","","mv_par02","","","","000068","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"03","A partir da Data ?","¿De Fecha?","From Date ?","mv_ch3","D",8,0,0,"G","","mv_par03","","","","'01/01/2002'","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"04","Até a Data ?","¿A Fecha?","To Date ?","mv_ch4","D",0,0,0,"G","","mv_par04","","","","'26/12/2003'","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"05","Somente os novos ?","¿Solo los Nuevos?","Only the new ones ?","mv_ch5","N",1,0,2,"C","","mv_par05","Sim","Si","Yes","","","Nao","No","No","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"06","Descricao Produto ?","¿Descripcion Prodc.?","Product Description ?","mv_ch6","N",10,0,4,"C","","mv_par06","B1_DESC","","","","","B5_CEME","","","","","C7_DESCRI","","","","","C1_DESCRI","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"07","Qual Unid. de Med. ?","¿Cual Unidad Medida?","Which Unit of Meas. ?","mv_ch7","N",1,0,1,"C","","mv_par07","Primaria","Primaria","Primary","","","Secundaria","Secundaria","Secondary","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"08","Imprime ?","¿Imprime?","Print ?","mv_ch8","N",1,0,1,"C","","mv_par08","Pedido Compra","Pedido Compra","Purchase Order","","","Aut. de Entrega","Aut. de Entrega","Delivery Author","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"09","Numero de Vias ?","¿Numero de Copias?","Number of Copies ?","mv_ch9","N",2,0,0,"G","","mv_par09","","",""," 1","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"10","Imprime Pedidos ?","¿Imprime Pedidos?","Print Orders ?","mv_cha","N",1,0,3,"C","","mv_par10","Liberados","Aprobados","Approved","","","Bloqueados","Bloqueados","Blocked","","","Ambos","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"11","Considera SCs ?","¿Considerar SCs?","Consider Purc.Req. ?","mv_chb","N",1,0,3,"C","","mv_par11","Firmes","Confirmadas","Confirmed","","","Previstas","Previstas","Expected","","","Ambas","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"12","Qual Moeda ?","¿Cual Moneda?","Currency ?","mv_chc","N",1,0,1,"C","","mv_par12","Reais","","","","","Dolar","","","","","Ufir","","","","","Euro","","","","","Dolar Turismo","","","","","S","",""})
aAdd(aRegs,{cPerg,"13","Endereco de Entrega ?","","","mv_chd","C",40,0,0,"G","","mv_par13","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"14","Cont.End.Entrega ?","","","mv_che","C",40,0,0,"G","","mv_par14","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"15","Envia Email para Fornecedor ?","","","mv_chf","N",1,0,2,"C","","mv_par15","Não","","","","","Sim","","","","","","","","","","","","","","","","","","","","S","",""})
For i:=1 to Len(aRegs)
If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
Endif
Next
MsUnlock()
Endif
Next
dbSelectArea(_aAlias)
Return
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³ Funcao ³AjustaSX1 ³ Autor³ Mauricio Micheli ³ Data ³10.03.2008³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function AjustaSX1()
Local _aAlias := Alias(), aRegs
dbSelectArea("SX1")
dbSetOrder(1)
aRegs:={}
// Grupo/Ordem/Pergunta/Variavel/Tipo/Tamanho/Decimal/Presel/GSC/Valid/Var01/Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/Def05/Cnt05
aAdd(aRegs,{cPerg,"01","Somente os novos ?","¿Solo los Nuevos?","Only the new ones ?","mv_ch1","N",1,0,2,"C","","mv_par01","Sim","Si","Yes","","","Nao","No","No","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"02","Descricao Produto ?","¿Descripcion Prodc.?","Product Description ?","mv_ch2","N",10,0,4,"C","","mv_par02","B1_DESC","","","","","B5_CEME","","","","","C7_DESCRI","","","","","C1_DESCRI","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"03","Qual Unid. de Med. ?","¿Cual Unidad Medida?","Which Unit of Meas. ?","mv_ch3","N",1,0,1,"C","","mv_par03","Primaria","Primaria","Primary","","","Secundaria","Secundaria","Secondary","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"04","Imprime ?","¿Imprime?","Print ?","mv_ch4","N",1,0,1,"C","","mv_par04","Pedido Compra","Pedido Compra","Purchase Order","","","Aut. de Entrega","Aut. de Entrega","Delivery Author","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"05","Numero de Vias ?","¿Numero de Copias?","Number of Copies ?","mv_ch5","N",2,0,0,"G","","mv_par05","","",""," 1","","","","","","","","","","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"06","Imprime Pedidos ?","¿Imprime Pedidos?","Print Orders ?","mv_ch6","N",1,0,3,"C","","mv_par06","Liberados","Aprobados","Approved","","","Bloqueados","Bloqueados","Blocked","","","Ambos","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"07","Considera SCs ?","¿Considerar SCs?","Consider Purc.Req. ?","mv_ch7","N",1,0,3,"C","","mv_par07","Firmes","Confirmadas","Confirmed","","","Previstas","Previstas","Expected","","","Ambas","Ambos","Both","","","","","","","","","","","","","S","",""})
aAdd(aRegs,{cPerg,"08","Qual Moeda ?","¿Cual Moneda?","Currency ?","mv_chc","N",1,0,1,"C","","mv_par12","Reais","","","","","Dolar","","","","","Ufir","","","","","Euro","","","","","Dolar Turismo","","","","","S","",""})
aAdd(aRegs,{cPerg,"09","Endereco de Entrega ?","","","mv_ch9","C",40,0,0,"G","","mv_par09","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"10","Cont.End.Entrega ?","","","mv_cha","C",40,0,0,"G","","mv_par10","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"11","Envia Email para Fornecedor ?","","","mv_chb","N",1,0,2,"C","","mv_par11","Não","","","","","Sim","","","","","","","","","","","","","","","","","","","","S","",""})
For i:=1 to Len(aRegs)
If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
Endif
Next
MsUnlock()
Endif
Next
dbSelectArea(_aAlias)
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ RELATO ºAutor ³ Jeyson Gurek º Data ³ 16/10/06 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function Relato()
Local nReem
Local nOrder
Local cCondBus
Local nSavRec
Local aSavRec := {}
Private lEnc := .F.
Private cTitulo
Private oFont, cCode, oPrn
Private cCGCPict, cCepPict
Private lPrimPag :=.T.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definir as pictures ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cCepPict:=PesqPict("SA2","A2_CEP")
cCGCPict:=PesqPict("SA2","A2_CGC")
oFont1 := TFont():New( "Arial",,14,,.t.,,,,,.f. )
oFont2 := TFont():New( "Arial",,16,,.f.,,,,,.f. )
oFont3 := TFont():New( "Arial",,10,,.t.,,,,,.f. )
oFont4 := TFont():New( "Arial",,10,,.f.,,,,,.f. )
oFont5 := TFont():New( "Arial",,08,,.t.,,,,,.f. )
oFont6 := TFont():New( "Arial",,08,,.f.,,,,,.f. )
oFont7 := TFont():New( "Arial",,14,,.t.,,,,,.f. )
oFont8 := TFont():New( "Arial",,14,,.f.,,,,,.f. )
oFont9 := TFont():New( "Arial",,12,,.t.,,,,,.f. )
oFont10:= TFont():New( "Arial",,12,,.f.,,,,,.f. )
oFont11:= TFont():New( "Arial",,07,,.t.,,,,,.f. )
oFont12:= TFont():New( "Arial",,07,,.f.,,,,,.f. )
oFont13:= TFont():New( "Arial",,09,,.t.,,,,,.f. )
oFont1c := TFont():New( "Courier New",,16,,.t.,,,,,.f. )
oFont2c := TFont():New( "Courier New",,16,,.f.,,,,,.f. )
oFont3c := TFont():New( "Courier New",,10,,.t.,,,,,.f. )
oFont4c := TFont():New( "Courier New",,10,,.f.,,,,,.f. )
oFont5c := TFont():New( "Courier New",,09,,.t.,,,,,.f. )
oFont6c := TFont():New( "Courier New",,09,,.T.,,,,,.f. )
oFont7c := TFont():New( "Courier New",,14,,.t.,,,,,.f. )
oFont8c := TFont():New( "Courier New",,14,,.f.,,,,,.f. )
oFont9c := TFont():New( "Courier New",,12,,.t.,,,,,.f. )
oFont10c:= TFont():New( "Courier New",,12,,.f.,,,,,.f. )
nDescProd:= 0
nTotal := 0
nTotMerc := 0
cCondBus := Par01
nOrder := 1
nPagD:=1
dbSelectArea("SC7")
dbSetOrder(nOrder)
SetRegua(nPagD)
dbSeek(xFilial("SC7")+cCondBus,.T.)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Faz manualmente porque nao chama a funcao Cabec() ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//@ 0,0 PSay AvalImp(Iif(nDifColCC > 0,132,220))
While !Eof() .And. C7_FILIAL = xFilial("SC7") .And. C7_NUM >= Par01 .And. C7_NUM <= Par02
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Cria as variaveis para armazenar os valores do pedido ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nOrdem := 1
nReem := 0
If C7_EMITIDO == "S" .And. Par05 == 1
dbSkip()
Loop
Endif
If (C7_CONAPRO == "B" .And. Par10 == 1) .Or.;
(C7_CONAPRO != "B" .And. Par10 == 2)
dbSkip()
Loop
Endif
If (C7_EMISSAO < Par03) .Or. (C7_EMISSAO > Par04)
dbSkip()
Loop
Endif
If C7_TIPO == 2
dbSkip()
Loop
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Filtra Tipo de SCs Firmes ou Previstas ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If !MtrAValOP(Par11, 'SC7')
dbSkip()
Loop
EndIf
MaFisEnd()
MaFisIniPC(SC7->C7_NUM)
//MaFisIniPC( SC7->C7_NUM, SC7->C7_ITEM, SC7->C7_SEQUEN)
For ncw := 1 To Par09 // Imprime o numero de vias informadas
ImpCabec()
nTotal := 0
nTotMerc := 0
nDescProd:= 0
nReem := SC7->C7_QTDREEM + 1
nSavRec := SC7->(Recno())
NumPed := SC7->C7_NUM
li := 465
nTotDesc := 0
cFornece := SC7->(C7_FORNECE+C7_LOJA)
While !Eof() .And. SC7->C7_FILIAL = xFilial("SC7") .And. SC7->C7_NUM == NumPed
dbSelectArea("SC7")
If Ascan(aSavRec,Recno()) == 0 // Guardo recno p/gravacao
AADD(aSavRec,Recno())
Endif
IncRegua()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Verifica se havera salto de formulario ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If li > 1350
nOrdem++
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 465
Endif
li:=li+60
oPrn:Say( li, 0050, StrZero(Val(SC7->C7_ITEM),4) ,oFont4,100 )
oPrn:Say( li, 0175, UPPER(SC7->C7_PRODUTO),oFont4,100 )
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pesquisa Descricao do Produto ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ImpProd()
If SC7->C7_DESC1 != 0 .or. SC7->C7_DESC2 != 0 .or. SC7->C7_DESC3 != 0
nDescProd+= CalcDesc(SC7->C7_TOTAL,SC7->C7_DESC1,SC7->C7_DESC2,SC7->C7_DESC3)
Else
nDescProd+=SC7->C7_VLDESC
Endif
dbSkip()
EndDo
dbGoto(nSavRec)
If li>1350
nOrdem++
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 465
Endif
FinalPed() // Imprime os dados complementares do PC
Next
MaFisEnd()
/*
dbSelectArea("SC7")
If Len(aSavRec)>0
For i:=1 to Len(aSavRec)
dbGoto(aSavRec)
RecLock("SC7",.F.) //Atualizacao do flag de Impressao
Replace C7_QTDREEM With (C7_QTDREEM+1)
Replace C7_EMITIDO With "S"
MsUnLock()
Next
dbGoto(aSavRec[Len(aSavRec)]) // Posiciona no ultimo elemento e limpa array
Endif
*/
dbGoto(aSavRec[Len(aSavRec)]) // Posiciona no ultimo elemento e limpa array
aSavRec := {}
dbSkip()
EndDo
dbSelectArea("SC7")
Set Filter To
dbSetOrder(1)
dbSelectArea("SX3")
dbSetOrder(1)
If lEnc
oPrn:Preview()
MS_FLUSH()
EndIf
Return .T.
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpCabec ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime o Cabecalho do Pedido de Compra ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpCabec(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ImpCabec()
Local nOrden, cCGC
LOcal cAlter := ""
Local cAprova := ""
Local cCompr := ""
Local cMoeda
Private cSubject
Private cTitRel := "PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "
Private nMoedaP := 1
Private nTxMoedaP := 1
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
If !lPrimPag
oPrn:EndPage()
oPrn:StartPage()
nPag += 1
Else
lPrimPag := .F.
lEnc := .T.
oPrn := TMSPrinter():New()
//Define o Posicionamento da Pagina
oPrn:SetLandscape()
//Define o Tamanho da Pagina para Impressão
oPrn:SetPaperSize(9)='A4'
EndIF
oPrn:Say( 0020, 0020, " ",oFont,100 ) // startando a impressora
cCompr:= LEFT(UsrFullName(SC7->C7_USER),20)
If Empty(cCompr)
//Cadastro Comprador
SY1->(DBSetOrder(3))
If SY1->(DBSeek(XFILIAL("SY1")+SC7->C7_USER))
cCompr:= Substr(SY1->Y1_NOME,1,20)
EndIf
EndIf
If Empty(cCompr)
cCompr:= embaralha(SC7->C7_USERLGI,1)
EndIf
dbSelectArea("SC7")
If C7_CONAPRO != "B"
dbSelectArea("SCR")
dbSetOrder(1)
dbSeek(xFilial()+"PC"+SC7->C7_NUM)
While !Eof() .And. SCR->CR_FILIAL+Alltrim(SCR->CR_NUM)==xFilial("SCR")+SC7->C7_NUM .And. SCR->CR_TIPO == "PC"
IF SCR->CR_STATUS=="03"
cAprova += AllTrim(UsrFullName(SCR->CR_USER))
EndIF
dbSelectArea("SCR")
dbSkip()
Enddo
If !Empty(SC7->C7_GRUPCOM)
dbSelectArea("SAJ")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_GRUPCOM)
While !Eof() .And. SAJ->AJ_FILIAL+SAJ->AJ_GRCOM == xFilial("SAJ")+SC7->C7_GRUPCOM
If SAJ->AJ_USER != SC7->C7_USER
cAlter += AllTrim(UsrFullName(SAJ->AJ_USER))+"/"
EndIf
dbSelectArea("SAJ")
dbSkip()
EndDo
EndIf
Else
cAprova := "Não Aprovado"
EndIF
//oPrn:SayBitmap( 0100,0010,"\sigaadv\marca.bmp",400,170 )
//Cabecalho (Enderecos da Empresa e Fornecedor)
oPrn:Box( 0000, 0010, 0420,0410)
oPrn:Box( 0000, 0410, 0175,2550)
oPrn:Box( 0000, 2550, 0175,2900)
oPrn:Box( 0000, 2900, 0175,3300)
oPrn:Box( 0175, 0410, 0420,1380)
oPrn:Box( 0175, 1380, 0420,2550)
oPrn:Box( 0175, 2550, 0420,3300)
//Cabecalho Produto do Pedido
oPrn:Box( 0420, 0010, 0480,0140)
oPrn:Box( 0420, 0140, 0480,0410)
oPrn:Box( 0420, 0410, 0480,2019)
oPrn:Box( 0420, 2019, 0480,2085)
oPrn:Box( 0420, 2085, 0480,2280)
oPrn:Box( 0420, 2280, 0480,2550)
oPrn:Box( 0420, 2550, 0480,2690)
oPrn:Box( 0420, 2690, 0480,2800)
oPrn:Box( 0420, 2800, 0480,3110)
oPrn:Box( 0420, 3110, 0480,3300)
//Espaco dos Itens do Pedido
oPrn:Box( 0480, 0010, 1430,0140)
oPrn:Box( 0480, 0140, 1430,0410)
oPrn:Box( 0480, 0410, 1430,2019)
oPrn:Box( 0480, 2019, 1430,2085)
oPrn:Box( 0480, 2085, 1430,2280)
oPrn:Box( 0480, 2280, 1430,2550)
oPrn:Box( 0480, 2550, 1430,2690)
oPrn:Box( 0480, 2690, 1430,2800)
oPrn:Box( 0480, 2800, 1430,3110)
oPrn:Box( 0480, 3110, 1430,3300)
oPrn:SayBitmap( 0100,0015,"\system\marca.bmp",360,140 )
DBSelectArea("SA2")
DBSetOrder(1)
DBSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
DBSelectArea("SM2")
DBSetOrder(1)
//Variavel recebe a moeda e a Taxa informada
nMoedaP := SC7->C7_MOEDA
nTxMoedaP := SC7->C7_TXMOEDA
cIdMoeda := SubStr(cValToChar(Par12),0,1)
//Verifica qual a taxa que sera utilizada
If nMoedaP <> 1 .And. nTxMoedaP > 0
nTxMoedaP := SC7->C7_TXMOEDA
ElseIf nMoedaP == 1 .And. Par12 <> 1
nTxMoedaP := &("SM2->M2_MOEDA" + Str(Par12,1))
ElseIf Par12 == 2 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA2
ElseIf Par12 == 3 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA3
ElseIf Par12 == 4 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA4
ElseIf Par12 == 5 .And. nTxMoedaP == 0
nTxMoedaP := SM2->M2_MOEDA5
Endif
//Impressao do Titulo do Relatorio com o Real
If nMoedaP <> 1 .And. Par12 == 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA1")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP == 1 .And. Par12 == 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA1"),oFont1,100 )
ElseIf nMoedaP == 1 .And. Par12 <> 1
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA"+cMoeda)+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 2
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA2")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 3
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA3")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 4
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA4")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
ElseIf nMoedaP <> 1 .And. Par12 == 5
oPrn:Say( 0080, 0620, cTitRel + GetMv("MV_MOEDA5")+ " (Tx. "+ cValToChar(nTxMoedaP)+ ")",oFont1,100 )
Endif
oPrn:Say( 0085, 2600, "Nr. "+SC7->C7_NUM,oFont1,100 )
oPrn:Say( 0080, 2990, "FOLHA:" ,oFont4,100 )
oPrn:Say( 0080, 3130, Alltrim(StrZero(nPag,2))+" / "+Alltrim(StrZero(nPagD,2)) ,oFont4,100 )
//Itens das Empresas
oPrn:Say( 0185, 0430, "EMPRESA",oFont3,100 )
oPrn:Say( 0185, 1400, "FORNECEDOR",oFont3,100 )
oPrn:Say( 0185, 2570, "DATA EMISSÃO: " + DTOC(SC7->C7_EMISSAO),oFont3,100 )
oPrn:Say( 0230, 0430, SM0->M0_NOMECOM ,oFont6,100 )
oPrn:Say( 0230, 1400, Alltrim(Substr(SA2->A2_NOME,1,40))+" - ("+SA2->A2_COD+")" ,oFont6,100 )
DbSelectArea("SI3")
DbSetOrder(1)
If DbSeek(xFilial("SI3") + SC7->C7_CC)
oPrn:Say( 0230, 2570, UPPER("C.Custo: " ) + UPPER(Alltrim(SC7->C7_CC) + " - "+Alltrim(Substr(SI3->I3_DESC,1,25))),oFont6,100 )
Else
oPrn:Say( 0230, 2570, UPPER("C.Custo: Material Produtivo") ,oFont6,100 )
EndIF
oPrn:Say( 0265, 0430, UPPER(SM0->M0_ENDENT) ,oFont6,100 )
oPrn:Say( 0265, 1400, UPPER(Alltrim(Substr(SA2->A2_END,1,50))+" - "+ Substr(SA2->A2_BAIRRO,1,10)) ,oFont6,100 )
DbSelectArea("AFG") //Projetos x Sol. Compras
dbSetOrder(2)
dbSeek(xFilial()+SC7->C7_NUMSC+SC7->C7_ITEMSC)
SC1->(dbSeek(xFilial()+SC7->C7_NUMSC+SC7->C7_ITEMSC))
oPrn:Say( 0275, 2570, "Nr SC: " + SC1->C1_NUM,oFont6,100 )
oPrn:Say( 0300, 0430, UPPER("CEP: "+Trans(SM0->M0_CEPENT,cCepPict)),oFont6,100 )
oPrn:Say( 0300, 0940, UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT) ,oFont6,100 )
oPrn:Say( 0300, 1400, Upper(Trim(SA2->A2_MUN)+" - "+SA2->A2_EST+" "+"CEP: "+SA2->A2_CEP) ,oFont6,100 )
oPrn:Say( 0300, 2170, "FAX: " + "("+Substr(SA2->A2_DDD,1,3)+") "+SA2->A2_FAX ,oFont6,100 )
oPrn:Say( 0320, 2570, "COMPRADOR : " + Upper(Alltrim(cCompr)),oFont6,100 )
oPrn:Say( 0335, 0430, "TEL: " + SM0->M0_TEL ,oFont6,100 )
oPrn:Say( 0335, 0940, "FAX: " + SM0->M0_FAX ,oFont6,100 )
oPrn:Say( 0335, 1400, "VENDEDOR: " + Upper(Substr(SC7->C7_CONTATO,1,10)),oFont6,100 )
oPrn:Say( 0335, 2170, "FONE: " + "("+Substr(SA2->A2_DDD,1,3)+") "+Substr(SA2->A2_TEL,1,15) ,oFont6,100 )
oPrn:Say( 0365, 2570, "APROVADO POR : " + UPPER(Alltrim(cAprova)),oFont6,100 )
dbSelectArea("SX3")
dbSetOrder(2)
dbSeek("A2_CGC")
cCGC := Alltrim(X3TITULO())
nOrden = IndexOrd()
oPrn:Say( 0370, 0430, (cCGC) + " "+ Transform(SM0->M0_CGC,cCgcPict) ,oFont6,100 )
oPrn:Say( 0370, 0940, "IE:" + InscrEst() ,oFont6,100 )
dbSelectArea("SA2")
dbSetOrder(nOrden)
oPrn:Say( 0370, 1400, "CNPJ: " + Transform(SA2->A2_CGC,cCgcPict) ,oFont6,100 )
oPrn:Say( 0370, 2170, "IE: " + SA2->A2_INSCR ,oFont6,100 )
oPrn:Say( 0435, 0035, "Item" ,oFont3,100 )
oPrn:Say( 0435, 0165, "Código" ,oFont3,100 )
oPrn:Say( 0435, 0430, "Descrição do Material e/ou Serviço" ,oFont3,100 )
oPrn:Say( 0435, 1400, "Observações" ,oFont3,100 )
oPrn:Say( 0435, 2025, "UM" ,oFont3,100 )
oPrn:Say( 0435, 2140, "Qtde" ,oFont3,100 )
oPrn:Say( 0435, 2305, "Valor Unitário" ,oFont3,100 )
oPrn:Say( 0435, 2560, "%Desc" ,oFont3,100 )
oPrn:Say( 0435, 2710, "IPI%" ,oFont3,100 )
oPrn:Say( 0435, 2895, "Valor Total" ,oFont3,100 )
oPrn:Say( 0435, 3145, "Entrega" ,oFont3,100 )
cSubject := "Pedido de Compras nr."+SC7->C7_NUM+" / "+AllTrim(Left(SA2->A2_NOME,30))
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpProd ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Pesquisar e imprimir dados Cadastrais do Produto. ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpProd(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpProd()
LOCAL cDesc, nLinRef := 1, nBegin := 0, cDescri := "", nLinha:=0,;
nTamDesc := 50 , aColuna := Array(
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Impressao da descricao generica do Produto. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Par06 == 1 // B1_DESC"
cDescri := Trim(Posicione("SB1",1,xFilial("SB1")+SC7->C7_PRODUTO,"SB1->B1_DESC"))
ElseIf Par06 == 2 // B5_CEME
cDescri := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME"))
ElseIf Par06 == 4 // C1_DESCRI
cDescri := Trim(Posicione("SC1",1,xFilial("SC1")+SC7->C7_NUMSC+SC7->C7_ITEMSC,"SC1->C1_DESCRI"))
EndIf
cDescri := If(Empty(cDescri),Trim(SC7->C7_DESCRI),cDescri) // opcao 3
//cObs := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME")) //
cObs := Trim(SC7->C7_OBS)
dbSelectArea("SC7")
nLinhaD:= MLCount(cDescri,nTamDesc)
nLinhaO:= MLCount(cObs,30)
nLinha := If(nLinhaD>nLInhaO,nLinhaD,nLinhaO)
oPrn:Say( li, 0430, MemoLine(cDescri,nTamDesc,1) ,oFont4,100 )
oPrn:Say( li, 1400, If(nLinhaO>0,MemoLine(cObs,30,1),""),oFont6,100 )
ImpCampos()
For nBegin := 2 To nLinha
// li+=35
li+=50
If nLinhaD>=nBegin
oPrn:Say( li, 0430, MemoLine(cDescri,nTamDesc,nBegin) ,oFont4,100 )
EndIf
If nLinhaO>=nBegin
oPrn:Say( li, 1400, MemoLine(cObs,30,nBegin),oFont6,100 )
EndIf
Next nBegin
Return NIL
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpCampos³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprimir dados Complementares do Produto no Pedido. ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpCampos(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpCampos()
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
_cValor := ""
dbSelectArea("SC7")
If PAR07 == 2 .And. !Empty(SC7->C7_SEGUM)
oPrn:Say( li, 2032, SC7->C7_SEGUM ,oFont4,100 )
Else
oPrn:Say( li, 2032, SC7->C7_UM ,oFont4,100 )
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2266,Transform(SC7->C7_QTSEGUM,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
Else
oPrn:Say(li,2266,Transform(SC7->C7_QUANT,"@E 9,999,999.99"),oFont4,100,,,1) //1=alinhado a direita
EndIf
If PAR07 == 2 .And. !Empty(SC7->C7_QTSEGUM)
oPrn:Say(li,2545,Transform(xMoeda((SC7->C7_TOTAL/SC7->C7_QTSEGUM),SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),PesqPict("SC7","C7_PRECO",14, Par12)),oFont4,100,,,1)
Else
_cValor := Transform(xMoeda(SC7->C7_PRECO,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 9,999,999.999999")
IF Substr(_cValor,13,4) == "0000"
_cValor := Substr(_cValor,1,12) + " "
ELSEIF Substr(_cValor,14,5) == "000"
_cValor := Substr(_cValor,1,13) + " "
ELSEIF Substr(_cValor,15,6) == "00"
_cValor := Substr(_cValor,1,14) + " "
ELSEIF Substr(_cValor,16,7) == "0"
_cValor := Substr(_cValor,1,15) + " "
EndIf
oPrn:Say(li,2545,_cValor,oFont4,100,,,1)
EndIf
oPrn:Say(li,2655,Transform(SC7->C7_DESC1,"@E 99.99"),oFont4,100,,,1)
oPrn:Say(li,2765,Transform(SC7->C7_IPI,"@E 99"),oFont4,100,,,1)
oPrn:Say(li,3065,Transform(xMoeda(SC7->C7_TOTAL,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda),"@E 999,999,999.99"),oFont4,100,,,1)
oPrn:Say(li,3270,DTOC(SC7->C7_DATPRF),oFont4,100,,,1)
nTotal :=nTotal+SC7->C7_TOTAL
nTotMerc:=MaFisRet(,"NF_TOTAL")
nTotDesc+=SC7->C7_VLDESC
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ ImpRodape³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime o rodape do formulario e salta para a proxima folha³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ImpRodape(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpRodape()
oPrn:Say( 1700, 0070, "CONTINUA ..." ,oFont3,100 )
Return .T.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun o ³ FinalPed ³ Autor ³ Wagner Xavier ³ Data ³ ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri o ³ Imprime os dados complementares do Pedido de Compra ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ FinalPed(Void) ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MatR110 ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function FinalPed()
Local nk := 1,nG
Local nQuebra := 0
Local lNewAlc := .F.
Local lLiber := .F.
Local lImpLeg := .T.
LOcal cAlter :=""
Local cAprova :=""
Local cCompr :=""
Local aColuna := Array(, nTotLinhas
Local nTotIpi := MaFisRet(,'NF_VALIPI')
Local nTotIcms := MaFisRet(,'NF_VALICM')
Local nTotDesp := MaFisRet(,'NF_DESPESA')
Local nTotFrete := MaFisRet(,'NF_FRETE')
Local nTotalNF := MaFisRet(,'NF_TOTAL')
Local nTotSeguro:= MaFisRet(,'NF_SEGURO')
Local aValIVA := MaFisRet(,"NF_VALIMP")
Local nTxMoeda := IIF(SC7->C7_TXMOEDA > 0,SC7->C7_TXMOEDA,Nil)
Local cMoeda
Local cCodEmp := FWCodEmp()
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
//Rodape
oPrn:Box( 1430, 0010, 1710,1820)
oPrn:Box( 1430, 1820, 1710,2550)
oPrn:Box( 1430, 2550, 1710,3300)
oPrn:Box( 1430, 2550, 1580,3300)
oPrn:Box( 1710, 0010, 1900,3300)
oPrn:Box( 1900, 0010, 2110,3300)
oPrn:Box( 2110, 0010, 2350,3300)
If cPaisLoc <> "BRA" .And. !Empty(aValIVA)
For nG:=1 to Len(aValIVA)
nValIVA+=aValIVA[nG]
Next
Endif
oPrn:Say( 1465, 2580, "SUB TOTAL ",oFont9,100 )
oPrn:Say( 1465, 2850, GetMv("MV_SIMB"+cMoeda) + Transform(xMoeda(nTotal,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 999,999,999.99"),oFont9c, 100)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Acessar o Endereco para Entrega do Arquivo de Empresa SM0. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cAlias := Alias()
dbSelectArea("SM0")
dbSetOrder(1) // forca o indice na ordem certa
nRegistro := Recno()
dbSeek(SUBS(cNumEmp,1,2)+SC7->C7_FILENT)
oPrn:Say( 1450, 0050, "Local de Entrega : " ,oFont3,100 )
If Empty(PAR13)
oPrn:Say( 1450, 0420, UPPER(SM0->M0_ENDENT)+" - "+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT), oFont4,100 )
Else
oPrn:Say( 1450, 0420, Upper(Alltrim(PAR13)+Alltrim(PAR14)) ,oFont4,100 )
EndIf
dbGoto(nRegistro)
dbSelectArea( cAlias )
oPrn:Say( 1495,0050, "Local de Cobrança : ",oFont3,100 )
oPrn:Say( 1495, 0420,UPPER(SM0->M0_ENDENT)+" - "+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT), oFont4,100 )
dbSelectArea("SE4")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_COND)
dbSelectArea("SC7")
dbSelectArea("SA2")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
// insere data hora e email do destinatario no pedido para impressão
oPrn:Say( 1540, 0050, "Condição de Pagto :",oFont3,100 )
oPrn:Say( 1540, 0420, Alltrim(SE4->E4_DESCRI),oFont4,100 )
oPrn:Say( 1585, 0050, "Data / Hora Email :",oFont3,100 )
oPrn:Say( 1585, 0420, DTOC(SC7->C7_DATAPED),oFont4,100 )
oPrn:Say( 1585, 0550, " / ",oFont3,100 )
oPrn:Say( 1585, 0580, SC7->C7_HORAPED,oFont4,100 )
oPrn:Say( 1630, 0050, "Email Destinatario :",oFont3,100 )
oPrn:Say( 1630, 0420, Alltrim(SC7->C7_EMAILFO),oFont4,100 )
oPrn:Say( 1630, 2580, "TOTAL " ,oFont9,100 )
oPrn:Say( 1630, 2850, GetMv("MV_SIMB"+cMoeda) + Transform(xMoeda(nTotMerc,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF,,nTxMoeda), "@E 999,999,999.99"),oFont9c, 100)
dbSelectArea("SM4")
dbSetOrder(1)
dbSelectArea("SC7")
oPrn:Say( 1435, 1850, "IPI :" ,oFont3,100 )
oPrn:Say( 1435, 2095, Transform(xMoeda(nTotIPI,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotIpi,12,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1480, 1850, "ICMS :" ,oFont3,100 )
oPrn:Say( 1480, 2050, Transform(xMoeda(nTotIcms,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotIcms,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1525, 1850, "Tipo Frete :" ,oFont3,100 )
oPrn:Say( 1525, 2060, IIF(SC7->C7_TPFRETE=='C',"CIF","FOB") ,oFont4c,100 )
oPrn:Say( 1570, 1850, "Valor Frete :" ,oFont3,100 )
oPrn:Say( 1570, 2050, Transform(xMoeda(nTotFrete,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotFrete,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1615, 1850, "Seguro :" ,oFont3,100 )
oPrn:Say( 1615, 2050, Transform(xMoeda(nTotSeguro,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotSeguro,14,MsDecimais(PAR12))) ,oFont4c,100 )
oPrn:Say( 1660, 1850, "Desconto:" ,oFont3,100 )
oPrn:Say( 1660, 2050, Transform(xMoeda(nTotDesc,SC7->C7_MOEDA,PAR12,SC7->C7_DATPRF),tm(nTotSeguro,14,MsDecimais(PAR12))) ,oFont4c,100 )
//oPrn:Say( 1835, 1850, "Despesas :" ,oFont3,100 )
//oPrn:Say( 1835, 2200, Transform(xMoeda(nTotDesp,SC7->C7_MOEDA,MV_PAR12,SC7->C7_DATPRF),tm(nTotDesp,14,MsDecimais(MV_PAR12))) ,oFont4,100 )
//Definição do Rodape referente ao Complemento
oPrn:Say( 1730, 0050, "Complemento :",oFont3,100 )
If !Empty(SC7->C7_OBSINTE)
//Variaveis para Impressão do Campo Memo
nLine := 1740
cObsInter := SC7->C7_OBSINTE
nTamObs := 130
For nBegin := 1 To 4
//Impressão do Campo Obserção Interna do Pedido de Compras
oPrn:Say( nLine, 0420, MemoLine(cObsInter,nTamObs,nBegin),oFont4c,100 )
nLine+=35
Next nBegin
Endif
if cCodEmp = "00" // verifica a empresa
oPrn:Say( 1920, 0040,"A NF enviada a Isogama deve conter o número do Pedido de Compra recebido acima, retratando fielmente os dados constantes no pedido, especialmente preços, impostos e quantidades.",oFont13,100 )
If SC7->C7_FILIAL == "01"
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2000, 0040,"Horário de recebimento de Matéria-prima e Embalagem: De segunda a sexta das 08:00 ao 12:00. Horário de recebimento de de outros Materias: de segunda a sexta das 08:00 ao 12:00 e das 13:00 as 17:00",oFont13,100 )
If SA2->A2_TPESSOA == "OS"
oPrn:Say( 2040, 0040,"Para envio de NFSe(Serviços), por favor utilize o endereço nfsepr@isogama.com.br",oFont13,100 )
Else
oPrn:Say( 2040, 0040,"Para envio de NFe, por favor utilize o endereço nfepr@isogama.com.br",oFont13,100 )
EndIf
ElseIf SC7->C7_FILIAL == "03"
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2000, 0040,"Horário de recebimento de Matéria-prima e Embalagem: De segunda a sexta das 08:00 ao 12:00. Horário de recebimento de de outros Materias: de segunda a sexta das 08:00 ao 12:00 e das 13:00 as 17:00",oFont13,100 )
If SA2->A2_TPESSOA == "OS"
oPrn:Say( 2040, 0040,"Para envio de NFSe(Serviços), por favor utilize o endereço nfseba@isogama.com.br",oFont13,100 )
Else
oPrn:Say( 2040, 0040,"Para envio de NFe, por favor utilize o endereço nfeba@isogama.com.br",oFont13,100 )
EndIf
EndIf
endif
if cCodEmp = "01"
oPrn:Say( 1920, 0040,"A NF enviada a Transportadora Isogama deve conter o número do Pedido de Compra recebido acima, retratando fielmente os dados constantes no pedido, especialmente preços, impostos e quantidades.",oFont13,100 )
oPrn:Say( 1960, 0040,"Em caso de divergências entre NF e Pedido, O material e/ou serviço estará sujeito a devolução.",oFont13,100 )
oPrn:Say( 2040, 0040,"Para envio de NFe ou NFSe(Serviços), por favor utilize o endereço nfe.transportadora@isogama.com.br",oFont13,100 )
endif
//Definição do Rodape referente as Assinaturas
oPrn:Say( 2150, 0050, "ASSINATURAS: ",oFont7,100 )
oPrn:Say( 2300, 0600, "Comprador",oFont4,100 )
oPrn:Say( 2300, 1500, "Gerência",oFont4,100 )
oPrn:Say( 2300, 2500, "Diretoria",oFont4,100 )
Return .T.
/*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ ImpHtml ºAutor ³Silvio Cesar Alpi º Data ³ 26/02/04 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Tratamento para Visualição do Pedido em HTML º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Específico TERMOPAR IMPORT LTDA º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/
Static Function ImpHtml()
Local nTotIpi
Local nTotIcms
Local nTotFrete
Local nTotSeguro
Local nTotDesc
Local nTotalNF
Local nCondPagDescr
Local nVerNumPed
Local cDescri
Local CodProd
Local nCondpagCod
Local cMoeda
Local cTpFrete := IIF(SC7->C7_TPFRETE=='C',"CIF","FOB")
Local cCodEmp := FWCodEmp()
Private cCGCPict, cCepPict
Private nNumCotacao
Private cMsg
private lEnvMail
//Verifica qual a moeda informada na Impressão
cMoeda := Iif(Par12<10,Str(Par12,1),Str(Par12,2))
nVerNumPed := VAL(Par01)
nMoedaP := SC7->C7_MOEDA //Variavel recebe a moeda que foi usada no Pedido
ProcRegua(10)
//verificar antes o pedido
While SC7->(!Eof()) .And. nVerNumPed <= VAL(Par02)
DbSelectArea("SC7")
DbSetOrder(1)
DbSeek(xFilial("SC7")+STRZERO(nVerNumPed,6))
dbSelectArea("SA2")
dbSetOrder(1)
dbSeek(xFilial()+SC7->C7_FORNECE+SC7->C7_LOJA)
lEnvMail := MsgYesNo("Confirma o Envio para o Email: "+Trim(SA2->A2_EMAIL)+" ?")
If !lEnvMail
return
endif
aEmail := {}
cCepPict:=PesqPict("SA2","A2_CEP")
cCGCPict:=PesqPict("SA2","A2_CGC")
cCompr:= LEFT(UsrFullName(SC7->C7_USER),20)
If Empty(cCompr)
//Cadastro Comprador
SY1->(DBSetOrder(3))
If SY1->(DBSeek(XFILIAL("SY1")+SC7->C7_USER))
cCompr:= Substr(SY1->Y1_NOME,1,20)
EndIf
EndIf
If Empty(cCompr)
cCompr:= embaralha(SC7->C7_USERLGI,1)
EndIf
cSubject := "Pedido de Compra Nº."+SC7->C7_NUM+" / "+AllTrim(Left(SA2->A2_NOME,30))
cEmailEnd:= SA2->A2_EMAIL
//verificando se o Fornecedor tem e-mail
IF cEmailEnd <> ' '
nCondPagDescr:=" "
nCondpagCod:=" "
dbSelectArea("SE4")
dbSetOrder(1)
SE4->(DBSEEK(XFILIAL("SE4") + SC7->C7_COND))
nCondpagCod :=Trim(SC7->C7_COND)
nCondPagDescr:=Trim(SE4->E4_DESCRI)
cMsg :="<html>"
cMsg += "<head>"
cMsg += "<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>"
cMsg += "<meta name='GENERATOR' content='Microsoft FrontPage 4.0'>"
cMsg += "<meta name='ProgId' content='FrontPage.Editor.Document'>"
cMsg += "<title>"+UPPER(SM0->M0_NOMECOM)+"</title>"
cMsg += "</head>"
cMsg += "<body>"
cMsg += "<table border='1' width='745' cellspacing='1' cellpadding='0'>"
cMsg += "<tr>"
cMsg += "<th width='566' height='19' colspan='6' valign='middle' align='center'>"
cMsg += "<div align='center'>"
cMsg += "<center>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 1
If nMoedaP == 1
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA1")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 2
ElseIf nMoedaP == 2
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA2")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 3
ElseIf nMoedaP == 3
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA3")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 4
ElseIf nMoedaP == 4
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA4")+"</font></b></pre>"
//Impressao do Titulo do Relatorio quando gerado com a Moeda 5
ElseIf nMoedaP == 5
cMsg += "<b><font face='Arial' size='3'> PEDIDO DE COMPRA DE MATERIAL E / OU SERVIÇO - "+ GetMv("MV_MOEDA5")+"</font></b></pre>"
Endif
cMsg += "</center>"
cMsg += "</div>"
cMsg += "</th>"
cMsg += "<td width='150' height='19' colspan='3'>"
cMsg += "<pre><center><font face='Arial' size='3'><b>Nº"+SC7->C7_NUM+"</b></font></center></pre>"
cMsg += "</td>"
cMsg += "</tr>"
cMsg += "<tr>"
cMsg += "<td width='425' colspan='3' height='94'>"
cMsg += "<font face='Arial' size='1'><b>EMPRESA</b></font><b> <font face='Arial' size='1'><br>"
cMsg += "</font></b>"
cMsg += "<font face='Arial' size='2'color='red'><b>"+UPPER(SM0->M0_NOMECOM)+" </b> </font><br>"
cMsg += "<font face='Arial' size='1'>"+UPPER(SM0->M0_ENDENT)+" <br>"
cMsg += "CEP: "+Transform(SM0->M0_CEPENT,cCepPict)+" "
cMsg += " "
cMsg += ""+UPPER(Trim(SM0->M0_CIDENT)+" - "+SM0->M0_ESTENT)+"<br>"
cMsg += "TEL: "+"("+Substr(SM0->M0_TEL,2,3)+") "+Substr(SM0->M0_TEL,5,9)+" "
cMsg += " "
cMsg += "FAX: "+"("+Substr(SM0->M0_FAX,2,3)+") "+Substr(SM0->M0_FAX,5,9)+"<br>"
cMsg += "CNPJ: "+Transform(SM0->M0_CGC,cCgcPict)+" "
cMsg += " "
cMsg += "IE: "+InscrEst()+"</font>"
cMsg += " </td>"
cMsg += " <td width='347' colspan='6' height='94'>"
cMsg += " <font face='Arial' size='1'><b>FORNECEDOR <br></b>"
cMsg += " "+Alltrim(Substr(SA2->A2_NOME,1,28))+" ("+Alltrim(SA2->A2_COD)+"/"+SA2->A2_LOJA+") <br>"
cMsg += " VENDEDOR:"+SA2->A2_CONTATO+" <br>"
cMsg += " "+Upper(Alltrim(Substr(SA2->A2_END,1,45))+" - "+ Substr(SA2->A2_BAIRRO,1,10))+" <br>"
cMsg += " CIDADE: "+SA2->A2_MUN+" - "+SA2->A2_EST+" <br>"
cMsg += " CEP: "+Upper(SA2->A2_CEP)+" <br>"
cMsg += " FONE:"+"("+Substr(SA2->A2_DDD,1,3)+") "+Substr(SA2->A2_TEL,1,9)+" FAX: "+SA2->A2_FAX +"<br>"
cMsg += " CNPJ:"+ Upper(Trim(SA2->A2_CGC))+ " IE:" +Upper(Trim(SA2->A2_INSCR))+"</font>"
cMsg += " </td>"
cMsg += " </tr>"
cMsg += " <tr>"
cMsg += " <td width='716' height='16' colspan='9'>"
cMsg += " <address>"
cMsg += " <font face='Arial' size='1'><b>Data de Emissão:</b>"+Substr(Dtos(dDataBase),7,2)+"/"+Substr(Dtos(dDataBase),5,2)+"/"+Substr(Dtos(dDataBase),1,4)+"<br>"
cMsg += " <b>Comprador:</b>"+UPPER(Alltrim(cCompr))+"<br>"
cMsg += " <b>E-mail: "+UsrRetMail(__CUSERID)+"</b></font>"
cMsg += " </address>"
cMsg += " </td>"
cMsg += " </tr>"
cMsg += " <tr>"
cMsg += " <td width='11' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>ite</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='50' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>Cod:</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='357' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>Descrição do Material</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='21' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>UN</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='58' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>QTD</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='69' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>VLR. UNIT.</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='24' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>%IPI</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='69' height='16' align='center'>"
cMsg += " <pre><font face='Arial' size='1'><b>VLR. TOTAL</b></font></pre>"
cMsg += " </td>"
cMsg += " <td width='57' height='16' align='center'>"
cMsg += " <pre><font size='1' face='Arial'><b>Data Entreg</b></font></pre>"
cMsg += " </td>"
cMsg += " </tr>"
//VARIAVEL DE CONTAGEM
nTotIpi := 0
nTotIcms := 0
nTotFrete := 0
nTotSeguro := 0
nTotDesc := 0
nTotalNF := 0
_cFilial := ""
nNumCotacao :=" "
CodProd :=" "
//Imprime Itens do no formato HTML
nItem:=0
_dDatEm := DDATABASE // data de envio de email
_dHoraEm := Time() // hora de envio de email
_cDesEm := SA2->A2_EMAIL // Email do Destinatario
While !Eof() .And. SC7->C7_NUM == STRZERO(nVerNumPed,6) .And. SC7->(C7_FORNECE+C7_LOJA)==SC7->C7_FORNECE+SC7->C7_LOJA
// grava a data e a hora do envio do email antes do envio --- Incluido Mauricio Micheli - 14/12/11
cQueryB:="UPDATE "+RetSqlName("SC7")+" "
cQueryB+="SET C7_HORAPED = '"+_dHoraEm+"', C7_DATAPED = '"+DTOS(_dDatEm)+"', C7_EMAILFO = '"+_cDesEm+"', C7_EMAILUS = '"+UsrRetMail(__CUSERID)+"' "
cQueryB+="WHERE C7_NUM = '"+SC7->C7_NUM+"'
cQueryB+="AND C7_ITEM = '"+SC7->C7_ITEM+"'
cQueryB+="AND C7_FILIAL = '"+SC7->C7_FILIAL+"' AND D_E_L_E_T_ <> '*' "
TCSQLEXEC(cQueryB)
//atribuindo a variavel ao produto
CodProd:= SC7->C7_PRODUTO
cDescri:= " "
IncProc()
nItem++
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Pesquisa Descricao do Produto ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If Par06 == 1 // B1_DESC"
cDescri := Trim(Posicione("SB1",1,xFilial("SB1")+SC7->C7_PRODUTO,"SB1->B1_DESC"))
ElseIf Par06 == 2 // B5_CEME
cDescri := Trim(Posicione("SB5",1,xFilial("SB5")+SC7->C7_PRODUTO,"SB5->B5_CEME"))
ElseIf Par06 == 4 // C1_DESCRI
cDescri := Trim(Posicione("SC1",1,xFilial("SC1")+SC7->C7_NUMSC+SC7->C7_ITEMSC,"SC1->C1_DESCRI"))
EndIf
cDescri := If(E
Ultima edição: 11 anos 9 meses atrás por alyson.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- ERRO COM A FUNÇÃO MaFisIniPC
Tempo para a criação da página:0.168 segundos