5 include($path_to_root . "/includes/session.inc");
7 page(_("Payment Terms"));
9 include($path_to_root . "/includes/ui.inc");
12 //-------------------------------------------------------------------------------------------
14 if (isset($_GET['selected_id']))
16 $selected_id = $_GET['selected_id'];
18 elseif (isset($_POST['selected_id']))
20 $selected_id = $_POST['selected_id'];
23 //-------------------------------------------------------------------------------------------
25 if (isset($_POST['ADD_ITEM']) OR isset($_POST['UPDATE_ITEM']))
30 if (!is_numeric($_POST['DayNumber']))
33 display_error( _("The number of days or the day in the following month must be numeric."));
34 set_focus('DayNumber');
36 elseif (strlen($_POST['terms']) == 0)
39 display_error( _("The Terms description must be entered."));
42 elseif ($_POST['DayNumber'] > 30 && !check_value('DaysOrFoll'))
45 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."));
46 set_focus('DayNumber');
48 elseif ($_POST['DayNumber'] > 500 && check_value('DaysOrFoll'))
51 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."));
52 set_focus('DayNumber');
55 if ($_POST['DayNumber'] == '')
56 $_POST['DayNumber'] = 0;
58 if ($inpug_error != 1)
60 if (isset($selected_id))
62 if (check_value('DaysOrFoll'))
64 $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($_POST['terms']) . ",
65 day_in_following_month=0,
66 days_before_due=" . db_escape($_POST['DayNumber']) . "
67 WHERE terms_indicator = " .db_escape($selected_id);
71 $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($_POST['terms']) . ",
72 day_in_following_month=" . db_escape($_POST['DayNumber']) . ",
74 WHERE terms_indicator = " .db_escape( $selected_id );
81 if (check_value('DaysOrFoll'))
83 $sql = "INSERT INTO ".TB_PREF."payment_terms (terms,
84 days_before_due, day_in_following_month)
86 db_escape($_POST['terms']) . ", " . db_escape($_POST['DayNumber']) . ", 0)";
90 $sql = "INSERT INTO ".TB_PREF."payment_terms (terms,
91 days_before_due, day_in_following_month)
92 VALUES (" . db_escape($_POST['terms']) . ",
93 0, " . db_escape($_POST['DayNumber']) . ")";
97 //run the sql from either of the above possibilites
98 db_query($sql,"The payment term could not be added or updated");
100 meta_forward($_SERVER['PHP_SELF']);
104 if (isset($_GET['delete']))
106 // PREVENT DELETES IF DEPENDENT RECORDS IN debtors_master
108 $sql= "SELECT COUNT(*) FROM ".TB_PREF."debtors_master WHERE payment_terms = '$selected_id'";
109 $result = db_query($sql,"check failed");
110 $myrow = db_fetch_row($result);
113 display_error(_("Cannot delete this payment term, because customer accounts have been created referring to this term."));
117 $sql= "SELECT COUNT(*) FROM ".TB_PREF."suppliers WHERE payment_terms = '$selected_id'";
118 $result = db_query($sql,"check failed");
119 $myrow = db_fetch_row($result);
122 display_error(_("Cannot delete this payment term, because supplier accounts have been created referring to this term"));
126 //only delete if used in neither customer or supplier accounts
128 $sql="DELETE FROM ".TB_PREF."payment_terms WHERE terms_indicator='$selected_id'";
129 db_query($sql,"could not delete a payment terms");
131 meta_forward($_SERVER['PHP_SELF']);
134 //end if payment terms used in customer or supplier accounts
137 //-------------------------------------------------------------------------------------------------
139 $sql = "SELECT * FROM ".TB_PREF."payment_terms";
140 $result = db_query($sql,"could not get payment terms");
142 start_table($table_style);
143 $th = array(_("Description"), _("Following Month On"), _("Due After (Days)"), "", "");
146 $k = 0; //row colour counter
147 while ($myrow = db_fetch($result))
149 if ($myrow["day_in_following_month"] == 0)
151 $full_text = _("N/A");
155 $full_text = $myrow["day_in_following_month"];
158 if ($myrow["days_before_due"] == 0)
160 $after_text = _("N/A");
164 $after_text = $myrow["days_before_due"] . " " . _("days");
167 alt_table_row_color($k);
169 label_cell($myrow["terms"]);
170 label_cell($full_text);
171 label_cell($after_text);
172 edit_link_cell("selected_id=".$myrow["terms_indicator"]);
173 delete_link_cell("selected_id=".$myrow["terms_indicator"]."&delete=1");
177 } //END WHILE LIST LOOP
181 hyperlink_no_params($_SERVER['PHP_SELF'], _("New Payment Term"));
183 //-------------------------------------------------------------------------------------------------
187 start_table($table_style2);
189 $day_in_following_month = $days_before_due = 0;
190 if (isset($selected_id))
192 //editing an existing payment terms
193 $sql = "SELECT * FROM ".TB_PREF."payment_terms
194 WHERE terms_indicator='$selected_id'";
196 $result = db_query($sql,"could not get payment term");
197 $myrow = db_fetch($result);
199 $_POST['terms'] = $myrow["terms"];
200 $days_before_due = $myrow["days_before_due"];
201 $day_in_following_month = $myrow["day_in_following_month"];
203 hidden('selected_id', $selected_id);
205 text_row(_("Terms Description:"), 'terms', null, 40, 40);
207 check_row(_("Due After A Given No. Of Days:"), 'DaysOrFoll', $day_in_following_month == 0);
209 if (!isset($_POST['DayNumber']))
211 if ($days_before_due != 0)
212 $_POST['DayNumber'] = $days_before_due;
214 $_POST['DayNumber'] = $day_in_following_month;
217 text_row_ex(_("Days (Or Day In Following Month):"), 'DayNumber', 3);
221 submit_add_or_update_center(!isset($selected_id));