Ejemplo n.º 1
0
        //OK
        /// <summary>
        /// Inserisce in deposito un singolo fascicolo procedimentale chiuso.
        /// Inserisce in deposito tutti i documenti del fascicolo
        /// </summary>
        /// <param name="fascID"></param>
        /// <returns></returns>
        public static bool TrasfInDepositoFascicoloProc(string fascID, string tipoOp)
        {
            bool result = true;

            using (DocsPaDB.TransactionContext transactionalContext = new DocsPaDB.TransactionContext())
            {
                DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli();
                //Recupero i documenti contenuti nel fascicolo per inserirli in deposito uno ad uno
                string resInsDoc = insDocInFascinArchivio(fascID, tipoOp, false);
                if (resInsDoc != "-1")
                {
                    //Inserisco in archivio anche tutti i sottofascicoli del fascicolo
                    ArrayList ListaSottoFasc = new ArrayList();
                    ListaSottoFasc = fascicoli.getSottoFascicoli(fascID);
                    if (ListaSottoFasc != null && ListaSottoFasc.Count > 0)
                    {
                        for (int i = 0; i < ListaSottoFasc.Count; i++)
                        {
                            resInsDoc = insDocInFascinArchivio(ListaSottoFasc[i].ToString(), tipoOp, true);
                            if (resInsDoc == "-1")
                            {
                                break;
                            }
                            else
                            {
                                //Il sottofascicolo viene inserito in archivio con valore sempre uguale a 1
                                result = TrasfInDepositoFascicolo(ListaSottoFasc[i].ToString(), "1", tipoOp);
                            }
                        }
                    }
                    if (resInsDoc != "-1" && result)
                    {
                        //Il fascicolo procedimentale viene inserito in archivio con valore sempre uguale a 1
                        result = TrasfInDepositoFascicolo(fascID, "1", tipoOp);
                    }
                }
                if (result)
                {
                    transactionalContext.Complete();
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        public static bool cambiaStatoScarto(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.AreaScarto.InfoScarto infoScarto, string nuovoCampo)
        {
            DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli();
            bool result       = true;
            bool resultScarto = true;

            if (infoScarto.stato == "S")
            {
                //stato = S = scartato -> si deve eliminare fisicamente tutta l'istanza
                //dell'area di scarto selezionata
                //per ogni fascicolo procedimentale chiuso che si vuole scartare
                //si devono eliminare fisicamenti tutti i documenti in esso contenuti che
                //hanno cha_in_archivio = 1, tutti i sottofascicoli ed il fascicolo stesso.
                ArrayList ListaFasc = fascicoli.GetListaFascicoliInScartoNoPaging(infoUtente, infoScarto);
                foreach (DocsPaVO.fascicolazione.Fascicolo fasc in ListaFasc)
                {
                    //per ogni fascicolo verifico se è possibile scartare i documenti in esso classificati
                    ArrayList ListaDoc = fascicoli.GetDocumentiDaScartare(infoUtente.idGruppo, infoUtente.idPeople, "", fasc);
                    //Elimino i documenti se sono in archivio in stato 1
                    eliminaListaDoc(infoUtente, ListaDoc);
                    //Prelevo tutti i sottofascicoli del fascicolo:
                    ArrayList ListaSottoFasc = new ArrayList();
                    ListaSottoFasc = fascicoli.getSottoFascicoli(fasc.systemID);
                    bool resultSottoFasc = true;
                    if (ListaSottoFasc.Count > 0)
                    {
                        for (int i = 0; i < ListaSottoFasc.Count; i++)
                        {
                            ArrayList ListaDocSottoFasc = fascicoli.GetDocumentiDaScartare(infoUtente.idGruppo, infoUtente.idPeople, ListaSottoFasc[i].ToString(), null);
                            //Elimino i documenti del sottofascicolo se sono in archivio in stato 1
                            eliminaListaDoc(infoUtente, ListaDocSottoFasc);
                            //elimino il sottofascicolo
                            resultSottoFasc = fascicoli.EliminaFasc(infoUtente, ListaSottoFasc[i].ToString());
                        }
                    }
                    else
                    {
                        //elimino il fascicolo
                        if (resultSottoFasc)
                        {
                            resultScarto = fascicoli.EliminaFasc(infoUtente, fasc.systemID);
                        }
                        if (resultScarto)
                        {
                            infoScarto.stato = "S";
                            result           = fascicoli.CambiaStatoScarto(infoUtente, infoScarto, nuovoCampo);
                        }
                    }
                }
            }
            if (infoScarto.stato != "S")
            {
                result = fascicoli.CambiaStatoScarto(infoUtente, infoScarto, nuovoCampo);
            }

            if (!result)
            {
                logger.Debug("Errore nella gestione dei fascicoli. (CambiaStatoScarto)");
                throw new Exception("F_System");
            }
            return(result);
        }