Suivez et participez au développement du nouvel OpenCellar : PLOC.co
Home Page
 
Français  English  
Open Cellar Home Edition - 1.2 - Windows 98, Me, 2000, XP and Vista. The free Windows wine cellar management software. Open Cellar Mobile Edition - Beta 2 (French version) - Pocket PC. The free Pocket PC wine cellar management software. Open Cellar Cross Platform - Beta 1 (French version) - Mac OSX and Linux. The free MacOS/Linux wine cellar management software. My Open Cellar Open Cellar Forums Place des vins
Search: Welcome (connect - create an account )
Nuage de tags
Suivi des convives
02/10/2007
Reply
Suivi des convives
svaissie
14 posts
Si ca peut servir...
Pour le suivi des consos je crée une fiche conso avec en commentaire les personnes avec qui je la bois
Pour vérifier ce que j'ai bu avec une personne G écrit ce script (un filtre est à appliquer en cas de grosse consommation ;o))


if(App.ActiveCellar == null)
{
MessageBox.Show("Aucune cave n'est ouverte");
return;
}

TableManager manager = new TableManager(App);

manager.BeginUpdate();

DataTable table = new DataTable("Price");
table.DefaultView.AllowDelete = false;
table.CaseSensitive = false;
table.DefaultView.AllowEdit = false;
table.DefaultView.AllowNew = false;

// SysId
DataColumn col = new DataColumn("SysId", typeof(string));
col.Caption = "SysId";
table.Columns.Add(col);

// Date
col = new DataColumn("Date", typeof(string));
col.Caption = "Date Consommation";
table.Columns.Add(col);

// Nom
col = new DataColumn("Name", typeof(string));
col.Caption = "Vin";
table.Columns.Add(col);

// Millesime
col = new DataColumn("Mill", typeof(ushort));
col.Caption = "Millesime";
table.Columns.Add(col);

// Commentaire
col = new DataColumn("Comment", typeof(string));
col.Caption = "Commentaire";
table.Columns.Add(col);

table.BeginLoadData();

// Liste des vins
ObjectCollection oc = manager.Application.ActiveCellar.GetCollection((ushort)ObjectType.Wine);

for(int i = 0; i < oc.Count; i++)
{
Wine w = (Wine)oc[i];

// Fiches achats consos
for (int j = 0; j < w.Purchases.Count; j++)
{
PurchaseSales ps = (PurchaseSales)w.Purchases[j];
// Les consos sans les achats
if ((ps.ConsumeBottles!=0) && (ps.PurchaseBottles==0))

{
DataRow r = table.NewRow();
r["SysId"] = w.SystemUID;
r["Date"] = ps.Date.ToShortDateString();
r["Name"] = w.Name.Trim();
r["Mill"] = w.Year;
r["Comment"] = ps.Comment;
table.Rows.Add(r);
}
}
}

table.EndLoadData();
manager.DataSource = table;
manager.EndUpdate();

ITableWindow tableWindow = (ITableWindow)App.GetWindow(WindowType.Table, manager);
if(tableWindow != null)
{
tableWindow.Show();
}
 

02/10/2007
Reply
Re : Suivi des convives
AdministrateurView your blog
3099 posts
:-)

Je l'ajouterai au centre d'aide.

Matthieu
 

03/10/2007
Reply
Re : Suivi des convives
svaissie
14 posts
Avec plaisir le fait que les utilisateurs contribuent devrait etre un plus

Tu noteras que j'ai toujours un pb au niveau du tri des colonnes le mieux serait :
Date | Vin | Mill | Comment

Stephane
 

03/10/2007
Reply
Re : Suivi des convives
AdministrateurView your blog
3099 posts
Pour le probleme d'ordre cela vient pas de ton script mais d'OC car celui ci mémorise la taille et la position des colonnes.

Remplace la ligne suivante
DataTable table = new DataTable("Price");
Par
DataTable table = new DataTable("Price2");

Tes colonnes seront bien dans le bonne ordre.

Matthieu
 

04/10/2007
Reply
Re : Suivi des convives
Thewolf
99 posts
Bonjour et merci pour ce script.

J'ai 2 questions :

1) Qu'est-ce que SystemUID et à quoi sert-il dans ce script (il ne s'affiche pas dans le rapport) ?

2) Je ne comprends pas bien la condition :
if ((ps.ConsumeBottles!=0) && (ps.PurchaseBottles==0))
il me semble que la 1ère partie est suffisante pour s'assurer qu'il s'agit bien d'une consommation et d'autre part, si on a entré un achat et une conso dans la même fiche, on ne l'aura pas dans le rapport ...

Bonne journée.

Christian
 

04/10/2007
Reply
Re : Suivi des convives
svaissie
14 posts
Salut

Pour le SystemUID pour tout te dire je me suis inspiré du calcul du prix, le champ y était sans être utilisé le l'ai laissé.

Pour la double condition
ps.ConsumeBottles!=0 forcement pour les degustations

ps.PurchaseBottles==0 parceque quand je retrouve une vieille facture de 6 bouteilles et qu'il en reste 4 Dans la même fiche je fait l'entrée de 6 plus la conso de 2 (sans que ca corresponde à une degustation donnée)

Stéphane
 

04/10/2007
Reply
Re : Suivi des convives
Thewolf
99 posts
Merci Stéphane.

Pour le SystemUID, j'ai essayé de le supprimer du script et cela marche tout aussi bien ...
 

04/10/2007
Reply
Re : Suivi des convives
AdministrateurView your blog
3099 posts
Le SystemId est utilisé par OC sans celui ci lors du double clic sur la fenetre il ne vous ouvrira pas la fiche vin correspondante.

Matthieu
 

04/10/2007
Reply
Re : Suivi des convives
Thewolf
99 posts
Merci pour cette précision.

Christian
 

© 2006-2014 Matthieu DUCROCQ  Open Cellar official blog - All rights reserved - Last update: january 2014 | twitter