/// <summary> /// Impostazione backcolor per la riga del datagrid: /// la logica è che il colore di sfondo cambia non appena /// si cambia l'identificativo del documento /// </summary> /// <param name="item"></param> private void SetItemBackColor(DataGridItem item) { int rowId; DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); if (this._lastRowIdCreated != documento.IdProfile) { this._lastRowIdCreated = documento.IdProfile; // grigion #d9d9d9 217 217 217 // grigioa #4b4b4b 242 if (this._rowColor == System.Drawing.Color.FromArgb(242, 242, 242)) { this._rowColor = System.Drawing.Color.FromArgb(217, 217, 217); } else { this._rowColor = System.Drawing.Color.FromArgb(242, 242, 242); } } item.BackColor = this._rowColor; }
/// <summary> /// /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void grdDocumentiFascicolazione_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == "DISCARD_DOCUMENT") { // Comando di "Scarta documento non cartaceo" DocsPaWR.DocumentoFascicolazione documento = this.Documenti[e.Item.ItemIndex]; this.DiscardDocument(documento); } }
/// <summary> /// Impostazione handler evento onclick per il pulsante "ShowFile" /// </summary> /// <param name="item"></param> private void SetHandlerShowFileButton(DataGridItem item) { ImageButton btnShowFile = item.Cells[(int)GridColumnsEnum.VisualizzaFile].FindControl("btnShowFile") as ImageButton; if (btnShowFile != null) { DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); btnShowFile.Attributes.Add("onClick", "return ShowFile('" + documento.VersionId.ToString() + "');"); } }
/// <summary> /// Impostazione handler evento onclick per il pulsante "VerificaFascicoli" /// </summary> /// <param name="item"></param> private void SetHandlerCheckFascicoliButton(DataGridItem item) { ImageButton btnCheckFascicoli = item.Cells[(int)GridColumnsEnum.PresenteAltroFascicolo].FindControl("btnCheckFascicoli") as ImageButton; if (btnCheckFascicoli != null) { DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); btnCheckFascicoli.Attributes.Add("onClick", "CheckFascicoli('" + documento.VersionId.ToString() + "'); return false;"); } }
/// <summary> /// Impostazione visibilità pulsante scarta documento non cartaceo /// </summary> /// <param name="item"></param> private void ShowButtonScartaDocumentoNonCartaceo(DataGridItem item) { DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); ImageButton button = item.FindControl("btnDiscardDocument") as ImageButton; if (button != null) { // Il pulsante è visibile solo se il documento non è cartaceo button.Visible = (!documento.Cartaceo); button.OnClientClick = "return OnClickScartaDocumento();"; } }
/// <summary> /// Operazione di scarto di un documento non cartaceo /// </summary> /// <param name="documento"></param> protected void DiscardDocument(DocsPaWR.DocumentoFascicolazione documento) { if (!documento.Cartaceo) { int fascicoliScartati; DocsPaWR.ValidationResultInfo result = this.WebServiceInstance.FascCartaceaScartaDocumentoNonCartaceo(this.InfoUtente, this.IdSnapshot, documento, out fascicoliScartati); if (!result.Value) { // Operazione non andata a buon fine, visualizzazione del messaggio di errore this.ShowValidationMessage(result.BrokenRules); } else { this.TotalRecordCount -= fascicoliScartati; // Se almeno un documento è stato inserito in fascicolo cartaceo, // vengono ricaricati i documenti per la pagina corrente int page = this.grdDocumentiFascicolazione.CurrentPageIndex + 1; if (page > 1) { int newPageCount = (this.TotalRecordCount / this.grdDocumentiFascicolazione.PageSize); if ((this.TotalRecordCount % this.grdDocumentiFascicolazione.PageSize) > 0) { newPageCount++; } if (page > newPageCount) { this.grdDocumentiFascicolazione.CurrentPageIndex = newPageCount - 1; } } this.Fetch(); } } }
/// <summary> /// /// </summary> /// <param name="item"></param> private void BindCheckDocCartaceo(DataGridItem item) { HtmlInputCheckBox chkDocumentoCartaceo = this.GetCheckDocumentoCartaceo(item); if (chkDocumentoCartaceo != null) { DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); chkDocumentoCartaceo.Checked = documento.Cartaceo; // Il check documento cartaceo è abilitato solo se il documento non è cartaceo, // altrimenti è disabilitato e checked chkDocumentoCartaceo.Disabled = chkDocumentoCartaceo.Checked; HtmlInputCheckBox chkInsFascCartaceo = this.GetCheckInsFascCartaceo(item); // Abilitazione / disabilitazione check di inserimento in cartaceo chkInsFascCartaceo.Disabled = (!chkDocumentoCartaceo.Checked); // Impostazione valore check di inserimento in cartaceo chkInsFascCartaceo.Checked = (documento.IdFascicolazione > 0); chkDocumentoCartaceo.Attributes.Add("onClick", "OnClickDocumentoCartaceo('" + chkDocumentoCartaceo.ClientID + "', '" + chkInsFascCartaceo.ClientID + "');"); } }
/// <summary> /// /// </summary> /// <param name="documenti"></param> /// <returns></returns> private DataSet DocumentiFascicolazioneToDataSet(List <DocsPaWR.DocumentoFascicolazione> documenti) { DataSet ds = new DataSet(); DataTable table = new DataTable(); table.Columns.Add("Index", typeof(int)); table.Columns.Add("IdProfile", typeof(int)); table.Columns.Add("DocNumber", typeof(int)); table.Columns.Add("VersionId", typeof(int)); table.Columns.Add("VersionLabel", typeof(string)); table.Columns.Add("VersionNote", typeof(string)); table.Columns.Add("DataCreazione", typeof(DateTime)); table.Columns.Add("IdFascicolo", typeof(int)); table.Columns.Add("CodiceFascicolo", typeof(string)); table.Columns.Add("DescrizioneFascicolo", typeof(string)); table.Columns.Add("FascicoloCartaceo", typeof(bool)); table.Columns.Add("DocumentoCartaceo", typeof(bool)); table.Columns.Add("NumeroProtocollo", typeof(int)); table.Columns.Add("DataProtocollo", typeof(DateTime)); table.Columns.Add("Documento", typeof(string)); table.Columns.Add("TipoDocumento", typeof(string)); table.Columns.Add("Versione", typeof(string)); table.Columns.Add("Registro", typeof(string)); table.Columns.Add("Fascicolo", typeof(string)); ds.Tables.Add(table); int pageSize = this.grdDocumentiFascicolazione.PageSize; int startRow = 0; if (!this.ServerPagingEnabled) { startRow = (this.grdDocumentiFascicolazione.CurrentPageIndex * pageSize); } for (int i = startRow; (i < startRow + pageSize) && (i < documenti.Count); i++) { DocsPaWR.DocumentoFascicolazione item = documenti[i]; DataRow row = table.NewRow(); row["Index"] = i; row["IdProfile"] = item.IdProfile; row["DocNumber"] = item.DocNumber; row["VersionId"] = item.VersionId; row["VersionLabel"] = item.VersionLabel; row["VersionNote"] = item.VersionNote; row["DataCreazione"] = item.DataCreazione; row["IdFascicolo"] = item.Fascicolo.IdFascicolo; row["CodiceFascicolo"] = item.Fascicolo.CodiceFascicolo; row["DescrizioneFascicolo"] = item.Fascicolo.DescrizioneFascicolo; row["FascicoloCartaceo"] = item.Fascicolo.Cartaceo; row["DocumentoCartaceo"] = item.Cartaceo; row["NumeroProtocollo"] = item.NumeroProtocollo; row["DataProtocollo"] = item.DataProtocollo; row["TipoDocumento"] = item.TipoDocumento; string documento = string.Empty; if (item.NumeroProtocollo > 0) { documento = item.NumeroProtocollo + "<br />" + item.DataProtocollo.ToString("dd/MM/yyyy"); } else { documento = item.DocNumber + "<br />" + item.DataCreazione.ToString("dd/MM/yyyy"); } row["Documento"] = documento; row["Versione"] = item.VersionLabel.ToString(); row["Registro"] = item.CodiceRegistro; row["Fascicolo"] = item.Fascicolo.CodiceFascicolo; table.Rows.Add(row); } return(ds); }
/// <summary> /// Save dei documenti selezionati /// </summary> public void Save() { DocsPaWR.ValidationResultInfo result = null; Control firstInvalidControl; result = this.ValidateData(out firstInvalidControl); if (result.Value) { List <DocsPaWR.DocumentoFascicolazione> dirtyDocuments = new List <DocsPaWR.DocumentoFascicolazione>(); foreach (DataGridItem item in this.grdDocumentiFascicolazione.Items) { HtmlInputCheckBox chkDocumentoCartaceo = this.GetCheckDocumentoCartaceo(item); HtmlInputCheckBox chkInsFascCartaceo = this.GetCheckInsFascCartaceo(item); DocsPaWR.DocumentoFascicolazione documento = this.GetDocumento(item); if (chkInsFascCartaceo.Checked && !documento.InsertInFascicoloCartaceo) { // Il documento deve essere inserito in fascicolo cartaceo documento.InsertInFascicoloCartaceo = true; documento.IsDirty = true; } else if (chkDocumentoCartaceo.Checked && !documento.Cartaceo) { // Il documento ha un corrispondente documento cartaceo documento.Cartaceo = true; documento.IsDirty = true; } if (documento.IsDirty) { // Inserimento del documento tra quelli modificati dirtyDocuments.Add(documento); } } if (dirtyDocuments.Count > 0) { DocsPaWR.DocumentoFascicolazione[] documenti = dirtyDocuments.ToArray(); result = this.WebServiceInstance.FascCartaceaSaveDocumentiFascicolazione(this.InfoUtente, this.IdSnapshot, ref documenti); // Verifica del numero di documenti inseriti in fascicolo cartaceo int countInserted = 0; foreach (DocsPaWR.DocumentoFascicolazione documento in documenti) { if (documento.IdFascicolazione > 0) { countInserted++; } } // Visualizzazione messaggi di errore if (result.BrokenRules.Length > 0) { this.ShowValidationMessage(result.BrokenRules); } if (countInserted > 0) { // Se il numero di documenti inseriti in fascicolo cartaceo è > 0, // è necessario ricaricare la lista dei documenti per la pagina dal server this.TotalRecordCount -= countInserted; // Se almeno un documento è stato inserito in fascicolo cartaceo, // vengono ricaricati i documenti per la pagina corrente int page = this.grdDocumentiFascicolazione.CurrentPageIndex + 1; if (page > 1) { int newPageCount = (this.TotalRecordCount / this.grdDocumentiFascicolazione.PageSize); if ((this.TotalRecordCount % this.grdDocumentiFascicolazione.PageSize) > 0) { newPageCount++; } if (page > newPageCount) { this.grdDocumentiFascicolazione.CurrentPageIndex = newPageCount - 1; } } } this.Fetch(); } } else { this.ShowValidationMessage(result.BrokenRules); // impostazione del focus sul primo controllo non valido if (firstInvalidControl != null) { firstInvalidControl.Focus(); } } }