Frontaccounting Working with Forms
- Article
- Comment
Frontaccounting Working with forms. This is one of a basic tutorial to work with forms. Lets create form to edit your customers list.The following code helps you to create a custom form page.
include_once($path_to_root . "/includes/session.inc"); $js = ""; if ($use_popup_windows) $js .= get_js_open_window(900, 500); if ($use_date_picker) $js .= get_js_date_picker(); page(_($help_context = "Customer Edit -Kvcodes"), @$_REQUEST['popup'], false, "", $js); include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/ui/contacts_view.inc");
The above inclusions helps you to inculde the necessary functions for view, date picker and popup window.
Also the session file handles the overall frontaccounting sessions.
Now , we are going to handle the current user id with the help of following code.
if (isset($_GET['debtor_no'])) { $_POST['customer_id'] = $_GET['debtor_no']; } $selected_id = get_post('customer_id','');
Now, we are going to write a validation function, whether the necessary fields are filled out by the user or not with the following code.
function can_process(){ if (strlen($_POST['CustName']) == 0) { display_error(_("The customer name cannot be empty.")); set_focus('CustName'); return false; } if (strlen($_POST['cust_ref']) == 0){ display_error(_("The customer short name cannot be empty.")); set_focus('cust_ref'); return false; } return true; }
And, than now lets write the submit functions to retrieve the form values and send it to the database functions.
if (isset($_POST['submit'])) { lobal $path_to_root, $Ajax, $auto_create_branch; if (!can_process()) return; if ($selected_id) { update_customer($_POST['customer_id'], $_POST['CustName'], $_POST['cust_ref'], $_POST['address'], $_POST['tax_id'], $_POST['curr_code'], $_POST['dimension_id'], $_POST['dimension2_id'], $_POST['credit_status'], $_POST['payment_terms'], input_num('discount') / 100, input_num('pymt_discount') / 100, input_num('credit_limit'), $_POST['sales_type'], $_POST['notes']); update_record_status($_POST['customer_id'], $_POST['inactive'], 'debtors_master', 'debtor_no'); $Ajax->activate('customer_id'); // in case of status change display_notification(_("Customer has been updated.")); } }
And now , lets start create function to retrieve the details of the existing customer, by selecting a custom name from the drop down list. The following code helps you to do it.
unction customer_settings($selected_id) { global $SysPrefs, $path_to_root, $auto_create_branch; if (!$selected_id) { if (list_updated('customer_id') || !isset($_POST['CustName'])) { $_POST['CustName'] = $_POST['cust_ref'] = $_POST['address'] = $_POST['tax_id'] = ''; $_POST['dimension_id'] = 0; $_POST['dimension2_id'] = 0; $_POST['sales_type'] = -1; $_POST['curr_code'] = get_company_currency(); $_POST['credit_status'] = -1; $_POST['payment_terms'] = $_POST['notes'] = ''; $_POST['discount'] = $_POST['pymt_discount'] = percent_format(0); $_POST['credit_limit'] = price_format($SysPrefs->default_credit_limit()); } }else { $myrow = get_customer($selected_id); $_POST['CustName'] = $myrow["name"]; $_POST['cust_ref'] = $myrow["debtor_ref"]; $_POST['address'] = $myrow["address"]; $_POST['tax_id'] = $myrow["tax_id"]; $_POST['dimension_id'] = $myrow["dimension_id"]; $_POST['dimension2_id'] = $myrow["dimension2_id"]; $_POST['sales_type'] = $myrow["sales_type"]; $_POST['curr_code'] = $myrow["curr_code"]; $_POST['credit_status'] = $myrow["credit_status"]; $_POST['payment_terms'] = $myrow["payment_terms"]; $_POST['discount'] = percent_format($myrow["discount"] * 100); $_POST['pymt_discount'] = percent_format($myrow["pymt_discount"] * 100); $_POST['credit_limit'] = price_format($myrow["credit_limit"]); $_POST['notes'] = $myrow["notes"]; $_POST['inactive'] = $myrow["inactive"]; } start_outer_table(TABLESTYLE2); table_section(1); table_section_title(_("Name and Address")); text_row(_("Customer Name:"), 'CustName', $_POST['CustName'], 40, 80); text_row(_("Customer Short Name:"), 'cust_ref', null, 30, 30); textarea_row(_("Address:"), 'address', $_POST['address'], 35, 5); text_row(_("GSTNo:"), 'tax_id', null, 40, 40); end_outer_table(1); div_start('controls'); if (!$selected_id) { submit_center('submit', _("Add New Customer"), true, '', 'default'); } else { submit_center_first('submit', _("Update Customer"), _('Update customer data'), @$_REQUEST['popup'] ? true : 'default'); submit_return('select', $selected_id, _("Select this customer and return to document entry.")); submit_center_last('delete', _("Delete Customer"), _('Delete customer data if have been never used'), true); } div_end(); }
Now, we are going to write the form initial startup and the existing customers list. The following one helps you to list the existing customers list,
start_form(); if (db_has_customers()) { start_table(TABLESTYLE_NOBORDER); start_row(); customer_list_cells(_("Select a customer: "), 'customer_id', null, _('New customer'), true, check_value('show_inactive')); check_cells(_("Show inactive:"), 'show_inactive', null, true); end_row(); end_table(); if (get_post('_show_inactive_update')) { $Ajax->activate('customer_id'); set_focus('customer_id'); } } else { hidden('customer_id'); } end_form(); end_page();
That’s it now,