X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fpagamento.c;h=7dc0e95ffd6fb7e8c18d891ee49113378237a176;hb=5e35cc08b2adfd14da44084cd46fc6edea5a026c;hp=959a02c57f6413019327e83fd6547670b44f888b;hpb=b7a2c963abfd1f41ebe6c3793e1a18467e53067d;p=cascardo%2Fdeclara.git diff --git a/lib/pagamento.c b/lib/pagamento.c index 959a02c..7dc0e95 100644 --- a/lib/pagamento.c +++ b/lib/pagamento.c @@ -31,11 +31,17 @@ static int pagamento_totais_update(struct declaracao *dec, struct pagamento *pag { 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); + if (pagamento->dependente) { + r += totais_add(dec, "PAGAMENTOSDEP", pagamento->pagamento); + r += totais_add(dec, "REEMBOLSOSDEP", pagamento->reembolso); + } else { + r += totais_add(dec, "PAGAMENTOSTIT", pagamento->pagamento); + r += totais_add(dec, "REEMBOLSOSTIT", pagamento->reembolso); + } switch (pagamento->codigo) { case 10: + case 12: case 21: case 26: r += totais_add(dec, "MEDICAS", pagamento->pagamento - pagamento->reembolso); @@ -74,23 +80,18 @@ static struct pagamento * pagamento_new(char **args, int argc) struct pagamento *pagamento; int r = 0; pagamento = malloc(sizeof(*pagamento)); - pagamento->cnpj = strdup(args[2]); - pagamento->nome = strdup(args[3]); - /* TODO: consertar set_int para funcionar como set_llong */ - r += set_int(args, 2, &pagamento->codigo); + r += set_int(args[1], &pagamento->codigo); + r += set_string(args[2], &pagamento->cnpj); + r += set_string(args[3], &pagamento->nome); r += set_llong(args[4], &pagamento->pagamento); r += set_llong(args[5], &pagamento->reembolso); - if (!pagamento->cnpj || !pagamento->nome) { - pagamento_free(pagamento); - return NULL; - } if (r < 0 || pagamento->codigo < 0 || pagamento->pagamento < 0 || pagamento->reembolso < 0) { pagamento_free(pagamento); return NULL; } if (argc == 7) { - r = set_int(&args[5], 2, &pagamento->dependente); + r = set_int(args[6], &pagamento->dependente); } else { pagamento->dependente = 0; } @@ -176,6 +177,7 @@ static int pagamento_medico(struct pagamento *pagamento) { switch (pagamento->codigo) { case 10: + case 12: case 21: case 26: return 1;