|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
Bonjour tout le monde
Ceci est mon premier message parmi vous (et je pense qu'il n'est pas simple). J'ai un problème avec une nouvelle base de données que je dois faire et je ne sais pas trop comment l'aborder. Je viens donc vers vous pour obtenir quelques conseils. Dans cette base toute simple (!!), il s'agit de faire des devis à partir de matériaux provenant d'une usine. Imaginons qu'il s'agisse de bois. Cette usine fabrique des planches de bois et il suffit de faire des devis en fonction du type de planche, de leur longueur, largeur et épaisseur. Seulement c'est un tout petit peu plus tordu que cela car on peut avoir plusieurs essences de bois (donc des tarifs différents). Mais s'il s'agit (par exemple) de planches de coffrage, le prix ne sera pas tout bêtement une formule en fonction de la largeur, longueur et épaisseur. Le prix sera de 1 pour une épaisseur standard de 10 si la largeur est entre 20 et 30 et que la longueur est entre 1000 et 1500. Le prix sera de 1,1 pour une épaisseur standard de 10 si la largeur est entre 30 et 40 et que la longueur est entre 1000 et 1500. Le prix sera de 1,15 pour une épaisseur standard de 10 si la largeur est entre 40 et 50 et que la longueur est entre 1200 et 1700. Le prix sera de 1,23 pour une épaisseur standard de 10 si la largeur est entre 50 et 75 et que la longueur est entre 1450 et 2174. ... Et j'ai comme cela des dizaines de pages de tarifs en fonction de longueurs, largeurs, épaisseurs, types de planches. A cela se rajoute les longueurs libres. C'est à dire que l'acheteur de planches n'est pas déterminé sur une longueur fixe, mais qu'il accepte des planches d'une longueur (par exemple) entre 1400 et 2200 en fonction des besoins de l'usine. Le prix est donc différent. Bien entendu on ne fabrique pas que des planches de coffrages, mais des plinthes, des voliges, ... Bien entendu il peut y avoir des finitions différentes (scié, raboté, poncé, vernis, peint, lazuré, ...) Bien entendu il peut y avoir des pièces spéciales (plié, coupé en rond, avec des trous, des biais, ...) Ma question : comment est-ce que je construis ma base pour que l'on puisse assez simplement changer un tarif, modifier des intervalles de longueurs, ...? Je met tout dans des variables, des tables ? Question connexe : comment est-ce que je met les tests dans mon formulaire ? Tout en code, dans des tables ? Merci d'avance pour votre aide Pierre |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Bonjour et bienvenue,
Nous n'allons pas te proposer un modèle tout fait, propose nous un modèle qui te semble correcte et nous te dirons ce que nous en pensons.
__________________
J'aime les gâteaux. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
Je pense qu'il y a un malentendu, car je ne cherche pas du tout à ce que vous me fassiez le modèle, mais juste me dire comment vous aborderiez le problème.
Est-ce qu'il vaut mieux mettre dans des variables ou dans des tables ? Quels avantages et inconvénients pour les différentes méthodes ? Pierre |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Citation:
Je pense qu'il faut utiliser des tables oui. Tu peux ainsi créer des formulaires afin de les mettre à jour à volonté.
__________________
J'aime les gâteaux. |
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
L'inconvénient des tables c'est pour donner une valeur texte (ex : "Longueur libre") dans un champ numerique (ex : Longueur). Encore pire pour dire longueur libre entre 100 et 150.
Je ne vois vraiment pas comment faire. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : mai 2002 Messages : 1 396 ![]() |
Il faudrait vraiment bien comprendre ce que tu veux faire pour bien te conseiller, je ne peux pas affirmer que je te donne de solution parfaite.
Mais tu peux utiliser des tables de paramètres. Pour la longueur tu peux très bien imaginer un champ "longueur_fixe", qui sera vide si la longueur n'est pas fixe par exemple, ou aura la valeur -1. Puis deux autres champs longueur_min et longueur_max. Ce n'est qu'un exemple, à toi de voir si c'est exploitable pour ton cas. En espérant t'aider.
__________________
J'aime les gâteaux. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
Bonjour
Je vois bien que tu as du mal à comprendre (mais tu fais quand même l'effort d'essayer). Mais pour l'instant cela ne m'aide pas vraiment Pierre |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
Si tu veux y arriver, il faut une table avec tous les tarifs possibles.
Si tu mets tout dans des variables, bonjour la galère le jour où les tarifs changent. Malheureusement, il faudra un enregistrement par produit vendu. On peut toujours moduler certains tarifs, par exemple en fonction de l'essence de bois, mais pas de souplesse. Une fois cette table réalisée, il faut un formulaire qui permette de retrouver très rapidement le produit. Avec des listes déroulantes pour affiner les recherches. Chaque produit doit avoir une référence, pour n'avoir que cette référence dans la table de détail des commandes. tbl_Produits reference epaisseur longuer largeur essence prix ...... tbl_Client numero_Client Nom Prenom tbl_Facture Numero_Facture Numero_Client (clé externe) Date_Facture tbl_DetFacture Id_DetFact Numero_Facture reference qantite pu ... ... Le prix du produit doit être enregistré dans la table détail commande pour garder un historique des prix. Si ce prix n'était pas dans cette table, un changement de prix entraînerait automatique les changement pour toutes les factures ou commande, se trouvant dans la DB.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
Bonjour
Merci pour ta réponse. Mais je pense qu'elle convient pour des produits standardisés, pas pour du sur-mesure. Ici, le produit final n'existe pas avant, c'est le client final qui donne ses dimensions et l'usine qui le fabrique. Le souci est de déterminer le prix pour son produit. En effet pour trouver le prix, on fonctionne avec des échelles (cf premier message) : Si la longueur est entre tant et tant, si la largeur est entre tant et tant, si la surface fait entre tant et tant, si l'épaisseur fait tant ou tant. Par exemple pour mon premier type de calcul voici mes données : Groupe A : 20x20 Ou Longueur Libre (LL) et 10<=largeur (l)<=35 épaisseur 4 ->Prix P1 épaisseur 6 ->prix P2 épaisseur 8 ->prix P3 épaisseur 10 ->prix P4 épaisseur 12 ->prix P5 épaisseur plus importante (et <20) ->P5-(épaisseur-12)*(P5-P4)/2 Pour toute épaisseur "impaire" entre 4 et 12 faire la moyenne entre les 2 prix des épaisseur qui l'entoure Groupe B : 0,04m²<Surface (S)<=0,09 ET LL et 35<l<=45 épaisseur 4 ->Prix P1*coef1 épaisseur 6 ->prix P2*coef1 épaisseur 8 ->prix P3*coef1 épaisseur 10 ->prix P4*coef1 ... Groupe C : 0,09<S<=0,2 ET LL et 45<l<=50 épaisseur 4 ->Prix P1*coef2 épaisseur 6 ->prix P2*coef2 épaisseur 8 ->prix P3*coef2 ... Groupe D : 0,2<S<=0,36 ET 50<l<=60 épaisseur 4 ->Prix P1*coef3 épaisseur 6 ->prix P2*coef3 épaisseur 8 ->prix P3*coef3 ... Groupe E : 0,36<S<=1 ET l<60 ou L<60 OU LL et l>60 épaisseur 4 ->Prix P1*coef4 épaisseur 6 ->prix P2*coef4 épaisseur 8 ->prix P3*coef4 ... Groupe F : 0,36<S<=1 ET l>60 ET L>60 épaisseur 4 ->Prix P1*coef5 épaisseur 6 ->prix P2*coef5 épaisseur 8 ->prix P3*coef5 ... Groupe G : 1<S<=1,5 épaisseur 4 ->Prix P1*coef6 épaisseur 6 ->prix P2*coef6 épaisseur 8 ->prix P3*coef6 ... Groupe H : 1,5<S<=3 épaisseur 4 ->Prix P1*coef7 épaisseur 6 ->prix P2*coef7 épaisseur 8 ->prix P3*coef7 ... Je mettrai un formulaire dans lequel on pourra inscrire la longueur, la largeur et l'épaisseur. But : trouver le prix Bon appétit Pierre |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 351 ![]() |
Dans la table produit, tu as besoin d'un enregistrement par possibilité.
A 20X20 longueur libre min 10 max 35 ep 4 prix P1 A 20X20 longueur libre min 10 max 35 ep 6 prix P2 A 20X20 longueur libre min 10 max 35 ep 8 prix P3 ........ Lorque tu sera dans ton formulaire, des listes de choix une pour le A; une pour le 20X20, une pour la longueur, ........ il n'y a pas de limite, le reultat dans une liste de choix Une fois le bon enregistrement choisi, les données sont copiées dans la table détail facture avec la quantité.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Christophe Warin Inscription : octobre 2004 Messages : 8 635 ![]() |
Moi je verrais bien :
Une table critère(NomCirtere,BorneMini, BorneMaxi, Coef) Epaisseur, 10,15,1 Epaisseur, 16,20,2 Largeur,10,20,1 Largeur,21,30,2 Longueur,10,20,1 Longueur,21,50,3 Ainsi pour un produit de Epaisseur 13, Longueur 35, Largeur 15 J'aurais Cout=PrixMatierePremiere*1*3*1 |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : mars 2007 Messages : 36 ![]() |
Merci Tofalu
Mais, malheureusement, je crois que cela ne convient pas parfaitement. En effet, en reprécisant la question, pour le groupe B de tarif, un article en fait partie : soit en connaissant la longueur et la largeur, donc on peut déduire la surface. Celle-ci étant comprise entre 0.04 et 0.09 soit en laissant les longueurs libres (pour l'usine de tailler à la longueur qu'elle veut), mais en imposant la largeur. Celle-ci étant comprise entre 35 et 45. Et encore je ne rentre pas dans la compléxité des groupes de prix E et F car ceux-ci : Soit on connait la longueur et la largeur, donc on peut en déduire la surface, celle-ci étant comprise entre 0.36 et 1. Mais, pour le groupe E, une seule des 2 dimensions est supérieure à 60. Alors que pour le groupe F, les deux dimensions doivent être supérieures à 60. soit en laissant les longueurs libres (pour l'usine de tailler à la longueur qu'elle veut), mais en imposant la largeur. Celle-ci étant supérieure à 60. ceci pour le groupe E uniquement. Et encore, il ne s'agit ici que du tableau de prix pour le premier type d'article. Les autres articles obéissent à d'autres régles. Certains en fonction du poids, d'autres il s'agit d'un simple calcul entre longueur, largeur et épaisseur. D'autres encore en fonction de longueur et de largeur et du type de découpe. Bref à chaque article il y a une méthode de calculs de prix différent. C'est en cela que j'ai des soucis. Comment faire pour gérer cette grande diversité ? J'ai conscience de n'être pas toujours très clair Bonne journée Pierre |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
examinons la table des tarifs elle comporte 2 types d'information
A des éléments de structure groupe ok a conserver (enfin je sais pas à quoi il sert) epaisseur à dupliquer en 4,5,6,7,8 par exemple nous avons ensuite 3 variables longueur, largeur, surface il convient de remplacer par longueur mini ,longueur maxi (logmini,logmaxi) largeur mini, largeur maxi (lamin,lamax) surface mini, surface max (smaxi) longueur libre sera noté logmini=0 logmaxi=100000 j'ajoute datedebut datefin à cette étape je peux classer n'importe quel bout de bois en utilisant un des n enregistrements de la table (j'ajoute une clef:tarif) bon maintenant B les tarifs tarif de base P1 que je peux coder 1 P2 sera noté p2/p1 un p2 coefficient 3 sera noté p2/p1*coeff 3 je vais créer une table tarifaire avec ces coefficients +date début et datefin et clef:tarif +clef unique datedébut/tarif en principe cette table devrait rester très stable j'ajoute une troisiéme table prix de base datedebut datefin valeur de p1 il convient sans doute d'ajouter une table essence normalement je peux gérer tout prix, rechercher tout historique ....,imprimer tout catalogue j'ai trois événements tarifaire possibles une révision générale il me suffit de faire varier p1 maj datefin nouvel enregistrements une révision structurelle prix je vais changer p2/p1 ou coeff 1 une revision de la momenclature des articles modif en conséquence si mon intuition est bonne une révision mensuelle sur p1 mettra à jour tous les tarifs
__________________
Elle est pas belle la vie ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com