From felix at f-hauri.ch Sun Apr 1 10:12:36 2001 From: felix at f-hauri.ch (=?ISO-8859-1?Q?F=E9lix_Hauri?=) Date: Sun, 1 Apr 2001 10:12:36 +0200 (CEST) Subject: SVBR In-Reply-To: Message-ID: On Fri, 30 Mar 2001, Frederic Schutz wrote: > Je profite d'entrer dans la conversation en signalant que j'ai pris du > temps ces jours pour programmer en C tous ces calculs de checksums (modulo > 10R, modulo 11, celui utilis? pour les cartes de cr?dit, il y en a encore Celui que je t'ai envoy? est le ``10R'' ?! Peux-tu m'expliquer, s'il existe un autre moyen que le tableau figurant dans le manuel DTA, je veux dire ``formule math?matique'' pour me faire comprendre ce terme ``Modulo 10 r?cursif''? Ou si ce tableau ? ?t? dessin? de mani?re plus ou moin arbitraire? > un ou deux que je veux impl?menter); c'est en fait assez facile ? > programmer. Je n'ai pas encore eu le temps d'en faire un package avec > toutes les explications, mais je peux d?j? les envoyer ? qui que ce soit > qui est int?ress?. La principale raison de ce courrier: Je !!! A bient?t! -- F?lix Hauri - - http://www.f-hauri.ch From schutz at mathgen.ch Sun Apr 1 14:27:32 2001 From: schutz at mathgen.ch (Frederic Schutz) Date: Sun, 01 Apr 2001 22:27:32 +1000 Subject: SVBR In-Reply-To: References: Message-ID: Le Sun, 01 Apr 2001 10:12:36 +0200 (CEST), tu as ecrit : >> Je profite d'entrer dans la conversation en signalant que j'ai pris du >> temps ces jours pour programmer en C tous ces calculs de checksums (modulo >> 10R, modulo 11, celui utilis? pour les cartes de cr?dit, il y en a encore >Celui que je t'ai envoy? est le ``10R'' ?! Oui, sauf qu'? ma connaissance tu ne me l'as pas envoy? :-) >Peux-tu m'expliquer, s'il existe un autre moyen que le tableau figurant >dans le manuel DTA, je veux dire ``formule math?matique'' pour me faire >comprendre ce terme ``Modulo 10 r?cursif''? >Ou si ce tableau ? ?t? dessin? de mani?re plus ou moin arbitraire? Non, je n'ai pas trouv? d'autre moyen que le tableau pour comprendre le fonctionnement du "modulo 10 r?cursif". Je cherche encore... (r?cursif, je sais pourquoi, modulo 10, je n'ai pas encore r?ussi ? faire le lien entre la signification math?matique du terme et le tableau). Par contre, le tableau n'est de loing pas dessin? de fa?on arbitraire, ce qui permet de le coder de fa?on tr?s compacte. Toutes les lignes sont ?gales ? la ligne pr?c?dent, d?cal?e d'un caract?re vers la gauche. En ce qui concerne la premi?re ligne, elle pourrait ?tre arbitrairement choisie, mais ce n'est pas tout ? fait le cas (si on la repr?sente sous forme de graphique, il y a clairement une structure qui appara?t)... >> un ou deux que je veux impl?menter); c'est en fait assez facile ? >> programmer. Je n'ai pas encore eu le temps d'en faire un package avec >> toutes les explications, mais je peux d?j? les envoyer ? qui que ce soit >> qui est int?ress?. >La principale raison de ce courrier: Je !!! Je devrais avoir quelque chose de pr?sentable d'ici demain (ou apr?s-demain), je te l'enverra, ou le mettrai sur le site du GULL comme sugg?r? par Erik. Fr?d?ric From felix at f-hauri.ch Mon Apr 2 11:03:05 2001 From: felix at f-hauri.ch (=?ISO-8859-1?Q?F=E9lix_Hauri?=) Date: Mon, 2 Apr 2001 11:03:05 +0200 (CEST) Subject: SVBR In-Reply-To: Message-ID: On Sun, 1 Apr 2001, Frederic Schutz wrote: > >Celui que je t'ai envoy? est le ``10R'' ?! > > Oui, sauf qu'? ma connaissance tu ne me l'as pas envoy? :-) Oups! Je crois bien que j'ai loup? un ``YES'':( Pour me faire pardonner, je vous fais parvenir un petit paquet, que je pose ici car je pense qu'il pourra en int?resser d'autres;) postfinance-sum : Script Shell Bash2 pour contr?ler les fichiers re?us postfinance-in : Script Shell pour copier (lire) les fichiers. (Bof!) pz10.php : Repiqu? sur ma d?mo Intranet, sur mon site. codage.tcl : Le bout de TCL que j'utilise pour mon outil perso. Et comme c'est tout petit, j'esp?re qu'on ne va pas me vouloir d'encombrer les boites de ceux qui ne m'ont rien demand?;) Je n'ai pas retrouv? mon premier proto pz10 en bash... D?sol?:( > > >Peux-tu m'expliquer, s'il existe un autre moyen que le tableau figurant > >dans le manuel DTA, je veux dire ``formule math?matique'' pour me faire > >comprendre ce terme ``Modulo 10 r?cursif''? > >Ou si ce tableau ? ?t? dessin? de mani?re plus ou moin arbitraire? > Non, je n'ai pas trouv? d'autre moyen que le tableau pour comprendre le > fonctionnement du "modulo 10 r?cursif". Je cherche encore... (r?cursif, je > sais pourquoi, modulo 10, je n'ai pas encore r?ussi ? faire le lien entre > la signification math?matique du terme et le tableau). Par contre, le Well! J'avais effectu? une petite recherche l? dessus, pour en arriver ? la conclusion qu'il a ?t? dessin? de mani?re. arbitraire. (Je me suis mal exprim?, je voulais parler de LA ligne qui ? servi de base au dessin du tabl:o) > tableau n'est de loin pas dessin? de fa?on arbitraire, ce qui permet de le > coder de fa?on tr?s compacte. Toutes les lignes sont ?gales ? la ligne > pr?c?dent, d?cal?e d'un caract?re vers la gauche. En ce qui concerne la > premi?re ligne, elle pourrait ?tre arbitrairement choisie, mais ce n'est > pas tout ? fait le cas (si on la repr?sente sous forme de graphique, il y a > clairement une structure qui appara?t)... Bof, cela me fait penser ? la grande ourse... Je crois que le but est de cr?er une boucle passant par TOUS les chiffre NON ZERO, avec un d?calage syst?matiquement variable: Si je soustrait chaque ? chiffre sa position j'obtient: | 0 | 9 | 4 | 6 | 8 | 2 | 7 | 1 | 3 | 5 - | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ------------------------------------------ = | 0 | 8 | 2 | 3 | 4 |-3 | 1 |-6 |-5 |-4 Ce qui devrait diminuer les risques qu'une double erreur de m?me type ne vienne s'annuler!? (... De m?me type pour distinguer ``erreur humaine'' de ``bug''). Cela dit, hormis le ``0'' qui boucle sur lui-m?me pour autoriser une pr?c?dence variable de z?ros, j'ai l'intime convicition que cette ligne ? ?t? dessin?e arbitrairement. > >> toutes les explications, mais je peux d?j? les envoyer ? qui que ce soit > >> qui est int?ress?. > >La principale raison de ce courrier: Je !!! Merci! ... Pas de contr?le d'int?grit? de l'argument? -- F?lix Hauri - - http://www.f-hauri.ch -------------- next part -------------- A non-text attachment was scrubbed... Name: cpta-vrac.tar.gz Type: application/octet-stream Size: 1981 bytes Desc: Bricoles autour de DTA et Postfinance. URL: From schutz at mathgen.ch Mon Apr 2 14:05:59 2001 From: schutz at mathgen.ch (Frederic Schutz) Date: Mon, 02 Apr 2001 22:05:59 +1000 Subject: SVBR In-Reply-To: References: Message-ID: Le Mon, 02 Apr 2001 11:03:05 +0200 (CEST), tu as ecrit : >Merci! ... Pas de contr?le d'int?grit? de l'argument? Non, pas encore, ?a va venir. Je voulais aussi ajouter des fonctions pour simplifier l'utilisation du truc, mais pas eu le temps. En plus, j'ai d?couvert des erreurs dans mes commentaires. Je ferai une version "diffusable" d'ici la fin de la semaine, j'esp?re. Bon, ? part ?a, pour peut-?tre lancer une discussion plus g?n?rale, on pourrait peut-?tre faire un petit tour des personnes qui se sont abonn?es ? cette liste, ce qu'ils esp?rent, quelles id?es ils ont, ? quoi ils seraient pr?ts ? collaborer, etc. Qui commence ? (je le ferai volontiers demain, pour l'instant c'est l'heure d'aller me coucher :-) Fred. From secretaire at linux-gull.ch Mon Apr 2 21:33:52 2001 From: secretaire at linux-gull.ch (Erik Rossen) Date: Mon, 2 Apr 2001 21:33:52 +0200 (CEST) Subject: intro perso In-Reply-To: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Mon, 2 Apr 2001, Frederic Schutz wrote: > Bon, ? part ?a, pour peut-?tre lancer une discussion plus g?n?rale, on > pourrait peut-?tre faire un petit tour des personnes qui se sont > abonn?es ? cette liste, ce qu'ils esp?rent, quelles id?es ils ont, ? > quoi ils seraient pr?ts ? collaborer, etc. La coordination technique de ce projet ainsi que sa programmation sont mes int?r?ts. Je songe ? donner un cours prochainement intitul? "Introduction au CVS" dans le cadre des cours du GULL. Non, je ne sais pas quand exactement, mais avec COMPUTER-expo 2001 et mes cours ? l'ESNIG, ?a risque d'?tre quelques mois. Personnellement, je pr?f?re qu'on commence petit et pratique, c'est-?-dire, essayer de programmer des modules DTA et OPAE qui fonctionnent avec GnuCash ainsi que GULLCompta (?ventuellement). ?a me pla?t beaucoup que quelqu'un a d?j? commenc? de coder des routines qui risque d'?tre utiles. Quelques petits succ?s comme ?a peut attire plus d'attention que un plan farfelu (orth?) qu'on commence de coder dans une ann?e ou deux. Certains (Salut, Gilbert!) pensent qu'il vaut mieux qu'on fait un bon plan, tr?s structur?, avant qu'on commence. Mais des autres projets comme LIPE ont d?j? suivi ce chemin et ils sont perdus dans la d?sint?resse g?n?rale qui arrive ? ces projets qui sont tous blah-blah et pas de code. C'est vrai qu'on a un fort atout en Alex qui est comptable brevet?, et la planification va s?rement ?tre le succ?s ou le d?fait de ce projet, mais ?a ne nous excuse pas des r?gles "release early, release often" et "plan to throw away at least two versions". Finalement, je crois que les deux choses vont passer au m?me temps - ceux qui veulent coder va commencer et ceux qui sont capable de planifier ce projet vont faire ?a. Tant mieux. Erik Rossen secretaire at linux-gull.ch Tel: (41 22) 362 45 08 http://www.linux-gull.ch GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE6yNQuY88aPik10LkRAmisAJ9U7Y/IxlvbXe4U1p6rRcxi6SUDPwCfW1Zo JVG444UbHL0ZhONuTd3/lzk= =N6yU -----END PGP SIGNATURE----- From estel at fnac.net Tue Apr 3 00:25:57 2001 From: estel at fnac.net (estelle falcy) Date: Tue, 03 Apr 2001 00:25:57 +0200 Subject: intro perso References: Message-ID: <3AC8FC75.6000505@fnac.net> Personellement je suis motivee pour participer a la specification et au developpement du logiciel de compta generale, Erik Rossen wrote: > > Personnellement, je pr?f?re qu'on commence petit et pratique, > c'est-?-dire, essayer de programmer des modules DTA et OPAE qui > fonctionnent avec GnuCash ainsi que GULLCompta (?ventuellement). ?a me > pla?t beaucoup que quelqu'un a d?j? commenc? de coder des routines qui > risque d'?tre utiles. Quelques petits succ?s comme ?a peut attire plus > d'attention que un plan farfelu (orth?) qu'on commence de coder dans une > ann?e ou deux. Je suis d'accord, les modules pour GnuCash peuvent etre implementes a part , mais je pense pas ke c en faisant du petit et pratique + du petit et pratique (x100 :-)) que l'on va faire un logiciel coherent .. Je pense pas non plus qu'il faille attendre un an avant de pondre un bout de code mais il ne faut pas negliger la phase de spec (min 2 mois ? il faudrait peut etre demander a notre ami comptable ;)). > > Certains (Salut, Gilbert!) pensent qu'il vaut mieux qu'on fait un bon > plan, tr?s structur?, avant qu'on commence. Mais des autres projets > comme > LIPE ont d?j? suivi ce chemin et ils sont perdus dans la d?sint?resse > g?n?rale qui arrive ? ces projets qui sont tous blah-blah et pas de > code. C'est vrai qu'on a un fort atout en Alex qui est comptable > brevet?, et la > planification va s?rement ?tre le succ?s ou le d?fait de ce projet, mais > ?a ne nous excuse pas des r?gles "release early, release often" et "plan > to throw away at least two versions". il y a p'tre moyen de trouver un compromis, nan? > > Finalement, je crois que les deux choses vont passer au m?me temps - ceux > qui veulent coder va commencer et ceux qui sont capable de planifier ce > projet vont faire ?a. Tant mieux. J'suis ok mais faudrait peut-etre que ca ne parte pas dans tous les sens non plus (genre j'ai deja code cke tu viens de specifier ..) Et les autres vous en pensez koi ? Au fait, combien de personnes participent a ce projet? voila j'crois ke c tout bonne nuit estelle. From schutz at mathgen.ch Tue Apr 3 07:54:16 2001 From: schutz at mathgen.ch (Frederic Schutz) Date: Tue, 03 Apr 2001 15:54:16 +1000 Subject: intro perso In-Reply-To: References: Message-ID: Personnellement, je suis int?ress? par le projet Compta de fa?on g?n?rale (parce que c'est une application qui manque sous Linux et que je saurais qu'en faire si elle existait), mais j'ai quelques int?r?ts plus sp?cifiques. Malgr? que je ne sois plus en Suisse actuellement, je m'occupe encore de g?rer la comptabilit? d'une association. Ceci se fait bien entendu sous Windows (avec le logiciel Banana), sur mon portable. Le probl?me se pose de permettre aux autres personnes concern?es d'acc?der aux donn?es de la compta. La solution que je veux mettre en oeuvre tr?s rapidement est : - exporter mes donn?es en format texte; - r?cup?rer les ?critures dans une base de donn?es sous Linux; - ?crire une petite interface (avec PHP) pour permettre la consultation de la compta ? distance via le Web. L'?criture de l'interface (dans une version basique) n'est pas un tr?s gros travail (il ne s'agit que de faire quelques recherches dans la db et les afficher). La seule chose qui m'a retenue de commencer ?tait le choix du format de la db. Pour l'instant, je suis plut?t d'accord avec Erik: il faut produire du code rapidement, avec le minimum de sp?cifications, pour pouvoir attirer les gens, montrer que le projet avance. Je pr?f?re cr?er quelque chose qui m'est utile tout de suite, quitte ? changer la moiti? du code dans 6 mois pour coller ? des nouvelles sp?cifications, plut?t que d'attendre des sp?cifications d?finitives (qui ne le seront sans doute jamais). Pour cela, mon id?e serait de lancer la discussion sur le sujet du format d'une table pour stocker les ?critures (si personne ne se lance, j'enverrai mes id?es... d?s que j'aurai du temps !). Une fois ceci sp?cifi? (et ?a peut ?tre fait rapidement, m?me si ce n'est pas totalement d?finitif), on peut comment ? cr?er quelque chose autour, interfaces, etc. Au d?part, on peut imaginer que les clients se connectent directement ? la base de donn?es, m?me si on ajoute un interm?diaire par la suite, comme le propose Alex dans son cours. Pour conclure, je ne peux que reprendre ? mon compte ce qu'?crivait Erik: >Finalement, je crois que les deux choses vont passer au m?me temps - ceux >qui veulent coder va commencer et ceux qui sont capable de planifier ce >projet vont faire ?a. Tant mieux. Fred. From schaefer at alphanet.ch Tue Apr 3 11:59:42 2001 From: schaefer at alphanet.ch (Marc SCHAEFER) Date: Tue, 3 Apr 2001 11:59:42 +0200 (MEST) Subject: intro perso In-Reply-To: Message-ID: On Mon, 2 Apr 2001, Erik Rossen wrote: > Personnellement, je pr?f?re qu'on commence petit et pratique, > c'est-?-dire, essayer de programmer des modules DTA et OPAE qui > fonctionnent avec GnuCash ainsi que GULLCompta (?ventuellement). ?a me Je ne connais pas ces logiciels, mais je seconde l'id?e de faire rapidement un petit prototype qui fait juste l'essentiel. La d?finition d'essentiel sera certainement sujette ? conflits :). Pour moi c'est: Base de donn?e PostgreSQL remplie par un front-end quelconque (Perl, psql, Star Office, pgaccess), convertie dans les deux sens au format OPAE ou OTA Pourquoi les deux sens ? 1. regression testing automatique ? chaque release 2. l'autre application, la prise en compte des paiements utilise, ? ma connaissance, un format sym?trique. Et de plus l'excellent F?lix Hauri s'y conna?t. Pourquoi une base de donn?es, en particulier PostgreSQL ? La structure SQL ainsi que l'utilisation de contraintes d'int?grit? permet de diminuer la charge de travail et la complexit? du code. (p.ex: il est envisageable de faire le test d'int?grit? des ``num?ros compl?mentaires'' directement en PL/SQL, comme s?curit? `last-niveau'). L'installation et l'administration sont nulles (si le logiciel s'occupe de la sauvegarde si n?cessaire) # apt-get install postgresql postgres% createuser schaefer schaefer% createdb paiements && ./create_db.pl paiements schaefer% cp odbc.sample .odbc.ini schaefer% ./Office52/soffice odbc:paiements # simplifi? schaefer% ./convert_paiements_to_dta.pl paiements > paiements.dta schaefer% destroydb paiements && createdb paiements && \ ./create_db.pl paiements schaefer% ./dta_to_paiements.pl paiements < paiements.dta Pourquoi ainsi ? On se concentre *uniquement* sur le point le plus important, la conversion d'information. On laisse les probl?mes d'interface ? WWW ou un client SQL/ODBC. On laisse les probl?mes de format ? une base de donn?es. Rien n'emp?che ensuite de remplacer des composants vus comme inefficaces pour certaines mises en oeuvre. On peut avoir plusieurs bases de donn?es pour diff?rentes applications. > Certains (Salut, Gilbert!) pensent qu'il vaut mieux qu'on fait un bon > plan, tr?s structur?, avant qu'on commence. Mais des autres projets comme Personnellement, pour des projets au boulot (ceux pour lesquels on est pay?, ceux pour lesquels on a quelques mois ? 100%), j'insiste beaucoup sur ces aspects. Ca bouffe d'ailleurs en g?n?ral une grande partie du temps, mais bon pour ce genre de projets on a le temps (sisi). D'ailleurs dans certains cas le travail ? plusieurs n'est pas possible sans une grande structuration. Mais dans le cas d'un logiciel d?velopp? sur Internet avec des personnes qui n'ont pas les m?mes int?r?ts, les m?mes disponibilit?s, etc, l'approche minimaliste mais qui fait avancer le schmilblick me semble meilleure, en particulier si ensuite on fait appel ? un nombre ?lev?s de testeurs, de documenteurs, et que l'on accepte le fait qu'un grand nombre des versions seront pr?tes-?-poubelliser. En tous cas la plupart des projets open source qui sont tr?s bien structur?s sont soit le r?sultat de l'ouverture d'un logiciel propri?taire, sur lequel finalement que des personnes issues des entreprises concern?es travaillent (Mozilla, Open Office), soit finissent mal. Soit les deux. D'ailleurs Mozilla ? mon avis va finir mal ... > g?n?rale qui arrive ? ces projets qui sont tous blah-blah et pas de code. et j'ai une extr?mement mauvaise impression, en ce moment, sur le projet Open Office. A lire leurs mailing-lists, on a l'impression qu'ils ont plus envie de parler de marketing que de corrections des bugs qui restent ou de simplifications. Faut dire que OO est un projet *gigantesque*. > Finalement, je crois que les deux choses vont passer au m?me temps - ceux > qui veulent coder va commencer et ceux qui sont capable de planifier ce > projet vont faire ?a. Tant mieux. Je te rejoins: qu'une personne qui a *besoin* de faire ses paiements ?lectroniquement commence ? pondre du code, qu'il soit moche ou pas n'a aucune importance, que cela soit en SQL ou avec des structures en C, qu'il fasse les d?marches avec la Poste pour obtenir le droit de faire des essais, et je suis persuad? que l'on aidera cette personne, en testant, en am?liorant, etc. En parall?le, ceux qui se sentent une ?me de concepteurs peuvent nous pondre une sp?cification, et j'esp?re sinc?rement qu'? l'aide de ces deux courants nous arriveront ? un bon r?sultat. From schaefer at alphanet.ch Tue Apr 3 12:01:39 2001 From: schaefer at alphanet.ch (Marc SCHAEFER) Date: Tue, 3 Apr 2001 12:01:39 +0200 (MEST) Subject: ah oui Message-ID: un truc que j'ai pondu avant d'avoir suivi le cours compta :) n'h?sitez pas ? jeter :) # TODO # - fait_par REFERENCES this # - auth through this. # BUGS # - Display routines sometimes count on numerical identifiant. # MODIFICATION-HISTORY # $Id: SQL,v 1.1 2001/03/03 11:35:04 schaefer Exp $ CREATE TABLE employe (initiales VARCHAR(2) NOT NULL, nom VARCHAR(30) NOT NULL, password VARCHAR(8) NOT NULL, administrateur BOOL NOT NULL DEFAULT 'f', UNIQUE(initiales), PRIMARY KEY(initiales)); CREATE TABLE contact (id SERIAL, compagnie VARCHAR(30), contact VARCHAR(30) NOT NULL, telephone VARCHAR(20), fax VARCHAR(20), email VARCHAR(30), npa_ville VARCHAR(30) NOT NULL, adresse_1 VARCHAR(30) NOT NULL, adresse_2 VARCHAR(30), UNIQUE(id), PRIMARY KEY(id)); CREATE TABLE compte (nom VARCHAR(20) NOT NULL, description text NOT NULL, UNIQUE(nom), PRIMARY KEY(nom)); CREATE TABLE entree_type (nom VARCHAR(20) NOT NULL, depense BOOL NOT NULL, description TEXT NOT NULL, valeur MONEY NOT NULL, UNIQUE(nom), PRIMARY KEY (nom)); CREATE TABLE entree (id SERIAL, date DATE NOT NULL DEFAULT CURRENT_DATE, employe_initiales VARCHAR(2) NOT NULL REFERENCES employe, entree_type_nom VARCHAR(20) NOT NULL REFERENCES entree_type, compte_nom VARCHAR(20) NOT NULL REFERENCES compte, contact_id INT4 NOT NULL REFERENCES contact, nombre INT2 NOT NULL DEFAULT 1, correction MONEY NOT NULL DEFAULT 0, commentaire text, UNIQUE(id), PRIMARY KEY(id)); # Examples INSERT INTO employe(initiales, nom, password, administrateur) VALUES ('ms', 'Marc SCHAEFER', 'demo', 't'); INSERT INTO compte(nom, description) VALUES ('CCP', 'Compte de Ch?ques Postaux 20-33957-9'); INSERT INTO compte(nom, description) VALUES ('Caisse', 'Caisse'); INSERT INTO entree_type(nom, depense, description, valeur) VALUES ('100-CDR-RICOH', 't', 'Achat 100 CDRs Ricoh Internex', '120'); INSERT INTO entree_type(nom, depense, description, valeur) VALUES ('100-CDR-VIVASTAR', 't', 'Achat 100 CDRs Vivastar', '130'); INSERT INTO contact(id, compagnie, contact, telephone, fax, email, npa_ville, adresse_1) VALUES (1, 'Demo SA', 'Guillaume Tell', '1234', '5678', 's at t', '2 1', 'a'); INSERT INTO entree(employe_initiales, entree_type_nom, compte_nom, contact_id, nombre) VALUES ('ms', '100-CDR', 'Caisse', 1, 1); SELECT e.initiales,e.nom,c.nom,c.description,et.nom,et.depense, et.description,et.valeur,ct.email,ct.compagnie,ent.nombre, # ent.nombre * et.valeur * (et.depense ? -1 : 1) AS total ent.nombre * et.valeur AS total_depenses FROM employe e, compte c, entree_type et, contact ct, entree ent WHERE (ent.employe_initiales = e.initiales) AND (c.nom = ent.compte_nom) AND (et.nom = ent.entree_type_nom) AND (ct.id = ent.contact_id); SELECT e.initiales,c.nom,et.depense,et.nom,et.valeur,ct.compagnie,ent.nombre, ent.nombre * et.valeur AS total_depenses FROM employe e, compte c, entree_type et, contact ct, entree ent WHERE (ent.employe_initiales = e.initiales) AND (c.nom = ent.compte_nom ) AND (et.nom = ent.entree_type_nom) AND (ct.id = ent.contact_id); SELECT SUM((ent.nombre * et.valeur) + ent.correction) AS depenses FROM employe e, compte c, entree_type et, contact ct, entree ent WHERE (ent.employe_initiales = e.initiales) AND (c.nom = ent.compte_nom) AND (et.nom = ent.entree_type_nom) AND (ct.id = ent .contact_id) AND et.depense; SELECT SUM((ent.nombre * et.valeur) + ent.correction) AS entrees FROM employe e, compte c, entree_type et, contact ct, entree ent WHERE (ent.employe_initiales = e.initiales) AND (c.nom = ent.compte_nom) AND (et.nom = ent.entree_type_nom) AND (ct.id = ent. contact_id) AND (NOT et.depense); From felix at f-hauri.ch Wed Apr 4 00:26:45 2001 From: felix at f-hauri.ch (=?ISO-8859-1?Q?F=E9lix_Hauri?=) Date: Wed, 4 Apr 2001 00:26:45 +0200 (CEST) Subject: intro perso In-Reply-To: Message-ID: Alors, je. J'y suis dans l'espoir d'apprendre comment fonctionne une comptabilit? afin de pouvoir, d'ici deux ans, pr?senter quelque chose de propre aux messieurs des imp?ts qui demandent des comptes. Par radinerie: J'ai pas envie de payer 500 balles un programme pour encore devoir apprendre ? m'en servir;) Par flemme: Je ne vais pas coder ce que d'autres, bien plus comp?tent que moi, se r?jouissent d?j? de r?aliser:)) Par pr?tention: Je compte bien y mettre mon grain de sel, de temps en temps! Well! Pour commencer: Je vais abonder dans le sens de Fred et Erik: Tout ce qui vient est bon ? prendre!! Regardez Linux! (Ou simplement GNU), mais m?me si l'on regarde d'un bout ? l'autre, juste les sous r?pertoires du noyau Linux, les styles varient de l'universitaire soign? au hacker anarchiste... Et ?a marche, ma foi plut?t bien! Les petits outils sont les plus puissant car ils sont les plus souples... Voyez ``spell'' devenu ``ispell'', ``TeX'' devenu ``TeTeX-LaTeX-ConTeX'', Je reste par ailleur persuad? que si un maximum d'application du futur ``Mod?le Ouvert de Comptabilit? Helvetique'' se feront par le biais d'un navigateur et routines PHP ou de jolies fen?tres savament dessin?es, certains ne seront satisfait que par une interface en lisp pour Emacs! Maintenant, pour ce qui est de la coordination, je crois encore je l'on peut aussi coordonner des applications existantes. Au pire, les retoucher au besoin repr?sentera de toutes fa?ons un petit travail en comparaison ? une r?alisation cath?dral?sque. -- F?lix Hauri - - http://www.f-hauri.ch From dbucher at horus.ch Wed Apr 4 13:54:38 2001 From: dbucher at horus.ch (Denis Bucher) Date: Wed, 04 Apr 2001 13:54:38 +0200 Subject: intro perso In-Reply-To: References: Message-ID: <5.0.2.1.0.20010404135328.038e90a0@mail.horus.ch> At 02.04.01 21'33, you wrote: Hello ! >Certains (Salut, Gilbert!) pensent qu'il vaut mieux qu'on fait un bon >plan, tr?s structur?, avant qu'on commence. Moi aussi c'est ce que je pense... Sinon on risque de perdre l'int?r?t pour le projet et il n'y aura qu'une ou deux personnes ? participer parce-qu'lles seules savent ce qui se passe... >Finalement, je crois que les deux choses vont passer au m?me temps - ceux >qui veulent coder va commencer et ceux qui sont capable de planifier ce >projet vont faire ?a. Tant mieux. En effet ;-)) Denis -- Denis Bucher, / info at horus.ch T?l. +41-22-8000625 \ Internet Horus Networks / horus-networks.com Fax: +41-22-8000622 \ Services / USA: (206) 888-2335 US Fax: (508) 437-1261 \ Provider From dbucher at horus.ch Wed Apr 4 14:00:48 2001 From: dbucher at horus.ch (Denis Bucher) Date: Wed, 04 Apr 2001 14:00:48 +0200 Subject: intro perso In-Reply-To: References: Message-ID: <5.0.2.1.0.20010404135729.03061080@mail.horus.ch> Hello ! Puisque chacun fait son intro personnelle je la fais aussi : Mes int?r?ts : * Faire progresser Linux sur un point important * pouvoir ensuite proposer ce programme ? des clients (version entrprises) * l'utiliser pour mes comptes (version perso) Ce que je veux/suis pr?t ? faire : * Participer aux sp?cifications * Apporter des id?es * beta-test du programme mais aussi des id?es * pas de programmation car je n'ai pas le temps pour le moment * programmation d'un module peut-?tre dans un futur tr?s lointain Bon, on commence comment pour les specs ? Alex si j'ai bien compris tu vas nous pr?parer d?j? des tables et des r?gles que l'on devra int?grer dans le module de compta g?n. ? Denis -- Denis Bucher, / info at horus.ch T?l. +41-22-8000625 \ Internet Horus Networks / horus-networks.com Fax: +41-22-8000622 \ Services / USA: (206) 888-2335 US Fax: (508) 437-1261 \ Provider From yann at gauteron.ch Wed Apr 4 20:13:31 2001 From: yann at gauteron.ch (yann at gauteron.ch) Date: Wed, 4 Apr 2001 20:13:31 +0200 Subject: Quelques sources Message-ID: <20010404201331.A658@gauteron.ch> Bonjour, Apres quelques temps d'absence dus a une periode profesionnelle mouvementee, je me joins a cette liste pour voir ce qu'il est prevu avec le logiciel de compta du GULL et s'il est possible de collaborer avec le logiciel de generation des fichiers DTA et OPAE. J'attache a ce mail, quelques essais que j'avais fait il y a quelques temps de maniere chaotique (sans longue reflexion prealable). Les fichiers ptt.c et ptt.h contiennent la fonction au calcul de la cle de controle 10R. J'utilise 2 tables codees en hard dans le source au lieu de recalculer a chaque iteration la valeur correspondante pour le gain de temps. Les fichiers pa.c et pa.h contiennent des informations sur la maniere dont je pensais representer un numero de compte postal (postal account = pa). Il contient notemment la verification de validite du compte saisi (XX-xxxxxX-X) ou (xxxXX ???) Mais ces fonctions sont de loin pas reutilisables telles quelles dans la mesure ou elles ne sont pas "propres"... Il s'agissait de verifier certaines idees que j'avais. Pour ce qui est de la maniere dont le projet doit etre mene, je pense que dans un projet d'une telle ampleur, il est necessaire de faire une etude avant dans le but de definir (au-moins) les interfaces, histoire que plusieurs groupes puissent travailler en parallelle. Yann -------------- next part -------------- A non-text attachment was scrubbed... Name: src.tgz Type: application/x-gtar Size: 13056 bytes Desc: not available URL: From yann at gauteron.ch Thu Apr 5 17:21:03 2001 From: yann at gauteron.ch (yann at gauteron.ch) Date: Thu, 5 Apr 2001 17:21:03 +0200 Subject: Quelques sources In-Reply-To: ; from schutz@mathgen.ch on Thu, Apr 05, 2001 at 12:39:47PM +1000 References: <20010404201331.A658@gauteron.ch> Message-ID: <20010405172103.A2265@gauteron.ch> On Thu, Apr 05, 2001 at 12:39:47PM +1000, Frederic Schutz wrote: > Le Wed, 4 Apr 2001 20:13:31 +0200, tu as ecrit : > > >Les fichiers ptt.c et ptt.h contiennent la fonction au calcul de la cle > >de controle 10R. J'utilise 2 tables codees en hard dans le source au lieu > >de recalculer a chaque iteration la valeur correspondante pour le gain > >de temps. > > La deuxi?me table, on est d'accord, est tr?s facile ? recalculer. Mais > as-tu trouv? un moyen pour calculer la premi?re table ???? Ca > m'int?resserait beaucoup. Non, je ne me suis pas penche sur la question, car la solution de la table codee en dur me paraissait elegante pour 2 raisons: rapide (si la table a ete disposee aleatoirement, la fonction permettant de calculer la valeur de retour selon le parametre doit etre assez compliquee, donc longue a calculer... en plus cette fonction sera appellee recursivement !) et permet de rediger un code propre... De memoire, les codeurs de demos utilisaient une pareille table pour les cos et sin au lieu de les recalculer a chaque fois... afin de gagner du temps... > Comme tu l'as peut-?tre lu, j'ai aussi ?crit des fonctions pour les cl?s > 10R et 11, que je rend propre petit ? petit... j'esp?re avoir quelque chose > ? diffuser avant la fin de la semaine (j'ai pris pas mal de temps pour > ?crire quelques centaines de lignes de commentaires, expliquant tout ce que > je connais sur ces codes, ne serait-ce que pour me mettre les id?es en > place) Tu as trouve ou toutes tes infos sur les codes ? Moi pour le 10R, je le tiens du document de la poste. Document disponible sur http://paykreator.gauteron.ch Bonne soiree Yann From rossen at freesurf.ch Thu Apr 5 19:26:03 2001 From: rossen at freesurf.ch (Erik Rossen) Date: Thu, 5 Apr 2001 19:26:03 +0200 (CEST) Subject: ah oui In-Reply-To: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 3 Apr 2001, Marc SCHAEFER wrote: > un truc que j'ai pondu avant d'avoir suivi le cours compta :) > > n'h?sitez pas ? jeter :) Hmm... > CREATE TABLE employe (initiales VARCHAR(2) NOT NULL, > nom VARCHAR(30) NOT NULL, > password VARCHAR(8) NOT NULL, > administrateur BOOL NOT NULL DEFAULT 'f', > UNIQUE(initiales), PRIMARY KEY(initiales)); UNIQUE(initiales)??? PRIMARY KEY(initiales)??? You're kidding, right? Erik Rossen ^ rossen at freesurf.ch /e\ http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE6zKqzY88aPik10LkRAnk1AJ94JNoiYrJen7FdpQFYBbmfzArxJwCgsoGd 76h3hsAeF+9M67GzScQS6Xc= =1It/ -----END PGP SIGNATURE----- From schaefer at alphanet.ch Thu Apr 5 21:24:25 2001 From: schaefer at alphanet.ch (Marc SCHAEFER) Date: Thu, 5 Apr 2001 21:24:25 +0200 (MEST) Subject: ah oui In-Reply-To: Message-ID: On Thu, 5 Apr 2001, Erik Rossen wrote: > UNIQUE(initiales)??? > PRIMARY KEY(initiales)??? > > You're kidding, right? I know a context where it's fully appropriate :) Now, some enterprises may prefer the AHV/AVS number instead. Or a plain SERIAL, for internal use only. I personnally like meaningful ID's, although their scope is sometime somewhat limited. From schutz at mathgen.ch Fri Apr 6 01:59:49 2001 From: schutz at mathgen.ch (Frederic Schutz) Date: Fri, 06 Apr 2001 09:59:49 +1000 Subject: ah oui In-Reply-To: References: Message-ID: <3c1qctgof3htnkhn9cvrrsrpqigt6lhvtd@4ax.com> Le Thu, 5 Apr 2001 21:24:25 +0200, tu as ecrit : >> UNIQUE(initiales)??? >> PRIMARY KEY(initiales)??? >> >> You're kidding, right? >Now, some enterprises may prefer the AHV/AVS number instead. A propos, vous saviez qu'il y avait une cl? de contr?le modulo 11 dans les num?ros AVS (la m?me que dans les sp?cifications DTA) ? Quand j'aurai fini mes codes de contr?les, je ferai aussi une petite biblioth?que pour g?rer les num?ros AVS, et les correspondances No AVS <--> (nom, sexe, date de naissance). Ca peut toujours ?tre utile, et je trouve ?a marrant ? faire (j'ai du code de la Caisse F?d?rale de Compensation qui fait ?a, mais c'est en Cobol...). >Or a plain SERIAL, for internal use only. I personnally like >meaningful ID's, although their scope is sometime somewhat >limited. Beaucoup d'entreprises utilisent effectivement les initiales comme identificateurs uniques; le plus souvent elles sont alors sur 3 caract?res, et "bricol?es" pour s'assurer qu'elles sont uniques (exemple, les miennes pourraient ?tre FR?d?ric Sch?tz (FRS), Fr?d?riC Sch?tz (FCS), Fr?d?ric SCh?tz (FSC), etc). Fr?d?ric From rossen at freesurf.ch Thu Apr 12 20:35:42 2001 From: rossen at freesurf.ch (Erik Rossen) Date: Thu, 12 Apr 2001 20:35:42 +0200 (CEST) Subject: ah oui In-Reply-To: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thu, 5 Apr 2001, Marc SCHAEFER wrote: > On Thu, 5 Apr 2001, Erik Rossen wrote: > > > UNIQUE(initiales)??? > > PRIMARY KEY(initiales)??? > > > > You're kidding, right? > > I know a context where it's fully appropriate :) Me too - when there will only ever be one person in the enterprise. > Now, some enterprises may prefer the AHV/AVS number instead. This practice is (rightly) illegal in some countries and impractical in many situations. For example, what if you have an employee (or subcontractor) that does not have an AVS numbert (or the national equivalent)? > Or a plain SERIAL, for internal use only. I personnally like > meaningful ID's, although their scope is sometime somewhat > limited. I like meaningful ID's too, but not as the unique identifiers of a record. Stick with SERIALs - being unique is their purpose. Remember: when designing a schema for a database, thinking ahead for an hour will save you from weeks of pain later on. This is not the first time that I have ranted on this subject. Go to Amazon.com and look at the book review for "The Practical SQL Handbook", by Bowman, Emerson, and Damovsky. Cheers, Erik Rossen ^ rossen at freesurf.ch /e\ http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE61fWKY88aPik10LkRAkl3AJ9HqMws77B0kQzomAcnUp6lMq6RMQCfbYCj +XI14wG0FGDXMv9uq8EEJv8= =/FiZ -----END PGP SIGNATURE----- From dbucher at horus.ch Fri Apr 13 19:08:09 2001 From: dbucher at horus.ch (Denis Bucher) Date: Fri, 13 Apr 2001 19:08:09 +0200 Subject: ah oui In-Reply-To: References: Message-ID: <5.0.2.1.0.20010413190647.02dc5250@mail.horus.ch> At 12.04.01 20'35, you wrote: Hello ! > > Now, some enterprises may prefer the AHV/AVS number instead. > >This practice is (rightly) illegal in some countries Why would it be illegal ?! > For example, what if you have an employee (or >subcontractor) that does not have an AVS numbert As-tu l'intention d'engager des gens au noir ?!!! Denis -- Denis Bucher, / info at horus.ch T?l. +41-22-8000625 \ Internet Horus Networks / horus-networks.com Fax: +41-22-8000622 \ Services / USA: (206) 888-2335 US Fax: (508) 437-1261 \ Provider From schaefer at alphanet.ch Fri Apr 13 20:39:26 2001 From: schaefer at alphanet.ch (Marc SCHAEFER) Date: Fri, 13 Apr 2001 20:39:26 +0200 (MEST) Subject: ah oui In-Reply-To: <5.0.2.1.0.20010413190647.02dc5250@mail.horus.ch> Message-ID: On Fri, 13 Apr 2001, Denis Bucher wrote: > > For example, what if you have an employee (or > >subcontractor) that does not have an AVS numbert > > As-tu l'intention d'engager des gens au noir ?!!! Do people with a C or B permit automatically get an AHV/AVS number ? To my knowledge the A permit was cancelled, and if what preceedes is right, only people being able to legally work here would have an AHV/AVS number. Of course I can see cases where people wouldn't, still, such as a virtual company with subcompanies in the whole world. But this is becoming off-topic. From rossen at freesurf.ch Sat Apr 14 08:50:48 2001 From: rossen at freesurf.ch (Erik Rossen) Date: Sat, 14 Apr 2001 08:50:48 +0200 (CEST) Subject: ah oui In-Reply-To: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, 13 Apr 2001, Marc SCHAEFER wrote: > Do people with a C or B permit automatically get an AHV/AVS number ? They are obliged to, but they have to make the demand. > To my knowledge the A permit was cancelled, and if what preceedes is > right, only people being able to legally work here would have an > AHV/AVS number. The people working at the UN and the diplomatic missions do not require this stuff. Neither do temporary foreign consultants, I believe. > Of course I can see cases where people wouldn't, still, such as a > virtual company with subcompanies in the whole world. Or simply a multinational company. > But this is becoming off-topic. Yes, so I will just explain the reason why I am being so argumentitive and then stop. I promise. :-) Here goes: * I am a Canadian citizen with a C permit married to a Swiss woman. * My mother is Canadian, but my father (ethnically Danish) comes from Germany. * I live in Switzerland in the canton of Vaud, but I find it more convient to read stuff in English, not French, and certainly not German. * Almost all of the computer keyboards that one finds on the market in this country have a local QWERTZ layout that include accented characters which are useful for rapidly typing proper names, even if one is normally typing in English. But punctuation characters require the ALT-GR modifier to be used. :-( * My name is Erik, not Eric. * I live on a street with an unusually long name. * My income for the last three years varies between CHF0 per month and CHF25000 per month. I have been paid in CHF and Canadian dollars. * I am a fanatical believer in ISO-8601. Now, try to design an accounting system that is flexible enough that none of the above facts cause an exception to a rule buried deep in software. Gilbert and Alex mentioned that some of the previous accounting projects have died because each participant was concerned about incorporating support for their own local variations of methods of doing business. This would not have posed a problem if the systems had been designed from the start to be sufficiently general and modular. We probably won't get the design right the first time, but at least we can avoid really grave errors such as using two-character keys or national government numbers as primary indices for important tables. OK, I'm done. For Denis: In Canada and the USA, it is (theoretically) illegal to use Social Insurance Numbers for anything other than tax collection purposes. Since citizens are required by law to have such a number, it makes a tempting method for database designers to track people across databases. The wide-spread use of SINs also make life easy for identity thieves. Any country concerned about the privacy of its citizens will make the use of such numbers illegal except for government purposes. Erik Rossen ^ rossen at freesurf.ch /e\ http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE61/NSY88aPik10LkRApaiAKClIDn2MLN0EsUMsZRtFr7SlxUFTwCgic4M VpRSxI3qAU/mazsqVbX3ugE= =FjE0 -----END PGP SIGNATURE----- From schaefer at alphanet.ch Sat Apr 14 12:14:04 2001 From: schaefer at alphanet.ch (Marc SCHAEFER) Date: Sat, 14 Apr 2001 12:14:04 +0200 (MEST) Subject: ah oui In-Reply-To: Message-ID: On Sat, 14 Apr 2001, Erik Rossen wrote: > errors such as using two-character keys or national government numbers as > primary indices for important tables. I fully support that. The system should be as generic as possible, and if people want, they can always add another locally-defined table which maps between our standard and their view (e.g. AHV number). From felix at f-hauri.ch Sat Apr 14 15:18:05 2001 From: felix at f-hauri.ch (=?ISO-8859-1?Q?F=E9lix_Hauri?=) Date: Sat, 14 Apr 2001 15:18:05 +0200 (CEST) Subject: Ach ja! In-Reply-To: Message-ID: On Thu, 5 Apr 2001, Erik Rossen wrote: > You're kidding, right? Was sagst das? S?rieux, j'ai pas compris le mot ``kidding''... Je me doute de sa signification, mais j'appr?cierai certainement deux-trois mots... Well en fait, je prend le micro pour dire que si je suis dans l'ensemble d'accord avec les propos d'Erik, je dois tout de m?me fournir un effort nettement plus important pour suivre une discution en anglais. Par ailleur, je suppose n'?tre pas le plus perdu face ? l'anglais, sur cette liste l?manique. Rapport aux disputes de formes: Je reste persuad? que petit et modulaire permettra de faire souple, et donc adaptable ? l'identit? de l'utilisateur (entreprise, expert comptable ou simple p?kin). Concernant les interfaces et la convivialit?, j'ai entendu dire que si mon interface n'est pas capable de terminer un champs tout seul (ou avec la touche de tabulation, fa?on shell), il ne pourra pas faire beaucoup d'adeptes. Pour cela, il faut que chaque champs soit remplis en fonction de mots de ``dictionnaires'', qui selon moi devraient ?tres des tables, judicieusement index?es, voire de tables suppl?mentaires ? vocation de biblioth?ques de mots... Me suis amus? avec DIA, peux vous le faire voire en moins de 10K, appr?cierai tous commentaires. -- F?lix Hauri - - http://www.f-hauri.ch -------------- next part -------------- A non-text attachment was scrubbed... Name: tables.dia.gz Type: application/octet-stream Size: 2798 bytes Desc: tables en xml URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: tables.ps.gz Type: application/octet-stream Size: 4708 bytes Desc: tables en postscript URL: From rossen at freesurf.ch Sat Apr 14 21:04:45 2001 From: rossen at freesurf.ch (Erik Rossen) Date: Sat, 14 Apr 2001 21:04:45 +0200 (CEST) Subject: Ach ja! In-Reply-To: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, 14 Apr 2001, F?lix Hauri wrote: > On Thu, 5 Apr 2001, Erik Rossen wrote: > > > You're kidding, right? > Was sagst das? Tu plaisantes, ouais? > Well en fait, je prend le micro pour dire que si je suis dans l'ensemble > d'accord avec les propos d'Erik, je dois tout de m?me fournir un effort > nettement plus important pour suivre une discution en anglais. D?sol?. > Par ailleur, je suppose n'?tre pas le plus perdu face ? l'anglais, sur > cette liste l?manique. Je suppose que par la fin de ce projet, vous comprendrez tous l'anglais. > Concernant les interfaces et la convivialit?, j'ai entendu dire que si mon > interface n'est pas capable de terminer un champs tout seul (ou avec > la touche de tabulation, fa?on shell), il ne pourra pas faire beaucoup > d'adeptes. Juste, mais n'oublies pas qu'il faut maintenir une tr?s bonne s?paration entre les logiciels moteur et les front-ends. > Me suis amus? avec DIA, peux vous le faire voire en moins de 10K, > appr?cierai tous commentaires. C'est joli, ton sch?ma en DIA, mais pourquoi tous ces "NOT NULL"s? Tu n'arrives pas d'imaginer des cas valable ou ces valeurs ne sont pas d?finis? (Ouais, je sais que j'ai promis de ne plus continuer d'insister sur la flexibilit?. J'ai menti. :-) Je te donne un exemple: Notre adresse: GULL - Groupe des Utilisateurs Linux du L?man Case postale CH-1211 Gen?ve 11 Il ne faut pas oublier le "11" apr?s "Gen?ve" ou le courrier est perdu! Erik Rossen ^ rossen at freesurf.ch /e\ http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE62J9XY88aPik10LkRAhYtAJwIxQtWjveJyGMGPMLDRAXgml9epACg25Pz hMjBrXRYnpw3rEmed2IcV5Y= =+zL0 -----END PGP SIGNATURE----- From felix at f-hauri.ch Sun Apr 15 14:00:20 2001 From: felix at f-hauri.ch (=?ISO-8859-1?Q?F=E9lix_Hauri?=) Date: Sun, 15 Apr 2001 14:00:20 +0200 (CEST) Subject: Ach ja! In-Reply-To: Message-ID: On Sat, 14 Apr 2001, Erik Rossen wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On Sat, 14 Apr 2001, F?lix Hauri wrote: > > > On Thu, 5 Apr 2001, Erik Rossen wrote: > > > > > You're kidding, right? > > Was sagst das? > > Tu plaisantes, ouais? Merci! Je vais en profiter pour approfondir: S'agit-il d'un verbe? > > Par ailleurs, je suppose n'?tre pas le plus perdu face ? l'anglais, sur > > cette liste l?manique. > Je suppose que par la fin de ce projet, vous comprendrez tous l'anglais. J'y compte;) > > Concernant les interfaces et la convivialit?, j'ai entendu dire que si mon > > interface n'est pas capable de terminer un champs tout seul (ou avec > > la touche de tabulation, fa?on shell), il ne pourra pas faire beaucoup > > d'adeptes. > Juste, mais n'oublies pas qu'il faut maintenir une tr?s bonne s?paration > entre les logiciels moteur et les front-ends. Bien s?r! Je pense plut?t mettre en place une s?rie de routines permettant de dialoguer avec la base, de mani?re correcte, pour ensuite les faire g?rer par DES guis en fonction DES syst?mes sur lesquels ou voudra les exploiter. Il faut, je pense, cr?er une interface compatible M$ pour s?duire une clientelle ``standard'' et si possible, une interface Macintosh pour bien faire. En fait, je vois assez la chose comme un ``serveur de comptabilit?'', ? interfacer avec un maximum d'autres applications... Donc ? s?curiser, afin de permettre la r?utilisation des donn?es par un maximum de services tiers (non autoris?s ? consulter la compta), > > Me suis amus? avec DIA, peux vous le faire voire en moins de 10K, > > appr?cierai tous commentaires. > > C'est joli, ton sch?ma en DIA, mais pourquoi tous ces "NOT NULL"s? Tu > n'arrives pas d'imaginer des cas valable ou ces valeurs ne sont pas > d?finis? (Ouais, je sais que j'ai promis de ne plus continuer d'insister > sur la flexibilit?. J'ai menti. :-) Tu as enti?rement raison, j'avoue avoir r?flechi un peu court. > Je te donne un exemple: Volontiers, > Notre adresse: > > GULL - Groupe des Utilisateurs Linux du L?man > Case postale > CH-1211 Gen?ve 11 Oups;)) > > Il ne faut pas oublier le "11" apr?s "Gen?ve" ou le courrier est perdu! Le champ ``adresse postale'', j'avais pr?vu qu'il puisse ?tre nul, mais je n'ai pas pens? qu'une entit? puisse ne pas avoir d'adresse. Par ailleurs, je n'ai pas cherch? ? afiner autour de l'adresse postale. Il doit y avoir quelque chose de simple ? trouver pour ce probl?me de composition de l'adresse postale: - Une entr?e n'a lieu d'exister que si l'on peut la contacter de mani?re formelle, soit par courier. - Une adresse personnelle est constitu?e d'un nom de rue, place, lieux ou autre et souvent d'un num?ro parfois suivit d'un indice: exemples: ``62ter, rue du XXI D?cembre'' ou plus court: ``Les Ormeaux''. - Une adresse postale est compos?e de l'occurence ``case postale'' D?s lors, le lieu postal sera remplac? par le canton en toutes lettres, suivi d'un num?ro qui correspond ? l'office de poste charg? de conserver le courier??? - Pour acheminer un courier, au moins l'une des deux doit figurer. - Un lieu postal est n?cessaire, de type: Abrev_pays-Numero_postal Lieux(Canton), exemple: CH-1450 Ste-Croix(VD) Bien entendu, je sais cela valable pour la Suisse, je ne connais pas, si elles existent, les normes internationales ? ce propos. Je r?alise soudain que je n'ai jamais demand? un formel ? mon office de poste! Il doit exister quelque chose qui puisse servir de base de travail, plus ou moins officielle... > Erik Rossen ^ > rossen at freesurf.ch /e\ > http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.0.4 (GNU/Linux) > Comment: Made with pgp4pine > > iD8DBQE62J9XY88aPik10LkRAhYtAJwIxQtWjveJyGMGPMLDRAXgml9epACg25Pz > hMjBrXRYnpw3rEmed2IcV5Y= > =+zL0 > -----END PGP SIGNATURE----- > > > -- F?lix Hauri - - http://www.f-hauri.ch From dbucher at horus.ch Tue Apr 17 13:19:05 2001 From: dbucher at horus.ch (Denis Bucher) Date: Tue, 17 Apr 2001 13:19:05 +0200 Subject: ah oui In-Reply-To: References: Message-ID: <5.0.2.1.0.20010417131600.02f05530@mail.horus.ch> At 14.04.01 08'50, you wrote: >Hello ! > > Do people with a C or B permit automatically get an AHV/AVS number ? > >They are obliged to, but they have to make the demand. > > > To my knowledge the A permit was cancelled, and if what preceedes is > > right, only people being able to legally work here would have an > > AHV/AVS number. > >The people working at the UN and the diplomatic missions do not require >this stuff. Neither do temporary foreign consultants, I believe. But in this case, they aren't employees ;-) > > Of course I can see cases where people wouldn't, still, such as a > > virtual company with subcompanies in the whole world. > >Or simply a multinational company. I'm not quite sure : A company cannot be 'multinational', there must be a legal existence in each country where there are employees... > > But this is becoming off-topic. > >Yes, so I will just explain the reason why I am being so argumentitive and >then stop. I promise. :-) ;-))) >For Denis: In Canada and the USA, it is (theoretically) illegal to use >Social Insurance Numbers for anything other than tax collection purposes. >Since citizens are required by law to have such a number, it makes a >tempting method for database designers to track people across databases. Hmm ok... >The wide-spread use of SINs also make life easy for identity thieves. >Any country concerned about the privacy of its citizens will make the use >of such numbers illegal except for government purposes. ok... Denis -- Denis Bucher, / info at horus.ch T?l. +41-22-8000625 \ Internet Horus Networks / horus-networks.com Fax: +41-22-8000622 \ Services / USA: (206) 888-2335 US Fax: (508) 437-1261 \ Provider From schutz at mathgen.ch Wed Apr 18 03:02:29 2001 From: schutz at mathgen.ch (Frederic Schutz) Date: Wed, 18 Apr 2001 11:02:29 +1000 Subject: AVS/AHV In-Reply-To: References: Message-ID: Je fais une r?ponse globale ? tous les messages sur le sujet (?a limite le hors-sujet...). A propos des num?ros AVS, j'ai ?crit un petit programme en C qui v?rifie si la cl? (modulo 11) d'un num?ro AVS et correct, et qui montre tout ce qu'on peut conna?tre d'un tel num?ro. Si ?a vous int?resse, j'en ai fait un cgi-bin qu'on peut appeler depuis http://www.mathgen.ch/codes/checkavs.html Dites si par hasard ?a ne marche pas avec votre num?ro AVS. Il n'y a pas encore de v?rification sur la validit? des dates ou de certains chiffres du num?ro. Les sources (ainsi que la documentation que j'ai utilis?e) sont disponible sur demande; elles sont encore trop horribles pour les diffuser ? tout va :-) >> Do people with a C or B permit automatically get an AHV/AVS number ? >They are obliged to, but they have to make the demand. >> To my knowledge the A permit was cancelled, and if what preceedes is >> right, only people being able to legally work here would have an >> AHV/AVS number. >The people working at the UN and the diplomatic missions do not require >this stuff. Neither do temporary foreign consultants, I believe. Seules les personnes qui sont tenues de cotiser ? l'AVS/AI/APG, ou qui en re?oivent des prestations sont oblig?es d'avoir un n? AVS, cf http://www.admin.ch/ch/f/rs/831_10/a92a.html. Ca comprend pas mal d'exceptions, par exemple les employ?s de moins de 18 ans tels que les apprentis (AVS pas obligatoire) ou les personnes qui gagnent moins de 2000.- par ann?e (p.ex. une femme (ou homme...) au foyer qui n'aurait jamais travaill? et qui ferait un petit travail accessoire). On peut donc facilement imaginer des employ?s sans num?ro AVS. >* My name is Erik, not Eric. I know what you mean: do you have an idea how I could tell the Aussies that my first name is spelled the way it is and not Frederick ? :-) >For Denis: In Canada and the USA, it is (theoretically) illegal to use >Social Insurance Numbers for anything other than tax collection purposes. >Since citizens are required by law to have such a number, it makes a >tempting method for database designers to track people across databases. >The wide-spread use of SINs also make life easy for identity thieves. >Any country concerned about the privacy of its citizens will make the use >of such numbers illegal except for government purposes. A very interesting book on this subject: "Database nation : The Death of Privacy in the 21st Century", by Simson Garfinkel (remember, he is the author of O'Reilly's "Practical Unix Security" and of another book on PGP).I have a copy of it waiting on a bookshelf, 16'000 km from me - email me if you would like to borrow it (my parents can send it). Fr?d?ric From rossen at freesurf.ch Wed Apr 18 14:31:36 2001 From: rossen at freesurf.ch (Erik Rossen) Date: Wed, 18 Apr 2001 14:31:36 +0200 (CEST) Subject: GnuCash article in Linux Journal Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Just a bit of break from preparations for COMPUTER-expo 2001. There is an 4-page introduction to GnuCash in the April 2001 issue of the Linux Journal. The first part is a tutorial that I will not repeat here, but the last part talks about the future direction of GnuCash: - -------------------------------------------------------------------------- Further improvements to GnuCash's personal accounting abilites are planned in the long term. Some of these include: * Improvements to on-line stock quote gathering and currency quotes. * Interfacing to on-line banking, including OFX and other standards. * Interfacing to Palm PDAs. * Full documentation of the guile API to make writing extensions easy. While GnuCash's current emphasis is on personal accounting, the large number of requests for business accounting functionality we receive on the mailing list are not being ignored. GnuCash will form the basis of a full-featured, mulituser accounting package with a database engine, CORBA bindings, and support for payroll, inventory, invoicing and the other features that larger businesses require from accounting systems. Gnumatic will be in the forefront of this, offering its services to customize and support GnuCash or specific customers, industries and countries. - -------------------------------------------------------------------------- Interesting, no? Erik Rossen ^ rossen at freesurf.ch /e\ http://www.multimania.com/rossen --- GPG key ID: 2935D0B9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: Made with pgp4pine iD8DBQE63YkwY88aPik10LkRArFMAJ0ZyiAmy62SmVl+XHMjzmmCuoku9gCeICQU aJ2thIjJkHM0na96ZGWk7mw= =TgAS -----END PGP SIGNATURE----- From yann at gauteron.ch Thu Apr 26 22:11:08 2001 From: yann at gauteron.ch (Yann GAUTERON) Date: Thu, 26 Apr 2001 22:11:08 +0200 (CEST) Subject: Quelques indices pour payCreator Message-ID: Hello, Voici en attache un fichier contenant un debut d'ebauche pour la librairie payCreator de creation de paiements electroniques. Vous remarquerez que la conception est tres fortement inspiree de la COO (conception orientee objet) au niveau des structures et methodes. (Naturellement, pas d'heritages, de surcharge et tout le toutim afin de pouvoir le coder en C et d'etre reutilisable dans divers projets, comme Compta). Ces interfaces decrivent: * le numero de compte postal * le numero de reference pour BVR * l'adresse * le BVR manquent: * Le bulletin de versement "simple" (rose ou vert). Y-a-t-il un nom "scientifique" pour ces types de paiements (BVR pour les bleus). * L'ordre de paiement electronique (ensemble de paiements BVR et bulletins roses avec compte a debiter + date de retrait). * Compte a debiter (postal et banquaire) * Un concept pour la conversion vers DTA / OPAE... J'attends donc impatiemment vos remarques, questions et suggestions concernant les "classes" deja proposees. Par ailleurs, des questions sont posees dans le document. Toutes les reponses sont les bienvenues. Yann -------------- next part -------------- payCreator (the Core library) ============================= panb: Postal Account Number structure and functions ====---------------------------------------------- panb_t: Structure (hidden to the library user) panb_p: Pointer to the pan_t structure panb_p panb_new(char *str) - Create a new "instance" of a panb_t "class". *str (the referenced value not the pointer itself) will be stored in the structure as the postal account number. Return NULL if an error occured. int panb_free(panb_p panb) - Free the ressources allocated to the structure. The return value will indicate what kind of error occured. panb_p panb_copy(panb_p panb) - Create a copy of the panb "instance" and return the pointer to the new "instance". int panb_setNumber(panb_p panb, char *str) - Set a new value for the postal account number in panb. *str (the referenced value not the pointer itself) will be stored in pnb as the postal account number. Return an error value if parameter is not correct (validation - see below - is not checked) or if malloc failed). The return value will indicate what kind of error occured. *char panb_getNumber(panb_p panb) - Return a "usual format" copy of the stored postal account number. The format is "XX-xxxxxX-X" (9 positions account number) or "XXXXX" (5 positions account number). Return NULL if an error occured or no value is stored in panb. *char panb_getRawNumber(panb_p panb) - Return a "computer format" copy of the postal account number in panb. The format is "XXXXXXXXX" (9 positions account number) or "XXXXX" (5 positions account number). This format is used for any processing or storing requirements. Return NULL if an error occured or no value is stored in panb. int panb_isValid(panb_p panb) - Check if the stored value is correct or not. The 2 first digits in 9 positions account number are checked to be valid (I still miss the valid range: 01 = BVR CHF, 03 = BVR EUR, the remaining - 00, 02, 04-99 - are they all valids ?) and key checksum is computed and compared with the account number key digit). Return TRUE if it is valid, FALSE else. int panb_isKeyValid(panb_p panb) - Check if the key of the stored value is valid or not. Return TRUE if it is valid, FALSE else. int panb_isPrefixValid(panb_p panb) - Check if the "prefix" (exact name has to be found for the 2 first digits) is valid or not (see above). Return TRUE if it is valid, FALSE else. char panb_computeKey(panb_p panb) - Compute the key of the postal account number stored in panb. The postal account number is not modified with this value! Return '0'...'9' for the key value, 0 if an error occured. char panb_setKey(panb_p panb) - Compute and set the key of the postal account number stored in panb. Return '0'...'9' for the key value, 0 if an error occured. // other still not defined functions (account type information (BVR in CHF, // BVR in EUR, other type). Question about panb_new: Should panb_new accept an initialization value or not ? Advantage of doing so: It's possible to create an "instance" of the "class" and to set up an initial value in one step. Disadvantage: Contrary to panb_setNumber, the return value can not inform the calling function if the parameter is correct or not. Example: panb_p panb; ... if(!(panb = panb_new("Once upon a time..."))) { // ERROR but we are not warned // except if the "main" malloc // failed and if the return value // egals NULL. if(!panb_setNumber("Once upon a time, again...")) { // ERROR, the parameter is invalid // and the return value warn us. // We can also catch with other // values malloc failures. } ... } Question about panb_getXXXNumber: Do these functions return a pointer to a field inside the structure or do they return a pointer to a copy of this field ? First case is better if we would like to use the return value only once as a parameter of a function. Else we need to store the value in a temporary pointer and we will need to free the memory right after the function call. Second case is better if we want to access this value after the fields in the structure have been changed (but it's still possible to do a strcpy for getting the same result). Case 1) Advantage: panb_p panb; char *result; ... panb = panb_new("20-36934-3"); // Now, panb contains "20-36934-3" result = panb_getNumber(panb); // result points to a copy of // "20-36934-3" ... panb_setNumber(panb, "01-123456-1"); // Now, panb contains "01-123456-1" printf("'result' value: %c\n", result); // result still points to a copy of // "20-36934-3" Disadvantage: panb_p panb; char *tmp; ... panb = panb_new("20-36934-3"); printf("Postal account number: %c\n", panb_getNumber(panb)); // ERROR: Memory allocated for the // copy will not be freed. printf("Postal account number: %c\n", tmp = panb_getNumber(panb)); free(tmp); // Right way, but need two step for // a single thing. Case 2) Advantage: panb_p panb; ... printf("Postal account number: %c\n", panb_getNumber(panb)); // Correct. A pointer to a string in // the structure is given. // No memory should be freed. Disadvantage: panb_p panb; char *result1; char *result2; ... panb = panb_new("20-36934-3"); // panb contains "20-36934-3" result1 = panb_getResult(panb); // result points to the structure // field filled with "20-36934-3" result2 = strcpy(panb_getResult(panb)); // Copy of the field inside the // structure. ... panb_setNumber(panb, "01-123456-1"); // panb contains now "01-123456-1" printf("'result1' value: %c\n", result1); // result1 still points to the field // in the structure ("01-123456-1") printf("'result2' value: %c\n", result2); // result2 still points to the copy // of the previous value of the field // in the structure ("20-36934-3") // Conclusion: To get the same result of the 1st case, we need to // strcpy the return value of the function. My question is: * Which case (1st or 2nd) is better ? The goal is to reuse the existing habits in order to avoid programming errors from the library user. refnb: Reference number used in BVR =====------------------------------ refnb_t: Structure (hidden to the library user) refnb_p: Pointer to the bvr_t structure refnb_p refnb_new(char *str) - Create a new "instance" of a refnb_t "class". *str (the referenced value not the pointer itself) will be stored in the structure as the reference number. int refnb_free(refnb_p refnb) - Free the ressources allocated to the structure. The return value will indicate what kind of error occured. refnb_p refnb_copy(refnb_p refnb) - Create a copy of the refnb "instance" and return the pointer to the new "instance". int refnb_setNumber(refnb_p refnb, char *str) - Set a new value for the reference number in refnb. *str (the referenced value not the pointer itself) will be stored in refnb as the reference number. Return an error value. 0 if no error occured. *char refnb_getNumber(refnb_p refnb) - Return a "usual format" copy of the stored reference number. The digits are grouped 5 by 5. No leading zero is inserted. Return NULL if an error occured or no value is stored in refnb. *char refnb_getRawNumber(refnb_p refnb) - Return a "computer format" copy of the referenc number in refnb. The digits are viewed in one group (no space inserted each 5 digits). No leading zero is inserted. Return NULL if an error occured or no value is stored in refnb. int refnb_isKeyValid(refnb_p refnb) - Check if the key of the stored value is valid or not. Return TRUE if it is valid, FALSE else. char refnb_computeKey(refnb_p refnb) - Compute the key of the reference number stored in refnb. The reference number is not modified with this value! Return '0'...'9' for the key value, 0 if an error occured. char refnb_setKey(refnb_p refnb) - Compute and set the key of the reference number stored in refnb. Return '0'...'9' for the key value, 0 if an error occured. address: Postal address =======---------------- address_t: Structure (hidden to the library user) address_p: Pointer to the address_t structure address_p address_new(char *str) - Create a new "instance" of a address_t "class". *str (the referenced value not the pointer itself) will be stored in the structure as the address. The first line (after removing the leading empty lines) will be saved as the name (last and first or company) The last line (after removing the queuing empty lines) will be saved as the city (zip code and city). The lines between will be saved as the address (p.o. box and/or street). Return NULL if an error occured. int address_free(address_p refnb) - Free the ressources allocated to the structure. The return value will indicate what kind of error occured. address_p address_copy(address_p panb) - Create a copy of the address "instance" and return the pointer to the new "instance". int address_setAddress(address_p address, char *str) - Set the full address *str (the referenced value not the pointer itself) will be stored in the structure address. The same remark than above apply for the different fields to be stored. Return an error value if parameter is not correct or if malloc failed. The return value will indicate what kind of error occured. int address_setName(address_p address, char *name) - Set the name in the structure address. The name can be stored on many lines (using '\n'). Return an error value if parameter is not correct or if malloc failed. int address_setStreet(address_p address, char *address) - Set the street in structure address. Return an error value if parameter is not correct or if malloc failed. int address_setCity(address_p address, char *city) - Set the city in the structure address. The city can be stored on many lines (using '\n'). Return an error value if parameter is not correct or if malloc failed. char *address_getName(address_p address) - Return the name in the address. Return the name if the function succeeds, NULL else. char *address_getStreet(address_p address) - Return the street in the address. Return the street if the function succeeds, NULL else. char *address_getCity(address_p address) - Return the city in the address. Return the city if the function succeeds, NULL else. Same question as "panb" for the "address_getXXXXX(...)" functions. bvr: BVR payement slip ===------------------- bvr_t: Structure (hidden to the library user) will contain: int paydisc; // Payement discriminator (BVR = 1) panb_p rcptpanb; // Recipient postal account number refnb_p refnb; // Reference number char *amount; // Amount of the payement char currency[4]; // Currency of the payment (CHF, EUR, ...) // (ISO ???) address_p rcptaddress; // Recipient address bvr_p: Pointer to the bvr_t structure bvr_p bvr_new() - Create a new "instance" of the "class" bvr. Return NULL if an error occured. int bvr_setRcptPan(bvr_p bvr, panb_p rcptpanb) - Copy the recipient given as in the structure. int bvr_setRefNb(bvr_p bvr, refnb_p refnb) - Copy the reference number as in the structure. int bvr_setRcptAddress(bvr_p bvr, address_p rcptaddress) - Copy the address in the structure. int bvr_setCurrency(bvr_p bvr, char *currency) - Copy the currency in the structure. int bvr_setAmount(bvr_p bvr, char *amount) - Copy the amount in the structure. panb_p bvr_getRcptPan(bvr_p bvr) - Return the recipient postal account number. refnb_p bvr_getRefNb(bvr_p bvr) - Return the reference number. char *bvr_getAmount(bvr_p bvr) - Return the amount. char *bvr_getCurrency(bvr_p bvr) - Return the currency. Same question for "bvr_getXXXX()" functions.