4,426

(2 replies, posted in Setup)

The default.css for the 3 standard themes - aqua, cool and default - have been tweaked to allow combo select boxes to be displayed in the same straight line as all other fields in line items of forms.

The change envisaged is:

--- themes/aqua/default.css    Sat Nov 22 03:35:19 2014
+++ themes/aqua/default.css    Wed Feb 11 22:14:42 2015
@@ -90,8 +90,12 @@
     padding: 1px 0px;
 }
 
-button img, span {
-    padding: 0px 2px ;
+button img {
+    padding: 0px 2px;
+    vertical-align: middle;
+}
+
+span {
     vertical-align: middle;
 }
 

4,427

(3 replies, posted in FA Modifications)

"personage from Sales Discount" ????

4,428

(21 replies, posted in Reporting)

@joe: The following info will be useful in getting Sales Groups into all pertinent reports:

functions in includes/ui/ui_lists.inc:

sales_groups_list($name, $selected_id=null, $special_option=false)
    used in function sales_groups_list_cells
sales_groups_list_cells($label, $name, $selected_id=null, $special_option=false)
    used in sales_groups_list_row
sales_groups_list_row($label, $name, $selected_id=null, $special_option=false)
    used in sales/manage/customer_branches.php (data entry and updation)
    used in sales/manage/recurrent_invoices.php (selection for recurrent invoice generation)


functions in sales/includes/db/sales_groups_db.inc:

The following 5 functions are used only once in sales/manage/sales_groups.php
add_sales_group($description)
update_sales_group($selected_id, $description)
delete_sales_group($selected_id)
get_sales_groups($show_inactive)
get_sales_group($selected_id)


get_sales_group_name($group_no)
    used in sales/manage/recurrent_invoices.php
    used in sales/create_recurrent_invoices.php

4,429

(21 replies, posted in Reporting)

Hope you have set the Customer Currency correctly. Otherwise, company's currency will be used and it will not be filterable. Currency is used in the payment link generation in pdf_report.inc in it's End() method. I have not been able to ascertain where else the "currency variable taken from the report request form" is used in report generation.

4,430

(21 replies, posted in Reporting)

Customer Branches are by default not classified into any group.
Default Sales Groups available are Small, Medium, Large.
Sales => Sales Groups
You can create USD and EUR Sales Groups and appropriately group the customer branches and then print them by appropriate Group filter.
There is no Group filter currently in the Invoice Printing script - rep107.php - you will have to hack that in.

There is a currency filter in the Invoice Printing Form and even if you choose all the invoices / customers, probably this filter may kick in - please provide feedback on it.

Not even one report request form provides for Sales Groups Filter.

@joe: Please provide Sales Group Filter in all appropriate reports.

4,431

(3 replies, posted in Accounts Receivable)

You can maintain your pricelist in a separate private table and delete the original table in FA called #_prices and create a view of your private table called #_prices where # is the table prefix for the company. The fields in the view must match those in the original table:

CREATE TABLE `0_prices` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `stock_id` varchar(20) NOT NULL DEFAULT '',
  `sales_type_id` int(11) NOT NULL DEFAULT '0',
  `curr_abrev` char(3) NOT NULL DEFAULT '',
  `price` double NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `price` (`stock_id`,`sales_type_id`,`curr_abrev`)
) ENGINE=MyISAM;

Assuming your private table is called myprices and your company prefix is 1, then your sqls necessary to replace the 1_prices table would be:

DROP TABLE `1_prices`;
CREATE VIEW `1_prices` AS
 (SELECT
 id AS id,
 stock_id AS stock_id,
 sales_type_id AS sales_type_id,
 curr_abrev AS curr_abrev,
 price AS price 
 FROM myprices);

Alter the above VIEW's sql to suit your private table's actual field names for the source fields but retain the field aliases as it is.

An example of company/1/reporting/forms/Header2.php usage and it's effect is attached. The wiki has been updated as well.

The Template (eg., Header2) function is executed only at the very end of the New page method and the the company/#/reporting/Header2.php if present will provide overrides for properties not defined in it and in doctext.inc and header2.inc or in cases where pre-defined property values in them are not overridden (like $this->formData['br_name']).

Any variables (need to global them) and properties referred to in the header2.inc and doctext.inc files that are not part of the core can be provided in the Header2.php file and assigned in header2.inc and doctext.inc only if absent.

If the Header2.pdf / Header.pdf files have more than one page, then each one is used in succession for the report and the last one for the remaining pages of the report.

Wikied "Watermarking and background / logo merging in reports". It now stands documented!

4,435

(4 replies, posted in Reporting)

In the new commit, to suppress Page numbering, comment out lines 144 to 147:

//        $this->NewLine(2);
//    
//        if ($this->pageNumber > 1)
//            $this->Text($mcol + 180, _("Page") . ' ' . $this->pageNumber);

@joe: Thanks for the OpenWriter file. Will be useful in documenting this feature.

English translation of Swedish "laboration": Laboratory / Experimental Work.

Anyone used the Header.php / Header2.php in the reporting/forms folder in the company/#/ folder?

4,437

(0 replies, posted in Reporting)

FA uses FPDI v1.2.1 released on 2008-09-11. The current version 1.5.2 was released on 2014-06-26. Anyone used the latest version of FPDI in their FA install? Any advantages and features?

@joe: Thanks for the doPDF tip. PDFCreator too generates small PDF files and is free but may try to install some nagware (optional) in the later versions.

Uploaded the Watermark PDF file as company/1/reporting/includes/forms/Header2.pdf (case sensitive - must be same name as HeaderTmpl with pdf extension) and attached the sample invoice PDFs generated.

If the Watermark file is formatted as PDF v1.5 and above, then we get a "Unexpected data in xref table" error. FPDI Commercial version can read PDF v1.5 and higher.

We can convert such files to PDF v1.4 format using PDFCreator and then use it in FA without errors. PDFCreator is a virtual print driver to generate PDF files.

MS Word 2007 => Page layout => Watermark => Custom Watermark => File => Save As => PDF or XPS
yields a PDF v1.5 format that needs to be converted as above before using it in FA.

Please note that there is no option to turn it on or off and if the watermark file is present, then it will be used for all reports that use the header template.

4,440

(4 replies, posted in Reporting)

@joe: Thanks. Very nice alternative real solution. Attached Screenshot.

Consequent on change in the header2.inc file in latest commit, the mod is also updated and attached here and updated in the wiki.

4,442

(21 replies, posted in Reporting)

You might also want to refer the php.ini max_input_vars setting to increasing it from the default of 1000 to 3000 or beyond as instructed in this thread.

4,443

(2 replies, posted in Reporting)

Thanks @joe: The sequencing of the header type assignment listed in the previous posts here is not necessary as the actual file inclusion of the header2.inc happens only when the new page method is called in line 944-945 of reporting/includes/pdf_report.inc. It still does no harm in keeping them together.

4,444

(4 replies, posted in Reporting)

Comment out lines 145 and 146 of reporting/includes/header2.inc (or place a copy of the file in the appropriate path in the company reporting folder):

        if ($this->pageNumber > 1)
            $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber);

@joe: either a report form variable to suppress page numbers or a config variable/sys_prefs variable to be a flag for it would be nice - atleast going forward in FA v2.4.

4,445

(3 replies, posted in Installation)

You can judge by downloads from GeoIP based computation but it will be well off the mark. People download it off the Hg repo in Sourceforge, the Official Git mirror and my GitHub repo and it's 46 forks apart from pull only private forks and the official release sites.

You can judge by the forum signups but most are passive readers only.

You can judge by FA pkg repo downloads but most may never use extensions or just create their own.

Many may have used older versions and never upgraded or moved on to other packages. Others may have migrated into FA from other applications.

Hence this is a dynamic. Nobody knows and why should anyone care. Just tweak it to suit your needs!

FA is, well, just incomparable!

A HOWTO has been prepared in the Wiki on PHP mail() function using fake sendmail in Windows.

4,447

(18 replies, posted in Wish List)

Then you would definitely need to implement the Non Field DB Data and write your own function for filtering out the checks....

Are you referring to various customer checks your receive or your checks to various suppliers you pay out? If it is the altter, then just make the check number with some start string as the reference for supplier payments and it will auto increment.

4,448

(3 replies, posted in Installation)

"scale of vendor FA?"
Do you mean - how many Vendors can FA handle?

"Market share of online accounting that FA has?"
Your guess is as good as mine. Maybe 0.0001% to 1% of all online accounting usage!
The ocean covers 2/3rds of the earth - where would you like to swim?

Just tested out the multiple contacts availability by setting the last parameter $default=false in the get_branch_contacts() function call in rep107.php. Did a dump of the $contacts array before the function call and the $rep->contactData property after the function call with the $default parameter set to true (single) and false (multiple) and attached the outputs herein.

Hence set the last parameter in get_branch_contacts() to false if you want multiple mailing and leave it at true for single email.

The sequence of customer and branch creation is as follows:
1. Sales => Add and Manage Customers => Added New Customer with email id.
2. Customer Branches => Select Customer => Edit Customer Branch => Contacts => Add 2 New Contacts For Branch
=> Invoice and General Type with email id
=> Invoice and Orders Type with email id
3. Sales => Direct Invoice => Make an invoice for the customer branch.
4. Sales => Customer and Sales Reports => Print Invoices =. Choose to email customers and select the newly created invoice and Display Print Invoice (after setting rep107.php last parameter in get_branch_contacts() to false).

Works as expected - emails to 3 different recipients but separate emails.

@joe: Your logic is sound. Tested it out as well and it corroborates well - the NewPage is the one that actually gives effect to  the Tmpl setting and it's sequence anywhere prior to it is immaterial.

What is the purpose of placing a Header2.pdf file in reporting/forms folder (possibly in the company folder)?

On New page creation in reports, the function setSourceFile() in reporting/includes/fpdi/fpdi.php is called and returns the number of pages in the above Header2.pdf file.

On New page creation in reports another possibility is to place a Header2.php file in reporting/forms folder (possibly in the company folder) as well - what does it do?