Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  Faturamento

Enviar para a impressoraImprimir   

Subject Pedido de Venda
Mensagem do Enviar e-mail Abrir o Perfil do usuário DIGAO2BY DIGAO2BY em 5/11/2018 as 11:49 hs
Local: SP   Registrada: 3/5/2018  Postagem: 6
Bom dia,

Como configura UM produto que só aceite o valor de quantidade múltiplo de 4.
Que ao lança um pedido de venda com este produto, no CAMPO quantidade do produto só aceite numero múltiplo de 4. (divisível por 4), e não aceite outro numero que não seja divisível por quatro.

Exemplo:
Ao digitar a quantidade 6, 5, 7 ... ele não aceite.
Só aceitar os números divisivos por 4.

atenciosamente,

Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN__ ROBERTOMEN__ em 5/11/2018 as 15:04 hs
Local: PR   Registrada: 7/8/2017  Postagem: 43

primeiro vc cria um campo no cad de produtos para identificar os produtos que devem ter as qtdades multiplo de 4

B1_MULT4 caracter 1

e coloca S em todos que devem ser multiplo de 4 nas qtdades




depois cria o ponto de entrada na gravação de pedidos:

#include "protheus.ch"


***********************
User Function M410AGRV()
***********************

Local aArea     := GetArea()
Local cPosCodProd     := AScan(aHeader, {|aX| Trim(aX[2])=="C6_PRODUTO"})
Local cPosQtdade      := AScan(aHeader, {|aX| Trim(aX[2])=="C6_QTDVEN"})

     

if INCLUI .or. ALTERA    

    for i := 1 to Len(aCols)
             cC6_PRODUTO := aCols[cPosCodProd]
             nQtdade     := aCols[cPosQtdade]
             
           dbselectarea('SB1')
           SB1->(dbSetOrder(1))
           if SB1->(dbseek(xfilial('SB1')+cC6_PRODUTO)) .and. SB1->B1_MULT4='S' .and. mod(nQtdade,4)<>0
              msgalert('A quantidade para o produto' + cC6_PRODUTO ' deve ser multiplo de 4 ')
                 return .f.
            endif       
    next

endif

RestArea(aArea)

Return .t.

Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN__ ROBERTOMEN__ em 5/11/2018 as 15:09 hs
Local: PR   Registrada: 7/8/2017  Postagem: 43

A função mod() é quem trata o resto da divisão por 4

se for diferente de zero é porque não é multiplo

exemplo:

mod(16,4) = 0

mod(24,4) = 0

mod(33,4) = 1

mod(6,4) = 2



ROBERTO MENDES

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum