Pular navegação

Moeda social

Moeda social

timer iconTempo registrado:
18 horas, 11 mins

O @jatoba e colegas da produtora Colabor [at] tiva [dot] PE está desenvolvendo um sistema de economia solidária para oferecer cursos e serviços da produtora. Pra quem não conhece o conceito, esse filme com marionetes explica bem o porque de criar a própria moeda:

Fiz uma pesquisa nos módulos de Drupal e descobri o Community Accounting. Apesar dele não estar preparado para o Open Atrium, eu estou conseguindo fazer a adaptação.

Funciona assim:

  • Cada moeda tem um valor máximo e um valor mínimo para cada usuário. O objetivo desse limite é evitar a acumulação da moeda e o endividamento.
  • Cada transação envia uma quantidade de uma pessoa a outra. Quem envia diminui o saldo, quem recebe aumenta, até o limite.
  • Cada projeto tem um registro de transações feitas dentro do projeto. Os membros só podem enviar entre si, já os administradores podem escolher de quem para quem enviar.

Uma dificuldade que estou tendo é de oferecer uma moeda diferente para cada projeto. Talvez seja necessário esforço extra de programação. Mas fica a questão: será que isso é necessário? 

O que é melhor? Cada projeto com sua moeda, ou o Corais inteiro com uma moeda solidária só e cada projeto com seu registro de transações (como está neste momento)?

Quem desejar testar a ferramenta, entre no projeto Teste e adicione um exchange. O módulo ainda não está traduzido pro português.

Uma questão que se conecta com essa é o financiamento de novos projetos, o crowdfunding. Será que conseguimos usar moedas sociais para financiar projetos? 

Jatobá ---

Fiz uma análise inicial das funcionalidades / atores / dados relacionados as interações com Moeda Social. O objetivo é gerenciar contas de Membros de um projeto, cadastrar ofertas e demandas e gerenciar transações (crédito, débito e doações).

Módulo de Moeda Social

Objetivo:

Gerenciar Contas de Membros do Projeto, Oferta e Demanda de Produtos, Serviços e Saberes, Transações (Créditos e Débitos nas Contas Cadastradas) e Doações entre Membros.

Atores:

Administrador - (A)

Membro - (M)

Visitante - (V)

Módulos:

  1. Módulo Contas

  2. Módulo Demandas

  3. Módulo Ofertas

  4. Módulo Transações

  5. Módulo Doações

Dados:

ID_M ? ID do Usuário Membro

TXT ? Comentários, Informações adicionais

ID_C ? ID da Conta

DOC_C ? Documento de Indentificação (RG, CPF) associado a Conta

END_C ? Endereço associado a conta

TEL_C ? Telefone associado a conta

SAL_C ? Saldo da Conta

ID_D ? ID da Demanda

NOME_D ? Titulo da Demanda

DESC_D ? Descrição da Demanda

TP_D ? Tipo da Demanda (Produto, Serviço, Saber)

CAT_D ? Categoria da Demanda

FREQ_D ? Frequência de Procura da Demanda (Diária, Semanal, Mensal, Semestral, Anual)

QTD_D ? Quantidade demandada

UNID_D ? Unidade de Medida da Demanda (Associado a Quantidade)

VAL_D ? Expectativa de valor sobre a Demanda

ID_O ? ID da Oferta

NOME_O ? Título da Oferta

DESC_O ? Descrição da Oferta

TP_O ? Tipo da Oferta

CAT_O ? Categoria da Oferta

FREQ_O ? Frequência da Oferta (Diária, Semanal, Mensal, Semestral, Anual)

QTD_O ? Quantidade da Oferta

UNID_O ? Unidade de Medida da Oferta (Associado a Quantidade)

VAL_O ? Valor da Oferta

* ? Dado Opcional

[ ] ? Conjunto de Elementos.

Casos de Uso:

1) Módulo Conta

1.1) Solicitar Abertura

1.2) Listar Solicitações Pendentes

1.3) Aceitar Abertura

1.4) Rejeitar Abertura

1.5) Encerrar Conta

1.6) Excluir Conta

1.7) Pesquisar Conta

1.8) Visualizar Conta

1.9) Editar Conta

1.10) Validar Conta

2) Módulo Demanda

2.1) Propor nova Demanda

2.2) Cadastrar Demanda

2.3) Excluir Demanda

2.4) Encerrar Demanda

2.5) Pesquisar Demanda

2.6) Editar Demanda

2.7) Visualizar Demanda

3) Módulo Oferta

3.1) Cadastrar Oferta

3.2) Editar Oferta

3.3) Excluir Oferta

3.4) Encerrar Oferta

3.5) Pesquisar Oferta

3.6) Visualizar Oferta

3.7) Sugerir Oferta

4) Módulo Transações

4.1) Solicitar Agendamento

4.2) Aprovar Agendamento

4.3) Rejeitar Agendamento

4.4) Alterar Agendamento

4.5) Cancelar Agendamento

4.6) Concluir Agendamento

4.7) Pesquisar Agendamento

4.8) Visualizar Agendamento

5) Módulo Doações

5.1) Propor Doação

5.2) Aprovar Doação

5.3) Rejeitar Doação

5.4) Visualizar Doação

5.5) Pesquisar Doação

Casos de Uso / Atores:

1) Módulo Conta

1.1) Solicitar Abertura (M)

1.2) Listar Solicitações Pendentes (A)

1.3) Aceitar Abertura (A)

1.4) Rejeitar Abertura (A)

1.5) Encerrar Conta (M)

1.6) Excluir Conta (A)

1.7) Pesquisar Conta (V)

1.8) Visualizar Conta (V)

1.9) Editar Conta (M)

1.10) Validar Conta (M)

2) Módulo Demanda

2.1) Sugerir Demanda (M)

2.2) Cadastrar Demanda (M)

2.3) Excluir Demanda (A)

2.4) Encerrar Demanda (M)

2.5) Pesquisar Demanda (V)

2.6) Editar Demanda (M)

2.7) Visualizar Demanda (V)

3) Módulo Oferta

3.1) Sugerir Oferta (M)

3.2) Cadastrar Oferta (M)

3.3) Editar Oferta (M)

3.4) Encerrar Oferta (M)

3.5) Excluir Oferta (A)

3.6) Encerrar Oferta (M)

3.7) Pesquisar Oferta (V)

3.8) Visualizar Oferta (V)

4) Módulo Transações

4.1) Solicitar Transação (M)

4.2) Aprovar Transação (M)

4.3) Rejeitar Transação (M)

4.4) Alterar Transação (M)

4.5) Cancelar Transação (M)

4.6) Concluir Transação (M)

4.7) Pesquisar Transação (V)

4.8) Visualizar Transação (V)

5) Módulo Doações

5.1) Propor Doação (M)

5.2) Aprovar Doação (M)

5.3) Rejeitar Doação (M)

5.4) Visualizar Doação (V)

5.5) Pesquisar Doação (V)

Casos de Uso / Dados:

1) Módulo Conta

1.1) Solicitar Abertura (ID_M, DOC_C, END_C, TEL_C)

1.2) Listar Solicitações Pendentes (ID_M* ? [ID_M]* )

1.3) Aceitar Abertura (ID_M ? ID_C)

1.4) Rejeitar Abertura (ID_M, TXT)

1.5) Encerrar Conta (ID_C)

1.6) Excluir Conta (ID_C)

1.7) Pesquisar Conta (ID_M ? ID_C)

1.8) Visualizar Conta (ID_C ? ID_M, SAL_C)

1.9) Editar Conta (ID_C, DOC_C, END_C, TEL_C)

1.10) Validar Conta (ID_C ? SAL_C)

2) Módulo Demanda

2.1) Sugerir Demanda (ID_M, TXT)

2.2) Cadastrar Demanda (ID_M, NOME_D, DESC_D, TP_D, CAT_D, FREQ_D*, QTD_D*, UNID_D*, VAL_D* ? ID_D)

2.3) Excluir Demanda (ID_D)

2.4) Encerrar Demanda (ID_D)

2.5) Pesquisar Demanda (ID_M*, NOME_D*,DESC_D*,TP_D*, CAT_D*, FREQ_D*, QTD_D*, UNID_D*, VAL_D* ? [ID_D]*)

2.6) Editar Demanda (ID_D, NOME_D*, DESC_D*, TP_D*, CAT_D*, FREQ_D*, QTD_D*, UNID_D*, VAL_D*)

