GithubHelp home page GithubHelp logo

selectnull / ngo_clanarine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from igustin/ngo_clanarine

0.0 1.0 0.0 135 KB

Python program za kreiranje i mailanje uplatnica za članarine udruga

License: GNU General Public License v3.0

Python 3.39% Smarty 96.61%

ngo_clanarine's Introduction

ngo_clanarine

ngo_clanarine je Python program za kreiranje i mailanje uplatnica za članarine udruga ili sličnu svrhu.

Opis

Program je napravljen za potrebe jedne udruge, s raznim specifičnostima koje su bile potrebne, ali je primjenjiva i za druge udruge i slične potrebe. Značajke ovog rješenja:

  • ulazni podaci se pripremaju u GoogleSheet, LibreOffice Calc, Microsoft Excel ili sličnoj tablici prema formatu opisanim u nastavku, pri čemu pojedini članovi mogu imati različite iznose (ovisno o tipu članstva, broju sudjelovanju na radionicama i slično)
  • podaci se iz tablice ručno eksportiraju u CSV datoteku i koriste u programu
  • program se poziva uz navođenje mjeseca (ili razdoblja) i godine za koje se šalju uplatnice
  • program generira individualiziranu HUB-3 uplatnicu predlošku s 2D barkodom za plaćanje fotonalogom i trajno je sprema u poddirektorij, pri čemu se poziv na broj formira u obliku OIB-GGGGMM radi točne identifikacije uplate
  • program generira individualizirani mail s uputama za više načina plaćanja i PDF uplatnicom u attachmentu
  • automatski šalje mail preko GMaila

Priprema ulaznih podataka

Ulazni podaci pripremaju se u bilo kojem tabličnom kalkulatoru. Format tablice vidi se na screenshotu (izmišljeni podaci generirani ChatGPT-om). Prvi redak je zaglavlje, a ostali redovi sadrže konkretne podatke. Stupci tablice:

A) redni broj zapisa - nema posebnu funkciju, osim što se ispisuje na ekranu tijekom generiranja i slanja kako bi se pratio rad skripte

B) ime i prezime polaznika (stavlja se na uplatnicu i u sadržaj maila)

C) ulica i broj (stavlja se na uplatnicu i u sadržaj maila)

D) broj pošte i mjesto (stavlja se na uplatnicu i u sadržaj maila)

E) datum rođenja (nigdje se se koristi, ali služi evidenciji članstva sukladno Zakonu o udrugama)

F) OIB, pri čemu program sam dodaje vodeće nule ako ima manje od 11 znamenki (koristi se za poziv na broj na uplatnici i evidenciji članstva sukladno Zakonu o udrugama)

G) e-mail adresa člana/roditelja/staratelja kojem se šalje mail s uplatnicom

H i dalje) - iznos uplate za određeni mjesec ili razdoblje u formatu m/gggg ili m-m/gggg, npr. 9/2022, 10/2022, 11-12/2022 i slično; ovaj format zapisa u zaglavlju je bitan jer po tome odabire stupac s iznosima, oblikuje opis plaćanja i poziv na broj

image

Konfiguriranje programa

Prije prve upotrebe, program treba unutar izvornog koda jednokratno konfigurirati s obzirom na podatke o udruzi i podacima o pošiljatelju:

  • u retcima 79-98 treba upisati statične podatke primatelja (udruge), tipično je to:
    • "iban_primatelja": "HR1234567890123456789"
    • "naziv_primatelja": "Udruga"
    • "ulica_i_broj_primatelja": "Ulica 0"
    • "postanski_i_grad_primatelja": "99999 Grad"
  • sender_email (redak 153) sadrži GMail adresu pošiljatelja
  • username (redak 158) je Google Account preko kojeg se šalju mailu, tipično je isto kao i GMail adresa pošiljatelja
  • password (redak 159) NIJE password GMail accounta, nego Google Application Password kojeg za aplikaciju treba korisnik izgenerirati unutar svog Google Accounta pod opcijom 2FA
  • tekst maila s individualiziranim podacima je definiran u redovima 211-231
  • kreirati poddirektorij "uplatnice" u koji će se spremati PDF uplatnice, pri čemu će filename bit oblika Uplatnica_ime_prezime_mjesec.pdf

Korištenje programa

Nakon što se popuni tablica s barem jednim zapisom i barem jednim mjesecom ili razdobljem, tu se tablicu u cijelosti (zajedno sa zaglavljem) eksportira u CSV formatu u datoteku naziva 'clanarine.csv'.

Nakon toga se program iz komandne linije poziva s npr.

./clanarine.py 9-12/2022

ili

./clanarine.py 6/2023

Programu treba nekoliko sekundi za kreiranje i slanje maila po svakom zapisu, pri čemu ispisuje tijek rada:

image

PDF uplatnica, kreirana prema PostScript predlošku uplatnica.tpl, s imenom npr. "Uplatnica_Tomislav_Matić_9-10_2022.pdf" sprema se u poddirektorij "uplatnice" i izgleda ovako:

image

Poslani mail izgleda ovako:

image

Credits

Program se bazira na ovim i vezanim rješenjima:

ngo_clanarine's People

Contributors

igustin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.