using SteamWare; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MP_ADM.WebUserControls { public partial class cmp_PODL_OUT : BaseUserControl { #region Protected Fields protected string _idxGridView; #endregion Protected Fields #region Public Fields /// /// Determina se sia solo readonly il controllo... /// public bool readOnly; #endregion Public Fields #region Public Properties /// /// CodArt filtrato /// public string CodArticolo { get { return hfCodArt.Value; } set { hfCodArt.Value = value; } } /// /// Chiave PRE selezione tipo richiesta ordine /// public string CodCliente { get { return hfCodCli.Value; } set { hfCodCli.Value = value; } } /// /// Gruppo selezionato /// public string CodGruppo { get { return hfCodGrp.Value; } set { hfCodGrp.Value = value; } } /// /// IdxMacchina filtrata /// public string IdxMacchinaFilt { get { return hfIdxMacc.Value; } set { hfIdxMacc.Value = value; } } /// /// dimensione pagina /// public int pageSize { get { int answ = 10; try { answ = Convert.ToInt32(txtPageSize.Text); } catch { } return answ; } set { txtPageSize.Text = value.ToString(); } } #endregion Public Properties #region Private Methods private void checkActions() { // calcolo visibilità (almeno 1 selezionato) bool showActions = false; foreach (GridViewRow riga in grView.Rows) { if (((CheckBox)riga.FindControl("chkSelect")).Checked && ((CheckBox)riga.FindControl("chkSelect")).Visible) { showActions = true; } if (showActions) { break; } } divActions.Visible = showActions; divMachine.Visible = showActions; } private void fixSetMachine() { ddlSelMacchina.Enabled = chkReassign.Checked; lbtReassignMachine.Visible = chkReassign.Checked; if (!chkReassign.Checked) { ddlSelMacchina.SelectedIndex = 0; } } /// /// Imposta Promesse selezionate come attivabili secondo richiesta /// /// private void setPromAttivabili(bool isAttivabile) { int IdxPromessa = 0; foreach (GridViewRow riga in grView.Rows) { if (((CheckBox)riga.FindControl("chkSelect")).Checked && ((CheckBox)riga.FindControl("chkSelect")).Visible) { int.TryParse(((Label)riga.FindControl("lblIdxPromessa")).Text, out IdxPromessa); // disattivo! DataLayerObj.taPromOut.updAttiva(IdxPromessa, isAttivabile); } } updateGrView(); } /// /// Aggiorno Gridview /// private void updateGrView() { grView.DataBind(); checkActions(); raiseNewVal(); } #endregion Private Methods #region Protected Methods /// /// reset della selezione /// /// /// protected void btnReset_Click(object sender, EventArgs e) { resetSelezione(); } /// /// seleziona/deseleziona le righe indicate... /// /// /// protected void btnSelAll_Click(object sender, EventArgs e) { // seleziono tutti i valori visibili nel datagrid CheckBox chkbox = ((CheckBox)sender); bool isChecked = chkbox.Checked; if (!isChecked) { chkbox.ToolTip = traduci("btnSelAll"); } else { chkbox.ToolTip = traduci("btnDeselAll"); } foreach (GridViewRow riga in grView.Rows) { ((CheckBox)riga.FindControl("chkSelect")).Checked = isChecked; } checkActions(); } protected void chkReassign_CheckedChanged(object sender, EventArgs e) { fixSetMachine(); } protected void chkSelect_CheckedChanged(object sender, EventArgs e) { checkActions(); } protected void chkUnassigned_CheckedChanged(object sender, EventArgs e) { updateGrView(); } /// /// elenco colonne del datagrid /// /// protected DataColumnCollection colonneObj() { MapoDb.DS_ProdTempi.ODLDataTable tabella = new MapoDb.DS_ProdTempi.ODLDataTable(); DataColumnCollection colonne = tabella.Columns; return colonne; } /// /// salvo comando /// /// /// protected void lbt_Command(object sender, CommandEventArgs e) { memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument); } protected void lbtAttiva_Click(object sender, EventArgs e) { setPromAttivabili(true); } protected void lbtDisattiva_Click(object sender, EventArgs e) { setPromAttivabili(false); } protected void lbtElimina_Click(object sender, EventArgs e) { int IdxPromessa = 0; int IdxOdl = 0; foreach (GridViewRow riga in grView.Rows) { if (((CheckBox)riga.FindControl("chkSelect")).Checked && ((CheckBox)riga.FindControl("chkSelect")).Visible) { int.TryParse(((Label)riga.FindControl("lblIdxOdl")).Text, out IdxOdl); if (IdxOdl == 0) { int.TryParse(((Label)riga.FindControl("lblIdxPromessa")).Text, out IdxPromessa); // ELIMINO! DataLayerObj.taPromOut.deleteQuery(IdxPromessa); } } } updateGrView(); } protected void lbtReassignMachine_Click(object sender, EventArgs e) { int IdxPromessa = 0; int IdxOdl = 0; string idxMacchina2Reass = ddlSelMacchina.SelectedValue; if (!string.IsNullOrEmpty(idxMacchina2Reass)) { foreach (GridViewRow riga in grView.Rows) { if (((CheckBox)riga.FindControl("chkSelect")).Checked && ((CheckBox)riga.FindControl("chkSelect")).Visible) { int.TryParse(((Label)riga.FindControl("lblIdxOdl")).Text, out IdxOdl); if (IdxOdl == 0) { int.TryParse(((Label)riga.FindControl("lblIdxPromessa")).Text, out IdxPromessa); // riassegno! DataLayerObj.taPromOut.updMacchina(IdxPromessa, idxMacchina2Reass); } } } } updateGrView(); } /// /// Richiesto abbassamento priorità = RITARDA /// /// /// protected void lnkMoveDown_Click(object sender, EventArgs e) { LinkButton lb = (LinkButton)sender; // imposto articolo, splittando int IdxPromessa = 0; int.TryParse(lb.CommandArgument, out IdxPromessa); // chiamo stored DataLayerObj.taPromOut.movePrio(IdxPromessa, -1); //update! updateGrView(); } /// /// Richiesto aumento priorità = ANTICIPA /// /// /// protected void lnkMoveUp_Click(object sender, EventArgs e) { LinkButton lb = (LinkButton)sender; // imposto articolo, splittando int IdxPromessa = 0; int.TryParse(lb.CommandArgument, out IdxPromessa); // chiamo stored DataLayerObj.taPromOut.movePrio(IdxPromessa, 1); //update! updateGrView(); } /// /// inizializzazione valori di default /// /// protected override void OnInit(EventArgs e) { base.OnInit(e); _idxGridView = "IdxPromessa"; fixSetMachine(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!Page.IsPostBack) { grView.PageSize = pageSize; divActions.Visible = false; divMachine.Visible = false; } } /// /// cambio dim pagina /// /// /// protected void txtPageSize_TextChanged(object sender, EventArgs e) { grView.PageSize = pageSize; } #endregion Protected Methods #region Public Methods /// /// Verifica se sia permesso cambio priorità (NON può andare a 0 ne oltre il max x macchina) /// /// /// /// /// public bool checkChgPrio(string IdxMacchina, string priorStr, int delta) { bool enableChgPrio = false; int priorita = 0; int.TryParse(priorStr, out priorita); // calcolo i limiti priorità x macchina (0 --> max x macchina)... LPI/LPS liminte priorità inferiore / superiore int LPI = 1; int LPS = 1; var tabella = DataLayerObj.taPromOut.getMaxPrioByMacc(IdxMacchina, true); if (tabella.Rows.Count > 0) { LPS = tabella[0].Priorita; } // è ok SE sono ENTRO i 2 limiti enableChgPrio = ((priorita + delta) >= LPI && (priorita + delta) <= LPS); bool singleMachine = !string.IsNullOrEmpty(IdxMacchinaFilt) && IdxMacchinaFilt == IdxMacchina; return enableChgPrio && singleMachine; } public string cssByAtt(object currAtt) { string answ = ""; bool attivabile = false; bool.TryParse($"{currAtt}", out attivabile); answ = attivabile ? "text-primary" : "text-secondary"; return answ; } public bool delEnabled(object _idxOdl) { bool answ = false; int idxOdl = 0; // controllo non sia già stata iniziata la produzione sennò non posso cancellare... try { idxOdl = Convert.ToInt32(_idxOdl); answ = (DataLayerObj.taODL.getByIdx(idxOdl, true).Count > 0); } catch { } return answ; } public void doUpdate() { grView.DataBind(); checkActions(); } /// /// formatot url x stampa ODL /// /// /// public string formattaUrlOdl(object idx) { string answ = String.Format(memLayer.ML.CRS("exportFormat1"), Convert.ToInt32(reportRichiesto.SchedaODL), idx); return answ; } /// /// resetta la selezione dei valori in caso di modifiche su altri controlli /// public void resetSelezione() { divActions.Visible = false; divMachine.Visible = false; memLayer.ML.emptySessionVal(string.Format("{0}_sel", _idxGridView)); grView.SelectedIndex = -1; grView.DataBind(); lblWarning.Visible = false; raiseReset(); } #endregion Public Methods } }