This list is closed, nobody may subscribe to it.
2011 |
Jan
(14) |
Feb
(42) |
Mar
(56) |
Apr
(60) |
May
(54) |
Jun
(48) |
Jul
(74) |
Aug
(52) |
Sep
(68) |
Oct
(64) |
Nov
(42) |
Dec
(62) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
(142) |
Feb
(270) |
Mar
(374) |
Apr
(230) |
May
(214) |
Jun
(116) |
Jul
(234) |
Aug
(66) |
Sep
(120) |
Oct
(16) |
Nov
(17) |
Dec
(41) |
2013 |
Jan
(19) |
Feb
(18) |
Mar
(8) |
Apr
(40) |
May
(121) |
Jun
(42) |
Jul
(127) |
Aug
(145) |
Sep
(27) |
Oct
(38) |
Nov
(83) |
Dec
(61) |
2014 |
Jan
(33) |
Feb
(35) |
Mar
(59) |
Apr
(41) |
May
(38) |
Jun
(45) |
Jul
(17) |
Aug
(58) |
Sep
(46) |
Oct
(51) |
Nov
(55) |
Dec
(36) |
2015 |
Jan
(57) |
Feb
(67) |
Mar
(70) |
Apr
(34) |
May
(32) |
Jun
(11) |
Jul
(3) |
Aug
(17) |
Sep
(16) |
Oct
(13) |
Nov
(30) |
Dec
(30) |
2016 |
Jan
(17) |
Feb
(12) |
Mar
(17) |
Apr
(20) |
May
(47) |
Jun
(15) |
Jul
(13) |
Aug
(30) |
Sep
(32) |
Oct
(20) |
Nov
(32) |
Dec
(24) |
2017 |
Jan
(16) |
Feb
|
Mar
(11) |
Apr
(11) |
May
(5) |
Jun
(42) |
Jul
(9) |
Aug
(10) |
Sep
(14) |
Oct
(15) |
Nov
(2) |
Dec
(29) |
2018 |
Jan
(28) |
Feb
(49) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ex...@us...> - 2016-09-24 10:24:38
|
Revision: 7630 http://sourceforge.net/p/web-erp/reponame/7630 Author: exsonqu Date: 2016-09-24 10:24:36 +0000 (Sat, 24 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-24 10:23:35 UTC (rev 7629) +++ trunk/doc/Change.log 2016-09-24 10:24:36 UTC (rev 7630) @@ -1,5 +1,6 @@ webERP Change Log +24/09/16 Exson: Fixed the AddTextWrap missing characters errors when there is space and make it more reliable. 21/09/16 RChacon: In SuppWhereAlloc.php, accepts the payment multiple creditors. In CustWhereAlloc.php, accepts the receipt of multiple debtors. 18/09/16 RChacon: Add style to describe how button image should be displayed. Clean up Xenos css. 18/09/16 Exson: Add multiple items issue for non-controlled items feature to Work Orders in WorkOrderIssue.php. |
From: <ex...@us...> - 2016-09-24 10:23:38
|
Revision: 7629 http://sourceforge.net/p/web-erp/reponame/7629 Author: exsonqu Date: 2016-09-24 10:23:35 +0000 (Sat, 24 Sep 2016) Log Message: ----------- 24/09/16 Exson: Fixed the AddTextWrap missing characters errors when there is space and make it more reliable. Modified Paths: -------------- trunk/includes/class.pdf.php Modified: trunk/includes/class.pdf.php =================================================================== --- trunk/includes/class.pdf.php 2016-09-21 16:14:21 UTC (rev 7628) +++ trunk/includes/class.pdf.php 2016-09-24 10:23:35 UTC (rev 7629) @@ -120,7 +120,7 @@ $s=str_replace("\r",'',$Text); $s=str_replace("\n",' ',$s); $s = trim($s).' '; - $nb=mb_strlen($s); + $nb=mb_strlen($s,'UTF-8'); $b=0; if ($border) { if ($border==1) { @@ -129,13 +129,13 @@ $b2='LR'; } else { $b2=''; - if(is_int(mb_strpos($border,'L'))) { + if(is_int(mb_strpos($border,'L',0,'UTF-8'))) { $b2.='L'; } - if(is_int(mb_strpos($border,'R'))) { + if(is_int(mb_strpos($border,'R',0,'UTF-8'))) { $b2.='R'; } - $b=is_int(mb_strpos($border,'T')) ? $b2.'T' : $b2; + $b=is_int(mb_strpos($border,'T',0,'UTF-8')) ? $b2.'T' : $b2; } } $sep=-1; @@ -146,7 +146,7 @@ while($i<$nb) { /*$c=$s{$i};*/ $c=mb_substr($s, $i, 1, 'UTF-8'); - if($c==' ' AND $i>0) { + if($c===' ' AND $i>0) { $sep=$i; $ls=$l; $ns++; @@ -169,17 +169,17 @@ $this->ws=0; $this->_out('0 Tw'); } - $sep = $i; } else { if($Align=='J') { $this->ws=($ns>1) ? ($wmax-$ls)/($ns-1) : 0; $this->_out(sprintf('%.3f Tw',$this->ws*$this->k)); } } + $sep = $i; $this->Cell($Width,$Height,mb_substr($s,0,$sep,'UTF-8'),$b,2,$Align,$fill); $this->x=$this->lMargin; - return mb_substr($s, $sep,null,'UTF-8'); + return mb_substr($s, $sep,$nb-$sep,'UTF-8'); }// End function addTextWrap. function addInfo($label, $value) { |
From: <rc...@us...> - 2016-09-21 16:14:24
|
Revision: 7628 http://sourceforge.net/p/web-erp/reponame/7628 Author: rchacon Date: 2016-09-21 16:14:21 +0000 (Wed, 21 Sep 2016) Log Message: ----------- In SuppWhereAlloc.php, accepts the payment multiple creditors. In CustWhereAlloc.php, accepts the receipt of multiple debtors. Modified Paths: -------------- trunk/CustWhereAlloc.php trunk/SuppWhereAlloc.php trunk/doc/Change.log Removed Paths: ------------- trunk/css/xenos/.goutputstream-RI22EX trunk/css/xenos/images/allocation.gif Modified: trunk/CustWhereAlloc.php =================================================================== --- trunk/CustWhereAlloc.php 2016-09-19 03:55:49 UTC (rev 7627) +++ trunk/CustWhereAlloc.php 2016-09-21 16:14:21 UTC (rev 7628) @@ -79,7 +79,7 @@ } $result = DB_query($sql ); - if(DB_num_rows($result)==1) { + if(DB_num_rows($result) > 0) { $myrow = DB_fetch_array($result); $AllocToID = $myrow['id']; $CurrCode = $myrow['currcode']; Modified: trunk/SuppWhereAlloc.php =================================================================== --- trunk/SuppWhereAlloc.php 2016-09-19 03:55:49 UTC (rev 7627) +++ trunk/SuppWhereAlloc.php 2016-09-21 16:14:21 UTC (rev 7628) @@ -79,7 +79,7 @@ } $result = DB_query($sql); - if(DB_num_rows($result)==1) { + if(DB_num_rows($result) > 0) { $myrow = DB_fetch_array($result); $AllocToID = $myrow['id']; $CurrCode = $myrow['currcode']; Deleted: trunk/css/xenos/.goutputstream-RI22EX =================================================================== --- trunk/css/xenos/.goutputstream-RI22EX 2016-09-19 03:55:49 UTC (rev 7627) +++ trunk/css/xenos/.goutputstream-RI22EX 2016-09-21 16:14:21 UTC (rev 7628) @@ -1,544 +0,0 @@ -/*** - -Xenos Theme -by Khwunchai J. - -Xenos is a very clean and elegant theme design for WebERP -based on the theme "Fresh" credited for the original designer. - -NOTE: -This CSS is not yet optimized. Some styles maybe redundant and not supported by some browser. - -***/ - -body { - font-family:Arial, Verdana, Helvetica, sans-serif; - font-size:10pt; - margin:0; - padding:0; - background:#F1F1F1; -} - -/*** Default Styles ***/ -a { - color:#0088CD; - text-decoration:none; -} -a:hover { - color:#0088CD; - text-decoration:underline; -} - -img { - border:none; - vertical-align:middle; -} -p.page_title_text { - padding-top:2px; - padding-bottom:2px; - font-size:18px; - color:black; - width:60%; - text-align:center; - margin:10px auto; -} -p.good { - font-weight:bold; - color:green; -} -p.bad { - font-weight:bold; - color:red; -} -table { - background-color:white; - margin:0 auto; - width:100% - border-collapse:collapse; - border-spacing:0; - border:thin solid #B3B3B3; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - background-color:white; -} -table.selection { -} -th { - font-weight:bold; - color:#2C2C2C; - text-align:center; - border-bottom:thin solid #B3B3B3; -} -th.number { - text-align:right; - font-weight:normal; - background-color:#800000; - color:white; -} -th.ascending { - cursor:s-resize; -} -th.descending { - cursor:n-resize; -} -th:after { - content:""; - float:right; - margin-top:7px; - visibility:hidden; -} -th.ascending:after { - border-width:0 4px 4px; - border-style:solid; - border-color:#000 transparent; - visibility:visible; -} -th.descending:after { - border-bottom:none; - border-left:4px solid transparent; - border-right:4px solid transparent; - border-top:4px solid #000; - visibility:visible; -} -td { - text-align:left; - color:#575757; -} -td.select { - /*background-color:#eee;*/ -} -td.number { - text-align:right; -} -div.centre { - margin:0 auto; - text-align:center; -} -input { -} -input.number{ - text-align:right; -} -input.image { - border-width:0px; - background-color:transparent; -} -input:hover{ -} -select { - font-family:Arial, Verdana, Helvetica, sans-serif;; - font-size:12px; - border:thin solid #C3C3C3; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - padding:4px 8px; -} -input.inputerror, input.error, select.error, select.selecterror, label.error { - color:red; - border:2px solid red; -} -input:required, select:required, textarea:required { - background-color:lightyellow; -} -input[type='text'], input[type='tel'], input[type='password'] { - border:thin solid #C3C3C3; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - padding:4px 8px; -} -input[type='submit'] { - background-color:#34a7e8; - border:thin outset #1992DA; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - padding:6px 24px; - vertical-align:middle; - font-weight:bold; - color:#FFFFFF; - box-shadow:1px 1px 1px #64BEF1 inset; -} -textarea{ - border:thin solid #C3C3C3; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - padding:4px 8px; -} -textarea:hover{ -} -.EvenTableRows { - background-color:#72824D; -} -.OddTableRows { - background-color:#CAF17C; -} - -div.error { - color:red; -} -div.warn { - color:maroon; -} -div.success { - color:darkgreen; -} -div.info { - color:navy; -} -div.page_help_text { - background:lightgrey url(images/help.png) top left no-repeat; - border:#a52a2a 1px solid; - padding-top:2px; - padding-bottom:2px; - padding-left:10px; - z-index:1; - width:80%; - float:none; - visibility:visible; - margin:0 auto; - position:static; - font-weight:normal; - color:black; - text-align:center; -} - -/*** Calendar picker ***/ -#calendar{ - -} -.dpTbl { - border: solid navy 1px; -} -.dpTD { - border: 0; - width:20px; - background-color: #EEEEEE; - text-align:right; - cursor:pointer; -} -.dpDayHighlight { - border: 0; - width:20px; - background-color: yellow; - text-align:right; - cursor:pointer; -} -.dpTDHover { - border: 0; - width:20px; - background-color: #CCCCCC; - text-align:right; - cursor:pointer; -} - -/* Table type is used for UI tables type 1 */ -.table1 { - width:90%; - background: #eee; - border: 0px 0px 2px 2px #222 solid; - margin: 0 auto; -} -/* Table type is used for UI tables type 2 */ -.table2 { - width:90%; - background: #eee; - border: 0px 0px 2px 2px #222 solid; - margin: 0 auto; -} -.tableheader { - font-weight: normal; - background-color: #777C59; - color: white; -} -.notavailable { - font-weight:lighter; - font-style:italic; - color:#555555; -} -.label { - font-weight:bold; - font-style:normal; - font-size:120%; - color: #575757; -} -.table_index { - background-color: #F1FFDD; -} - - -.header { - background-image: url(""); - background-repeat: no-repeat; - background-attachment: fixed; - border: none; - margin: 0px; - padding: 0px; -} -input.inputerror { - background-color: #fddbdb; -} -textarea.texterror { - background-color: #fddbdb; -} -select.selecterror { - background-color: #fddbdb; -} -.OsRow { - background-color: #234567; - color: white; -} - -/*** CANVAS ***/ - -#CanvasDiv{ - background:#F1F1F1; - margin:0; -} - -/*** HEADER ***/ - -#HeaderDiv { - overflow:hidden; /* REQUIRED: height according to items contained */ - color:white; - font-weight:bold; - padding-left:3px; - background:#949494; - border-bottom:thin solid #7C7C7C; - height:40px; -} -#HeaderWrapDiv{ -} - -/*** HEADER - APP INFO ***/ - -#AppInfoDiv{ - float:left; /* REQUIRED: to the left */ -} -#AppInfoDiv img{ - vertical-align:middle; /* center image and text vertically */ -} -#AppInfoCompanyDiv{ - display:table-cell; /* REQUIRED: as a cell */ -} -#AppInfoUserDiv{ - display:table-cell; /* REQUIRED: as a cell */ -} -#AppInfoUserDiv a{ - color:white; - font-weight:bold; -} -#AppInfoUserDiv a:hover{ - text-decoration:none; -} -#AppInfoModuleDiv{ -} - -/*** HEADER - QUICK MENU ***/ - -#QuickMenuDiv{ - float:right; /* to the right side */ - margin-top:0.1em; -} -#QuickMenuDiv ul{ - list-style:none; /* hide the bullets */ - margin:0; -} -#QuickMenuDiv li{ - display:inline-block; /* items are inline */ - height:40px; -} - -/*** links as buttons!!! clicking anywhere in the button will activate - the link!!! ***HJ***/ - -#QuickMenuDiv li a{ - border-left:thin outset #5C5C5C; - color:white; - font-weight:bold; - padding:11px 8px; - height:40px; - display:block; -} -#QuickMenuDiv li a:hover{ - background:#444444; - border-left:thin outset #5C5C5C; - text-decoration:none; -} - -/*** BODY ***/ - -#BodyDiv { - clear:both; /* REQUIRED */ - overflow:hidden; /* REQUIRED */ - color:black; - background:#F1F1F1; - padding:5px; - text-align:center; -} -#BodyDiv table { - width:auto; /* automatic width */ - margin:0 auto; - margin-bottom:10px; -} -#BodyDiv table.selection { - background:white; - border:thin outset #D2D2D2; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - padding:5px; -} -/*#BodyDiv .centre{ - margin:0 auto 10px; - text-align:center; -}*/ - -/*** BODY - MAIN MENU ***/ - -#MainMenuDiv{ - float:left; /* REQUIRED: to the left side */ - white-space:nowrap; /* don't break text */ - text-align:center; - width:10%; - border:thin outset #4A4A4A; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - background:#949494; -} -#MainMenuDiv ul{ - list-style:none; /* REQUIRED: hide bullets */ - padding:0; /* REQUIRED: remove extra gaps (ex-bullets) */ - margin:0; -} -#MainMenuDiv li{ - list-style:none; /* REQUIRED */ - padding:0; /* REQUIRED */ -} -#MainMenuDiv li a{ /* link as button!!! not-pressed state */ - display:block; /* REQUIRED */ - padding:3px; - border-top:thin inset #1E1E1E; - color:white; - font-weight:bold; -} -#MainMenuDiv li:first-child a { - border-top: none; -} -#MainMenuDiv li a:hover{ /* link as button!!! pressed state */ - text-decoration:none; - padding:3px; - background:#444444; -} -#MainMenuDiv .main_menu_selected a{ /* the selected button */ - border:thin inset #191919; - background:#2A2A2A; - color:white; -} - -/*** BODY - SUB MENU ***/ - -#SubMenuDiv{ - display:table; /* display as table, sub menu will auto adjust width */ - width:89%; /* main menu is 10% */ - text-align:left; -} -#SubMenuDiv a:link, a:visited{ - color:#0088CD; - text-decoration:none; -} -#SubMenuDiv a:hover{ - color:#0088CD; - text-decoration:none; -} -#SubMenuDiv ul{ - list-style-type:none; /* REQUIRED: hide bullets */ - padding:0; /* REQUIRED: remove extra gaps (ex-bullets) */ - margin-left:3px; - margin-top:0; - margin-bottom:0; - border:thin outset #D2D2D2; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - background:white; /* for custom reports */ -} -#SubMenuDiv li{ - /*list-style:none;*/ /* REQUIRED: hide the bullets */ - padding:2px; -} -#SubMenuDiv li img{ - vertical-align:middle; /* verticall align icon with the text */ -} -#SubMenuDiv .menu_group_headers { - border-bottom:thin solid #DADADA; - text-align:center; - color:#2C2C2C; -} -#TransactionsDiv{ - display:table-cell; -} -#InquiriesDiv{ - display:table-cell; -} -#InquiriesDiv div{ /* default div, used for custom report header */ - /*background:#C9D392;*/ - color:black; - padding:2px; - /*border:thin outset #5A5F00;*/ -} -#InquiriesDiv body{ - background:#eee; - color:red; - padding:2px; -} -#MaintenanceDiv{ - display:table-cell; -/* float:left;*/ -/* width:32.5%; - border:thin solid black;*/ - -} -.menu_group_item p { - color:#00f; /* This is the color for bullets, I like it to be the same as the anchor color, but it's up to you */ - text-indent:-10px; /* this makes the bullet to appear as the li tag previously used */ - margin:0 0 0 12px; /* One thing that I didnÃÂôt like of the li was that it had no left margin applied */ -} - -/*** FOOTER ***/ - -#FooterDiv{ - clear:both; /* REQUIRED */ - overflow:hidden; - color:#999999; -} -#FooterDiv a{ - text-decoration:underline; - color:#999999; -} -#FooterWrapDiv{ - overflow:hidden; - padding:3px; -} -#FooterLogoDiv{ - float:right; /* right side */ - background:white; - border-radius:8px; - padding:2px; -} -#FooterLogoDiv img { - vertical-align:middle; -} -#FooterVersionDiv{ - float:left; /* left side */ - margin-top:3px; -} -#FooterTimeDiv{ - clear:left; /* below */ -} - -/*** END ***/ \ No newline at end of file Deleted: trunk/css/xenos/images/allocation.gif =================================================================== (Binary files differ) Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-19 03:55:49 UTC (rev 7627) +++ trunk/doc/Change.log 2016-09-21 16:14:21 UTC (rev 7628) @@ -1,5 +1,6 @@ webERP Change Log +21/09/16 RChacon: In SuppWhereAlloc.php, accepts the payment multiple creditors. In CustWhereAlloc.php, accepts the receipt of multiple debtors. 18/09/16 RChacon: Add style to describe how button image should be displayed. Clean up Xenos css. 18/09/16 Exson: Add multiple items issue for non-controlled items feature to Work Orders in WorkOrderIssue.php. 14/09/16 Exson: Add narrative, transaction date data to PDFOrdersInvoiced.php. |
From: <rc...@us...> - 2016-09-19 03:55:52
|
Revision: 7627 http://sourceforge.net/p/web-erp/reponame/7627 Author: rchacon Date: 2016-09-19 03:55:49 +0000 (Mon, 19 Sep 2016) Log Message: ----------- Add style to describe how button image should be displayed. Clean up Xenos css. Modified Paths: -------------- trunk/css/aguapop/default.css trunk/css/default/default.css trunk/css/fluid/default.css trunk/css/fresh/default.css trunk/css/gel/default.css trunk/css/professional/default.css trunk/css/professional-rtl/default.css trunk/css/silverwolf/default.css trunk/css/wood/default.css trunk/css/xenos/default.css trunk/doc/Change.log Removed Paths: ------------- trunk/css/xenos/images/ar.gif trunk/css/xenos/images/company.gif trunk/css/xenos/images/folders.gif trunk/css/xenos/images/inventory.gif trunk/css/xenos/images/maintenance.gif trunk/css/xenos/images/reports.gif trunk/css/xenos/images/transactions.gif Modified: trunk/css/aguapop/default.css =================================================================== --- trunk/css/aguapop/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/aguapop/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -7,7 +7,13 @@ by Hindra Joshua -*/ +*/ + +button img { + /* Describes how button image should be displayed. */ + height:32px; + width:32px; +} body { font-family:Arial, Verdana, Helvetica, sans-serif; Modified: trunk/css/default/default.css =================================================================== --- trunk/css/default/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/default/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -5,6 +5,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:16px; + width:16px; +} + body{ background-color:#ccd; font-family:Arial, Verdana, Helvetica, sans-serif; Modified: trunk/css/fluid/default.css =================================================================== --- trunk/css/fluid/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/fluid/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -8,6 +8,12 @@ Beware, the contents is currently not fluid! :D */ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body{ font-family:Arial, Verdana, Helvetica, sans-serif; font-size:10pt; Modified: trunk/css/fresh/default.css =================================================================== --- trunk/css/fresh/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/fresh/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -18,6 +18,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body { font-family: Arial, Verdana, Helvetica, sans-serif; font-size:10pt; Modified: trunk/css/gel/default.css =================================================================== --- trunk/css/gel/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/gel/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -16,6 +16,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 10pt; Modified: trunk/css/professional/default.css =================================================================== --- trunk/css/professional/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/professional/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -18,6 +18,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body { font-family: Arial, Verdana, Helvetica, sans-serif; font-size:10pt; Modified: trunk/css/professional-rtl/default.css =================================================================== --- trunk/css/professional-rtl/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/professional-rtl/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -19,6 +19,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:16px; + width:16px; +} + body { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 10px; Modified: trunk/css/silverwolf/default.css =================================================================== --- trunk/css/silverwolf/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/silverwolf/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -16,7 +16,13 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body{ font-family:Arial, Verdana, Helvetica, sans-serif; font-size:10pt; Modified: trunk/css/wood/default.css =================================================================== --- trunk/css/wood/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/wood/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -17,7 +17,13 @@ Notes: - You can remove desk.jpg and/or wood.jpg to get a new look without the textures! -*/ +*/ + +button img { + /* Describes how button image should be displayed. */ + height:24px; + width:24px; +} body{ font-family:Arial, Verdana, Helvetica, sans-serif; Modified: trunk/css/xenos/default.css =================================================================== --- trunk/css/xenos/default.css 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/css/xenos/default.css 2016-09-19 03:55:49 UTC (rev 7627) @@ -11,6 +11,12 @@ ***/ +button img { + /* Describes how button image should be displayed. */ + height:21px; + width:21px; +} + body { font-family:Arial, Verdana, Helvetica, sans-serif; font-size:10pt; Deleted: trunk/css/xenos/images/ar.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/company.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/folders.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/inventory.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/maintenance.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/reports.gif =================================================================== (Binary files differ) Deleted: trunk/css/xenos/images/transactions.gif =================================================================== (Binary files differ) Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-18 08:45:31 UTC (rev 7626) +++ trunk/doc/Change.log 2016-09-19 03:55:49 UTC (rev 7627) @@ -1,5 +1,6 @@ webERP Change Log +18/09/16 RChacon: Add style to describe how button image should be displayed. Clean up Xenos css. 18/09/16 Exson: Add multiple items issue for non-controlled items feature to Work Orders in WorkOrderIssue.php. 14/09/16 Exson: Add narrative, transaction date data to PDFOrdersInvoiced.php. 14/09/16: Exson: Add order line narrative and invoices link to sales order inquiry in OrderDetails.php. |
From: <ex...@us...> - 2016-09-18 08:45:33
|
Revision: 7626 http://sourceforge.net/p/web-erp/reponame/7626 Author: exsonqu Date: 2016-09-18 08:45:31 +0000 (Sun, 18 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-18 08:44:07 UTC (rev 7625) +++ trunk/doc/Change.log 2016-09-18 08:45:31 UTC (rev 7626) @@ -1,5 +1,6 @@ webERP Change Log +18/09/16 Exson: Add multiple items issue for non-controlled items feature to Work Orders in WorkOrderIssue.php. 14/09/16 Exson: Add narrative, transaction date data to PDFOrdersInvoiced.php. 14/09/16: Exson: Add order line narrative and invoices link to sales order inquiry in OrderDetails.php. 12/09/16 Exson: Add a filter to avoid tons of zero valued gl transaction records generated in SQL_CommonFunctions.inc. |
From: <ex...@us...> - 2016-09-18 08:44:09
|
Revision: 7625 http://sourceforge.net/p/web-erp/reponame/7625 Author: exsonqu Date: 2016-09-18 08:44:07 +0000 (Sun, 18 Sep 2016) Log Message: ----------- 18/09/16 Exson: Add multiple items issue for non-controlled items feature to Work Orders in WorkOrderIssue.php. Modified Paths: -------------- trunk/WorkOrderIssue.php trunk/javascripts/MiscFunctions.js Modified: trunk/WorkOrderIssue.php =================================================================== --- trunk/WorkOrderIssue.php 2016-09-14 10:05:02 UTC (rev 7624) +++ trunk/WorkOrderIssue.php 2016-09-18 08:44:07 UTC (rev 7625) @@ -415,10 +415,214 @@ include('includes/footer.inc'); exit; } //end if there were not input errors reported - so the processing was allowed to continue -} //end of if the user hit the process button +}//end of if the user hit the process button + elseif (isset($_POST['ProcessMultiple'])){ + $IssueItems = array(); + foreach ($_POST as $key=>$value) { + if (strpos($key,'IssueQty') !==false AND abs(filter_number_format($value))>0) { + $No = substr($key,8); + $InputError = false; //ie assume no problems for a start - ever the optomist + $ErrMsg = _('Could not retrieve the details of the selected work order item'); + $WOResult = DB_query("SELECT workorders.loccode, + locations.locationname, + workorders.closed, + stockcategory.wipact, + stockcategory.stockact + FROM workorders INNER JOIN locations + ON workorders.loccode=locations.loccode + INNER JOIN woitems + ON workorders.wo=woitems.wo + INNER JOIN stockmaster + ON woitems.stockid=stockmaster.stockid + INNER JOIN stockcategory + ON stockmaster.categoryid=stockcategory.categoryid + WHERE woitems.stockid='" . $_POST['StockID'] . "' + AND woitems.wo='" . $_POST['WO'] . "'", + $ErrMsg); + if (DB_num_rows($WOResult)==0){ + prnMsg(_('The selected work order item cannot be retrieved from the database'),'info'); + include('includes/footer.inc'); + exit; + } + $WORow = DB_fetch_array($WOResult); + if ($WORow['closed']==1){ + prnMsg(_('The work order is closed - no more materials or components can be issued to it.'),'error'); + $InputError=true; + } + $QuantityIssued = filter_number_format($value);; + //Need to get the current standard cost for the item being issued + $SQL = "SELECT materialcost+labourcost+overheadcost AS cost, + controlled, + serialised, + mbflag + FROM stockmaster + WHERE stockid='" .$_POST['Item'.$No] . "'"; + $Result = DB_query($SQL); + $IssueItemRow = DB_fetch_array($Result); + if ($IssueItemRow['cost']==0){ + prnMsg(_('The item being issued has a zero cost. The issue will still be processed '),'warn'); + } + if ($_SESSION['ProhibitNegativeStock']==1 + AND ($IssueItemRow['mbflag']=='M' OR $IssueItemRow['mbflag']=='B')){ + $SQL = "SELECT quantity FROM locstock + WHERE stockid ='" . $_POST['IssueItem'] . "' + AND loccode ='" . $_POST['FromLocation'] . "'"; + $CheckNegResult = DB_query($SQL); + $CheckNegRow = DB_fetch_row($CheckNegResult); + if ($CheckNegRow[0]<$QuantityIssued){ + $InputError = true; + prnMsg(_('This issue cannot be processed because the system parameter is set to prohibit negative stock and this issue would result in stock going into negative. Please correct the stock first before attempting another issue'),'error'); + } + }//end of negative inventory check + $IssueItems[] = array('item'=>$_POST['Item' . $No],'qty'=> $QuantityIssued,'mbflag'=>$IssueItemRow['mbflag'],'cost'=>$IssueItemRow['cost']); + }//end of validation + } + if (isset($InputError) AND $InputError==false){ +/************************ BEGIN SQL TRANSACTIONS ************************/ + $Result = DB_Txn_Begin(); + /*Now Get the next WO Issue transaction type 28 - function in SQL_CommonFunctions*/ + $WOIssueNo = GetNextTransNo(28, $db); + $PeriodNo = GetPeriod(Date($_SESSION['DefaultDateFormat']), $db); //backdate + $SQLIssuedDate = FormatDateForSQL($_POST['IssuedDate']); + foreach ($IssueItems as $key=>$itm) { + $_POST['IssueItem'] = $itm['item']; + $QuantityIssued = $itm['qty']; + $IssueItemRow['mbflag'] = $itm['mbflag']; + $StockGLCode = GetStockGLCode($_POST['IssueItem'],$db); + $IssueItemRow['cost'] = $itm['cost']; + if ($IssueItemRow['mbflag']=='M' OR $IssueItemRow['mbflag']=='B'){ + /* Need to get the current location quantity will need it later for the stock movement */ + $SQL="SELECT locstock.quantity + FROM locstock + WHERE locstock.stockid='" . $_POST['IssueItem'] . "' + AND loccode= '" . $_POST['FromLocation'] . "'"; + $Result = DB_query($SQL); + if (DB_num_rows($Result)==1){ + $LocQtyRow = DB_fetch_row($Result); + $NewQtyOnHand = ($LocQtyRow[0] - $QuantityIssued); + } else { + /*There must actually be some error this should never happen */ + $NewQtyOnHand = 0; + } + + $SQL = "UPDATE locstock + SET quantity = locstock.quantity - " . $QuantityIssued . " + WHERE locstock.stockid = '" . $_POST['IssueItem'] . "' + AND loccode = '" . $_POST['FromLocation'] . "'"; + + $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' . _('The location stock record could not be updated because'); + $DbgMsg = _('The following SQL to update the location stock record was used'); + $Result = DB_query($SQL, $ErrMsg, $DbgMsg, true); + } else { + $NewQtyOnHand =0; //since we can't have stock of labour type items!! + } + /*Insert stock movements - with unit cost */ + $SQL = "INSERT INTO stockmoves (stockid, + type, + transno, + loccode, + trandate, + userid, + price, + prd, + reference, + qty, + standardcost, + newqoh) + VALUES ('" . $_POST['IssueItem'] . "', + 28, + '" . $WOIssueNo . "', + '" . $_POST['FromLocation'] . "', + '" . FormatDateForSQL($_POST['IssuedDate']) . "', + '" . $_SESSION['UserID'] . "', + '" . $IssueItemRow['cost'] . "', + '" . $PeriodNo . "', + '" . $_POST['WO'] . "', + '" . -$QuantityIssued . "', + '" . $IssueItemRow['cost'] . "', + '" . $NewQtyOnHand . "')"; + $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' . _('stock movement records could not be inserted when processing the work order issue because'); + $DbgMsg = _('The following SQL to insert the stock movement records was used'); + $Result = DB_query($SQL, $ErrMsg, $DbgMsg, true); + if ($_SESSION['CompanyRecord']['gllink_stock']==1){ + /*GL integration with stock is activated so need the GL journals to make it so */ + /*first the debit the WIP of the item being manufactured from the WO + the appropriate account was already retrieved into the $StockGLCode variable as the Processing code is kicked off + it is retrieved from the stock category record of the item by a function in SQL_CommonFunctions.inc*/ + $SQL = "INSERT INTO gltrans (type, + typeno, + trandate, + periodno, + account, + narrative, + amount) + VALUES (28, + '" . $WOIssueNo . "', + '" . FormatDateForSQL($_POST['IssuedDate']) . "', + '" . $PeriodNo . "', + '" . $WORow['wipact'] . "', + '" . $_POST['WO'] . " " . $_POST['IssueItem'] . ' x ' . $QuantityIssued . " @ " . locale_number_format($IssueItemRow['cost'], $_SESSION['CompanyRecord']['decimalplaces']) . "', + '" . ($IssueItemRow['cost'] * $QuantityIssued) . "')"; + + $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' . _('The issue of the item to the work order GL posting could not be inserted because'); + $DbgMsg = _('The following SQL to insert the work order issue GLTrans record was used'); + $Result = DB_query($SQL,$ErrMsg, $DbgMsg, true); + /*now the credit Stock entry*/ + $SQL = "INSERT INTO gltrans (type, + typeno, + trandate, + periodno, + account, + narrative, + amount) + VALUES (28, + '" . $WOIssueNo . "', + '" . FormatDateForSQL($_POST['IssuedDate']) . "', + '" . $PeriodNo . "', + '" . $StockGLCode['stockact'] . "', + '" . $_POST['WO'] . " " . $_POST['IssueItem'] . ' x ' . $QuantityIssued . " @ " . locale_number_format($IssueItemRow['cost'],$_SESSION['CompanyRecord']['decimalplaces']) . "', + '" . -($IssueItemRow['cost'] * $QuantityIssued) . "')"; + + $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' . _('The stock account credit on the issue of items to a work order GL posting could not be inserted because'); + $DbgMsg = _('The following SQL to insert the stock GLTrans record was used'); + $Result = DB_query($SQL, $ErrMsg, $DbgMsg,true); + + } /* end of if GL and stock integrated and standard cost !=0 */ + + //update the wo with the new qtyrecd + $ErrMsg = _('CRITICAL ERROR') . '! ' . _('NOTE DOWN THIS ERROR AND SEEK ASSISTANCE') . ': ' ._('Could not update the work order cost issued to the work order because'); + $DbgMsg = _('The following SQL was used to update the work order'); + $UpdateWOResult =DB_query("UPDATE workorders + SET costissued=costissued+" . ($QuantityIssued*$IssueItemRow['cost']) . " + WHERE wo='" . $_POST['WO'] . "'", + $ErrMsg, + $DbgMsg, + true); + + + prnMsg(_('The issue of') . ' ' . $QuantityIssued . ' ' . _('of') . ' ' . $_POST['IssueItem'] . ' ' . _('against work order') . ' '. $_POST['WO'] . ' ' . _('has been processed'),'info'); + } //end of foreach loop; + + $Result = DB_Txn_Commit(); + + echo '<p><ul><li><a href="' . $RootPath . '/WorkOrderIssue.php?WO=' . $_POST['WO'] . '&StockID=' . $_POST['StockID'] . '">' . _('Issue more components to this work order') . '</a></li>'; + echo '<li><a href="' . $RootPath . '/SelectWorkOrder.php">' . _('Select a different work order for issuing materials and components against'). '</a></li></ul>'; + unset($_POST['WO']); + unset($_POST['StockID']); + unset($_POST['FromLocation']); + unset($_POST['Process']); + unset($_POST['SerialNos']); + /*end of process work order issues entry */ + include('includes/footer.inc'); + exit; + } //end if there were not input errors reported - so the processing was allowed to continue + }//end of multiple items input + + + /*User hit the search button looking for an item to issue to the WO */ if (isset($_POST['Search'])){ @@ -654,11 +858,13 @@ <th colspan="2">' . _('Item') . '</th> <th>' . _('Qty Required') . '</th> <th>' . _('Qty Issued') . '</th> + <th>' . _('Qty Issue') . '</th> </tr>'; $RequirmentsResult = DB_query("SELECT worequirements.stockid, stockmaster.description, stockmaster.decimalplaces, + stockmaster.controlled, autoissue, SUM(qtypu*qtyreqd) AS quantityrequired FROM worequirements INNER JOIN stockmaster @@ -678,6 +884,7 @@ $IssuedMaterials[$myrow['stockid']] = $myrow['total']; } + $i = 0; while ($RequirementsRow = DB_fetch_array($RequirmentsResult)){ if ($RequirementsRow['autoissue']==0){ echo '<tr> @@ -696,27 +903,41 @@ } echo '<td class="number">' . locale_number_format($RequirementsRow['quantityrequired'],$RequirementsRow['decimalplaces']) . '</td> - <td class="number">' . locale_number_format($IssuedAlreadyRow,$RequirementsRow['decimalplaces']) . '</td> - </tr>'; + <td class="number">' . locale_number_format($IssuedAlreadyRow,$RequirementsRow['decimalplaces']) . '</td>'; + if ($RequirementsRow['controlled'] == 0) { + echo '<td><input type="text" name="IssueQty' . $i . '" id="IssueQty' . $i . '" /></td> + <td><input type="checkbox" name="CheckQty' . $i . '" value="' . locale_number_format($RequirementsRow['quantityrequired'],$RequirementsRow['decimalplaces']) . '" onclick="AddAmount(this,\'IssueQty' . $i . '\')" /></td> + <input type="hidden" name="Item' . $i . '" value="' . $RequirementsRow['stockid'] . '" />'; + } + + echo '</tr>'; + $i++; } /* now to deal with those addtional issues of items not in BOM */ - if (count($IssuedMaterials)>0){ + if (isset($IssuedMaterials) AND count($IssuedMaterials)>0){ $IssuedStocks = implode("','",array_keys($IssuedMaterials)); $sql = "SELECT stockid, description, - decimalplaces + decimalplaces, + controlled FROM stockmaster WHERE stockid in ('" . $IssuedStocks . "')"; $ErrMsg = _('Failed to retrieve the item data'); $result = DB_query($sql,$ErrMsg); while($myrow = DB_fetch_array($result)){ echo '<tr> - <td><input type="submit" name="IssueItem" value="' . $myrow['stockid'] . '" /></td> + <td><input type="submit" name="IssueItem' . $i . '" value="' . $myrow['stockid'] . '" /></td> <td>' . $myrow['stockid'] . ' - ' . $myrow['description'] . '</td> <td class="number">0</td> - <td class="number">' . locale_number_format($IssuedMaterials[$myrow['stockid']],$myrow['decimalplaces']) . '</td> - </tr>'; + <td class="number">' . locale_number_format($IssuedMaterials[$myrow['stockid']],$myrow['decimalplaces']) . '</td>'; + if ($RequirementsRow['controlled'] == 0) { + echo '<td><input type="text" name="IssueQty' . $i . '" /></td> + <input type="hidden" name="Item' . $i . '" value="' . $myrow['stockid'] . '" />'; + } + echo '</tr>'; + $i++; + } } @@ -724,7 +945,10 @@ echo '</table> - <br />'; + <br /> + <div class="centre"> + <input type="submit" name="ProcessMultiple" value="' . _('Process Items Issued') . '" /> + </div><br/>'; $SQL="SELECT categoryid, categorydescription @@ -816,7 +1040,7 @@ $k=1; } - $IssueLink = htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '?WO=' . $_POST['WO'] . '&StockID=' . $_POST['StockID'] . '&IssueItem=' . $myrow['stockid'] . '&FromLocation=' . $_POST['FromLocation']; + $IssueLink = htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '?WO=' . $_POST['WO'] . '&StockID=' . urlencode($_POST['StockID']) . '&IssueItem=' . urlencode($myrow['stockid']) . '&FromLocation=' . $_POST['FromLocation']; printf('<td>%s</td> <td>%s</td> <td>%s</td> @@ -853,6 +1077,11 @@ $ErrMsg = _('Could not get the detail of the item being issued because'); $IssueItemResult = DB_query($sql,$ErrMsg); $IssueItemRow = DB_fetch_array($IssueItemResult); + if ($IssueItemRow['decimalplaces'] <=3) { + $VarianceAllowed = 0.0001; + } else { + $VarianceAllowed = pow(10,-(1+$IssueItemRow['decimalplaces'])); + } echo '<table class="selection"> <tr> @@ -878,7 +1107,7 @@ FROM stockserialitems WHERE stockid='" . $_POST['IssueItem'] . "' AND loccode='" . $_POST['FromLocation'] . "' - AND quantity > 0", + AND quantity > " . $VarianceAllowed, _('Could not retrieve the serial numbers available at the location specified because')); if (DB_num_rows($SerialNoResult)==0){ echo '<tr> @@ -911,7 +1140,7 @@ FROM stockserialitems WHERE stockid='" . $_POST['IssueItem'] . "' AND loccode='" . $_POST['FromLocation'] . "' - AND quantity > 0"; + AND quantity > " . $VarianceAllowed; $ErrMsg = _('Failed to retrieve lot No'); $LotResult = DB_query($LotNoSQL,$ErrMsg); if (DB_num_rows($LotResult)>0) { Modified: trunk/javascripts/MiscFunctions.js =================================================================== --- trunk/javascripts/MiscFunctions.js 2016-09-14 10:05:02 UTC (rev 7624) +++ trunk/javascripts/MiscFunctions.js 2016-09-18 08:44:07 UTC (rev 7625) @@ -355,4 +355,13 @@ if (ds[i].className=="ascending") ds[i].onclick=SortSelect; } } -window.onload=initial; \ No newline at end of file +function AddAmount(t,Target,d) { + if (t.checked) { + document.getElementById(Target).value=Number(t.value); + if(d) document.getElementById(d).required="required"; + } else { + document.getElementById(Target).value=Number(document.getElementById(Target).value)-Number(t.value); + if(d) document.getElementById(d).required=""; + } +} +window.onload=initial; |
From: <ex...@us...> - 2016-09-14 10:05:04
|
Revision: 7624 http://sourceforge.net/p/web-erp/reponame/7624 Author: exsonqu Date: 2016-09-14 10:05:02 +0000 (Wed, 14 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-14 10:03:08 UTC (rev 7623) +++ trunk/doc/Change.log 2016-09-14 10:05:02 UTC (rev 7624) @@ -1,5 +1,6 @@ webERP Change Log +14/09/16 Exson: Add narrative, transaction date data to PDFOrdersInvoiced.php. 14/09/16: Exson: Add order line narrative and invoices link to sales order inquiry in OrderDetails.php. 12/09/16 Exson: Add a filter to avoid tons of zero valued gl transaction records generated in SQL_CommonFunctions.inc. 04/09/16 Exson: Add WO items delete constraint in WorkOrderEntry.php. Thanks for Phil's reminder. |
From: <ex...@us...> - 2016-09-14 10:03:10
|
Revision: 7623 http://sourceforge.net/p/web-erp/reponame/7623 Author: exsonqu Date: 2016-09-14 10:03:08 +0000 (Wed, 14 Sep 2016) Log Message: ----------- 14/09/16 Exson: Add narrative, transaction date data to PDFOrdersInvoiced.php. Modified Paths: -------------- trunk/PDFOrdersInvoiced.php Modified: trunk/PDFOrdersInvoiced.php =================================================================== --- trunk/PDFOrdersInvoiced.php 2016-09-14 09:05:21 UTC (rev 7622) +++ trunk/PDFOrdersInvoiced.php 2016-09-14 10:03:08 UTC (rev 7623) @@ -49,7 +49,7 @@ <td>' . _('Inventory Category') . '</td> <td>'; - $sql = "SELECT categorydescription, categoryid FROM stockcategory WHERE stocktype<>'D' AND stocktype<>'L'"; + $sql = "SELECT categorydescription, categoryid FROM stockcategory"; $result = DB_query($sql); echo '<select required="required" name="CategoryID">'; @@ -362,8 +362,10 @@ $sql = "SELECT debtortrans.order_, systypes.typename, debtortrans.transno, + debtortrans.trandate, stockmoves.price *(1-stockmoves.discountpercent) AS netprice, - -stockmoves.qty AS quantity + -stockmoves.qty AS quantity, + stockmoves.narrative FROM debtortrans INNER JOIN stockmoves ON debtortrans.type = stockmoves.type AND debtortrans.transno=stockmoves.transno @@ -373,24 +375,38 @@ $InvoicesResult =DB_query($sql); if (DB_num_rows($InvoicesResult)>0){ + $LeftOvers = $pdf->addTextWrap($Left_Margin+60,$YPos,60,$FontSize,_('Date'),'center'); $LeftOvers = $pdf->addTextWrap($Left_Margin+150,$YPos,90,$FontSize,_('Transaction Number'), 'center'); $LeftOvers = $pdf->addTextWrap($Left_Margin+240,$YPos,60,$FontSize,_('Quantity'), 'center'); $LeftOvers = $pdf->addTextWrap($Left_Margin+300,$YPos,60,$FontSize,_('Price'), 'center'); $LeftOvers = $pdf->addTextWrap($Left_Margin+380,$YPos,60,$FontSize,_('Total'), 'centre'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+450,$YPos,100,$FontSize,_('Narrative'), 'centre'); $YPos -= ($line_height); } while ($InvRow=DB_fetch_array($InvoicesResult)){ $ValueInvoiced = $InvRow['netprice']*$InvRow['quantity']; + $LeftOvers = $pdf->addTextWrap($Left_Margin+60,$YPos,60,$FontSize,ConvertSQLDate($InvRow['trandate']),'center'); $LeftOvers = $pdf->addTextWrap($Left_Margin+150,$YPos,90,$FontSize,$InvRow['typename'] . ' ' . $InvRow['transno'], 'left'); $LeftOvers = $pdf->addTextWrap($Left_Margin+240,$YPos,60,$FontSize,locale_number_format($InvRow['quantity'],$myrow['decimalplaces']), 'right'); $LeftOvers = $pdf->addTextWrap($Left_Margin+300,$YPos,60,$FontSize,locale_number_format($InvRow['netprice'],$_SESSION['CompanyRecord']['decimalplaces']), 'right'); $LeftOvers = $pdf->addTextWrap($Left_Margin+360,$YPos,80,$FontSize,locale_number_format($ValueInvoiced,$_SESSION['CompanyRecord']['decimalplaces']), 'right'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+450,$YPos,100,$FontSize,$InvRow['narrative'], 'center'); + if (mb_strlen($LeftOvers)>0) { - $YPos -= ($line_height); + $YPos -= ($line_height); + if ($YPos - (2 *$line_height) < $Bottom_Margin){ + /*Then set up a new page */ + $PageNumber++; + include ('includes/PDFOrdersInvoicedPageHeader.inc'); + } /*end of new page header */ + $LeftOvers = $pdf->addTextWrap($Left_Margin+450,$YPos,100,$FontSize,$LeftOvers, 'center'); + } + $YPos -= ($line_height); + if ($YPos - (2 *$line_height) < $Bottom_Margin){ /*Then set up a new page */ $PageNumber++; |
From: <ex...@us...> - 2016-09-14 09:05:23
|
Revision: 7622 http://sourceforge.net/p/web-erp/reponame/7622 Author: exsonqu Date: 2016-09-14 09:05:21 +0000 (Wed, 14 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-14 09:04:41 UTC (rev 7621) +++ trunk/doc/Change.log 2016-09-14 09:05:21 UTC (rev 7622) @@ -1,5 +1,6 @@ webERP Change Log +14/09/16: Exson: Add order line narrative and invoices link to sales order inquiry in OrderDetails.php. 12/09/16 Exson: Add a filter to avoid tons of zero valued gl transaction records generated in SQL_CommonFunctions.inc. 04/09/16 Exson: Add WO items delete constraint in WorkOrderEntry.php. Thanks for Phil's reminder. 04/09/16 Exson: Add delete Work orders Items feature in WorkOrderEntry.php. |
From: <ex...@us...> - 2016-09-14 09:04:44
|
Revision: 7621 http://sourceforge.net/p/web-erp/reponame/7621 Author: exsonqu Date: 2016-09-14 09:04:41 +0000 (Wed, 14 Sep 2016) Log Message: ----------- 14/09/16: Exson: Add order line narrative and invoices link to sales order inquiry in OrderDetails.php. Modified Paths: -------------- trunk/OrderDetails.php Modified: trunk/OrderDetails.php =================================================================== --- trunk/OrderDetails.php 2016-09-13 08:08:29 UTC (rev 7620) +++ trunk/OrderDetails.php 2016-09-14 09:04:41 UTC (rev 7621) @@ -64,7 +64,17 @@ include('includes/footer.inc'); exit; } + //retrieve invoice number + $Invs = explode(' Inv ',$myrow['comments']); + $Inv = ''; + foreach ($Invs as $value) { + if (is_numeric($value)) { + $Inv .= '<a href="' . $RootPath . '/PrintCustTrans.php?FromTransNo=' . $value . '&InvOrCredit=Invoice">'.$value.'</a> '; + } + } + + echo '<table class="selection"> <tr> <th colspan="4"><h3>' . _('Order Header Details For Order No').' '.$_GET['OrderNumber'] . '</h3></th> @@ -125,6 +135,9 @@ <th style="text-align: left">' . _('Comments'). ': </th> <td colspan="3">' . $myrow['comments'] . '</td> </tr> + <tr> <th style="text-align: left">' . _('Invoices') . ': </th> + <td colspan="3">' . $Inv . '</td> + </tr> </table>'; } @@ -146,7 +159,8 @@ actualdispatchdate, qtyinvoiced, itemdue, - poline + poline, + narrative FROM salesorderdetails INNER JOIN stockmaster ON salesorderdetails.stkcode = stockmaster.stockid WHERE orderno ='" . $_GET['OrderNumber'] . "'"; @@ -177,6 +191,7 @@ <th>' . _('Total') . '</th> <th>' . _('Qty Del') . '</th> <th>' . _('Last Del') . '/' . _('Due Date') . '</th> + <th>' . _('Narrative') . '</th> </tr>'; $k=0; while ($myrow=DB_fetch_array($LineItemsResult)) { @@ -205,6 +220,7 @@ <td class="number">' . locale_number_format($myrow['quantity'] * $myrow['unitprice'] * (1 - $myrow['discountpercent']),$CurrDecimalPlaces) . '</td> <td class="number">' . locale_number_format($myrow['qtyinvoiced'],$myrow['decimalplaces']) . '</td> <td>' . $DisplayActualDeliveryDate . '</td> + <td>' . $myrow['narrative'] . '</td> </tr>'; $OrderTotal += ($myrow['quantity'] * $myrow['unitprice'] * (1 - $myrow['discountpercent'])); |
From: <ex...@us...> - 2016-09-13 08:08:32
|
Revision: 7620 http://sourceforge.net/p/web-erp/reponame/7620 Author: exsonqu Date: 2016-09-13 08:08:29 +0000 (Tue, 13 Sep 2016) Log Message: ----------- 13/09/16 Exson: Make Work Order Entry available with multiple input of items and quantity at one time. Make a option for search items from SO. Add reference and remark field for work orders. Fixed bugs when item coded with # and remove some $db parameters unnecessary. Separate situation without BOM from zero prices. Modified Paths: -------------- trunk/WorkOrderEntry.php trunk/sql/mysql/upgrade4.13-4.13.1.sql Modified: trunk/WorkOrderEntry.php =================================================================== --- trunk/WorkOrderEntry.php 2016-09-12 02:36:23 UTC (rev 7619) +++ trunk/WorkOrderEntry.php 2016-09-13 08:08:29 UTC (rev 7620) @@ -63,17 +63,28 @@ $_POST['WO'] = (int)$SelectedWO; $EditingExisting = true; } else { + if (!isset($_POST['Ref'])) { + $Ref = ''; + } + if (!isset($_POST['Remark'])) { + $Remark = ''; + } + // new $_POST['WO'] = GetNextTransNo(40,$db); $SQL = "INSERT INTO workorders (wo, loccode, requiredby, - startdate) + startdate, + reference, + remark) VALUES ( '" . $_POST['WO'] . "', '" . $LocCode . "', '" . $ReqDate . "', - '" . $StartDate. "')"; + '" . $StartDate. "', + '" . $Ref . "', + '" . $Remark . "')"; $InsWOResult = DB_query($SQL); } @@ -99,7 +110,32 @@ If ($_POST['Keywords'] AND $_POST['StockCode']) { prnMsg(_('Stock description keywords have been used in preference to the Stock code extract entered'),'warn'); } - If (mb_strlen($_POST['Keywords'])>0) { + if (mb_strlen($_POST['SO'])>0) { + $SQL = "SELECT stockmaster.stockid, + stockmaster.description, + stockmaster.units, + stockmaster.controlled, + salesorderdetails.quantity + FROM salesorderdetails + INNER JOIN stockmaster + ON salesorderdetails.stkcode=stockmaster.stockid + WHERE salesorderdetails.orderno='" . $_POST['SO'] . "' + ORDER BY stockmaster.stockid + "; + } elseif(mb_strlen($_POST['CustomerRef'])>0) { + $SQL = "SELECT stockmaster.stockid, + stockmaster.description, + stockmaster.units, + stockmaster.controlled, + salesorderdetails.quantity + FROM salesorderdetails + INNER JOIN salesorders + ON salesorderdetails.orderno=salesorders.orderno + INNER JOIN stockmaster + ON salesorderdetails.stkcode=stockmaster.stockid + WHERE salesorders.customerref='" . $_POST['CustomerRef'] . "' + ORDER BY stockmaster.stockid"; + } elseIf (mb_strlen($_POST['Keywords'])>0) { //insert wildcard characters in spaces $_POST['Keywords'] = mb_strtoupper($_POST['Keywords']); $SearchString = '%' . str_replace(' ', '%', $_POST['Keywords']) . '%'; @@ -107,7 +143,8 @@ if ($_POST['StockCat']=='All'){ $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -119,7 +156,8 @@ } else { $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -140,7 +178,8 @@ if ($_POST['StockCat']=='All'){ $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -152,7 +191,8 @@ } else { $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -167,7 +207,8 @@ if ($_POST['StockCat']=='All'){ $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -178,7 +219,8 @@ } else { $SQL = "SELECT stockmaster.stockid, stockmaster.description, - stockmaster.units + stockmaster.units, + stockmaster.controlled FROM stockmaster INNER JOIN stockcategory ON stockmaster.categoryid=stockcategory.categoryid @@ -193,6 +235,7 @@ $SQLCount = substr($SQL,strpos($SQL, "FROM")); $SQLCount = substr($SQLCount,0, strpos($SQLCount, "ORDER")); $SQLCount = 'SELECT COUNT(*) '.$SQLCount; + $ErrMsg = _('Failed to retrieve item number'); $SearchResult = DB_query($SQLCount,$ErrMsg); $myrow=DB_fetch_array($SearchResult); @@ -238,48 +281,64 @@ if (DB_num_rows($SearchResult)==1){ $myrow=DB_fetch_array($SearchResult); $NewItem = $myrow['stockid']; + if (isset($myrow['quantity'])) { + $ReqQty = $myrow['quantity']; + } DB_data_seek($SearchResult,0); } } //end of if search +if (isset($_POST['Add'])) { + foreach($_POST as $key=>$value){ + if (strpos($key,'Check_')!==false){ + $NewItem[] = array('item'=>$value,'qty'=>0); + } + if (strpos($key,'Qty_') !== false AND $value>0) { + $No = substr($key,4); + $NewItem[] = array('item'=>$_POST['Item_'.$No],'qty'=>$value); + } + } +} + if (isset($NewItem) AND isset($_POST['WO'])){ - $InputError=false; - $CheckItemResult = DB_query("SELECT mbflag, + if (!is_array($NewItem)) { + $InputError=false; + $CheckItemResult = DB_query("SELECT mbflag, eoq, controlled FROM stockmaster WHERE stockid='" . $NewItem . "'"); - if (DB_num_rows($CheckItemResult)==1){ - $CheckItemRow = DB_fetch_array($CheckItemResult); - if ($CheckItemRow['controlled']==1 AND $_SESSION['DefineControlledOnWOEntry']==1){ //need to add serial nos or batches to determine quantity - $EOQ = 0; + if (DB_num_rows($CheckItemResult)==1){ + $CheckItemRow = DB_fetch_array($CheckItemResult); + if ($CheckItemRow['controlled']==1 AND $_SESSION['DefineControlledOnWOEntry']==1){ //need to add serial nos or batches to determine quantity + $EOQ = 0; + } else { + if (!isset($ReqQty)) { + $ReqQty=$CheckItemRow['eoq']; + } + $EOQ = $ReqQty; + } + if ($CheckItemRow['mbflag']!='M'){ + prnMsg(_('The item selected cannot be added to a work order because it is not a manufactured item'),'warn'); + $InputError=true; + } } else { - if (!isset($ReqQty)) { - $ReqQty=$CheckItemRow['eoq']; - } - $EOQ = $ReqQty; + prnMsg(_('The item selected cannot be found in the database'),'error'); + $InputError = true; } - if ($CheckItemRow['mbflag']!='M'){ - prnMsg(_('The item selected cannot be added to a work order because it is not a manufactured item'),'warn'); - $InputError=true; - } - } else { - prnMsg(_('The item selected cannot be found in the database'),'error'); - $InputError = true; - } - $CheckItemResult = DB_query("SELECT stockid + $CheckItemResult = DB_query("SELECT stockid FROM woitems WHERE stockid='" . $NewItem . "' AND wo='" .$_POST['WO'] . "'"); - if (DB_num_rows($CheckItemResult)==1){ - prnMsg(_('This item is already on the work order and cannot be added again'),'warn'); - $InputError=true; - } + if (DB_num_rows($CheckItemResult)==1){ + prnMsg(_('This item is already on the work order and cannot be added again'),'warn'); + $InputError=true; + } - if ($InputError==false){ - $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost, + if ($InputError==false){ + $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost, bom.loccode FROM stockmaster INNER JOIN bom @@ -288,21 +347,24 @@ AND bom.loccode=(SELECT loccode FROM workorders WHERE wo='" . $_POST['WO'] . "') AND bom.effectiveafter<='" . Date('Y-m-d') . "' AND bom.effectiveto>='" . Date('Y-m-d') . "'"); - $CostRow = DB_fetch_array($CostResult); - if (is_null($CostRow['cost']) OR $CostRow['cost']==0){ - $Cost =0; - prnMsg(_('The cost of this item as accumulated from the sum of the component costs is nil. This could be because there is no bill of material set up ... you may wish to double check this'),'warn'); - } else { - $Cost = $CostRow['cost']; - } - if (!isset($EOQ)){ - $EOQ=1; - } + $CostRow = DB_fetch_array($CostResult); + if (is_null($CostRow['cost'])){ + $Cost =0; + prnMsg(_('The cost of this item as accumulated from the sum of the component costs is nil. This could be because there is no bill of material set up ... you may wish to double check this'),'warn'); + } elseif ($CostRow['cost'] == 0) { + $Cost = 0; + prnMsg(_('The cost of this item as accumulated from the sum of the component costs is zero'),'warn'); + } else { + $Cost = $CostRow['cost']; + } + if (!isset($EOQ)){ + $EOQ=1; + } - $Result = DB_Txn_Begin(); + $Result = DB_Txn_Begin(); - // insert parent item info - $SQL = "INSERT INTO woitems (wo, + // insert parent item info + $SQL = "INSERT INTO woitems (wo, stockid, qtyreqd, stdcost) @@ -312,16 +374,110 @@ '" . $EOQ . "', '" . $Cost . "' )"; - $ErrMsg = _('The work order item could not be added'); - $result = DB_query($SQL,$ErrMsg); + $ErrMsg = _('The work order item could not be added'); + $result = DB_query($SQL,$ErrMsg); - //Recursively insert real component requirements - see includes/SQL_CommonFunctions.in for function WoRealRequirements - WoRealRequirements($db, $_POST['WO'], $CostRow['loccode'], $NewItem); + //Recursively insert real component requirements - see includes/SQL_CommonFunctions.in for function WoRealRequirements + WoRealRequirements($db, $_POST['WO'], $CostRow['loccode'], $NewItem); - $result = DB_Txn_Commit(); + $result = DB_Txn_Commit(); + unset($NewItem); + } + } else { + DB_txn_begin($db); + foreach ($NewItem as $ItemDetail) { + $Itm = $ItemDetail['item']; + if ($ItemDetail['qty']>0) { + $ReqQty = $ItemDetail['qty']; + } + $InputError=false; + $CheckItemResult = DB_query("SELECT mbflag, + eoq, + controlled + FROM stockmaster + WHERE stockid='" . $Itm . "'", + $db); + if (DB_num_rows($CheckItemResult)==1){ + $CheckItemRow = DB_fetch_array($CheckItemResult); + if ($CheckItemRow['controlled']==1 AND $_SESSION['DefineControlledOnWOEntry']==1){ //need to add serial nos or batches to determine quantity + $EOQ = 0; + } else { + if (!isset($ReqQty)) { + $ReqQty=$CheckItemRow['eoq']; + } + $EOQ = $ReqQty; + } + if ($CheckItemRow['mbflag']!='M'){ + prnMsg(_('The item selected cannot be added to a work order because it is not a manufactured item'),'warn'); + $InputError=true; + } + } else { + prnMsg(_('The item selected cannot be found in the database'),'error'); + $InputError = true; + } + $CheckItemResult = DB_query("SELECT stockid + FROM woitems + WHERE stockid='" . $Itm . "' + AND wo='" .$_POST['WO'] . "'" + ); + if (DB_num_rows($CheckItemResult)==1){ + prnMsg(_('This item is already on the work order and cannot be added again'),'warn'); + $InputError=true; + } + + + if ($InputError==false){ + $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost, + bom.loccode + FROM stockmaster + INNER JOIN bom + ON stockmaster.stockid=bom.component + WHERE bom.parent='" . $Itm . "' + AND bom.loccode=(SELECT loccode FROM workorders WHERE wo='" . $_POST['WO'] . "') + AND bom.effectiveafter<='" . Date('Y-m-d') . "' + AND bom.effectiveto>='" . Date('Y-m-d') . "'", + $db); + + $CostRow = DB_fetch_array($CostResult); + if (is_null($CostRow['cost'])){ + $Cost =0; + prnMsg(_('The cost of this item as accumulated from the sum of the component costs is nil. This could be because there is no bill of material set up ... you may wish to double check this'),'warn'); + } elseif ($CostRow['cost'] == 0) { + $Cost = 0; + prnMsg(_('The The cost of this item as accumulated from the sum of the component costs is zero'),'warn'); + } else { + $Cost = $CostRow['cost']; + } + if (!isset($EOQ)){ + $EOQ=1; + } + + + // insert parent item info + $SQL = "INSERT INTO woitems (wo, + stockid, + qtyreqd, + stdcost) + VALUES ( + '" . $_POST['WO'] . "', + '" . $Itm . "', + '" . $EOQ . "', + '" . $Cost . "' + )"; + $ErrMsg = _('The work order item could not be added'); + $result = DB_query($SQL,$ErrMsg); + //Recursively insert real component requirements - see includes/SQL_CommonFunctions.in for function WoRealRequirements + WoRealRequirements($db, $_POST['WO'], $CostRow['loccode'], $Itm); + } //end if there were no input errors + else { + DB_txn_rollback($db); + } + }//end of foreach loop; + + DB_txn_commit($db); unset($NewItem); - } //end if there were no input errors + } } //adding a new item to the work order @@ -359,12 +515,16 @@ if ($QtyRecd==0){ //can only change factory location if Qty Recd is 0 $SQL[] = "UPDATE workorders SET requiredby='" . $SQL_ReqDate . "', startdate='" . FormatDateForSQL($_POST['StartDate']) . "', - loccode='" . $_POST['StockLocation'] . "' + loccode='" . $_POST['StockLocation'] . "', + reference='" . $_POST['Ref'] . "', + remark='" . $_POST['Remark'] . "' WHERE wo='" . $_POST['WO'] . "'"; } else { prnMsg(_('The factory where this work order is made can only be updated if the quantity received on all output items is 0'),'warn'); $SQL[] = "UPDATE workorders SET requiredby='" . $SQL_ReqDate . "', - startdate='" . FormatDateForSQL($_POST['StartDate']) . "' + startdate='" . FormatDateForSQL($_POST['StartDate']) . "', + reference='" . $_POST['Ref'] . "', + remark='" . $_POST['Remark'] . "' WHERE wo='" . $_POST['WO'] . "'"; } @@ -496,6 +656,7 @@ } //delete items if ($CancelDelete===false) { + //delete items DB_Txn_Begin(); $ErrMsg = _('The work order could not be deleted'); $DbgMsg = _('The SQL used to delete the work order was'); @@ -525,7 +686,9 @@ requiredby, startdate, costissued, - closed + closed, + reference, + remark FROM workorders INNER JOIN locations ON workorders.loccode=locations.loccode INNER JOIN locationusers ON locationusers.loccode=workorders.loccode AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canupd=1 @@ -540,6 +703,8 @@ $_POST['Closed'] = $myrow['closed']; $_POST['RequiredBy'] = ConvertSQLDate($myrow['requiredby']); $_POST['StockLocation'] = $myrow['loccode']; + $_POST['Ref'] = $myrow['reference']; + $_POST['Remark'] = $myrow['remark']; $ErrMsg =_('Could not get the work order items'); $WOItemsResult = DB_query("SELECT woitems.stockid, stockmaster.description, @@ -626,7 +791,22 @@ <td class="label">' . _('Required By') . ':</td> <td><input type="text" name="RequiredBy" size="12" maxlength="12" value="' . $_POST['RequiredBy'] .'" class="date" alt="'.$_SESSION['DefaultDateFormat'].'" /></td> </tr>'; +if (!isset($_POST['Ref'])) { + $_POST['Ref'] = ''; +} +echo '<tr> + <td class="label">' . _('Reference') . ':</td> + <td><input type="text" name="Ref" value="' . $_POST['Ref'] . '" size="12" maxlength="40" /><td> + </tr>'; +if (!isset($_POST['Remark'])) { + $_POST['Remark'] = ''; +} +echo '<tr> + <td class="label">' . _('Remark') . ':</td> + <td><textarea name="Remark" >' . $_POST['Remark'] . '</textarea></td> + </tr>'; + if (isset($WOResult)){ echo '<tr><td class="label">' . _('Accumulated Costs') . ':</td> <td class="number">' . locale_number_format($myrow['costissued'],$_SESSION['CompanyRecord']['decimalplaces']) . '</td></tr>'; @@ -675,13 +855,13 @@ } else { $LotOrSN = _('Batches'); } - echo '<td><a href="' . $RootPath . '/WOSerialNos.php?WO=' . $_POST['WO'] . '&StockID=' . $_POST['OutputItem' .$i] . '&Description=' . $_POST['OutputItemDesc' .$i] . '&Serialised=' . $_POST['Serialised' .$i] . '&NextSerialNo=' . $_POST['NextLotSNRef' .$i] . '">' . $LotOrSN . '</a></td>'; + echo '<td><a href="' . $RootPath . '/WOSerialNos.php?WO=' . $_POST['WO'] . '&StockID=' . urlencode($_POST['OutputItem' .$i]) . '&Description=' . $_POST['OutputItemDesc' .$i] . '&Serialised=' . $_POST['Serialised' .$i] . '&NextSerialNo=' . $_POST['NextLotSNRef' .$i] . '">' . $LotOrSN . '</a></td>'; } } else { echo '<td></td>'; } echo '<td> - <a href="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '?Delete=Yes&StockID=' . $_POST['OutputItem' . $i] . '&WO='.$_POST['WO'].'" onclick="return confirm(\''._('Are you sure').'?\');">' . _('Delete') . '</a></td>'; + <a href="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '?Delete=Yes&StockID=' . urlencode($_POST['OutputItem' . $i]) . '&WO='.$_POST['WO'].'" onclick="return confirm(\''._('Are you sure').'?\');">' . _('Delete') . '</a></td>'; if ($_SESSION['WikiApp']!=0){ echo '<td>'; @@ -741,6 +921,12 @@ if (!isset($_POST['StockCode'])) { $_POST['StockCode']=''; } +if (!isset($_POST['SO'])) { + $_POST['SO'] = ''; +} +if (!isset($_POST['CustomerRef'])) { + $_POST['CustomerRef'] = ''; +} echo '</select> <td>' . _('Enter text extracts in the') . ' <b>' . _('description') . '</b>:</td> @@ -751,6 +937,12 @@ <td><font size="3"><b>' . _('OR') . ' </b></font>' . _('Enter extract of the') . ' <b>' . _('Stock Code') . '</b>:</td> <td><input type="text" name="StockCode" autofocus="autofocus" size="15" maxlength="18" value="' . $_POST['StockCode'] . '" /></td> </tr> + <tr> + <td><font size="3"><b>' . _('OR') . ' </b></font>' . _('Enter Sales Order') . ' + <input type="text" name="SO" value="' . $_POST['SO'] . '" size="15" /></td> + <td><font size="3"><b>' . _('OR') . ' </b></font>' . _('Enter Customer Order Ref') . '</td> + <td><input type="text" name="CustomerRef" size="20" value="' . $_POST['CustomerRef'] . '" /></td> + </tr> </table> <br /> <div class="centre"> @@ -812,6 +1004,7 @@ echo '<tr class="OddTableRows">'; $k=1; } + if ($myrow['controlled']==1 AND $_SESSION['DefineControlledOnWOEntry']==1){ //need to add serial nos or batches to determine quantity printf('<td><font size="1">%s</font></td> <td><font size="1">%s</font></td> @@ -819,18 +1012,49 @@ <td>%s</td> <td><font size="1"><a href="%s">' . _('Add to Work Order') . '</a></font></td> + <td><input type="checkbox" value="%s" name="Check_%s" /></td> </tr>', $myrow['stockid'], $myrow['description'], $myrow['units'], $ImageSource, - htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '?WO=' . $_POST['WO'] . '&NewItem=' . $myrow['stockid'].'&Line='.$i); + htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '?WO=' . $_POST['WO'] . '&NewItem=' . urlencode($myrow['stockid']).'&Line='.$i, + $myrow['stockid'], + $j); + } else { + if (!isset($myrow['quantity'])){ + $myrow['quantity'] = 0; + } + printf('<td><font size="1">%s</font></td> + <td><font size="1">%s</font></td> + <td><font size="1">%s</font></td> + <td>%s</td> + <td><font size="1"><a href="%s">' + . _('Add to Work Order') . '</a></font></td> + <td><input type="text" name="Qty_%s" value="%s" size="10" /><input type="hidden" value="%s" name="Item_%s" /></td> + + </tr>', + $myrow['stockid'], + $myrow['description'], + $myrow['units'], + $ImageSource, + htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '?WO=' . $_POST['WO'] . '&NewItem=' . urlencode($myrow['stockid']).'&Line='.$i, + $j, + $myrow['quantity'], + $myrow['stockid'], + $j); + } + $j++; } //end if not already on work order }//end of while loop } //end if more than 1 row to show echo '</table>'; + echo '<div class="center"> + <input type="submit" name="Add" value="' . _('Add To Work Order') . '" /> + <input type="hidden" name="WO" value="' . $_POST['WO'] . '" /> + </div>'; }#end if SearchResults to show Modified: trunk/sql/mysql/upgrade4.13-4.13.1.sql =================================================================== --- trunk/sql/mysql/upgrade4.13-4.13.1.sql 2016-09-12 02:36:23 UTC (rev 7619) +++ trunk/sql/mysql/upgrade4.13-4.13.1.sql 2016-09-13 08:08:29 UTC (rev 7620) @@ -9,5 +9,5 @@ ALTER TABLE `debtortrans` CHANGE `trandate` `trandate` DATE NOT NULL DEFAULT '0000-00-00'; ALTER table supplierdiscounts CONVERT TO CHARACTER SET utf8; INSERT INTO scripts VALUES ('PcAssignCashTabToTab.php',12,'Assign cash from one tab to another'); - - +ALTER table workorders ADD remark text DEFAULT NULL; +ALTER table workorders ADD reference varchar(40) NOT NULL DEFAULT ''; |
From: <ex...@us...> - 2016-09-12 02:36:25
|
Revision: 7619 http://sourceforge.net/p/web-erp/reponame/7619 Author: exsonqu Date: 2016-09-12 02:36:23 +0000 (Mon, 12 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-12 02:35:30 UTC (rev 7618) +++ trunk/doc/Change.log 2016-09-12 02:36:23 UTC (rev 7619) @@ -1,5 +1,6 @@ webERP Change Log +12/09/16 Exson: Add a filter to avoid tons of zero valued gl transaction records generated in SQL_CommonFunctions.inc. 04/09/16 Exson: Add WO items delete constraint in WorkOrderEntry.php. Thanks for Phil's reminder. 04/09/16 Exson: Add delete Work orders Items feature in WorkOrderEntry.php. 04/09/16 Exson: Fixed the undefined noise in WorkOrderStatus.php. |
From: <ex...@us...> - 2016-09-12 02:35:33
|
Revision: 7618 http://sourceforge.net/p/web-erp/reponame/7618 Author: exsonqu Date: 2016-09-12 02:35:30 +0000 (Mon, 12 Sep 2016) Log Message: ----------- 12/09/16 Exson: Add a filter to avoid tons of zero valued gl transaction records generated in SQL_CommonFunctions.inc. Modified Paths: -------------- trunk/includes/SQL_CommonFunctions.inc Modified: trunk/includes/SQL_CommonFunctions.inc =================================================================== --- trunk/includes/SQL_CommonFunctions.inc 2016-09-10 09:07:58 UTC (rev 7617) +++ trunk/includes/SQL_CommonFunctions.inc 2016-09-12 02:35:30 UTC (rev 7618) @@ -221,7 +221,9 @@ $MyRow = DB_fetch_row($result); $MaterialCost = $MyRow[0]; $Result = DB_Txn_Begin(); - ItemCostUpdateGL($db, $Parent, $MaterialCost, $OldCost, $QOH); + if (abs($MaterialCost-$OldCost)>0) { + ItemCostUpdateGL($db, $Parent, $MaterialCost, $OldCost, $QOH); + } $Result = DB_Txn_Commit(); return $MaterialCost; } |
From: <ex...@us...> - 2016-09-10 09:08:01
|
Revision: 7617 http://sourceforge.net/p/web-erp/reponame/7617 Author: exsonqu Date: 2016-09-10 09:07:58 +0000 (Sat, 10 Sep 2016) Log Message: ----------- 10/09/16 Exson: Add error proof to avoid the component and the parent is the same while preparing a bom and display those wrong bom created in BOMs.php. Modified Paths: -------------- trunk/BOMs.php Modified: trunk/BOMs.php =================================================================== --- trunk/BOMs.php 2016-09-04 10:27:23 UTC (rev 7616) +++ trunk/BOMs.php 2016-09-10 09:07:58 UTC (rev 7617) @@ -39,6 +39,11 @@ // child's children $i++; display_children($row['component'], $Level + 1, $BOMTree); + } else { + prnMsg(_('The component and the parent is the same'),'error'); + echo $row['component'] . '<br/>'; + include('includes/footer.inc'); + exit; } } } @@ -329,6 +334,11 @@ $_POST['AutoIssue']=0; } } + if ($_POST['Component'] == $SelectedParent) { + $InputError = 1; + prnMsg(_('The component selected is the same with the parent, it is not allowed'),'error'); + $Errors[$i] = 'Component'; + } if (!in_array('EffectiveAfter', $Errors)) { $EffectiveAfterSQL = FormatDateForSQL($_POST['EffectiveAfter']); |
From: <ex...@us...> - 2016-09-04 10:27:25
|
Revision: 7616 http://sourceforge.net/p/web-erp/reponame/7616 Author: exsonqu Date: 2016-09-04 10:27:23 +0000 (Sun, 04 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-04 10:26:40 UTC (rev 7615) +++ trunk/doc/Change.log 2016-09-04 10:27:23 UTC (rev 7616) @@ -1,5 +1,6 @@ webERP Change Log +04/09/16 Exson: Add WO items delete constraint in WorkOrderEntry.php. Thanks for Phil's reminder. 04/09/16 Exson: Add delete Work orders Items feature in WorkOrderEntry.php. 04/09/16 Exson: Fixed the undefined noise in WorkOrderStatus.php. 04/09/16 Exson: Fixed the bug that work order location will be wrong when user select location which is not user's default location. |
From: <ex...@us...> - 2016-09-04 10:26:42
|
Revision: 7615 http://sourceforge.net/p/web-erp/reponame/7615 Author: exsonqu Date: 2016-09-04 10:26:40 +0000 (Sun, 04 Sep 2016) Log Message: ----------- 04/09/16 Exson: Add WO items delete constraint in WorkOrderEntry.php. Thanks for Phil's reminder. Modified Paths: -------------- trunk/WorkOrderEntry.php Modified: trunk/WorkOrderEntry.php =================================================================== --- trunk/WorkOrderEntry.php 2016-09-04 08:15:04 UTC (rev 7614) +++ trunk/WorkOrderEntry.php 2016-09-04 10:26:40 UTC (rev 7615) @@ -483,7 +483,19 @@ } } if (isset($_GET['Delete'])) { + $CancelDelete=false; //always assume the best + + // can't delete it there are open work issues + $HasTransResult = DB_query("SELECT transno + FROM stockmoves + WHERE (stockmoves.type= 26 OR stockmoves.type=28) + AND reference " . LIKE . " '%" . $_POST['WO'] . "%'"); + if (DB_num_rows($HasTransResult)>0){ + prnMsg(_('This work order cannot be deleted because it has issues or receipts related to it'),'error'); + $CancelDelete=true; + } //delete items + if ($CancelDelete===false) { DB_Txn_Begin(); $ErrMsg = _('The work order could not be deleted'); $DbgMsg = _('The SQL used to delete the work order was'); @@ -500,6 +512,7 @@ DB_Txn_Commit(); prnMsg(_('The item in this work order has been cancelled'),'success'); header('Location: '. $_SERVER['PHP_SELF'] . '?WO=' . $_GET['WO']); + } } |
From: <ex...@us...> - 2016-09-04 08:15:07
|
Revision: 7614 http://sourceforge.net/p/web-erp/reponame/7614 Author: exsonqu Date: 2016-09-04 08:15:04 +0000 (Sun, 04 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-04 08:14:27 UTC (rev 7613) +++ trunk/doc/Change.log 2016-09-04 08:15:04 UTC (rev 7614) @@ -1,5 +1,6 @@ webERP Change Log +04/09/16 Exson: Add delete Work orders Items feature in WorkOrderEntry.php. 04/09/16 Exson: Fixed the undefined noise in WorkOrderStatus.php. 04/09/16 Exson: Fixed the bug that work order location will be wrong when user select location which is not user's default location. 04/09/16 Dave Parrish fixed accumulated No of orders bug in SalesByTypePeriodInquiry.php. |
From: <ex...@us...> - 2016-09-04 08:14:29
|
Revision: 7613 http://sourceforge.net/p/web-erp/reponame/7613 Author: exsonqu Date: 2016-09-04 08:14:27 +0000 (Sun, 04 Sep 2016) Log Message: ----------- 04/09/16 Exson: Add delete Work orders Items feature in WorkOrderEntry.php. Modified Paths: -------------- trunk/WorkOrderEntry.php Modified: trunk/WorkOrderEntry.php =================================================================== --- trunk/WorkOrderEntry.php 2016-09-04 06:13:37 UTC (rev 7612) +++ trunk/WorkOrderEntry.php 2016-09-04 08:14:27 UTC (rev 7613) @@ -482,7 +482,27 @@ exit; } } +if (isset($_GET['Delete'])) { + //delete items + DB_Txn_Begin(); + $ErrMsg = _('The work order could not be deleted'); + $DbgMsg = _('The SQL used to delete the work order was'); + //delete the worequirements + $SQL = "DELETE FROM worequirements WHERE wo='" . $_GET['WO'] . "' AND parentstockid='" . $_GET['StockID'] . "'"; + $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); + //delete the item on the work order + $SQL = "DELETE FROM woitems WHERE wo='" . $_GET['WO'] . "' AND stockid='" . $_GET['StockID'] . "' "; + $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); + //delete the controlled items defined in wip + $SQL="DELETE FROM woserialnos WHERE wo='" . $_GET['WO'] . "' AND stockid='" . $_GET['StockID'] . "' "; + $ErrMsg=_('The work order serial numbers could not be deleted'); + $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); + DB_Txn_Commit(); + prnMsg(_('The item in this work order has been cancelled'),'success'); + header('Location: '. $_SERVER['PHP_SELF'] . '?WO=' . $_GET['WO']); +} + echo '<form method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '" name="form1">'; echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; @@ -615,19 +635,25 @@ $j=0; } else { echo '<tr class="EvenTableRows">'; - $j++; + $j=1; } echo '<td><input type="hidden" name="OutputItem' . $i . '" value="' . $_POST['OutputItem' .$i] . '" />' . - $_POST['OutputItem' . $i] . ' - ' . $_POST['OutputItemDesc' .$i] . '</td>'; - echo'<td><textarea style="width:100%" rows="5" cols="20" name="WOComments' . $i . '" >' . $_POST['WOComments' . $i] . '</textarea></td>'; + $_POST['OutputItem' . $i] . ' - ' . $_POST['OutputItemDesc' .$i] . ' + </td>'; + echo'<td><textarea style="width:100%" rows="5" cols="20" name="WOComments' . $i . '" >' . $_POST['WOComments' . $i] . '</textarea> + </td>'; if ($_POST['Controlled'.$i]==1 AND $_SESSION['DefineControlledOnWOEntry']==1){ - echo '<td class="number">' . locale_number_format($_POST['OutputQty' . $i], $_POST['DecimalPlaces' . $i]) . '</td>'; + echo '<td class="number">' . locale_number_format($_POST['OutputQty' . $i], $_POST['DecimalPlaces' . $i]) . ' + </td>'; echo '<input type="hidden" name="OutputQty' . $i .'" value="' . locale_number_format($_POST['OutputQty' . $i]-$_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '" />'; } else { - echo'<td><input type="text" required="required" class="number" name="OutputQty' . $i . '" value="' . locale_number_format($_POST['OutputQty' . $i]-$_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '" size="10" maxlength="10" title="'._('The input format must be positive numeric').'" /></td>'; + echo'<td><input type="text" required="required" class="number" name="OutputQty' . $i . '" value="' . locale_number_format($_POST['OutputQty' . $i]-$_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '" size="10" maxlength="10" title="'._('The input format must be positive numeric').'" /> + </td>'; } - echo '<td class="number"><input type="hidden" name="RecdQty' . $i . '" value="' . locale_number_format($_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '" />' . locale_number_format($_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '</td> - <td class="number">' . locale_number_format(($_POST['OutputQty' . $i] - $_POST['RecdQty' .$i]), $_POST['DecimalPlaces' . $i]) . '</td>'; + echo '<td class="number"><input type="hidden" name="RecdQty' . $i . '" value="' . locale_number_format($_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . '" />' . locale_number_format($_POST['RecdQty' .$i], $_POST['DecimalPlaces' . $i]) . ' + </td> + <td class="number">' . locale_number_format(($_POST['OutputQty' . $i] - $_POST['RecdQty' .$i]), $_POST['DecimalPlaces' . $i]) . ' + </td>'; if ($_POST['Controlled'.$i]==1){ echo '<td><input type="text" name="NextLotSNRef' .$i . '" value="' . $_POST['NextLotSNRef'.$i] . '" /></td>'; if ($_SESSION['DefineControlledOnWOEntry']==1){ @@ -638,12 +664,17 @@ } echo '<td><a href="' . $RootPath . '/WOSerialNos.php?WO=' . $_POST['WO'] . '&StockID=' . $_POST['OutputItem' .$i] . '&Description=' . $_POST['OutputItemDesc' .$i] . '&Serialised=' . $_POST['Serialised' .$i] . '&NextSerialNo=' . $_POST['NextLotSNRef' .$i] . '">' . $LotOrSN . '</a></td>'; } + } else { + echo '<td></td>'; } - echo '<td>'; + echo '<td> + <a href="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '?Delete=Yes&StockID=' . $_POST['OutputItem' . $i] . '&WO='.$_POST['WO'].'" onclick="return confirm(\''._('Are you sure').'?\');">' . _('Delete') . '</a></td>'; + if ($_SESSION['WikiApp']!=0){ + echo '<td>'; wikiLink('WorkOrder', $_POST['WO'] . $_POST['OutputItem' .$i]); + echo '</td>'; } - echo '</td>'; echo '</tr>'; if (isset($_POST['Controlled' . $i])) { echo '<input type="hidden" name="Controlled' . $i .'" value="' . $_POST['Controlled' . $i] . '" />'; |
From: <ex...@us...> - 2016-09-04 06:13:39
|
Revision: 7612 http://sourceforge.net/p/web-erp/reponame/7612 Author: exsonqu Date: 2016-09-04 06:13:37 +0000 (Sun, 04 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-04 06:12:47 UTC (rev 7611) +++ trunk/doc/Change.log 2016-09-04 06:13:37 UTC (rev 7612) @@ -1,5 +1,6 @@ webERP Change Log +04/09/16 Exson: Fixed the undefined noise in WorkOrderStatus.php. 04/09/16 Exson: Fixed the bug that work order location will be wrong when user select location which is not user's default location. 04/09/16 Dave Parrish fixed accumulated No of orders bug in SalesByTypePeriodInquiry.php. 31/08/16 Exson: Addd new feature assign cash from one tab to another. |
From: <ex...@us...> - 2016-09-04 06:12:50
|
Revision: 7611 http://sourceforge.net/p/web-erp/reponame/7611 Author: exsonqu Date: 2016-09-04 06:12:47 +0000 (Sun, 04 Sep 2016) Log Message: ----------- 04/09/16 Exson: Fixed the undefined noise in WorkOrderStatus.php. Modified Paths: -------------- trunk/WorkOrderStatus.php Modified: trunk/WorkOrderStatus.php =================================================================== --- trunk/WorkOrderStatus.php 2016-09-04 06:03:20 UTC (rev 7610) +++ trunk/WorkOrderStatus.php 2016-09-04 06:12:47 UTC (rev 7611) @@ -138,7 +138,7 @@ <td class="number">'.locale_number_format($Issued,$RequirementsRow['decimalplaces']).'</td></tr>'; } /* Now do any additional issues of items not in the BOM */ - if(count($IssuedAlreadyRow)>0){ + if(isset($IssuedAlreadyRow) AND count($IssuedAlreadyRow)>0){ $AdditionalStocks = implode("','",array_keys($IssuedAlreadyRow)); $RequirementsSQL = "SELECT stockid, description, @@ -163,4 +163,4 @@ echo '</table>'; include('includes/footer.inc'); -?> \ No newline at end of file +?> |
From: <ex...@us...> - 2016-09-04 06:03:22
|
Revision: 7610 http://sourceforge.net/p/web-erp/reponame/7610 Author: exsonqu Date: 2016-09-04 06:03:20 +0000 (Sun, 04 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-04 06:02:25 UTC (rev 7609) +++ trunk/doc/Change.log 2016-09-04 06:03:20 UTC (rev 7610) @@ -1,4 +1,6 @@ webERP Change Log + +04/09/16 Exson: Fixed the bug that work order location will be wrong when user select location which is not user's default location. 04/09/16 Dave Parrish fixed accumulated No of orders bug in SalesByTypePeriodInquiry.php. 31/08/16 Exson: Addd new feature assign cash from one tab to another. 24/08/16 Exson: Fixed the latin1 charset mixed bug in supplierdiscounts table; |
From: <ex...@us...> - 2016-09-04 06:02:27
|
Revision: 7609 http://sourceforge.net/p/web-erp/reponame/7609 Author: exsonqu Date: 2016-09-04 06:02:25 +0000 (Sun, 04 Sep 2016) Log Message: ----------- 04/09/16 Exson: Fixed the bug that work order location will be wrong when user select location which is not user's default location. Modified Paths: -------------- trunk/WorkOrderEntry.php Modified: trunk/WorkOrderEntry.php =================================================================== --- trunk/WorkOrderEntry.php 2016-09-04 01:37:10 UTC (rev 7608) +++ trunk/WorkOrderEntry.php 2016-09-04 06:02:25 UTC (rev 7609) @@ -279,7 +279,8 @@ if ($InputError==false){ - $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost + $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost, + bom.loccode FROM stockmaster INNER JOIN bom ON stockmaster.stockid=bom.component @@ -315,7 +316,7 @@ $result = DB_query($SQL,$ErrMsg); //Recursively insert real component requirements - see includes/SQL_CommonFunctions.in for function WoRealRequirements - WoRealRequirements($db, $_POST['WO'], $_POST['StockLocation'], $NewItem); + WoRealRequirements($db, $_POST['WO'], $CostRow['loccode'], $NewItem); $result = DB_Txn_Commit(); @@ -382,11 +383,11 @@ } if ($_POST['RecdQty'.$i]==0 AND (!isset($_POST['HasWOSerialNos'.$i]) OR $_POST['HasWOSerialNos'.$i]==false)){ /* can only change location cost if QtyRecd=0 */ - $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost + $CostResult = DB_query("SELECT SUM((materialcost+labourcost+overheadcost)*bom.quantity) AS cost,bom.loccode FROM stockmaster INNER JOIN bom ON stockmaster.stockid=bom.component WHERE bom.parent='" . $_POST['OutputItem'.$i] . "' - AND bom.loccode='" . $_POST['StockLocation'] . "' + AND bom.loccode=(SELECT loccode FROM workorders WHERE wo='" . $_POST['WO'] . "') AND bom.effectiveafter<='" . Date('Y-m-d') . "' AND bom.effectiveto>='" . Date('Y-m-d') . "'"); $CostRow = DB_fetch_array($CostResult); |
From: <ex...@us...> - 2016-09-04 01:37:13
|
Revision: 7608 http://sourceforge.net/p/web-erp/reponame/7608 Author: exsonqu Date: 2016-09-04 01:37:10 +0000 (Sun, 04 Sep 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-09-04 01:36:23 UTC (rev 7607) +++ trunk/doc/Change.log 2016-09-04 01:37:10 UTC (rev 7608) @@ -1,5 +1,5 @@ webERP Change Log - +04/09/16 Dave Parrish fixed accumulated No of orders bug in SalesByTypePeriodInquiry.php. 31/08/16 Exson: Addd new feature assign cash from one tab to another. 24/08/16 Exson: Fixed the latin1 charset mixed bug in supplierdiscounts table; 24/9/16 Exson: Fixed the bug that days of payment terms in the following month over 31 days can not be handled correctly in DateFunctions.inc. |
From: <ex...@us...> - 2016-09-04 01:36:25
|
Revision: 7607 http://sourceforge.net/p/web-erp/reponame/7607 Author: exsonqu Date: 2016-09-04 01:36:23 +0000 (Sun, 04 Sep 2016) Log Message: ----------- 04/09/16 Dave Parrish fixed accumulated No of orders bug in SalesByTypePeriodInquiry.php. Modified Paths: -------------- trunk/SalesByTypePeriodInquiry.php Modified: trunk/SalesByTypePeriodInquiry.php =================================================================== --- trunk/SalesByTypePeriodInquiry.php 2016-08-31 06:33:53 UTC (rev 7606) +++ trunk/SalesByTypePeriodInquiry.php 2016-09-04 01:36:23 UTC (rev 7607) @@ -545,7 +545,7 @@ $PrdTotalGP += ($SalesRow['salesvalue']+$SalesRow['returnvalue']-$SalesRow['cost']); $CumulativeTotalSales += $SalesRow['salesvalue']; - $CumulativeTotalOrders = $SalesRow['nooforders']; + $CumulativeTotalOrders += $SalesRow['nooforders']; $CumulativeTotalRefunds += $SalesRow['returnvalue']; $CumulativeTotalNetSales += ($SalesRow['salesvalue']+$SalesRow['returnvalue']); $CumulativeTotalCost += $SalesRow['cost']; |
From: <ex...@us...> - 2016-08-31 06:33:55
|
Revision: 7606 http://sourceforge.net/p/web-erp/reponame/7606 Author: exsonqu Date: 2016-08-31 06:33:53 +0000 (Wed, 31 Aug 2016) Log Message: ----------- Modified Paths: -------------- trunk/doc/Change.log Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2016-08-31 06:32:57 UTC (rev 7605) +++ trunk/doc/Change.log 2016-08-31 06:33:53 UTC (rev 7606) @@ -1,4 +1,6 @@ webERP Change Log + +31/08/16 Exson: Addd new feature assign cash from one tab to another. 24/08/16 Exson: Fixed the latin1 charset mixed bug in supplierdiscounts table; 24/9/16 Exson: Fixed the bug that days of payment terms in the following month over 31 days can not be handled correctly in DateFunctions.inc. 20/08/16 RChacon: In ConfirmDispatch_Invoice.php, fix table html code. |