@Rmendez
I'm the FrontHrm developer, please post your problem on to This Thread so those who have the same problem can get their help too.
226 03/22/2018 12:59:19 am
Re: FrontHRM (15 replies, posted in Modules Add-on's)
227 02/28/2018 02:40:37 pm
Re: Project Management Extension (24 replies, posted in Modules Add-on's)
This is not implemented @apmuthu, it is there because I plan to create 2 project types in the future:
0. Open project which all user will have accessible
1. Private project, can be accessed only by specific users.
228 02/28/2018 03:35:08 am
Re: Project Management Extension (24 replies, posted in Modules Add-on's)
Added task comment system and email notification : DEMO
229 02/28/2018 02:24:02 am
Topic: Wrong error message (2 replies, posted in Report Bugs here)
Line 145 of items_db.inc currently is :
_('Cannot delete this item because there are existing purchase order items for it.'),
It should be:
_('Cannot delete this item because there are existing sales order items for it.'),
230 02/14/2018 01:37:42 pm
Re: Remove Print & Close buttons in GL Transactions Details (2 replies, posted in Banking and General Ledger)
Comment out the last line in gl_trans_view.php
// end_page(true, false, false, $_GET['type_id'], $_GET['trans_no']);
231 02/14/2018 12:27:47 pm
Re: Payroll & Human Resource Management. (216 replies, posted in Modules Add-on's)
@stefan, it's my client's product, not free.
What a serious mistake
Thanks @mnhpiash for detecting. It has been fixed
232 02/11/2018 07:19:09 am
Re: Delivery against Sales Orders at Different Branches of a Customer (8 replies, posted in Accounts Receivable)
I think edit the Order details in the Sales Order Inquiry is the only way
233 02/09/2018 05:11:09 pm
Re: Deleting a fiscal year (4 replies, posted in Setup)
Try to create a new one for 2019 active it then close the 2018 one and it can be deleted.
But I guess not all transactions will be cleared.
234 02/03/2018 12:00:11 pm
Re: How to increase Input text for Amount Debit and Amount Credit (4 replies, posted in Banking and General Ledger)
Replace lines 261-262 of gl/includes/ui/gl_journal_ui.inc with the following:
amount_cells(null, 'AmountDebit');
amount_cells(null, 'AmountCredit');
235 02/01/2018 01:57:15 am
Re: Translating 2.4.3 to german - trouble with abbreviations (4 replies, posted in Translations)
GJ - General journal
BP - Bank payment
BD - Bank deposits
BT - Bank transfer
SI - Sales invoice
CN - Customer Credit note ????
CP - Customer payment
LS - ********************** Not used in FA or in standard extensions - don't know why it is there
IT - Inventory transfer
IA - Inventory adjustment
PO - Purchase order
PI - Purchase invoice
PC - Purchase credit note
SP - Supplier payment
GRN - Goods Received Note
WO - Work order
WI - Work in progress - Issued to Manufacture
WP - Work in Progress - Received from manufacturing
SO - Sales order
SQ - Sales quotation
CU - Cost update
See the /includes/sysnames.inc line 52 - 73
236 01/30/2018 06:01:33 am
Re: Payroll & Human Resource Management. (216 replies, posted in Modules Add-on's)
Restructured FrontHrm has been released:
- New tables structure without any changes to the orignal FA database.
- Monthly Salary and Daily Wages options for each Salary Scale
- Minutes based attendance input, example: 7:30, 06:15 ...
237 01/28/2018 01:52:48 pm
Re: Functions of setup of Dimension (3 replies, posted in Setup)
You can understand Dimension through this https://frontaccounting.com/punbb/viewtopic.php?id=38
238 01/28/2018 10:21:21 am
Re: Project Management Extension (24 replies, posted in Modules Add-on's)
@Alaa, I don't know, I did not think about this, module was written in Javascript mainly so we have to find a library like PHP gettext for Javascript.
239 01/25/2018 07:14:38 am
Re: Payroll & Human Resource Management. (216 replies, posted in Modules Add-on's)
Early next month @Alaa
240 01/23/2018 04:06:35 pm
Re: Payroll & Human Resource Management. (216 replies, posted in Modules Add-on's)
Based on suggetions of apmuthu and other FA community members the HRM module will be restructured for more portable and suitable for more form of work. It has been restructuring and hope will be released soon.
241 01/22/2018 03:27:18 pm
Re: Project Management Extension (24 replies, posted in Modules Add-on's)
These features have not been implemented yet. They will be included later.
242 01/04/2018 12:36:50 pm
Re: Intallation Link (1 replies, posted in Installation)
Read the Wiki may help.
243 01/02/2018 03:55:42 pm
Re: Quotation date and Quotation No. (2 replies, posted in Accounts Receivable)
problem may be fiscal year, please create new fiscal year for 2018 then update in company setup
244 12/31/2017 09:33:16 am
Re: Can't Print or Report to PDF (5 replies, posted in Report Bugs here)
Change the $go_debug in the config.php to 2 and see the errors
245 12/30/2017 02:33:12 am
Re: Edit default English language (3 replies, posted in Translations)
You have to directly edit strings in source code.
But creating a new English language pack is better
246 12/28/2017 08:49:35 am
Re: Payroll & Human Resource Management. (216 replies, posted in Modules Add-on's)
The current ERD updated
https://ibb.co/fMvaSG
247 12/25/2017 01:07:19 pm
Topic: Forbidden characters of Item code input (1 replies, posted in Report Bugs here)
Line 182 of inventory/manage/items.php should be
elseif (strstr($_POST['NewStockID'], "-") || strstr($_POST['NewStockID'],"'") ||
to prevent the - symbol entered by user
Can someone explain about the forbidden characters in the Item code (- ' " + & space), is the reason security ?
248 12/24/2017 07:55:56 am
Re: Auto Fill List of Values in a Text Input Fields (30 replies, posted in Modules Add-on's)
Then @boxygen's dimension_entry.php would now be
<?php
/**********************************************************************
Copyright (C) FrontAccounting, LLC.
Released under the terms of the GNU General Public License, GPL,
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
$page_security = 'SA_DIMENSION';
$path_to_root = "../..";
include_once ($path_to_root . "/includes/session.inc");
include_once ($path_to_root . "/includes/date_functions.inc");
include_once ($path_to_root . "/includes/data_checks.inc");
include_once ($path_to_root . "/admin/db/tags_db.inc");
include_once ($path_to_root . "/dimensions/includes/dimensions_db.inc");
include_once ($path_to_root . "/modules/clearing/includes/dim_db.inc");
include_once ($path_to_root . "/modules/clearing/includes/dimensions_ui.inc");
$js = "";
if (user_use_date_picker())
$js.= get_js_date_picker();
page(_($help_context = "Dimension Entry") , false, false, "", $js);
// ---------------------------------------------------------------------------------------
if (isset($_GET['trans_no']))
$selected_id = $_GET['trans_no'];
elseif (isset($_POST['selected_id']))
$selected_id = $_POST['selected_id'];
else $selected_id = - 1;
// ---------------------------------------------------------------------------------------
if (isset($_GET['AddedID'])) {
$id = $_GET['AddedID'];
display_notification_centered(_("The dimension has been entered."));
safe_exit();
}
// ---------------------------------------------------------------------------------------
if (isset($_GET['UpdatedID'])) {
$id = $_GET['UpdatedID'];
display_notification_centered(_("The dimension has been updated."));
safe_exit();
}
// ---------------------------------------------------------------------------------------
if (isset($_GET['DeletedID'])) {
$id = $_GET['DeletedID'];
display_notification_centered(_("The dimension has been deleted."));
safe_exit();
}
// ---------------------------------------------------------------------------------------
if (isset($_GET['ClosedID'])) {
$id = $_GET['ClosedID'];
display_notification_centered(_("The dimension has been closed. There can be no more changes to it.") . " #$id");
safe_exit();
}
// ---------------------------------------------------------------------------------------
if (isset($_GET['ReopenedID'])) {
$id = $_GET['ReopenedID'];
display_notification_centered(_("The dimension has been re-opened. ") . " #$id");
safe_exit();
}
// -------------------------------------------------------------------------------------------------
function safe_exit() {
global $path_to_root;
hyperlink_no_params("", _("Enter a &new dimension"));
echo "<br />";
hyperlink_no_params($path_to_root . "/modules/clearing/inquiry/search_dimensions.php", _("&Select an existing dimension"));
display_footer_exit();
}
// -------------------------------------------------------------------------------------
function can_process() {
global $selected_id, $Refs;
if ($selected_id == - 1) {
if (!check_reference($_POST['ref'], ST_DIMENSION)) {
set_focus('ref');
return false;
}
}
if (strlen($_POST['name']) == 0) {
display_error(_("The dimension name must be entered."));
set_focus('name');
return false;
}
if (!is_date($_POST['date_'])) {
display_error(_("The date entered is in an invalid format."));
set_focus('date_');
return false;
}
if (!is_date($_POST['due_date'])) {
display_error(_("The required by date entered is in an invalid format."));
set_focus('due_date');
return false;
}
return true;
}
// -------------------------------------------------------------------------------------
if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM']))
{
if (!isset($_POST['dimension_tags'])) $_POST['dimension_tags'] = array();
$Ajax->activate('_page_body');
if (can_process())
{
if ($selected_id == - 1)
{
$id = add_dim($_POST['ref'], $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_'], $_POST['client'], $_POST['item'], $_POST['POL'], $_POST['mode'], $_POST['volume'], $_POST['weight'], $_POST['cont_no'], $_POST['equip_no'], $_POST['bl_no'], $_POST['bl_date'], $_POST['ETA'], $_POST['doc_copy'], $_POST['doc_org'], $_POST['gd_date'], $_POST['po_duty'], $_POST['po_do'], $_POST['po_wfg'], $_POST['destuff'], $_POST['assessment'], $_POST['delivery'], $_POST['gd_no'], $_POST['igm_no'], $_POST['igm_date'], $_POST['index_no'], $_POST['cash_no'], $_POST['cash_date'], $_POST['value'], $_POST['no_of_pkg'], $_POST['POD'], $_POST['gross_weight']);
add_tag_associations($id, $_POST['dimension_tags']);
meta_forward($_SERVER['PHP_SELF'], "AddedID=$id", 0, true);
}
else
{
update_dim($selected_id, $_POST['Dref'], $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_'], $_POST['client'], $_POST['item'], $_POST['POL'], $_POST['mode'], $_POST['volume'], $_POST['weight'], $_POST['cont_no'], $_POST['equip_no'], $_POST['bl_no'], $_POST['bl_date'], $_POST['ETA'], $_POST['doc_copy'], $_POST['doc_org'], $_POST['gd_date'], $_POST['po_duty'], $_POST['po_do'], $_POST['po_wfg'], $_POST['destuff'], $_POST['assessment'], $_POST['delivery'], $_POST['gd_no'], $_POST['igm_no'], $_POST['igm_date'], $_POST['index_no'], $_POST['cash_no'], $_POST['cash_date'], $_POST['value'], $_POST['no_of_pkg'], $_POST['POD'], $_POST['gross_weight']);
update_tag_associations(TAG_DIMENSION, $selected_id, $_POST['dimension_tags']);
meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$selected_id", 0, true);
}
}
}
// --------------------------------------------------------------------------------------
if (isset($_POST['delete'])) {
$cancel_delete = false;
// can't delete it there are productions or issues
if (dimension_has_payments($selected_id) || dimension_has_deposits($selected_id)) {
display_error(_("This dimension cannot be deleted because it has already been processed."));
set_focus('ref');
$cancel_delete = true;
}
if ($cancel_delete == false) { //ie not cancelled the delete as a result of above tests
// delete
delete_dimension($selected_id);
delete_tag_associations(TAG_DIMENSION, $selected_id, true);
meta_forward($_SERVER['PHP_SELF'], "DeletedID=$selected_id");
}
}
// -------------------------------------------------------------------------------------
if (isset($_POST['close'])) {
// update the closed flag
close_dimension($selected_id);
meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id");
}
if (isset($_POST['reopen'])) {
// update the closed flag
reopen_dimension($selected_id);
meta_forward($_SERVER['PHP_SELF'], "ReopenedID=$selected_id");
}
// -------------------------------------------------------------------------------------
start_form();
start_outer_table(TABLESTYLE2);
table_section(1);
if ($selected_id != - 1) {
$myrow = get_dimension($selected_id);
if (strlen($myrow[0]) == 0)
{
display_error(_("The dimension sent is not valid."));
display_footer_exit();
}
// if it's a closed dimension can't edit it
// if ($myrow["closed"] == 1)
// {
// display_error(_("This dimension is closed and cannot be edited."));
// display_footer_exit();
// }
$_POST['ref'] = $myrow["reference"];
$_POST['closed'] = $myrow["closed"];
$_POST['name'] = $myrow["name"];
$_POST['type_'] = $myrow["type_"];
$_POST['date_'] = sql2date($myrow["date_"]);
$_POST['due_date'] = sql2date($myrow["due_date"]);
$_POST['memo_'] = get_comments_string(ST_DIMENSION, $selected_id);
$tags_result = get_tags_associated_with_record(TAG_DIMENSION, $selected_id);
$tagids = array();
while ($tag = db_fetch($tags_result)) $tagids[] = $tag['id'];
$_POST['dimension_tags'] = $tagids;
hidden('ref', $_POST['ref']);
// label_row(_("Dimension Reference:"), $_POST['ref']); //Commented By Faisal
ref_row(_("Dimension Reference:") , 'Dref', '', $_POST['ref']); //added by faisal
hidden('selected_id', $selected_id);
} else {
$_POST['dimension_tags'] = array();
ref_row(_("Dimension Reference:") , 'ref', '', $Refs->get_next(ST_DIMENSION) , false, ST_DIMENSION);
}
text_row_ex(_("Name") . ":", 'name', 25, 75);
$dim = get_company_pref('use_dimension');
number_list_row(_("Type") , 'type_', null, 1, $dim);
date_row(_("Start Date") . ":", 'date_');
date_row(_("Date Required By") . ":", 'due_date', '', null, $SysPrefs->default_dimension_required_by());
tag_list_row(_("Tags:") , 'dimension_tags', 5, TAG_DIMENSION, true);
textarea_row(_("Memo:") , 'memo_', null, 40, 5);
text_row(_("Client") . ":", 'client', @$myrow['client'], 25, 75);
text_row(_("Item") . ":", 'item', @$myrow['item'], 25, 75);
table_section(2);
text_row(_("POL") . ":", 'POL', @$myrow['POL'], 25, 75);
text_row(_("Mode") . ":", 'mode', @$myrow['mode'], 25, 75);
text_row(_("Volume") . ":", 'volume', @$myrow['volume'], 25, 75);
text_row(_("Weight") . ":", 'weight', @$myrow['weight'], 25, 75);
text_row(_("Container No") . ":", 'cont_no', @$myrow['cont_no'], 25, 75);
text_row(_("Equipment NO") . ":", 'equip_no', @$myrow['equip_no'], 25, 75);
text_row(_("BL No") . ":", 'bl_no', @$myrow['bl_no'], 25, 75);
text_row(_("BL Date") . ":", 'bl_date', @$myrow['bl_date'], 25, 75);
text_row(_("ETA") . ":", 'ETA', @$myrow['ETA'], 25, 75);
table_section(3);
text_row(_("Doc Copy") . ":", 'doc_copy', @$myrow['doc_copy'], 25, 75);
text_row(_("Doc Original") . ":", 'doc_org', @$myrow['doc_org'], 25, 75);
text_row(_("GD Date") . ":", 'gd_date', @$myrow['gd_date'], 25, 75);
text_row(_("Duty POrder") . ":", 'po_duty', @$myrow['po_duty'], 25, 75);
text_row(_("DO POrder") . ":", 'po_do', @$myrow['po_do'], 25, 75);
text_row(_("Wharfage POrder") . ":", 'po_wfg', @$myrow['po_wfg'], 25, 75);
text_row(_("Destuff Date") . ":", 'destuff', @$myrow['destuff'], 25, 75);
text_row(_("Assessment Date") . ":", 'assessment', @$myrow['assessment'], 25, 75);
text_row(_("Delivery Date") . ":", 'delivery', @$myrow['delivery'], 25, 75);
text_row(_("GD Number") . ":", 'gd_no', @$myrow['gd_no'], 25, 75);
table_section(4);
text_row(_("IGM Number") . ":", 'igm_no', @$myrow['igm_no'], 25, 75);
text_row(_("IGM Date") . ":", 'igm_date', @$myrow['igm_date'], 25, 75);
text_row(_("Index Number") . ":", 'index_no', @$myrow['index_no'], 25, 75);
text_row(_("Cash Number") . ":", 'cash_no', @$myrow['cash_no'], 25, 75);
text_row(_("Cash Date") . ":", 'cash_date', @$myrow['cash_date'], 25, 75);
text_row(_("Value") . ":", 'value', @$myrow['value'], 25, 75);
text_row(_("No Of Pkg") . ":", 'no_of_pkg', @$myrow['no_of_pkg'], 25, 75);
text_row(_("POD") . ":", 'POD', @$myrow['POD'], 25, 75);
text_row(_("Gross Weight") . ":", 'gross_weight', @$myrow['gross_weight'], 25, 75);
end_outer_table(1);
if (isset($_POST['closed']) && $_POST['closed'] == 1)
display_note(_("This Dimension is closed.") , 0, 0, "class='currentfg'");
if ($selected_id != - 1)
{
echo "<br />";
submit_center_first('UPDATE_ITEM', _("Update") , _('Save changes to dimension') , 'default');
if ($_POST['closed'] == 1)
submit('reopen', _("Re-open This Dimension") , true, _('Mark this dimension as re-opened') , true);
else
submit('close', _("Close This Dimension") , true, _('Mark this dimension as closed') , true);
submit_center_last('delete', _("Delete This Dimension") , _('Delete unused dimension') , true);
} else {
submit_center('ADD_ITEM', _("Add") , true, '', 'default');
}
end_form();
// --------------------------------------------------------------------------------------------
end_page();
249 12/24/2017 03:46:11 am
Re: Auto Fill List of Values in a Text Input Fields (30 replies, posted in Modules Add-on's)
@apmuthu
The other places are working because they are not calling meta_forward after form submit, I guess anywhere calling meta_forward after submit form will not store the values fed for next entry.
About the exit; in the ui_controls.inc line 168 we can understand its use through an example like following:
Let's comment out exit; in ui_controls.inc line 168
Now we make an sales entry, says Sales Quotation Entry
After process the order the $_SESSION['Items'] will be cleared by the processing_end() at line 492 and function meta_forward will be called at line 501 of sales_order_entry.php, since the exit; is disabled so after redirect all statements in the sales_order_entry.php will not be stopped then we can see the errors:
Undefined index: Items in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 700
Trying to get property of non-object in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 700
Undefined index: Items in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 707
Trying to get property of non-object in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 707
Undefined index: Items in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 713
Trying to get property of non-object in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 713
Undefined index: Items in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 719
Trying to get property of non-object in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 719
Unhandled exception [0]: Call to a member function is_started() on null. in file: C:\xampp\htdocs\fa243\sales\sales_order_entry.php at line 737
exception_handler((Error Object))
In case of Dimension Entry the exit; can be disabled without any errors. So I think @apmuthu's suggestion for another argument for the function to conditionally execute an exit maybe good
250 12/23/2017 12:49:24 pm
Re: Auto Fill List of Values in a Text Input Fields (30 replies, posted in Modules Add-on's)
exit; statement in ui_controls.inc line 168 is the cause of @boxygen's trouble, I don't know why but you can temporarily create your own meta_forward function without the exit; statement so that your module can work as it is now.
Something like this
function clearing_meta_forward($forward_to, $params="", $timeout=0)
{
global $Ajax;
echo "<meta http-equiv='Refresh' content='".$timeout."; url=$forward_to?$params'>\n";
echo "<center><br>" . _("You should automatically be forwarded.");
echo " " . _("If this does not happen") . " " . "<a href='$forward_to?$params'>" . _("click here") . "</a> " . _("to continue") . ".<br><br></center>\n";
if ($params !='') $params = '?'.$params;
$Ajax->redirect($forward_to.$params);
//exit;
}