Nova função para ordenação de pagamentos médicos.
[cascardo/declara.git] / lib / pagamento.c
index 26cb3c0..051a7e6 100644 (file)
@@ -88,6 +88,8 @@ static int run_pagamento(struct declaracao *dec, char **args, int argc)
        }
        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 (r) {
                pagamento_free(pagamento);
                return r;
@@ -128,3 +130,30 @@ char * pagamento_cnpj_ordenado(struct declaracao *dec, int codigo, int n)
                return "";
        return pagamento->cnpj;
 }
+
+static int pagamento_medico(int codigo)
+{
+       switch (codigo) {
+       case 10:
+       case 21:
+       case 26:
+               return 1;
+       default:
+               return 0;
+       }
+       return 0;
+}
+
+char * medico_cnpj_ordenado(struct declaracao *dec, int n)
+{
+       struct pagamento *pagamento;
+       int i;
+       int j = 0;
+       for (i = 0; (pagamento = list_get(dec->pagamentos, i)); i++) {
+               if (pagamento_medico(pagamento->codigo) && j++ == n)
+                       break;
+       }
+       if (!pagamento)
+               return "";
+       return pagamento->cnpj;
+}