degdigital / magento2-customreports Goto Github PK
View Code? Open in Web Editor NEWMagento 2 module that allows an admin panel user to create new reporting grids via SQL statements.
Magento 2 module that allows an admin panel user to create new reporting grids via SQL statements.
Hello.
I've been trying to make the changes required to makes this awesome module work on Magento 2.3. but I'm stucked in the error of setSortable that I putted as title.
First I added the the module requires php 7.2 in the composer.json of the module.
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0|~7.1.0|~7.2.0"
},
Then in DEG/CustomReports/Block/Adminhtml/Report/Grid.php in line 31 I changed this:
if (count($columnList) ){
To this:
if ( is_array($columnList) && count($columnList) == 1 ){
And there is where the error appears on the log of nginx. As far as I've researched the probem is in Grid.php on the line 51 because in the view/admin/layout there is no block refering to columnSet.
Any help will be appreciated and will help for other to makes the required changes for this module to work on Magento 2.3.
A di.xml should be included for default preferences.
Hi,
Please can you tell me if your extension has been tested and work with last release of Magento 2.3 (who need php 7.2) ?
thx a lot for your job and to share it !
The latest tag is from April 2017 (https://github.com/degdigital/magento2-customreports/tags) but the latest commit is from July 13th.
It seems that any complex "order by" clause in the SQL are shuffled up by the grid-widget wanting to sort by the first column.
First of all; nice module ๐ !
I'm using version 2.0.3.
Recently I installed this module and ran into the following problem that the rows are repeated after 1000 rows when automated exporting. This issue is only present in the automated export (so not in the manual "export to [file] export" button) .
The reason for this is the "setPageSize(1000);" in file
Is it safe to just comment out this line? Or is there a better approach? Thanks! ๐
I saw this in the code;
/**
* @todo: Had to remove the connectionByName = 'readonly' temporarily until readonly connection
* is added to Magento Cloud Pro project by Magento Cloud support
*/
It's been 2 years, can we put it back?
Hello,
I'm trying to generate automated exports but unfortunately it's not working.
I've opened the cron_schedule
table and found the error below
Class DEG\CustomReports\Model\AutomatedExport\Cron does not exist
The following SQL is OK:
SELECT `increment_id` AS 'Order_ID' FROM `sales_order_grid``
However this one will throw SQL syntax error:
SELECT `increment_id` AS 'Order ID' FROM `sales_order_grid``
After I drill on var/log/system.log
, I found the the resultant SQL is the cause of this error.
SELECT `t`.* FROM (SELECT `increment_id` AS 'Order ID' FROM `sales_order_grid`) AS `t` ORDER BY Order ID DESC LIMIT 20
I have installed this module via composer.
Now what?
There seems to be some user documentation missing on how to use it.
It's not lised in "reports" or in the list of all modules in stores->configuration->advanced->advanced
but was installed by composer and does exist under /vendors.
Is this extension still compatible? I am using magento 2.1.0, Php 7.0.26 and mariadb 10.1.31
I created a report with the sql "select * from sales_order;" and get the following error:
I also tested with a couple of other queries but always get the same error.
1 exception(s):
Exception #0 (Magento\Framework\Exception\LocalizedException): Cannot execute multiple queries
Exception #0 (Magento\Framework\Exception\LocalizedException): Cannot execute multiple queries
#0 /var/www/html/vendor/magento/zendframework1/library/Zend/Db/Adapter/Abstract.php(737): Magento\Framework\DB\Adapter\Pdo\Mysql->query(Object(Magento\Framework\DB\Select), Array)
#1 /var/www/html/lib/internal/Magento/Framework/Data/Collection/Db/FetchStrategy/Query.php(21): Zend_Db_Adapter_Abstract->fetchAll(Object(Magento\Framework\DB\Select), Array)
#2 /var/www/html/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php(772): Magento\Framework\Data\Collection\Db\FetchStrategy\Query->fetchAll(Object(Magento\Framework\DB\Select), Array)
#3 /var/www/html/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php(668): Magento\Framework\Data\Collection\AbstractDb->_fetchAll(Object(Magento\Framework\DB\Select))
#4 /var/www/html/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php(572): Magento\Framework\Data\Collection\AbstractDb->getData()
#5 /var/www/html/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php(557): Magento\Framework\Data\Collection\AbstractDb->loadWithFilter(false, false)
#6 /var/www/html/lib/internal/Magento/Framework/Data/Collection.php(300): Magento\Framework\Data\Collection\AbstractDb->load()
#7 /var/www/html/app/code/DEG/CustomReports/Block/Adminhtml/Report/Grid.php(42): Magento\Framework\Data\Collection->getFirstItem()
#8 /var/www/html/app/code/DEG/CustomReports/Block/Adminhtml/Report/Grid.php(30): DEG\CustomReports\Block\Adminhtml\Report\Grid->getColumnListFromCollection(Object(DEG\CustomReports\Model\GenericReportCollection))
#9 /var/www/html/lib/internal/Magento/Framework/View/Element/AbstractBlock.php(264): DEG\CustomReports\Block\Adminhtml\Report\Grid->_prepareLayout()
#10 /var/www/html/lib/internal/Magento/Framework/View/Layout.php(744): Magento\Framework\View\Element\AbstractBlock->setLayout(Object(Magento\Framework\View\Layout\Interceptor))
#11 /var/www/html/app/code/Magento/Backend/Block/Widget/Grid/Container.php(96): Magento\Framework\View\Layout->createBlock('DEG\CustomRepor...', 'adminhtml_repor...')
#12 /var/www/html/lib/internal/Magento/Framework/View/Element/AbstractBlock.php(264): Magento\Backend\Block\Widget\Grid\Container->_prepareLayout()
#13 /var/www/html/lib/internal/Magento/Framework/View/Layout/Generator/Block.php(139): Magento\Framework\View\Element\AbstractBlock->setLayout(Object(Magento\Framework\View\Layout\Interceptor))
#14 /var/www/html/lib/internal/Magento/Framework/View/Layout/GeneratorPool.php(86): Magento\Framework\View\Layout\Generator\Block->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#15 /var/www/html/lib/internal/Magento/Framework/View/Layout.php(327): Magento\Framework\View\Layout\GeneratorPool->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#16 /var/www/html/lib/internal/Magento/Framework/View/Layout/Builder.php(129): Magento\Framework\View\Layout->generateElements()
#17 /var/www/html/lib/internal/Magento/Framework/View/Page/Builder.php(55): Magento\Framework\View\Layout\Builder->generateLayoutBlocks()
#18 /var/www/html/lib/internal/Magento/Framework/View/Layout/Builder.php(65): Magento\Framework\View\Page\Builder->generateLayoutBlocks()
#19 /var/www/html/lib/internal/Magento/Framework/View/Layout.php(244): Magento\Framework\View\Layout\Builder->build()
#20 /var/www/html/lib/internal/Magento/Framework/View/Layout.php(859): Magento\Framework\View\Layout->build()
#21 /var/www/html/app/code/Magento/Backend/Model/View/Result/Page.php(59): Magento\Framework\View\Layout->getBlock('menu')
#22 /var/www/html/app/code/DEG/CustomReports/Controller/Adminhtml/CustomReport/Report.php(37): Magento\Backend\Model\View\Result\Page->setActiveMenu('DEG_CustomRepor...')
#23 /var/www/html/lib/internal/Magento/Framework/App/Action/Action.php(102): DEG\CustomReports\Controller\Adminhtml\CustomReport\Report->execute()
#24 /var/www/html/app/code/Magento/Backend/App/AbstractAction.php(226): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#25 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(74): Magento\Backend\App\AbstractAction->dispatch(Object(Magento\Framework\App\Request\Http))
#26 /var/www/html/lib/internal/Magento/Framework/Interception/Chain/Chain.php(70): DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor->___callParent('dispatch', Array)
#27 /var/www/html/lib/internal/Magento/Framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('DEG\CustomRepor...', 'dispatch', Object(DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor), Array, 'adminAuthentica...')
#28 /var/www/html/app/code/Magento/Backend/App/Action/Plugin/Authentication.php(143): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))
#29 /var/www/html/lib/internal/Magento/Framework/Interception/Chain/Chain.php(67): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#30 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('DEG\CustomRepor...', 'dispatch', Object(DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor), Array, 'adminMassaction...')
#31 /var/www/html/app/code/Magento/Backend/App/Action/Plugin/MassactionKey.php(33): DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#32 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(142): Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch(Object(DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#33 /var/www/html/var/generation/DEG/CustomReports/Controller/Adminhtml/CustomReport/Report/Interceptor.php(26): DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor->___callPlugins('dispatch', Array, Array)
#34 /var/www/html/lib/internal/Magento/Framework/App/FrontController.php(55): DEG\CustomReports\Controller\Adminhtml\CustomReport\Report\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#35 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#36 /var/www/html/lib/internal/Magento/Framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#37 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#38 /var/www/html/lib/internal/Magento/Framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))
#39 /var/www/html/lib/internal/Magento/Framework/Interception/Interceptor.php(142): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#40 /var/www/html/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#41 /var/www/html/lib/internal/Magento/Framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#42 /var/www/html/lib/internal/Magento/Framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#43 /var/www/html/index.php(49): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#44 {main}
I'm running PHP 7.1.12 and the package works fine with it, however, the current stable version has ~7.0.0 constraints.
Any chance bumping the version up on a stable release?
The magento1 module this is a reimplementation of had this nice feature to select a string into a field named "clickable_url" and that would become the link-target for that table-line.
example:
select
'*/sales_order/view/order_id/orderID' as clickable_url,
....
now with Magento2 it's not so easy because we have "/key/"
at the end of every URL.
It would be a really nice feature to have this ability again, to drill down into selected orders, customers,... that a custom report is showing.
Is it compatible with Magento 2.4?
I created procedure in my magneto database but when I call the procedure inside the custom report don't give me result , I cheeked the procedure in workbrunch and worked well.
Good morning,
I wanted to know if it's possible to change the report filters.
Specifically, the date filter.
I would like to enter a date range to filter.
TY
Latest version has multiple errors regarding to Model/AutomatedExport/Cron.php:
1.- Uncaught Error: Class 'Xtento\OrderExport\Model\AbstractAutomaticExport' not found
Xtento is not a regular class found in Magento. I found it is related to a commercial module.
2.- unexpected 'AutomatedExportRepositoryInter' (T_STRING)
The syntax used is not compatible with PHP 7.3
Error regarding to Model/ResourceModel/AutomatedExport.php:
3.- unexpected 'AutomatedExportLinkFactory' (T_STRING)
The syntax used is not compatible with PHP 7.3
Error regarding to Model/Service/CreateDynamicCron.php:
4.- unexpected 'ValueFactory' (T_STRING)
The syntax used is not compatible with PHP 7.3
Error regarding to Model/Service/DeleteDynamicCron.php:
5.- unexpected 'ValueFactory' (T_STRING)
The syntax used is not compatible with PHP 7.3
The extension now only supports SFTP for Remote File Drop
Hi, thanks for the plugin first, I would like to ask if there's any solution to show by 2 order columns by default.
The latest release required:
"magento/framework": "~100.1.1"
However Magent0 2.2 has a framework 101.x.x
So to upgrade to Magento 2.2 a new version of this module is needed, so composer lets us do the upgrade.
Include unit tests
Helo docs, say that the plugin supports "Column Filtering" and "Column Sorting", but there's nothing in the docs regarding this. How do I order/sort?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.