Árvore de páginas

Ponto-de-Entrada: PROPVEI - Imprime proposta de veículos
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
Descrição:

O Ponto de entrada padrão PROPVEI tem como finalidade a impressão da proposta de veículos.

Eventos

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_

Programa Fonte
PROPVEI.PRW
Sintaxe

PROPVEI - Imprime proposta de veículos ( )

Retorno
    ()