On going thru the official GitHub FA repo's 8 current forks (2015-07-11), one from Guwahati, India called NanoInformatics seems to be developing a Quality Assured version called Final-Account. User experiences and time are expected provide symbiotic benefits to the FA community.

Good Luck!

3,802

(6 replies, posted in Setup)

If verification is the reason, then an Ajaxable local label display on dropdown selection change should suffice.

3,803

(6 replies, posted in Setup)

It will be difficult to remember everyone's GST number besides they are generally quite long and the drop down select box will become too wide. Better still would be make a short alphabetical code for customers and implement by concatenation.

Ordinarily, you cannot add such transactional attachments in your mail out from FA. Check the link for the attachment and add that in your message template and password protect the folder containing it so that it is clickable to download it in an authorised way.

Check the raw content of any html email successfully received by gmail or yahoo mail and compare it with the mail you send out from FA and see what headers if any are missing and add them in.

I removed the indirect calling using hook_invoke method as the global $Hooks array is empty when it reaches inside the $hooks->deactivate_extension() function just as it does when it reaches inside the $hooks->activate_extension() function which was why the latter was used to overcome it. Unless we get to where and when the global $Hooks array gets populated (or re-initialised / overwritten), we will need this workaround.

Try to use PHPMailer and submit to FA for inclusion when done.

FA uses mail() to send mail and is on the Wiki.

Line 1026 in reporting/includes/pdf_reports.inc:

                        $mail->text($msg . $sender);

can be replaced with:

                        $mail->html($msg . $sender);

if the $msg has html content.

Similar replacement can be done on line 77 in inventory/includes/inventory_db.inc.

3,808

(2 replies, posted in FA Modifications)

Yes: https://jqueryui.com/datepicker/#min-max

  <script>
  $(function() {
    $( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });
  });
  </script>

Describe what you mean by "look f input parameters". They are listed in reporting/reports_main.php and the reporting/rep708.php does the job.

A Packing List is the closest you would get in a default FA install.
A window envelope with the Invoice / Packing List suitably folded and inserted can suffice too.
Taking it off the FA tables using external scripting is possible and the ERD would assist in this regard.

Add an Attachment is for adding it to the transaction in FA and not to add an attachment to be emailed!

@joe: you can update FA repo with the patch in the 5th post in this thread.

3,813

(16 replies, posted in Reporting)

You might want to use SimpleInvoices to manage each project as a client and then get the summary each month into your FA. You might want to try out my fork of it as well.

3,814

(13 replies, posted in Reporting)

@carmelr: Superb! Thanks.

Wiki-ed it.

1. Constants are defined in includes/types.inc
2. config.php has the Global settings
3. #_sys_prefs table has the company specific variables.
4. Form Inputs are accessed by GET and POST variables and may have names similar to table/field names.
5. Functions are present all over the place in various files and can be differently defined in different files.
6. File inclusions can be nested as well.

Don't worry, it is common to get befuddled at first but as you gain experience in inspecting variables at each point in the codebase for each event you will become more familiar. The community is quite helpful but it is better to search the Wiki / Forum for info before defraying scarce voluntary time resources.

3,816

(0 replies, posted in FA Modifications)

The default.css file in the standard FA themes have their tableheader2 class aligned left which if changed to right would provide for label proximity to input field / display value. Attached is the before and after screenshots.  f a separate tableheader3 class is scripted for the right alignment, it will require a huge set of search and replace. Anyone using this mod please report where it breaks.

3,817

(13 replies, posted in Reporting)

Unfortunately, the values are stored in the tables in a disjoint manner. The full values of amount and tax are stored in #_debtor_trans_details. The "net of discount" values are stored in #_debtor_trans - the last line in the Print Invoice takes it's value for INVOICE TOTAL from here.

You will need a completely different SQL linking the tables appropriately to get what you want. Otherwise, it will need to find a place in the Comments field manually entered which is what I assume you are doing now.!

3,818

(13 replies, posted in Reporting)

Check the transactions (#_debtor_trans) table to see if it shows up there.

rep107.php (Print Invoice) does not show the rate and discounts
rep112.php (Print Receipts) shows the vales as 0 for left to allocate.
ViewGL Transactions shows the values contra-ed as being amounts before tax!
The View Sales Invoice page shows the amount after tax!

3,819

(16 replies, posted in Reporting)

The balances come from a different function. You could however, iterate within the loop using a variable to hold the sum (and the logic of date differences) to achieve what you want.

You have literally opened a can of worms here. Hope FA 2.4 addresses it better. Thanks for stirring up the proverbial hornet's nest and lets see what good comes of it.

You could test out the rep101.php with dimensions and report your findings. I do not see the use of any Dimensions in it.

3,820

(16 replies, posted in Reporting)

A Customer's due is on the whole and not just for a specific dimension. That is why the function get_customer_details() (defined in sales/includes/db/customers_db.inc) is used to get the balances and it does not bother about the dimensions. If you want it to filter by dimension, copy over the function to another name in the rep108.php and put in your dimension filter and call this new function in the rep108.php  instead of the old one.

The attachment is from the demo CoA and it does not illustrate your case and is here only for there report format.

This is probably why the dimensions were not included in this report!

3,821

(13 replies, posted in Reporting)

Use the full original value of the ABC Service Item in the invoice with the cost you would normally charge but use 100% as discount.

3,822

(13 replies, posted in Reporting)

Invoice a "0" cost service with it's name indicating "Usual cost $..." ?

3,823

(16 replies, posted in Reporting)

Unfortunately, this report has not been coded for excel and hence the choice is not there in the menu.

The simulation of the sql in the function getTransactions() in reporting/rep108.php using the en_US-demo.sql Chart of Accounts is illustrated in the attachment herein - it contains the raw table data and the sql results which includes the CUSTCREDIT entries as well. The Simulation SQL is:

SET @date_due := '2014-09-23';
SET @date_now := '2014-07-25';
SET @debtor_no := 3;
SET @dimension_id := 2; -- Dimension 1
-- SET @dimension2_id := 2; -- Dimension 2

-- Taken from defines in includes/types.inc
-- ST_SALESINVOICE = 10
-- ST_CUSTCREDIT   = 11
-- ST_CUSTDELIVERY = 13


SELECT  dt.*,
        (ov_amount + ov_gst + ov_freight + ov_freight_tax + ov_discount) AS TotalAmount, alloc AS Allocated,
    ((TYPE = 10) AND due_date < @date_now) AS OverDue
FROM 1_debtor_trans dt
WHERE tran_date <= @date_due 
  AND debtor_no = @debtor_no
  AND TYPE <> 13
  AND ABS(ov_amount + ov_gst + ov_freight + ov_freight_tax + ov_discount) > 1e-6
-- if (!$show_also_allocated)
-- AND ABS(ABS(ov_amount + ov_gst + ov_freight + ov_freight_tax + ov_discount) - alloc) > 1e-6
-- Dimension 1
 AND dimension_id = @dimension_id
-- Dimension 2
-- AND dimension2_id = @dimension2_id
ORDER BY tran_date;

FLOAT_COMP_DELTA defined as a FA constant in PHP is used instead of 1e-6 in some places.

You may use the above in any MySQL client and execute them all on your database and check the results.

I see no reason why your output does not conform to what is expected. Please clear your report and js cache and try it again and use appropriate values for the constants defined in the code above on your database and verify the results to see if it matches your output.

The dimension name comes from another table and you will have to alter the sql to join it to that table like:

SELECT ....., d1.name AS D1Name
-- Dimension 2 if used
-- , d2. name A D2Name 
FROM 1_debtor_trans dt 
LEFT JOIN 1_dimensions d1 ON (dt.dimension_id=d1.id)
-- Dimension 2 if used
-- LEFT JOIN 1_dimensions d2 ON (dt.dimension2_id=d2.id)
WHERE ......
ORDER BY tran_date;

Then use the D1Name (and D2Name if appropriate) as desired in the report. Experiment with INNER JOIN instead of LEFT JOIN for the first or both instances as desired.

FA 2.3.x is designed for PHP 5 to 5.3 and a few have reported success with PHP 5.4 possibly with some mods.

In case you are testing with PHP 5.6+, please see what functions are deprecated / dropped in 5.4, 5.5 and then 5.6 and make sure you make appropriate changes / replacements.

There is no intention of the devs and myself in supporting any later versions of PHP other than 5.3 for FA v2.3.x. You are pretty much on your own here.

To assist others however, you may post your findings in a separate thread for such later PHP versions. Such findings posted in this thread will only serve to confuse end users - yes, it will make for big consultancy business...... but FA has been designed with simplicity in mind and for self service.

The code portion for activating extensions has not been touched in this fix and if it doesn't work for you now, then it never did in the first place prior to this fix as well.

Fixed it! Pull it in from my repo.

There was a missing function deactivate_hooks() which has now been added.