OK crea nuova revisione duplicando misure...

This commit is contained in:
Samuele E. Locatelli
2018-02-20 12:55:31 +01:00
parent ece14f9c66
commit 4993f853ca
13 changed files with 1727 additions and 1610 deletions
+22 -11
View File
@@ -1,9 +1,15 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_dossier.ascx.cs" Inherits="CMS_SC.WebUserControls.mod_dossier" %>
<div class="row text-center" style="font-size: 0.8em;">
<div class="col-12 text-center text-uppercase">
<h6>Edit Dossier</h6>
<div class="row text-center py-2" style="font-size: 0.8em;">
<div class="col-12 text-center text-uppercase text-info">
<h6><%: traduci("EditDossier") %></h6>
</div>
<div class="col-4">
<div class="col-5">
<b><%: traduci("FaseRevAct") %></b>
</div>
<div class="col-7">
<b><%: traduci("NoteDossier") %></b>
</div>
<div class="col-5">
<span class="input-group mb-0">
<span class="input-group-prepend">
<span class="input-group-text">
@@ -19,29 +25,34 @@
<span class="input-group-append">
<span class="input-group-text">
<asp:Label runat="server" ID="lblRevAct" Text="-" />
<asp:LinkButton runat="server" ID="lbtNewRev" OnClick="lbtNewRev_Click"><i class="fa fa-plus text-success"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtNewRev" OnClick="lbtNewRev_Click"><i class="fa fa-plus text-info"></i></asp:LinkButton>
</span>
</span>
</span>
<asp:Label runat="server" ID="lblFaseRev"><%: traduci("InsEnabOnCurrent") %></asp:Label>
</div>
<div class="col-8">
<asp:TextBox runat="server" ID="txtNote" TextMode="MultiLine" CssClass="form-control" Height="6em" AutoPostBack="True" OnTextChanged="txtNote_TextChanged" />
<div class="col-7">
<asp:TextBox runat="server" ID="txtNote" TextMode="MultiLine" CssClass="form-control" Height="5em" AutoPostBack="True" OnTextChanged="txtNote_TextChanged" />
</div>
</div>
<div class="row" style="font-size: 1.5em;">
<div class="col-4">
<asp:LinkButton runat="server" ID="lbtSalvaNote" class="btn btn-success" Visible="true" OnClick="lbtSalvaNote_Click" Width="200px" ForeColor="White">
<asp:LinkButton runat="server" ID="lbtSalvaNote" class="btn btn-success btn-block" Visible="true" OnClick="lbtSalvaNote_Click" ForeColor="White">
<i class="fa fa-1x fa-floppy-o shortcut-icon"></i>
Salva
<%: traduci("SalvaFaseNote") %>
</asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtSalvaRev" class="btn btn-info btn-block" Visible="true" OnClick="lbtSalvaRev_Click" ForeColor="White">
<i class="fa fa-1x fa-floppy-o shortcut-icon"></i>
<%: traduci("SalvaRev") %>
</asp:LinkButton>
</div>
<div class="col-4">
<asp:Label runat="server" ID="lblWarn" Text="..." CssClass="text-danger" Visible="false" />
</div>
<div class="col-4">
<asp:LinkButton runat="server" ID="lbtResetNote" class="btn btn-danger" Visible="false" OnClick="lbtResetNote_Click" Width="200px" ForeColor="White">
<asp:LinkButton runat="server" ID="lbtResetNote" class="btn btn-danger btn-block" Visible="false" OnClick="lbtResetNote_Click" ForeColor="White">
<i class="fa fa-1x fa-ban shortcut-icon"></i>
Annulla
<%: traduci("Annulla") %>
</asp:LinkButton>
</div>
</div>
+42 -14
View File
@@ -62,9 +62,10 @@ namespace CMS_SC.WebUserControls
{
DS_Applicazione.ElencoDossierRow riga = DtProxy.man.taED.getByDossier(idxDossier)[0];
txtNote.Text = riga.Note;
ddlFase.SelectedValue = riga.Stato;
lblRevAct.Text = riga.Stato; //!!!FARE!!!
ddlFase.SelectedValue = riga.FaseAct;
lblRevAct.Text = riga.RevAct.ToString();
ddlFase.Enabled = editFaseRev;
txtNote.Enabled = editFaseRev;
icnCancel.Visible = editFaseRev;
icnEdit.Visible = !editFaseRev;
lbtNewRev.Visible = editFaseRev;
@@ -87,6 +88,13 @@ namespace CMS_SC.WebUserControls
{
lbtResetNote.Visible = showSaveCancel;
lbtSalvaNote.Visible = showSaveCancel;
lbtSalvaRev.Visible = false;
}
public void showRevBtn(bool showSaveCancel)
{
lbtResetNote.Visible = showSaveCancel;
lbtSalvaNote.Visible = false;
lbtSalvaRev.Visible = showSaveCancel;
}
protected void lbtResetNote_Click(object sender, EventArgs e)
@@ -101,10 +109,36 @@ namespace CMS_SC.WebUserControls
if (idxDossier > 0)
{
DtProxy.man.taED.updateNote(idxDossier, ddlFase.SelectedValue, txtNote.Text.Trim());
editFaseRev = false;
}
// ricarico
fixControls();
showNoteBtn(false);
showRevBtn(false);
raiseEvent();
}
protected void lbtSalvaRev_Click(object sender, EventArgs e)
{
// SE HO le note... sennò errore...
if (txtNote.Text.Trim() != "")
{
// crea una nuova revisione salvando le note e DUPLICANDO tutti i valori alla NUOVA revisione...
DtProxy.man.taED.createRev(idxDossier, user_std.UtSn.utente, txtNote.Text.Trim());
// ricarico
editFaseRev = false;
fixControls();
showNoteBtn(false);
showRevBtn(false);
}
else
{
// ricarico
fixControls();
lblWarn.Visible = true;
lblWarn.Text = traduci("ERR-NoteMandatory");
showNoteBtn(false);
showRevBtn(true);
}
raiseEvent();
}
protected void ddlFase_SelectedIndexChanged(object sender, EventArgs e)
@@ -121,6 +155,11 @@ namespace CMS_SC.WebUserControls
{
editFaseRev = !editFaseRev;
fixControls();
if (!editFaseRev)
{
showNoteBtn(false);
showRevBtn(false);
}
}
/// <summary>
/// Crea una nuova revisione
@@ -129,18 +168,7 @@ namespace CMS_SC.WebUserControls
/// <param name="e"></param>
protected void lbtNewRev_Click(object sender, EventArgs e)
{
// SE HO le note... sennò errore...
if (txtNote.Text.Trim() != "")
{
// crea una nuova revisione salvando le note e DUPLICANDO tutti i valori alla NUOVA revisione...
// FARE con stored...
}
else
{
lblWarn.Visible = true;
lblWarn.Text = traduci("ERR-NoteMandatory");
}
showRevBtn(true);
}
}
}
+18
View File
@@ -75,6 +75,15 @@ namespace CMS_SC.WebUserControls {
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtNewRev;
/// <summary>
/// Controllo lblFaseRev.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblFaseRev;
/// <summary>
/// Controllo txtNote.
/// </summary>
@@ -93,6 +102,15 @@ namespace CMS_SC.WebUserControls {
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtSalvaNote;
/// <summary>
/// Controllo lbtSalvaRev.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtSalvaRev;
/// <summary>
/// Controllo lblWarn.
/// </summary>
@@ -27,7 +27,8 @@
<asp:Label ID="Label1" runat="server" Text='<%# Eval("NumSchede") + " (" +Eval("NumMisEff")+"/"+ Eval("NumMisReq") +")" %>' ToolTip="Num Schede (misure effettuate / misure richieste)" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Stato" HeaderText="Fase" SortExpression="Stato" />
<asp:BoundField DataField="FaseAct" HeaderText="Fase" SortExpression="FaseAct" />
<asp:BoundField DataField="RevAct" HeaderText="R" SortExpression="RevAct" />
<asp:TemplateField ShowHeader="False" ItemStyle-Wrap="false">
<ItemTemplate>
<asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" CommandName="Delete" ToolTip="Delete" OnClientClick='<%# SteamWare.jsUtils.getCBE("confermaDel") %>' CssClass="fa fa-trash text-danger fa-2x" Visible='<%# userCanDel(Eval("IdxDossier")) && showDelete %>' />
+157 -157
View File
@@ -5,163 +5,163 @@ using System.Web.UI.WebControls;
namespace CMS_SC.WebUserControls
{
public partial class mod_elencoDossiers : System.Web.UI.UserControl
public partial class mod_elencoDossiers : System.Web.UI.UserControl
{
/// <summary>
/// selezione valore in DettScheda
/// </summary>
public event EventHandler eh_selezioneValore;
/// <summary>
/// eliminazione Scheda
/// </summary>
public event EventHandler eh_deleteVal;
/// <summary>
/// sollevo evento selezione
/// </summary>
protected void raiseEvent()
{
/// <summary>
/// selezione valore in DettScheda
/// </summary>
public event EventHandler eh_selezioneValore;
/// <summary>
/// eliminazione Scheda
/// </summary>
public event EventHandler eh_deleteVal;
/// <summary>
/// sollevo evento selezione
/// </summary>
protected void raiseEvent()
{
// sollevo evento nuovo valore...
if (eh_selezioneValore != null)
{
eh_selezioneValore(this, new EventArgs());
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// dimensione pagina grid view
/// </summary>
public int pageSize
{
get
{
return grView.PageSize;
}
set
{
grView.PageSize = value;
}
}
/// <summary>
/// dossier selezionato
/// </summary>
public int idxDossier
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(grView.SelectedDataKey["IdxDossier"]);
}
catch
{ }
return answ;
}
}
/// <summary>
/// selezione scheda...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
raiseEvent();
}
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetto selezione
/// </summary>
private void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseEvent();
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// imposta se sia abilitato delete "in genere" per il controllo
/// </summary>
public bool showDelete
{
get
{
return memLayer.ML.BoolSessionObj(string.Format("canDel_{0}", devicesAuthProxy.pagCorrente));
}
set
{
memLayer.ML.setSessionVal(string.Format("canDel_{0}", devicesAuthProxy.pagCorrente), value);
grView.DataBind();
}
}
public bool userCanDel(object _idxDossier)
{
// se è superuser è SEMPRE true...
bool answ = userIsAdmin;
if (!answ)
{
int idxDossier = 0;
int trovati = 0;
// altrimenti verifico se sia un dossier "vuoto" e quindi eliminabile...
try
{
idxDossier = Convert.ToInt32(_idxDossier);
// cerco se ci sono record misure (NON devono esserci...)
trovati = DtProxy.man.taMis.getByDossier(idxDossier).Rows.Count;
}
catch
{ }
if (trovati == 0)
{
answ = true;
}
}
return answ;
}
/// <summary>
/// determina se user sia SuperAdmin
/// </summary>
public bool userIsAdmin
{
get
{
bool answ = false;
try
{
answ = devicesAuthProxy.stObj.userHasRight("SuperAdmin");
}
catch
{ }
return answ;
}
}
public void doUpdate()
{
grView.DataBind();
}
protected void grView_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
grView.DataBind();
// sollevo evento nuovo valore...
if (eh_deleteVal != null)
{
eh_deleteVal(this, new EventArgs());
}
}
// sollevo evento nuovo valore...
if (eh_selezioneValore != null)
{
eh_selezioneValore(this, new EventArgs());
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// dimensione pagina grid view
/// </summary>
public int pageSize
{
get
{
return grView.PageSize;
}
set
{
grView.PageSize = value;
}
}
/// <summary>
/// dossier selezionato
/// </summary>
public int idxDossier
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(grView.SelectedDataKey["IdxDossier"]);
}
catch
{ }
return answ;
}
}
/// <summary>
/// selezione scheda...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
raiseEvent();
}
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// resetto selezione
/// </summary>
private void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseEvent();
}
/// <summary>
/// wrapper traduzione
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
public string traduci(string lemma)
{
return user_std.UtSn.Traduci(lemma);
}
/// <summary>
/// imposta se sia abilitato delete "in genere" per il controllo
/// </summary>
public bool showDelete
{
get
{
return memLayer.ML.BoolSessionObj(string.Format("canDel_{0}", devicesAuthProxy.pagCorrente));
}
set
{
memLayer.ML.setSessionVal(string.Format("canDel_{0}", devicesAuthProxy.pagCorrente), value);
grView.DataBind();
}
}
public bool userCanDel(object _idxDossier)
{
// se è superuser è SEMPRE true...
bool answ = userIsAdmin;
if (!answ)
{
int idxDossier = 0;
int trovati = 0;
// altrimenti verifico se sia un dossier "vuoto" e quindi eliminabile...
try
{
idxDossier = Convert.ToInt32(_idxDossier);
// cerco se ci sono record misure (NON devono esserci...)
trovati = DtProxy.man.taMis.getByDossier(idxDossier).Rows.Count;
}
catch
{ }
if (trovati == 0)
{
answ = true;
}
}
return answ;
}
/// <summary>
/// determina se user sia SuperAdmin
/// </summary>
public bool userIsAdmin
{
get
{
bool answ = false;
try
{
answ = devicesAuthProxy.stObj.userHasRight("SuperAdmin");
}
catch
{ }
return answ;
}
}
public void doUpdate()
{
grView.DataBind();
}
protected void grView_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
grView.DataBind();
// sollevo evento nuovo valore...
if (eh_deleteVal != null)
{
eh_deleteVal(this, new EventArgs());
}
}
}
}