2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = $_POST['PARAM_0'] == $_POST['PARAM_1'] ?
13 'SA_MANUFTRANSVIEW' : 'SA_MANUFBULKREP';
14 // ----------------------------------------------------------------
16 // Creator: Janusz Dobrowolski
18 // Title: Print Workorders
20 // ----------------------------------------------------------------
23 include_once($path_to_root . "/includes/session.inc");
24 include_once($path_to_root . "/includes/date_functions.inc");
25 include_once($path_to_root . "/includes/data_checks.inc");
26 include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc");
28 //----------------------------------------------------------------------------------------------------
32 //----------------------------------------------------------------------------------------------------
34 function print_workorders()
38 include_once($path_to_root . "/reporting/includes/pdf_report.inc");
40 $from = $_POST['PARAM_0'];
41 $to = $_POST['PARAM_1'];
42 $email = $_POST['PARAM_2'];
43 $comments = $_POST['PARAM_3'];
49 $dec = user_price_dec();
51 $fno = explode("-", $from);
52 $tno = explode("-", $to);
54 $cols = array(4, 60, 190, 255, 320, 385, 450, 515);
56 // $headers in doctext.inc
57 $aligns = array('left', 'left', 'left', 'left', 'right', 'right', 'right');
59 $params = array('comments' => $comments);
61 $cur = get_company_Pref('curr_default');
65 $rep = new FrontReport(_('WORK ORDER'), "WorkOrderBulk", user_pagesize());
66 $rep->currency = $cur;
68 $rep->Info($params, $cols, null, $aligns);
71 for ($i = $fno[0]; $i <= $tno[0]; $i++)
73 $myrow = get_work_order($i);
76 $date_ = sql2date($myrow["date_"]);
79 $rep = new FrontReport("", "", user_pagesize());
80 $rep->currency = $cur;
82 $rep->title = _('WORK ORDER');
83 $rep->filename = "WorkOrder" . $myrow['reference'] . ".pdf";
84 $rep->Info($params, $cols, null, $aligns);
87 $rep->title = _('WORK ORDER');
88 $rep->Header2($myrow, null, null, '', 26);
90 $result = get_wo_requirements($i);
91 $rep->TextCol(0, 5,_("Work Order Requirements"), -2);
94 while ($myrow2=db_fetch($result))
98 // if it's a non-stock item (eg. service) don't show qoh
99 if (!has_stock_holding($myrow2["mb_flag"]))
103 $qoh = get_qoh_on_date($myrow2["stock_id"], $myrow2["loc_code"], $date_);
105 if ($show_qoh && ($myrow2["units_req"] * $myrow["units_issued"] > $qoh) &&
106 !sys_prefs::allow_negative_stock())
108 // oops, we don't have enough of one of the component items
114 $str = $myrow2['stock_id']." ***";
116 $str = $myrow2['stock_id'];
117 $rep->TextCol(0, 1, $str, -2);
118 $rep->TextCol(1, 2, $myrow2['description'], -2);
120 $rep->TextCol(2, 3, $myrow2['location_name'], -2);
121 $rep->TextCol(3, 4, $myrow2['WorkCentreDescription'], -2);
122 $dec = get_qty_dec($myrow2["stock_id"]);
124 $rep->AmountCol(4, 5, $myrow2['units_req'], $dec, -2);
125 $rep->AmountCol(5, 6, $myrow2['units_req'] * $myrow['units_issued'], $dec, -2);
126 $rep->AmountCol(6, 7, $myrow2['units_issued'], $dec, -2);
128 if ($rep->row < $rep->bottomMargin + (15 * $rep->lineHeight))
129 $rep->Header2($myrow, null, null,'',26);
132 $rep->TextCol(0, 5," *** = "._("Insufficient stock"), -2);
134 $comments = get_comments(26, $i);
135 if ($comments && db_num_rows($comments))
138 while ($comment=db_fetch($comments))
139 $rep->TextColLines(0, 6, $comment['memo_'], -2);