2.7) Visualizar Demanda (ID_D)

3) Módulo Oferta

3.1) Sugerir Oferta (ID_M, TXT)

3.2) Cadastrar Oferta (ID_M, NOME_O, DESC_O, TP_O, CAT_O, FREQ_O*,QTD_O*, UNID_O*, VAL_O* ? ID_O)

3.3) Editar Oferta (ID_O, NOME_O*, DESC_O*, CAT_O*, FREQ_O*,QTD_O*, UNID_O*, VAL_O*)

3.4) Encerrar Oferta (ID_O)

3.5) Excluir Oferta (ID_O)

3.6) Pesquisar Oferta (ID_M*, NOME_O*,DESC_O*, CAT_O*, FREQ_O*,QTD_O*, UNID_O*, VAL_O* ? [ID_O]*)

3.7) Visualizar Oferta (ID_O)

4) Módulo Transações

4.1) Solicitar Transação (ID_M, ID_O*, ID_D*, QTD_T, DATA_T, HORA_T, TXT* ? ID_T)

4.2) Aprovar Transação (ID_T)

4.3) Rejeitar Transação (ID_T, TXT)

4.4) Alterar Transação (ID_T, ID_O*, ID_D*, QTD_T*, DATA_T*, HORA_T*, TXT)

4.5) Cancelar Transação (ID_T, TXT)

4.6) Concluir Transação (ID_T)

4.7) Pesquisar Transação (ID_T*, ID_O*, ID_D*, ID_M*, DATA_T*)

4.8) Visualizar Transação (ID_T)

5) Módulo Doações

5.1) Propor Doação (ID_M,VAL_A,TXT* ? ID_A)

5.2) Aprovar Doação (ID_A)

5.3) Rejeitar Doação (ID_A,TXT)

5.4) Visualizar Doação (ID_A)

5.5) Pesquisar Doação (ID_A*,ID_M*, DATA_A*)

Prioridade: 
Alta
Responsáveis: 
fred
Responsáveis: 
Jatobá

Comentários

#1

Tempo registrado: 6 horas em fevereiro 17, 2013

Um detalhe importante desse módulo Community Accounting que estamos implementando é que ele é baseado no conceito de Mutual Credit, ou seja, não existe uma autoridade central responsável pelo lastro financeiro. Qualquer usuário pode exceder os limites de sua conta e ficar no negativo. Isso é feito assim para que o sistema acrescente valor dinamicamente.  

Uma conta lastro de administrador pode ser configurada para ter limites negativos maiores. Abaixo o gráfico da conta do admin do Corais, que pode chegar a 1000 negativos.

chart.png

Para evitar que usuários fiquem no negativo e depois desapareçam, é importante contar com algum tipo de pressão social, como por exemplo, export esse saldo negativo em algum lugar visível. 

O ideal é que isso funcione por projeto. Vamos avançando aos poucos.

#2

Tempo registrado: 6 horas em fevereiro 17, 2013

Terminei de implementar as permissões da ferramenta. Agora falta traduzir para o português. Por enquanto, estamos trabalhando com uma moeda geral pra todo o Corais: Conchas .

Um ponto que ficou em aberto é a possibilidade de referenciar um outro conteúdo em cada transação. Isso poderia ser utilizado como uma forma de pagar por uma Tarefa executada. Aí na hora de fazer uma transferência, o usuário poderia selecionar uma tarefa que está no projeto através de um dropdown. 

O que mais poderia estar atrelado a uma transação? 

#3

Tempo registrado: 11 mins em fevereiro 18, 2013

Em relação a moeda social estou com 2 necessidades criticas para conseguir utilizar ele aqui em nossa realidade

1) Qualquer usuario pode tirar conchas de outro usuario. Isso permite uma verdadeira bagunca nas contas de todo mundo.  Tem como desabilitar isso? O ideal é ter doação mas nao ter o contrário onde quem quer pega de quem tem.
 

Acho q temos q ter apenas a função de pagar ou doar, mas nao funções de pedir ou tirar de um usuario por outro.

 

2) O limite dos usuarios estão em 400. Tem como aumentar pra 1.000 (este é o nosso teto aqui). 400 conchas é mto pouco para ser um teto. Cada artista q toca aqui no nosso evento ganha 100 conchas. O servico de videoclipe custa 365 conchas

