using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using MercatorUi;
using MercatorApi;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer, MercatorUi.ICustomizers.IStringUpdater, MercatorUi.ICustomizers.ISqlCommandUpdater
{
public string StringUpdate(string StringToModify)
{
if (Api.StrExtract(StringToModify, "<ID>", "</ID>") == "STOCKDISPO")
{
StringToModify = StringToModify.Replace("dispo.qa_3,", "dispo.qa_3,dispo.stocksai,")
.Replace("sum(qa_3),", "sum(qa_3),sum(stocksai),");
}
return StringToModify;
}
public void FormLoadCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm SigForm = (MercatorUi.Forms.Sig.SigForm)form;
List<Control> controls = SigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.StockDispo));
if (controls.Count > 0)
{
MercatorUi.MovableControls.MovableGrid GridDispo = (MercatorUi.MovableControls.MovableGrid)controls[0];
GridDispo.AfterColumnsCreated += new MercatorUi.MovableControls.MovableGrid.AfterColumnsCreatedHandler(GridDispo_AfterColumnsCreated);
}
}
public void FormClosedCustomize(Form form)
{
MercatorUi.Forms.Sig.SigForm SigForm = (MercatorUi.Forms.Sig.SigForm)form;
List<Control> controls = SigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.StockDispo));
if (controls.Count > 0)
{
MercatorUi.MovableControls.MovableGrid GridDispo = (MercatorUi.MovableControls.MovableGrid)controls[0];
GridDispo.AfterColumnsCreated -= new MercatorUi.MovableControls.MovableGrid.AfterColumnsCreatedHandler(GridDispo_AfterColumnsCreated);
}
}
void GridDispo_AfterColumnsCreated(object sender, EventArgs e)
{
MercatorUi.MovableControls.MovableGrid GridDispo = (MercatorUi.MovableControls.MovableGrid)sender;
MercatorUi.GridPro.DataGridViewDoubleTextBoxColumn c = new MercatorUi.GridPro.DataGridViewDoubleTextBoxColumn();
c.Name = "stocksai";
c.HeaderText = "+ Saison";
c.Width = Api.ValSafeInt(Globals.Params["LARG_DISP2"]);
c.DisplayFormat = Globals.PictQ;
c.DataPropertyName = "stocksai";
c.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
c.Increment = 0;
GridDispo.Grid.Columns.Add(c);
GridDispo.Grid.CellValidated += new DataGridViewCellEventHandler(grid_CellValidated);
GridDispo.Grid.CellEnter += new DataGridViewCellEventHandler(grid_CellEnter);
}
void grid_CellValidated(object sender, DataGridViewCellEventArgs e) // Bereken het totaal van
de STOCKSAI kolom
{
MercatorUi.GridPro.DataGridViewXPro _grid = (MercatorUi.GridPro.DataGridViewXPro)sender;
if (((e.ColumnIndex > -1) && (_grid.Columns[e.ColumnIndex].Name == "stocksai")) && (!((_grid.Rows[e.RowIndex].Cells["id"].Value != DBNull.Value) && (_grid.Rows[e.RowIndex].Cells["id"].Value.ToString().TrimEnd() == ""))) && (_grid.RowCount > 1))
{
DataTable dt = (DataTable)_grid.DataSource;
DataRow[] foundRowsTotal = dt.Select("ID = ''");
if (foundRowsTotal.Length == 0)
return;
foundRowsTotal[0][_grid.Columns[e.ColumnIndex].Name] = dt.Compute("Sum(stocksai)", "ID <> ''");
}
}
void grid_CellEnter(object sender, DataGridViewCellEventArgs e) // Zet de cel "Totaal" op read-only in de STOCKSAI kolom
{
MercatorUi.GridPro.DataGridViewXPro _grid = (MercatorUi.GridPro.DataGridViewXPro)sender;
MercatorUi.MovableControls.MovableGrid GridDispo = (MercatorUi.MovableControls.MovableGrid)_grid.Parent;
if ((e.ColumnIndex > -1) && (_grid.Columns[e.ColumnIndex].Name == "stocksai"))
{
if ((_grid.RowCount > 1) && (_grid.Rows[e.RowIndex].Cells["id"].Value != DBNull.Value) && (_grid.Rows[e.RowIndex].Cells["id"].Value.ToString().TrimEnd() == ""))
_grid.Columns[e.ColumnIndex].ReadOnly = true;
else
_grid.Columns[e.ColumnIndex].ReadOnly = GridDispo.ReadOnly;
}
}
public void SqlCommandUpdate(System.Data.SqlClient.SqlCommand SqlCommandToModify, Form WindowsForm)
{
string id = Api.StrExtract(SqlCommandToModify.CommandText, "<ID>", "</ID>");
if (id == "UPDATESTOCKDISPO") // Deze SQLCommand wordt uitgevoerd op alle lijnen buiten de Totaal lijn
{
MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)WindowsForm;
MercatorUi.MovableControls.MovableGrid GridDispo = (MercatorUi.MovableControls.MovableGrid)sigForm.FindMovableControlsByType(typeof(MercatorUi.Forms.Sig.SigGrids.StockDispo))[0];
if (!SqlCommandToModify.CommandText.Contains("@stocksai"))
SqlCommandToModify.CommandText = SqlCommandToModify.CommandText.Replace(",stockmax=@stockmax", ",stockmax=@stockmax,stocksai=@stocksai");
string id_magasin = SqlCommandToModify.Parameters["@id_magasin"].Value.ToString();
DataRow[] foundRows = ((DataTable)GridDispo.Grid.DataSource).Select(string.Format("id='{0}'", Api.UnquoteSql(id_magasin)));
SqlCommandToModify.Parameters.AddWithValue("@stocksai", foundRows[0]["stocksai"]);
}
}
}
}