Exemple #1
0
        public FrmListDeclaration(DeclarationController controller)
            : this()
        {
            if (controller == null)
            {
                throw new ArgumentNullException("controller");
            }

            _controller = controller;
            InitGridDeclaration();
            InitLigne();
            _collection = new BindingList <DeclarationView>(_controller.GetAll().ToList());
            gridDeclaration.DataSource = _collection;
            var currentSociete = controller.GetCurrentSociete();

            if (currentSociete == null)
            {
                throw new ApplicationException("Societe invalide!");
            }
            var currentExercice = controller.GetCurrentExercice();

            if (currentExercice == null)
            {
                throw new ApplicationException("Exercice invalide!");
            }
            txtExercice.Text = currentExercice.Annee;
            txtSociete.Text  = currentSociete.RaisonSocial;
        }
Exemple #2
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)
        {
            // clear columns errors
            viewLigne.ClearColumnErrors();
            // current row
            var ligne = e.Row as LigneView;

            if (ligne == null)
            {
                e.Valid = false;
                return;
            }
            //******* Verify Numero facture ***********
            if (string.IsNullOrEmpty(ligne.NumeroFacture.Trim()) ||
                ligne.NumeroFacture.Length > 20)
            {
                viewLigne.SetColumnError(_colNumeroFacture, "Numéro facture 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 facture 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.DateFacture.Date < dateDebutT1 || ligne.DateFacture.Date > dateFinT1)
                {
                    viewLigne.SetColumnError(_colDateFacture,
                                             "La date facture 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.DateFacture.Date < dateDebutT2 || ligne.DateFacture.Date > dateFinT2)
                {
                    viewLigne.SetColumnError(_colDateFacture,
                                             "La date facture 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.DateFacture.Date < dateDebutT3 || ligne.DateFacture.Date > dateFinT3)
                {
                    viewLigne.SetColumnError(_colDateFacture,
                                             "La date facture 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.DateFacture.Date < dateDebutT4 || ligne.DateFacture.Date > dateFinT4)
                {
                    viewLigne.SetColumnError(_colDateFacture,
                                             "La date facture doit être inclue dans la quatriéme trimestre!");
                    e.Valid = false;
                    return;
                }
                break;

            default:
                throw new InvalidOperationException("Trimestre invalide!");
            }

            //******* Verify identifiant ***********
            switch (ligne.TypeClient)
            {
            case TypeClient.MatriculeFiscal:
                // verifier le matricule fiscal du client
                if (ligne.IdentifiantClient.Length != 13)
                {
                    viewLigne.SetColumnError(_colIdentifiant, "Identifiant client invalide!");
                    e.Valid = false;
                    return;
                }
                break;

            case TypeClient.CarteSejour:
                // verifier le numero du carte de sejour du client
                if (ligne.IdentifiantClient.Length != 10)
                {
                    viewLigne.SetColumnError(_colIdentifiant, "Identifiant client invalide!");
                    e.Valid = false;
                    return;
                }
                break;

            case TypeClient.Cin:
                // verifier le numero du CIN du client
                if (ligne.IdentifiantClient.Length != 8)
                {
                    viewLigne.SetColumnError(_colIdentifiant, "Identifiant client invalide!");
                    e.Valid = false;
                    return;
                }
                break;

            case TypeClient.NonDomiciliee:
                // verifier le numero du client non domiciliée ni établie
                if (ligne.IdentifiantClient.Length == 0 || ligne.IdentifiantClient.Length > 13)
                {
                    viewLigne.SetColumnError(_colIdentifiant, "Identifiant client invalide!");
                    e.Valid = false;
                    return;
                }
                break;

            default:
                viewLigne.SetColumnError(_colTypeIdentifiantClient, "Type identifiant client invalide!");
                e.Valid = false;
                return;
            }
            if (string.IsNullOrEmpty(ligne.IdentifiantClient.Trim()) ||
                ligne.IdentifiantClient.Length > 13)
            {
                viewLigne.SetColumnError(_colIdentifiant, "Identifiant client invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify nom prenom du client
            if (string.IsNullOrEmpty(ligne.NomPrenomClient.Trim()) ||
                ligne.NomPrenomClient.Length > 40)
            {
                viewLigne.SetColumnError(_colRaisonSocialClient, "Nom et prénom du client invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify Numero bon de commande ***********
            if (string.IsNullOrEmpty(ligne.AdresseClient.Trim()) ||
                ligne.AdresseClient.Length > 120)
            {
                viewLigne.SetColumnError(_colAdresseClient, "Adresse client in invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify numero autorisation
            if (string.IsNullOrEmpty(ligne.NumeroAutorisation.Trim()) ||
                ligne.NumeroAutorisation.Length > 20)
            {
                viewLigne.SetColumnError(_colNumeroAutorisation, "Numéro autorisation invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify Prix vente hors taxe  ********
            if (ligne.PrixVenteHt < 0)
            {
                viewLigne.SetColumnError(_colPrixVenteHt, "Prix de vente hors taxe invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify taux FODEC
            if (ligne.TauxFodec < 0 || ligne.TauxFodec > 1)
            {
                viewLigne.SetColumnError(_colTauxFodec, "Taux fodec invalide!");
                e.Valid = false;
                return;
            }
            //****** Verify montant FODEC
            if (ligne.MontantFodec < 0)
            {
                viewLigne.SetColumnError(_colMontantTva, "Montant fodec invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify taux droit de consommation
            if (ligne.TauxDroitConsommation < 0 || ligne.TauxDroitConsommation > 1)
            {
                viewLigne.SetColumnError(_colTauxDroitConsommation, "Taux droit de consommation invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify montant droit de consommation
            if (ligne.MontantDroitConsommation < 0)
            {
                viewLigne.SetColumnError(_colMontantDroitConsommation, "Montant droit de consommation invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify taux TVA
            if (ligne.TauxTva < 0 || ligne.TauxTva > 1)
            {
                viewLigne.SetColumnError(_colTauxTva, "Taux Tva invalide!");
                e.Valid = false;
                return;
            }
            //******* Verify montant TVA  ********
            if (ligne.MontantTva < 0)
            {
                viewLigne.SetColumnError(_colMontantTva, "Montant Tva invalide!");
                e.Valid = false;
                return;
            }

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