Forum Replies Created
-
AuthorPosts
-
RRowley
ParticipantIf you start with an empty database, the structure is created using the most current structure version and then installs essential data required to start using SI. The only reason to insert sample data is if you don’t want to use the database for live purposes; just testing it out.
Once the essential data has been installed, you can begin using SI. Just create a biller, a customer and a product. The you can enter an invoice.
This is the approach to take if you are starting from scratch. On the other hand, if you need to preserve your current version’s data, you follow the upgrade path through master_2019.2. This however appears to be having problems for you. That is why I suggested letting me try and convert your current data from your historic SI to the most current level.
From what you say about your PHP version and such, you should be able to run the most current master_2023 version. However you want to proceed, let me know.
RRowley
ParticipantConcerning latest message, SI with empty database. You need to let SI install essential data. Without it, you don’t have required information to use SI. After that step you can choose to install the test biller, customer, product info. Or you can enter these records for yourself with your data. In order to add an invoice, you must have a biller (you), a customer (the one the invoice is for) and at least one product to add to the invoice.
Now, back to your original problem. The reason 2019.2 is a required upgrade, it because that was the last version that maintained the same database changes that were required to bring original SI versions up to the fearless359 SI version, as the development of fearless359 SI diverged from previous SI versions on the maintenance path (the projects were physically separated on GITHUB.
Here is a possible way to move forward. I can make a PHP program that will simply apply the patches 2019.2 is trying to apply. However, trying to resolve any issues this program encounters becomes tricky by us having to communicate issues back and forth. If is easier if I had your data to convert. If you are up for that, I would need a full SQL extract of your starting database structure and your data. To protect your data, you can send it to me via email, in an encrypted, password protected zip file. The password could then be texted to my phone. If you are up for that, you can email it to me at
admin@simpleinvoices.group. Include your email address along with the attached file and I will then send my cell number for the password to be texted to.RRowley
ParticipantAre you still stuck here? What is your PHP version and what SI version are you trying to upgrade to?
RRowley
ParticipantWhen you say you tried this loading sample data, does this mean you started with an empty database, letting SI load default configuration data and then letting SI install sample data? If this is the case, the issue if perplexing indeed.
What version of SI are you trying to upgrade from? What version of PHP are you on?
If error persists, zip the
tmp/log/php.logfile and attach it to your response.-
This reply was modified 1 year, 2 months ago by
RRowley.
RRowley
ParticipantSorry for not getting back to you sooner. Are you still stuck with this error? If so, what happens if you start with an empty database. This should load default data. I know this isn’t what you want, but it tests the process without updating any information from your existing database to just see if the process works. If it does, the problem would then appear to be data related. If it doesn’t, it is more likely configuration related.
Also, make sure the GD and INTL extensions are enabled for you PHP version. This is set in the php.ini file. To list what is enabled for your PHP version, use the phpinfo.php file in the simple invoices root directory. Edit this file and change the
$secure = true;setting to false. Then run this file in your browser. After you are through using this file, change the setting back to true.RRowley
ParticipantWhat version of PHP are you running on? My production level is 8.1 which is the minimum level required by the SI 2023 version.
RRowley
ParticipantThe config.ini file is a template only. The custom.config.ini file is where values are actually taken from. They do not need to be the same. Each time you access SI, the keywords in your custom file are compared to those in the template. If there are keywords in the template that aren’t in the custom file, the keyword and default value is copied to the custom file. And keywords in the custom file that aren’t in the template are flagged by surrounding them with comments. This way, changes to SI config file values automatically propagate to the custom file without altering the values in the custom file.
As to the error you are getting for the non-abstract method, attach the new php.log file (zipped of course). Hopefully it contains a better description of what is going on.
RRowley
ParticipantI suggest you delete the php log file and try again. I expect the same error but it is worthwhile proving it. This is the error I expect in your log file:
[15-Dec-2024 22:39:55 Europe/London] SqlPatchManager::runSqlPatch() – PdoDb – query(): Execute error. See error_log.
[15-Dec-2024 22:40:08 Europe/London] PdoDb – debugger(): ALTER TABLEsi_cron_logADD UNIQUE INDEXCronIdUnq(domain_id,cron_id,run_date);
[15-Dec-2024 22:40:08 Europe/London] PdoDb – query(): Execute error.Array
(
[0] => 23000
[1] => 1062
[2] => Duplicate entry ‘1-37-2018-10-01’ for key ‘CronIdUnq’If this is the same as the new error in the php log file, then call me crazy, but I don’t think the database you are accessing with phpMyAdmin is the same that is same as the one being accessed by SI. You would then need to verify the DB name in the custom.config.ini file. I say this because as you see in the Duplicate entry error message, it shows a record found with run_date, cron_id and domain_id message with as value of 1-37-2018, 10 and 01 respectively.
RRowley
ParticipantOk. Your issue is that the si_cron_log table contains records with the “domain_id”, “cron_id” and “run_date” that are duplicates. You need to use your myPhpAdmin program to find the duplicates and correct them. The easiest correction is to delete the duplicate records. If these records are needed, record to dup info record values and after the conversion, add the record back via the Recurrence option in SI.
RRowley
ParticipantTry zipping the file then upload.
RRowley
ParticipantMy mistake. The php.log file should contain the error and more info.
RRowley
ParticipantPlease attach your
tmp/log/si.logfile.RRowley
ParticipantRefer to the Extensions topic on left menu. This should explain how to make changes to your local copy of code in such a way that future updates don’t load over them.
RRowley
ParticipantThe field validation routine obviously doesn’t allow you to type in a negative value. You can create a product for the credit with a negative amount. This will set the field to the negative value when you select that product. This works for fixed value credits but not so much for credits that are arbitrary, set based on the particular situation.
For example, I have a product, “Labor”, that is $30.00 per hour and one for “Labor (Credit)” for -$30.00 per hour. This works for me because my labor cost is fixed and hence a credit is similarly fixed.
Let me know if this work around addresses your need not just for this circumstance but on going for future situations.
RRowley
ParticipantI am at a loss as to why you would have an issue with a library file function that is used pervasively throughout this application. At this point, I would recommend you try reinstalling the SI application. First, following the Version Update Process on the left menu. This makes sure that everything is reinstalled. If that does not work, you might try installing a clean version of SI. This is in the Installation link on the left. Do this letting that application install the new database – you set up an empty database and SI loads the structure and required files. If this works and you can run the application, the issue likely lies in a difference in your database and its data structures. If this is the case, you should export a copy of your existing database structure, no data just structure, and the structure of the newly installed database that is working. I’ve had to do this in the past for other reasons and found that over time and updates, database field definitions have been changed but not reflected in my database. This shouldn’t happen, but it did. So the resolution was to manually alter the real database to match the structure of the test database. Once this is done, point the SI application to your live database and see if the issue is resolved.
-
This reply was modified 1 year, 2 months ago by
-
AuthorPosts
Recent Comments