Bonjour,
Nous venons de déployer OpenConcerto, car nous avons été séduit par l'idée et l'approche de son développement. Nous souhaitons le déployer sur l'ensemble de nos points de ventes, et nous le testons à fond depuis près de deux semaines, question d'identifier ce que seront nos besoins spécifiques à commander.
Nous avons également acquis le livre qui nous a été d'une grande utilité.
Je reviens donc avec d'autres remarques, qui je l'espère cette fois trouveront des réponses :
1- Lorsqu'on enregistre un mouvement de stock (manuel), puis qu'on efface ce mouvement, le stock n'est pas restauré. Ceci peut induire des incohérences sérieuses dans le stock. Et pourtant lorsqu'on supprime une facture, le stock est restauré. Que faut il faire ?
2- Nous avons acheté le manuel paru récemment; et il y est écrit que pour les lignes de facture, on peut saisir le montant TTC, et avec un clic droit ajuster le montant HT. Mais le clic droit ne fonctionne pas sur la 1.2 que nous utilisons. Que devons nous faire ? Il est fastidieux de calculer le pourcentage d'une remise afin qu'elle corresponde exactement au montant qu'on voudrait réduire sur le total d'une ligne.
3- Nous ne souhaitons pas qu'un utilisateur ayant enregistré une facture puisse la supprimé ou même la modifier. S'il a commis une erreur, nous souhaitons qu'il passe par un avoir. Comment pouvons nous configurer cela ?
4- Nous n'avons pas trouvé dans le manuel à quoi sert le champ "Objet" dans le fenêtre de gestion des "Droits". Qu'en est il ? Ce champ peut il servir à étendre les droits par défaut fournis par OpenConcerto ? Notamment pourrait il nous permettre de contrôler les accès par menu ? ou même les actions (ajouter, modifier, effacer) ?
5- Nous avons l'erreur suivante chaque fois qu'un utilisateur à qui nous avons retiré le droit "Accès en création, modification, ..." essaye de saisir une facture :
Impossible de sélectionner SQLRowValues on /MODE_REGLEMENT/ : {ID_TYPE_REGLEMENT=4(class java.lang.Integer), COMPTANT=true(class java.lang.Boolean), ID_MODE_REGLEMENT=-1(class java.lang.Integer)}
forbidden
org.openconcerto.utils.ExceptionHandler: Impossible de sélectionner SQLRowValues on /MODE_REGLEMENT/ : {ID_TYPE_REGLEMENT=4(class java.lang.Integer), COMPTANT=true(class java.lang.Boolean), ID_MODE_REGLEMENT=-1(class java.lang.Integer)}
at org.openconcerto.utils.ExceptionHandler.handle(ExceptionHandler.java:86)
at org.openconcerto.sql.element.BaseSQLComponent.select(BaseSQLComponent.java:586)
at org.openconcerto.erp.core.finance.payment.component.ModeDeReglementSQLComponent.select(ModeDeReglementSQLComponent.java:383)
at org.openconcerto.sql.element.ElementSQLObject.setCurrentID(ElementSQLObject.java:176)
at org.openconcerto.sql.element.ElementSQLObject.setValue(ElementSQLObject.java:159)
at org.openconcerto.sql.element.ElementSQLObject.show(ElementSQLObject.java:324)
at org.openconcerto.sql.request.SQLRowView.select(SQLRowView.java:180)
at org.openconcerto.sql.element.BaseSQLComponent.selectDefaults(BaseSQLComponent.java:594)
at org.openconcerto.sql.element.BaseSQLComponent.select(BaseSQLComponent.java:579)
at org.openconcerto.erp.core.sales.invoice.component.SaisieVenteFactureSQLComponent.select(SaisieVenteFactureSQLComponent.java:914)
at org.openconcerto.sql.element.BaseSQLComponent.resetValue(BaseSQLComponent.java:536)
at org.openconcerto.sql.element.SQLComponent.uiInit(SQLComponent.java:152)
at org.openconcerto.sql.view.EditPanel.<init>(EditPanel.java:192)
at org.openconcerto.sql.view.EditPanel.<init>(EditPanel.java:130)
at org.openconcerto.sql.view.EditFrame.<init>(EditFrame.java:83)
at org.openconcerto.sql.view.EditFrame.<init>(EditFrame.java:65)
at org.openconcerto.sql.view.EditFrame.<init>(EditFrame.java:61)
at org.openconcerto.erp.core.sales.invoice.action.NouveauSaisieVenteFactureAction.createFrame(NouveauSaisieVenteFactureAction.java:32)
at org.openconcerto.erp.action.CreateFrameAbstractAction.actionPerformed(CreateFrameAbstractAction.java:42)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: forbidden
at org.openconcerto.sql.element.BaseSQLComponent.select(BaseSQLComponent.java:566)
... 44 more
Merci déjà.
Retours de tests 250813
Bonjour,
(un mouvement de stock manuel peut être à défaut annuler en créer un mouvement inverse).
Le contrôle des menus se fait par module ou bientôt par les extensions (cf module Extension Builder introduit dans la 1.3b3).
Si vous souhaitez laisser la possibilité d'affichage, il faut garder le droit de lecture.
Cordialement,
Merci d'avoir remonté ce bug, il va être corrigé rapidementYves a écrit :1- Lorsqu'on enregistre un mouvement de stock (manuel), puis qu'on efface ce mouvement, le stock n'est pas restauré. Ceci peut induire des incohérences sérieuses dans le stock. Et pourtant lorsqu'on supprime une facture, le stock est restauré. Que faut il faire ?
(un mouvement de stock manuel peut être à défaut annuler en créer un mouvement inverse).
Cette fonctionnalité s'active en cliquant dans la case Prix de vente UV HT, en remplissant le montant TTC puis clic droit "Convertir en HT".Yves a écrit :2- Nous avons acheté le manuel paru récemment; et il y est écrit que pour les lignes de facture, on peut saisir le montant TTC, et avec un clic droit ajuster le montant HT. Mais le clic droit ne fonctionne pas sur la 1.2 que nous utilisons. Que devons nous faire ? Il est fastidieux de calculer le pourcentage d'une remise afin qu'elle corresponde exactement au montant qu'on voudrait réduire sur le total d'une ligne.
Nous configurons cela par module, pour le faire manuellement avec la gestion des droits c'est pour l'instant assez technique. Nous travaillons justement sur la configuration des droits pour la version 1.3.Yves a écrit :3- Nous ne souhaitons pas qu'un utilisateur ayant enregistré une facture puisse la supprimé ou même la modifier. S'il a commis une erreur, nous souhaitons qu'il passe par un avoir. Comment pouvons nous configurer cela ?
Oui, l'objet sert à définir sur quoi porte le droit, par exemple le nom de la table.Yves a écrit :4- Nous n'avons pas trouvé dans le manuel à quoi sert le champ "Objet" dans le fenêtre de gestion des "Droits". Qu'en est il ? Ce champ peut il servir à étendre les droits par défaut fournis par OpenConcerto ? Notamment pourrait il nous permettre de contrôler les accès par menu ? ou même les actions (ajouter, modifier, effacer) ?
Le contrôle des menus se fait par module ou bientôt par les extensions (cf module Extension Builder introduit dans la 1.3b3).
C'est le comportement attendu, quand vous retirez le droit d'accès en lecture, les requêtes de lecture (SELECT) sont refusé ("forbidden").Yves a écrit :5- Nous avons l'erreur suivante chaque fois qu'un utilisateur à qui nous avons retiré le droit "Accès en création, modification, ..." essaye de saisir une facture :
Impossible de sélectionner SQLRowValues on /MODE_REGLEMENT/ : {ID_TYPE_REGLEMENT=4(class java.lang.Integer), COMPTANT=true(class java.lang.Boolean), ID_MODE_REGLEMENT=-1(class java.lang.Integer)}
...
Caused by: java.lang.IllegalStateException: forbidden
at org.openconcerto.sql.element.BaseSQLComponent.select(BaseSQLComponent.java:566)
... 44 more
Merci déjà.
Si vous souhaitez laisser la possibilité d'affichage, il faut garder le droit de lecture.
Cordialement,
Bonjour,
- une ayant comme valeur pour le champ CODE UPDATE_ROW et définir également la colonne NOM (ex : Modification d'une ligne)
- une ayant comme valeur pour le code DELETE_ROW et un NOM approprié (ex : suppression d'une ligne).
Il vous suffira ensuite de définir les droits via OpenConcerto avec comme valeurs un des droits créés précédemment, en objet la table à verrouiller (ici SAISIE_VENTE_FACTURE) et la coche "droit accordé" décochée.
Ces droits seront créés automatiquement avec l'outil de configuration dans la prochaine béta.
Cordialement,
Ludovic
Il faut créer manuellement dans votre base de données des lignes dans la table Common.RIGHTS:3- Nous ne souhaitons pas qu'un utilisateur ayant enregistré une facture puisse la supprimé ou même la modifier. S'il a commis une erreur, nous souhaitons qu'il passe par un avoir. Comment pouvons nous configurer cela ?
- une ayant comme valeur pour le champ CODE UPDATE_ROW et définir également la colonne NOM (ex : Modification d'une ligne)
- une ayant comme valeur pour le code DELETE_ROW et un NOM approprié (ex : suppression d'une ligne).
Il vous suffira ensuite de définir les droits via OpenConcerto avec comme valeurs un des droits créés précédemment, en objet la table à verrouiller (ici SAISIE_VENTE_FACTURE) et la coche "droit accordé" décochée.
Ces droits seront créés automatiquement avec l'outil de configuration dans la prochaine béta.
Cordialement,
Ludovic