コード例 #1
0
        void itemDocument_MouseUp(object sender, MouseEventArgs e)
        {
            ToolStripMenuItem item     = sender as ToolStripMenuItem;
            CDocumentGED      document = item != null ? item.Tag as CDocumentGED : null;

            if (document == null)
            {
                return;
            }
            if (LockEdition || !m_bAvecDelete)
            {
                if (document.IsNew())
                {
                    return;
                }
                CTimosApp.Navigateur.EditeElement(document, false, "");
            }
            else
            {
                if (CFormAlerte.Afficher(I.T("Delete document @1?|20761", document.Libelle),
                                         EFormAlerteBoutons.OuiNon, EFormAlerteType.Question) == DialogResult.Yes)
                {
                    m_listeDocsToRemove.Add(document);
                    m_listeDocuments.Remove(document);
                    foreach (CNouveauDoc nouveau in m_listeNouveauxDocs.ToArray())
                    {
                        if (nouveau.Document == document)
                        {
                            m_listeNouveauxDocs.Remove(nouveau);
                        }
                    }
                    UpdateVisuel();
                }
            }
        }
コード例 #2
0
 //--------------------------------------------------------------------
 private void itemHistorique_Click(object sender, EventArgs e)
 {
     if (sender is CMenuItemAHistorique)
     {
         CHistoriqueDocumentGencod historique = ((CMenuItemAHistorique)sender).Historique;
         CDocumentGED doc = new CDocumentGED(CSc2iWin32DataClient.ContexteCourant);
         if (!doc.ReadIfExists(historique.IdDocumentGed))
         {
             CFormAlerte.Afficher(
                 I.T("The document|866") + " "
                 + historique.LibelleDocument + " " +
                 I.T("does not exist any more|867"), EFormAlerteType.Erreur);
             return;
         }
         doc.BeginEdit();
         doc.AssocieA((CObjetDonneeAIdNumerique)m_objetForGED);
         CResultAErreur result = doc.CommitEdit();
         if (!result)
         {
             CFormAlerte.Afficher(result.Erreur);
             return;
         }
         InitPanel();
     }
 }
コード例 #3
0
ファイル: CDocumentAttendu.cs プロジェクト: ykebaili/Timos
        //----------------------------------------------------------------------------------------------------
        public CResultAErreur FillDataSet(DataSet ds)
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_caracteristic == null || CategorieGED == null)
            {
                return(result);
            }

            int nIdCategorie = CategorieGED.Id;

            CDocumentGED[] listeGED = CDocumentGED.GetListeDocumentsForElement(m_caracteristic).ToArray <CDocumentGED>();
            foreach (CDocumentGED ged in listeGED)
            {
                bool bOK = false;
                foreach (CRelationDocumentGED_Categorie relCat in ged.RelationsCategories)
                {
                    if (relCat.Categorie.Id == nIdCategorie)
                    {
                        bOK = true;
                        break;
                    }
                }
                if (bOK)
                {
                    CFichierAttache fichier = new CFichierAttache(ds, ged);
                    fichier.DocumentId = m_caracteristic.Id;
                }
            }

            return(result);
        }
コード例 #4
0
        //-------------------------------------------------------------------------
        private CResultAErreur MAJ_Modele()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_proxyReport != null && m_proxyReport.HasChange())
            {
                result = m_proxyReport.UpdateGed();
                if (result)
                {
                    CDocumentGED doc = Rapport.DocumentGED;
                    if (doc == null)
                    {
                        doc = new CDocumentGED(Rapport.ContexteDonnee);
                        doc.CreateNewInCurrentContexte();
                        doc.Descriptif      = "";
                        doc.DateCreation    = DateTime.Now;
                        Rapport.DocumentGED = doc;
                    }
                    doc.Libelle      = I.T("Report Model @1|30228", Rapport.Libelle);
                    doc.ReferenceDoc = (CReferenceDocument)result.Data;
                    doc.DateMAJ      = DateTime.Now;
                    doc.NumVersion++;
                    doc.IsFichierSysteme = true;
                }
            }
            return(result);
        }
コード例 #5
0
        //----------------------------------------------------------------------
        public CFormVisualisationRapport(CDocumentGED document, DataSet ds)
        {
            // Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent();

            m_document = document;
            m_dataset  = ds;
        }
コード例 #6
0
        private void InitPanelList(IObjetDonneeAIdNumerique element)
        {
            m_elementSelectionne = element;
            if (element == null)
            {
                m_lnkDissocierElementEnCours.Visible = false;
                m_lblDragExisting.Visible            = false;
                m_listeDocuments = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CDocumentGED));
                if (!m_chkTousDocuments.Checked)
                {
                    m_labelElementSelectionne.Text       = I.T("Documents not related to any Element|10331");
                    m_panelListDocumentsGED.FiltreDeBase = new CFiltreDataAvance(
                        CDocumentGED.c_nomTable,
                        "hasno(" + CRelationElementToDocument.c_nomTable + "." +
                        CRelationElementToDocument.c_champId + ")");
                }
                else
                {
                    m_labelElementSelectionne.Text       = I.T("All documents|10332");
                    m_panelListDocumentsGED.FiltreDeBase = null;
                }
                m_chkTousDocuments.Visible = true;
            }
            else
            {
                m_lnkDissocierElementEnCours.Visible = true;
                m_lblDragExisting.Visible            = true;

                m_labelElementSelectionne.Text = element.DescriptionElement;
                m_listeDocuments = CDocumentGED.GetListeDocumentsForElement(element);
                m_panelListDocumentsGED.FiltreDeBase = CDocumentGED.GetListeDocumentsForElement(element).Filtre;
                m_chkTousDocuments.Visible           = false;
            }

            CFiltreData filtre = m_filtreCategories;

            m_listeDocuments.FiltrePrincipal = CFiltreData.GetAndFiltre(m_listeDocuments.FiltrePrincipal, m_filtreCategories);

            /*
             *
             * if (filtre != null)
             * {
             *  m_panelListDocumentsGED.FiltreDeBase = CFiltreData.GetAndFiltre(
             *      m_panelListDocumentsGED.FiltreDeBase,
             *      filtreSpplementaire);
             * }*/

            m_panelListDocumentsGED.ControlFiltreStandard = new CPanelFiltreDocumentGed();

            m_panelListDocumentsGED.InitFromListeObjets(
                m_listeDocuments,
                typeof(CDocumentGED),
                typeof(CFormEditionDocumentGED),
                null,
                "");

            m_panelListDocumentsGED.RemplirGrille();
        }
コード例 #7
0
        private void UpdateVisuel()
        {
            m_picDocument.Visible = !m_wndDocuments.HideHeader;
            this.SuspendDrawing();
            bool bPreviewVisible = false;

            if (m_listeDocuments.Count == 1 && m_wndDocuments.DisplayDocuments)
            {
                CDocumentGED doc = m_listeDocuments[0];
                if (m_proxyVisu != null)
                {
                    m_proxyVisu.Dispose();
                    m_proxyVisu = null;
                }
                m_proxyVisu = new CProxyGED(doc.ContexteDonnee.IdSession, doc.ReferenceDoc);
                if (!m_proxyVisu.CopieFichierEnLocal())
                {
                    m_proxyVisu.Dispose();
                    m_proxyVisu = null;
                }
                else
                {
                    if (m_visualiseurGed.ShowDocument(m_proxyVisu.NomFichierLocal))
                    {
                        m_lblDocument.Visible    = false;
                        m_visualiseurGed.Dock    = DockStyle.Fill;
                        m_visualiseurGed.Visible = true;
                        bPreviewVisible          = true;
                    }
                }
            }
            if (!bPreviewVisible)
            {
                m_visualiseurGed.Visible = false;
                m_lblDocument.Visible    = true;
                bool bShowLabel = m_listeDocuments.Count == 1 && m_listeDocuments[0].Libelle.Length > 0;
                if (bShowLabel)
                {
                    m_lblDocument.Text = m_listeDocuments[0].Libelle;
                }
                else
                {
                    if (m_listeDocuments.Count == 0)
                    {
                        m_lblDocument.Text = I.T("No document|20758");
                    }
                    else
                    {
                        m_lblDocument.Text = I.T("@1 document(s)|20759", m_listeDocuments.Count.ToString());
                    }
                }
            }
            this.ResumeDrawing();
        }
