private void ValiderInitialisation( )
        {
            try
            {
                List <string> codes = new List <string>();
                codes.Add(laDetailDemande.InfoDemande.CODE);

                ClasseMEthodeGenerique.TransmettreDemande(codes, true, this);
                //List<CsUtilisateur> leUser = new List<CsUtilisateur>();
                //if (laDetailDemande.InfoDemande != null && laDetailDemande.InfoDemande.CODE != null)
                //{
                //    foreach (CsUtilisateur item in laDetailDemande.InfoDemande.UtilisateurEtapeSuivante)
                //        leUser.Add(item);
                //    Shared.ClasseMEthodeGenerique.NotifierMailDemande(leUser, "0001", laDetailDemande.LaDemande.NUMDEM, laDetailDemande.LaDemande.LIBELLETYPEDEMANDE);
                //}
            }
            catch (Exception ex)
            {
                Message.ShowError("Une erreur est survenu suite à la validation", "Validation demande");
            }
        }
Esempio n. 2
0
        private void ValidationDemande(CsDemande _Lademande)
        {
            try
            {
                foreach (var item in _Lademande.LstCanalistion)
                {
                    item.ANNEEFAB     = string.IsNullOrEmpty(this.Txt_AnneeFab.Text) ? string.Empty : this.Txt_AnneeFab.Text;
                    item.CADRAN       = string.IsNullOrEmpty(this.Txt_CodeCadran.Text) ? Convert.ToByte(6) : Convert.ToByte(this.Txt_CodeCadran.Text);
                    item.NUMERO       = string.IsNullOrEmpty(this.Txt_NumCompteur.Text) ? string.Empty : this.Txt_NumCompteur.Text;
                    item.MARQUE       = string.IsNullOrEmpty(this.Txt_CodeMarque.Text) ? string.Empty : this.Txt_CodeMarque.Text;
                    item.TYPECOMPTEUR = string.IsNullOrEmpty(this.Txt_CodeTypeCompteur.Text) ? string.Empty : this.Txt_CodeTypeCompteur.Text;

                    item.FK_IDCALIBRE = null;
                    if (this.Txt_LibelleDiametre.Tag != null)
                    {
                        item.FK_IDCALIBRE = (int)this.Txt_LibelleDiametre.Tag;
                    }

                    item.FK_IDMARQUECOMPTEUR = (int)this.Txt_CodeMarque.Tag;
                    item.FK_IDTYPECOMPTEUR   = (int)this.Txt_CodeTypeCompteur.Tag;
                    item.USERCREATION        = UserConnecte.matricule;
                    item.USERMODIFICATION    = UserConnecte.matricule;
                    item.DATECREATION        = System.DateTime.Now;
                    item.DATEMODIFICATION    = System.DateTime.Now;
                }

                if (_Lademande.LaDemande == null)
                {
                    _Lademande.LaDemande = new CsDemandeBase();
                }
                _Lademande.LaDemande.MATRICULE        = UserConnecte.matricule;
                _Lademande.LaDemande.CENTRE           = _Lademande.Abonne != null ? _Lademande.Abonne.CENTRE:_Lademande.LaDemande.CENTRE;
                _Lademande.LaDemande.CLIENT           = _Lademande.Abonne != null ? _Lademande.Abonne.CLIENT : _Lademande.LaDemande.CLIENT;
                _Lademande.LaDemande.ORDRE            = _Lademande.Abonne != null ? _Lademande.Abonne.ORDRE : _Lademande.LaDemande.ORDRE;
                _Lademande.LaDemande.PRODUIT          = _Lademande.Abonne != null ? _Lademande.Abonne.PRODUIT : _Lademande.LaDemande.PRODUIT;
                _Lademande.LaDemande.STATUT           = SessionObject.Enumere.DemandeStatusEnAttente;
                _Lademande.LaDemande.TYPEDEMANDE      = Tdem;
                _Lademande.LaDemande.FK_IDTYPEDEMANDE = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == Tdem) != null?SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == Tdem).PK_ID : 0;

                _Lademande.LaDemande.FK_IDCENTRE  = (int)txtCentre.Tag;
                _Lademande.LaDemande.FK_IDPRODUIT = (int)txt_Produit.Tag;

                _Lademande.LaDemande.USERCREATION         = UserConnecte.matricule;
                _Lademande.LaDemande.USERMODIFICATION     = UserConnecte.matricule;
                _Lademande.LaDemande.DATECREATION         = System.DateTime.Now;
                _Lademande.LaDemande.DATEMODIFICATION     = System.DateTime.Now;
                _Lademande.LaDemande.ISDEMANDEREJETERINIT = false;
                _Lademande.LaDemande.MOTIF = string.IsNullOrEmpty(this.Txt_Motif.Text) ? string.Empty : this.Txt_Motif.Text;

                #region Doc Scanne
                if (_Lademande.ObjetScanne == null)
                {
                    _Lademande.ObjetScanne = new List <ObjDOCUMENTSCANNE>();
                }
                if (LstPiece.Count != 0)
                {
                    _Lademande.ObjetScanne.AddRange(LstPiece);
                }
                #endregion

                _Lademande.Abonne       = null;
                _Lademande.Branchement  = null;
                _Lademande.LeClient     = null;
                _Lademande.LstEvenement = null;
                _Lademande.EltDevis     = null;
                _Lademande.OrdreTravail = null;
                _Lademande.Ag           = null;

                //Lancer la transaction de mise a jour en base
                AcceuilServiceClient service1 = new AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));
                service1.ValiderDemandeInitailisationAsync(_Lademande);
                service1.ValiderDemandeInitailisationCompleted += (sr, res) =>
                {
                    if (!string.IsNullOrEmpty(res.Result))
                    {
                        if (!IsRejeterDemande)
                        {
                            string   Retour = res.Result;
                            string[] coupe  = Retour.Split('.');
                            Shared.ClasseMEthodeGenerique.InitWOrkflow(coupe[0], _Lademande.LaDemande.FK_IDCENTRE, coupe[1], _Lademande.LaDemande.FK_IDTYPEDEMANDE);
                        }
                        else
                        {
                            List <string> codes = new List <string>();
                            codes.Add(laDetailDemande.InfoDemande.CODE);

                            ClasseMEthodeGenerique.TransmettreDemande(codes, true, this);
                            //List<CsUtilisateur> leUser = new List<CsUtilisateur>();
                            //if (laDetailDemande.InfoDemande != null && laDetailDemande.InfoDemande.CODE != null)
                            //{
                            //    foreach (CsUtilisateur item in laDetailDemande.InfoDemande.UtilisateurEtapeSuivante)
                            //        leUser.Add(item);
                            //    Shared.ClasseMEthodeGenerique.NotifierMailDemande(leUser, "0001", laDetailDemande.LaDemande.NUMDEM, laDetailDemande.LaDemande.LIBELLETYPEDEMANDE);
                            //}
                        }
                    }
                    if (Closed != null)
                    {
                        Closed(this, new EventArgs());
                    }
                    this.DialogResult = false;
                };
                service1.CloseAsync();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void EnregisterOuTransmetre(bool isTransmetre)
        {
            if (laDetailDemande.EltDevis != null && laDetailDemande.EltDevis.Count != 0)
            {
                int idTrv = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperTRV).PK_ID;

                CsDemandeDetailCout leCoutduDevis = new CsDemandeDetailCout();
                leCoutduDevis.CENTRE       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CENTRE) ? null : laDetailDemande.LaDemande.CENTRE;
                leCoutduDevis.CLIENT       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CLIENT) ? null : laDetailDemande.LaDemande.CLIENT;
                leCoutduDevis.ORDRE        = string.IsNullOrEmpty(laDetailDemande.LaDemande.ORDRE) ? null : laDetailDemande.LaDemande.ORDRE;
                leCoutduDevis.FK_IDCENTRE  = laDetailDemande.LaDemande.FK_IDCENTRE;
                leCoutduDevis.NUMDEM       = string.IsNullOrEmpty(laDetailDemande.LaDemande.NUMDEM) ? string.Empty : laDetailDemande.LaDemande.NUMDEM;
                leCoutduDevis.COPER        = SessionObject.Enumere.CoperTRV;
                leCoutduDevis.FK_IDCOPER   = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperTRV).PK_ID;
                leCoutduDevis.FK_IDTAXE    = laDetailDemande.EltDevis.First().FK_IDTAXE.Value;
                leCoutduDevis.FK_IDDEMANDE = laDetailDemande.LaDemande.PK_ID;

                leCoutduDevis.REFEM        = DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString("00");
                leCoutduDevis.DATECREATION = DateTime.Now;
                leCoutduDevis.USERCREATION = UserConnecte.matricule;

                if (laDetailDemande.LaDemande.ISPRESTATION)
                {
                    if (laDetailDemande.LstCoutDemande != null)
                    {
                        leCoutduDevis.MONTANTHT   = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv && t.ISEXTENSION == false).Sum(h => h.MONTANTHT));
                        leCoutduDevis.MONTANTTAXE = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv && t.ISEXTENSION == false).Sum(h => h.MONTANTTAXE));
                        leCoutduDevis.MONTANTTTC  = leCoutduDevis.MONTANTHT + leCoutduDevis.MONTANTTAXE;
                        if (leCoutduDevis.MONTANTTTC > 0)
                        {
                            laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                        }
                    }
                    if (laDetailDemande.EltDevis.Where(t => t.ISEXTENSION == true) != null)
                    {
                        CsDemandeDetailCout leCout = Shared.ClasseMEthodeGenerique.RetourneCopyObjet <CsDemandeDetailCout>(leCoutduDevis);
                        leCout.MONTANTHT   = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv && t.ISEXTENSION == true).Sum(h => h.MONTANTHT));
                        leCout.MONTANTTAXE = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv && t.ISEXTENSION == true).Sum(h => h.MONTANTTAXE));
                        leCout.MONTANTTTC  = leCoutduDevis.MONTANTHT + leCoutduDevis.MONTANTTAXE;
                        leCout.ISEXTENSION = true;
                        if (leCout.MONTANTTTC > 0)
                        {
                            laDetailDemande.LstCoutDemande.Add(leCout);
                        }
                    }
                }
                else
                {
                    leCoutduDevis.MONTANTHT   = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv).Sum(h => h.MONTANTHT));
                    leCoutduDevis.MONTANTTAXE = (decimal?)Math.Ceiling((double)laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER == idTrv).Sum(h => h.MONTANTTAXE));
                    leCoutduDevis.MONTANTTTC  = leCoutduDevis.MONTANTHT + leCoutduDevis.MONTANTTAXE;
                    if (leCoutduDevis.MONTANTTTC > 0)
                    {
                        laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                    }
                }

                foreach (ObjELEMENTDEVIS item in laDetailDemande.EltDevis.Where(t => t.FK_IDCOPER != idTrv))
                {
                    leCoutduDevis              = new CsDemandeDetailCout();
                    leCoutduDevis.CENTRE       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CENTRE) ? null : laDetailDemande.LaDemande.CENTRE;
                    leCoutduDevis.CLIENT       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CLIENT) ? null : laDetailDemande.LaDemande.CLIENT;
                    leCoutduDevis.ORDRE        = string.IsNullOrEmpty(laDetailDemande.LaDemande.ORDRE) ? null : laDetailDemande.LaDemande.ORDRE;
                    leCoutduDevis.FK_IDCENTRE  = laDetailDemande.LaDemande.FK_IDCENTRE;
                    leCoutduDevis.NUMDEM       = string.IsNullOrEmpty(laDetailDemande.LaDemande.NUMDEM) ? string.Empty : laDetailDemande.LaDemande.NUMDEM;
                    leCoutduDevis.COPER        = SessionObject.LstDesCopers.FirstOrDefault(t => t.PK_ID == item.FK_IDCOPER).CODE;
                    leCoutduDevis.FK_IDCOPER   = item.FK_IDCOPER.Value;
                    leCoutduDevis.FK_IDTAXE    = item.FK_IDTAXE.Value;
                    leCoutduDevis.FK_IDDEMANDE = laDetailDemande.LaDemande.PK_ID;
                    leCoutduDevis.MONTANTHT    = (decimal?)Math.Ceiling((double)item.MONTANTHT);
                    leCoutduDevis.MONTANTTAXE  = (decimal?)Math.Ceiling((double)item.MONTANTTAXE);
                    leCoutduDevis.REFEM        = DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString("00");
                    leCoutduDevis.DATECREATION = DateTime.Now;
                    leCoutduDevis.USERCREATION = UserConnecte.matricule;
                    if (laDetailDemande.LstCoutDemande == null)
                    {
                        laDetailDemande.LstCoutDemande = new List <CsDemandeDetailCout>();
                        laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                    }
                    else
                    {
                        laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                    }
                }
            }
            if (laDetailDemande.LaDemande.TYPEDEMANDE == SessionObject.Enumere.VerificationCompteur ||
                laDetailDemande.LaDemande.TYPEDEMANDE == SessionObject.Enumere.Etalonage)
            {
                if (SessionObject.LstDesCoutDemande.Count != 0)
                {
                    List <CsCoutDemande> LstDesCoutsDemande = SessionObject.LstDesCoutDemande.Where(p => p.TYPEDEMANDE == SessionObject.Enumere.Etalonage).ToList();
                    if (!string.IsNullOrEmpty(laDetailDemande.LaDemande.PRODUIT))
                    {
                        LstDesCoutsDemande = LstDesCoutsDemande.Where(p => p.PRODUIT == laDetailDemande.LaDemande.PRODUIT || p.PRODUIT == "00").ToList();
                    }

                    foreach (var item in LstDesCoutsDemande)
                    {
                        CsCtax leTaxe = SessionObject.LstDesTaxe.FirstOrDefault(t => t.PK_ID == item.FK_IDTAXE);

                        CsDemandeDetailCout leCoutduDevis = new CsDemandeDetailCout();
                        leCoutduDevis.CENTRE       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CENTRE) ? null : laDetailDemande.LaDemande.CENTRE;
                        leCoutduDevis.CLIENT       = string.IsNullOrEmpty(laDetailDemande.LaDemande.CLIENT) ? null : laDetailDemande.LaDemande.CLIENT;
                        leCoutduDevis.ORDRE        = string.IsNullOrEmpty(laDetailDemande.LaDemande.ORDRE) ? null : laDetailDemande.LaDemande.ORDRE;
                        leCoutduDevis.FK_IDCENTRE  = laDetailDemande.LaDemande.FK_IDCENTRE;
                        leCoutduDevis.NUMDEM       = string.IsNullOrEmpty(laDetailDemande.LaDemande.NUMDEM) ? string.Empty : laDetailDemande.LaDemande.NUMDEM;
                        leCoutduDevis.COPER        = SessionObject.LstDesCopers.FirstOrDefault(t => t.PK_ID == item.FK_IDCOPER).CODE;
                        leCoutduDevis.FK_IDCOPER   = item.FK_IDCOPER;
                        leCoutduDevis.FK_IDTAXE    = item.FK_IDTAXE;
                        leCoutduDevis.FK_IDDEMANDE = laDetailDemande.LaDemande.PK_ID;
                        leCoutduDevis.MONTANTHT    = (decimal?)Math.Ceiling((double)item.MONTANT);
                        leCoutduDevis.MONTANTTAXE  = (decimal?)Math.Ceiling((double)(item.MONTANT * leTaxe.TAUX));
                        leCoutduDevis.REFEM        = DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString("00");
                        leCoutduDevis.DATECREATION = DateTime.Now;
                        leCoutduDevis.USERCREATION = UserConnecte.matricule;
                        if (laDetailDemande.LstCoutDemande == null)
                        {
                            laDetailDemande.LstCoutDemande = new List <CsDemandeDetailCout>();
                            laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                        }
                        else
                        {
                            laDetailDemande.LstCoutDemande.Add(leCoutduDevis);
                        }
                    }
                }
            }
            laDetailDemande.EltDevis       = null;
            laDetailDemande.LstEvenement   = null;
            laDetailDemande.LstCanalistion = null;

            AcceuilServiceClient clientDevis = new AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));

            clientDevis.ValiderDemandeCompleted += (ss, b) =>
            {
                this.btn_transmetre.IsEnabled = true;
                this.RejeterButton.IsEnabled  = true;
                this.CancelButton.IsEnabled   = true;
                if (b.Cancelled || b.Error != null)
                {
                    string error = b.Error.Message;
                    Message.ShowError(error, Silverlight.Resources.Devis.Languages.txtDevis);
                    return;
                }
                if (isTransmetre == true)
                {
                    List <string> codes = new List <string>();
                    codes.Add(laDetailDemande.InfoDemande.CODE);

                    ClasseMEthodeGenerique.TransmettreDemande(codes, true, this);
                    List <CsUtilisateur> leUser = new List <CsUtilisateur>();
                    if (laDetailDemande.InfoDemande != null && laDetailDemande.InfoDemande.CODE != null)
                    {
                        foreach (CsUtilisateur item in laDetailDemande.InfoDemande.UtilisateurEtapeSuivante)
                        {
                            leUser.Add(item);
                        }
                        Shared.ClasseMEthodeGenerique.NotifierMailDemande(leUser, "0001", laDetailDemande.LaDemande.NUMDEM, laDetailDemande.LaDemande.LIBELLETYPEDEMANDE);
                    }
                }
            };
            clientDevis.ValiderDemandeAsync(laDetailDemande);
        }