Ejemplo n.º 1
0
        public void Valider(object sender, ValidateRowEventArgs e)
        {
            // clear columns errors
            viewLigne.ClearColumnErrors();
            // get selected ligne
            var ligne = e.Row as LigneView;

            if (ligne == null)
            {
                e.Valid = false;
                return;
            }
            //******* Verify Numero autorisation ***********
            if (string.IsNullOrEmpty(ligne.NumeroAutorisation.Trim()) ||
                ligne.NumeroAutorisation.Length > 30)
            {
                viewLigne.SetColumnError(_colNumeroAutorisation, "Numéro autorisation invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify Numero bon de commande ***********
            if (string.IsNullOrEmpty(ligne.NumeroBonCommande.Trim()) ||
                ligne.NumeroBonCommande.Length > 13)
            {
                viewLigne.SetColumnError(_colNumeroBonCommande, "Numéro bon de commande invalide!");
                e.Valid = false;
                return;
            }
            // charger l'exercice
            var exercice = _controller.GetCurrentExercice();
            int annee;

            if (!int.TryParse(exercice.Annee, out annee))
            {
                throw new ApplicationException("Exercice invalide!");
            }
            // verifier que la date du bon de commande est unclue dans le trimestre declarée
            switch (_currentDeclaration.Trimestre)
            {
            case 1:
                var dateDebutT1 = new DateTime(annee, 1, 1);
                var dateFinT1   = new DateTime(annee, 3, 31);
                if (ligne.DateBonCommande.Date < dateDebutT1 || ligne.DateBonCommande.Date > dateFinT1)
                {
                    viewLigne.SetColumnError(_colDateBonCommande,
                                             "La date du bon de commande doit être inclue dans la premiére trimestre!");
                    e.Valid = false;
                    return;
                }
                break;

            case 2:
                var dateDebutT2 = new DateTime(annee, 4, 1);
                var dateFinT2   = new DateTime(annee, 6, 30);
                if (ligne.DateBonCommande.Date < dateDebutT2 || ligne.DateBonCommande.Date > dateFinT2)
                {
                    viewLigne.SetColumnError(_colDateBonCommande,
                                             "La date du bon de commande doit être inclue dans la deuxiéme trimestre!");
                    e.Valid = false;
                    return;
                }
                break;

            case 3:
                var dateDebutT3 = new DateTime(annee, 7, 1);
                var dateFinT3   = new DateTime(annee, 9, 30);
                if (ligne.DateBonCommande.Date < dateDebutT3 || ligne.DateBonCommande.Date > dateFinT3)
                {
                    viewLigne.SetColumnError(_colDateBonCommande,
                                             "La date du bon de commande doit être inclue dans la troisiéme trimestre!");
                    e.Valid = false;
                    return;
                }
                break;

            case 4:
                var dateDebutT4 = new DateTime(annee, 10, 1);
                var dateFinT4   = new DateTime(annee, 12, 31);
                if (ligne.DateBonCommande.Date < dateDebutT4 || ligne.DateBonCommande.Date > dateFinT4)
                {
                    viewLigne.SetColumnError(_colDateBonCommande,
                                             "La date du bon de commande doit être inclue dans la quatriéme trimestre!");
                    e.Valid = false;
                    return;
                }
                break;

            default:
                throw new InvalidOperationException("Trimestre invalide!");
            }
            //******* Verify Numero identifiant ***********
            if (string.IsNullOrEmpty(ligne.Identifiant.Trim()) ||
                ligne.Identifiant.Length != 13)
            {
                viewLigne.SetColumnError(_colIdentifiant, "Identifiant invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify nom prenom au raison sociale du fournisseur ***********
            if (string.IsNullOrEmpty(ligne.RaisonSocialFournisseur.Trim()) || ligne.RaisonSocialFournisseur.Length > 40)
            {
                viewLigne.SetColumnError(_colRaisonSocialFournisseur,
                                         "Nom prénom ou raison social fournisseur invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify Numero facture ***********
            if (string.IsNullOrEmpty(ligne.NumeroFacture.Trim()) ||
                ligne.NumeroFacture.Length > 30)
            {
                viewLigne.SetColumnError(_colNumeroFacture, "Numéro facture invalide!");

                e.Valid = false;
                return;
            }
            // verifier que la date bon commande est inferieur au date facture
            if (ligne.DateFacture.Date < ligne.DateBonCommande.Date)
            {
                viewLigne.SetColumnError(_colDateFacture,
                                         "La date du bon de commande doit être inférieur au date facture!");
                e.Valid = false;
                return;
            }
            //******* Verify Prix achat hors taxe  ********
            if (ligne.PrixAchatHorsTaxe < 0)
            {
                viewLigne.SetColumnError(_colPrixAchatHorsTaxe, "Prix d'achat hors taxe invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify montant tva  ********
            if (ligne.MontantTva < 0)
            {
                viewLigne.SetColumnError(_colMontantTva, "Montant invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify objet facture***********
            if (string.IsNullOrEmpty(ligne.ObjetFacture.Trim()) ||
                ligne.ObjetFacture.Length > 320)
            {
                viewLigne.SetColumnError(_colObjetFacture, "Objet facture invalide!");
                e.Valid = false;
                return;
            }
            try
            {
                if (ligne.Id == 0)
                {
                    // ajouter ligne bon de commande en suspension
                    var newView = _controller.CreateLigne(ligne, _currentDeclaration);
                    // refresh
                    var indexLigne = _listLignes.IndexOf(ligne);
                    if (indexLigne < 0)
                    {
                        return;
                    }
                    _listLignes[indexLigne] = newView;
                    return;
                }
                // update
                _controller.Update(ligne);
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Valid = false;
            }
        }
        public void Valider(object sender, ValidateRowEventArgs e)
        {
            var regexInt = new Regex(@"^\d+$");

            // clear columns errors
            viewLigne.ClearColumnErrors();
            // get selected ligne
            var ligne = e.Row as LigneView;

            if (ligne == null)
            {
                e.Valid = false;
                return;
            }
            ////******* verify Matricule ***************
            if (string.IsNullOrEmpty(ligne.Matricule))
            {
                viewLigne.SetColumnError(_colMatricule, "Matricule invalide!");
                e.Valid = false;
                return;
            }
            ////******* verify Nom ***************
            if (string.IsNullOrEmpty(ligne.Nom))
            {
                viewLigne.SetColumnError(_colNom, "Nom invalide!");
                e.Valid = false;
                return;
            }
            ////******* verify Prenom ***************
            if (string.IsNullOrEmpty(ligne.Prenom))
            {
                viewLigne.SetColumnError(_colPrenom, "Prénom invalide!");
                e.Valid = false;
                return;
            }

            ////******* verify nom de la banque ***************
            if (string.IsNullOrEmpty(ligne.NomBanque))
            {
                viewLigne.SetColumnError(_colNomBanque, "Nom de la banque invalide!");
                e.Valid = false;
                return;
            }
            ////******* verify code de la banque ***************
            if (string.IsNullOrEmpty(ligne.CodeBanque) || !regexInt.IsMatch(ligne.CodeBanque.Trim()))
            {
                viewLigne.SetColumnError(_colCodeBanque, "Code invalide!");
                e.Valid = false;
                return;
            }

            ////******* verify code de la quichet banque ***************
            if (string.IsNullOrEmpty(ligne.CodeGuichet) || !regexInt.IsMatch(ligne.CodeGuichet.Trim()))
            {
                viewLigne.SetColumnError(_colCodeGuichet, "Code guichet invalide!");
                e.Valid = false;
                return;
            }    ////******* verify numero compte  banque ***************
            if (string.IsNullOrEmpty(ligne.NumeroCompte) || !regexInt.IsMatch(ligne.NumeroCompte.Trim()))
            {
                viewLigne.SetColumnError(_colNumeroCompte, "Numero compte invalide!");
                e.Valid = false;
                return;
            }    ////******* verify clé de la banque ***************
            if (string.IsNullOrEmpty(ligne.CleRib) || !regexInt.IsMatch(ligne.CleRib.Trim()))
            {
                viewLigne.SetColumnError(_colCleRib, "Clé invalide!");
                e.Valid = false;
                return;
            }
            // var cle = NumeriqueHelper.GetMatriculeCleRib(string.Format(@"{0}{1}{2}", ligne.CodeBanque.PadLeft(2, '0'), ligne.CodeGuichet.PadLeft(6, '0'), ligne.NumeroCompte.PadLeft(10, '0')));
            //if (cle != ligne.CleRib.Trim().PadLeft(2, '0'))
            //{
            //    viewLigne.SetColumnError(_colCleRib, "Calcul de la clé est invalide!");
            //    e.Valid = false;
            //    return;
            //}
            ////******* verify Net a paye ***************
            if (ligne.NetAPaye <= 0)
            {
                viewLigne.SetColumnError(_colNetAPaye, "Montant invalide!");
                e.Valid = false;
                return;
            }

            try
            {
                if (ligne.Id == 0)
                {
                    // ajouter ligne bon de commande en suspension
                    var newView = _controller.CreateLigne(ligne, _currentDeclaration);
                    // refresh
                    var indexLigne = _listLignes.IndexOf(ligne);
                    if (indexLigne < 0)
                    {
                        return;
                    }
                    _listLignes[indexLigne] = newView;
                    return;
                }
                // update
                _controller.Update(ligne);
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Valid = false;
            }
        }