コード例 #8
0
 //-------------------------------------------------------------------------
 private void m_arbreCategories_DragDrop(object sender, DragEventArgs e)
 {
     if (DragDataHasDocGed(e.Data))
     {
         using (CContexteDonnee ctx = CSc2iWin32DataClient.ContexteCourant.GetContexteEdition())
         {
             bool bAddCategorie       = (e.KeyState & 8) == 8;
             TreeViewHitTestInfo info = m_arbreCategories.HitTest(m_arbreCategories.PointToClient(new Point(e.X, e.Y)));
             TreeNode            node = info.Node;
             if (info != null && info.Node != null && m_arbreCategories.GetObjetInNode(info.Node) is CCategorieGED)
             {
                 CCategorieGED categorie = m_arbreCategories.GetObjetInNode(info.Node) as CCategorieGED;
                 foreach (CReferenceObjetDonnee refDoc in (CReferenceObjetDonnee[])e.Data.GetData(typeof(CReferenceObjetDonnee[])))
                 {
                     CDocumentGED doc = refDoc.GetObjet(ctx) as CDocumentGED;
                     if (doc != null)
                     {
                         if (!bAddCategorie)//Supprime les anciennes catégories
                         {
                             CListeObjetsDonnees lst = doc.RelationsCategories;
                             CObjetDonneeAIdNumerique.Delete(lst, true);
                         }
                         bool bDedans = false;
                         foreach (CRelationDocumentGED_Categorie rel in doc.RelationsCategories)
                         {
                             if (rel.Categorie.Id == categorie.Id)
                             {
                                 bDedans = true;
                                 break;
                             }
                         }
                         if (!bDedans)
                         {
                             CRelationDocumentGED_Categorie newRel = new CRelationDocumentGED_Categorie(ctx);
                             newRel.CreateNewInCurrentContexte();
                             newRel.Categorie = categorie;
                             newRel.Document  = doc;
                         }
                     }
                 }
             }
             CResultAErreur result = ctx.CommitEdit();
             if (!result)
             {
                 CFormAfficheErreur.Show(result.Erreur);
             }
             else
             {
                 InitPanelList(m_elementSelectionne);
             }
         }
     }
     HightlightCategorie(null);
 }
コード例 #9
0
        private CResultAErreur CopyToFtp(
            int nIdSession,
            CDocumentGED document,
            string strNomFichierDest,
            string strUser,
            string strPassword)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!strNomFichierDest.ToUpper().StartsWith("FTP://"))
            {
                result.EmpileErreur(I.T("Bad file name '@1' for ftp transfert|20252", strNomFichierDest));
                return(result);
            }
            try
            {
                using (CProxyGED proxy = new CProxyGED(nIdSession, document.ReferenceDoc))
                {
                    result = proxy.CopieFichierEnLocal();
                    if (!result)
                    {
                        return(result);
                    }

                    FtpWebRequest req = (FtpWebRequest)WebRequest.Create(strNomFichierDest);
                    req.Method = WebRequestMethods.Ftp.UploadFile;
                    if (strUser.Length > 0 || strPassword.Length > 0)
                    {
                        req.Credentials = new NetworkCredential(strUser, strPassword);
                    }
                    FileStream reader        = new FileStream(proxy.NomFichierLocal, FileMode.Open, FileAccess.Read);
                    byte[]     buff          = new byte[1024];
                    Stream     requestStream = req.GetRequestStream();
                    int        nSize         = 0;
                    int        nSizeTotal    = 0;
                    while ((nSize = reader.Read(buff, 0, 1024)) > 0)
                    {
                        nSizeTotal += nSizeTotal;
                        requestStream.Write(buff, 0, nSize);
                    }
                    req.ContentLength = nSizeTotal;
                    requestStream.Close();
                    reader.Close();
                    FtpWebResponse reponse = (FtpWebResponse)req.GetResponse();
                    reponse.Close();
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #10
0
        //-------------------------------------------------------------------
        protected override void InitPanel()
        {
            //N'affiche que les éléments avec catégorie et non liés à un
            //élément.
            if (m_objetForGED == null)
            {
                if (!m_chkTousDocuments.Checked)
                {
                    m_panelListe.FiltreDeBase = new CFiltreDataAvance(
                        CDocumentGED.c_nomTable,

                        /*"has("+CRelationDocumentGED_Categorie.c_nomTable+"."+
                         * CRelationDocumentGED_Categorie.c_champId+") and "+*/
                        "hasno(" + CRelationElementToDocument.c_nomTable + "." +
                        CRelationElementToDocument.c_champId + ")");
                }
                else
                {
                    m_panelListe.FiltreDeBase = null;
                }
                m_chkTousDocuments.Visible = true;
            }
            else
            {
                m_chkTousDocuments.Visible = false;
                m_panelListe.FiltreDeBase  = CDocumentGED.GetListeDocumentsForElement(m_objetForGED).Filtre;
            }

            m_panelListe.ControlFiltreStandard = new CPanelFiltreDocumentGed();

            m_panelListe.InitFromListeObjets(
                m_listeObjets,
                typeof(CDocumentGED),
                typeof(CFormEditionDocumentGED),
                null, "");


            m_lnkDocRecent.Visible = m_objetForGED != null;

            m_panelListe.RemplirGrille();
            if (m_objetForGED == null)
            {
                m_lnkElement.Visible = false;
            }
            else
            {
                m_lnkElement.Visible = true;
                m_lnkElement.Text    = m_objetForGED.DescriptionElement;
            }
        }
コード例 #11
0
        private void DragDropFiles(string[] strFichiers, CObjetDonneeAIdNumerique objet, CCategorieGED categorie)
        {
            CContexteDonnee ctxAppli = CSc2iWin32DataClient.ContexteCourant;

            using (CContexteDonnee contexte = ctxAppli.GetContexteEdition())
            {
                if (MessageBox.Show(m_lblInfoDragDrop.Text, "", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    foreach (string strFichier in strFichiers)
                    {
                        if (File.Exists(strFichier))
                        {
                            string strTitre = Path.GetFileName(strFichier);
                            string strExt   = Path.GetExtension(strFichier);
                            if (strExt.Length > 0)
                            {
                                strTitre = strTitre.Remove(strTitre.Length - strExt.Length);
                            }
                            CDocumentGED document = new CDocumentGED(contexte);
                            document.CreateNewInCurrentContexte();
                            document.Libelle = strTitre;
                            if (objet != null)
                            {
                                document.AssocieA(objet);
                            }
                            if (categorie != null)
                            {
                                CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(contexte);
                                rel.CreateNewInCurrentContexte();
                                rel.Categorie = categorie;
                                rel.Document  = document;
                            }
                            CTypeReferenceDocument typeRef = m_cmbModeStockage.SelectedValue as CTypeReferenceDocument;
                            if (typeRef == null)
                            {
                                typeRef = new CTypeReferenceDocument(CTypeReferenceDocument.TypesReference.Fichier);
                            }
                            CProxyGED proxy = new CProxyGED(contexte.IdSession, typeRef.Code);
                            proxy.AttacheToLocal(strFichier);
                            CResultAErreur result = proxy.UpdateGed();
                            document.ReferenceDoc = result.Data as CReferenceDocument;
                        }
                    }
                    contexte.CommitEdit();
                    Init(m_elementEdite);
                }
            }
            m_lblInfoDragDrop.Visible = false;
        }
コード例 #12
0
        //-------------------------------------------------------------------------
        protected override CResultAErreur MAJ_Champs()
        {
            CResultAErreur result = base.MAJ_Champs();

            if (!result)
            {
                return(result);
            }

            CConsultationAlarmesEnCours param = Consultation.Parametres;

            param.FormuleFiltre = m_txtFormuleFiltre.Formule;
            m_PanelListChampsExport.MajChamps();
            param.ListeColonnes           = m_PanelListChampsExport.ListeChamps;
            param.DelaiMasquageTerminnees = (m_txtDelaiMasquage.Text.Length > 0)? Convert.ToInt32(m_txtDelaiMasquage.Text) :0;
            Consultation.Parametres       = param;

            if (File.Exists(m_strNomFichierLocal))
            {
                Consultation.SoundFile = m_txtFichierSonnerie.Text;
                CDocumentGED doc   = Consultation.DocumentGEDSoundFile;
                CProxyGED    proxy = new CProxyGED(Consultation.ContexteDonnee.IdSession,
                                                   doc == null ? null : doc.ReferenceDoc);
                proxy.AttacheToLocal(Consultation.SoundFile);
                result = proxy.UpdateGed();
                if (result)
                {
                    if (doc == null)
                    {
                        doc = new CDocumentGED(Consultation.ContexteDonnee);
                        doc.CreateNewInCurrentContexte();
                        doc.Descriptif   = "";
                        doc.DateCreation = DateTime.Now;
                        Consultation.DocumentGEDSoundFile = doc;
                    }
                    doc.Libelle      = I.T("Alarm sound file|50065");
                    doc.ReferenceDoc = (CReferenceDocument)result.Data;
                    doc.DateMAJ      = DateTime.Now;
                    doc.NumVersion++;
                    doc.IsFichierSysteme = true;
                    Consultation.DocumentGEDSoundFile = doc;
                }
            }

            Consultation.ActiverEMail = m_chkActiver.Checked;

            return(result);
        }
コード例 #13
0
ファイル: C2iMail.cs プロジェクト: ykebaili/sc2idlls
        //-----------------------------------------------------------------------------------
        private CResultAErreur EnregistrePieceJointeEnGED(MessagePart pieceJointe)
        {
            CResultAErreur result = CResultAErreur.True;

            if (pieceJointe != null && pieceJointe.IsAttachment)
            {
                int    nIndex       = pieceJointe.FileName.LastIndexOf(".");
                string strExtension = "";
                if (nIndex > 0)
                {
                    strExtension = pieceJointe.FileName.Substring(nIndex + 1);
                }
                else
                {
                    strExtension = "dat";
                }

                byte[] contenuPj = pieceJointe.Body;
                Stream fluxPJ    = new MemoryStream(contenuPj);
                if (fluxPJ.Length == 0)
                {
                    return(result);
                }

                CSourceDocument srcDoc          = new CSourceDocumentStream(fluxPJ, strExtension);
                CDocumentGED    documentAttache = new CDocumentGED(ContexteDonnee);
                documentAttache.CreateNewInCurrentContexte();
                documentAttache.AssocieA(this);
                documentAttache.Libelle = pieceJointe.FileName;
                result = CDocumentGED.SaveDocument(
                    ContexteDonnee.IdSession,
                    srcDoc,
                    new CTypeReferenceDocument(CTypeReferenceDocument.TypesReference.Fichier),
                    null,
                    false);
                srcDoc.Dispose();

                if (!result)
                {
                    return(result);
                }

                documentAttache.ReferenceDoc = result.Data as CReferenceDocument;
            }

            return(result);
        }
コード例 #14
0
        //-------------------------------------------------------------------------------------
        public static void AfficheAlarmes(CMemoryDb database, CParametrageAffichageListeAlarmes paramConsultation, CFormNavigateur nav)
        {
            CFormConsultationAlarmesEnCours form = new CFormConsultationAlarmesEnCours();

            form.Text         = paramConsultation.Libelle;
            form.m_dataBase   = database;
            form.m_navigateur = nav;
            form.TopMost      = false;
            CParametreAffichageListeAlarmes parametre = paramConsultation.ParametreAffichageAlarmes;

            if (parametre == null)
            {
                parametre = CParametreAffichageListeAlarmes.ParametreParDefaut;
            }

            form.m_parametreAffichage = parametre;

            CDocumentGED docSonnerie = paramConsultation.DocumentFichierSon;

            if (docSonnerie != null && docSonnerie.ReferenceDoc != null)
            {
                CProxyGED proxySonnerie = new CProxyGED(paramConsultation.ContexteDonnee.IdSession, docSonnerie.ReferenceDoc);
                if (proxySonnerie.CopieFichierEnLocal())
                {
                    form.m_proxySonnerie = proxySonnerie;
                }
                else
                {
                    proxySonnerie.Dispose();
                    proxySonnerie = null;
                }
            }

            form.m_dicImages.Clear();
            CListeObjetsDonnees listTypesAlarmes = new CListeObjetsDonnees(paramConsultation.ContexteDonnee, typeof(CTypeAlarme));

            foreach (CTypeAlarme typeAlarme in listTypesAlarmes)
            {
                if (typeAlarme.Image != null)
                {
                    form.m_dicImages.Add(typeAlarme.Id.ToString(), typeAlarme.Image);
                }
            }

            form.Show();
        }
コード例 #15
0
        public void Init(IObjetDonneeAIdNumerique element)
        {
            m_elementEdite = element;

            m_cmbModeStockage.NullAutorise      = false;
            m_cmbModeStockage.ProprieteAffichee = "Libelle";
            CDocumentGED dummyDoc = new CDocumentGED(CSc2iWin32DataClient.ContexteCourant);

            m_cmbModeStockage.ListDonnees   = dummyDoc.TypesAutorisesPourLesUtilisateurs;
            m_cmbModeStockage.SelectedValue = dummyDoc.TypesAutorisesPourLesUtilisateurs[0];
            m_panelModeStockage.Visible     = dummyDoc.TypesAutorisesPourLesUtilisateurs.Length > 1;


            ReactualiserArbre();
            FillCategoriesForElement(m_elementEdite);
            InitPanelList();
        }
コード例 #16
0
        //--------------------------------------------------------------------------------
        private void AddDoc(string strNomFichier, IEnumerable <CCategorieGED> lstCats)
        {
            CDocumentGED doc = new CDocumentGED(m_contexteDonnee);

            doc.CreateNewInCurrentContexte();
            doc.Libelle = Path.GetFileName(strNomFichier);
            foreach (CObjetDonneeAIdNumerique objet in m_wndDocuments.GetListeAssociations(m_source))
            {
                doc.AssocieA(objet);
            }
            foreach (CCategorieGED categorie in lstCats)
            {
                doc.AddCategory(categorie);
            }

            C2iWndDocumentsGed.CInfoAffectationDocumentToGed info = new C2iWndDocumentsGed.CInfoAffectationDocumentToGed(strNomFichier, m_source);
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(info);

            foreach (CAffectationsProprietes aff in m_wndDocuments.Affectations)
            {
                CResultAErreur result = CResultAErreur.True;
                result.Data = true;
                if (aff.FormuleCondition != null)
                {
                    result = aff.FormuleCondition.Eval(ctx);
                }
                if (result && result.Data is bool && (bool)result.Data)
                {
                    result = aff.AffecteProprietes(doc, info, m_fournisseurProprietes);
                    if (!result)
                    {
                        result.EmpileErreur(I.T("Some values cannot be assigned to EDM Document"));
                        CFormAfficheErreur.Show(result.Erreur);
                    }
                }
            }

            CNouveauDoc nouveauDoc = new CNouveauDoc(doc, strNomFichier);

            m_listeDocuments.Add(doc);
            m_listeNouveauxDocs.Add(nouveauDoc);
            UpdateVisuel();
        }
コード例 #17
0
        public CFichierAttache(DataSet ds, CDocumentGED docGED)
        {
            m_doc_GED = docGED;
            DataTable dt = ds.Tables[c_nomTable];

            if (dt == null)
            {
                return;
            }

            DataRow row = dt.NewRow();

            row[c_champKey]              = docGED.Cle != "" ? docGED.Cle : docGED.IdUniversel;
            row[c_champNomFichier]       = docGED.Libelle;
            row[c_champDateUpload]       = docGED.DateCreation;
            row[c_champDateDocument]     = docGED.DateMAJ;
            row[c_champCommentaire]      = docGED.Descriptif;
            row[c_champCheminTemporaire] = "";

            m_row = row;
            dt.Rows.Add(row);
        }
コード例 #18
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CDocumentGED doc = (CDocumentGED)objet;

                ///Stef, le 16/10/2009 : le nom d'un doc n'est plus unique

                /*if (!CObjetDonneeAIdNumerique.IsUnique(doc, CDocumentGED.c_champLibelle, doc.Libelle))
                 * {
                 *      result.EmpileErreur(I.T("Another document with this label already exist|114"));
                 *      return result;
                 * }*/
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #19
0
 //--------------------------------------------------------------------------
 private void m_lblDragExisting_DragDrop(object sender, DragEventArgs e)
 {
     if (m_elementEdite != null)
     {
         CReferenceObjetDonnee[] refs = e.Data.GetData(typeof(CReferenceObjetDonnee[])) as CReferenceObjetDonnee[];
         CReferenceObjetDonnee   ref1 = e.Data.GetData(typeof(CReferenceObjetDonnee)) as CReferenceObjetDonnee;
         if (ref1 != null)
         {
             List <CReferenceObjetDonnee> lst = new List <CReferenceObjetDonnee>();
             lst.Add(ref1);
             refs = lst.ToArray();
         }
         CObjetDonneeAIdNumerique obj = m_elementEdite as CObjetDonneeAIdNumerique;
         if (obj != null && refs != null)
         {
             using (CContexteDonnee ctx = new CContexteDonnee(obj.ContexteDonnee.IdSession, true, false))
             {
                 obj = obj.GetObjetInContexte(ctx) as CObjetDonneeAIdNumerique;
                 foreach (CReferenceObjetDonnee refObj in refs)
                 {
                     CDocumentGED doc = refObj.GetObjet(ctx) as CDocumentGED;
                     if (doc != null)
                     {
                         doc.AssocieA(obj);
                     }
                 }
                 CResultAErreur result = ctx.SaveAll(true);
                 if (!result)
                 {
                     CFormAlerte.Afficher(result.Erreur);
                 }
                 else
                 {
                     Init(m_elementEdite);
                 }
             }
         }
     }
 }
コード例 #20
0
        /// ///////////////////////////////////////////
        public override sc2i.common.CResultAErreur RunService(object parametre)
        {
            CResultAErreur result = CResultAErreur.True;

            CActionCopieDocumentGed.CParametreCopierLocalDansGed parametreCopie = parametre as CActionCopieDocumentGed.CParametreCopierLocalDansGed;
            if (parametreCopie == null)
            {
                result.EmpileErreur(I.T("Bad parameter value for service SetLocalFile|20125"));
                return(result);
            }
            using (CContexteDonnee contexte = new CContexteDonnee(CTimosApp.SessionClient.IdSession, true, false))
            {
                CDocumentGED document = new CDocumentGED(contexte);
                if (!document.ReadIfExists(parametreCopie.IdDocumentGed))
                {
                    result.EmpileErreur(I.T("Document @1 doesn't exists|20126"));
                    return(result);
                }
                try
                {
                    using (CProxyGED proxy = new CProxyGED(CTimosApp.SessionClient.IdSession, document.ReferenceDoc))
                    {
                        result = proxy.CopieFichierEnLocal();
                        if (!result)
                        {
                            return(result);
                        }
                        File.Copy(proxy.NomFichierLocal, parametreCopie.NomFichier, true);
                    }
                }
                catch (Exception e)
                {
                    result.EmpileErreur(new CErreurException(e));
                }
            }
            return(result);
        }
コード例 #21
0
        private CResultAErreur ImportNode(TreeNode node, bool bOnlyNonFaits)
        {
            CResultAErreur result = CResultAErreur.True;

            if (node != null && node.Tag is CRepertoire)
            {
                CRepertoire repertoire = node.Tag as CRepertoire;
                if (!bOnlyNonFaits || !repertoire.ImportDone)
                {
                    CProjet projetNominal = null;
                    if (m_dicNominalCodeToProjet.TryGetValue(repertoire.Nom, out projetNominal))
                    {
                        CImporteurGED importeur = new CImporteurGED();
                        projetNominal.BeginEdit();
                        CDocumentGED.DesactiverControleDocumentsALaSauvegarde(projetNominal.ContexteDonnee, true);
                        result = importeur.ImporteDossierProjet(
                            projetNominal,
                            repertoire,
                            "2014\\8\\IMPORT\\" + repertoire.Nom);
                        if (result)
                        {
                            result = projetNominal.CommitEdit();
                        }
                        Invoke((MethodInvoker) delegate
                        {
                            RefreshNode(node);
                        });
                        if (!result)
                        {
                            projetNominal.CancelEdit();
                            return(result);
                        }
                    }
                }
            }
            return(result);
        }
コード例 #22
0
        public CFormListeAlarmeEnCours(CConsultationAlarmesEnCoursInDb consultation, CFormNavigateur navigateur)
        {
            c_nBaseControleRetombee = 15000 / c_nTimeClignote;

            List <string> strNomColonnes;
            string        st;
            TimeSpan      duree;
            DateTime      start, stop;

            m_consultationEnCours = consultation;

            m_navigateur = navigateur;

            start = DateTime.Now;

            InitializeComponent();

            this.Text             = consultation.Libelle;
            m_timerVoyant.Enabled = true;

            stop  = DateTime.Now;
            duree = stop - start; //test duree = 8 sec !!!!!!!

            m_recepteurNotifications = new CRecepteurNotification(CSc2iWin32DataClient.ContexteCourant.IdSession, typeof(CDonneeNotificationAlarmes));
            m_recepteurNotifications.OnReceiveNotification += new NotificationEventHandler(OnReceiveNotificationAlarmEnCours);

            /*   m_recepteurNotificationsStop = new CRecepteurNotification(CSc2iWin32DataClient.ContexteCourant.IdSession, typeof(CDonneeNotificationAlarmesStop));
             * m_recepteurNotificationsStop.OnReceiveNotification += new NotificationEventHandler(OnReceiveNotificationStop);
             *
             * m_recepteurNotificationsMask = new CRecepteurNotification(CSc2iWin32DataClient.ContexteCourant.IdSession, typeof(CDonneeNotificationAlarmesMask));
             * m_recepteurNotificationsMask.OnReceiveNotification += new NotificationEventHandler(OnReceiveNotificationMask);
             *
             * m_recepteurNotificationsAcknowledge = new CRecepteurNotification(CSc2iWin32DataClient.ContexteCourant.IdSession, typeof(CDonneeNotificationAlarmesAcknowledge));
             * m_recepteurNotificationsAcknowledge.OnReceiveNotification += new NotificationEventHandler(OnReceiveNotificationAcknowledge);*/


            List <CInfoAlarmeAffichee> lstEnCours = new List <CInfoAlarmeAffichee>();
            List <CInfoAlarmeAffichee> lstRetombe = new List <CInfoAlarmeAffichee>();

            m_lstViewEnCours.OnGetDonneesObjet += new GetDonneesLigneEventHandler(GetDonneesObjetEnCours);
            m_lstViewRetombe.OnGetDonneesObjet += new GetDonneesLigneEventHandler(GetDonneesObjetRetombe);

            m_lstViewEnCours.DoubleClick += new EventHandler(OnLstViewEnCoursDoubleClick);
            m_lstViewRetombe.DoubleClick += new EventHandler(OnLstViewRetombeDoubleClick);

            lstEnCours = GetAlarmsInfoFromDB();

            strNomColonnes = m_consultationEnCours.Parametres.GetColumnNames();

            m_lstViewEnCours.Init(strNomColonnes.ToArray(), lstEnCours.ToArray());

            st = I.T("End date|60023");
            strNomColonnes.Add(st);
            st = I.T("Duration|60022");
            strNomColonnes.Add(st);
            m_lstViewRetombe.Init((string[])strNomColonnes.ToArray(), lstRetombe.ToArray());

            m_strMaskAdminButtonText = I.T("Alarms masked by Administrator|60016") + " : ";
            m_strMaskBrigButtonText  = I.T("Alarms masked by Operating agent|60017") + " : ";
            m_strFrequentButtonText  = I.T("Current frequent alarms|60018") + " : ";

            InitButtonsInfo();

            MAJFrequentButtonText();
            MAJAdminButtonText();
            MAJBrigButtonText();

            m_btnMaskedOnCreation.Text = I.T("Alarms masked on creation|60047") + " : " + m_NbMasqCreat.ToString();

            label1.Text = I.T("Current alarms|60014");
            label2.Text = I.T("Cleared alarms|60015");

            CDocumentGED docSonnerie = consultation.DocumentGEDSoundFile;

            if (docSonnerie != null && docSonnerie.ReferenceDoc != null)
            {
                m_proxySonnerie = new CProxyGED(consultation.ContexteDonnee.IdSession, docSonnerie.ReferenceDoc);
                if (!m_proxySonnerie.CopieFichierEnLocal())
                {
                    m_proxySonnerie.Dispose();
                    m_proxySonnerie = null;
                }
            }

            //SetVoyantAlarme();
            Type tpVar = GetType();

            Type tpGeneric = typeof(List <>);

            tpGeneric = tpGeneric.MakeGenericType(tpVar);

            object liste = Activator.CreateInstance(tpGeneric);
        }
コード例 #23
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            CProxyGED      proxy  = null;

            try
            {
                CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(Process);
                if (FormuleFichierSource == null)
                {
                    result.EmpileErreur(I.T("Incorrect source file formula|506"));
                    return(result);
                }
                result = FormuleFichierSource.Eval(ctxEval);
                if (!result)
                {
                    return(result);
                }


                string strFichier = "";

                if (result.Data is CDocumentGED)
                {
                    CDocumentGED doc = result.Data as CDocumentGED;
                    proxy  = new CProxyGED(contexte.IdSession, doc.ReferenceDoc);
                    result = proxy.CopieFichierEnLocal();
                    if (!result)
                    {
                        return(result);
                    }
                    strFichier = proxy.NomFichierLocal;
                }
                else
                {
                    strFichier = result.Data.ToString();
                }
                if (!File.Exists(strFichier))
                {
                    result.EmpileErreur(I.T("Source file @1 doesn't exist |508", result.Data.ToString()));
                    return(result);
                }

                if (FormuleTableAImporter == null)
                {
                    result.EmpileErreur(I.T("Incorrect destination table formula|505"));
                    return(result);
                }
                result = FormuleTableAImporter.Eval(ctxEval);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while evaluating destination table formula|510"));
                    return(result);
                }
                if (!(result.Data is CTableParametrable))
                {
                    result.EmpileErreur(I.T("Destination table formula doesn't return a table|511"));
                    return(result);
                }
                CTableParametrable tableParametrable = (CTableParametrable)result.Data;

                if (tableParametrable.TypeTable.ParametrageCSV == null)
                {
                    result.EmpileErreur(I.T("Table type @1 doesn't contains import setup|20002", tableParametrable.TypeTable.Libelle));
                    return(result);
                }

                // Sélectionne le type de fichier Excel ou CSV (texte)
                IParametreLectureFichier parametre;
                int    nPositionduPoint = strFichier.LastIndexOf('.');
                string strExtension     = strFichier.Substring(nPositionduPoint + 1, strFichier.Length - nPositionduPoint - 1);
                if (strExtension.ToUpper() == "XLS" || strExtension.ToUpper() == "XLSX")
                {
                    parametre = tableParametrable.TypeTable.ParametrageXLS;
                }
                else
                {
                    parametre = tableParametrable.TypeTable.ParametrageCSV;
                }

                result = parametre.LectureFichier(strFichier);

                if (!result || !(result.Data is DataTable))
                {
                    result.EmpileErreur(I.T("Error while reading text file|509"));
                    return(result);
                }
                DataTable tableSource = (DataTable)result.Data;

                Dictionary <DataColumn, CColonneTableParametrable> mappage = new Dictionary <DataColumn, CColonneTableParametrable>();
                int nNbChamps = Math.Min(parametre.Mappage.StringsA.Count, parametre.Mappage.StringsB.Count);
                for (int nChamp = 0; nChamp < nNbChamps; nChamp++)
                {
                    DataColumn col = tableSource.Columns[parametre.Mappage.StringsA[nChamp]];
                    if (col != null)
                    {
                        CColonneTableParametrable colRetenue = null;
                        foreach (CColonneTableParametrable colonne in tableParametrable.TypeTable.Colonnes)
                        {
                            if (colonne.Libelle == parametre.Mappage.StringsB[nChamp])
                            {
                                colRetenue = colonne;
                                break;
                            }
                        }
                        if (colRetenue != null)
                        {
                            mappage[col] = colRetenue;
                        }
                    }
                }


                // Réalise l'import
                result = tableParametrable.ImportTable(tableSource, mappage, m_modeImport);
                if (!result)
                {
                    return(result);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                if (proxy != null)
                {
                    proxy.Dispose();
                }
            }

            return(result);
        }
コード例 #24
0
ファイル: CExpediteurMail.cs プロジェクト: ykebaili/Timos
        /// ////////////////////////////////////////////////////////////////
        public CResultAErreur SendMail(CMailSC2I mail)
        {
            CResultAErreur result  = CResultAErreur.True;
            MailMessage    message = new MailMessage();

            message.From       = new MailAddress(mail.Expediteur);
            message.Subject    = mail.Sujet;
            message.Body       = mail.Message;
            message.IsBodyHtml = mail.IsFormatHTML;
            // Destinataires To
            if (mail.Destinataires != null)
            {
                foreach (string strDest in mail.Destinataires)
                {
                    message.To.Add(new MailAddress(strDest));
                }
            }

            // Destinataires CC
            if (mail.DestinatairesCC != null)
            {
                foreach (string strDest in mail.DestinatairesCC)
                {
                    message.CC.Add(new MailAddress(strDest));
                }
            }

            // Destinataires BCC
            if (mail.DestinatairesBCC != null)
            {
                foreach (string strDest in mail.DestinatairesBCC)
                {
                    message.Bcc.Add(new MailAddress(strDest));
                }
            }


            ArrayList lstProxy = new ArrayList();

            using (CContexteDonnee contexte = new CContexteDonnee(IdSession, true, false))
            {
                foreach (int nIdDoc in mail.DocumentsGED)
                {
                    CDocumentGED doc = new CDocumentGED(contexte);
                    if (doc.ReadIfExists(nIdDoc) && doc.ReferenceDoc != null)
                    {
                        CProxyGED proxy = new CProxyGED(IdSession, doc.ReferenceDoc);
                        // Ajouter un paramètre optionnel CopieFichierEnLocal(doc.Libelle)
                        if (proxy.CopieFichierEnLocal(mail.UseDocLabelAsFileName ? doc.Libelle : ""))
                        {
                            lstProxy.Add(proxy);
                            Attachment att = new Attachment(proxy.NomFichierLocal);
                            message.Attachments.Add(att);
                        }
                    }
                }
            }

            try
            {
                string strServeur = "";
                string strUser    = "";
                string strPass    = "";
                int    nPort      = 0;

                if (mail.SMTPServer != String.Empty)
                {
                    strServeur = mail.SMTPServer;
                    nPort      = mail.SMTPPort;
                    strUser    = mail.SMTPUser;
                    strPass    = mail.SMTPPassword;
                }
                else
                {
                    strServeur = CTimosServeurRegistre.SMTPServer;
                    nPort      = CTimosServeurRegistre.SMTPPort;
                    strUser    = CTimosServeurRegistre.SMTPUser;
                    strPass    = CTimosServeurRegistre.SMTPPassword;
                }

                using (SmtpClient clientSmtp = new SmtpClient())
                {
                    clientSmtp.Host = strServeur;
                    if (nPort > 0)
                    {
                        clientSmtp.Port = nPort;
                    }
                    if (strUser != "" || strPass != "")
                    {
                        clientSmtp.Credentials = new NetworkCredential(strUser, strPass);
                    }
                    else
                    {
                        clientSmtp.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
                    }
                    clientSmtp.Send(message);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(e.ToString());
                result.EmpileErreur(I.T("Error while sending mail|30000"));
            }
            finally
            {
                message.Dispose();
            }
            foreach (CProxyGED proxy in lstProxy)
            {
                proxy.Dispose();
            }
            return(result);
        }
コード例 #25
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result        = CResultAErreur.True;
            CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);

            if (sessionClient != null)
            {
                if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                {
                    using (C2iSponsor sponsor = new C2iSponsor())
                    {
                        CServiceSurClient service        = sessionClient.GetServiceSurClient(c_idServiceSelectMultiForGed);
                        CServiceSurClient serviceGetFile = sessionClient.GetServiceSurClient(CActionCopierLocalDansGed.c_idServiceClientGetFichier);
                        if (service != null && serviceGetFile != null)
                        {
                            sponsor.Register(service);
                            sponsor.Register(serviceGetFile);
                            //Calcule la liste des ids de catégories à gérer
                            List <int> lstIds = new List <int>();
                            if (FormuleListeCategories != null)
                            {
                                CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process);
                                contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
                                result = FormuleListeCategories.Eval(contexteEval);
                                if (!result)
                                {
                                    return(result);
                                }

                                IEnumerable lst = result.Data as IEnumerable;
                                if (lst != null)
                                {
                                    foreach (object obj in lst)
                                    {
                                        if (obj is int)
                                        {
                                            lstIds.Add((int)obj);
                                        }
                                        if (obj is CCategorieGED)
                                        {
                                            lstIds.Add(((CCategorieGED)obj).Id);
                                        }
                                    }
                                }
                            }
                            result = service.RunService(lstIds);
                            if (result && result.Data is IEnumerable)
                            {
                                List <CDocumentGED> lstDocs = new List <CDocumentGED>();
                                foreach (object obj in (IEnumerable)result.Data)
                                {
                                    CInfoFichierToGed info = obj as CInfoFichierToGed;
                                    if (info != null)
                                    {
                                        string          strContenu = info.FileFullName;
                                        CSourceDocument sourceDoc  = null;
                                        result = serviceGetFile.RunService(strContenu);
                                        if (!result)
                                        {
                                            return(result);
                                        }
                                        sourceDoc = result.Data as CSourceDocument;
                                        if (sourceDoc == null)
                                        {
                                            result.EmpileErreur(I.T("Error while retrieving file @1|20020", strContenu));
                                            return(result);
                                        }


                                        //On a notre fichier en local, création du document
                                        string strCle     = "";
                                        string strLibelle = "";
                                        info.ActiveProcess = contexte.Branche.Process;
                                        CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(info);
                                        if (FormuleCle != null)
                                        {
                                            result = FormuleCle.Eval(ctxEval);
                                            if (result && result.Data != null)
                                            {
                                                strCle = result.Data.ToString();
                                            }
                                            else
                                            {
                                                result.EmpileErreur(I.T("Document key could not be computed|30050"));
                                                return(result);
                                            }
                                        }
                                        if (FormuleLibelleDocument != null)
                                        {
                                            result = FormuleLibelleDocument.Eval(ctxEval);
                                            if (result && result.Data != null)
                                            {
                                                strLibelle = result.Data.ToString();
                                            }
                                            else
                                            {
                                                result.EmpileErreur(I.T("Document label could not be computed|30051"));
                                                return(result);
                                            }
                                        }
                                        if (strLibelle.Length == 0)
                                        {
                                            strLibelle = info.FileName;
                                        }

                                        CObjetDonneeAIdNumerique associeA = null;
                                        if (FormuleElementAssocie != null)
                                        {
                                            result = FormuleElementAssocie.Eval(ctxEval);
                                            if (result)
                                            {
                                                associeA = result.Data as CObjetDonneeAIdNumerique;
                                            }
                                        }



                                        CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee);
                                        //Si la clé n'est pas nulle, cherche un document avec cette clé
                                        if (strCle.Trim() != "")
                                        {
                                            CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle);
                                            if (!doc.ReadIfExists(filtre))
                                            {
                                                doc.CreateNew();
                                            }
                                            else
                                            {
                                                doc.BeginEdit();
                                            }
                                        }
                                        else
                                        {
                                            doc.CreateNew();
                                        }
                                        doc.Libelle = strLibelle;
                                        doc.Cle     = strCle;

                                        ArrayList lstToCreate = new ArrayList();
                                        lstToCreate.Add(info.EDMCategoryId);
                                        ArrayList lstToDelete = new ArrayList();
                                        //Affecte les catégories
                                        CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc);
                                        foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes)
                                        {
                                            if (!lstToCreate.Contains(rel.Categorie.Id))
                                            {
                                                lstToDelete.Add(rel);
                                            }
                                            lstToCreate.Remove(rel.Categorie.Id);
                                        }
                                        foreach (CRelationDocumentGED_Categorie rel in lstToDelete)
                                        {
                                            rel.Delete();
                                        }
                                        foreach (int nId in lstToCreate)
                                        {
                                            CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee);
                                            if (cat.ReadIfExists(nId))
                                            {
                                                CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee);
                                                rel.CreateNewInCurrentContexte();
                                                rel.Categorie = cat;
                                                rel.Document  = doc;
                                            }
                                        }

                                        result = CDocumentGED.SaveDocument(contexte.IdSession, sourceDoc, sourceDoc.TypeReference, doc.ReferenceDoc, true);


                                        if (!result)
                                        {
                                            return(result);
                                        }
                                        CReferenceDocument refDoc = result.Data as CReferenceDocument;
                                        doc.ReferenceDoc = refDoc;
                                        if (associeA != null)
                                        {
                                            doc.AssocieA(associeA);
                                        }
                                        result = doc.CommitEdit();
                                        if (!result)
                                        {
                                            return(result);
                                        }
                                        lstDocs.Add(doc);
                                    }
                                }
                                if (VariableResultat != null)
                                {
                                    Process.SetValeurChamp(VariableResultat, lstDocs.ToArray());
                                }
                                return(result);
                            }
                        }
                    }
                }
            }

            //Utilisateur pas accessible
            foreach (CLienAction lien in GetLiensSortantHorsErreur())
            {
                if (lien is CLienUtilisateurAbsent)
                {
                    result.Data = lien;
                    return(result);
                }
            }
            return(result);
        }
コード例 #26
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result        = CResultAErreur.True;
            CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);

            if (sessionClient != null)
            {
                //TESTDBKEYOK
                if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                {
                    using (C2iSponsor sponsor = new C2iSponsor())
                    {
                        CServiceSurClient             service          = sessionClient.GetServiceSurClient(c_idServiceClientGetFichier);
                        CParametresCopierLocalDansGed parametreService = new CParametresCopierLocalDansGed();
                        CFichierLocalTemporaire       fichierLocal     = null;
                        FileStream localStream = null;
                        if (service != null)
                        {
                            sponsor.Register(service);
                            //Calcule le contenu
                            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(contexte.Branche.Process);
                            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
                            result = ExpressionContenu.Eval(contexteEval);
                            if (!result)
                            {
                                return(result);
                            }
                            parametreService.NomFichierLocal = result.Data as string;

                            if (ExpressionUser != null && (result = ExpressionUser.Eval(contexteEval)))
                            {
                                if (result.Data != null)
                                {
                                    parametreService.User = result.Data.ToString();
                                }
                            }

                            if (ExpressionPassword != null && (result = ExpressionPassword.Eval(contexteEval)))
                            {
                                if (result.Data != null)
                                {
                                    parametreService.Password = result.Data.ToString();
                                }
                            }

                            CSourceDocument sourceDoc = null;
                            if (parametreService.NomFichierLocal.ToUpper().StartsWith("FTP://"))
                            {
                                CResultAErreurType <CFichierLocalTemporaire> resFic = GetFileFromFtp(
                                    parametreService);
                                if (!resFic)
                                {
                                    result.EmpileErreur(resFic.Erreur);
                                    return(result);
                                }
                                fichierLocal = resFic.DataType;
                                localStream  = new FileStream(fichierLocal.NomFichier, FileMode.Open, FileAccess.Read);
                                sourceDoc    = new CSourceDocumentStream(localStream, "txt");
                            }
                            else if (!m_bCreerFichierTexteAPartirDeLaFormuleContenu)
                            {
                                result = service.RunService(parametreService);
                                if (!result)
                                {
                                    return(result);
                                }
                                sourceDoc = result.Data as CSourceDocument;
                                if (sourceDoc == null)
                                {
                                    result.EmpileErreur(I.T("Error while retrieving file @1|20020", parametreService.NomFichierLocal));
                                    return(result);
                                }
                            }
                            else
                            {
                                fichierLocal = new CFichierLocalTemporaire("txt");
                                localStream  = new FileStream(fichierLocal.NomFichier, FileMode.CreateNew, FileAccess.Write);
                                StreamWriter writer = new StreamWriter(localStream);
                                writer.Write(parametreService.NomFichierLocal);
                                writer.Close();
                                localStream.Close();
                                localStream = new FileStream(fichierLocal.NomFichier, FileMode.Open, FileAccess.Read);
                                sourceDoc   = new CSourceDocumentStream(localStream, "txt");
                            }
                            //On a notre fichier en local, création du document
                            string strCle        = "";
                            string strDescriptif = "";
                            string strLibelle    = "";
                            result = ExpressionCle.Eval(contexteEval);
                            if (result)
                            {
                                strCle = result.Data.ToString();
                            }
                            else
                            {
                                result.EmpileErreur(I.T("Document key could not be computed|30050"));
                                return(result);
                            }


                            result = ExpressionLibelle.Eval(contexteEval);
                            if (result)
                            {
                                strLibelle = result.Data.ToString();
                            }
                            else
                            {
                                result.EmpileErreur(I.T("Document label could not be computed|30051"));
                                return(result);
                            }

                            result = ExpressionDescriptif.Eval(contexteEval);
                            if (result)
                            {
                                strDescriptif = result.Data.ToString();
                            }
                            else
                            {
                                result.EmpileErreur(I.T("Document description could not be computed|30052"));
                                return(result);
                            }

                            CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee);
                            //Si la clé n'est pas nulle, cherche un document avec cette clé
                            if (strCle.Trim() != "")
                            {
                                CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle);
                                if (!doc.ReadIfExists(filtre))
                                {
                                    doc.CreateNew();
                                }
                                else
                                {
                                    doc.BeginEdit();
                                }
                            }
                            else
                            {
                                doc.CreateNew();
                            }
                            doc.Libelle    = strLibelle;
                            doc.Descriptif = strDescriptif;
                            doc.Cle        = strCle;

                            List <CDbKey> lstToCreate = new List <CDbKey>(ListeDbKeysCategoriesStockage);
                            List <CRelationDocumentGED_Categorie> lstToDelete = new List <CRelationDocumentGED_Categorie>();
                            //Affecte les catégories
                            CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc);
                            foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes)
                            {
                                if (!lstToCreate.Contains(rel.Categorie.DbKey))
                                {
                                    lstToDelete.Add(rel);
                                }
                                lstToCreate.Remove(rel.Categorie.DbKey);
                            }
                            foreach (CRelationDocumentGED_Categorie rel in lstToDelete)
                            {
                                rel.Delete();
                            }
                            foreach (CDbKey dbKey in lstToCreate)
                            {
                                CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee);
                                if (cat.ReadIfExists(dbKey))
                                {
                                    CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee);
                                    rel.CreateNewInCurrentContexte();
                                    rel.Categorie = cat;
                                    rel.Document  = doc;
                                }
                            }
                            result = CDocumentGED.SaveDocument(contexte.IdSession, sourceDoc, sourceDoc.TypeReference, doc.ReferenceDoc, true);
                            if (sourceDoc != null)
                            {
                                sourceDoc.Dispose();
                            }
                            if (localStream != null)
                            {
                                localStream.Dispose();
                            }
                            if (fichierLocal != null)
                            {
                                fichierLocal.Dispose();
                            }


                            if (!result)
                            {
                                return(result);
                            }
                            CReferenceDocument refDoc = result.Data as CReferenceDocument;
                            doc.ReferenceDoc = refDoc;
                            result           = doc.CommitEdit();
                            if (!result)
                            {
                                return(result);
                            }
                            if (VariableResultat != null)
                            {
                                Process.SetValeurChamp(VariableResultat, doc);
                            }
                            return(result);
                        }
                    }
                }
            }
            //Utilisateur pas accessible
            foreach (CLienAction lien in GetLiensSortantHorsErreur())
            {
                if (lien is CLienUtilisateurAbsent)
                {
                    result.Data = lien;
                    return(result);
                }
            }
            return(result);
        }
コード例 #27
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur ExecuteAction(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                // Récupère la structure par formule ou structure propore
                m_structureUtiliseeAExecution = StructureExport;

                IVariableDynamique variableProcess = AssureVariableProcessDansStructure();
                m_structureUtiliseeAExecution.SetValeurChamp(variableProcess.IdVariable, Process);
                m_structureUtiliseeAExecution.ContexteDonnee = contexte.ContexteDonnee;

                // Si la structure possede un formulaire il faut lancer le service sur le poste client
                if (m_structureUtiliseeAExecution != null && m_structureUtiliseeAExecution.Formulaire != null && m_structureUtiliseeAExecution.Formulaire.Childs.Length > 0)
                {
                    CSessionClient sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);
                    if (sessionClient != null)
                    {
                        //TESTDBKEYOK
                        if (sessionClient.GetInfoUtilisateur().KeyUtilisateur == contexte.Branche.KeyUtilisateur)
                        {
                            using (C2iSponsor sponsor = new C2iSponsor())
                            {
                                CServiceSurClient service = sessionClient.GetServiceSurClient(c_idServiceClientExporterDonnees);
                                if (service != null)
                                {
                                    sponsor.Register(service);

                                    result = service.RunService(this);

                                    E2iDialogResult dResult = (E2iDialogResult)result.Data;
                                    if (dResult == E2iDialogResult.Cancel)
                                    {
                                        foreach (CLienAction lien in GetLiensSortantHorsErreur())
                                        {
                                            if (lien is CLienFromDialog &&
                                                ((CLienFromDialog)lien).ResultAssocie == dResult)
                                            {
                                                result.Data = lien;
                                                return(result);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    //Utilisateur pas accessible
                                    foreach (CLienAction lien in GetLiensSortantHorsErreur())
                                    {
                                        if (lien is CLienUtilisateurAbsent)
                                        {
                                            result.Data = lien;
                                            return(result);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    else
                    {
                        //Utilisateur pas accessible
                        foreach (CLienAction lien in GetLiensSortantHorsErreur())
                        {
                            if (lien is CLienUtilisateurAbsent)
                            {
                                result.Data = lien;
                                return(result);
                            }
                        }
                    }
                }


                result = m_structureUtiliseeAExecution.GetDataSet(Exporteur.ExporteStructureOnly);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while exporting data|405"));
                    return(result);
                }

                DataSet ds = (DataSet)result.Data;

                // Fichier d'export retourné
                CFichierLocalTemporaire fichierExport = new CFichierLocalTemporaire(Exporteur.ExtensionParDefaut);
                fichierExport.CreateNewFichier();
                CDestinationExportFile dest = new CDestinationExportFile(fichierExport.NomFichier);
                result = Exporteur.Export(ds, dest);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while creating export file|406"));
                    return(result);
                }

                #region Stockage dans la ged

                CContexteEvaluationExpression contexteEvaluation = new CContexteEvaluationExpression(Process);
                //On a notre fichier export, création du document
                string strCle        = "";
                string strDescriptif = "";
                string strLibelle    = "";
                result = ExpressionCle.Eval(contexteEvaluation);
                if (result)
                {
                    strCle = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document key could not be calculated|407"));
                    return(result);
                }


                result = ExpressionLibelle.Eval(contexteEvaluation);
                if (result)
                {
                    strLibelle = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document label could not be calculated|408"));
                    return(result);
                }

                result = ExpressionDescriptif.Eval(contexteEvaluation);
                if (result)
                {
                    strDescriptif = result.Data.ToString();
                }
                else
                {
                    result.EmpileErreur(I.T("The document description could not be calculated|409"));
                    return(result);
                }

                CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee);
                //Si la clé n'est pas nulle, cherche un document avec cette clé
                if (strCle.Trim() != "")
                {
                    CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle);
                    if (!doc.ReadIfExists(filtre))
                    {
                        doc.CreateNew();
                    }
                    else
                    {
                        doc.BeginEdit();
                    }
                }
                else
                {
                    doc.CreateNew();
                }
                doc.Libelle    = strLibelle;
                doc.Descriptif = strDescriptif;
                doc.Cle        = strCle;

                ArrayList lstToCreate = (ArrayList)ListeIdsCategoriesStockage.Clone();
                ArrayList lstToDelete = new ArrayList();
                //Affecte les catégories
                CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc);
                foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes)
                {
                    if (!lstToCreate.Contains(rel.Categorie.Id))
                    {
                        lstToDelete.Add(rel);
                    }
                    lstToCreate.Remove(rel.Categorie.Id);
                }
                foreach (CRelationDocumentGED_Categorie rel in lstToDelete)
                {
                    rel.Delete();
                }
                foreach (int nId in lstToCreate)
                {
                    CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee);
                    if (cat.ReadIfExists(nId))
                    {
                        CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee);
                        rel.CreateNewInCurrentContexte();
                        rel.Categorie = cat;
                        rel.Document  = doc;
                    }
                }
                CProxyGED proxy = new CProxyGED(Process.IdSession, doc.IsNew() ? null : doc.ReferenceDoc);
                proxy.AttacheToLocal(fichierExport.NomFichier);
                result = proxy.UpdateGed();
                if (!result)
                {
                    return(result);
                }
                doc.ReferenceDoc = (CReferenceDocument)result.Data;
                result           = doc.CommitEdit();
                fichierExport.Dispose();
                if (VariableResultat != null)
                {
                    Process.SetValeurChamp(VariableResultat, doc);
                }

                #endregion

                foreach (CLienAction lien in GetLiensSortantHorsErreur())
                {
                    if (lien is CLienFromDialog &&
                        ((CLienFromDialog)lien).ResultAssocie != E2iDialogResult.Cancel)
                    {
                        result.Data = lien;
                        return(result);
                    }
                }

                result.Data = null;
                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
            }

            return(result);
        }
コード例 #28
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            //Préparation du filtre
            C2iRapportCrystal rapport = new C2iRapportCrystal(contexte.ContexteDonnee);

            if (!rapport.ReadIfExists(IdEtatCrystal))
            {
                result.EmpileErreur(I.T("The report @1 does not exist|30046", IdEtatCrystal.ToString()));
                return(result);
            }
            CContexteEvaluationExpression contexteEvaluation = new CContexteEvaluationExpression(Process);
            CMultiStructureExport         multiStructure     = rapport.MultiStructure;

            if (multiStructure == null)
            {
                result.EmpileErreur(I.T("The report does not have a data structure|30044"));
                return(result);
            }
            foreach (IVariableDynamique variable in multiStructure.ListeVariables)
            {
                if (variable.IsChoixUtilisateur())
                {
                    C2iExpression expressionVariable = GetExpressionForVariableFiltre(variable.IdVariable);
                    if (expressionVariable != null)
                    {
                        result = expressionVariable.Eval(contexteEvaluation);
                        if (!result)
                        {
                            result.EmpileErreur(I.T("Error in variable '@1' assignment|30047", variable.Nom));
                            return(result);
                        }
                        multiStructure.SetValeurChamp(variable, result.Data);
                    }
                }
            }
            ReportDocument report = null;

            try
            {
                result = rapport.CreateFichierExport(multiStructure, m_formatExport, ref report);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while creating the report|30048"));
                    return(result);
                }
                CFichierLocalTemporaire fichierPDF = (CFichierLocalTemporaire)result.Data;

                #region Impression de l'état
                if (m_bImprimerEtat)
                {
                    CSessionClient            sessionClient = CSessionClient.GetSessionForIdSession(contexte.IdSession);
                    CConfigurationsImpression configuration = sessionClient.ConfigurationsImpression;
                    if (configuration.NomImprimanteSurServeur != "")
                    {
                        report.PrintOptions.PrinterName = configuration.NomImprimanteSurServeur;
                    }
                    try
                    {
                        report.PrintToPrinter(1, false, 0, 0);
                    }
                    catch (Exception e)
                    {
                        result.EmpileErreur(new CErreurException(e));
                        result.EmpileErreur(I.T("Printing error|30049"));
                        return(result);
                    }

                    /*if ( sessionClient != null )
                     * {
                     *      if ( sessionClient.GetInfoUtilisateur().IdUtilisateur == contexte.Branche.IdUtilisateur )
                     *      {
                     *              if ( sessionClient.ConfigurationsImpression.NomImprimanteSurClient != "" )
                     *                      report.PrintOptions.PrinterName = sessionClient.ConfigurationsImpression.NomImprimanteSurClient;
                     *              CServiceSurClient service = sessionClient.GetServiceSurClient ( CActionImprimerEtat.c_idServiceClientImprimerEtat );
                     *              if ( service != null )
                     *              {
                     *                      result = service.RunService ( report );
                     *              }
                     *      }
                     * }*/
                    /*
                     *                      using ( CFichierLocalTemporaire fichierRpt = new CFichierLocalTemporaire("rpt") )
                     *                      {
                     *                              fichierRpt.CreateNewFichier();
                     *                              try
                     *                              {
                     *                                      report.Refresh();
                     *                                      report.SaveAs (fichierRpt.NomFichier, ReportFileFormat.VSNetFileFormat );
                     *                              }
                     *                              catch ( Exception e )
                     *                              {
                     *                                      result.EmpileErreur ( new CErreurException ( e ) );
                     *                              }
                     *                              if ( result )
                     *                              {
                     *                                      //Stocke le fichier dans la ged pour pouvoir l'envoyer sur le client
                     *                                      using ( CProxyGED proxy = new CProxyGED ( Process.IdSession, null ) )
                     *                                      {
                     *                                              proxy.CreateNewFichier();
                     *                                              proxy.AttacheToLocal ( fichierRpt.NomFichier );
                     *
                     *                                              proxy.UpdateGed();
                     *
                     *                                              CReferenceDocument refDoc = proxy.ReferenceAttachee;
                     *                                              result = service.RunService ( refDoc );
                     *                                              if ( !result )
                     *                                              {
                     *                                                      result.EmpileErreur("Erreur à l'impression du document");
                     *                                                      return result;
                     *                                              }
                     *                                      }
                     *                              }
                     *                      }
                     *              }
                     *      }
                     * }*/
                }
                #endregion



                #region Stockage dans la ged

                if (m_bStockerGed)
                {
                    //On a notre fichier PDF, création du document
                    string strCle        = "";
                    string strDescriptif = "";
                    string strLibelle    = "";
                    result = ExpressionCle.Eval(contexteEvaluation);
                    if (result)
                    {
                        strCle = result.Data.ToString();
                    }
                    else
                    {
                        result.EmpileErreur(I.T("Document key could not be evaluated|30050"));
                        return(result);
                    }


                    result = ExpressionLibelle.Eval(contexteEvaluation);
                    if (result)
                    {
                        strLibelle = result.Data.ToString();
                    }
                    else
                    {
                        result.EmpileErreur(I.T("Document label could not be evaluated|30051"));
                        return(result);
                    }

                    result = ExpressionDescriptif.Eval(contexteEvaluation);
                    if (result)
                    {
                        strDescriptif = result.Data.ToString();
                    }
                    else
                    {
                        result.EmpileErreur(I.T("Document description could not be evaluated|30052"));
                        return(result);
                    }

                    CDocumentGED doc = new CDocumentGED(contexte.ContexteDonnee);
                    //Si la clé n'est pas nulle, cherche un document avec cette clé
                    if (strCle.Trim() != "")
                    {
                        CFiltreData filtre = new CFiltreData(CDocumentGED.c_champCle + "=@1", strCle);
                        if (!doc.ReadIfExists(filtre))
                        {
                            doc.CreateNew();
                        }
                        else
                        {
                            doc.BeginEdit();
                        }
                    }
                    else
                    {
                        doc.CreateNew();
                    }
                    doc.Libelle    = strLibelle;
                    doc.Descriptif = strDescriptif;
                    doc.Cle        = strCle;

                    ArrayList lstToCreate = (ArrayList)ListeIdsCategoriesStockage.Clone();
                    ArrayList lstToDelete = new ArrayList();
                    //Affecte les catégories
                    CListeObjetsDonnees listeCategoriesExistantes = CRelationDocumentGED_Categorie.GetRelationsCategoriesForDocument(doc);
                    foreach (CRelationDocumentGED_Categorie rel in listeCategoriesExistantes)
                    {
                        if (!lstToCreate.Contains(rel.Categorie.Id))
                        {
                            lstToDelete.Add(rel);
                        }
                        lstToCreate.Remove(rel.Categorie.Id);
                    }
                    foreach (CRelationDocumentGED_Categorie rel in lstToDelete)
                    {
                        rel.Delete();
                    }
                    foreach (int nId in lstToCreate)
                    {
                        CCategorieGED cat = new CCategorieGED(doc.ContexteDonnee);
                        if (cat.ReadIfExists(nId))
                        {
                            CRelationDocumentGED_Categorie rel = new CRelationDocumentGED_Categorie(doc.ContexteDonnee);
                            rel.CreateNewInCurrentContexte();
                            rel.Categorie = cat;
                            rel.Document  = doc;
                        }
                    }
                    CProxyGED proxy = new CProxyGED(Process.IdSession, doc.IsNew()?null:doc.ReferenceDoc);
                    proxy.AttacheToLocal(fichierPDF.NomFichier);
                    result = proxy.UpdateGed();
                    if (!result)
                    {
                        return(result);
                    }
                    doc.ReferenceDoc = (CReferenceDocument)result.Data;
                    result           = doc.CommitEdit();
                    fichierPDF.Dispose();
                    if (VariableResultat != null)
                    {
                        Process.SetValeurChamp(VariableResultat, doc);
                    }
                }
                #endregion
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                if (report != null)
                {
                    report.Close();
                }
            }

            return(result);
        }
コード例 #29
0
 //----------------------------------------------------------------------------------
 private void InitAffectations(CDocumentGED document)
 {
 }
コード例 #30
0
 //-------------------------------------------
 public CNouveauDoc(CDocumentGED document, string strNomFichier)
 {
     Document   = document;
     NomFichier = strNomFichier;
 }