IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Génération de toutes les Quittances (Factures) des Locataires à partir d'un bouton [WD17]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Génération de toutes les Quittances (Factures) des Locataires à partir d'un bouton
    Bonjour,
    je ne suis pas un expert en windev, cause pour laquelle je vous demande de m'aider car depuis une semaine je n'avance plus.
    Je suis en train de développer un logiciel de Gestion d'une agence immobilière.
    Mon problème c'est que je sais pas comment faire pour générer les Quittances que les locataires doivent payer chaque fin de mois, à partir du clic d'un bouton.
    Les 2 Tables concernés sont : Table Locataire et Table Quittances_impayées
    Chaque Locataire doit avoir avant la fin de chaque mois (Quand on clique sur 1 Bouton), la Quittance qu'il doit payer dans la Table Quittances_impayées.
    Avec le code ci-dessous je n'arrive qu'à enregistrer (ajouter) dans la Table Quittances_impayées, une seule Quittance pour un seul Locataire, et ensuite j'ai une erreur
    de Doublon de Numéro de Quittance_impayées car ce numéro est une clé unique.
    Je veux que quand je clique sur le Bouton Valider(par exemple), le système parcours le fichier hyperfilesql Locataire et ajoute pour chaque Locataire, une quittance impayée qui a un Numéro de quittance unique, dans le Fichier hyperfilesql Quittance_impayees
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    nNumQuitImpayees est un entier=QUITTANCES_IMPAYEES.NumQuit
    nNumQuitChoisi est un entier
     
     
    	HLitDernier(QUITTANCES_IMPAYEES,NumQuit)
    	SI HTrouve(QUITTANCES_IMPAYEES) ALORS
    		nNumQuitImpayees=QUITTANCES_IMPAYEES.NumQuit 
    	FIN
    	nNumQuitChoisi =nNumQuitImpayees+1
    FIN
     
     
    Numéro_a_Ajouter est entier     // C'est la variable que j'affecte au numéro de la Quittance impayée. Chaque Numéro de Quittance impayée est unique
     
    POUR TOUT LOCATAIR AVEC Etat="E"
    SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter= nNumQuitChoisi+1	
        QUITTANCES_IMPAYEES.NumQuit=Numéro_a_Ajouter
    	QUITTANCES_IMPAYEES.Code=FEN_Fiche_Generation_des_Quittances.SC_Fiche.SAI_NUMEROS_Code..ValeurAffichée
    	QUITTANCES_IMPAYEES.CodExo=FEN_Fiche_Generation_des_Quittances.SC_Fiche.COMBO_CodExo..ValeurAffichée
    	QUITTANCES_IMPAYEES.CodPeriode=FEN_Fiche_Generation_des_Quittances.SC_Fiche.COMBO_CodPeriode..ValeurAffichée
    	QUITTANCES_IMPAYEES.Contentieux=QUITTANC.Contentieux
    	QUITTANCES_IMPAYEES.Date_Paiement=""
    	QUITTANCES_IMPAYEES.Dateannulation=""
    	QUITTANCES_IMPAYEES.Dateemission=FEN_Fiche_Generation_des_Quittances.SC_Fiche.SAI_Dateemission
    	QUITTANCES_IMPAYEES.Datesolde=""
    	QUITTANCES_IMPAYEES.Debperiode=FEN_Fiche_Generation_des_Quittances.SC_Fiche.SAI_Debperiode
    	QUITTANCES_IMPAYEES.Finperiode=FEN_Fiche_Generation_des_Quittances.SC_Fiche.SAI_Finperiode
    	QUITTANCES_IMPAYEES.Mont1=QUITTANC.Mont1
    	QUITTANCES_IMPAYEES.Mont10=QUITTANC.Mont10
    	QUITTANCES_IMPAYEES.Mont2=QUITTANC.Mont2
    	QUITTANCES_IMPAYEES.Mont3=QUITTANC.Mont3
    	QUITTANCES_IMPAYEES.Mont4=QUITTANC.Mont4
    	QUITTANCES_IMPAYEES.Mont5=QUITTANC.Mont5
    	QUITTANCES_IMPAYEES.Mont6=QUITTANC.Mont6
    	QUITTANCES_IMPAYEES.Mont7=QUITTANC.Mont7
    	QUITTANCES_IMPAYEES.Mont8=QUITTANC.Mont8
    	QUITTANCES_IMPAYEES.Mont9=QUITTANC.Mont9
    	QUITTANCES_IMPAYEES.Montant_verse=""
    	QUITTANCES_IMPAYEES.Monttotal=QUITTANC.Monttotal
    	QUITTANCES_IMPAYEES.NumLocal=QUITTANC.NumLocal
    	QUITTANCES_IMPAYEES.Numlocataire=QUITTANC.NumLocataire
    	QUITTANCES_IMPAYEES.Nummandat=QUITTANC.Nummandat
    	QUITTANCES_IMPAYEES.NumReglmnt=""
    	QUITTANCES_IMPAYEES.Periodicite=FEN_Fiche_Generation_des_Quittances.SC_Fiche.COMBO_Periodicite..ValeurAffichée
    	QUITTANCES_IMPAYEES.RecNo=""
    	QUITTANCES_IMPAYEES.Reliquat=""
    	QUITTANCES_IMPAYEES.Rub1=QUITTANC.Rub1
    	QUITTANCES_IMPAYEES.Rub10=QUITTANC.Rub10
    	QUITTANCES_IMPAYEES.Rub2=QUITTANC.Rub2
    	QUITTANCES_IMPAYEES.Rub3=QUITTANC.Rub3
    	QUITTANCES_IMPAYEES.Rub4=QUITTANC.Rub4
    	QUITTANCES_IMPAYEES.Rub5=QUITTANC.Rub5
    	QUITTANCES_IMPAYEES.Rub6=QUITTANC.Rub6
    	QUITTANCES_IMPAYEES.Rub7=QUITTANC.Rub7
    	QUITTANCES_IMPAYEES.Rub8=QUITTANC.Rub8
    	QUITTANCES_IMPAYEES.Rub9=QUITTANC.Rub9
    	QUITTANCES_IMPAYEES.Solde=""
    	QUITTANCES_IMPAYEES.Timbre=QUITTANC.Timbre
    	QUITTANCES_IMPAYEES.Traite=QUITTANC.Traite
    	QUITTANCES_IMPAYEES.Type=QUITTANC.Type
     
     HAjoute(QUITTANCES_IMPAYEES)
     FIN 
     
    TableAffiche(FEN_TABLE_LISTE_DES_EMISSIONS_DES_QUITTANCES.TABLE_QUITTANCES_IMPAYEES,taCourantEnreg)
    Je vous remercie de votre aide

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    A priori ton MLD ne correspond pas à tes besoins. Ce serait bien d'avoir une copie écran
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,
    L'erreur est juste, puisqu'il n'y a pas d'incrémentation dans ta boucle.

    SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter= nNumQuitChoisi+1 :
    ça renvoie toujours le même numéro.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 056
    Points : 9 394
    Points
    9 394
    Par défaut
    Tu connais peu Windev, ok.
    Est-ce que tu connais plus ou moins SQL.

    Pour 'extraire' des informations d'une base de données, SQL est vraiment l'outil idéal.
    Pour insérer aussi, mais c'est surtout pour extraire des informations que le bénéfice est énorme.

    SQL est compatible avec windev, tu n'as rien à changer à ce que tu as fait...
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    A priori ton MLD ne correspond pas à tes besoins. Ce serait bien d'avoir une copie écran
    Bonjour, Merci beaucoup de votre réponse
    je vous met en pièces jointes les captures d'écran de mon Analyse, bien que je ne pense pas que l'Analyse soit le blocage. Car tout marche bien à part la génération de toutes les Quittances l'incrémentation des Numéros de Quittances impayées.
    Nom : Capture_d_Ecran_Analyse.jpg
