pasteque-server issueshttps://framagit.org/pasteque/pasteque-server/-/issues2021-05-26T06:54:59Zhttps://framagit.org/pasteque/pasteque-server/-/issues/88I18n2021-05-26T06:54:59ZKaramelI18nIf translations are to be server-side, handle them. Currency format is already included in the currency model.
If they are to be client-side only, close the ticket.If translations are to be server-side, handle them. Currency format is already included in the currency model.
If they are to be client-side only, close the ticket.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/17DelShared should save if ticket is not converted to receipt2021-05-12T09:56:06ZPhilippe ParyDelShared should save if ticket is not converted to receipt*Created by: philippepary*
It is requiered by most contraigning reglementation
Idem on modifications, we should save any changes made to one shared ticket*Created by: philippepary*
It is requiered by most contraigning reglementation
Idem on modifications, we should save any changes made to one shared ticketv8.0https://framagit.org/pasteque/pasteque-server/-/issues/67Rewrite reports2020-12-01T10:00:56ZKaramelRewrite reportsReports shouldn't be a raw SQL request anymore. They should have a new definition, probably with higher level, base upon the basic reports (sales). The new definition will define a new report API with more flexibility for custom reports....Reports shouldn't be a raw SQL request anymore. They should have a new definition, probably with higher level, base upon the basic reports (sales). The new definition will define a new report API with more flexibility for custom reports.
Expected outputs are generally:
- sale amounts
- tax amounts
- product sales (raw sales or margin)
- category sales
- payment checks
- customer's history
Input main data can hold:
- dates and cash sessions
- cash registers
- categories
- products
- taxes
Other useful data can be:
- users
- customers
- discount profiles
- tariff areas
- payment modes
Output filters can be hard-coded for the basic ones (currency/date format), custom filters could be left for now (expected/actual cash matching color).v8.0https://framagit.org/pasteque/pasteque-server/-/issues/83Csv import/export2020-12-01T09:58:26ZKaramelCsv import/exportAdd various formats to the http layer to import/export data.
- read routes should at least accept csv output instead of json
- write routes should at least accept csv input instead of json
When other models are referenced (for example ...Add various formats to the http layer to import/export data.
- read routes should at least accept csv output instead of json
- write routes should at least accept csv input instead of json
When other models are referenced (for example a product holdings it's category), it should use the reference field (the human-friendly id) instead of it's raw id.
The format for arrays for embedded data (tariff area prices, composition subgroup contents, places in floors) must be defined.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/87Images handling2020-12-01T09:56:17ZKaramelImages handling- Automatically compress and resize images on upload
- Add an API for images (Android will crash if we send to much in one call)
- Handle the special ticket header (it must be versioned and read-only for reprints)- Automatically compress and resize images on upload
- Add an API for images (Android will crash if we send to much in one call)
- Handle the special ticket header (it must be versioned and read-only for reprints)v8.0KaramelKaramelhttps://framagit.org/pasteque/pasteque-server/-/issues/85Use case automatic tests2020-12-01T09:54:07ZKaramelUse case automatic testsAdd automatic tests to mimic real usages through the HTTP layer. Later on create some use-cases that reflect real-life cases. When a bug is discovered, these tests should be able to reproduce what is happening on the client and debug it ...Add automatic tests to mimic real usages through the HTTP layer. Later on create some use-cases that reflect real-life cases. When a bug is discovered, these tests should be able to reproduce what is happening on the client and debug it without mouse-driven manual tests.
Requires loading an existing data-set, running a series of HTTP requests and check the responses. Ideally wrap it into phpunit to run all tests at once.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/64Version integrity checking2020-12-01T09:53:27ZKaramelVersion integrity checkingCreate a script to check the signature of all code files against a white-listed source. Pasteque.org could for example hold the signature list along the download files.
The script will compute all md5sum or whatever signature to check a...Create a script to check the signature of all code files against a white-listed source. Pasteque.org could for example hold the signature list along the download files.
The script will compute all md5sum or whatever signature to check against the list. If all signatures are matching, the installation can be considered unmodified.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/18Manage differents taxes for one product in some contexts2020-12-01T09:52:15ZPhilippe ParyManage differents taxes for one product in some contexts*Created by: philippepary*
France’s VAT in restauration differs if you take away or eat in the shop*Created by: philippepary*
France’s VAT in restauration differs if you take away or eat in the shopv8.0https://framagit.org/pasteque/pasteque-server/-/issues/22enhancements : sales reports with custom columns2020-12-01T09:43:05ZPhilippe Paryenhancements : sales reports with custom columns*Created by: Gregoire-Lesmainsdansleguidon*
add the possibility to choose which columns to provide in sales reports ( price with or without VAT, buy price, stock, Customer name, provider...)
simply extending the export URL format with...*Created by: Gregoire-Lesmainsdansleguidon*
add the possibility to choose which columns to provide in sales reports ( price with or without VAT, buy price, stock, Customer name, provider...)
simply extending the export URL format without changing the user interface could be a first step
https://my.pasteque.coop/6/?p=report&w=csv&m=base_sales&n=sales_report&start=1456531200&stop=1456704000&label=true&reference=true&customername=true....v8.0Philippe ParyPhilippe Paryhttps://framagit.org/pasteque/pasteque-server/-/issues/84Database initialization2018-06-25T10:44:49ZKaramelDatabase initializationSet the routine to at least initialize an empty database with the correct structure.
- Get current database version from VersionAPI
- Add a request to initialize the database
- Automatically generate user configuration for database acce...Set the routine to at least initialize an empty database with the correct structure.
- Get current database version from VersionAPI
- Add a request to initialize the database
- Automatically generate user configuration for database access if the script can even create new databases
Default data-set could be installed on the server to pick one available when requesting database population.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/91Perpetual total on ZTicket2017-12-26T11:03:12ZKaramelPerpetual total on ZTicketRequired. ZTickets should include the grand total of the exercise.Required. ZTickets should include the grand total of the exercise.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/89Modules2017-10-02T11:57:11ZKaramelModulesIf there is something to do for handling enabled/disabled modules, do it.
Otherwise close the ticket and always enable all features for the clients.If there is something to do for handling enabled/disabled modules, do it.
Otherwise close the ticket and always enable all features for the clients.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/90Issue in comments of config sample file2017-09-17T13:46:46ZPhilippe ParyIssue in comments of config sample fileThe presence of ( and ) in the comments of config-sample.ini causes an issue in application loading if they're still present in config.ini file. They shall be removed of the config-sample file
`[Sun Sep 17 15:26:35.550802 2017] [:error]...The presence of ( and ) in the comments of config-sample.ini causes an issue in application loading if they're still present in config.ini file. They shall be removed of the config-sample file
`[Sun Sep 17 15:26:35.550802 2017] [:error] [pid 21251] [client 2a01:e35:87cb:3970:4428:19c8:190d:38c8:33252] PHP Warning: syntax error, unexpected '(' in /home/pasteque.org/server/8/config/config.ini on line 9\n in /home/pasteque.org/server/8/src/http/public/index.php on line 28`v8.0Philippe ParyPhilippe Paryhttps://framagit.org/pasteque/pasteque-server/-/issues/86Database integrity check2017-09-11T14:03:54ZKaramelDatabase integrity checkCreate a script, API or report that checks fiscal tickets integrity. It is an incremental check.
That is for each chain:
- For new chains check that the first ticket is number 1 (0 is EOS)
- For further checks, start at the last checked...Create a script, API or report that checks fiscal tickets integrity. It is an incremental check.
That is for each chain:
- For new chains check that the first ticket is number 1 (0 is EOS)
- For further checks, start at the last checked ticket and check if the signature wasn't changed
- Check that the following ticket signatures are OK and their number is n + 1
- Check that the signature of the EOS (end of sequence) ticket is OK
The result should give the list of errors and the last signature (before EOS). This signature is passed to the next check to see if the hole chain wasn't alterated between 2 checks and allow to recheck only this one instead of the whole chain again. This allow fast and frequent checks.
The whole chain must be checked on fiscal control. It will be resource and time consuming.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/66Ticket archive and reprint2017-09-11T13:33:06ZKaramelTicket archive and reprintReview/update the xml structure of a ticket for archive and reprinting.
Archive are required for LF2016 to prevent any modification of the tickets, even across database upgrades. All tickets should be registered into read-only tables (b...Review/update the xml structure of a ticket for archive and reprinting.
Archive are required for LF2016 to prevent any modification of the tickets, even across database upgrades. All tickets should be registered into read-only tables (but can also be registered in a more structured format in other tables too for data analysis). These are referred as fiscal tickets in specifications.
The image headers are stored in a read-only dedicated table, xml can then only mention an id to reduce space.
These records are also chained to detect any corruption or alteration. A checksum is computed with the id, the content and the checksum of the previous ticket. The first record holds only the checksum of it's own data.
Affected tickets are sales tickets and Z tickets.
The xml should embed a reference to the dtd or version used at generation time. Printers (either on screen or for printers) can reprint the original ticket as is.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/65API redesign2017-09-11T13:30:35ZKaramelAPI redesignMake changes on the core APIs to be compliant with LF2016.
The core APIs covers:
- Catalog APIs (taxes, categories, products)
- Sales APIs (tickets, orders, cash sessions, places, payment modes)
- System APIs (version, roles, users, cas...Make changes on the core APIs to be compliant with LF2016.
The core APIs covers:
- Catalog APIs (taxes, categories, products)
- Sales APIs (tickets, orders, cash sessions, places, payment modes)
- System APIs (version, roles, users, cash registers, resources, modules, sync, login)
Core extensions covers:
- discounts and discount profiles
- customers (basic)
- tarif areas
- compositions
- currencies
Reports will have their dedicated rewrite.
External tools that will require an other software/extension are:
- Stock management (locations, stocks, providers)
- CRM (customer's data)
Zombie features that will by buried definitively are:
- Attributes
- Reservationsv8.0https://framagit.org/pasteque/pasteque-server/-/issues/63Use an ini file for server configuration2017-09-11T10:22:32ZKaramelUse an ini file for server configurationSwitch to an ini file to avoid any code injection from the config file.
Because all the code files will be checked against a release signature, the config file must not allow to modify the code.
By the way, merge all the config files f...Switch to an ini file to avoid any code injection from the config file.
Because all the code files will be checked against a release signature, the config file must not allow to modify the code.
By the way, merge all the config files from the core modules and the general config in one file, using sections instead of multiple files.
The default config file will be /config.ini. This path can be changed with an environment variable to avoid modification of any code file. The environment variable must be able to separate multiple instances of Pastèque on the same server. It can be PASTEQUE_CONFIG_PATH_<id> with id the base url.v8.0https://framagit.org/pasteque/pasteque-server/-/issues/3Using UPPERCASE in MySQL table names is unsafe2017-09-11T10:15:25ZPhilippe ParyUsing UPPERCASE in MySQL table names is unsafe*Created by: DBarthe*
We should only use lowercase for table names because of a known issue with MySQL (even in the latest version). https://bugs.mysql.com/bug.php?id=20356
The reason is that Windows stores table names in lowercase, ...*Created by: DBarthe*
We should only use lowercase for table names because of a known issue with MySQL (even in the latest version). https://bugs.mysql.com/bug.php?id=20356
The reason is that Windows stores table names in lowercase, and so, a dump made with Windows of our database will create problems on Unix.
It may be not important at all, except if we want to target Windows machine ?v8.0