|
From: <ex...@us...> - 2016-09-25 10:38:49
|
Revision: 7637
http://sourceforge.net/p/web-erp/reponame/7637
Author: exsonqu
Date: 2016-09-25 10:38:47 +0000 (Sun, 25 Sep 2016)
Log Message:
-----------
25/09/16 Exson: Make customer reference GET method workable in SelectCompletedOrder.php. Fixed decimalplaces missing bug in SelectOrderItems.php. Add due date, order date and customer reference option in SelectSalesOrder.php.
Modified Paths:
--------------
trunk/SelectCompletedOrder.php
trunk/SelectOrderItems.php
trunk/SelectSalesOrder.php
trunk/doc/Change.log
Modified: trunk/SelectCompletedOrder.php
===================================================================
--- trunk/SelectCompletedOrder.php 2016-09-25 03:59:49 UTC (rev 7636)
+++ trunk/SelectCompletedOrder.php 2016-09-25 10:38:47 UTC (rev 7637)
@@ -35,6 +35,7 @@
}
if (isset($_GET['CustomerRef'])){
$CustomerRef = $_GET['CustomerRef'];
+ $CustomerGet = 1;
} elseif (isset($_POST['CustomerRef'])){
$CustomerRef = $_POST['CustomerRef'];
}
@@ -236,7 +237,7 @@
echo '<br />' . _('For the part') . ': ' . $SelectedStockItem . ' ' . _('and') . ' <input type="hidden" name="SelectedStockItem" value="' . $SelectedStockItem . '" />';
}
}
-} else if (isset($_POST['SearchOrders']) AND Is_Date($_POST['OrdersAfterDate'])==1) {
+} else if ((isset($_POST['SearchOrders']) AND Is_Date($_POST['OrdersAfterDate'])==1) OR (isset($CustomerGet))) {
//figure out the SQL required from the inputs available
if (isset($OrderNumber)) {
Modified: trunk/SelectOrderItems.php
===================================================================
--- trunk/SelectOrderItems.php 2016-09-25 03:59:49 UTC (rev 7636)
+++ trunk/SelectOrderItems.php 2016-09-25 10:38:47 UTC (rev 7637)
@@ -1026,7 +1026,7 @@
$Price = filter_number_format($_POST['Price_' . $OrderLine->LineNumber]);
if ($_POST['Discount_' . $OrderLine->LineNumber] < 100) {//to avoid divided by zero error
- $_POST['GPPercent_' . $OrderLine->LineNumber] = (($Price*(1-(filter_number_format($_POST['Discount_' . $OrderLine->LineNumber])/100))) - $OrderLine->StandardCost*$ExRate)/($Price *(1-filter_number_format($_POST['Discount_' . $OrderLine->LineNumber])/100)/100);
+ $_POST['GPPercent_' . $OrderLine->LineNumber] = (($Price*(1-(filter_number_format($_POST['Discount_' . $OrderLine->LineNumber])/100))) - $OrderLine->StandardCost*$ExRate)/($Price *(1-filter_number_format($_POST['Discount_' . $OrderLine->LineNumber])/100)/100);
} else {
$_POST['GPPercent_' . $OrderLine->LineNumber] = 0;
}
@@ -1495,9 +1495,9 @@
// This code needs sorting out, but until then :
$ImageSource = _('No Image');
// Find the quantity in stock at location
- $QOHSQL = "SELECT sum(locstock.quantity) AS qoh
- FROM locstock
- WHERE stockid='" .$myrow['stockid'] . "'
+ $QOHSQL = "SELECT sum(locstock.quantity) AS qoh,decimalplaces
+ FROM locstock INNER JOIN stockmaster ON stockmaster.stockid=locstock.stockid
+ WHERE locstock.stockid='" .$myrow['stockid'] . "'
AND loccode = '" . $_SESSION['Items'.$identifier]->Location . "'";
$QOHResult = DB_query($QOHSQL);
$QOHRow = DB_fetch_array($QOHResult);
Modified: trunk/SelectSalesOrder.php
===================================================================
--- trunk/SelectSalesOrder.php 2016-09-25 03:59:49 UTC (rev 7636)
+++ trunk/SelectSalesOrder.php 2016-09-25 10:38:47 UTC (rev 7637)
@@ -9,6 +9,9 @@
$BookMark = "SelectSalesOrder";
include('includes/header.inc');
include('includes/SQL_CommonFunctions.inc');
+if (isset($_POST['Reset'])) {
+ unset($_POST);
+}
if (isset($_GET['SelectedStockItem'])) {
$SelectedStockItem = $_GET['SelectedStockItem'];
@@ -25,7 +28,7 @@
} else {
unset($SelectedCustomer);
}
-
+
if (isset($_POST['PlacePO'])){ /*user hit button to place PO for selected orders */
/*Note the button would not have been displayed if the user had no authority to create purchase orders */
@@ -424,6 +427,9 @@
} else {
unset($OrderNumber);
}
+if (isset($_POST['CustomerRef'])) {
+ $CustomerRef = $_POST['CustomerRef'];
+}
if (isset($OrderNumber) AND $OrderNumber!='') {
$OrderNumber = trim($OrderNumber);
@@ -503,15 +509,50 @@
if (isset($_POST['Quotations']) AND $_POST['Quotations']=='Quotes_Only'){
echo '<option selected="selected" value="Quotes_Only">' . _('Quotations Only') . '</option>';
echo '<option value="Orders_Only">' . _('Orders Only') . '</option>';
+ echo '<option value="Overdue_Only">' . _('Overdue Only') . '</option>';
+ } elseif (isset($_POST['Quotations']) AND $_POST['Quotations'] == 'Overdue_Only'){
+ echo '<option selected="selected" value="Overdue_Only">' . _('Overdue Only') . '</option>';
+ echo '<option value="Quotes_Only">' . _('Quotations Only') . '</option>';
+ echo '<option value="Orders_Only">' . _('Orders Only') . '</option>';
} else {
echo '<option selected="selected" value="Orders_Only">' . _('Orders Only') . '</option>';
echo '<option value="Quotes_Only">' . _('Quotations Only') . '</option>';
+ echo '<option value="Overdue_Only">' . _('Overdue Only') . '</option>';
}
+ if (!isset($_POST['DueDateFrom'])) {
+ $_POST['DueDateFrom'] = '';
+ }
+ if (!isset($_POST['DueDateTo'])) {
+ $_POST['DueDateTo'] = '';
+ }
+ if (!isset($_POST['CustomerRef'])) {
+ $_POST['CustomerRef'] = '';
+ }
+ if (!isset($_POST['OrderDateFrom'])) {
+ $_POST['OrderDateFrom'] = '';
+ }
+ if (!isset($_POST['OrderDateTo'])) {
+ $_POST['OrderDateTo'] = '';
+ }
+
echo '</select> </td>
+ <td>' . _('Due Date From') . '</td>
+ <td><input type="text" class="date" name="DueDateFrom" value="' . $_POST['DueDateFrom'] . '" alt="' . $_SESSION['DefaultDateFormat'] . '" size="10" /></td>
+ <td>' . _('Due Date To') . '</td>
+ <td><input type="text" class="date" name="DueDateTo" value="' . $_POST['DueDateTo'] . '" alt="' . $_SESSION['DefaultDateFormat'] . '" size="10" /></td>
<td><input type="submit" name="SearchOrders" value="' . _('Search') . '" /></td>
+ <td><input type="submit" name="Reset" value="' . _('Reset') . '" /></td>
<td><a href="' . $RootPath . '/SelectOrderItems.php?NewOrder=Yes">' . _('Add Sales Order') . '</a></td>
</tr>
+ <tr>
+ <td>' . _('Customer Ref') . '</td>
+ <td><input type="text" name="CustomerRef" value="' . $_POST['CustomerRef'] . '" size="12" /></td>
+ <td>' . _('Order Date From') . '</td>
+ <td><input type="text" name="OrderDateFrom" value="' . $_POST['OrderDateFrom'] . '" size="10" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" /></td>
+ <td>' . _('Order Date To') . '</td>
+ <td><input type="text" name="OrderDateTo" value="' . $_POST['OrderDateTo'] . '" size="10" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" /></td>
+ </tr>
</table>';
}
@@ -601,13 +642,42 @@
//figure out the SQL required from the inputs available
if (isset($_POST['Quotations']) AND $_POST['Quotations']=='Orders_Only'){
$Quotations = 0;
+ } elseif(isset($_POST['Quotations']) AND $_POST['Quotations'] == 'Quotations_Only') {
+ $Quotations =1;
+ } elseif(isset($_POST['Quotations']) AND $_POST['Quotations'] == 'Overdue_Only') {
+ $Quotations = "0 AND itemdue<'" . Date('Y-m-d') . "'";
} else {
- $Quotations =1;
+ $Quotations = 0;
}
+ if (isset($_POST['DueDateFrom']) AND is_date($_POST['DueDateFrom'])) {
+ $DueDateFrom = " AND itemdue>='" . FormatDateForSQL($_POST['DueDateFrom']) . "' ";
+ } else {
+ $DueDateFrom = '';
+ }
+ if (isset($_POST['DueDateTo']) AND is_date($_POST['DueDateTo'])) {
+ $DueDateTo = " AND itemdue<='" . FormatDateForSQL($_POST['DueDateTo']) . "'";
+ } else {
+ $DueDateTo = '';
+ }
+ if (isset($_POST['OrderDateFrom']) AND is_date($_POST['OrderDateFrom'])) {
+ $OrderDateFrom = " AND orddate >='" . FormatDateForSQL($_POST['OrderDateFrom']) . "' ";
+ } else {
+ $OrderDateFrom = '';
+ }
+ if (isset($_POST['OrderDateTo']) AND is_date($_POST['OrderDateTo'])) {
+ $OrderDateTo = " AND orddate <='" . FormatDateForSQL($_POST['OrderDateTo']) . "' ";
+ } else {
+ $OrderDateTo = '';
+ }
+
if(!isset($_POST['StockLocation'])) {
$_POST['StockLocation'] = '';
}
//Harmonize the ordervalue with SUM function since webERP allowed same items appeared several times in one sales orders. If there is no sum value, this situation not inclued.
+ //We should separate itemdue inquiry from normal inquiry.
+ if (($Quotations === 0 OR $Quotations === 1)
+ AND (!isset($DueDateFrom) OR !is_date($DueDateFrom))
+ AND (!isset($DueDateTo) OR !is_date($DueDateTo))) {
$SQL = "SELECT salesorders.orderno,
debtorsmaster.name,
@@ -629,6 +699,76 @@
INNER JOIN currencies
ON debtorsmaster.currcode = currencies.currabrev
WHERE salesorderdetails.completed=0 ";
+ $SQL .= $OrderDateFrom . $OrderDateTo;
+ } else {
+ if ($Quotations !==0 AND $Quotations !==1) {//overdue inquiry only
+ $SQL = "SELECT salesorders.orderno,
+ debtorsmaster.name,
+ custbranch.brname,
+ salesorders.customerref,
+ salesorders.orddate,
+ salesorders.deliverydate,
+ salesorders.deliverto,
+ salesorders.printedpackingslip,
+ salesorders.poplaced,
+ SUM(CASE WHEN itemdue<'" . Date('Y-m-d') . "'
+ THEN salesorderdetails.unitprice*(salesorderdetails.quantity-salesorderdetails.qtyinvoiced)*(1-salesorderdetails.discountpercent)/currencies.rate
+ ELSE 0 END) as ordervalue";
+ } elseif (isset($DueDateFrom) AND is_date($DueDateFrom) AND (!isset($DueDateTo) OR !is_date($DueDateTo))) {
+ $SQL = "SELECT salesorders.orderno,
+ debtorsmaster.name,
+ custbranch.brname,
+ salesorders.customerref,
+ salesorders.orddate,
+ salesorders.deliverydate,
+ salesorders.deliverto,
+ salesorders.printedpackingslip,
+ salesorders.poplaced,
+ SUM(CASE WHEN itemdue>='" . FormatDateFromSQL($DueDateFrom) . "'
+ THEN salesorderdetails.unitprice*(salesorderdetails.quantity-salesorderdetails.qtyinvoiced)*(1-salesorderdetails.discountpercent)/currencies.rate
+ ELSE 0 END) as ordervalue";
+ } elseif (isset($DueDateFrom) AND is_date($DueDateFrom) AND isset($DueDateTo) AND is_date($DueDateTo)) {
+ $SQL = "SELECT salesorders.orderno,
+ debtorsmaster.name,
+ custbranch.brname,
+ salesorders.customerref,
+ salesorders.orddate,
+ salesorders.deliverydate,
+ salesorders.deliverto,
+ salesorders.printedpackingslip,
+ salesorders.poplaced,
+ SUM (CASE WHEN itemdue>='" . FormatDateForSQL($DueDateFrom) . "' AND itemdue<='" . FormatDateForSQL($DueDateTo) ."'
+ THEN salesorderdetails.unitprice*(salesorderdetails.quantity-salesorderdetails.qtyinvoiced)*(1-salesorderdetails.discountpercent)/currencies.rate
+ ELSE 0 END) as ordervalue";
+ } elseif ((!isset($DueDateFrom) OR !is_date($DueDateFrom)) AND isset($DueDateTo) AND is_date($DueDateTo)) {
+ $SQL = "SELECT salesorders.orderno,
+ debtorsmaster.name,
+ custbranch.brname,
+ salesorders.customerref,
+ salesorders.orddate,
+ salesorders.deliverydate,
+ salesorders.deliverto,
+ salesorders.printedpackingslip,
+ salesorders.poplaced,
+ SUM(CASE WHEN AND itemdue<='" . FormatDateForSQL($DueDateTo) ."'
+ THEN salesorderdetails.unitprice*(salesorderdetails.quantity-salesorderdetails.qtyinvoiced)*(1-salesorderdetails.discountpercent)/currencies.rate
+ ELSE 0 END) as ordervalue";
+ }//end of due date inquiry
+ $SQL .= $OrderDateFrom . $OrderDateTo;
+
+
+ $SQL .=" FROM salesorders INNER JOIN salesorderdetails
+ ON salesorders.orderno = salesorderdetails.orderno
+ INNER JOIN debtorsmaster
+ ON salesorders.debtorno = debtorsmaster.debtorno
+ INNER JOIN custbranch
+ ON debtorsmaster.debtorno = custbranch.debtorno
+ AND salesorders.branchcode = custbranch.branchcode
+ INNER JOIN currencies
+ ON debtorsmaster.currcode = currencies.currabrev
+ WHERE salesorderdetails.completed=0 ";
+ }
+
//Add salesman role control
if ($_SESSION['SalesmanLogin'] != '') {
$SQL .= " AND salesorders.salesperson='" . $_SESSION['SalesmanLogin'] . "'";
@@ -639,46 +779,52 @@
$SQL .= "AND salesorders.orderno=". $OrderNumber ."
AND salesorders.quotation=" .$Quotations;
- } else {
- /* $DateAfterCriteria = FormatDateforSQL($OrdersAfterDate); */
+
+ } elseif (isset($CustomerRef) AND $CustomerRef != ''){
+ $SQL .= "AND salesorders.customerref='" . $CustomerRef . "'
+ AND salesorders.quotation=" . $Quotations;
+
+ } else {
+ /* $DateAfterCriteria = FormatDateforSQL($OrdersAfterDate); */
- if (isset($SelectedCustomer)) {
+ if (isset($SelectedCustomer)) {
- if (isset($SelectedStockItem)) {
- $SQL .= "AND salesorders.quotation =" .$Quotations . "
- AND salesorderdetails.stkcode='". $SelectedStockItem ."'
- AND salesorders.debtorno='" . $SelectedCustomer ."'
- AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
+ if (isset($SelectedStockItem)) {
+ $SQL .= "AND salesorders.quotation =" .$Quotations . "
+ AND salesorderdetails.stkcode='". $SelectedStockItem ."'
+ AND salesorders.debtorno='" . $SelectedCustomer ."'
+ AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
- } else {
- $SQL .= "AND salesorders.quotation =" .$Quotations . "
- AND salesorders.debtorno='" . $SelectedCustomer . "'
- AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
+ } else {
+ $SQL .= "AND salesorders.quotation =" .$Quotations . "
+ AND salesorders.debtorno='" . $SelectedCustomer . "'
+ AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
- }
- } else { //no customer selected
- if (isset($SelectedStockItem)) {
- $SQL .= "AND salesorders.quotation =" .$Quotations . "
- AND salesorderdetails.stkcode='". $SelectedStockItem . "'
- AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
- } else {
- $SQL .= "AND salesorders.quotation =" .$Quotations . "
- AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
- }
+ }
+ } else { //no customer selected
+ if (isset($SelectedStockItem)) {
+ $SQL .= "AND salesorders.quotation =" .$Quotations . "
+ AND salesorderdetails.stkcode='". $SelectedStockItem . "'
+ AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
+ } else {
+ $SQL .= "AND salesorders.quotation =" .$Quotations . "
+ AND salesorders.fromstkloc = '". $_POST['StockLocation'] . "'";
+ }
- } //end selected customer
+ } //end selected customer
+ $SQL .= $DueDateFrom . $DueDateTo;
- $SQL .= ' GROUP BY salesorders.orderno,
- debtorsmaster.name,
- custbranch.brname,
- salesorders.customerref,
- salesorders.orddate,
- salesorders.deliverydate,
- salesorders.deliverto,
- salesorders.printedpackingslip,
- salesorders.poplaced
- ORDER BY salesorders.orderno';
- } //end not order number selected
+ $SQL .= ' GROUP BY salesorders.orderno,
+ debtorsmaster.name,
+ custbranch.brname,
+ salesorders.customerref,
+ salesorders.orddate,
+ salesorders.deliverydate,
+ salesorders.deliverto,
+ salesorders.printedpackingslip,
+ salesorders.poplaced
+ ORDER BY salesorders.orderno';
+ } //end not order number selected
$ErrMsg = _('No orders or quotations were returned by the SQL because');
$SalesOrdersResult = DB_query($SQL,$ErrMsg);
@@ -698,7 +844,7 @@
echo '<table cellpadding="2" width="95%" class="selection">';
- if (isset($_POST['Quotations']) AND $_POST['Quotations']=='Orders_Only'){
+ if (isset($_POST['Quotations']) AND ($_POST['Quotations']=='Orders_Only' OR $_POST['Quotations'] == 'Overdue_Only')){
$TableHeader = '<tr>
<th class="ascending" >' . _('Modify') . '</th>
<th>' . _('Invoice') . '</th>
@@ -761,6 +907,11 @@
$FormatedDelDate = ConvertSQLDate($myrow['deliverydate']);
$FormatedOrderDate = ConvertSQLDate($myrow['orddate']);
$FormatedOrderValue = locale_number_format($myrow['ordervalue'],$_SESSION['CompanyRecord']['decimalplaces']);
+ if ($myrow['customerref'] !== '') {
+ $CustomerRef = '<a href="' . $RootPath . '/SelectCompletedOrder.php?CustomerRef=' . $myrow['customerref'] . '" target="_blank">' . $myrow['customerref'] . '</a>';
+ } else {
+ $CustomerRef = '';
+ }
if ($myrow['printedpackingslip']==0) {
$PrintText = _('Print');
@@ -768,7 +919,7 @@
$PrintText = _('Reprint');
}
- if ($_POST['Quotations']=='Orders_Only'){
+ if ($_POST['Quotations']=='Orders_Only' OR $_POST['Quotations']=='Overdue_Only'){
/*Check authority to create POs if user has authority then show the check boxes to select sales orders to place POs for otherwise don't provide this option */
if ($AuthRow['cancreate']==0 AND $myrow['poplaced']==0){ //cancreate==0 if the user can create POs and not already placed
@@ -790,7 +941,7 @@
$PrintDispatchNote,
$myrow['name'],
$myrow['brname'],
- $myrow['customerref'],
+ $CustomerRef,
$FormatedOrderDate,
$FormatedDelDate,
html_entity_decode($myrow['deliverto'],ENT_QUOTES,'UTF-8'),
Modified: trunk/doc/Change.log
===================================================================
--- trunk/doc/Change.log 2016-09-25 03:59:49 UTC (rev 7636)
+++ trunk/doc/Change.log 2016-09-25 10:38:47 UTC (rev 7637)
@@ -1,5 +1,6 @@
webERP Change Log
+25/09/16 Exson: Make customer reference GET method workable in SelectCompletedOrder.php. Fixed decimalplaces missing bug in SelectOrderItems.php. Add due date, order date and customer reference option in SelectSalesOrder.php.
25/09/16 Exson: Make the details show immediately when the search result is one in SelectCompletedOrder.php.And add return links in OrderDetails.php.
24/10/16 Simon Kelly: Fixed placing POs for sales orders using array form variable
24/09/16 waynemcdougall: Fixed missing date in Sales Price history
|