Affichages : 271
Taille : 360,2 Ko
    Nom : Capture_d_Ecran_Table_Locataire.jpg
Affichages : 252
Taille : 245,9 Ko
    Nom : Capture_d_Ecran_Table_Quittances_impayees.jpg
Affichages : 255
Taille : 246,6 Ko

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par midou23175 Voir le message
    Bonjour,
    L'erreur est juste, puisqu'il n'y a pas d'incrémentation dans ta boucle.

    SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter= nNumQuitChoisi+1 :
    ça renvoie toujours le même numéro.
    Bonjour Midou23175, Merci beaucoup de votre réponse.

    C'est cette incrémentation qui est mon problème. Je ne sais pas comment le faire. Si vous pouvez s'il vous plait me m'aider, ce serait un grand apport.

    Merci encore

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Tu connais peu Windev, ok.
    Est-ce que tu connais plus ou moins SQL.

    Pour 'extraire' des informations d'une base de données, SQL est vraiment l'outil idéal.
    Pour insérer aussi, mais c'est surtout pour extraire des informations que le bénéfice est énorme.

    SQL est compatible avec windev, tu n'as rien à changer à ce que tu as fait...
    Bonjour tbc92, Merci beaucoup de votre réponse.
    Malheureusement je ne connais pas sql. Mais si je n'ai pas de solution à mon problème, je vais commencer à apprendre sql.
    Merci beaucoup

  8. #8
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    HLitDernier(QUITTANCES_IMPAYEES,NumQuit)
    SI HTrouve(QUITTANCES_IMPAYEES) ALORS
    	nNumQuitImpayees=QUITTANCES_IMPAYEES.NumQuit 
    FIN
     
    Numéro_a_Ajouter est entier=nNumQuitImpayees
     
    POUR TOUT LOCATAIR AVEC Etat="E"
     
    SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter= Numéro_a_Ajouter+1	
    ou bien	SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter+=1
    ou bien   SI PAS HEnDehors(LOCATAIR) ALORS Numéro_a_Ajouter++
     
    QUITTANCES_IMPAYEES.NumQuit=Numéro_a_Ajouter
    QUITTANCES_IMPAYEES.Code=FEN_Fiche_Generation_des_Quittances.SC_Fiche.SAI_NUMEROS_Code..ValeurAffichée
    ----------
    ----------

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup midou23175,
    L'incrémentation marche à merveille. Mais je dois revoir mon code pour que le système crée pour chaque Locataire une Quittance impayée. Parce qu'avec le code que j'ai actuellement, le système crée à la fois (quand je clique sur le Bouton) plusieurs Quittances pour un seul Locataire.
    De toute façon Merci beaucoup de votre grande aide midou23175.

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par midou23175 Voir le message
    ...
    2 choses (corrigez moi si je me trompe) :
    - Le SI PAS HEnDehors(LOCATAIR) ALORS est inutile. Le POUR TOUT fait le test.
    - Il faut privilégier la syntaxe ++ pour l'incrémentation car plus rapide.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    2 choses (corrigez moi si je me trompe) :
    - Le SI PAS HEnDehors(LOCATAIR) ALORS est inutile. Le POUR TOUT fait le test.
    - Il faut privilégier la syntaxe ++ pour l'incrémentation car plus rapide.
    Merci beaucoup de votre réponse Frenchsting. Je vais appliquer votre conseil et je vous reviens.

    Merci encore

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    En regardant le MLD je ne dirai qu'une chose :
    Avant de coder vérifie la cohérence des données.
    A la volée :
    - es tu sur qu'il n'y as pas de doublons au niveau de NumLocataire.
    - idem pour NumQuitance
    - es-tu sur que les NumQuitances se suivent sans "trou"
    - Rub1,.....Rubn sont la même chose, elle ne doivent apparaître qu'une fois. La PK de quitance sera une des FK de la RUB ....
    .........

    Je suppose que tu utilises HLitDernier pour avoir le dernier numéro. C'est une erreur énorme, outre le risque de "trou", ce n'est pas sur que le dernier enregistrement soit celui avec le N° le plus grand. Il faut au minimum rechercher le N° le plus grand ...
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 056
    Points : 9 394
    Points
    9 394
    Par défaut
    Je vois énormément de fichiers, avec énormément de colonnes !

    Fichier Quittances , fichier Quittances_impayees, fichier Quittances_impayes_loc_resid ... Moi qui imaginais un fichier quittance, et une colonne 'paiement' dans ce fichier, je suis loin de la plaque !
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    2 choses (corrigez moi si je me trompe) :
    - Le SI PAS HEnDehors(LOCATAIR) ALORS est inutile. Le POUR TOUT fait le test.
    - Il faut privilégier la syntaxe ++ pour l'incrémentation car plus rapide.
    ReBonsoir Frenchsting,
    j'ai enlevé le (- SI PAS HEnDehors(LOCATAIR) ALORS...) mais c'est toujours pareil. Le code génère beaucoup de Quittances impayées (+300), mais pour un seul Locataire. Les données du Locataire (Numéro, montant quittances, Numéro local, etc) sont toutes reportées sur toutes les lignes générées (enregistrements ajoutés).
    A la place je devais avoir sur chaque ligne de quittance générée un locataire unique avec ses propres données (Numéro, montant quittances, Numéro local, etc).
    Mais en attendant votre aide à vous tous, je vais revoir mon code et voir ce que je peux changer.

    Merci encore à vous tous

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    En regardant le MLD je ne dirai qu'une chose :
    Avant de coder vérifie la cohérence des données.
    A la volée :
    - es tu sur qu'il n'y as pas de doublons au niveau de NumLocataire.
    - idem pour NumQuitance
    - es-tu sur que les NumQuitances se suivent sans "trou"
    - Rub1,.....Rubn sont la même chose, elle ne doivent apparaître qu'une fois. La PK de quitance sera une des FK de la RUB ....
    .........

    Je suppose que tu utilises HLitDernier pour avoir le dernier numéro. C'est une erreur énorme, outre le risque de "trou", ce n'est pas sur que le dernier enregistrement soit celui avec le N° le plus grand. Il faut au minimum rechercher le N° le plus grand ...
    Bonsoir Voroltinquo,
    il n'ya aucun doublon au niveau des 2 Fichiers (Locataire et quittance). Chaque locataire est aussi unique qu'une quittance impayée.
    Mon probléme est la suivante :

    Le code génère beaucoup de Quittances impayées (+300), mais pour un seul Locataire. Les données du Locataire (Numéro, montant quittances, Numéro local, etc) sont toutes reportées sur toutes les lignes générées (enregistrements ajoutés).
    A la place je devais avoir sur chaque ligne de quittance générée un locataire unique avec ses propres données (Numéro, montant quittances, Numéro local, etc).
    Le code doit parcourir le Fichier Locataire, lire ou récupérer le Numéro du 1er locataire et créer une quittance impayée pour ce Locataire dans le Fichier Quittances impayées. Le code doit faire cela pour tous les Locataires.
    Mais en attendant votre aide à vous tous, je vais revoir mon code et voir ce que je peux changer.

    Merci encore à vous tous

  16. #16
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je vois énormément de fichiers, avec énormément de colonnes !

    Fichier Quittances , fichier Quittances_impayees, fichier Quittances_impayes_loc_resid ... Moi qui imaginais un fichier quittance, et une colonne 'paiement' dans ce fichier, je suis loin de la plaque !
    Merci beaucoup tbc92

  17. #17
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je vois énormément de fichiers, avec énormément de colonnes !

    Fichier Quittances , fichier Quittances_impayees, fichier Quittances_impayes_loc_resid ... Moi qui imaginais un fichier quittance, et une colonne 'paiement' dans ce fichier, je suis loin de la plaque !
    C'est en effet un véritable usine à gaz. Tous les SI sont regroupés en un seul.
    @bayekas
    Pour que ton MLD soit exploitable, il faudrait regrouper tes tables dans des persos dossier (sous-modèles.) Dans le cas présent un perso dossier Facturation. Lorsque l'on traite la facturation, on n'a pas besoin de connaitre le métier, le mode de virement ...
    Dans un deuxième temps
    Citation Envoyé par bayekas Voir le message
    Le code génère beaucoup de Quittances impayées (+300), mais pour un seul Locataire. Les données du Locataire (Numéro, montant quittances, Numéro local, etc) sont toutes reportées sur toutes les lignes générées (enregistrements ajoutés).
    A la place je devais avoir sur chaque ligne de quittance générée un locataire unique avec ses propres données (Numéro, montant quittances, Numéro local, etc).
    Le code doit parcourir le Fichier Locataire, lire ou récupérer le Numéro du 1er locataire et créer une quittance impayée pour ce Locataire dans le Fichier Quittances impayées. Le code doit faire cela pour tous les Locataires.
    Mais en attendant votre aide à vous tous, je vais revoir mon code et voir ce que je peux changer.
    Merci encore à vous tous
    Normalement tu dois avoir soit le montant payé pour le mois en cours soit une colonne Payé.
    Il suffit
    1-De récupérer les locataires dont le montant est < au loyer ou pour qui Payé est faux
    2-De créer un Impayé pour ces locataires en affectant La PK de locataire à sa FK dans ta Table Quittances impayée.
    Avec SQL, cela se fait avec une seule commande INSERT du style
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    INSERT INTO QuittancesImpayées(FK_Locataire)
    SELECT
         PK_Locataire
    FROM
         LOCATAIRE,
         Paiement_Loyer
    WHERE
         LOCATAIRE.PK_Locataire=PaiementLoyer.FK_Locataire
         AND
         PaimentLoyer.Payé=Faux
    Dans la mesure où SQL n'est pas ton fort, il va falloir parcourir les locataires trouvés dans l'étape 1 et de créer une QuittanceImpayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    POUR TOUT REQ_MauvaisPayeur
         QuittanceImpayé.FK_Locataire=REQ_MauvaisPayeur.PK_Locataire
         HAJoute(QuittanceImpayée)
    FIN
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  18. #18
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par bayekas Voir le message
    ReBonsoir Frenchsting,
    j'ai enlevé le (- SI PAS HEnDehors(LOCATAIR) ALORS...) mais c'est toujours pareil. Le code génère beaucoup de Quittances impayées (+300), mais pour un seul Locataire. Les données du Locataire (Numéro, montant quittances, Numéro local, etc) sont toutes reportées sur toutes les lignes générées (enregistrements ajoutés).
    A la place je devais avoir sur chaque ligne de quittance générée un locataire unique avec ses propres données (Numéro, montant quittances, Numéro local, etc).
    Mais en attendant votre aide à vous tous, je vais revoir mon code et voir ce que je peux changer.

    Merci encore à vous tous
    Bonjour,

    Les astuces que j'ai données sont pour optimiser le traitement, pas pour qu'il soit correct. Quand je regarde ton code, je vois que tu fais toujours la "même chose". Tu ajoutes toujours les mêmes valeurs dans ton fichiers de quittances impayées.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  19. #19
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    C'est en effet un véritable usine à gaz. Tous les SI sont regroupés en un seul.
    @bayekas
    Pour que ton MLD soit exploitable, il faudrait regrouper tes tables dans des persos dossier (sous-modèles.) Dans le cas présent un perso dossier Facturation. Lorsque l'on traite la facturation, on n'a pas besoin de connaitre le métier, le mode de virement ...

    Bonjour Voroltinquo, désolé du retard de réponse, mais j'étais hors de la ville et sans connexion internet.
    Pour l'usine à gaz je suis d'accord avec vous. Je vais essayer de suivre vos conseils même si je crains que ça va créer des problèmes. Mais ça vaut le coup.


    Dans un deuxième temps

    Normalement tu dois avoir soit le montant payé pour le mois en cours soit une colonne Payé.
    Il suffit
    1-De récupérer les locataires dont le montant est < au loyer ou pour qui Payé est faux
    2-De créer un Impayé pour ces locataires en affectant La PK de locataire à sa FK dans ta Table Quittances impayée.
    Avec SQL, cela se fait avec une seule commande INSERT du style
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    INSERT INTO QuittancesImpayées(FK_Locataire)
    SELECT
         PK_Locataire
    FROM
         LOCATAIRE,
         Paiement_Loyer
    WHERE
         LOCATAIRE.PK_Locataire=PaiementLoyer.FK_Locataire
         AND
         PaimentLoyer.Payé=Faux
    Dans la mesure où SQL n'est pas ton fort, il va falloir parcourir les locataires trouvés dans l'étape 1 et de créer une QuittanceImpayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    POUR TOUT REQ_MauvaisPayeur
         QuittanceImpayé.FK_Locataire=REQ_MauvaisPayeur.PK_Locataire
         HAJoute(QuittanceImpayée)
    FIN
    Votre code résoudrerait mon problème dans le cas où j'avais sur le Fichier Quittance_impayées toutes les quittances impayées antérieures, ainsi que les quittances impayées générées par le système pour le mois prochain (Exemple: on est aujourd'hui le 29 Septembre, Demain le 30 Septembre qui correspondra à la fin du mois, je dois avoir sur le Fichier Quittance_impayées (après avoir cliquer sur le bouton de génération des Quittances) toutes les quittances de tous les Locataires.
    j'ai conçu mon programme de sorte que si un locataire veut payer, quand on clique sur la fenêtre de paiement et que l'on choisit un Locataire, on aura toutes ses quittances impayées (antérieures et celle du mois prochain si on est le 28 ou le 29 ou le 30 etc). Je reconnais que mon programme est trop désorganisé, mais je m'y retrouve et j'ai jusqu'ici les résultats attendus.
    Je vous remercie du fond du coeur de votre aide car chaque aide m'est profitable.
    Je vous tiendrai au courant.
    Que Dieu vous bénisse vous tous.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2013
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Les astuces que j'ai données sont pour optimiser le traitement, pas pour qu'il soit correct. Quand je regarde ton code, je vois que tu fais toujours la "même chose". Tu ajoutes toujours les mêmes valeurs dans ton fichiers de quittances impayées.
    Bonsoir Frenchsting,
    désolé du retard de réponse, mais j'étais hors de la ville sans connexion internet.
    comme je vous l'avais dit, je suis en train de revoir mon code, voir le programme en entier en me basant sur vos conseils.
    je vous tiendrai au courant si j'ai une solution. Mais sachez que vous m'avez beaucoup aidé, et je vous en remercie beaucoup.
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/04/2013, 18h36
  2. Réponses: 2
    Dernier message: 13/03/2012, 15h19
  3. Réponses: 2
    Dernier message: 20/10/2010, 13h09
  4. Réponses: 0
    Dernier message: 23/11/2009, 18h35
  5. Génération de toutes les possibilités
    Par sb1979 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/10/2009, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo