- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- AdvPL x MVC
- Valor total do pedido de compra
Perguntas Valor total do pedido de compra
- Rei_TI
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 8 meses atrás #30258
por Rei_TI
Valor total do pedido de compra foi criado por Rei_TI
Bom dia galera tudo bem?
Seguinte, estou desenvolvendo uma customização na Pre nota P.E SF1140I....
Preciso retornar o valor TOTAL (IMPOSTOS + FRETE, etc) do pedido de compra.
Tem que ser o mesmo valor que aparece no rodapé do pedido de compra TOTAL DO PEDIDO.
Seguinte, estou desenvolvendo uma customização na Pre nota P.E SF1140I....
Preciso retornar o valor TOTAL (IMPOSTOS + FRETE, etc) do pedido de compra.
Tem que ser o mesmo valor que aparece no rodapé do pedido de compra TOTAL DO PEDIDO.
Por favor Acessar ou Registrar para participar da conversa.
- Rei_TI
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 8 meses atrás #30260
por Rei_TI
Respondido por Rei_TI no tópico Valor total do pedido de compra
Galera consegui aqui....segue caso alguem precise.
NOTA: estou posicionado na SD1.
User Function VALTOTNF()
Local nValNF := 0
Local aAreaSC7 := GetArea("SC7") //Armazeno area
dbSelectArea("SC7")
SC7->(dbsetorder(1)) //C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN
SC7->(dbgotop())
//Gravo chave para usar no loop
nChave := SD1->(D1_FILIAL + D1_PEDIDO)
//Procuro pedido de acordo com a NF posicionada
If SC7->(DbSeek( xFilial("SC7") + SD1->D1_PEDIDO))
//Loop nos itens
WHILE SC7->(C7_FILIAL + C7_NUM) = nChave
//acrescento valor total dos itens
nValNF += SC7->(C7_TOTAL - C7_VLDESC + C7_SEGURO + C7_DESPESA + C7_VALFRE + C7_VALIPI)
//pulo registro
SC7->(dbskip())
EndDo
EndIf
RestArea(aAreaSC7) //Libero area
Return nValNF //Retorno valor total da NF com Impostos/frete etc
NOTA: estou posicionado na SD1.
User Function VALTOTNF()
Local nValNF := 0
Local aAreaSC7 := GetArea("SC7") //Armazeno area
dbSelectArea("SC7")
SC7->(dbsetorder(1)) //C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN
SC7->(dbgotop())
//Gravo chave para usar no loop
nChave := SD1->(D1_FILIAL + D1_PEDIDO)
//Procuro pedido de acordo com a NF posicionada
If SC7->(DbSeek( xFilial("SC7") + SD1->D1_PEDIDO))
//Loop nos itens
WHILE SC7->(C7_FILIAL + C7_NUM) = nChave
//acrescento valor total dos itens
nValNF += SC7->(C7_TOTAL - C7_VLDESC + C7_SEGURO + C7_DESPESA + C7_VALFRE + C7_VALIPI)
//pulo registro
SC7->(dbskip())
EndDo
EndIf
RestArea(aAreaSC7) //Libero area
Return nValNF //Retorno valor total da NF com Impostos/frete etc
Por favor Acessar ou Registrar para participar da conversa.
- Rei_TI
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 8 meses atrás #30264
por Rei_TI
Respondido por Rei_TI no tópico Valor total do pedido de compra
ALTERAÇÃO.....
Desta forma pode ser chamado na inclusão e alteração (Na alteração não estou posicionado na SD1)
User Function VALTOTNF()
Local nValNF := 0
Local aAreaSF1 := GetArea("SF1")
Local aAreaSD1 := GetArea("SD1")
Local aAreaSC7 := GetArea("SC7")
//Selecionando Tabelas
dbSelectArea("SF1")
SF1->(dbsetorder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO
SF1->(dbgotop())
dbSelectArea("SD1")
SD1->(dbsetorder(1)) //D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM
SD1->(dbgotop())
dbSelectArea("SC7")
SC7->(dbsetorder(1)) //C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN
SC7->(dbgotop())
If SF1->(DbSeek( xFilial("SF1")+ CNFISCAL + CSERIE + CA100FOR + CLOJA + CTIPO))
If SD1->(DbSeek( xFilial("SD1") SF1->(F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA )))
If SC7->(DbSeek( xFilial("SC7")+ SD1->D1_PEDIDO))
//Chave com Filial mais o numero do Pedido.
cChave := SC7->(C7_FILIAL + C7_NUM)
//Loop nos itens
WHILE SC7->(C7_FILIAL + C7_NUM) = cChave
//acrescento valor total dos itens
nValNF += SC7->(C7_TOTAL - C7_VLDESC + C7_SEGURO + C7_DESPESA + C7_VALFRE + C7_VALIPI)
//pulo registro
SC7->(dbskip())
EndDo
EndIf
EndIf
EndIf
//Libero areas
RestArea(aAreaSF1)
RestArea(aAreaSD1)
RestArea(aAreaSC7)
//Retorno valor total da NF com Impostos/frete etc
Return nValNF
Desta forma pode ser chamado na inclusão e alteração (Na alteração não estou posicionado na SD1)
User Function VALTOTNF()
Local nValNF := 0
Local aAreaSF1 := GetArea("SF1")
Local aAreaSD1 := GetArea("SD1")
Local aAreaSC7 := GetArea("SC7")
//Selecionando Tabelas
dbSelectArea("SF1")
SF1->(dbsetorder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO
SF1->(dbgotop())
dbSelectArea("SD1")
SD1->(dbsetorder(1)) //D1_FILIAL+D1_DOC+D1_SERIE+D1_FORNECE+D1_LOJA+D1_COD+D1_ITEM
SD1->(dbgotop())
dbSelectArea("SC7")
SC7->(dbsetorder(1)) //C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN
SC7->(dbgotop())
If SF1->(DbSeek( xFilial("SF1")+ CNFISCAL + CSERIE + CA100FOR + CLOJA + CTIPO))
If SD1->(DbSeek( xFilial("SD1") SF1->(F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA )))
If SC7->(DbSeek( xFilial("SC7")+ SD1->D1_PEDIDO))
//Chave com Filial mais o numero do Pedido.
cChave := SC7->(C7_FILIAL + C7_NUM)
//Loop nos itens
WHILE SC7->(C7_FILIAL + C7_NUM) = cChave
//acrescento valor total dos itens
nValNF += SC7->(C7_TOTAL - C7_VLDESC + C7_SEGURO + C7_DESPESA + C7_VALFRE + C7_VALIPI)
//pulo registro
SC7->(dbskip())
EndDo
EndIf
EndIf
EndIf
//Libero areas
RestArea(aAreaSF1)
RestArea(aAreaSD1)
RestArea(aAreaSC7)
//Retorno valor total da NF com Impostos/frete etc
Return nValNF
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- AdvPL x MVC
- Valor total do pedido de compra
Tempo para a criação da página:0.114 segundos