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 // ----------------------------------------------------------------
18 include_once($path_to_root . "/includes/session.inc");
19 include_once($path_to_root . "/includes/date_functions.inc");
20 include_once($path_to_root . "/includes/data_checks.inc");
21 include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc");
23 //----------------------------------------------------------------------------------------------------
27 //----------------------------------------------------------------------------------------------------
29 function print_workorders()
31 global $path_to_root, $SysPrefs, $dflt_lang;
33 include_once($path_to_root . "/reporting/includes/pdf_report.inc");
35 $from = $_POST['PARAM_0'];
36 $to = $_POST['PARAM_1'];
37 $email = $_POST['PARAM_2'];
38 $comments = $_POST['PARAM_3'];
39 $orientation = $_POST['PARAM_4'];
42 if (!$from || !$to) return;
44 $orientation = ($orientation ? 'L' : 'P');
45 $fno = explode("-", $from);
46 $tno = explode("-", $to);
47 $from = min($fno[0], $tno[0]);
48 $to = max($fno[0], $tno[0]);
50 $cols = array(4, 60, 190, 255, 320, 385, 450, 515);
52 // $headers in doctext.inc
53 $aligns = array('left', 'left', 'left', 'left', 'right', 'right', 'right');
55 $params = array('comments' => $comments);
57 $cur = get_company_Pref('curr_default');
60 $rep = new FrontReport(_('WORK ORDER'), "WorkOrderBulk", user_pagesize(), 9, $orientation);
61 if ($orientation == 'L')
62 recalculate_cols($cols);
64 for ($i = $from; $i <= $to; $i++)
66 $myrow = get_work_order($i);
69 $date_ = sql2date($myrow["date_"]);
72 $rep = new FrontReport("", "", user_pagesize(), 9, $orientation);
73 $rep->title = _('WORK ORDER');
74 $rep->filename = "WorkOrder" . $myrow['wo_ref'] . ".pdf";
76 $rep->SetHeaderType('Header2');
77 $rep->currency = $cur;
79 $rep->Info($params, $cols, null, $aligns);
81 $contact = array('email' =>$myrow['email'],'lang' => $dflt_lang, // ???
82 'name' => $myrow['contact'], 'name2' => '', 'contact');
84 $rep->SetCommonData($myrow, null, null, '', 26, $contact);
87 $result = get_wo_requirements($i);
88 $rep->TextCol(0, 5,_("Work Order Requirements"), -2);
91 while ($myrow2=db_fetch($result))
95 // if it's a non-stock item (eg. service) don't show qoh
96 if (!has_stock_holding($myrow2["mb_flag"]))
100 $qoh = get_qoh_on_date($myrow2["stock_id"], $myrow2["loc_code"], $date_);
102 if ($show_qoh && ($myrow2["units_req"] * $myrow["units_issued"] > $qoh) &&
103 !$SysPrefs->allow_negative_stock())
105 // oops, we don't have enough of one of the component items
111 $str = $myrow2['stock_id']." ***";
113 $str = $myrow2['stock_id'];
114 $rep->TextCol(0, 1, $str, -2);
115 $rep->TextCol(1, 2, $myrow2['description'], -2);
117 $rep->TextCol(2, 3, $myrow2['location_name'], -2);
118 $rep->TextCol(3, 4, $myrow2['WorkCentreDescription'], -2);
119 $dec = get_qty_dec($myrow2["stock_id"]);
121 $rep->AmountCol(4, 5, $myrow2['units_req'], $dec, -2);
122 $rep->AmountCol(5, 6, $myrow2['units_req'] * $myrow['units_issued'], $dec, -2);
123 $rep->AmountCol(6, 7, $myrow2['units_issued'], $dec, -2);
125 if ($rep->row < $rep->bottomMargin + (15 * $rep->lineHeight))
129 $rep->TextCol(0, 5," *** = "._("Insufficient stock"), -2);
131 $memo = get_comments_string(ST_WORKORDER, $i);
135 $rep->TextColLines(1, 5, $memo, -2);
140 $myrow['DebtorName'] = $myrow['contact'];
141 $myrow['reference'] = $myrow['wo_ref'];