Versões: | Advanced Protheus 5.08 , Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Microsiga Protheus 10 |
Compatível Países: | Brasil |
Sistemas Operacionais: | Windows |
Compatível às Bases de Dados: | Todas TotvsDbAccess , CTree/CTree Server , DB2 , MS-SQL , MySQL , Oracle , Postgres |
Idiomas: | Espanhol , Inglês |
O Ponto de entrada padrão PROPVEI tem como finalidade a impressão da proposta de veículos.
USER FUNCTION PROPVEI()
Local nCntFor, i
SetPrvt("aDriver,cTitulo,cNomProg,Limite,cCabec1,cCabec2,cNomeImp,lServer,cTamanho,m_Pag,nLin,cAlias,aReturn,cNumPed")
SetPrvt("aErrAva,cCodMap,bCampo,cCpoDiv,aStru")
aStru := {}
cCpoDiv := " 1"
bCampo := { |nCPO| Field(nCPO) }
cCodMap := "001"
aErrAva := {}
cNumPed := ParamIxb[1]
cTamanho := "P" // P/M/G
nCaracter:= 18 // 20 - Normal - 15 - Compactado
Limite := 80 // 80/132/220
aOrdem := {} // Ordem do Relatorio
cTitulo := "Proposta / Pedido de Venda"
nLastKey := 0
aReturn := { "Zebrado", 1,"Administracao", 2, 1, 1, "",1 }
cNomProg := "PROPVEI"
cNomeRel := "PROPVEI"
aDriver := LeDriver()
cCompac := aDriver[1]
cNormal := aDriver[2]
cDrive := "Epson.drv"
cNomeImp := "LPT1"
cAlias := "VV1"
cCabec1 := ""
cCabec2 := ""
lHabil := .f.
Inclui := .f.
m_Pag := 1
cRodape := ""
cRodape1 := Alltrim(Subs(cRodape,001,070))
cRodape2 := Alltrim(Subs(cRodape,071,070))
cRodape3 := Alltrim(Subs(cRodape,141,070))
cRodape4 := Alltrim(Subs(cRodape,211,070))
/*
[1] Reservado para Formulario
[2] Reservado para nro de Vias
[3] Destinatario
[4] Formato => 1-Comprimido 2-Normal
[5] Midia => 1-Disco 2-Impressora
[6] Porta ou Arquivo 1-LPT1... 4-COM1...
[7] Expressao do Filtro
[8] Ordem a ser selecionada
[9]..[10]..[n] Campos a Processar (se houver)
*/
cNomeRel := SetPrint(cAlias,cNomeRel,nil ,@cTitulo,"","","",.F.,"",.F.,cTamanho,nil ,nil ,nil)
If nLastKey == 27
Set Filter To
Return
Endif
SetDefault(aReturn,cAlias)
Set Printer to &cNomeRel
Set Printer On
Set Device to Printer
cNomEmp := SM0->M0_NOME
cCGCFil := transform(left(SM0->M0_CGC,14),"@R 99.999.999/9999-99")
cEndEmp := left(SM0->M0_ENDENT,30)
cCEPFil := transform(SM0->M0_CEPENT,"@R 99999-999")
cInMFil := transform(SM0->M0_CODMUN,"@R 999.999/9")
cTelFil := SM0->M0_TEL
cFaxFil := SM0->M0_FAX
cInsFil := SM0->M0_INSC
cCidFil := SM0->M0_CIDENT
cEstFil := SM0->M0_ESTENT
cBaiFil := SM0->M0_BAIRENT
VV9->(dbSetOrder(1))
VV9->(DBSEEK(XFILIAL("VV9")+VV0->VV0_NUMTRA))
VVA->(dbSetOrder(1))
VVA->(DBSEEK(XFILIAL("VVA")+VV0->VV0_NUMTRA))
VV1->(DBSEEK(XFILIAL("VV1")+VVA->VVA_CHAINT))
VV2->(DBSEEK(XFILIAL("VV2")+VV1->VV1_CODMAR+VV1->VV1_MODVEI))
VVC->(DBSEEK(XFILIAL("VVC")+VV1->VV1_CODMAR+VV1->VV1_CORVEI))
SA1->(dbSetOrder(1))
SA1->(DBSEEK(XFILIAL("SA1")+VV9->VV9_CODCLI+VV9->VV9_LOJA))
SA3->(DBSEEK(XFILIAL("SA3")+VV0->VV0_CODVEN))
VVT->(DBSEEK(XFILIAL("VVT")+VV0->VV0_NUMTRA))
VE1->(DBSEEK(XFILIAL("VE1")+VV1->VV1_CODMAR))
SE4->(DBSEEK(XFILIAL("SE4")+VV0->VV0_FORPAG))
VAM->(DBSEEK(xFilial("VAM")+SA1->A1_IBGE))
VV3->(DBSEEK(xFilial("VV3")+VV0->VV0_TIPVEN))
DbSelectArea("VV0")
For nCntFor := 1 TO FCount()
M->&(EVAL(bCampo,nCntFor)) := FieldGet(nCntFor)
Next
DbSelectArea("VVA")
DbSeek(xFilial("VVA")+M->VV0_NUMTRA)
For nCntFor := 1 TO FCount()
M->&(EVAL(bCampo,nCntFor)) := FieldGet(nCntFor)
Next
for i:= 1 to 7
cKeyAce := VVA->VVA_OBSMEM + strzero(i,3)
cCampo := "cObserv"+STR(i,1)
if FG_SEEK("SYP","cKeyAce",1,.f.)
nPos1 := AT("\13\10",SYP->YP_TEXTO)
if nPos1 > 0
nPos := len(alltrim(SYP->YP_TEXTO)) - 6
else
nPos := len(alltrim(SYP->YP_TEXTO))
endif
&cCampo := Substr(SYP->YP_TEXTO,1,nPos)
Else
&cCampo := " "
Endif
next
nLin := cabec(ctitulo,cCabec1,cCabec2,cNomProg,cTamanho,nCaracter) + 1
cCGCCPF1 := subs(transform(SA1->A1_CGC,PicPes(RetPessoa(SA1->A1_CGC))),1,at("%",transform(SA1->A1_CGC,PicPes(RetPessoa(SA1->A1_CGC))))-1)
cCGCCPF := cCGCCPF1 + space(18-len(cCGCCPF1))
@ nLin,00 psay repl("-",80)
nLin++
if VV0->VV0_OPEMOV <> "1"
@ nLin,00 psay " P r o p o s t a d e V e n d a / P e d i d o"
Else
@ nLin,00 psay " S i m u l a c a o d e V e n d a "
Endif
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin, 00 psay "Empresa.....: " + left(cNOMEMP,37) + " CNPJ: " + cCGCFIL //+ " I.E.: " + cINSFIL
nLin++
@ nLin, 00 psay "Endereco....: " + cENDEMP + " Bairro...: " + cBAIFIL
nLin++
@ nLin, 00 psay "Telefone....: " + cTELFIL + space(24) + "Fax.....: " + cFaxFil
nLin++
@ nLin, 00 psay "Cidade......: " + cCIDFIL + " - " + cESTFIL+ space(13) + "CEP.....: " + cCEPFIL
//nLin++
//@ nLin, 00 psay "CNPJ........: " + cCGCFIL + " Inscricao Estadual: " + cINSFIL
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Data........: " + dToc(VV0->VV0_DATMOV) + Space(30) + "Atendimento..: " + VV9->VV9_NUMATE
nLin++
@ nLin,00 psay "Vendedor....: " + VV0->VV0_CODVEN + " - " + Subs(SA3->A3_NOME,1,30)
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Cliente.....: " + left(SA1->A1_NOME,36) + space(2) + "CNPJ/CPF: " + cCGCCPF
nLin++
@ nLin,00 psay "Endereco....: " + left(SA1->A1_END,36) + space(2) + "Bairro..: " + SA1->A1_BAIRRO
nLin++
@ nLin,00 psay "Cidade......: " + left(VAM->VAM_DESCID,25) + " - " + VAM->VAM_ESTADO + space(8) + "CEP.....: " + transf(SA1->A1_CEP,"@R 99999-999")
nLin++
@ nLin,00 psay "Telefone Res: " + "(" + VAM->VAM_DDD + ") " + TRANSF(SA1->A1_TEL, "@r 9999-9999")
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Chassi......: " + VVA->VVA_CHASSI + Space(13) + "Marca: " + VE1->VE1_DESMAR
nLin++
@ nLin,00 psay "Modelo......: " + VV2->VV2_DESMOD + Space(8) + "Cor..: " + Subs(VVC->VVC_DESCRI,1,14)
nLin++
@ nLin,00 psay "Ano/Mod.....: " + Subs(VV1->VV1_FABMOD,1,4) + "/" + Subs(VV1->VV1_FABMOD,5,4)
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Valor ............................................." + transform(VV0->VV0_VALMOV,"@E 999,999,999.99")
nLin++
@ nLin,00 psay repl("-",80)
nTotAce := 0
if VVT->VVT_VALEQP > 0
nLin++
@ nLin,00 psay "Acessorios"
nLin := nLin + 2
@ nLin,00 psay "Grupo Codigo do Acessorio Descricao do Acessorio Valor"
endif
DbSelectArea("VVT")
while VVT->VVT_FILIAL == xFilial("VVT") .and. VVT->VVT_NUMTRA == VV0->VV0_NUMTRA .and. !eof()
if VVT->VVT_VALEQP > 0
if nLin > 53
nLin := cabec(ctitulo,cCabec1,cCabec2,cnomprog,ctamanho,nCaracter) + 1
nLin++
@ nLin,00 psay "Acessorios"
nLin := nLin + 2
@ nLin,00 psay "Grupo Codigo do Acessorio Descricao do Acessorio Valor"
nLin++
Endif
SB1->(DBSEEK(XFILIAL("SB1")+VVT->VVT_GRUITE+VVT->VVT_CODITE))
@ nLin++,00 psay VVT->VVT_GRUITE + " " + VVT->VVT_CODITE + " " + SB1->B1_DESC + " " + transform(VVT->VVT_VALEQP,"@E 99,999,999.99")
nTotAce := nTotAce + VVT->VVT_VALEQP
endif
DbSelectArea("VVT")
dbSkip()
Enddo
if nTotAce > 0
nLin++
@ nLin,42 psay "Total de Acessorios " + transform(nTotAce,"@E 99,999,999.99")
nLin ++
@ nLin,00 psay repl("-",80)
endif
nLin++
@ nLin,00 psay "Forma de Pagamento: " + VV0->VV0_FORPAG + " - " + SE4->E4_DESCRI
nLin++
if VV0->VV0_TIPVEN = "RD"
cDecl := "COM RESERVA DE DOMINIO A FAVOR DE "
elseif VV0->VV0_TIPVEN = "AL"
cDecl := "COM ALIENACAO FIDUCIARIA A FAVOR DE "
elseif VV0->VV0_TIPVEN = "CA"
cDecl := "COM ARRENDAMENTO "
else
cDecl := " SEM RESTRICOES "
endif
if !EMPTY(VV0->VV0_CLIALI)
FG_SEEK("SA1","VV0->VV0_CLIALI+VV0->VV0_LOJALI",1,.f.)
cDecl := cDecl + rtrim(SA1->A1_NOME)
endif
@ nLin,00 psay cDecl
nLin++
@ nLin,00 psay "Tipo de Pagamento Nro Documento Data Valor"
DbSelectArea("VS9")
DBSEEK(xfilial("VS9")+VV0->VV0_NUMTRA+'V')
while !eof() .and. VS9->VS9_NUMIDE+VS9->VS9_TIPOPE == VV0->VV0_NUMTRA+"V"
FG_SEEK("SX5","'05'+VS9->VS9_TIPPAG",1,.f.)
nLin++
if nLin > 53
nLin := cabec(ctitulo,cCabec1,cCabec2,cnomprog,ctamanho,nCaracter) + 1
@ nLin,00 psay "Forma de Pagamento: "+ VV0->VV0_FORPAG + " - " + SE4->E4_DESCRI
nLin++
@ nLin,00 psay "Tipo de Pagamento Nro Documento Data Valor"
nLin++
Endif
@ nLin,00 psay VS9->VS9_TIPPAG + "-" + subs(SX5->X5_DESCRI,1,13) + Space(5) + VS9->VS9_REFPAG + Space(2) + dToc(VS9->VS9_DATPAG) + " " + transform(VS9->VS9_VALPAG,"@E 99,999,999.99")
if !empty(VS9->VS9_OBSMEM)
nLin++
@ nLin,00 psay E_MSMM(VS9->VS9_OBSMEM,80)
endif
DbSelectArea("VS9")
DbSkip()
Enddo
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Observacoes:"
nLin++
@ nLin,00 psay cObserv1
nLin++
@ nLIn,00 psay cObserv2
nLin++
@ nLin,00 psay cObserv3
nLin++
@ nLin,00 psay cObserv4
nLin++
@ nLin,00 psay cObserv5
nLin++
@ nLin,00 psay cObserv6
nLin++
@ nLin,00 psay cObserv7
if VV0->VV0_OPEMOV <> "1"
nLin++
@ nLin,00 psay repl("-",80)
nLin++
@ nLin,00 psay "Faturado em: ___/___/____ Nota Fiscal: "
nLin++
@ nLin,00 psay repl("-",80)
nLin := nLin + 1
if nLin < 50
nLin := 50
@ nLin,01 psay "Autorizo o faturamento nas condicoes expressas desta proposta."
nLin := nLin + 5
@ nLin,01 psay "___/___/____ ___________________ ________________________"
nLin++
@ nLin,01 psay " Vendedor Assinatura do Proponente"
nLin := nLin + 2
@ nLin,00 psay padc(cRodape1,80)
nLin++
@ nLin,00 psay padc(cRodape2,80)
nLin++
@ nLin,00 psay padc(cRodape3,80)
nLin++
@ nLin,00 psay padc(cRodape4,80)
else
@ nLin,01 psay "Autorizo o faturamento nas condicoes expressas desta proposta."
nLin := nLin + 5
@ nLin,01 psay "___/___/____ ___________________ ________________________"
nLin++
@ nLin,01 psay " Vendedor Assinatura do Proponente"
nLin := nLin + 2
@ nLin,00 psay padc(cRodape1,80)
nLin++
@ nLin,00 psay padc(cRodape2,80)
nLin++
@ nLin,00 psay padc(cRodape3,80)
nLin++
@ nLin,00 psay padc(cRodape4,80)
endif
endif
/*
//Avaliacao da Venda
FG_CalcVlrs(FS_VDRVM050(VV0->VV0_TIPFAT,cCodMap))
nLin := 1
@nLin,00 psay "| Titulo da Conta Valores em R$ % Valores em MF % Valor Presente % |"
nLin++
@ nLin,00 psay repl("-",132)
nLin := nLin + 1
@ nLin,00 psay "|"
nLin := nLin + 1
For vv = 1 to len(aStru)
@ nLin,00 psay "| " + If(Left(aStru[vv,05],7)==Space(7),Space(3)+Ltrim(aStru[vv,05]),aStru[vv,05]+Space(3)) + Space(6) + transform(aStru[vv,09],"@E 9,999,999.99")+Space(6)+transform(aStru[vv,10],"@E 999.99")+Space(9)+transform(aStru[vv,12],"@E 9,999,999.99")+;
Space(6)+transform(aStru[vv,13],"@E 999.99")+Space(9)+transform(aStru[vv,20],"@E 9,999,999.99")+Space(5)+transform(aStru[vv,21],"@E 999.99") + " |"
Next
*/
Ms_Flush()
Set Printer to
Set Device to Screen
if aReturn[5] == 1
OurSpool(cNomeRel)
Endif
Return
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun‡ao ³ FG_Seek ³ Autor ³Alvaro/Andre ³ Data ³ 05/07/99 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡ao ³ Posiciona Reg e permanece nele. Atribui Valor a outro Campo³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ (Alias,Chave,Ordem,.t./.f.-p/softseek on/off,CpoDes,CpoOri)³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Uso ³ Generico ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
Sintaxe: FG_Seek( <ExpC1>, <ExpC2>, [ExpN], [ExpL], <ExpC3>, <ExpC4> )
Funcao.: Executa pesquisa em tabelas
ExpC1 = arquivo alvo
ExpC2 = chave de pesquisa
ExpN = numero do indice associado a ExpC1 (Opcional)
Se nao informado assume 1
ExpL = se .t. softseek ON (Opcional)
Se nao informado assume .f.
ExpC3 = Campo Destino (que recebera conteudo)
ExpC4 = Campo Origem do conteudo
Retorna: .t. se o reg. existir, deixando posicionado no mesmo
.f. se o reg. nao existir, deixando posic. no final do Arquivo
*/
Static Function FG_Seek(cAlias,Chv_,Ord_,Sss_,cCpoDest,cCpoOrig)
Local i
LOCAL Atu_:=SELECT(),Ind_, Sem_dbf:=ALIAS(), Achou_
Ord_:=IF(Ord_=NIL,1,Ord_)
Sss_:=IF(Sss_=NIL,.f.,Sss_)
cCom:=IF(cCpoOrig=NIL," ",cAlias+"->"+cCpoOrig)
Select(cAlias)
Ind_:=IndexOrd()
DbSetOrder(Ord_)
Set SoftSeek (Sss_)
if Type("aCols") == "A" && Modelo 3
cChave := ""
if type(readvar()) == "U"
cUlCpo := ""
Else
cUlCpo := &(readvar())
Endif
//k > 0 .and. ( Subs(chv_,k-1,1) == "+" .or. Subs(chv_,k-1,1) == "" .or. !SX2->(dbSeek(Subs(chv_,k-2,3))) )
k := at("M->",chv_)
if k > 0 .and. ( Subs(chv_,k-1,1) == "+" .or. (k-1 == 0) .or. !SX2->(dbSeek(Subs(chv_,k-2,3))) )
bCampo := {|x| aHeader[x,2]}
w1 := READVAR()
For i=1 to Len(aHeader)
wVar := "M->"+(EVAL(bCampo,i))
If wVar != w1
Private &wVar := aCols[n,i]
Endif
Next
Endif
While .t.
k := at("+",chv_)
if k > 0
cCPO := substr(chv_,1,k-1)
chv_ := substr(chv_,k+1)
if at("->",cCpo) == 0 .and. type(cCpo) == "U"
cChave := cChave + FieldGet(FieldPos(cCPO))
else
cChave := cChave + &cCpo
endif
Else
if !Chv_ == readvar()
cUlCpo := &Chv_
endif
Exit
Endif
Enddo
cChv_ := cChave+cUlCpo
Else
cChv_ := (&Chv_)
Endif
DbGotop()
DbSeek(xFilial(cAlias)+cChv_)
Achou_:=FOUND()
DbSetOrder(ind_)
IF Empty(sem_dbf)
Sele 0
ELSE
Sele (Atu_)
ENDI
Set SoftSeek (.f.)
if cCom != " "
M->&cCpoDest := &cCom
endif
RETU Achou_
PROPVEI.PRW
PROPVEI - Imprime proposta de veículos ( )
-
()