Changeset 373
- Timestamp:
- 01/04/08 12:54:39
- Files:
-
- trunk/phpbms/modules/bms/javascript/totalreports.js (modified) (1 diff)
- trunk/phpbms/modules/bms/report/invoices_totals.php (modified) (2 diffs)
- trunk/phpbms/modules/bms/report/lineitems_totals.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/phpbms/modules/bms/javascript/totalreports.js
r285 r373 1 function moveItem(id,direction,theform){ 2 var additem,removeitem,tempText,tempValue; 3 4 if(direction=="to"){ 5 additem="selected"+id; 6 removeitem="available"+id; 1 /* 2 $Rev: 316 $ | $LastChangedBy: brieb $ 3 $LastChangedDate: 2007-10-09 13:58:11 -0600 (Tue, 09 Oct 2007) $ 4 +-------------------------------------------------------------------------+ 5 | Copyright (c) 2004 - 2007, Kreotek LLC | 6 | All rights reserved. | 7 +-------------------------------------------------------------------------+ 8 | | 9 | Redistribution and use in source and binary forms, with or without | 10 | modification, are permitted provided that the following conditions are | 11 | met: | 12 | | 13 | - Redistributions of source code must retain the above copyright | 14 | notice, this list of conditions and the following disclaimer. | 15 | | 16 | - Redistributions in binary form must reproduce the above copyright | 17 | notice, this list of conditions and the following disclaimer in the | 18 | documentation and/or other materials provided with the distribution. | 19 | | 20 | - Neither the name of Kreotek LLC nor the names of its contributore may | 21 | be used to endorse or promote products derived from this software | 22 | without specific prior written permission. | 23 | | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 25 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 26 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | 27 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 28 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 29 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 30 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 31 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 32 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 33 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 34 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 35 | | 36 +-------------------------------------------------------------------------+ 37 */ 38 39 report = { 40 41 cancel: function(){ 42 43 window.close(); 44 45 },//endmethod 46 47 validateForm: function (){ 48 49 if(report.prepareGroupings() && report.prepareColumns()){ 50 51 var theForm = getObjectFromID("GroupForm"); 52 theForm.submit(); 53 7 54 }else{ 8 removeitem="selected"+id; 9 additem="available"+id; 55 56 alert("Make sure you have selected unique groups and columns for each line."); 57 10 58 } 11 59 12 for(i=0;i<theform[removeitem].options.length;i++) { 13 if (theform[removeitem].options[i].selected) { 14 tempText=theform[removeitem].options[i].text; 15 tempValue=theform[removeitem].options[i].value; 16 theform[removeitem].options[i]=null; 17 theform[additem].options[theform[additem].options.length]= new Option(tempText,tempValue); 18 i=-1; 19 } 20 } 21 }//end function 22 23 24 25 function submitForm(){ 26 27 var groupingsSelect = getObjectFromID("selectedgroupings"); 28 var columnsSelect = getObjectFromID("selectedcolumns"); 29 var i; 30 31 if(groupingsSelect.options.length){ 32 var groupings = getObjectFromID("groupings"); 33 groupings.value = ""; 34 35 for(i=0; i<groupingsSelect.options.length; i++) 36 groupings.value += "" + groupingsSelect.options[i].value + "::"; 37 38 groupings.value = groupings.value.substr(0,groupings.value.length-2); 39 } 40 41 42 if(columnsSelect.options.length){ 43 var columns = getObjectFromID("columns"); 44 columns.value = ""; 45 46 for(i=0; i<columnsSelect.options.length; i++) 47 columns.value += "" + columnsSelect.options[i].value + "::"; 48 49 columns.value = columns.value.substr(0,columns.value.length-2); 50 } 51 52 53 if(columnsSelect.options.length){ 54 } else { 55 alert("At least one column is needed to run the report"); 56 return false; 57 } 58 59 groupingsSelect.form.submit(); 60 61 }//end function 60 },//endmethod 61 62 prepareGroupings: function (){ 63 64 var groupArray = new Array(); 65 66 for(var i=0; i<GroupParams.length; i++){ 67 68 var groupField = getObjectFromID("Group"+GroupParams[i]+"Field"); 69 if(groupField.value == "0"){ 70 71 72 }else{ 73 74 for(var j=0; j<groupArray.length; j++){ 75 76 if(groupField.value == groupArray[j]+1){ 77 78 return false; 79 80 }//endif 81 82 }//endfor 83 84 groupArray[groupArray.length] = groupField.value-1; 85 86 }//endif 87 88 }//endfor 89 90 var hiddenGroupings = getObjectFromID("groupings"); 91 hiddenGroupings.value = groupArray.join("::"); 92 93 return true; 94 95 },//endmethod 96 97 prepareColumns: function (){ 98 99 var columnArray = new Array(); 100 101 for(var i=0; i<ColumnParams.length; i++){ 102 103 var columnField = getObjectFromID("Column"+ColumnParams[i]+"Field"); 104 105 if(columnField.value == "0"){ 106 107 return false; 108 109 }else{ 110 111 for(var j=0; j<columnArray.length; j++){ 112 113 if(columnField.value == columnArray[j]+1){ 114 115 return false; 116 117 }//endif 118 119 }//endfor 120 121 columnArray[columnArray.length] = columnField.value-1; 122 123 }//endif 124 125 }//endfor 126 127 var hiddenColumns = getObjectFromID("columns"); 128 hiddenColumns.value = columnArray.join("::"); 129 130 return true; 131 132 },//endmethod 133 134 groupAddLine: function (){ 135 136 var tempMinus = getObjectFromID("Group"+GroupParams[0]+"Minus"); 137 if(tempMinus.className == "graphicButtons buttonMinusDisabled") 138 tempMinus.className = "graphicButtons buttonMinus"; 139 140 var tempDiv = getObjectFromID("Group"+GroupParams[0]); 141 var tempContent = tempDiv.innerHTML; 142 var REcriteria = new RegExp("Group"+GroupParams[0],"g"); 143 var newid = "Group"+(GroupParams[GroupParams.length-1]+1) 144 tempContent = tempContent.replace(REcriteria, newid); 145 146 var newDiv = document.createElement("div"); 147 newDiv.id = newid; 148 newDiv.innerHTML = tempContent; 149 150 var containerDiv = getObjectFromID("theGroups"); 151 containerDiv.appendChild(newDiv); 152 153 GroupParams[GroupParams.length] = GroupParams[GroupParams.length-1]+1; 154 155 156 var newPlusButton = getObjectFromID(newid+"Plus"); 157 connect(newPlusButton, "onclick", report.groupAddLine); 158 159 var newMinusButton = getObjectFromID(newid+"Minus"); 160 connect(newMinusButton, "onclick", report.groupRemoveLine); 161 162 163 },//endmethod 164 165 groupRemoveLine: function (e){ 166 167 var thebutton = e.src(); 168 169 if(thebutton.className=="graphicButtons buttonMinusDisabled") 170 return false; 171 172 var theDiv = thebutton.parentNode; 173 174 var containerDiv = getObjectFromID("theGroups"); 175 containerDiv.removeChild(theDiv); 176 var theid = theDiv.id.replace(/Group/g,""); 177 theDiv=null; 178 179 for(var i=0;i<GroupParams.length;i++){ 180 181 if(GroupParams[i]==theid){ 182 183 GroupParams.splice(i,1); 184 break; 185 186 }//endif 187 188 }//endfor 189 190 if(GroupParams.length==1){ 191 192 var tempButton = getObjectFromID("Group"+GroupParams[0]+"Minus"); 193 tempButton.className="graphicButtons buttonMinusDisabled" 194 195 }//endif 196 197 },//endmethod 198 199 columnAddLine: function (){ 200 201 var tempMinus = getObjectFromID("Column"+ColumnParams[0]+"Minus"); 202 if(tempMinus.className == "graphicButtons buttonMinusDisabled") 203 tempMinus.className = "graphicButtons buttonMinus"; 204 205 var tempDiv = getObjectFromID("Column"+ColumnParams[0]); 206 var tempContent = tempDiv.innerHTML; 207 var REcriteria = new RegExp("Column"+ColumnParams[0],"g"); 208 var newid = "Column"+(ColumnParams[ColumnParams.length-1]+1) 209 210 tempContent = tempContent.replace(REcriteria, newid); 211 212 var newDiv = document.createElement("div"); 213 newDiv.id = newid; 214 newDiv.innerHTML = tempContent; 215 216 var containerDiv = getObjectFromID("theColumns"); 217 containerDiv.appendChild(newDiv); 218 219 ColumnParams[ColumnParams.length] = ColumnParams[ColumnParams.length-1]+1; 220 221 222 var newPlusButton = getObjectFromID(newid+"Plus"); 223 connect(newPlusButton, "onclick", report.columnAddLine); 224 225 var newMinusButton = getObjectFromID(newid+"Minus"); 226 connect(newMinusButton, "onclick", report.columnRemoveLine); 227 228 229 },//endmethod 230 231 columnRemoveLine: function (e){ 232 233 var thebutton = e.src(); 234 235 if(thebutton.className=="graphicButtons buttonMinusDisabled") 236 return false; 237 238 var theDiv = thebutton.parentNode; 239 240 var containerDiv = getObjectFromID("theColumns"); 241 containerDiv.removeChild(theDiv); 242 var theid = theDiv.id.replace(/Column/g,""); 243 theDiv=null; 244 245 for(var i=0;i<ColumnParams.length;i++){ 246 247 if(ColumnParams[i] == theid){ 248 249 ColumnParams.splice(i,1); 250 break; 251 252 }//endif 253 254 }//endfor 255 256 if(ColumnParams.length == 1){ 257 258 var tempButton = getObjectFromID("Column"+ColumnParams[0]+"Minus"); 259 tempButton.className="graphicButtons buttonMinusDisabled" 260 261 }//endif 262 263 }//endmethod 264 265 }//end class 266 267 268 /*listner*/ 269 270 connect(window,"onload",function() { 271 272 GroupParams = [1]; 273 ColumnParams = [1]; 274 275 var plusGroupButton = getObjectFromID("Group1Plus"); 276 connect(plusGroupButton, "onclick", report.groupAddLine); 277 278 var minusGroupButton = getObjectFromID("Group1Minus"); 279 connect(minusGroupButton, "onclick", report.groupRemoveLine); 280 281 var plusColumnButton = getObjectFromID("Column1Plus"); 282 connect(plusColumnButton, "onclick", report.columnAddLine); 283 284 var minusColumnButton = getObjectFromID("Column1Minus"); 285 connect(minusColumnButton, "onclick", report.columnRemoveLine); 286 287 var printButton = getObjectFromID("print"); 288 connect(printButton, "onclick", report.validateForm); 289 290 var cancelButton = getObjectFromID("cancel"); 291 connect(cancelButton, "onclick", report.cancel); 292 }) trunk/phpbms/modules/bms/report/invoices_totals.php
r285 r373 386 386 387 387 function showOptions($what){ 388 ?><option value="0">----- Choose One -----</option> 389 <?php 388 390 $i=0; 389 391 390 392 foreach($this->$what as $value){ 391 ?><option value="<?php echo $i ; ?>"><?php echo $value["name"];?></option>393 ?><option value="<?php echo $i+1; ?>"><?php echo $value["name"];?></option> 392 394 <?php 393 395 $i++; … … 398 400 399 401 function showSelectScreen(){ 400 401 global $phpbms; 402 403 $pageTitle="Invoice Totals"; 404 $phpbms->showMenu = false; 405 $phpbms->cssIncludes[] = "pages/totalreports.css"; 406 $phpbms->jsIncludes[] = "modules/bms/javascript/totalreports.js"; 407 408 include("header.php"); 409 410 ?> 411 412 <div class="bodyline"> 413 <h1>Invoice Total Options</h1> 414 <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="totals" onsubmit="return false;"> 415 416 <fieldset> 417 <legend>report</legend> 418 <p> 419 <label for="reporttitle">report title</label><br /> 420 <input type="text" name="reporttitle" id="reporttitle" size="45"/> 421 </p> 422 </fieldset> 423 424 <fieldset> 425 <legend>Grouping</legend> 426 427 <div class="selectLeft fauxP"> 428 <label for="selectedgroupings">selected groupings</label><br /> 429 <select id="selectedgroupings" name="selectedgroupings" size="9" multiple="multiple"> 430 </select> 431 <input type="hidden" id="groupings" name="groupings"/> 432 </div> 433 434 <div class="selectLeft fauxP"> 435 <p><br /><br /><input type="button" value="<<" class="Buttons" onclick="moveItem('groupings','to',this.form);" /></p> 436 <p><input type="button" value=">>" class="Buttons" onclick="moveItem('groupings','from',this.form);" /></p> 437 </div> 438 439 <div class="fauxP"> 440 <label for="availablegroupings">available groupings</label><br /> 441 <select id="availablegroupings" name="availablegroupings" size="9" multiple="multiple"> 442 <?php $this->showOptions("groupings")?> 443 </select> 444 </div> 445 446 </fieldset> 447 448 <fieldset> 449 <legend>Columns</legend> 450 451 <div class="selectLeft fauxP"> 452 <label for="selectedcolumns">shown columns</label><br /> 453 <select name="selectedcolumns" id="selectedcolumns" size="9"></select> 454 <input type="hidden" id="columns" name="columns"/> 455 </div> 456 457 <div class="selectLeft fauxP"> 458 <p><br /><br /><input type="button" value="<<" class="Buttons" onclick="moveItem('columns','to',this.form);" /></p> 459 <p><input type="button" value=">>" class="Buttons" onclick="moveItem('columns','from',this.form);" /></p> 460 </div> 461 462 <div class="fauxP"> 463 <label for="availablecolumns">available columns</label><br /> 464 <select name="availablecolumns" id="availablecolumns" size="9"> 402 403 global $phpbms; 404 405 $pageTitle="Invoice Total"; 406 $phpbms->showMenu = false; 407 $phpbms->cssIncludes[] = "pages/totalreports.css"; 408 $phpbms->jsIncludes[] = "modules/bms/javascript/totalreports.js"; 409 410 include("header.php"); 411 412 ?> 413 414 <div class="bodyline"> 415 <h1>Invoice Total Options</h1> 416 <form id="GroupForm" action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="GroupForm"> 417 418 <fieldset> 419 420 <legend>report</legend> 421 <p> 422 <label for="reporttitle">report title</label><br /> 423 <input type="text" name="reporttitle" id="reporttitle" size="45"/> 424 </p> 425 426 </fieldset> 427 428 <fieldset> 429 430 <legend>groupings</legend> 431 <input id="groupings" type="hidden" name="groupings"/> 432 <div id="theGroups"> 433 <div id="Group1"> 434 <select id="Group1Field"> 435 <?php $this->showOptions("groupings")?> 436 </select> 437 <button type="button" id="Group1Minus" class="graphicButtons buttonMinusDisabled"><span>-</span></button> 438 <button type="button" id="Group1Plus" class="graphicButtons buttonPlus"><span>+</span></button> 439 </div> 440 </div> 441 442 </fieldset> 443 444 <fieldset> 445 446 <legend>columns</legend> 447 <input id="columns" type="hidden" name="columns"/> 448 <div id="theColumns"> 449 <div id="Column1"> 450 <select id="Column1Field"> 465 451 <?php $this->showOptions("columns")?> 466 452 </select> 453 <button type="button" id="Column1Minus" class="graphicButtons buttonMinusDisabled"><span>-</span></button> 454 <button type="button" id="Column1Plus" class="graphicButtons buttonPlus"><span>+</span></button> 467 455 </div> 468 469 </fieldset> 470 471 <fieldset> 472 <legend>Options</legend> 473 <p> 474 <label for="showwhat">information shown</label><br /> 475 <select name="showwhat" id="showwhat"> 476 <option selected="selected" value="totals">Totals Only</option> 477 <option value="invoices">Invoices</option> 478 <option value="lineitems">Invoices & Line Items</option> 479 </select> 480 </p> 481 </fieldset> 482 483 <p align="right"> 484 <input name="command" type="button" class="Buttons" id="print" value="print" onclick="submitForm();"/> 485 <input name="command" type="button" class="Buttons" id="cancel" value="cancel" onclick="window.close();" /> 456 </div> 457 </fieldset> 458 459 <fieldset> 460 <legend>Options</legend> 461 <p> 462 <label for="showwhat">information shown</label><br /> 463 <select name="showwhat" id="showwhat"> 464 <option selected="selected" value="totals">Totals Only</option> 465 <option value="invoices">Invoices</option> 466 <option value="lineitems">Invoices & Line Items</option> 467 </select> 486 468 </p> 487 </form> 488 </div> 489 490 <?php 491 492 include("footer.php"); 493 }//end method 494 495 }//end class 496 469 </fieldset> 470 471 <p align="right"> 472 <button id="print" type="button" class="Buttons">Print</button> 473 <button id="cancel" type="button" class="Buttons">Cancel</button> 474 </p> 475 476 </form> 477 </div> 478 479 <?php 480 481 include("footer.php"); 482 }//end method 483 484 }//endclass 497 485 498 486 // Processing =================================================================================================================== trunk/phpbms/modules/bms/report/lineitems_totals.php
r285 r373 352 352 353 353 function showOptions($what){ 354 ?><option value="0">----- Choose One -----</option> 355 <?php 354 356 $i=0; 355 357 356 358 foreach($this->$what as $value){ 357 ?><option value="<?php echo $i ; ?>"><?php echo $value["name"];?></option>359 ?><option value="<?php echo $i+1; ?>"><?php echo $value["name"];?></option> 358 360 <?php 359 361 $i++; … … 364 366 365 367 function showSelectScreen(){ 366 367 global $phpbms; 368 369 $pageTitle="Line Items Totals"; 370 $phpbms->showMenu = false; 371 $phpbms->cssIncludes[] = "pages/totalreports.css"; 372 $phpbms->jsIncludes[] = "modules/bms/javascript/totalreports.js"; 373 374 include("header.php"); 375 376 ?> 377 378 <div class="bodyline"> 379 <h1>Line Items Total Options</h1> 380 <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="totals" onsubmit="return false;"> 381 382 <fieldset> 383 <legend>report</legend> 384 <p> 385 <label for="reporttitle">report title</label><br /> 386 <input type="text" name="reporttitle" id="reporttitle" size="45"/> 387 </p> 388 </fieldset> 389 390 <fieldset> 391 <legend>Grouping</legend> 392 393 <div class="selectLeft fauxP"> 394 <label for="selectedgroupings">selected groupings</label><br /> 395 <select id="selectedgroupings" name="selectedgroupings" size="9" multiple="multiple"> 396 </select> 397 <input type="hidden" id="groupings" name="groupings"/> 398 </div> 399 400 <div class="selectLeft fauxP"> 401 <p><br /><br /><input type="button" value="<<" class="Buttons" onclick="moveItem('groupings','to',this.form);" /></p> 402 <p><input type="button" value=">>" class="Buttons" onclick="moveItem('groupings','from',this.form);" /></p> 403 </div> 404 405 <div class="fauxP"> 406 <label for="availablegroupings">available groupings</label><br /> 407 <select id="availablegroupings" name="availablegroupings" size="9" multiple="multiple"> 408 <?php $this->showOptions("groupings")?> 409 </select> 410 </div> 411 412 </fieldset> 413 414 <fieldset> 415 <legend>Columns</legend> 416 417 <div class="selectLeft fauxP"> 418 <label for="selectedcolumns">shown columns</label><br /> 419 <select name="selectedcolumns" id="selectedcolumns" size="9"></select> 420 <input type="hidden" id="columns" name="columns"/> 421 </div> 422 423 <div class="selectLeft fauxP"> 424 <p><br /><br /><input type="button" value="<<" class="Buttons" onclick="moveItem('columns','to',this.form);" /></p> 425 <p><input type="button" value=">>" class="Buttons" onclick="moveItem('columns','from',this.form);" /></p> 426 </div> 427 428 <div class="fauxP"> 429 <label for="availablecolumns">available columns</label><br /> 430 <select name="availablecolumns" id="availablecolumns" size="9"> 368 369 global $phpbms; 370 371 $pageTitle="Line Items Total"; 372 $phpbms->showMenu = false; 373 $phpbms->cssIncludes[] = "pages/totalreports.css"; 374 $phpbms->jsIncludes[] = "modules/bms/javascript/totalreports.js"; 375 376 include("header.php"); 377 378 ?> 379 380 <div class="bodyline"> 381 <h1>Line Items Total Options</h1> 382 <form id="GroupForm" action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="GroupForm"> 383 384 <fieldset> 385 386 <legend>report</legend> 387 <p> 388 <label for="reporttitle">report title</label><br /> 389 <input type="text" name="reporttitle" id="reporttitle" size="45"/> 390 </p> 391 392 </fieldset> 393 394 <fieldset> 395 396 <legend>groupings</legend> 397 <input id="groupings" type="hidden" name="groupings"/> 398 <div id="theGroups"> 399 <div id="Group1"> 400 <select id="Group1Field"> 401 <?php $this->showOptions("groupings")?> 402 </select> 403 <button type="button" id="Group1Minus" class="graphicButtons buttonMinusDisabled"><span>-</span></button> 404 <button type="button" id="Group1Plus" class="graphicButtons buttonPlus"><span>+</span></button> 405 </div> 406 </div> 407 408 </fieldset> 409 410 <fieldset> 411 412 <legend>columns</legend> 413 <input id="columns" type="hidden" name="columns"/> 414 <div id="theColumns"> 415 <div id="Column1"> 416 <select id="Column1Field"> 431 417 <?php $this->showOptions("columns")?> 432 418 </select> 419 <button type="button" id="Column1Minus" class="graphicButtons buttonMinusDisabled"><span>-</span></button> 420 <button type="button" id="Column1Plus" class="graphicButtons buttonPlus"><span>+</span></button> 433 421 </div> 434 435 </fieldset> 436 437 <fieldset> 438 <legend>Options</legend> 439 <p> 440 <label for="showwhat">information shown</label><br /> 441 <select name="showwhat" id="showwhat"> 442 <option selected="selected" value="totals">Totals Only</option> 443 <option value="invoices">Invoices</option> 444 <option value="lineitems">Invoices & Line Items</option> 445 </select> 446 </p> 447 </fieldset> 448 449 <p align="right"> 450 <input name="command" type="button" class="Buttons" id="print" value="print" onclick="submitForm();"/> 451 <input name="command" type="button" class="Buttons" id="cancel" value="cancel" onclick="window.close();" /> 422 </div> 423 </fieldset> 424 425 <fieldset> 426 <legend>Options</legend> 427 <p> 428 <label for="showwhat">information shown</label><br /> 429 <select name="showwhat" id="showwhat"> 430 <option selected="selected" value="totals">Totals Only</option> 431 <option value="invoices">Invoices</option> 432 <option value="lineitems">Invoices & Line Items</option> 433 </select> 452 434 </p> 453 </form> 454 </div> 455 456 <?php 457 458 include("footer.php"); 459 }//end method 435 </fieldset> 436 437 <p align="right"> 438 <button id="print" type="button" class="Buttons">Print</button> 439 <button id="cancel" type="button" class="Buttons">Cancel</button> 440 </p> 441 442 </form> 443 </div> 444 445 <?php 446 447 include("footer.php"); 448 }//end method 460 449 461 450 }//end class