Skip to content
Snippets Groups Projects
Commit 00814ed8 authored by Verin Antoine's avatar Verin Antoine
Browse files

Merge branch '20-integration-menudepenses' into 'master'

Resolve "Intégration MenuDepenses"

Closes #20

See merge request !38
parents 7bba15fd 10202e3c
Branches
1 merge request!38Resolve "Intégration MenuDepenses"
......@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Globalization;
using System.Windows.Forms;
namespace Mango
{
......@@ -152,5 +153,56 @@ namespace Mango
return Filter("Depenses", "numDepense IN (" + codes + ") AND codeEvent = " + eventId);
}
/// <summary>
/// Retourne les bénéficiaires d'une dépense
/// </summary>
/// <param name="depenseId">L'id de la dépense</param>
/// <returns>Les bénéficiaires</returns>
public DataTable GetBeneficiaires(int depenseId)
{
DataTable table = Filter("Beneficiaires", "numDepense = " + depenseId);
bool first = true;
string codes = "";
foreach (DataRow row in table.Rows)
{
if (!first) codes += ", ";
else first = false;
codes += row["codePart"];
}
return Filter("Participants", "codeParticipant IN (" + codes + ")");
}
/// <summary>
/// Retourne les participants n'ayant pas bénéficiés d'une dépense
/// </summary>
/// <param name="depenseId">L'id de la dépense</param>
/// <returns>Les non bénéficiaires</returns>
public DataTable GetNonBeneficiaires(int depenseId, int eventId)
{
DataTable benefs = Filter("Beneficiaires", "numDepense = " + depenseId);
bool first = true;
string codes = "";
foreach (DataRow row in benefs.Rows)
{
if (!first) codes += ", ";
else first = false;
codes += row["codePart"];
}
DataTable invites = Filter("Invites", "codeEvent = " + eventId);
first = true;
string codes2 = "";
foreach (DataRow row in invites.Rows)
{
if (!first) codes2 += ", ";
else first = false;
codes2 += row["codePart"];
}
return Filter("Participants", "codeParticipant NOT IN (" + codes +
") AND codeParticipant IN (" + codes2 + ")");
}
}
}
\ No newline at end of file
......@@ -38,7 +38,7 @@ namespace Mango.Controls.Menu
private void btnContinuer_Click(object sender, EventArgs e)
{
FrmMain.GetInstance().ShowMenu(new MenuNouvelleDepense(cboSelectEvent.SelectedIndex));
FrmMain.GetInstance().ShowMenu(new MenuNouvelleDepense((int) cboSelectEvent.SelectedValue));
}
}
}
......@@ -36,7 +36,6 @@ namespace Mango.Controls.Menu
this.lblParticipant = new System.Windows.Forms.Label();
this.lboDepenses = new System.Windows.Forms.ListBox();
this.btnNouvelleDep = new System.Windows.Forms.Button();
this.btnSupprDep = new System.Windows.Forms.Button();
this.btnAjouter = new System.Windows.Forms.Button();
this.cboAddBeneficiaire = new System.Windows.Forms.ComboBox();
this.lblAddBeneficiaire = new System.Windows.Forms.Label();
......@@ -78,6 +77,7 @@ namespace Mango.Controls.Menu
this.cboEvenement.Name = "cboEvenement";
this.cboEvenement.Size = new System.Drawing.Size(352, 26);
this.cboEvenement.TabIndex = 3;
this.cboEvenement.SelectionChangeCommitted += new System.EventHandler(this.cboEvenement_SelectionChangeCommitted);
//
// cboParticipant
//
......@@ -89,6 +89,7 @@ namespace Mango.Controls.Menu
this.cboParticipant.Name = "cboParticipant";
this.cboParticipant.Size = new System.Drawing.Size(352, 26);
this.cboParticipant.TabIndex = 5;
this.cboParticipant.SelectionChangeCommitted += new System.EventHandler(this.cboParticipant_SelectionChangeCommitted);
//
// lblParticipant
//
......@@ -113,6 +114,7 @@ namespace Mango.Controls.Menu
this.lboDepenses.ScrollAlwaysVisible = true;
this.lboDepenses.Size = new System.Drawing.Size(196, 252);
this.lboDepenses.TabIndex = 6;
this.lboDepenses.Click += new System.EventHandler(this.lboDepenses_Click);
//
// btnNouvelleDep
//
......@@ -127,20 +129,7 @@ namespace Mango.Controls.Menu
this.btnNouvelleDep.TabIndex = 15;
this.btnNouvelleDep.Text = "Nouvelle dépense...";
this.btnNouvelleDep.UseVisualStyleBackColor = false;
//
// btnSupprDep
//
this.btnSupprDep.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(179)))), ((int)(((byte)(60)))));
this.btnSupprDep.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSupprDep.FlatAppearance.BorderSize = 0;
this.btnSupprDep.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSupprDep.Font = new System.Drawing.Font("Bahnschrift", 15F);
this.btnSupprDep.Location = new System.Drawing.Point(189, 458);
this.btnSupprDep.Name = "btnSupprDep";
this.btnSupprDep.Size = new System.Drawing.Size(145, 56);
this.btnSupprDep.TabIndex = 16;
this.btnSupprDep.Text = "Supprimer cette dépense";
this.btnSupprDep.UseVisualStyleBackColor = false;
this.btnNouvelleDep.Click += new System.EventHandler(this.btnNouvelleDep_Click);
//
// btnAjouter
//
......@@ -155,6 +144,7 @@ namespace Mango.Controls.Menu
this.btnAjouter.TabIndex = 17;
this.btnAjouter.Text = "Ajouter";
this.btnAjouter.UseVisualStyleBackColor = false;
this.btnAjouter.Click += new System.EventHandler(this.btnAjouter_Click);
//
// cboAddBeneficiaire
//
......@@ -252,7 +242,6 @@ namespace Mango.Controls.Menu
this.Controls.Add(this.cboAddBeneficiaire);
this.Controls.Add(this.lblAddBeneficiaire);
this.Controls.Add(this.btnAjouter);
this.Controls.Add(this.btnSupprDep);
this.Controls.Add(this.btnNouvelleDep);
this.Controls.Add(this.lboDepenses);
this.Controls.Add(this.cboParticipant);
......@@ -263,6 +252,7 @@ namespace Mango.Controls.Menu
this.Font = new System.Drawing.Font("Bahnschrift", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "MenuDepenses";
this.Size = new System.Drawing.Size(812, 536);
this.Load += new System.EventHandler(this.MenuDepenses_Load);
this.ResumeLayout(false);
this.PerformLayout();
......@@ -277,7 +267,6 @@ namespace Mango.Controls.Menu
private System.Windows.Forms.Label lblParticipant;
private System.Windows.Forms.ListBox lboDepenses;
private System.Windows.Forms.Button btnNouvelleDep;
private System.Windows.Forms.Button btnSupprDep;
private System.Windows.Forms.Button btnAjouter;
private System.Windows.Forms.ComboBox cboAddBeneficiaire;
private System.Windows.Forms.Label lblAddBeneficiaire;
......
......@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
......@@ -12,9 +13,137 @@ namespace Mango.Controls.Menu
{
public partial class MenuDepenses : UserControl
{
private ConnectionManager _connection = ConnectionManager.GetInstance();
private DataSet _data;
public MenuDepenses()
{
InitializeComponent();
_data = _connection.DataSet;
}
private void MenuDepenses_Load(object sender, EventArgs e)
{
cboEvenement.DataSource = _data.Tables["Evenements"].Copy();
cboEvenement.DisplayMember = "titreEvent";
cboEvenement.ValueMember = "codeEvent";
UpdateEvent(1);
}
private void UpdateEvent(int eventId)
{
try
{
cboParticipant.DataSource = _connection.GetParticipants(eventId);
cboParticipant.DisplayMember = "nomComp";
cboParticipant.ValueMember = "codeParticipant";
cboParticipant.SelectedIndex = -1;
DataTable depenses = _connection.Filter("Depenses", "codeEvent = " + eventId);
lboDepenses.DataSource = depenses;
lboDepenses.DisplayMember = "description";
lboDepenses.ValueMember = "numDepense";
lboDepenses.SelectedIndex = 0;
UpdateSelectedDepense((int) depenses.Rows[0]["numDepense"]);
}
catch (ArgumentException)
{
lboDepenses.DataSource = null;
lboDepenses.Items.Add("Aucune depense");
lblProprietes.Text = "Aucune dépense";
lblCommentaire.Text = "";
lboBeneficiaires.DataSource = null;
lboBeneficiaires.Items.Clear();
}
}
private void UpdateUser(int eventId, int userId)
{
try
{
lboDepenses.DataSource = _connection.Filter("Depenses",
"codeEvent = " + eventId + " AND codePart = " + userId);
lboDepenses.DisplayMember = "description";
lboDepenses.ValueMember = "numDepense";
}
catch (ArgumentException)
{
lboDepenses.DataSource = null;
lboDepenses.Items.Add("Aucune depense");
}
}
private void UpdateSelectedDepense(int depenseId)
{
DataRow depense = _connection.Filter("Depenses", "numDepense = " + depenseId).Rows[0];
DataRow user = _connection.Filter("Participants", "codeParticipant = " + depense["codePart"]).Rows[0];
lblProprietes.Text = depense["montant"] + " € dépensés par " + user["nomComp"] + " le "
+ DateTime.Parse(depense["dateDepense"].ToString()).ToString("dd/MM/yyyy");
lblCommentaire.Text = depense["description"].ToString();
try
{
lboBeneficiaires.DataSource = _connection.GetBeneficiaires(depenseId);
lboBeneficiaires.DisplayMember = "nomComp";
lboBeneficiaires.ValueMember = "codeParticipant";
}catch(ArgumentException) { }
try
{
cboAddBeneficiaire.DataSource =
_connection.GetNonBeneficiaires(depenseId, (int) cboEvenement.SelectedValue);
cboAddBeneficiaire.DisplayMember = "nomComp";
cboAddBeneficiaire.ValueMember = "codeParticipant";
}
catch (ArgumentException)
{
cboAddBeneficiaire.DataSource = null;
cboAddBeneficiaire.SelectedIndex = -1;
}
}
private void cboEvenement_SelectionChangeCommitted(object sender, EventArgs e)
{
UpdateEvent((int) cboEvenement.SelectedValue);
}
private void cboParticipant_SelectionChangeCommitted(object sender, EventArgs e)
{
UpdateUser((int) cboEvenement.SelectedValue, (int) cboParticipant.SelectedValue);
}
private void lboDepenses_Click(object sender, EventArgs e)
{
if (lboDepenses.DataSource != null)
UpdateSelectedDepense((int) lboDepenses.SelectedValue);
}
private void btnNouvelleDep_Click(object sender, EventArgs e)
{
FrmMain.GetInstance().ShowMenu(new MenuNouvelleDepense((int) cboEvenement.SelectedValue));
}
private void btnAjouter_Click(object sender, EventArgs e)
{
try
{
Dictionary<string, object> values = new Dictionary<string, object>();
values.Add("numDepense", lboDepenses.SelectedValue);
values.Add("codePart", cboAddBeneficiaire.SelectedValue);
OleDbCommand command = _connection.InsertInto("Beneficiaires", values);
command.ExecuteNonQuery();
_connection.FetchOffline();
_data = _connection.DataSet;
UpdateSelectedDepense((int) lboBeneficiaires.SelectedValue);
}
catch (OleDbException)
{
MessageBox.Show("impossible d'ajouter le bénéficiaire ");
}
}
}
}
......@@ -20,9 +20,15 @@ namespace Mango.Controls.Menu
private readonly int _eventIndex;
public MenuNouvelleDepense(int eventIndex)
public MenuNouvelleDepense(int eventId)
{
_eventIndex = eventIndex;
DataTable events = _connection.Filter("Evenements", "NOT soldeON");
for (int i = 0; i < events.Rows.Count ; i++)
{
if ((int) events.Rows[i]["codeEvent"] == eventId)
_eventIndex = i;
}
InitializeComponent();
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment