private CsDemande GetDemandeDevisFromScreen(CsDemande pDemandeDevis, bool isTransmettre)
        {
            if (pDemandeDevis.LaDemande == null)
            {
                pDemandeDevis.LaDemande = new CsDemandeBase();
            }
            pDemandeDevis.LaDemande.DATEMODIFICATION = DateTime.Now;
            CsDemandeDetailCout lstEltDEvis = new CsDemandeDetailCout
            {
                CENTRE       = pDemandeDevis.LaDemande.CENTRE,
                FK_IDCENTRE  = pDemandeDevis.LaDemande.FK_IDCENTRE,
                FK_IDDEMANDE = pDemandeDevis.LstEltTimbre.First().FK_IDDEMANDE,
                MONTANTHT    = pDemandeDevis.LstEltTimbre.Sum(t => t.MONTANT),
                NUMDEM       = pDemandeDevis.LstEltTimbre.First().NUMDEM,
                MONTANTTAXE  = 0,
                COPER        = SessionObject.Enumere.CoperACT,
                FK_IDCOPER   = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperACT).PK_ID,
                FK_IDTAXE    = SessionObject.LstDesTaxe.FirstOrDefault(t => t.CODE == "00").PK_ID,
                NATURE       = "99",
                REFEM        = System.DateTime.Today.Year.ToString() + System.DateTime.Today.Month.ToString("00"),
                USERCREATION = pDemandeDevis.LstEltTimbre.First().USERCREATION,
                DATECREATION = System.DateTime.Today.Date
            };

            pDemandeDevis.LstEltTimbre   = null;
            pDemandeDevis.LstCoutDemande = new List <CsDemandeDetailCout>();
            pDemandeDevis.LstCoutDemande.Add(lstEltDEvis);
            return(pDemandeDevis);
        }
        private CsDemande GetDemandeDevisFromScreen(CsDemande pDemandeDevis, bool isTransmettre)
        {
            if (pDemandeDevis == null)
            {
                pDemandeDevis           = new CsDemande();
                pDemandeDevis.LaDemande = new CsDemandeBase();
                pDemandeDevis.LaDemande.DATECREATION        = DateTime.Now;
                pDemandeDevis.LaDemande.USERCREATION        = UserConnecte.matricule;
                pDemandeDevis.LaDemande.FK_IDADMUTILISATEUR = UserConnecte.PK_ID;
                pDemandeDevis.LaDemande.TYPEDEMANDE         = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).CODE;
                pDemandeDevis.LaDemande.FK_IDTYPEDEMANDE    = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).PK_ID;
            }
            if (pDemandeDevis.LaDemande == null)
            {
                pDemandeDevis.LaDemande = new CsDemandeBase();
            }
            pDemandeDevis.LaDemande.DATEMODIFICATION = DateTime.Now;
            List <CsDemandeDetailCout> lesCoutduDevis = new List <CsDemandeDetailCout>();

            if (lstFactureDuClient != null && lstFactureDuClient.Count != 0)
            {
                CsDemandeDetailCout leCoutduDevis;
                foreach (CsLclient st in lstFactureDuClient)
                {
                    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.NUMDEM      = string.IsNullOrEmpty(laDetailDemande.LaDemande.NUMDEM) ? null : laDetailDemande.LaDemande.NUMDEM;
                    leCoutduDevis.FK_IDCENTRE = laDetailDemande.LaDemande.FK_IDCENTRE;
                    leCoutduDevis.COPER       = SessionObject.Enumere.CoperRAC;
                    leCoutduDevis.MONTANTTAXE = 0;
                    leCoutduDevis.FK_IDCOPER  = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperRAC).PK_ID;
                    leCoutduDevis.FK_IDTAXE   = SessionObject.LstDesTaxe.FirstOrDefault(t => t.CODE == "00").PK_ID;
                    //leCoutduDevis.REFEM = System.DateTime.Today.Year + System.DateTime.Today.Month.ToString("00");
                    //leCoutduDevis.NDOC = System.DateTime.Today.Year + System.DateTime.Today.Month.ToString("00");


                    leCoutduDevis.DATECREATION = DateTime.Now;
                    leCoutduDevis.USERCREATION = UserConnecte.matricule;

                    if (st.REFEM.Length == 7)
                    {
                        leCoutduDevis.REFEM = st.REFEM.Substring(3, 4) + st.REFEM.Substring(0, 2);
                    }
                    else
                    {
                        leCoutduDevis.REFEM = st.REFEM;
                    }
                    leCoutduDevis.NDOC      = st.NDOC;
                    leCoutduDevis.MONTANTHT = st.SOLDEFACTURE * (-1);

                    lesCoutduDevis.Add(leCoutduDevis);
                }
            }
            pDemandeDevis.LstCoutDemande = lesCoutduDevis;
            return(pDemandeDevis);
        }
        private CsDemande GetDemandeDevisFromScreen(CsDemande pDemandeDevis, bool isTransmettre)
        {
            if (pDemandeDevis == null)
            {
                pDemandeDevis           = new CsDemande();
                pDemandeDevis.LaDemande = new CsDemandeBase();
                pDemandeDevis.LaDemande.DATECREATION        = DateTime.Now;
                pDemandeDevis.LaDemande.USERCREATION        = UserConnecte.matricule;
                pDemandeDevis.LaDemande.FK_IDADMUTILISATEUR = UserConnecte.PK_ID;
                pDemandeDevis.LaDemande.TYPEDEMANDE         = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).CODE;
                pDemandeDevis.LaDemande.FK_IDTYPEDEMANDE    = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).PK_ID;
            }
            if (pDemandeDevis.LaDemande == null)
            {
                pDemandeDevis.LaDemande = new CsDemandeBase();
            }
            pDemandeDevis.LaDemande.DATEMODIFICATION = DateTime.Now;
            #region Doc Scanne
            if (pDemandeDevis.ObjetScanne == null)
            {
                laDetailDemande.ObjetScanne = new List <ObjDOCUMENTSCANNE>();
            }
            if (ctrl != null && ctrl.LstPiece != null)
            {
                pDemandeDevis.ObjetScanne.Clear();
                pDemandeDevis.ObjetScanne.AddRange(ctrl.LstPiece.Where(i => i.ISNEW == true || i.ISTOREMOVE == true));
            }
            #endregion


            List <CsDemandeDetailCout> lesCoutduDevis = new List <CsDemandeDetailCout> ();
            if (laDetailDemande.LstCoutDemande != null && laDetailDemande.LstCoutDemande.Count != 0)
            {
                List <CsDemandeDetailCout> lesCoutduDevisRemb = laDetailDemande.LstCoutDemande.Where(t => t.COPER != SessionObject.Enumere.CoperFDO && t.COPER != SessionObject.Enumere.CoperFPO).ToList();

                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.COPER        = SessionObject.Enumere.CoperRembTrvx;
                leCoutduDevis.MONTANTHT    = lesCoutduDevisRemb.Sum(t => t.MONTANTHT) + lesCoutduDevisRemb.Sum(t => t.MONTANTTAXE);
                leCoutduDevis.MONTANTTAXE  = 0;
                leCoutduDevis.FK_IDCOPER   = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperRembTrvx).PK_ID;
                leCoutduDevis.FK_IDTAXE    = SessionObject.LstDesTaxe.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CodeSansTaxe).PK_ID;
                leCoutduDevis.REFEM        = System.DateTime.Today.Year.ToString() + System.DateTime.Today.Month.ToString("00");
                leCoutduDevis.DATECREATION = DateTime.Now;
                leCoutduDevis.USERCREATION = UserConnecte.matricule;
                lesCoutduDevis.Add(leCoutduDevis);
            }
            pDemandeDevis.LstCoutDemande = lesCoutduDevis;
            return(pDemandeDevis);
        }
Beispiel #4
0
        private void Supprimer()
        {
            try
            {
                if (this.LsvFacture.SelectedItem != null)
                {
                    var mBoxControl = new MessageBoxControl.MessageBoxChildWindow(this.Title.ToString(), Languages.msgConfirmSuppression, MessageBoxControl.MessageBoxButtons.YesNo, MessageBoxControl.MessageBoxIcon.Question);
                    mBoxControl.OnMessageBoxClosed += (_, result) =>
                    {
                        if (mBoxControl.Result == MessageBoxResult.OK)
                        {
                            List <CsDemandeDetailCout> EltDeLagrid = LsvFacture.ItemsSource as List <CsDemandeDetailCout>;
                            CsDemandeDetailCout        select      = LsvFacture.SelectedItem as CsDemandeDetailCout;
                            CsDemandeDetailCout        ObjSelect   = EltDeLagrid.FirstOrDefault(t => t.COPER == select.COPER);
                            if (select != null)
                            {
                                select.MONTANTHT   = 0;
                                select.MONTANTTAXE = 0;
                                select.MONTANTTTC  = 0;
                            }
                            this.Txt_TotalHt.Text   = EltDeLagrid.Sum(t => t.MONTANTHT).Value.ToString(SessionObject.FormatMontant);
                            this.Txt_totalTaxe.Text = EltDeLagrid.Sum(t => t.MONTANTTAXE).Value.ToString(SessionObject.FormatMontant);
                            this.Txt_TotalTTC.Text  = EltDeLagrid.Sum(t => t.MONTANTTTC).Value.ToString(SessionObject.FormatMontant);

                            laDetailDemande.LaDemande.ISSUPPRIMERCOUT = true;
                        }
                        else
                        {
                            return;
                        }
                    };
                    mBoxControl.Show();
                }
                else
                {
                    throw new Exception("Veuillez sélectionner un élément!");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private CsDemande GetDemandeDevisFromScreen(CsDemande pDemandeDevis, bool isTransmettre)
        {
            if (pDemandeDevis == null)
            {
                pDemandeDevis           = new CsDemande();
                pDemandeDevis.LaDemande = new CsDemandeBase();
                pDemandeDevis.LaDemande.DATECREATION        = DateTime.Now;
                pDemandeDevis.LaDemande.USERCREATION        = UserConnecte.matricule;
                pDemandeDevis.LaDemande.FK_IDADMUTILISATEUR = UserConnecte.PK_ID;
                pDemandeDevis.LaDemande.TYPEDEMANDE         = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).CODE;
                pDemandeDevis.LaDemande.FK_IDTYPEDEMANDE    = SessionObject.LstTypeDemande.FirstOrDefault(t => t.CODE == SessionObject.Enumere.RemboursementTrvxNonRealise).PK_ID;
            }
            if (pDemandeDevis.LaDemande == null)
            {
                pDemandeDevis.LaDemande = new CsDemandeBase();
            }
            pDemandeDevis.LaDemande.DATEMODIFICATION = DateTime.Now;
            List <CsDemandeDetailCout> lesCoutduDevis = new List <CsDemandeDetailCout> ();

            if (laDetailDemande.LstCoutDemande != null && laDetailDemande.LstCoutDemande.Count != 0)
            {
                foreach (var x in laDetailDemande.LstCoutDemande)
                {
                    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.COPER        = "015";
                    leCoutduDevis.MONTANTHT    = x.MONTANTHT;
                    leCoutduDevis.MONTANTTAXE  = x.MONTANTTAXE;
                    leCoutduDevis.FK_IDCOPER   = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == "015").PK_ID;
                    leCoutduDevis.FK_IDTAXE    = x.FK_IDTAXE;
                    leCoutduDevis.REFEM        = x.REFEM;
                    leCoutduDevis.NDOC         = x.NDOC;
                    leCoutduDevis.DATECREATION = DateTime.Now;
                    leCoutduDevis.USERCREATION = UserConnecte.matricule;
                    lesCoutduDevis.Add(leCoutduDevis);
                }
            }
            pDemandeDevis.LstCoutDemande = lesCoutduDevis;
            return(pDemandeDevis);
        }
        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);
        }
        private void EnregisterOuTransmetre(bool isTransmetre)
        {
            if (laDetailDemande.EltDevis != null && laDetailDemande.EltDevis.Count != 0)
            {
                laDetailDemande.EltDevis.Clear();
            }

            if (this.dataGridForniture.ItemsSource != null && (this.dataGridForniture.ItemsSource as List <ObjELEMENTDEVIS>).Count != 0)
            {
                laDetailDemande.EltDevis = ((List <ObjELEMENTDEVIS>) this.dataGridForniture.ItemsSource).Where(o => o.QUANTITE != 0 && o.QUANTITE != null).ToList();
                int idTrv = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperTRV).PK_ID;

                if (laDetailDemande.LstCoutDemande != null && laDetailDemande.LstCoutDemande.Count != 0)
                {
                    laDetailDemande.LstCoutDemande = new List <CsDemandeDetailCout>();
                }
                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;

                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") &&
                                                                      laDetailDemande.LaDemande.TYPEDEMANDE == SessionObject.Enumere.Etalonage && laDetailDemande.LaDemande.REGLAGECOMPTEUR == p.REGLAGECOMPTEUR).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.LstEvenement             = null;
            laDetailDemande.LstCanalistion           = null;
            laDetailDemande.LaDemande.ISPASSERCAISSE = this.Chk_PasserLaCaisse.IsChecked == true ? true : false;
            if (this.Chk_DevisHT.IsChecked == true)
            {
                laDetailDemande.EltDevis.ForEach(r => r.MONTANTTAXE       = 0);
                laDetailDemande.EltDevis.ForEach(r => r.MONTANTTTC        = r.MONTANTHT);
                laDetailDemande.LstCoutDemande.ForEach(r => r.MONTANTTAXE = 0);
            }
            if (laDetailDemande.EltDevis != null && laDetailDemande.EltDevis.Count == 0)
            {
                laDetailDemande.LaDemande.ISPASSERCAISSE = true;
            }

            if (laDetailDemande.LaDemande.TYPEDEMANDE == SessionObject.Enumere.BranchementAbonementExtention)
            {
                laDetailDemande.EltDevis       = null;
                laDetailDemande.LstCoutDemande = null;
            }

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

            clientDevis.ValidationDemandeCompleted += (ss, b) =>
            {
                if (b.Cancelled || b.Error != null)
                {
                    string error = b.Error.Message;
                    Message.ShowError(error, Silverlight.Resources.Devis.Languages.txtDevis);
                    return;
                }
                if (string.IsNullOrEmpty(b.Result))
                {
                    if (isTransmetre)
                    {
                        Message.ShowInformation("Demande transmise avec succès", "Demande");
                    }
                    else
                    {
                        Message.ShowInformation("Mise à jour effectuée avec succès", "Demande");
                    }
                    this.DialogResult = false;
                }
                else
                {
                    Message.ShowError(b.Result, "Demande");
                }
            };
            clientDevis.ValidationDemandeAsync(laDetailDemande, isTransmetre);
        }
Beispiel #8
0
        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;

                if (laDetailDemande.LstCoutDemande != null && laDetailDemande.LstCoutDemande.Count != 0)
                {
                    laDetailDemande.LstCoutDemande = new List <CsDemandeDetailCout>();
                }
                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)
                {
                    laDetailDemande.LaDemande.PRESTATAIRE = this.txtPrestataire.Text; //ZEG 28/09/2017

                    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)
                        {
                            CsDemandeDetailCout leCoutBrt = Shared.ClasseMEthodeGenerique.RetourneCopyObjet <CsDemandeDetailCout>(leCoutduDevis);
                            laDetailDemande.LstCoutDemande.Add(leCoutBrt);
                        }
                    }
                    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  = leCout.MONTANTHT + leCout.MONTANTTAXE;
                        leCout.ISEXTENSION = true;
                        if (leCout.MONTANTTTC > 0)
                        {
                            CsDemandeDetailCout leCoutExt = Shared.ClasseMEthodeGenerique.RetourneCopyObjet <CsDemandeDetailCout>(leCout);
                            laDetailDemande.LstCoutDemande.Add(leCoutExt);
                        }
                    }
                }
                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  = item.MONTANTTAXE != null ? (decimal?)Math.Ceiling((double)item.MONTANTTAXE) : 0;
                    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.ValidationDemandeCompleted += (ss, b) =>
            {
                if (b.Cancelled || b.Error != null)
                {
                    string error = b.Error.Message;
                    Message.ShowError(error, Silverlight.Resources.Devis.Languages.txtDevis);
                    return;
                }
                if (string.IsNullOrEmpty(b.Result))
                {
                    if (isTransmetre)
                    {
                        Message.ShowInformation("Demande transmise avec succès", "Demande");
                    }
                    else
                    {
                        Message.ShowInformation("Mise à jour effectuée avec succès", "Demande");
                    }
                    this.DialogResult = false;
                }
                else
                {
                    Message.ShowError(b.Result, "Demande");
                }
            };
            clientDevis.ValidationDemandeAsync(laDetailDemande, true);
        }
Beispiel #9
0
        private void EnregisterOuTransmetre(bool isTransmetre)
        {
            List <CsEditionDevis> LstDesRubriqueDevis = new List <CsEditionDevis>();

            if (laDetailDemande.EltDevis != null && laDetailDemande.EltDevis.Count != 0)
            {
                int idTrv = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperTRV).PK_ID;
                ServiceAccueil.CsCentre leCentre = SessionObject.LstCentre.FirstOrDefault(t => t.PK_ID == laDetailDemande.LaDemande.FK_IDCENTRE);

                CsDemandeDetailCout leCoutduDevis = new CsDemandeDetailCout();
                if (laDetailDemande.Depannage.ISPERSONNEEXTERIEUR == true)
                {
                    leCoutduDevis.CENTRE = string.IsNullOrEmpty(SessionObject.Enumere.Generale) ? null : SessionObject.Enumere.Generale;
                    leCoutduDevis.CLIENT = string.IsNullOrEmpty("00000000000") ? null : "00000000000";
                    leCoutduDevis.ORDRE  = "00";
                }
                else
                {
                    leCoutduDevis.CENTRE = string.IsNullOrEmpty(SessionObject.Enumere.Generale) ? null : SessionObject.Enumere.Generale;
                    leCoutduDevis.CLIENT = string.IsNullOrEmpty(leCentre.COMPTEECLAIRAGEPUBLIC) ? null : leCentre.COMPTEECLAIRAGEPUBLIC;
                    leCoutduDevis.ORDRE  = "01";
                }
                leCoutduDevis.FK_IDCENTRE  = laDetailDemande.LaDemande.FK_IDCENTRE;
                leCoutduDevis.NUMDEM       = string.IsNullOrEmpty(laDetailDemande.LaDemande.NUMDEM) ? string.Empty : laDetailDemande.LaDemande.NUMDEM;
                leCoutduDevis.COPER        = SessionObject.Enumere.CoperFactureTrvxEtDivers;
                leCoutduDevis.FK_IDCOPER   = SessionObject.LstDesCopers.FirstOrDefault(t => t.CODE == SessionObject.Enumere.CoperFactureTrvxEtDivers).PK_ID;
                leCoutduDevis.FK_IDTAXE    = laDetailDemande.EltDevis.First().FK_IDTAXE.Value;
                leCoutduDevis.FK_IDDEMANDE = laDetailDemande.LaDemande.PK_ID;
                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.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);
                }


                decimal montantTotal = laDetailDemande.EltDevis.Sum(t => (decimal)(t.MONTANTTTC));
                foreach (ObjELEMENTDEVIS item in laDetailDemande.EltDevis)
                {
                    CsEditionDevis LaRubriqueDevis = new CsEditionDevis();
                    LaRubriqueDevis.NOM          = item.NOM;
                    LaRubriqueDevis.CENTRE       = laDetailDemande.LaDemande.CENTRE;
                    LaRubriqueDevis.PRODUIT      = laDetailDemande.LaDemande.LIBELLEPRODUIT;
                    LaRubriqueDevis.TYPEDEMANDE  = laDetailDemande.LaDemande.LIBELLETYPEDEMANDE;
                    LaRubriqueDevis.COMMUNUE     = laDetailDemande.Depannage.LACOMMUNE;
                    LaRubriqueDevis.QUARTIER     = laDetailDemande.Depannage.LEQUARTIER;
                    LaRubriqueDevis.NUMDEMANDE   = laDetailDemande.LaDemande.NUMDEM;
                    LaRubriqueDevis.DESIGNATION  = item.DESIGNATION;
                    LaRubriqueDevis.QUANTITE     = Convert.ToDecimal(item.QUANTITE);
                    LaRubriqueDevis.PRIXUNITAIRE = item.PRIX_UNITAIRE.Value;
                    LaRubriqueDevis.MONTANTHT    = (decimal)(item.MONTANTTTC);
                    LaRubriqueDevis.TOTALDEVIS   = montantTotal;
                    LstDesRubriqueDevis.Add(LaRubriqueDevis);
                }
            }
            bool?IsDevisEditer = laDetailDemande.Depannage.ISPERSONNEEXTERIEUR;

            laDetailDemande.EltDevis  = null;
            laDetailDemande.Depannage = null;
            AcceuilServiceClient clientDevis = new AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));

            clientDevis.ValiderDemandeCompleted += (ss, b) =>
            {
                this.btn_transmetre.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)
                {
                    if (IsDevisEditer == true)
                    {
                        Utility.ActionDirectOrientation <ServicePrintings.CsEditionDevis, CsEditionDevis>(LstDesRubriqueDevis, null, SessionObject.CheminImpression, "DevisEp", "Accueil", true);
                    }
                    //List<string> codes = new List<string>();
                    //codes.Add(laDetailDemande.InfoDemande.CODE);
                    //Galatee.Silverlight.Shared.ClasseMEthodeGenerique.TransmettreDemande(codes, false, this);

                    AcceuilServiceClient clientDeviss = new AcceuilServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Accueil"));
                    clientDeviss.ClotureValiderDemandeCompleted += (sss, bd) =>
                    {
                        if (bd.Cancelled || bd.Error != null)
                        {
                            string error = bd.Error.Message;
                            Message.ShowError(error, Silverlight.Resources.Devis.Languages.txtDevis);
                            return;
                        }
                        if (bd.Result == true)
                        {
                            List <string> codes = new List <string>();
                            codes.Add(laDetailDemande.InfoDemande.CODE);
                            Galatee.Silverlight.Shared.ClasseMEthodeGenerique.TransmettreDemande(codes, false, this);
                        }
                        else
                        {
                            Message.ShowError("Erreur a la cloture de la demande", Silverlight.Resources.Devis.Languages.txtDevis);
                        }
                    };
                    clientDeviss.ClotureValiderDemandeAsync(laDetailDemande);
                }
            };
            clientDevis.ValiderDemandeAsync(laDetailDemande);
        }