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'];
44 $dec = user_price_dec();
46 $fno = explode("-", $from);
47 $tno = explode("-", $to);
49 $cols = array(4, 60, 190, 255, 320, 385, 450, 515);
51 // $headers in doctext.inc
52 $aligns = array('left', 'left', 'left', 'left', 'right', 'right', 'right');
54 $params = array('comments' => $comments);
56 $cur = get_company_Pref('curr_default');
60 $rep = new FrontReport(_('WORK ORDER'), "WorkOrderBulk", user_pagesize());
61 $rep->SetHeaderType('Header2');
62 $rep->currency = $cur;
64 $rep->Info($params, $cols, null, $aligns);
67 for ($i = $fno[0]; $i <= $tno[0]; $i++)
69 $myrow = get_work_order($i);
72 $date_ = sql2date($myrow["date_"]);
75 $rep = new FrontReport("", "", user_pagesize());
76 $rep->SetHeaderType('Header2');
77 $rep->currency = $cur;
79 $rep->title = _('WORK ORDER');
80 $rep->filename = "WorkOrder" . $myrow['wo_ref'] . ".pdf";
81 $rep->Info($params, $cols, null, $aligns);
84 $rep->title = _('WORK ORDER');
86 $contact[] = array('email' =>$myrow['email'],'lang' => $dflt_lang,
87 'name' => $myrow['contact'], 'name2' => '', 'contact');
89 $rep->SetCommonData($myrow, null, null, '', 26, $contact);
92 $result = get_wo_requirements($i);
93 $rep->TextCol(0, 5,_("Work Order Requirements"), -2);
96 while ($myrow2=db_fetch($result))
100 // if it's a non-stock item (eg. service) don't show qoh
101 if (!has_stock_holding($myrow2["mb_flag"]))
105 $qoh = get_qoh_on_date($myrow2["stock_id"], $myrow2["loc_code"], $date_);
107 if ($show_qoh && ($myrow2["units_req"] * $myrow["units_issued"] > $qoh) &&
108 !$SysPrefs->allow_negative_stock())
110 // oops, we don't have enough of one of the component items
116 $str = $myrow2['stock_id']." ***";
118 $str = $myrow2['stock_id'];
119 $rep->TextCol(0, 1, $str, -2);
120 $rep->TextCol(1, 2, $myrow2['description'], -2);
122 $rep->TextCol(2, 3, $myrow2['location_name'], -2);
123 $rep->TextCol(3, 4, $myrow2['WorkCentreDescription'], -2);
124 $dec = get_qty_dec($myrow2["stock_id"]);
126 $rep->AmountCol(4, 5, $myrow2['units_req'], $dec, -2);
127 $rep->AmountCol(5, 6, $myrow2['units_req'] * $myrow['units_issued'], $dec, -2);
128 $rep->AmountCol(6, 7, $myrow2['units_issued'], $dec, -2);
130 if ($rep->row < $rep->bottomMargin + (15 * $rep->lineHeight))
134 $rep->TextCol(0, 5," *** = "._("Insufficient stock"), -2);
136 $comments = get_comments(ST_WORKORDER, $i);
137 if ($comments && db_num_rows($comments))
140 while ($comment=db_fetch($comments))
141 $rep->TextColLines(0, 6, $comment['memo_'], -2);
145 // $myrow['contact_email'] = $myrow['email'];
146 $myrow['DebtorName'] = $myrow['contact'];
147 $myrow['reference'] = $myrow['wo_ref'];
148 $rep->End($email, _("Work Order No.") . " " . $myrow['wo_ref'], $myrow);