Outra diferença importante será o fato de não expor o código completo nos posts. Gostaria de colocar somente os mais importantes. O código-fonte está disponível aqui.
Análise de Requisitos
Queremos que o empregado possa acessar a aplicação via navegador web para solicitar suas férias. Ele pode marcá-las para no mínimo 20 dias após o pedido. Ainda pode sugerir duas datas para que o seu chefe imediato possa escolher a mais adequada. Essas datas precisam ter uma distância de pelo menos 15 dias corridos.
O empregado tem a opção de informar se deseja vender um terço das férias ou toda ela para receber em troca o bônus pecuniário.
As férias podem ser parceladas na seguinte forma: duas parcelas de 15 dias ou uma de 10 mais outra de 20 dias. Caso venda parte de suas férias não haverá parcelamento.
O parcelamento também é uma sugestão do empregado. O seu gerente é quem toma a decisão final.
Uma solicitação só pode ser aceita caso não haja uma anterior pendente. O sistema deve avisar com antecedência de um mês para o gerente do empregado que uma solicitação está a um mês para alcançar a data do início do período de férias mais próximo que o usuário pediu. Quando esta data chegar o sistema avisará novamente quando aproximar-se a segunda sugestão.
O gerente quando for atender uma solicitação deve ter em conta quais empregados já possuem férias para serem gozadas nas datas sugeridas pelo empregado. O sistema deve mostrar isso.
Após haver a possibilidade de férias em uma das datas, o próximo passo será verificar a possibilidade de compra das férias. Caso haja e se for total, essa opção será marcada. O empregado receberá seu abono na folha de pagamento seguinte à primeira data de sugestão. Caso seja a terça parte, o sistema registrará a data de início e fim em 20 dias corridos.
Não havendo possibilidade de venda ou o gerente não querendo comprar, resta saber se haverá parcelamento ou não. Fica a critério do gerente usar as datas sugeridas para parcelar ou somente uma delas.
Ao fechar o pedido de solicitação do empregado, estas férias estarão em estado de espera de gozo. O empregado não poderá fazer uma nova solicitação até o proximo ano ou até que tenha gozado. Além do mais, a nova solicitação será para o período de seguinte.
O sistema ainda poderá informar ao empregado, ao logar-se no sistema, que estará a ponto de acumular três férias sem gozar. Caso ocorra essa acumulação, automaticamente o período de férias mais antigo será prescrevido.
O projeto
O projeto será construído usando o framework Pylons e por isso dei o nome para ele de Ferlons, uma junção de férias e Pylons. Os formulários serão simples porém escolherei um template visualmente agradável na web para animar as coisas.
Pré-requisitos
Saber um pouquinho de Python, possuir a versão 2.4 ou 2.5 da linguagem instalada na máquina e a biblioteca do SQLite (claro, você poder usar o MySQL ou o PostgreSQL). Os comandos abaixo instalam o Pylons e o SQLAlchemy.
easy_install Pylons SQLAlchemy
Caso não tenha o easy_install na sua máquina acesse a página de downloads do Pylons para explicações.
Acompanhem os próximos posts onde cuidarei de mostrar um pouco mais. Possivelmente o uso do AuthKit.