Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

192 rader
13 KiB

  1. <!-- Wappler include head-page="layouts/main" fontawesome_5="cdn" bootstrap5="local" is="dmx-app" id="dspec" appconnect="local" components="{dmxTyped:{},dmxStateManagement:{},dmxBootstrap5Modal:{},dmxFormatter:{},dmxValidator:{},dmxScheduler:{},dmxDataTraversal:{},dmxBootstrap5TableGenerator:{},dmxBootstrap5Navigation:{}}" -->
  2. <dmx-api-action id="api_deleteItem" noload="true" url="http://vapor.prelub.com/api/v1.0/boms/" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/boms/'+frm_updatebom.repeat1[0].id" method="delete"></dmx-api-action>
  3. <dmx-api-action id="api_getcodebyid" noload="true" url="http://vapor.prelub.com/api/v1.0/partcodes/" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/partcodes/'+modal1.txt_parentid.value"></dmx-api-action>
  4. <dmx-api-action id="api_bom" noload="true"></dmx-api-action>
  5. <dmx-api-action id="api_allpartcodes" url="http://vapor.prelub.com/api/v1.0/partcodes"></dmx-api-action>
  6. <dmx-api-action id="api_maxpn" url="http://vapor.prelub.com/api/v1.0/pns/max"></dmx-api-action>
  7. <dmx-api-action id="api_partcodes" noload="true" url="http://vapor.prelub.com/api/v1.0/partcodes/bytype/0" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/partcodes/bytype/'+modal1.sel_parttypes.selectedValue"></dmx-api-action>
  8. <dmx-api-action id="api_childcodes" noload="true" url="http://vapor.prelub.com/api/v1.0/partcodes/byparent/" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/partcodes/byparent/'+modal1.txt_parentid.value"></dmx-api-action>
  9. <dmx-api-action id="api_parttypes" url="http://vapor.prelub.com/api/v1.0/parttypes"></dmx-api-action>
  10. <dmx-api-action id="api1" url="http://localhost:8080/api/v1.0/designspecs/max/" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/designspecs/max/'+query1.data.id"></dmx-api-action>
  11. <dmx-array id="arr_boms1" dmx-bind:items="api1.data.boms.values(`(viewlocationid == 1)`)"></dmx-array>
  12. <dmx-query-manager id="query1"></dmx-query-manager>
  13. <div class="modal" id="modal1" is="dmx-bs5-modal" tabindex="-1" dmx-bind:show="!query1.data.id">
  14. <div class="modal-dialog" role="document">
  15. <div class="modal-content">
  16. <div class="modal-header">
  17. <h5 class="modal-title">New Part Number</h5>
  18. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  19. </div>
  20. <div class="modal-body">
  21. <input id="txt_parentid" name="parentid" type="text" class="form-control">
  22. <input id="hdn_newpn" name="text1" type="hidden" class="form-control" placeholder="new part number"><input id="hdn_zeroo" name="text1" type="hidden" class="form-control" value="0">
  23. <p id="para_productionparts">Select Part Type</p>
  24. <select id="sel_parttypes" class="form-select" name="parttypes" dmx-bind:options="api_parttypes.data" optiontext="name" optionvalue="id" required="" dmx-bind:value="api1.data.partnumber.partcode.parttype.id" dmx-on:changed="api_partcodes.load({})">
  25. <option selected="" value="0">Select</option>
  26. </select>
  27. <p id="para_nonproductionparts">Select Parent Part Code</p><select id="sel_nonproductionparts" class="form-select" name="nonproductionparts" dmx-on:changed="run([{run:{action:`txt_parentid.setValue(selectedValue)`,name:'SetTextVal',outputType:'text'}},{run:{action:`api_childcodes.load({})`,name:'setchildren',outputType:'text'}},{run:{action:`sel_productionparts.setSelectedIndex(\'if(selectedValue&gt;0){sel_productionparts.selectedValue=0;}\')`,outputType:'text'}}])" dmx-bind:options="api_partcodes.data" optiontext="name" optionvalue="id" required="" dmx-bind:value="api1.data.partnumber.partcode.id">
  28. <option value="0">Select</option>
  29. </select>
  30. <p>Select Part Code</p>
  31. <select id="sel_childpartcode" class="form-select" dmx-bind:options="api_childcodes.data" optiontext="name" optionvalue="id" name="childpartcodes" dmx-on:changed="txt_parentid.setValue(selectedValue);api_getcodebyid.load({})">
  32. <option value="0">Select</option>
  33. </select>
  34. <p>Description</p>
  35. <textarea id="txt_ptdescription" class="form-control" name="ptdescription" required="" dmx-bind:value="api1.data.partnumber.description"></textarea>
  36. <p>Comments</p>
  37. <textarea id="txt_ptcomments" class="form-control" name="comments" required="" dmx-bind:value="api1.data.partnumber.comments"></textarea>
  38. </div>
  39. <div class="modal-footer">
  40. <button type="button" class="btn btn-danger" data-bs-dismiss="modal" id="btn_closenewpar">Cancel</button>
  41. <button type="button" class="btn btn-primary" dmx-on:click="txt_partnumber.setValue(sel_parttypes.value.concat(sel_nonproductionparts.value.concat(hdn_newpn.value)));txt_rev.setValue(hdn_zeroo.value);modal1.hide()">Save changes</button>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="container">
  47. <h1>DSpec</h1>
  48. <div class="row">
  49. <div class="col" style="width: 10%;">
  50. <p style="text-align: right;">Part Number</p>
  51. </div>
  52. <div class="col" style="width: 20%;">
  53. <input id="txt_partnumber" name="text1" type="text" class="form-control" placeholder="Part Number" dmx-bind:value="api1.data.partnumber.number">
  54. </div>
  55. <div class="col" style="width: 10%;">
  56. <p style="text-align: right;">Rev</p>
  57. </div>
  58. <div class="col" style="width: 10%;"><input id="txt_rev" name="rev" type="text" class="form-control" placeholder="rev" dmx-bind:value="api1.data.revisionlevel"></div>
  59. <div class="col" style="width: 50%;">
  60. <button id="btn_newpartnumber" class="btn text-danger fw-bold bg-secondary bg-opacity-50 ms-n1" dmx-on:click="txt_rev.setValue((txt_rev.value.toNumber() + 1))">New Rev</button>
  61. </div>
  62. </div>
  63. <div class="row">
  64. <div class="col">
  65. <div class="form-group mb-3 row">
  66. <label for="input3" class="col-sm-2 col-form-label">Effective Date</label>
  67. <div class="col-sm-10">
  68. <input type="text" class="form-control" id="input3" name="input3" aria-describedby="input3_help" placeholder="Enter some text" dmx-bind:value="api1.data.partnumber.createdate">
  69. </div>
  70. </div>
  71. </div>
  72. <div class="col">
  73. <div class="form-group mb-3 row">
  74. <label for="input2" class="col-sm-2 col-form-label">Work Instruction</label>
  75. <div class="col-sm-10">
  76. <input type="text" class="form-control" id="input2" name="input2" aria-describedby="input2_help" placeholder="Enter some text" width="20%" dmx-bind:value="api1.data.workinstruction">
  77. </div>
  78. </div>
  79. </div>
  80. <div class="col">
  81. <div class="form-group mb-3 row">
  82. <label for="input1" class="col-sm-2 col-form-label">Application</label>
  83. <div class="col-sm-10">
  84. <input type="text" class="form-control" id="input1" name="input1" aria-describedby="input1_help" placeholder="Enter some text" dmx-bind:value="api1.data.application">
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. <div class="row">
  90. <div class="col">
  91. <p>Reason for change</p>
  92. <textarea id="text1" class="form-control" dmx-bind:value="api1.data.reasonforchange"></textarea>
  93. </div>
  94. </div>
  95. <div class="row">
  96. <div class="col">
  97. <p>Validation of Change</p>
  98. <textarea id="text2" class="form-control" dmx-bind:value="api1.data.validation"></textarea>
  99. </div>
  100. </div>
  101. <div class="row">
  102. <div class="col">
  103. <p>Notes</p>
  104. <textarea id="text3" class="form-control" dmx-bind:value=""></textarea>
  105. </div>
  106. </div>
  107. <div class="row">
  108. <div class="col">
  109. <form id="frm_updatebom" method="post">
  110. <div class="row">
  111. <div class="col">
  112. <div class="table-responsive">
  113. <table class="table">
  114. <thead>
  115. <tr>
  116. <th scope="col" class="text-center">Part #</th>
  117. <th scope="col" class="text-center">Description</th>
  118. <th scope="col" class="text-center">Old</th>
  119. <th scope="col" class="text-center">New</th>
  120. <th scop="col" class="text-center">Action</th>
  121. </tr>
  122. </thead>
  123. <tbody is="dmx-repeat" id="repeat1" dmx-bind:repeat="api1.data.boms" key="id">
  124. <tr>
  125. <td style="width: 25%;">
  126. <input id="txt_bomupdateid" name="bomupdateid" type="text" class="form-control" disabled="true" dmx-bind:value="id">
  127. <input id="txt_updatebompn" name="updatebompn" type="text" class="form-control" style="width: 100%;" dmx-bind:value="$index" disabled="true">
  128. </td>
  129. <td style="width: 50%;">
  130. <input id="txt_updatebomddsc" name="updatebomdescription" type="text" class="form-control" style="width: 100%" dmx-bind:value="partnumber.description" disabled="true">
  131. </td>
  132. <td style="width: 10%">
  133. <input id="txt_updatebomold" name="updatebomold" type="text" class="form-control" dmx-bind:value="old">
  134. </td>
  135. <td style="width: 10%">
  136. <input id="txt_updatebomnew" name="updatebomnew" type="text" style="width: 100%" class="form-control" dmx-bind:value="new">
  137. </td>
  138. <td style="width: 10%">
  139. <button id="btn_bomupdate" class="btn btn-primary" dmx-on:click="api_deleteItem.load({});api_bom.load({})">Delete</button>
  140. </td>
  141. </tr>
  142. </tbody>
  143. </table>
  144. </div>
  145. </div>
  146. </div>
  147. </form>
  148. </div>
  149. </div>
  150. <div class="row">
  151. <div class="col">
  152. <form id="frm_newbomitem" method="post" is="dmx-serverconnect-form" action="/api/BOM/NewBomItem" dmx-on:success="run({run:{action:`api1.load({});api_bom.load({})`,outputType:'text'}})">
  153. <input id="txt_bomdspecid" name="bomdspecid" type="text" class="form-control d-print-none visually-hidden" dmx-bind:value="api1.data.id">
  154. <dmx-api-action id="frmapi_getpartbynum" noload="true" url="http://vapor.prelub.com/api/v1.0/partnumbers/num/" dmx-bind:url="'http://vapor.prelub.com/api/v1.0/partnumbers/num/'+txt_newpnbom.value"></dmx-api-action>
  155. <div class="row">
  156. <div class="col">
  157. <table class="table">
  158. <tbody>
  159. <tr>
  160. <td style="width: 25%">
  161. <input id="txt_newbompnid" name="newbompnid" type="text" class="form-control d-print-none visually-hidden" dmx-bind:value="frmapi_getpartbynum.data.id">
  162. <input id="txt_newpnbom" name="newbompn" type="text" class="form-control" dmx-bind:value="frmapi_getpartbynum.data.number" dmx-on:changed="frmapi_getpartbynum.load({})">
  163. </td>
  164. <td style="width: 50%"><input id="txt_newdesbom" name="newbomdesc" type="text" class="form-control" dmx-bind:value="frmapi_getpartbynum.data.description"></td>
  165. <td style="width: 10%"><input id="txt_newoldbom" name="newbomold" type="text" class="form-control"></td>
  166. <td style="width: 10%"><input id="txt_newnewbom" name="newbomnew" type="text" class="form-control"></td>
  167. <td style="width: 5%">
  168. <button id="btn_savenewbomitem" class="btn btn-primary" type="submit">Add</button>
  169. </td>
  170. </tr>
  171. </tbody>
  172. </table>
  173. </div>
  174. </div>
  175. </form>
  176. </div>
  177. </div>
  178. </div>
  179. <meta name="ac:route" content="/dspec">