- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar valor do orçamento no Venda Direta.
×
Linguagem de Programação ADVPL
Perguntas Atualizar valor do orçamento no Venda Direta.
- anizio.souza
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 83
- Obrigados Recebidos: 0
9 anos 3 meses atrás #28890
por anizio.souza
Atualizar valor do orçamento no Venda Direta. foi criado 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!
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.
- anizio.souza
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 83
- Obrigados Recebidos: 0
9 anos 2 meses atrás #29124
por anizio.souza
Respondido por anizio.souza no tópico Atualizar valor do orçamento no Venda Direta.
Achei a solução:
FTVDT_Subtotal(2, nVlrTotal )
FTVDT_TotPar(2, nVlrParcelas )
FTVDT_Total(2, FTVDT_Subtotal( 2 ) )
FTVDTudOk()
GETDREFRESH()
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar valor do orçamento no Venda Direta.
Tempo para a criação da página:0.099 segundos