function inventory_movements() { global $path_to_root; $from_date = $_POST['PARAM_0']; $to_date = $_POST['PARAM_1']; $category = $_POST['PARAM_2']; $location = $_POST['PARAM_3']; $comments = $_POST['PARAM_4']; $orientation = $_POST['PARAM_5']; $destination = $_POST['PARAM_6']; if ($destination) { include_once $path_to_root . "/reporting/includes/excel_report.inc"; } else { include_once $path_to_root . "/reporting/includes/pdf_report.inc"; } $orientation = $orientation ? 'L' : 'P'; if ($category == ALL_NUMERIC) { $category = 0; } if ($category == 0) { $cat = _('All'); } else { $cat = get_category_name($category); } if ($location == '') { $loc = _('All'); } else { $loc = get_location_name($location); } $cols = array(0, 60, 130, 160, 185, 215, 250, 275, 305, 340, 365, 395, 430, 455, 485, 520); $headers = array(_('Category'), _('Description'), _('UOM'), '', '', _('OpeningStock'), '', '', _('StockIn'), '', '', _('Delivery'), '', '', _('ClosingStock')); $headers2 = array("", "", "", _("QTY"), _("Rate"), _("Value"), _("QTY"), _("Rate"), _("Value"), _("QTY"), _("Rate"), _("Value"), _("QTY"), _("Rate"), _("Value")); $aligns = array('left', 'left', 'left', 'right', 'right', 'right', 'right', 'right', 'right', 'right', 'right', 'right', 'right', 'right', 'right'); $params = array(0 => $comments, 1 => array('text' => _('Period'), 'from' => $from_date, 'to' => $to_date), 2 => array('text' => _('Category'), 'from' => $cat, 'to' => ''), 3 => array('text' => _('Location'), 'from' => $loc, 'to' => '')); $rep = new FrontReport(_('Costed Inventory Movements'), "CostedInventoryMovements", user_pagesize(), 8, $orientation); if ($orientation == 'L') { recalculate_cols($cols); } $rep->Font(); $rep->Info($params, $cols, $headers2, $aligns, $cols, $headers, $aligns); $rep->NewPage(); $totval_open = $totval_in = $totval_out = $totval_close = 0; $result = fetch_items($category); $dec = user_price_dec(); $catgor = ''; while ($myrow = db_fetch($result)) { if ($catgor != $myrow['description']) { $rep->NewLine(2); $rep->fontSize += 2; $rep->TextCol(0, 3, $myrow['category_id'] . " - " . $myrow['description']); $catgor = $myrow['description']; $rep->fontSize -= 2; $rep->NewLine(); } $rep->NewLine(); $rep->TextCol(0, 1, $myrow['stock_id']); $rep->TextCol(1, 2, $myrow['name']); $rep->TextCol(2, 3, $myrow['units']); $qoh_start = get_qoh_on_date($myrow['stock_id'], $location, add_days($from_date, -1)); $qoh_end = get_qoh_on_date($myrow['stock_id'], $location, $to_date); $inward = trans_qty($myrow['stock_id'], $location, $from_date, $to_date); $outward = trans_qty($myrow['stock_id'], $location, $from_date, $to_date, false); $openCost = avg_unit_cost($myrow['stock_id'], $location, $from_date); $unitCost = avg_unit_cost($myrow['stock_id'], $location, add_days($to_date, 1)); $rep->AmountCol(3, 4, $qoh_start, get_qty_dec($myrow['stock_id'])); $rep->AmountCol(4, 5, $openCost, $dec); $openCost *= $qoh_start; $totval_open += $openCost; $rep->AmountCol(5, 6, $openCost); if ($inward > 0) { $rep->AmountCol(6, 7, $inward, get_qty_dec($myrow['stock_id'])); $unitCost_in = trans_qty_unit_cost($myrow['stock_id'], $location, $from_date, $to_date); $rep->AmountCol(7, 8, $unitCost_in, $dec); $unitCost_in *= $inward; $totval_in += $unitCost_in; $rep->AmountCol(8, 9, $unitCost_in); } if ($outward > 0) { $rep->AmountCol(9, 10, $outward, get_qty_dec($myrow['stock_id'])); $unitCost_out = trans_qty_unit_cost($myrow['stock_id'], $location, $from_date, $to_date, false); $rep->AmountCol(10, 11, $unitCost_out, $dec); $unitCost_out *= $outward; $totval_out += $unitCost_out; $rep->AmountCol(11, 12, $unitCost_out); } $rep->AmountCol(12, 13, $qoh_end, get_qty_dec($myrow['stock_id'])); $rep->AmountCol(13, 14, $unitCost, $dec); $unitCost *= $qoh_end; $totval_close += $unitCost; $rep->AmountCol(14, 15, $unitCost); $rep->NewLine(0, 1); } $rep->Line($rep->row - 4); $rep->NewLine(2); $rep->TextCol(0, 1, _("Total")); $rep->AmountCol(5, 6, $totval_open); $rep->AmountCol(8, 9, $totval_in); $rep->AmountCol(11, 12, $totval_out); $rep->AmountCol(14, 15, $totval_close); $rep->Line($rep->row - 4); $rep->End(); }
function inventory_movements() { global $path_to_root; $from_date = $_POST['PARAM_0']; $to_date = $_POST['PARAM_1']; $category = $_POST['PARAM_2']; $location = $_POST['PARAM_3']; $comments = $_POST['PARAM_4']; $orientation = $_POST['PARAM_5']; $destination = $_POST['PARAM_6']; if ($destination) { include_once $path_to_root . "/reporting/includes/excel_report.inc"; } else { include_once $path_to_root . "/reporting/includes/pdf_report.inc"; } $orientation = $orientation ? 'L' : 'P'; if ($category == ALL_NUMERIC) { $category = 0; } if ($category == 0) { $cat = _('All'); } else { $cat = get_category_name($category); } // if ($location == ALL_TEXT) // $location = ''; if ($location == '') { $loc = _('All'); } else { $loc = get_location_name($location); } //$cols = array(0, 100, 300, 365, 440, 540, 640, 715); $cols = array(0, 60, 220, 240, 310, 380, 450, 520); $headers = array(_('Category'), _('Description'), _('UOM'), _('Opening'), _('Quantity In'), _('Quantity Out'), _('Balance')); $aligns = array('left', 'left', 'left', 'right', 'right', 'right', 'right'); $params = array(0 => $comments, 1 => array('text' => _('Period'), 'from' => $from_date, 'to' => $to_date), 2 => array('text' => _('Category'), 'from' => $cat, 'to' => ''), 3 => array('text' => _('Location'), 'from' => $loc, 'to' => '')); $rep = new FrontReport(_('Inventory Movements'), "InventoryMovements", user_pagesize(), 9, $orientation); if ($orientation == 'L') { recalculate_cols($cols); } $rep->Font(); $rep->Info($params, $cols, $headers, $aligns); $rep->NewPage(); $result = fetch_items($category); $catgor = ''; while ($myrow = db_fetch($result)) { if ($catgor != $myrow['description']) { $rep->Line($rep->row - $rep->lineHeight); $rep->NewLine(2); $rep->fontSize += 2; $rep->TextCol(0, 3, $myrow['category_id'] . " - " . $myrow['description']); $catgor = $myrow['description']; $rep->fontSize -= 2; $rep->NewLine(); } $rep->NewLine(); $rep->TextCol(0, 1, $myrow['stock_id']); $rep->TextCol(1, 2, $myrow['name']); $rep->TextCol(2, 3, $myrow['units']); $qoh_start = $inward = $outward = $qoh_end = 0; $qoh_start += get_qoh_on_date($myrow['stock_id'], $location, add_days($from_date, -1)); $qoh_end += get_qoh_on_date($myrow['stock_id'], $location, $to_date); $inward += trans_qty($myrow['stock_id'], $location, $from_date, $to_date); $outward += trans_qty($myrow['stock_id'], $location, $from_date, $to_date, false); $rep->AmountCol(3, 4, $qoh_start, get_qty_dec($myrow['stock_id'])); $rep->AmountCol(4, 5, $inward, get_qty_dec($myrow['stock_id'])); $rep->AmountCol(5, 6, $outward, get_qty_dec($myrow['stock_id'])); $rep->AmountCol(6, 7, $qoh_end, get_qty_dec($myrow['stock_id'])); $rep->NewLine(0, 1); } $rep->Line($rep->row - 4); $rep->NewLine(); $rep->End(); }
function print_price_listing() { global $path_to_root, $pic_height, $pic_width; $currency = $_POST['PARAM_0']; $category = $_POST['PARAM_1']; $salestype = $_POST['PARAM_2']; $pictures = $_POST['PARAM_3']; $showGP = $_POST['PARAM_4']; $comments = $_POST['PARAM_5']; $orientation = $_POST['PARAM_6']; $destination = $_POST['PARAM_7']; if ($destination) { include_once $path_to_root . "/reporting/includes/excel_report.inc"; } else { include_once $path_to_root . "/reporting/includes/pdf_report.inc"; } $orientation = $orientation ? 'L' : 'P'; $dec = user_price_dec(); $home_curr = get_company_pref('curr_default'); if ($currency == ALL_TEXT) { $currency = $home_curr; } $curr = get_currency($currency); $curr_sel = $currency . " - " . $curr['currency']; if ($category == ALL_NUMERIC) { $category = 0; } if ($salestype == ALL_NUMERIC) { $salestype = 0; } if ($category == 0) { $cat = _('All'); } else { $cat = get_category_name($category); } if ($salestype == 0) { $stype = _('All'); } else { $stype = get_sales_type_name($salestype); } if ($showGP == 0) { $GP = _('No'); } else { $GP = _('Yes'); } $cols = array(0, 100, 360, 385, 450, 515); $headers = array(_('Category/Items'), _('Description'), _('UOM'), _('Price'), _('GP %')); $aligns = array('left', 'left', 'left', 'right', 'right'); $params = array(0 => $comments, 1 => array('text' => _('Currency'), 'from' => $curr_sel, 'to' => ''), 2 => array('text' => _('Category'), 'from' => $cat, 'to' => ''), 3 => array('text' => _('Sales Type'), 'from' => $stype, 'to' => ''), 4 => array('text' => _('Show GP %'), 'from' => $GP, 'to' => '')); if ($pictures) { $user_comp = user_company(); } else { $user_comp = ""; } $rep = new FrontReport(_('Price Listing'), "PriceListing", user_pagesize(), 9, $orientation); if ($orientation == 'L') { recalculate_cols($cols); } $rep->Font(); $rep->Info($params, $cols, $headers, $aligns); $rep->NewPage(); $result = fetch_items($category); $catgor = ''; $_POST['sales_type_id'] = $salestype; while ($myrow = db_fetch($result)) { if ($catgor != $myrow['description']) { $rep->Line($rep->row - $rep->lineHeight); $rep->NewLine(2); $rep->fontSize += 2; $rep->TextCol(0, 3, $myrow['category_id'] . " - " . $myrow['description']); $catgor = $myrow['description']; $rep->fontSize -= 2; $rep->NewLine(); } $rep->NewLine(); $rep->TextCol(0, 1, $myrow['stock_id']); $rep->TextCol(1, 2, $myrow['name']); $rep->TextCol(2, 3, $myrow['units']); $price = get_price($myrow['stock_id'], $currency, $salestype); $rep->AmountCol(3, 4, $price, $dec); if ($showGP) { $price2 = get_price($myrow['stock_id'], $home_curr, $salestype); if ($price2 != 0.0) { $disp = ($price2 - $myrow['Standardcost']) * 100 / $price2; } else { $disp = 0.0; } $rep->TextCol(4, 5, number_format2($disp, user_percent_dec()) . " %"); } if ($pictures) { $image = company_path() . "/images/" . item_img_name($myrow['stock_id']) . ".jpg"; if (file_exists($image)) { $rep->NewLine(); if ($rep->row - $pic_height < $rep->bottomMargin) { $rep->NewPage(); } $rep->AddImage($image, $rep->cols[1], $rep->row - $pic_height, 0, $pic_height); $rep->row -= $pic_height; $rep->NewLine(); } } else { $rep->NewLine(0, 1); } } $rep->Line($rep->row - 4); $result = get_kits($category); $catgor = ''; while ($myrow = db_fetch($result)) { if ($catgor != $myrow['cat_name']) { if ($catgor == '') { $rep->NewLine(2); $rep->fontSize += 2; $rep->TextCol(0, 3, _("Sales Kits")); $rep->fontSize -= 2; } $rep->Line($rep->row - $rep->lineHeight); $rep->NewLine(2); $rep->fontSize += 2; $rep->TextCol(0, 3, $myrow['cat_id'] . " - " . $myrow['cat_name']); $catgor = $myrow['cat_name']; $rep->fontSize -= 2; $rep->NewLine(); } $rep->NewLine(); $rep->TextCol(0, 1, $myrow['kit_code']); $rep->TextCol(1, 3, $myrow['kit_name']); $price = get_kit_price($myrow['kit_code'], $currency, $salestype); $rep->AmountCol(3, 4, $price, $dec); $rep->NewLine(0, 1); } $rep->Line($rep->row - 4); $rep->NewLine(); $rep->End(); }
$channel->save(); } function parse_rss($data) { $dom = new DomDocument(); $dom->loadXML($data); $feeds = array(); $xpath = new DOMXpath($dom); foreach ($xpath->query("/rss/channel/item") as $item) { $pub_date = $xpath->query("pubDate/text()", $item)->item(0)->wholeText; $pub_date = DateTime::createFromFormat(DateTime::RSS, $pub_date); array_push($feeds, array("title" => $xpath->query("title/text()", $item)->item(0)->wholeText, "description" => $xpath->query("description/text()", $item)->item(0)->wholeText, "link" => $xpath->query("link/text()", $item)->item(0)->wholeText, "pub_date" => $pub_date)); } return $feeds; } function fetch_items($channel) { $opts = array(); if (ENABLE_PROXY) { $opts = array("http" => array("proxy" => "tcp://" . PROXY_SERVER . ":" . PROXY_PORT, "request_fulluri" => true)); } $context = stream_context_create($opts); $data = file_get_contents($channel->get_url(), false, $context); $items = parse_rss($data); return $items; } foreach (RSSChannel::list_all() as $channel) { print "Fecthing feeds for " . $channel->get_name() . "\n"; $items = fetch_items($channel); save_items($channel, $items); }