Exemplo n.º 1
0
        /// <summary>
        /// </summary>
        /// <param name="utente"></param>
        /// <param name="ruolo"></param>
        /// <param name="tipoObj"></param>
        /// <param name="tipoDoc"></param>
        /// <param name="tipoFasc"></param>
        /// <param name="numPage"></param>
        /// <param name="numTotPage"></param>
        /// <param name="nRec"></param>
        /// <returns></returns>
        public static DocsPaVO.areaLavoro.AreaLavoro getAreaLavoroPaging(DocsPaVO.utente.Utente utente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.areaLavoro.TipoOggetto tipoObj, DocsPaVO.areaLavoro.TipoDocumento tipoDoc, DocsPaVO.areaLavoro.TipoFascicolo tipoFasc, string idRegistro, bool enableUffRef, string chaDaProto, int numPage, out int numTotPage, out int nRec, DocsPaVO.filtri.FiltroRicerca[][] query = null)
        {
            //DocsPaWS.Utils.Database db=DocsPaWS.Utils.dbControl.getDatabase();
            DataSet dataSet;

            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            DocsPaVO.areaLavoro.AreaLavoro    al  = new DocsPaVO.areaLavoro.AreaLavoro();
            try
            {
                //db.openConnection();
                string idPeople    = utente.idPeople;
                string idRuoloInUo = ruolo.systemId;
                //DocsPaVO.areaLavoro.QueryAreaLavoro qal = new DocsPaVO.areaLavoro.QueryAreaLavoro();

                //costruzione della query
                //doc.GetAreaLavoro(out dataSet, idPeople, idRuoloInUo, tipoObj, tipoDoc, tipoFasc);
                doc.GetAreaLavoroPaging(out dataSet, idPeople, idRuoloInUo, tipoObj, tipoDoc, tipoFasc, idRegistro, chaDaProto, numPage, out numTotPage, out nRec, query);
                #region codice originale

                /*string queryString="SELECT * FROM DPA_AREA_LAVORO WHERE ID_PEOPLE='"+idPeople+"' AND ID_RUOLO_IN_UO='"+idRuoloInUo+"'";
                 *              if(tipoObj==DocsPaVO.areaLavoro.TipoOggetto.DOCUMENTO)
                 *              {
                 *                      queryString=queryString+" AND ID_PROFILE IS NOT NULL";
                 *                      if(tipoDoc!=DocsPaVO.areaLavoro.TipoDocumento.TUTTI){
                 *                        queryString=queryString+" AND CHA_TIPO_DOC='"+DocsPaVO.areaLavoro.QueryAreaLavoro.tipoDocString[tipoDoc]+ "'";
                 *                      }
                 *              }
                 *              else
                 *              {
                 *                      queryString=queryString+" AND ID_PROJECT IS NOT NULL";
                 *                      if(tipoFasc!=DocsPaVO.areaLavoro.TipoFascicolo.TUTTI)
                 *                      {
                 *                              queryString=queryString+" AND CHA_TIPO_FASC='"+DocsPaVO.areaLavoro.QueryAreaLavoro.tipoFascString[tipoFasc]+"'";
                 *                      }
                 *              }
                 *              logger.Debug(queryString);
                 *              db.fillTable(queryString,dataSet,"OGGETTI");
                 */
                #endregion
                //si riempie la lista
                if (tipoObj == DocsPaVO.areaLavoro.TipoOggetto.DOCUMENTO)
                {
                    logger.Debug("lista documenti");
                    foreach (DataRow dr in dataSet.Tables["PagingTable"].Rows)
                    {
                        DocsPaVO.documento.InfoDocumento id = new DocsPaVO.documento.InfoDocumento();
                        id.idProfile = dr["ID_PROFILE"].ToString();
                        id.tipoProto = dr["CHA_TIPO_DOC"].ToString();
                        id.docNumber = dr["DOCNUMBER"].ToString();
                        //DocsPaVO.utente.InfoUtente infoUtente=new DocsPaVO.utente.InfoUtente(utente,ruolo);

                        /* mod sab
                         * DocsPaVO.documento.SchedaDocumento sd=DocManager.getDettaglio(id,sic);
                         * //DocsPaVO.documento.Documento doc=(DocsPaVO.documento.Documento) sd.documenti[0];
                         * DocsPaVO.documento.InfoDocumento infoDoc=new DocsPaVO.documento.InfoDocumento(sd);
                         */
                        //nuovo
                        DocsPaDB.Query_DocsPAWS.Documenti documento = new DocsPaDB.Query_DocsPAWS.Documenti();
                        DocsPaVO.documento.InfoDocumento  infoDoc;
                        infoDoc = documento.GetInfoDocumento(ruolo.idGruppo, utente.idPeople, id.docNumber, true);
                        //fine nuovo
                        if (infoDoc != null)
                        {
                            infoDoc.tipoProto = dr["CHA_TIPO_DOC"].ToString();
                            al.lista.Add(infoDoc);
                        }
                    }
                }
                else
                {
                    logger.Debug("lista fascicoli");
                    foreach (DataRow dr in dataSet.Tables["DPA_AREA_LAVORO"].Rows)
                    {
                        DocsPaVO.fascicolazione.InfoFascicolo infoFasc = new DocsPaVO.fascicolazione.InfoFascicolo();
                        infoFasc.idFascicolo = dr["ID_PROJECT"].ToString();
                        DocsPaVO.utente.InfoUtente sic = new DocsPaVO.utente.InfoUtente(utente, ruolo);
                        //Federica 5 ott 2005
                        DocsPaVO.fascicolazione.Fascicolo fasc = BusinessLogic.Fascicoli.FascicoloManager.getDettaglio(sic, infoFasc, enableUffRef);

                        if (fasc == null)
                        {
                            logger.Debug("Errore nella gestione dell'area lavoro (getAreaLavoroPaging)");
                            //TODO: gestire la throw
                            throw new Exception();
                        }

                        fasc.tipo = dr["CHA_TIPO_FASC"].ToString();
                        al.lista.Add(fasc);
                    }
                }
                //				db.closeConnection();
                return(al);
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione dell'area lavoro (getAreaLavoroPaging)", e);
                //db.closeConnection();
                throw e;
            }
        }