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; } }