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

Access Discussion :

Gestion de stock CMUP après chaque entrée


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut Gestion de stock CMUP après chaque entrée
    Bonjour, je dispose d'une base de données GESTSTOCK qui me permet d'avoir, entre l'autre, l'état de stock des matières 1ére.
    Petit Hic : je n'arrive pas à appliquer ma formule de valorisation de stock en CMUP ...

    J'ai deux tables : ENTREES_STOCK et SORTIES_STOCK.

    Comment - où et qd intégrer ma formule ?

    la formule de valorisation est (àprés chaque entrée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (QteStock Initial + Qte Entree) / (Mt Stock initial + Mt Entrées)
    Si qq'un dispose d'une idée concluante, je suis preneur !

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je te cite

    (QteStock Initial + Qte Entree) / (Mt Stock initial + Mt Entrées)

    tu es certain d'arriver à ton but ?
    cette formule te donne la quantité de marchandise que tu peux acheter
    avec une unité monétaire...ce qui est assez curieux...mais cela existe
    sous le nom de cotation à l'impair

    ceci étant si tu connais le dernier montant calculé par exemple 0.20 euros
    l'inverse de ce montant=5 euros=montant moyen

    ta formule serait (1/[monchamp])
    Elle est pas belle la vie ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Pour être clair voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Entrées			              Sorties			Stock		
    PU       Qte       Mt
    12,00	12,63	151,56		0,00	0,00	12	12,630	151,56
    11,00	11,50	126,50		0,00	0,00	23	12,090	278,06
    Pour obtenir le 12,090, j'ai fait :

    (12 + 11) / (151,56+126,50)

    De plus, si j'ai une sortie de stock :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Entrées			              Sorties			Stock		
    PU       Qte       Mt
    		0,00	2	12,09	24,18	21	12,090	253,88
    Sur excel ca fonctionne sans soucis, mais sur access, je n'arrive pas à le faire ressortir

    Merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    1° j'observe que
    (12 + 11) / (151,56+126,50) =0,082715961

    soit 1/12.09
    ta formule est donc
    (151,56+126,50)/(12 + 11)
    2° pourrais tu nous dire ce qui pose problème
    j'ai l'impression que c'est la saisie d'une vente, est ce bien cela ?
    3° pourrais tu nous dire s'il existe un champ commun aux deux tables
    permettant d'identifier la marchandise vendue ou si cette table ne concerne qu'un seul type de marchandise ?
    4° pourrais tu nous dire comment sont entrées les données ?
    Elle est pas belle la vie ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Merci pour la peine que tu te donnes, et encore désolé car je ne m'explique pas bien :

    Effectivement, tu as raison : (151,56+126,50)/(12 + 11) => Cout Moyen Unitaire Pondéré (et non l'inverse).

    Bon, ma table ENTREE / SORTIE sont liées par un numproduit.

    Si tu as le temps et la patience, je te propose de jeter un coup d'oeil à ma base : http://mci-santeanimale.com/CMUP.mdb

    Mes sorties de stock sont réalisée sur le formulaire Traitement des bouteilles et mes entrées.

    Voici une structure ... un exemple

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ton adresse ne pointe pas sur la bonne base mais c'est pas grave

    tu veux quoi
    le code pour une entrée ?
    le code pour une sortie ?
    Elle est pas belle la vie ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Hello,

    Alors je veux tout simplement qu'à chaque entrée de stock, la formule de valorisation soit prise en compte "afin de déterminer le PU".

    Ce CMUP (une fois déterminé) doit être stocké pour être récupéré lors d'une sortie de stock.

    Dés qu'il va s'agir d'une entrée (aprés une sortie), la formule devra être réinitialisée, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calcul du CMUP aprés chaque entrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mt entrées + Mt en stock (correspondant au : Montant du stock Initial + Montant de l'entrée) / Qte entrée + Qte en stock actuel
    A la prochaine sortie, on va attribuer le CMUP obtenu dans le calcul réalisé lors de la précédente entrée de stock.

    De la même manière, lorsque j'aurai une nouvelle entrée, je serai en mesure d'appliquer la même formule (Calcul du CMUP aprés chaque entrée).

    Voici l'adresse complète, il doit y avoir un problème de DNS effectivement :
    http://65.19.139.50/mci%2Dsanteanimale.com/CMUP.mdb

    Merci

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    J'ai pas regardé to fichier mais ce que tu cherches n'est pas compliqué du tout.

    Supposons que ta table Produit soit de la forme

    T_Produit
    CodeProduit
    QtEnStock
    PrixVente

    Ta table T_Entre (NumEntre, DateEntre,...) et T_DetailEntre (CodeEntre, CodeProduit, QtEntre, PrixEntre)

    Tu doit avoir un bouton de validation des entrées avec un code qui met à jour et le stock de chaque et son prix de vente recalculé (CUMP)

    Exemple Si le formulaire s'appel F_Achat
    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
     
    Dim Mdb as Database, DLigneEntre, DProd as Recordset
    Dim NEntre, NProd, QtStock, PrixVente, QtNouv, PrixNouv as Variant
     
    NAchat=Me.NumEntre
    Set Mdb=CurrentDB()
     
    'Selection des lignes de l'entre en cour
    Set DLigneEntre=Mdb.OpenRecordset("Select * From T_DetailEntre Where CodeEntre=" & NEntre & ";")
     
    Do Until DLigneEntre.EOF
            NProd=DLigneEntre("CodeProduit")
            Set DProd=Mdb.OpenRecordset("Select * From T_Produit Where NumProduit=" & NProd & ";"
             DProd.Edit
             QtStock=DProd("QtStock")
             PrixVente=DProd("PrixVente")
             QtNouv=DProd("QtStock")+DLigneEntre("QtEntre")
             PrixNouv=DProd("PrixVente")+DLigneEntre("PrixEntre")
     
             DProd("QtStock")=QtNouv
             DProd("PrixVente")=(PrixVente+PrixNouv)/(QtStock+DLigneEntre("QtEntre"))
             DProd.Update
     
          DLigneEntre.MoveNext   
    Loop
    PS: L'idée est de balayer les lignes entrées et pour chaque produit mettre à jour le stock et le prix. ATTENTION ! Le code a été saisi à la volet.
    Amicalement

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    supposons que tu aies un champ date horodatant les transactions ou un champ compteur automatique dans la table sortie , de plus un codeproduit permettant de savoir de quel produit on parle
    si tu utilises la fonction
    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
     
    Function dersortie(codeprod As Variant, quoi As Integer) As Variant
    Dim mabase As DAO.Database
    Dim mr As DAO.Recordset
    Set mabase = CurrentDb()
    Set mr = mabase.OpenRecordset("SELECT codart, Max(date) AS MDate, stock, pum, cumul FROM sorties GROUP BY codart,  stock,pum, cumul HAVING codart=10;")
    If mr.RecordCount = 0 Then
    dersortie = 0
    Exit Function
    End If
    Select Case quoi
    Case 1
    dersortie = mr![stock]
    Case 2
    dersortie = mr![pum]
    Case 3
    dersortie = mr![cumul]
    End Select
    Set mr = Nothing
    Set mabase = Nothing
    End Function
    te renverra selon le paramètre passé
    le stock
    le prix unitaire moyen
    ou le cumul valorise du stock
    dès lors dans tes requêtes
    tu pourras faire
    stock=[qte?]+(dersortie([codeproduit];1)
    cette même valeur sera renvoyée dans les forms ou reports
    Elle est pas belle la vie ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Random : merci mais la fonction ne permet pas de calculer le cumul selon les entrées. Ceci étant comment aprés la sortie, vas tu mettre à jour le stock contenu dans la table SORTIE ?

    Je n'y comprends pas grand chose en faite au code .. peux tu intégrer des commentaires ?

    DMboup : j'ai +ou- compris le code mais pour avoir cette propriété : quelle référence dois-je ajouter ?

    Merci

Discussions similaires

  1. Relation entre PoS, Comptabilité et Gestion des Stocks
    Par ly2ly69 dans le forum Odoo (ex-OpenERP)
    Réponses: 4
    Dernier message: 09/06/2016, 18h56
  2. [AC-2010] probleme CUMP apres chaque entrée
    Par phoenix974 dans le forum IHM
    Réponses: 1
    Dernier message: 24/12/2013, 10h36
  3. Gestion de stocks entrée/sortie
    Par MaximeDev dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/09/2013, 17h15
  4. Requete gestion de stock entrées\sorties
    Par Alex1407 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/06/2013, 10h13
  5. SQL - Déterminer le CMUP aprés chq entrée
    Par priest69 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/10/2005, 12h57

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