5 include($path_to_root . "/includes/session.inc");
7 page(_("Payment Terms"));
9 include($path_to_root . "/includes/ui.inc");
11 simple_page_mode(true);
12 //-------------------------------------------------------------------------------------------
14 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
19 if (!is_numeric($_POST['DayNumber']))
22 display_error( _("The number of days or the day in the following month must be numeric."));
23 set_focus('DayNumber');
25 elseif (strlen($_POST['terms']) == 0)
28 display_error( _("The Terms description must be entered."));
31 elseif ($_POST['DayNumber'] > 30 && !check_value('DaysOrFoll'))
34 display_error( _("When the check box to indicate a day in the following month is the due date, the due date cannot be a day after the 30th. A number between 1 and 30 is expected."));
35 set_focus('DayNumber');
37 elseif ($_POST['DayNumber'] > 500 && check_value('DaysOrFoll'))
40 display_error( _("When the check box is not checked to indicate that the term expects a number of days after which accounts are due, the number entered should be less than 500 days."));
41 set_focus('DayNumber');
44 if ($_POST['DayNumber'] == '')
45 $_POST['DayNumber'] = 0;
47 if ($inpug_error != 1)
49 if ($selected_id != -1)
51 if (check_value('DaysOrFoll'))
53 $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($_POST['terms']) . ",
54 day_in_following_month=0,
55 days_before_due=" . db_escape($_POST['DayNumber']) . "
56 WHERE terms_indicator = " .db_escape($selected_id);
60 $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($_POST['terms']) . ",
61 day_in_following_month=" . db_escape($_POST['DayNumber']) . ",
63 WHERE terms_indicator = " .db_escape( $selected_id );
65 $note = _('Selected payment terms have been updated');
70 if (check_value('DaysOrFoll'))
72 $sql = "INSERT INTO ".TB_PREF."payment_terms (terms,
73 days_before_due, day_in_following_month)
75 db_escape($_POST['terms']) . ", " . db_escape($_POST['DayNumber']) . ", 0)";
79 $sql = "INSERT INTO ".TB_PREF."payment_terms (terms,
80 days_before_due, day_in_following_month)
81 VALUES (" . db_escape($_POST['terms']) . ",
82 0, " . db_escape($_POST['DayNumber']) . ")";
84 $note = _('New payment terms have been added');
86 //run the sql from either of the above possibilites
87 db_query($sql,"The payment term could not be added or updated");
88 display_notification($note);
93 if ($Mode == 'Delete')
95 // PREVENT DELETES IF DEPENDENT RECORDS IN debtors_master
97 $sql= "SELECT COUNT(*) FROM ".TB_PREF."debtors_master WHERE payment_terms = '$selected_id'";
98 $result = db_query($sql,"check failed");
99 $myrow = db_fetch_row($result);
102 display_error(_("Cannot delete this payment term, because customer accounts have been created referring to this term."));
106 $sql= "SELECT COUNT(*) FROM ".TB_PREF."suppliers WHERE payment_terms = '$selected_id'";
107 $result = db_query($sql,"check failed");
108 $myrow = db_fetch_row($result);
111 display_error(_("Cannot delete this payment term, because supplier accounts have been created referring to this term"));
115 //only delete if used in neither customer or supplier accounts
117 $sql="DELETE FROM ".TB_PREF."payment_terms WHERE terms_indicator='$selected_id'";
118 db_query($sql,"could not delete a payment terms");
119 display_notification(_('Selected payment terms have been deleted'));
122 //end if payment terms used in customer or supplier accounts
126 if ($Mode == 'RESET')
131 //-------------------------------------------------------------------------------------------------
133 $sql = "SELECT * FROM ".TB_PREF."payment_terms";
134 $result = db_query($sql,"could not get payment terms");
136 start_table($table_style);
137 $th = array(_("Description"), _("Following Month On"), _("Due After (Days)"), "", "");
140 $k = 0; //row colour counter
141 while ($myrow = db_fetch($result))
143 if ($myrow["day_in_following_month"] == 0)
145 $full_text = _("N/A");
149 $full_text = $myrow["day_in_following_month"];
152 if ($myrow["days_before_due"] == 0)
154 $after_text = _("N/A");
158 $after_text = $myrow["days_before_due"] . " " . _("days");
161 alt_table_row_color($k);
163 label_cell($myrow["terms"]);
164 label_cell($full_text);
165 label_cell($after_text);
166 edit_button_cell("Edit".$myrow["terms_indicator"], _("Edit"));
167 edit_button_cell("Delete".$myrow["terms_indicator"], _("Delete"));
171 } //END WHILE LIST LOOP
177 //-------------------------------------------------------------------------------------------------
181 start_table($table_style2);
183 $day_in_following_month = $days_before_due = 0;
184 if ($selected_id != -1)
186 if ($Mode == 'Edit') {
187 //editing an existing payment terms
188 $sql = "SELECT * FROM ".TB_PREF."payment_terms
189 WHERE terms_indicator='$selected_id'";
191 $result = db_query($sql,"could not get payment term");
192 $myrow = db_fetch($result);
194 $_POST['terms'] = $myrow["terms"];
195 $days_before_due = $myrow["days_before_due"];
196 $day_in_following_month = $myrow["day_in_following_month"];
198 hidden('selected_id', $selected_id);
200 text_row(_("Terms Description:"), 'terms', null, 40, 40);
202 check_row(_("Due After A Given No. Of Days:"), 'DaysOrFoll', $day_in_following_month == 0);
204 if (!isset($_POST['DayNumber']))
206 if ($days_before_due != 0)
207 $_POST['DayNumber'] = $days_before_due;
209 $_POST['DayNumber'] = $day_in_following_month;
212 text_row_ex(_("Days (Or Day In Following Month):"), 'DayNumber', 3);
216 submit_add_or_update_center($selected_id == -1, '', true);