Skip to content

Instantly share code, notes, and snippets.

@denoww
Created July 18, 2016 15:15
Show Gist options
  • Save denoww/8d4fc0f08cd0cfd9e7276fc782fcce79 to your computer and use it in GitHub Desktop.
Save denoww/8d4fc0f08cd0cfd9e7276fc782fcce79 to your computer and use it in GitHub Desktop.

Cancelar Cobranças Repetidas

Mvp

  • cancelar somente esta
  • cancelar todas

fora do MVP cancelar a partir desta. Se usuário quiser este comportamento ele deve editar a repetição

Cancelar somente esta

Sistema vai persisitr a repetição e depois cancelar

Cancelar todas

molde deve receber 'cancelado_em' com Time.zone.now
função do postgres vai simular as repetições com o campo cancelado_em alimentado
Reestruturar a lógica do serviço de repetição

Acredito que o back e front vão listar as cobranças corretamente com o status "cancelado"

Modal - colocar aviso: 'Não serão canceladas cobranças pagas ou com recebimentos parciais'

Obs.: A regra acima do aviso do modal será uma validação forte no model

Restaurar somente esta

Caso de usuo: Usuário 'cancelou todas' e depois quer restaurar somente uma
Sistema vai persisitr a repetição e depois restaurar

Restaurar todas (new)

molde deve receber 'cancelado_em' = nil
Acredito que precisa criar 'esta novidade' no serviço de repetição

Sistema não deve simular repetições completas

Quando o úsuário persistiu todas repetições, o sistema deve saber que foi completa para ganharmos performance

  • Migration: Criar compo repeticao_completa_em na tabela financeiro_parcelamentos
  • Sistema deve alimentar este campo quando
    • persisitir a ultima cobranca
    • cancelar todas cobranças
  • Sistema deve nulificar este campo quando
    • restaurar um GHOST cancelado
  • scope com_moldes_repeticoes deve ignorar os completos
    • Adicinar este pedação aqui 'AND financeiro_parcelamentos.repeticao_completa IS NULL'
    • Precisa fazer um join entre cobranca e parcelamentos
      • criar um belongs: cobranca belongs_to :parcelamento
      • dentro scope buscar precisa
        • trocar isto: all.com_moldes_repeticoes
        • por isto: all.joins(:parcelamento).com_moldes_repeticoes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment