Perguntas Ajuda no vencimento de parcelas [crediário próprio da loja]

Mais
10 anos 5 meses atrás #18680 por tiagoaramos
Sou iniciante em Protheus então queria validar se a solução que estou adotando é a melhor ou se tem forma mais tranquila de fazer, ou então se estou fazendo errado heheh.

O cliente tem um cartão próprio da loja, por padrão o vencimento de cada compra dentre os tipos de pagamentos padrões são com 30 dias após a compra do produto. Porém os clientes antes de ter o protheus tinham seus vencimentos similares à cartão de credito, uma data fixa que compras até 7 dias antes desta data seriam cobradas no vencimento, a após sóo no próximo vencimento.

Então a solução que dei para isso.

Inclusão de um campo na tabela de cliente do tipo numerico SA1->SA1_DIAVENC o nome não é exatamente esse mas fica como exemplo.

Personalização do ponto de entrada MT461VCT com regras especificas, abaixo um pseudo codigo para exemplificar o que eu pensei... não ta corretissimo nem com os calculos ainda mas se acharem que vai dar certo ai completo ele :D
User Function MT461VCT() 

Local _aVencto := PARAMIXB[1] 
Local _aTitulo := PARAMIXB[2] 
                             
// Condicao especifica com vencimento consultando tabela de cliente para melhor dia

If SC5->C5_CONDPAG == "XXX // codigo da condição especial 
   _nDiaSem := SA1->SA1_DIAVENC  // aqui pego o dia de vencimento do cadastro de clientes
   
   // Calculo se o dia de vencimento menos 7 é apos a data do vencimento da nota
   _aVencto[1][1] < _nDiaSem  - 7

   // se for eu é "fatura em aberto ainda"
   _aVencto[1][1] := _nDiaSem

   // se não for é so na proxima fatura
   _aVencto[1][1] := _nDiaSem + 30
   
Endif 

Return(_aVencto) 

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18910 por tiagoaramos
Ninguem tem nem ideia de como posso fazer?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18912 por lalberto
Segue Não testei.

User Function MT461VCT()
Local _aVencto := PARAMIXB[1]
Local _aTitulo := PARAMIXB[2]

// Condicao especifica com vencimento consultando tabela de cliente para melhor dia

If SC5->C5_CONDPAG == "XXX // codigo da condição especial
nDiaVenc := SA1->A1_DIAVENC

If Day(_aVencto[1][1]) < (nDiaVenc - 7) // Calculo se o dia de vencimento menos 7 é apos a data do vencimento da nota
// se for eu é "fatura em aberto ainda"
// e coloca a data do vencimento do cliente como vencimento da nota
// verifica se é sab dom ou feriado

_aVencto[1][1] := DataValida(CtoD(StrZero(nDiaVenc,2)+'/'+StrZero(Month(_aVencto[1][1]),2)+'/'+Str(Year(_aVencto[1][1]))),.t.)
Else
_aVencto[1][1] := MonthSum(_aVencto[1][1],1) // se não for é so na proxima fatura
Endif
Endif

Return(_aVencto)

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

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