× Linguagem de Programação ADVPL

Perguntas Atualizar valor do orçamento no Venda Direta.

Mais
9 anos 3 meses atrás #28890 por anizio.souza
Bom dia pessoal!

Preciso de ajuda para resolver esse tópico.

Fiz uma função para preencher o item no aCols do venda direta, até ae tudo bem a linha é criada e os dados são preenchidos. No entanto preciso que o valor da nova linha seja atualizado no total do orçamento para então finalizar como venda. Segue o fonte:


Static Function Confirmar()

Local aArea := GetArea()
//Local cLinOk := "AllwaysTrue"
//Local cTudoOk := "AllwaysTrue"
Private cVend := SL1->L1_VEND
Private cQry := ""
Private i := 1
// Guarda o ambiente atual
_mArea := select()
_mordem:= IndexOrd()
_mrecno:= recno()



dbSelectArea("SL2")
DbSetOrder(1)
SL2->(DbSeek(xFilial("SL2")+SL1->L1_NUM))

//SetRegua(RecCount())
//ProcRegua(Len(aRows))

If Trim(aCols[n][2])<>''
n := n + 1
aadd(aCols,{strzero(n,2),'','','','',0,0,0,0,'',0,0,'',.F.,.F./*,'','','','','','','','','','',ctod(' / / '),'',0*/})
Endif

While !Eof() .and. SL2->(L2_FILIAL+L2_NUM) == SL1->(L1_FILIAL+L1_NUM)


cQry :="SELECT * "
cQry +=" FROM SB1010 "
cQry +=" INNER JOIN SZY010 AS A ON A.D_E_L_E_T_ = '' AND B1_YGARFAB = A.ZY_VIGPLA "
//cQry +=" INNER JOIN SL2010 AS B ON B.D_E_L_E_T_ = '' AND B1_COD = B.L2_PRODUTO "
cQry +=" WHERE B1_COD = '000000' "

dbUseArea(.T.,"TOPCONN",TcGenQry(,,CHANGEQUERY(cQry)),"TMP",.T.,.F.)
dbSelectArea("TMP")

If !Empty(aRows[1]) .AND. aRows[7] == 360
// Preenche aCols
aCols[n][2] := TMP->B1_COD
aCols[n][3] := TMP->B1_DESC
aCols[n][4] := 1.00
aCols[n][5] := TMP->ZY_PREMIO
aCols[n][6] := TMP->ZY_PREMIO
aCols[n][7] := TMP->B1_UM
aCols[n][8] := 0.00
aCols[n][9] := 0.00
aCols[n][10] := ''
aCols[n][11] := ctod(' / / ')
aCols[n][12] := ''
aCols[n][13] := ''
aCols[n][14] := .F.


dbSelectArea("TMP")
dbCloseArea("TMP")

Endif


Enddo


MsgInfo("Processo concluido")
oDlg:End()

RestArea(aArea)
Return .T.


Desde já agradeço!

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 2 meses atrás #29124 por anizio.souza
Achei a solução:

FTVDT_Subtotal(2, nVlrTotal )
FTVDT_TotPar(2, nVlrParcelas )
FTVDT_Total(2, FTVDT_Subtotal( 2 ) )

FTVDTudOk()
GETDREFRESH()

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.099 segundos
Joomla templates by a4joomla