From eaf14375047d1af88e0468280e7a1884587c1d9e Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sat, 12 Mar 2016 17:29:03 -0300 Subject: [PATCH] Totaliza outros pagamentos. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit A declaração completa exige outros totais de pagamentos, como pagamentos médicos e de previdência. Soma tais totais em uma função própria, dada sua nova complexidade. --- lib/pagamento.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/pagamento.c b/lib/pagamento.c index 051a7e6..9f91d14 100644 --- a/lib/pagamento.c +++ b/lib/pagamento.c @@ -27,6 +27,26 @@ #include "util.h" #include "totais.h" +static int pagamento_totais_update(struct declaracao *dec, struct pagamento *pagamento) +{ + int r; + r = totais_add(dec, "PAGAMENTOS", pagamento->pagamento); + r += totais_add(dec, "PAGAMENTOSTIT", pagamento->pagamento); + r += totais_add(dec, "REEMBOLSOS", pagamento->reembolso); + r += totais_add(dec, "REEMBOLSOSTIT", pagamento->reembolso); + switch (pagamento->codigo) { + case 10: + case 21: + case 26: + r += totais_add(dec, "MEDICAS", pagamento->pagamento - pagamento->reembolso); + break; + case 36: + r += totais_add(dec, "PREVIDENCIA", pagamento->pagamento - pagamento->reembolso); + break; + } + return r; +} + void pagamento_free(void *pointer) { struct pagamento *pagamento = pointer; @@ -86,10 +106,7 @@ static int run_pagamento(struct declaracao *dec, char **args, int argc) pagamento_free(pagamento); return r; } - r = totais_add(dec, "PAGAMENTOS", pagamento->pagamento); - r += totais_add(dec, "PAGAMENTOSTIT", pagamento->pagamento); - r += totais_add(dec, "REEMBOLSOS", pagamento->reembolso); - r += totais_add(dec, "REEMBOLSOSTIT", pagamento->reembolso); + r = pagamento_totais_update(dec, pagamento); if (r) { pagamento_free(pagamento); return r; -- 2.20.1