#4

Concordo em desabilitar os modos Débito Automático e Fatura. No momento teremos então Doação e Pagamento com confirmação.

Por mim tudo bem que o limite seja 1.000 conchas pra começarmos. Não tinha referência alguma quando definir 400. Puro chute. Porém, esses limites devem ser negociados com outros projetos quando houverem.

O ideal seria que cada projeto tivesse sua própria moeda, seus próprios limites, mas isso criaria um sistema bastante complexo no Corais. Talvez seja melhor enquanto a gente tem poucos projetos utilizando Moeda Social, utilizar apenas a Conchas criada pela Colabor [at] tiva [dot] PE

#5

Ola a [email protected], estou com uma dúvida mto importante pra nosso uso do módulo

Segundo Fred detalhou acima a gerencia da moeda é global no Corais, ou seja não está atrelado a cada projeto específico.

Com isso se algum usuário criar um projeto poderá setar seus limites dentro do projeto, correto?

E se ele começar a fazer transações em outro projeto isso gerará conchas pra ele dentro do projeto conchativa?

Isso pode gerar confusão em nossa economia local, pois precisamos de um saldo apenas para transações dentro do nosso contexto.

O q vcs acham ?

#6

Tempo registrado: 5 horas em fevereiro 21, 2013

Compreendo a importância do controle local. Dei uma escarafunchada no módulo e consegui fazer as alterações necessárias para que cada projeto tenha a sua moeda. Isso pode causar alguma confusão e complexidade na hora em que os usuários participem de projetos com moedas diferentes, mas é melhor assim, por ora. 

Com essa mudança, perde-se a conexão com as tarefas, mas ainda tentarei restabelecê-la depois.

Documentando modificações de código:

mcapi.module linha 148, adicionado permissão ('declare currency'). 

mc_webforms.module linha 392 e mc_webform_1stparty.module linha 255, adicionad as seguintes linhas:

  // gets the first currency associated with the current space
  $currencies = views_get_view_result("currency");
  $nid = $currencies[0]->nid;
  $form_state['values']['cid'] = $nid;

#7

Após as últimas alterações não consegui setar a moeda do projeto [email protected] (www.corais.org/conchativa).

A opção de selecionar a moeda fica com uma opção em branco na combo e o box Currency com um link ¨node" leva a uma página não encontrada.

As tasks seguem aparecendo listadas no 1st party e no 3rd party.

Hj é o lançamento da moeda social Concha as 17:00 em Recife. Se conseguimos fechar esse problema pretendemos apresentar o corais e demonstrar o funcionamento do sistema para os participantes do Movimento [email protected] presentes ao lançamento.

#8

Tempo registrado: 1 hora em fevereiro 22, 2013

Corrigi os bugs e acredito que esteja funcional. Já criei a moeda Concha no projeto e coloquei você como autor @jatoba. Tive que apagar as transações existentes para que elas sejam novamente inseridas.

http://www.corais.org/conchativa/node/76673

#9

Só pra documentar. O botão "Adicionar transação" que aparece embaixo de tarefas em projetos que possuem moeda social foi implementado da seguinte forma: foi criado um snippet com o módulo myHook.

Este botão não estava funcionando desde a migração recente de servidor devido à grafia deprecated do PHP. Já arrumei.

O código segue abaixo.

function atrium_credit_link($type, $node = NULL, $teaser = FALSE) { global $user; $payee = user_load($node->field_task_assignedto[0][uid]); if ($payee == "") { $payee = user_load($node->uid); } $group = og_get_group_context(); $currencies = views_get_view_result("currency", NULL, $group->nid); $cid = $currencies[0]->nid; $add_link = 'node/add/exchange'; $query_link = 'edit[field_related_task][nid][nid]='. $node->nid . "&edit[payee_uid]=" . $payee ->uid. '&edit[payer_uid]=' . $user->uid . '&edit[quantity]=' . $node->field_value['value'] . '&edit[cid]=' . $cid; $links = array(); if ($type == 'node' && $node->type == "task") { $links['add_exchange'] = array( 'title' => t("Add Exchange"), 'href' => $add_link, 'query' => $query_link, ); } return $links; }