From: <dai...@us...> - 2014-07-16 10:42:42
|
Revision: 6789 http://sourceforge.net/p/web-erp/reponame/6789 Author: daintree Date: 2014-07-16 10:42:39 +0000 (Wed, 16 Jul 2014) Log Message: ----------- agaluski: add standard cost to stock movement record for adjustments Modified Paths: -------------- trunk/GLJournal.php trunk/StockAdjustments.php trunk/SupplierTypes.php trunk/doc/Change.log trunk/doc/Manual/ManualRequirements.html trunk/doc/Manual/ManualSpecialUtilities.html Modified: trunk/GLJournal.php =================================================================== --- trunk/GLJournal.php 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/GLJournal.php 2014-07-16 10:42:39 UTC (rev 6789) @@ -310,7 +310,7 @@ $result=DB_query($SQL,$db); echo '<option value="0">0 - ' . _('None') . '</option>'; while ($myrow=DB_fetch_array($result)){ - if (isset($_POST['tag']) and $_POST['tag']==$myrow['tagref']){ + if (isset($_POST['tag']) AND $_POST['tag']==$myrow['tagref']){ echo '<option selected="selected" value="' . $myrow['tagref'] . '">' . $myrow['tagref'].' - ' .$myrow['tagdescription'] . '</option>'; } else { echo '<option value="' . $myrow['tagref'] . '">' . $myrow['tagref'].' - ' .$myrow['tagdescription'] . '</option>'; @@ -330,10 +330,11 @@ ORDER BY accountcode"; $result=DB_query($sql, $db); -echo '<td><select name="GLCode" onchange="return assignComboToInput(this,'.'GLManualCode'.')">'; -echo '<option value="">' . _('Select a general ledger account code') . '</option>'; +echo '<td> + <select name="GLCode" onchange="return assignComboToInput(this,'.'GLManualCode'.')"> + <option value="">' . _('Select a general ledger account code') . '</option>'; while ($myrow=DB_fetch_array($result)){ - if (isset($_POST['tag']) and $_POST['tag']==$myrow['accountcode']){ + if (isset($_POST['GLCode']) AND $_POST['GLCode']==$myrow['accountcode']){ echo '<option selected="selected" value="' . $myrow['accountcode'] . '">' . $myrow['accountcode'].' - ' .htmlspecialchars($myrow['accountname'], ENT_QUOTES,'UTF-8', false) . '</option>'; } else { echo '<option value="' . $myrow['accountcode'] . '">' . $myrow['accountcode'].' - ' .htmlspecialchars($myrow['accountname'], ENT_QUOTES,'UTF-8', false) . '</option>'; Modified: trunk/StockAdjustments.php =================================================================== --- trunk/StockAdjustments.php 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/StockAdjustments.php 2014-07-16 10:42:39 UTC (rev 6789) @@ -108,7 +108,7 @@ } if($_POST['Quantity'] != 0){//To prevent from serilised quantity changing to zero $_SESSION['Adjustment' . $identifier]->Quantity = filter_number_format($_POST['Quantity']); - if(count($_SESSION['Adjustment' . $identifier]->SerialItems) == 0 AND $_SESSION['Adjustment' . $identifier]->Controlled == 1 ){/* There is no quantity available for controlled items */ + if(count($_SESSION['Adjustment' . $identifier]->SerialItems) == 0 AND $_SESSION['Adjustment' . $identifier]->Controlled == 1 ){/* There is no quantity available for controlled items */ $_SESSION['Adjustment' . $identifier]->Quantity = 0; } } @@ -210,29 +210,27 @@ // There must actually be some error this should never happen $QtyOnHandPrior = 0; } - $SQL = "INSERT INTO stockmoves (stockid, - type, - transno, - loccode, - trandate, - prd, - reference, - qty, - newqoh) - VALUES ( - '" . $_SESSION['Adjustment' . $identifier]->StockID . "', - 17, - '" . $AdjustmentNumber . "', - '" . $_SESSION['Adjustment' . $identifier]->StockLocation . "', - '" . $SQLAdjustmentDate . "', - '" . $PeriodNo . "', - '" . $_SESSION['Adjustment' . $identifier]->Narrative ."', - '" . $_SESSION['Adjustment' . $identifier]->Quantity . "', - '" . ($QtyOnHandPrior + $_SESSION['Adjustment' . $identifier]->Quantity) . "' - )"; + type, + transno, + loccode, + trandate, + prd, + reference, + qty, + newqoh, + standardcost) + VALUES ('" . $_SESSION['Adjustment' . $identifier]->StockID . "', + 17, + '" . $AdjustmentNumber . "', + '" . $_SESSION['Adjustment' . $identifier]->StockLocation . "', + '" . $SQLAdjustmentDate . "', + '" . $PeriodNo . "', + '" . $_SESSION['Adjustment' . $identifier]->Narrative ."', + '" . $_SESSION['Adjustment' . $identifier]->Quantity . "', + '" . ($QtyOnHandPrior + $_SESSION['Adjustment' . $identifier]->Quantity) . "', + '" . $_SESSION['Adjustment' . $identifier]->StandardCost . "')"; - $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' . _('The stock movement record cannot be inserted because'); $DbgMsg = _('The following SQL to insert the stock movement record was used'); $Result = DB_query($SQL, $db, $ErrMsg, $DbgMsg, true); @@ -383,7 +381,7 @@ $mail->setText($ConfirmationText); $result = SendmailBySmtp($mail,array($_SESSION['InventoryManagerEmail'])); } - + } $StockID = $_SESSION['Adjustment' . $identifier]->StockID; unset ($_SESSION['Adjustment' . $identifier]); Modified: trunk/SupplierTypes.php =================================================================== --- trunk/SupplierTypes.php 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/SupplierTypes.php 2014-07-16 10:42:39 UTC (rev 6789) @@ -19,8 +19,9 @@ $Errors = array(); echo '<p class="page_title_text"><img src="'.$RootPath.'/css/'.$Theme.'/images/maintenance.png" title="' . _('Supplier Types') - . '" alt="" />' . _('Supplier Type Setup') . '</p>'; -echo '<div class="page_help_text">' . _('Add/edit/delete Supplier Types') . '</div><br />'; + . '" alt="" />' . _('Supplier Type Setup') . '</p> + <div class="page_help_text">' . _('Add/edit/delete Supplier Types') . '</div> + <br />'; if (isset($_POST['submit'])) { @@ -46,12 +47,12 @@ $i++; } - $checksql = "SELECT count(*) + $CheckSQL = "SELECT count(*) FROM suppliertype WHERE typename = '" . $_POST['TypeName'] . "'"; - $checkresult=DB_query($checksql, $db); - $checkrow=DB_fetch_row($checkresult); - if ($checkrow[0]>0) { + $CheckResult=DB_query($CheckSQL, $db); + $CheckRow=DB_fetch_row($CheckResult); + if ($CheckRow[0]>0) { $InputError = 1; echo prnMsg(_('You already have a supplier type called').' '.$_POST['TypeName'],'error'); $Errors[$i] = 'SupplierName'; @@ -64,37 +65,19 @@ SET typename = '" . $_POST['TypeName'] . "' WHERE typeid = '" . $SelectedType . "'"; - $msg = _('The supplier type') . ' ' . $SelectedType . ' ' . _('has been updated'); - } elseif ( $InputError !=1 ) { + prnMsg(_('The supplier type') . ' ' . $SelectedType . ' ' . _('has been updated'),'success'); + } elseif ($InputError !=1){ + // Add new record on submit - // First check the type is not being duplicated + $sql = "INSERT INTO suppliertype + (typename) + VALUES ('" . $_POST['TypeName'] . "')"; - $checkSql = "SELECT count(*) - FROM suppliertype - WHERE typeid = '" . $_POST['TypeID'] . "'"; - $checkresult = DB_query($checkSql,$db); - $checkrow = DB_fetch_row($checkresult); - - if ( $checkrow[0] > 0 ) { - $InputError = 1; - prnMsg( _('The supplier type ') . $_POST['TypeID'] . _(' already exist.'),'error'); - } else { - - // Add new record on submit - - $sql = "INSERT INTO suppliertype - (typename) - VALUES ('" . $_POST['TypeName'] . "')"; - - - $msg = _('Supplier type') . ' ' . $_POST['TypeName'] . ' ' . _('has been created'); - $checkSql = "SELECT count(typeid) - FROM suppliertype"; - $result = DB_query($checkSql, $db); - $row = DB_fetch_row($result); - - } + $msg = _('Supplier type') . ' ' . $_POST['TypeName'] . ' ' . _('has been created'); + $CheckSQL = "SELECT count(typeid) FROM suppliertype"; + $result = DB_query($CheckSQL, $db); + $row = DB_fetch_row($result); } if ( $InputError !=1) { @@ -102,7 +85,7 @@ $result = DB_query($sql,$db); - // Fetch the default price list. + // Fetch the default supplier type $sql = "SELECT confvalue FROM config WHERE confname='DefaultSupplierType'"; @@ -111,14 +94,14 @@ $DefaultSupplierType = $SupplierTypeRow[0]; // Does it exist - $checkSql = "SELECT count(*) + $CheckSQL = "SELECT count(*) FROM suppliertype WHERE typeid = '" . $DefaultSupplierType . "'"; - $checkresult = DB_query($checkSql,$db); - $checkrow = DB_fetch_row($checkresult); + $CheckResult = DB_query($CheckSQL,$db); + $CheckRow = DB_fetch_row($CheckResult); // If it doesnt then update config with newly created one. - if ($checkrow[0] == 0) { + if ($CheckRow[0] == 0) { $sql = "UPDATE config SET confvalue='" . $_POST['TypeID'] . "' WHERE confname='DefaultSupplierType'"; @@ -126,8 +109,6 @@ $_SESSION['DefaultSupplierType'] = $_POST['TypeID']; } - prnMsg($msg,'success'); - unset($SelectedType); unset($_POST['TypeID']); unset($_POST['TypeName']); Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/doc/Change.log 2014-07-16 10:42:39 UTC (rev 6789) @@ -1,5 +1,7 @@ webERP Change Log -03/07/14 Exson: Make status comments available in PO_OrderDetails.php to ensure that some important data such as grn reversing can be viewed. And add a return previous page link. + +16/7/14 Andrew Galuski: Add standard cost to stock movement record for stock adjustments +03/07/14 Exson: Make status comments available in PO_OrderDetails.php to ensure that some important data such as grn reversing can be viewed. And add a return previous page link. 27/06/14 RChacon: Add code-comments, $ViewTopic, $BookMark, page_title_text and code to update NewStockID if OldStockID and SelectedStockItem are the same in Z_ChangeStockCode.php. Add id to the "Change An Inventory Item Code" topic anchor in ManualSpecialUtilities.html. 27/06/14 Exson: Make tel length in PO_Header.php is as same as field definition in sql. 26/06/14 Exson: Fixed the bug that Select Customers search result inconsistence with Customer receipt search result in SelectCustomer.php. @@ -9,11 +11,11 @@ 22/06/14 Tim: Replace now() with CURRENT_TIMESTAMP in MRP.php to get time stamp to meet ANSI standard. 22/06/14 Exson: Fixed the mrp parameters runtime to datetime instead of date format since MRP running records need more precision. 22/06/14 Benjamin (bpiltz2302) from web-ERP-users mail list report and provide the solution for MRP LevelNetting unusual exit bug. The details can be found here: http://weberp-accounting.1478800.n4.nabble.com/MRP-Error-LevelNetting-td4657425.html -21/06/14 Exson: Add location check in StockAdjustments.php to prevent from users selecting controlled items based on one location but changed the location before submit it to server which make serial not exist check absolutely failed. +21/06/14 Exson: Add location check in StockAdjustments.php to prevent from users selecting controlled items based on one location but changed the location before submit it to server which make serial not exist check absolutely failed. 17/06/14 Exson: Add Z_ImportDebtors.php into Utilities menu and scripts table. -15/06/14 Akits from minghao.hk/bbs/ fixed the bugs that www_Users.php allowed modules does not matched the one displayed in index.php. +15/06/14 Akits from minghao.hk/bbs/ fixed the bugs that www_Users.php allowed modules does not matched the one displayed in index.php. 11/06/2014 Exson: Fixed the exported csv files with wrong aligned fields due to comma as part of fields content. -09/06/2014 Exson: Fixed the Delivery Date lossing bugs when change Warehouse. Reported by akits from minghao.hk(weberp) bbs. +09/06/2014 Exson: Fixed the Delivery Date lossing bugs when change Warehouse. Reported by akits from minghao.hk(weberp) bbs. 2/6/14 Phil: Added bom effectivity dates into work order creation cost calculations - as spotted by Andrew Galuski 1/6/14 Phil: Fixed bug in POItems.php that resulted in an SQL error when the number of items from the search was zero after previous searches had returned records 27/05/14 RChacon: Add page title text and icon to import scripts. Page title text = menu option. @@ -21,7 +23,7 @@ 27/05/14 Exson: Add Sales man login control for PDFOrderStatus.php 26/05/14 Thumb: Fixed discount modifier missing bug in SelectOrderItems.php. 26/05/14 rchacon: Fixes other problems related to updating translations of the items description.. -22/05/14 newuser990(from webERP forum): fixed bugs in MRP.php that quantity which stated in PO with lines not completed but PO status marked Completed are calculated as supplies. Exson add PO order lines checked to avoid same problem. +22/05/14 newuser990(from webERP forum): fixed bugs in MRP.php that quantity which stated in PO with lines not completed but PO status marked Completed are calculated as supplies. Exson add PO order lines checked to avoid same problem. 22/5/14 Tim: Currencies.php now allows FunctionalCurrency to be modified 22/5/14 Phil: Prevent use of enter key - experimental - in number fields - prevents users from losing data in big forms where they are entering large amounts of data e.g. purchase ordering - maybe we should consider for integer fields too? 22/5/14 Ricard/Phil: Tidy up SQL in StockClone.php @@ -30,7 +32,7 @@ 18/5/14 Exson: Tidy up SelectSalesOrder.php SQL code and add Thumb's salesman login control and fixed bugs caused by no group by statements for customer and items selected. 17/05/14 Phil: sales invoice and credit scripts all check for 0 exchange rate before updating sales anlaysis now 17/05/14 Phil: Fixed Z_ChangeStockCode.php which was orphaning stockdescriptiontranslations without changing them to the new code -14/05/14 Exson: Fixed typo in MRPReport.php which make some supplies not to be shown on the report and use itemdue instead of deliverydate in MRP to ensure that requirements are calculated correctly for items due on different date. +14/05/14 Exson: Fixed typo in MRPReport.php which make some supplies not to be shown on the report and use itemdue instead of deliverydate in MRP to ensure that requirements are calculated correctly for items due on different date. 3/5/14 Khwunchai J.: New Xenos theme 3/5/14 Phil: StockCostUpdate.php now allows updates to manufactured items. 29/4/14 Exson: Make price matrix workable including GetPrice.inc, MainMenuLinksArray.php,SelectOrderItems_IntoCart.inc,PriceMatrix.php, SelectProduct.php,StockDispatch.php. @@ -49,13 +51,13 @@ 28/03/14 Exson: Fixed the Expiry Date not handled right during stocks adjustments by manual key in or bar code scan in Add_SerialItems.php, DefineSerialItems.php,InputSerialItems.php and InputSerialItemsKeyed.php. 26/3/14 Serakfalcon: fixed findLogoFile function in includes/session.inc 24/3/14 Phil: Removed DefaultTheme configuration parameter - unecessary as noted by Serafalcon -23/03/14 Exson: Fixed the no defined variable bugs in WorkOrderIssue.php. Reported by Tim. -23/03/14 Exson: Fixed the bug that the search results shows only limited to DisplayRecordsMax which does not make sense due to pagination in WorkOrderIssue.php. +23/03/14 Exson: Fixed the no defined variable bugs in WorkOrderIssue.php. Reported by Tim. +23/03/14 Exson: Fixed the bug that the search results shows only limited to DisplayRecordsMax which does not make sense due to pagination in WorkOrderIssue.php. 23/03/14 Exson: Fixed that currency name not available in Prices.php. -22/03/14 Exson: Fixed the stock searching function failure when items setup in system less than DisplayedRecordsMax in WorkOrderEntry.php. -21/03/14 Exson: Fixed that bugs in WorkOrderIssue.php that the issued non BOM materials not shown. And fixed bugs in WorkOrderStatus.php failed to retrieve item description. +22/03/14 Exson: Fixed the stock searching function failure when items setup in system less than DisplayedRecordsMax in WorkOrderEntry.php. +21/03/14 Exson: Fixed that bugs in WorkOrderIssue.php that the issued non BOM materials not shown. And fixed bugs in WorkOrderStatus.php failed to retrieve item description. 20/3/14 Exson: Fixed the bugs in StockCounts that Location set does not work and link typo. -19/3/14 Tim: Fixed the bug Items Other than those in BOM are not listed in Status of Work Order even if issued. Exson made a little revision to keep SQL query only once for those additional issued materials. Reported by newuesr990 from weberp forum. +19/3/14 Tim: Fixed the bug Items Other than those in BOM are not listed in Status of Work Order even if issued. Exson made a little revision to keep SQL query only once for those additional issued materials. Reported by newuesr990 from weberp forum. 18/03/14 Exson: Fixed the bugs in GoodsReceived.php which will leads to duplicated goods receiving. 17/3/14 rchacon: Allow translations of tax category Freight 15/3/14 Phil: Z_ChangeStockCategory.php was not updating sales analysis records correctly - fixed Modified: trunk/doc/Manual/ManualRequirements.html =================================================================== --- trunk/doc/Manual/ManualRequirements.html 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/doc/Manual/ManualRequirements.html 2014-07-16 10:42:39 UTC (rev 6789) @@ -6,7 +6,7 @@ <p>Each client connection to the web server and database engine will also consume RAM so the more connections the larger the RAM requirement. Similarly disk space required is a function of the volume of customers, suppliers and transactions. Suffice it to say that due to the efficiency of the components of the system the demands on the hardware are exceptionally light by client server application standards.</p> -<p>As a guide, an installation for up to 50 simultaneous users could consist of the following: a Linux operating system, an Apache web server, an entry level server with 2Gig RAM and a 100 Megabit network card. This would provide more than adequate performance. A small NAS or SAN with disk redundancy would be preferred in larger installations. With multiple servers with with SMP, load balancing, a separate database server, and large amounts of RAM the limit on database size and the number can be scaled to the most demanding businesses.</p> +<p>As a guide, an installation for up to 50 simultaneous users could consist of the following: a Linux operating system, using nginx, lighthttpd, hiawatha or apache with even an entry level hardware server. This would provide more than adequate performance. A NAS or SAN with disk redundancy would be preferred in larger installations. With multiple servers with with SMP, load balancing, a separate database server, and large amounts of RAM the limit on database size and the number can be scaled to the most demanding enterprises.</p> <p>In practise most businesses will elect to outsource the hardware to a web-hosting company where dedicated servers can be rented for minimal cost. When using the hosting facilities of a 3rd party it is important to consider the infrastructure that the host has in place:</p> @@ -15,7 +15,7 @@ <li>Hardware redundancy - ie failover spare servers, disks etc</li> - <li>The safety and protection of the hosts hardware</li> + <li>The security and physical protection of the hosts hardware</li> <li>Backup power generation</li> @@ -47,12 +47,12 @@ <li><a href="http://www.mysql.com/">MySQL</a>-Max with Innodb transactional tables support. Innodb was introduced in 2001 to MySQL and has Oracle like functionality – with similar speed. MySQL later than version 4 has Innodb tables in by default. Since MySQL represents such good value for money it has been used. An example configuration file my.cnf normally under /usr/local/mysql/var is available in the mysql documentation to show typical settings for the Innodb configuration. The expected size of the data is useful although additional data files can be created retrospectively as necessary. Note that only the tables that require transaction support are defined as Innodb tables.</li> - <li>A web server. <a href="http://www.apache.org/">Apache</a> makes the most sense – but most web servers are supported by PHP in various forms.</li> + <li>A web server. webERP is tested with nginx, lighthttpd, hiawatha and <a href="http://www.apache.org/">Apache</a>, but most web servers are supported by PHP in various forms. PHP running in Fast CGI mode ensures that throughput and performance is optomised.</li> - <li>If the web server is accessible over the Internet and not just over a LAN then encrypted communications are required. The openssl and mod-ssl modules for apache can be easily used to ensure all data is transmitted in encrypted form.</li> + <li>If the web server is accessible over the Internet and not just over a LAN then encrypted communications are required. The openssl and mod-ssl modules for apache can be easily used to ensure all data is transmitted in encrypted form. Using https is strongly recommended.</li> </ul> -<p>The system could be used with many other database servers but it is tested and developed on MySQL. Independent benchmarks show that MySQL is one of the fastest for most common database tasks, particularly at establishing connections – since this is required for every page, MySQL is therefore ideally suited to the web environment. Using Apache with <a href="http://www.modssl.org/">mod_ssl</a> and <a href="http://www.openssl.org/">openssl</a> secure sockets makes sense where there is any data transmitted over the Internet and not just over a LAN.</p> +<p>The system could be used with many other database servers but it is tested and developed on MySQL. Independent benchmarks show that MySQL is one of the fastest for most common database tasks, particularly at establishing connections – since this is required for every page, MySQL is therefore ideally suited to the web environment.</p> <div class="floatright"> <a class="minitext" href="#top">⬆ Top</a> Modified: trunk/doc/Manual/ManualSpecialUtilities.html =================================================================== --- trunk/doc/Manual/ManualSpecialUtilities.html 2014-07-07 06:09:40 UTC (rev 6788) +++ trunk/doc/Manual/ManualSpecialUtilities.html 2014-07-16 10:42:39 UTC (rev 6789) @@ -2,7 +2,7 @@ <p>Any of these programs should only be run by the individual in the business who is allocated the task of administering the system, who has a thorough understanding of the system. If in doubt seek advice. Many of these utilities perform major changes to the database and it is always advisable to have a backup before attempting to run one. All these utilities have a page security setting of 15 by default (see security schema).</p> -<p>There are no links to the Utility menu so casual browsers cannot stumble upon this page even if they had the security privileges. The URL must be entered manually to Z_index.php. All utlity pages are prefixed with a Z_.</p> +<p>The Utility menu is a separate module so access can be turned off to hide these utility script links by turning off the Utilities module in user settings. All utlity pages are prefixed with a Z_.</p> <h2>Re-Apply Standard Costs to Sales Analysis</h2> @@ -14,15 +14,15 @@ <h2>Change A Customer Code</h2> -<p>This page requires the entry of an existing customer code and the new customer code. The system checks to see the new code entered doesn't already exist and that the code entered for the existing customer does exist. If all is well then the customer code data is changed in all tables through-out the system that refer to the customer code. Due to the extensive changes taking place throughout the database this utility should not be run during normal operating hours.</p> +<p>This page requires the entry of an existing customer code and the new customer code. The system checks to see the new code entered doesn't already exist and that the code entered for the existing customer does exist. If all is well then the customer code data is changed in all tables throughout the system that refer to the customer code. Due to the extensive changes taking place throughout the database this utility should not be run during normal operating hours when others are using the system.</p> <h2><a id="Z_ChangeStockCode">Change An Inventory Item Code</a></h2> -<p>This page requires the entry of an existing stock code and the new stock code. The system checks to see the new code entered doesn't already exist and that the code entered for the existing item does exist. If all is well then the stock code data is changed in all tables through-out the system. Sales analysis, stock movements, stock locations, Bills of Material, parent and component items, sales order details and purchase order details as well as the Stock Master, pricing and shipment charges. Due to the extensive changes taking place throughout the database this utility should not be run during normal operating hours.</p> +<p>This page requires the entry of an existing stock code and the new stock code. The system checks to see the new code entered doesn't already exist and that the code entered for the existing item does exist. If all is well then the stock code data is changed in all tables through-out the system. Sales analysis, stock movements, stock locations, Bills of Material, parent and component items, sales order details and purchase order details as well as the Stock Master, pricing and shipment charges. Due to the extensive changes taking place throughout the database this utility should not be run during normal operating hours, when others are using the system.</p> <h2>Make Stock Locations</h2> -<p>If the inventory database is imported from some other system, the stock location records can be created for all locations currently defined by running the script Z_MakeStockLocns.php.</p> +<p>If the inventory database is imported from some other system, the stock location records can be created for all locations currently defined by running the script Z_MakeStockLocns.php. Inventory items will not appear on searches during entry of sales orders until their corresponding inventory locations records exist.</p> <p></p> |