def __addConta(self, dadosConta):
        if dadosConta['id']:
            Conta.update(valor=dadosConta['valor'],
                         descricao=dadosConta['descricao'],
                         morador_id=dadosConta['pagante_id'],
                         tipo_conta_id=dadosConta['tipo_conta_id']).where(
                             Conta.id == dadosConta['id']).execute()
        else:
            self.__contas.append(dadosConta)

        self.__atualizarContas()
        self.__valida()
    def __salvar(self):
        if len(self.__contas) == 0 and len(self.__emprestimos) == 0:
            self.salvar.setEnabled(False)
        else:
            if self.registroMensal:
                registro_mensal = self.registroMensal
            else:
                registro_mensal = RegistroMensal.create(
                    data=date.today().strftime('%Y-%m-%d'),
                    total=0,
                    numero_pessoas=0)

            total = 0
            moradores = len(Morador.select().where(Morador.deleted == False))

            for emprestimo in self.__emprestimos:
                if emprestimo['id']:
                    Emprestimo.update(
                        valor=emprestimo['valor'],
                        descricao=emprestimo['descricao'],
                        de_id=emprestimo['de_id'],
                        para_id=emprestimo['para_id']).where(
                            Emprestimo.id == emprestimo['id']).execute()
                else:
                    Emprestimo.create(data=date.today().strftime('%Y-%m-%d'),
                                      valor=emprestimo['valor'],
                                      descricao=emprestimo['descricao'],
                                      registro_mensal_id=registro_mensal.id,
                                      de_id=emprestimo['de_id'],
                                      para_id=emprestimo['para_id'])

            for conta in self.__contas:
                total += conta['valor']
                if conta['id']:
                    Conta.update(valor=conta['valor'],
                                 descricao=conta['descricao'],
                                 morador_id=conta['pagante_id'],
                                 tipo_conta_id=conta['tipo_conta_id']).where(
                                     Conta.id == conta['id']).execute()
                else:
                    Conta.create(data=date.today().strftime('%Y-%m-%d'),
                                 valor=conta['valor'],
                                 descricao=conta['descricao'],
                                 registro_mensal_id=registro_mensal.id,
                                 morador_id=conta['pagante_id'],
                                 tipo_conta_id=conta['tipo_conta_id'])

            mes = int(self.mes.text()) if self.mes.text() != '' else 0
            ano = int(self.ano.text()) if self.ano.text() != '' else 0

            registro_mensal.data = date(ano, mes, 1)
            registro_mensal.total = total
            registro_mensal.numero_pessoas = moradores
            registro_mensal.save()

            self.__emprestimos = []
            self.__contas = []

            self.registroMensal = registro_mensal

            self.salvo.emit()
            self.__atualizarContas()
            self.__atualizarEmprestimos()
            self.gerarRelatorio.setEnabled(True)