RRowley

Forum Replies Created

Viewing 15 posts - 121 through 135 (of 334 total)
  • Author
    Posts
  • in reply to: empty field in database not handled as expected #1555
    RRowley
    Participant

    It works in all my testing. Make sure you don’t have a local copy of the function in your invoice plugins directory. I removed them all from the standard version and have worked with this in testing the logic in the various templates and it works fine. I’m in the middle of making some significant changes to SI which includes enhancements to these functions to using multiple labels values and such. So it will be a little while before I get those delivered.

    in reply to: empty field in database not handled as expected #1552
    RRowley
    Participant

    I’ve gone through and removed all duplicate occurrences of the various smarty function so that the standard version in the library is used. There is no need to include a function in a invoice templates plugin directory unless you want to modify it for some reason.

    I’ve updated internal comments in the not null and not empty functions to explain the difference. Basically and item can be not null but empty (blank, 0, etc. are empty values). It appears there is no use of the not empty function but I’ll keep it around for now anyway.

    in reply to: empty field in database not handled as expected #1549
    RRowley
    Participant

    The isset() test for a field is to see if there is valid content to print. You can use the empty() test on a field to determine if both the label and the field should be printed. For instance here is a test to determine if custom field 1 should be printed:

    <!-- Show the Invoice Custom Fields if valid -->
     {if !empty($customFieldLabels.invoice_cf1) && isset($invoice.custom_field1)}
     <tr>
       <td nowrap class="">{$customFieldLabels.invoice_cf1|htmlSafe}:</td>
       <td class="si_right" colspan="3">{$invoice.custom_field1|htmlSafe}</td>
     </tr>
     {/if}
    in reply to: custom files for Inc/Claz #1540
    RRowley
    Participant

    It has been a while since I coded an extension. So this was a great refresher course. Download the attached zip file and extract it into the extensions directory. Then in SI, select the Settings tab and the Customize Settings menu option. Next select the Extensions button.

    This will display a list of extensions among which the new customerList name will appear. In the Actions column select the green Register icon. This will bring up the About to register: customerList screen. All you do here is select the Save button.

    Note the new Toggle status icon in the Actions column. Note also that the light bulb in the Status column is grey. Click on the Toggle status icon and the light bulb will be yellow. This means the extension is enabled.

    Now when you go to the Customer page, the phone number will be displayed in what was the department column. Note that this logic will prefer the mobile phone for the customer over the phone number if both set. If only one is set, that number will be displayed.

    You can use the search field to search for a particular phone number.

    Let me know host this works out.

    • This reply was modified 4 years ago by RRowley.
    Attachments:
    in reply to: Problem with “Default Invoice Preference” #1538
    RRowley
    Participant

    OK. Found the problem. The setting is correct but what shows on the manage screen is not correct. I just uploaded a fix for this. Update files and you should be good to go.

    in reply to: custom files for Inc/Claz #1529
    RRowley
    Participant

    Yes, that is what the extensions directory is for. It’s been awhile since I’ve created an extension. Basically your folder name is the name of the extension and you create files in directory paths within it that are used instead of the standard file. For class files in the Inc/Claz folder, there is a trick to only add the class code that is specific for your need so you don’t have to copy the entire class and thereby put general maintenance of all the class code on you. Otherwise, you might miss some needed changes that future updates provide.

    Maybe if you can explain what you want to do, I can see what it takes to set it up.

    in reply to: User rights #1528
    RRowley
    Participant

    You would have to create an extension with logic to do this.

    Currently users with a biller role are restricted to accessing things that are related to that biller. So the biller record and the invoices for that biller. Products are universal, not related to any biller, so they can only be modified by and administrator.

    in reply to: Problem with “Default Invoice Preference” #1526
    RRowley
    Participant

    Provide screen shots of your si_system_defaults and si_preferences tables.

    in reply to: Updating from 2018 to 2019, now to master2020 #1515
    RRowley
    Participant

    Glad that worked for you. Sounds like an upgrade issue that you were able to resolve. From this point forward, you can maintain this information via the Inv Prefs screen.

    in reply to: Invoice/Quote label name instead number only #1513
    RRowley
    Participant

    Use the Search box.

    in reply to: Problem with “Default Invoice Preference” #1512
    RRowley
    Participant

    So you are saying the on the new invoice screen that no matter what you select in the Invoice Preference field, the invoice shows Quote in the preference column? Please get a screen shot of the si_invoices database table showing the setting in the preference_id field, and a screen shot of the content of the si_preferences table.

    in reply to: Large Dataset Performance version 2020.0.16 #1511
    RRowley
    Participant

    The processing time is likely the time to transfer the data from the server. Data for all invoices is transferred in a minimized json file in the public/data.json file. The client (your browser) is set to display data after rendering the 15 rows on the first screen (this is the deferRender option in the Datatables module). Bottom line, the current logic is as efficient as per my understanding, as it can be.

    If you have additional thoughts, please let me know.

    in reply to: Updating from 2018 to 2019, now to master2020 #1510
    RRowley
    Participant

    The error is objecting to the Currency code that you have set in the si_preferences file. You can look in the database si_preferences table and near the end of each record, see what you have in the currency_code field. They should all be alpha values and each 3-characters long. This link, IBAN Currency Codes shows the list of valid codes for each country. Make sure all the currency_code values in the si_preferences table have valid alpha codes from this table.

    in reply to: Large Dataset Performance version 2020.0.16 #1505
    RRowley
    Participant

    What version of php are you on. 7.4 has better performance than older versions.

    in reply to: SI 2011 can not see the invoices #1493
    RRowley
    Participant

    The error you are getting is:

    [14-Apr-2021 14:02:04 Europe/Paris] SqlPatchManager::runSqlPatch() - PdoDb - query(): Execute error. See error_log.
    [16-Apr-2021 17:05:34 Europe/Paris] PdoDb - debugger(): ALTER TABLE <code>si_invoices</code>
                            ADD UNIQUE INDEX <code>UniqDIB</code> (<code>index_id</code>, <code>preference_id</code>, <code>biller_id</code>, <code>domain_id</code>),
                            ADD INDEX <code>IdxDI</code> (<code>index_id</code>, <code>preference_id</code>, <code>domain_id</code>);
    [16-Apr-2021 17:05:34 Europe/Paris] PdoDb - query(): Execute error.Array
    (
        [0] => 42000
        [1] => 1067
        [2] => Invalid default value for 'date'
    )

    If you look at the si_invoices structure, you should see that the date column is set to NULL = NO and Default of 0000-00-00 00:00:00. You need to make sure that zero dates are allowed in your database. Do this by commenting out the “sql_mode=” in the my.ini file.

    For reference, make the current setting for this value into a comment by adding a # at the front of the line. An example of what this line might be set to is, sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION.

    After you make this change, restart your mysql server and access SI again.

    • This reply was modified 4 years ago by RRowley.
Viewing 15 posts - 121 through 135 (of 334 total)