Esempio n. 1
0
        string costruisciNuovoOggetto(SchedaDocumento sd, SUAPPratica.RiepilogoPraticaSUAP riepilogoPratica )
        {

            try
            {
                if (riepilogoPratica == null)
                    return null;

                if (riepilogoPratica.struttura == null)
                    return null;

                List<string> nomiProcList = new List<string>();
                List<string> mailentiList = new List<string>();
                string procedimentoCompleto = string.Empty;
                string procedimento = "";
                foreach (SUAPPratica.AdempimentoSUAP struttura in riepilogoPratica.struttura)
                {
                    procedimentoCompleto = struttura.nome;
                    string[] nomiProcedimento = procedimentoCompleto.Replace("++", "§").Split('§');
                    foreach (string np in nomiProcedimento)
                        nomiProcList.Add(np.Trim());

                    foreach (SUAPPratica.EstremiEnte EnteConinvoto in struttura.entecoinvolto)
                        mailentiList.Add(EnteConinvoto.pec);
                }

                string mailDest = getMailDestinatarioPredisposto(sd);
                if (!String.IsNullOrEmpty(mailDest))
                {
                    bool found = false;
                    if (nomiProcList.Count == mailentiList.Count)
                    {
                        int counter = 0;
                        foreach (string email in mailentiList)
                        {
                            if (email.ToUpper().Trim() == mailDest.ToUpper().Trim())
                            {
                                found = true;
                                break;
                            }
                            counter++;
                        }
                        if (nomiProcList.Count > counter)
                        {
                            if (found)
                                procedimento = nomiProcList[counter];
                        }

                        if (found == false)
                            procedimento = procedimentoCompleto;
                    }
                    else
                    {
                        procedimento = procedimentoCompleto;
                    }
                }
                else
                {
                    procedimento = procedimentoCompleto;
                }

                string impresa = "";
                string ImpiantoProduttivo = "";
                if (riepilogoPratica.intestazione != null)
                {
                    if (riepilogoPratica.intestazione.impresa != null)
                        if (!String.IsNullOrEmpty(riepilogoPratica.intestazione.impresa.ragionesociale))
                            impresa = riepilogoPratica.intestazione.impresa.ragionesociale;



                    ImpiantoProduttivo = ComponiIndirizzo(riepilogoPratica.intestazione.impiantoproduttivo.indirizzo);
                }

                String retval = String.Format("{0} | {1} | {2}", procedimento, impresa, ImpiantoProduttivo);

                return retval;
            }
            catch (Exception e)
            {
                logger.DebugFormat("Errore creando oggetto per docnumber {0}  err {1} stk {2}", sd.docNumber, e.Message, e.StackTrace);
            }
            return null;
        }
Esempio n. 2
0
        public bool ImportSuapEnteXMLIntoTemplate(InfoUtente infoUtente, Ruolo ruoloUtente, SchedaDocumento schedaDoc, byte[]  xmlcontent)
        {
            string xml = System.Text.UTF8Encoding.UTF8.GetString(xmlcontent);
            string xsdFile = AppDomain.CurrentDomain.BaseDirectory + "XML/pratica_suap-1.0.1.xsd";

            if (File.Exists(xsdFile))
            {
                BusinessLogic.report.ProtoASL.ReportXML.XmlValidator xmlV  = new report.ProtoASL.ReportXML.XmlValidator ();
                bool esito = xmlV.ValidateXmlString (xml,xsdFile,null);
                if (!esito)
                {
                    logger.DebugFormat("Validazione *.SUAP.XML fallita: {0}", xmlV.ValidationErrors);
                    return false;
                }
            }

            String[] TipologiaSUAPENTE = new String[] { "Procedimento",                 // 0
                                                        "Tipo procedimento",            // 1
                                                        "Tipo intervento",              // 2
                                                        "Codice pratica",               // 3
                                                        "Impresa",                      // 4
                                                        "Codice REA",                   // 5
                                                        "Legale Rappresentante",        // 6
                                                        "Dichiarante",                  // 7
                                                        "Domicilio elettronico",        // 8
                                                        "Impianto produttivo",          // 9
                                                        "Procura speciale",             //10
                                                        "Allegati"};                    //11
            //Reperire una tipologia di tipo "SUAP"
            DocsPaVO.ProfilazioneDinamica.Templates templatesuap = BusinessLogic.ProfilazioneDinamica.ProfilazioneDocumenti.getTemplateByDescrizione(_nomeTemplate, infoUtente.idAmministrazione);
            
            // se esiste il valore ID_TIPO_ATTO allora è censita e esiste

            if (String.IsNullOrEmpty(templatesuap.ID_TIPO_ATTO))
                return false;

            string nuovoOggetto =null;
            try
            {
                SUAPPratica.RiepilogoPraticaSUAP riep = SUAPPratica.RiepilogoPraticaSUAP.Deserialize(xml);

                string procedimento = ComponiProcedimento(riep.struttura);
                string tipoProcedimento = riep.intestazione.oggettocomunicazione.tipoprocedimento.ToString();
                string tipoIntervento = riep.intestazione.oggettocomunicazione.tipointervento.ToString();
                string codicePratica = riep.intestazione.codicepratica;
                string impresa = ComponiImpresa(riep.intestazione.impresa);
                string codiceREA = riep.intestazione.impresa.codiceREA.Value;
                string legaleRapp = ComponiLegaleRapp(riep.intestazione.impresa.legalerappresentante);
                string Dichiarante = ComponiDichiarante(riep.intestazione.dichiarante);
                string domicilioElettronico = riep.intestazione.domicilioelettronico;
                string ImpiantoProduttivo = ComponiIndirizzo(riep.intestazione.impiantoproduttivo.indirizzo);
                string procuraSpeciale = riep.intestazione.procuraspeciale.nomefile;
                string allegati = ComponiAllegati(riep.struttura);

                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[0], procedimento);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[1], tipoProcedimento);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[2], tipoIntervento);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[3], codicePratica );
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[4], impresa );
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[5], codiceREA);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[6], legaleRapp);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[7], Dichiarante);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[8], domicilioElettronico);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[9], ImpiantoProduttivo);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[10], procuraSpeciale);
                popolaValoreTipologiaGenerico(templatesuap, TipologiaSUAPENTE[11], allegati);
                nuovoOggetto = costruisciNuovoOggetto(schedaDoc, riep);

            }
            catch (Exception e)
            {
                logger.ErrorFormat("Errore facendo il parsing di: *.suap.xml {0} {1}", e.Message, e.StackTrace);
                return false;
            }

            //Associare il template alla scheda documento
            schedaDoc.template = templatesuap;
            schedaDoc.tipologiaAtto = new TipologiaAtto { descrizione = templatesuap.DESCRIZIONE, systemId = templatesuap.ID_TIPO_ATTO };
            schedaDoc.daAggiornareTipoAtto = true;
           
            
            if (!String.IsNullOrEmpty(nuovoOggetto))
            {
                schedaDoc.oggetto.descrizione = nuovoOggetto;
                schedaDoc.oggetto.daAggiornare = true;
            }
            

            //Salvare il documento
            bool daAggiornareUffRef;
            SchedaDocumento retval = BusinessLogic.Documenti.DocSave.save(infoUtente, schedaDoc, false, out daAggiornareUffRef, ruoloUtente);
            
            

            //non ha salvato
            if (retval == null)
                return false;

            //Tornare True o false a seconda dell'Esito
            return true;
        }