modify db and add doc for it

This commit is contained in:
JBthePenguin 2021-06-06 12:02:18 +02:00
parent 12a11611c6
commit 8dcd7670a5
10 changed files with 407 additions and 21 deletions

328
doc_db/LayoutwithTools.svg Normal file
View File

@ -0,0 +1,328 @@
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='1312' height='526' viewBox='0 0 1312 526' >
<script type='text/ecmascript'>
<![CDATA[
function hghl(el) { for ( var i in el ){ var elem = document.getElementById(el[i]); if ( elem != null ) elem.setAttribute('class','highlight'); } }
function uhghl(el) { for ( var i in el ){ var elem = document.getElementById(el[i]); if ( elem != null ) elem.setAttribute('class','scene'); } }
]]>
</script>
<style type='text/css'>
text { fill:#c5c5c5; font-family: System, 'Trebuchet MS', Dialog; font-size:14.083333015441895px; }
a text:hover { fill:#ffffff; text-shadow: 0px 0px 6px #d0ce00; font-size:13px; }
text.highlight { fill:#e79a33; text-shadow: 0px 0px 4px #674210; font-size:13px; }
text.white { fill:#c5c5c5; }
text.colType { fill:#737373; }
text.relName { fill:#85909a; }
text.legendTitle { fill:#58c101; font-weight:bold; }
text.legendSubTitle { fill:#b0b0b0; font-size:11px; }
path { stroke:#6f8189; stroke-width:1.45; fill:none;}
path.virtual { stroke:#22834e; }
path.logo { fill:#b5c8a9;fill-opacity:1;stroke-width:0.3;stroke:#222222; }
path.dotted { stroke-dasharray:4,2; }
path.scene { stroke-width:10; opacity:0;}
path.highlight { stroke-width:3; stroke:#6db3d6; opacity:0.6;}
rect.entity { fill:#252627; stroke:#303132; stroke-width:1;shape-rendering:crispEdges; filter:url(#shadow); }
line.delim { stroke-width:1; shape-rendering:crispEdges; }
text.callout { fill:#dfe0c5; font-family: System, 'Trebuchet MS', Dialog; font-size:15.166666984558105px; }
rect.callout { fill:url(#calloutGradient); stroke:#3f3f3f; stroke-width:0.5; }
rect.grp { stroke:#5a5a5a; stroke-width:1.7; opacity:0.35; }
path.st0 { fill:#2a2b2c;stroke-width:0.6;stroke:#3a3c3f; }
</style>
<defs>
<pattern id="layoutBgA" width="60" height="34.64" patternUnits="userSpaceOnUse">
<path class='st0' d='M 0 17.32 L 10 0 L 30 0 L 40 17.326 L 30 34.64 L 10 34.64 Z' />
<path class='st0' d='M 40 17.32 L 60 17.32 Z' />
</pattern>
<pattern id='layoutBgB' width='10' height='20' x='0' y='0' patternUnits="userSpaceOnUse">
<line x1='-2' y1='1' x2='7' y2='10' stroke='#323232' stroke-width='.5'/>
<line x1='-2' y1='6' x2='7' y2='15' stroke='#323232' stroke-width='.5'/>
<line x1='-2' y1='-4' x2='7' y2='5' stroke='#323232' stroke-width='.5'/>
</pattern>
<pattern id='layoutBgTr' width='300' height='300' x='0' y='0' patternUnits="userSpaceOnUse">
<path class='st0' d='m 62.011835,91.267143 c 3.536475,3.175214 2.262669,8.705999 -1.637711,11.015197 -3.594697,5.8423 -6.34682,-2.892623 -9.715478,-4.653898 -5.609222,-2.838926 2.050802,-6.680123 4.77004,-8.319046 2.334696,-0.724067 4.935143,0.312302 6.583149,1.957747 z m -2.720492,2.538595 c -2.698397,-3.517732 -9.282815,1.269287 -3.69635,3.568637 2.765331,5.605665 7.052809,-0.56184 3.69635,-3.568637 z' />
<path class='st0' d='m 72.25864,84.624638 c 4.108046,3.143003 -0.737059,6.895259 -1.994918,8.323564 -3.586718,5.561143 -6.495079,-4.197379 -10.07759,-5.582178 -4.443422,-1.088878 1.349298,-7.249213 2.503526,-2.503449 2.464639,4.517161 2.304019,-3.70697 6.291113,-1.995914 1.280083,0.137865 2.410691,0.864819 3.277869,1.757977 z m -2.646109,2.323242 c -4.797162,-3.078383 -2.810517,6.305507 0.515161,1.990646 0.296432,-0.688582 0.01209,-1.493412 -0.515161,-1.990646 z' />
<path class='st0' d='m 78.230641,79.436735 c 4.142121,3.027466 -2.020102,10.435276 -3.450543,5.477315 3.306312,-5.248112 -9.186019,-2.220094 -5.805994,-8.77679 -0.544141,-3.93011 6.797826,-2.102227 3.386015,0.245477 -0.181085,2.915838 4.637371,1.019311 5.870522,3.053982 z' />
<path class='st0' d='m 82.744502,72.597397 c -4.901605,1.926521 1.146497,6.285555 2.559694,2.225783 6.21817,3.539297 -6.640186,8.416664 -7.590325,1.997457 -2.24365,-2.914883 4.026676,-10.148618 5.030631,-4.22324 z' />
<path class='st0' d='m 90.727458,64.259158 c 1.583987,1.690029 3.321317,3.2696 4.81267,5.026353 -2.535706,6.849794 -6.445583,-5.918773 -8.388458,-0.167017 0.782768,2.03426 5.877405,3.752079 2.670979,5.711199 -3.315119,1.519161 -5.782422,-5.157931 -8.858893,-6.780537 -4.229842,-1.139816 1.510134,-7.074128 2.586227,-2.385939 3.141198,5.495193 1.840537,-5.598295 7.177489,-1.404062 z' />
<path class='st0' d='m 99.622027,58.374253 c 1.493293,1.9548 -6.281936,7.024659 -0.885258,4.740447 0.386238,-4.434477 6.131941,-1.133173 2.175851,1.618005 -4.421491,6.12739 -13.666659,-3.151506 -7.058299,-7.136537 1.785129,-1.119329 4.348209,-0.743179 5.767706,0.778085 z m -2.900824,1.89746 c -3.608188,-2.208543 -2.280489,5.00803 -0.12563,0.329531 z' />
<path class='st0' d='m 115.18023,50.570441 c -1.61703,5.201678 -4.6204,-0.364502 -7.01598,-1.749619 -4.40977,2.122562 4.89641,4.913939 1.89606,7.018157 -2.48061,3.877635 -4.11404,-4.060614 -7.01192,-2.6391 -1.76318,3.107252 7.28394,6.252304 0.87346,7.876177 -1.74515,-2.956649 -9.055498,-5.610518 -3.950378,-8.66062 1.696478,1.897023 1.770418,-5.43503 5.347308,-3.072411 -0.44014,-5.474701 6.11995,-4.950882 7.7846,-0.815355 0.69076,0.682329 1.39587,1.351469 2.07685,2.042771 z' />
<path class='st0' d='m 120.54891,39.417125 c 2.50681,1.334124 4.80466,4.941837 0.75044,5.297362 -0.46414,1.89865 -5.25369,5.602652 -8.01742,1.815475 -3.87345,-2.809139 -0.0676,-7.603869 2.3036,-8.133924 1.6795,-3.853018 3.16703,-1.199465 4.96338,1.021087 z m -2.2464,2.175828 c -4.8049,-2.992167 -3.08987,6.380358 0.42374,2.036159 0.33052,-0.677508 0.12099,-1.525836 -0.42374,-2.036159 z' />
<path class='st0' d='m 128.50836,24.06821 c -5.10403,3.035506 3.20535,6.383175 5.05938,9.450276 -0.91853,2.95886 -4.06493,3.650723 -5.34691,0.265618 -2.25715,-2.089033 -4.65672,-6.948595 -7.07024,-2.584686 -4.71758,-3.764394 3.81217,-5.812054 5.12382,-9.226328 0.75738,0.677487 1.38637,1.498638 2.23389,2.095175 z' />
<path class='st0' d='m 137.14366,22.299812 c -3.09615,2.259885 0.71537,4.412454 1.99042,6.435866 -3.08975,5.080354 -5.91384,-2.98648 -8.92144,-4.094939 1.44369,-3.219573 3.3497,-1.335928 4.27156,-4.41058 0.97822,-0.894325 1.75044,1.871047 2.65946,2.069653 z' />
<path class='st0' d='m 136.85093,14.890174 c 2.31562,5.283511 -7.17975,1.771993 -1.29675,-0.475107 l 0.7108,0.08973 z m 4.867,5.317354 c 2.56912,1.439678 4.26517,4.725219 0.30678,5.233637 -1.56592,-3.098864 -9.51683,-5.749448 -3.64502,-8.633714 1.17746,0.325095 2.15375,2.591149 3.33824,3.400077 z' />
<path class='st0' d='m 149.95578,11.976423 c 2.50679,1.334142 4.80455,4.94192 0.75041,5.297394 -0.4641,1.898604 -5.25368,5.602645 -8.0174,1.81545 -3.87347,-2.80918 -0.0676,-7.603844 2.30366,-8.133968 1.67949,-3.8530525 3.16695,-1.1993573 4.96333,1.021124 z m -2.24641,2.175828 c -4.80489,-2.992177 -3.08986,6.380343 0.42374,2.036167 0.33055,-0.677518 0.121,-1.52585 -0.42374,-2.036167 z' />
<path class='st0' d='m 153.26135,7.538431 c 2.60497,1.5799548 6.03999,5.944272 1.08117,6.050232 -2.53319,-3.231828 -7.20316,-6.4304525 -8.84748,-9.4582682 1.89121,-2.8664883 3.78452,-2.247699 5.38514,0.8929426 0.78017,0.8503859 1.57195,1.6911437 2.38118,2.5150667 z' />
</pattern>
<linearGradient id='groupUnderTitleLine' x1='0%' y1='0%' x2='100%' y2='0%' >
<stop offset='0%' stop-color='#676767' stop-opacity='0.7'/>
<stop offset='100%' stop-color='#676767' stop-opacity='0' />
</linearGradient>
<radialGradient id='calloutGradient' cx='25%' cy='20%' r='80%' fx='10%' fy='10%'>
<stop offset='0%' stop-color='#64450d' />
<stop offset='100%' stop-color='#473619' />
</radialGradient>
<filter id='shadow' width='120%' height='120%'>
<feOffset result='offOut' in='SourceGraphic' dx='0' dy='0' />
<feColorMatrix result='matrixOut' in='offOut'
values='0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.1 0 0 0 0 0 0.2 0' />
<feGaussianBlur result='blurOut' in='matrixOut' stdDeviation='4' />
<feBlend in='SourceGraphic' in2='blurOut' />
</filter>
<filter id='fkShadow' height='130%'>
<feGaussianBlur in='SourceAlpha' stdDeviation='1.5'/> <!-- stdDeviation is how much to blur -->
<feOffset dx='1.2' dy='1.2' result='offsetblur'/> <!-- how much to offset -->
<feMerge>
<feMergeNode/> <!-- this contains the offset blurred image -->
<feMergeNode in='SourceGraphic'/> <!-- this contains the element that the filter is applied to -->
</feMerge>
</filter>
<radialGradient id='legendGradient' cx='5%' cy='5%' r='100%' >
<stop offset='0%' stop-color='#42505b' stop-opacity='1'/>
<stop offset='100%' stop-color='#33393d' stop-opacity='1' />
</radialGradient>
<symbol id='calloutArrowDown' >
<path d='M 0,0 L 8,12 L 16,0 z' style='fill:#f8f6d1;stroke:none; filter: url(#shadow);' />
<path d='M 0,0 L 8,12 L 16,0' style='stroke:#bebdbd; stroke-width:0.5;' />
</symbol>
<symbol id='calloutArrowUp' >
<path d='M 0,16 L 8,4 L 16,16 z' style='fill:#ffffff; stroke:none; filter: url(#shadow);' />
<path d='M 0,16 L 8,4 L 16,16' style='stroke:#bebdbd; stroke-width:0.5;' />
</symbol>
<symbol id='pk' >
<g transform='scale(0.99)'>
<path style='fill:#fffa7d;stroke:#765f03;stroke-width:0.6;stroke-linecap:round;stroke-linejoin:round;'
d='M 9.3678877,3.5695485 C 9.1030218,3.2729386 9.0796382,2.7628519 9.3396185,2.4517097 9.5449651,2.1956495 9.9040386,2.0980533 10.199638,2.2169415 10.533525,2.3415459 10.775153,2.706942 10.750675,3.0842709 10.737029,3.3980003 10.541153,3.699122 10.258248,3.8066067 9.966649,3.9250429 9.6169668,3.8418805 9.4008073,3.6062324 9.3894892,3.5943518 9.3785264,3.582104 9.3678886,3.5695487 z M 11.226617,6.9916004 C 11.888137,6.3548946 12.293488,5.4172188 12.311087,4.442353 12.378144,2.7379364 11.248678,1.0541269 9.7322318,0.44767357 8.3887112,-0.1280313 6.7865012,0.26822889 5.8918395,1.4007929 5.080823,2.3839145 4.9336815,3.8452096 5.3635544,5.101615 L 4.3670905,5.315913 C 4.0664984,5.3682645 4.0967703,5.6316724 4.2574957,5.8208829 L 4.9124,6.5655244 4.1543436,7.2512357 3.2136002,7.2163506 3.1674775,8.5586827 2.0406832,8.5086512 1.5965306,8.9299953 1.5471661,10.179833 0.75616674,10.195223 0.2112857,10.758575 0.15354288,11.735988 0.07199052,12.765553 c 0.36440953,0.238225 0.79006967,0.195492 1.44938278,-0.02675 L 6.3033562,8.1282037 6.8217102,8.6765688 C 6.9985465,8.8799427 7.3003699,8.7497574 7.358381,8.5016252 L 7.4938877,7.5084164 c 0.8537488,0.3985387 1.8303125,0.4711541 2.6851793,0.1427713 0.393927,-0.1407258 0.746858,-0.3701772 1.04755,-0.6595873 z'/>
<path d='M 6.8014948,6.3102123 0.15369063,13.024481 0.21560535,12.141962 6.0062342,6.2683782 z'
style='fill:#ffe5a5;fill-opacity:1;stroke:#854e31;stroke-width:0.06912433;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:3.00300009'/>
</g>
</symbol>
<symbol id='idx1' >
<g transform='scale(0.99)'>
<rect width='4' height='4' x='7' y='1' style='fill:#ffff3f;stroke:#e3a23a;stroke-width:0.6;' ry='0.83'/>
<rect width='4' height='4' x='1' y='7' style='fill:#ffff3f;stroke:#e3a23a;stroke-width:0.6;' ry='0.832'/>
<rect width='4' height='4' x='7' y='7' style='fill:#ffff3f;stroke:#e3a23a;stroke-width:0.6;' ry='0.832'/>
</g>
</symbol>
<symbol id='idx2' >
<g transform='scale(0.99)'>
<rect width='4' height='3' x='6' y='1' style='fill:#7fc8e9;stroke:#2f6f8c;stroke-width:0.6;' ry='0.83'/>
<rect width='7' height='3' x='3' y='6' style='fill:#7fc8e9;stroke:#2f6f8c;stroke-width:0.6;' ry='0.832'/>
</g>
</symbol>
<symbol id='unq' >
<g transform='scale(0.99)'>
<rect style='fill:#fbea8e;stroke:#7e4d31;stroke-width:0.71934468;stroke-linecap:round;stroke-linejoin:round;'
width='2.29' height='8.43' x='7.48' y='-0.76' ry='1.14' transform='matrix(0.701,0.713,-0.727,0.685,0,0)' />
<path style='fill:#323232;stroke:#858585;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;'
d='m 26.04,8.64 a 4.13,4.13 0 1 1 -8.26,0 4.13,4.13 0 1 1 8.26,0 z'
transform='matrix(1.025,0,0,0.987,-14.690,-3.862)' />
<text x='5.8' y='7.4' style='font-size:7px;fill:#8a8a8a;'>1</text>
</g>
</symbol>
<symbol id='idx' >
<g transform='scale(0.99)'>
<rect style='fill:#fbea8e;stroke:#7e4d31;stroke-width:0.71934468;stroke-linecap:round;stroke-linejoin:round;'
width='2.29' height='8.43' x='7.48' y='-0.76' ry='1.14' transform='matrix(0.701,0.713,-0.727,0.685,0,0)' />
<path style='fill:#323232;stroke:#858585;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;'
d='m 26.04,8.64 a 4.13,4.13 0 1 1 -8.26,0 4.13,4.13 0 1 1 8.26,0 z'
transform='matrix(1.025,0,0,0.987,-14.690,-3.862)' />
</g>
</symbol>
<symbol id='fk' >
<g transform='scale(0.87)'>
<path style='fill:#3791c5;stroke:#3791c5;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 12.48,0.33 7.07,0.89 9.067,2.974 0.329,11.731 1.073,12.597 9.811,3.841 11.77,5.78 z' />
</g>
</symbol>
<symbol id='ref' >
<g transform='scale(0.87)'>
<path style='fill:#f3e1b7;stroke:#f3e1b7;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 0.10,12.70 5.31,12.15 3.40,10.06 11.82,1.32 11.11,0.45 2.68,9.19 0.80,7.24 z'/>
</g>
</symbol>
<symbol id='flag0' >
<g transform='scale(0.92)'>
<path style='fill:#b7d0f6;stroke:#404040;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 0.12,12.67 0.16,7.22 C 2.59,7.22 4.13,8.78 9.22,4.22 5.68,4.98 2.53,4.50 0.09,1.80 z'/>
</g>
</symbol>
<symbol id='flag1' >
<g transform='scale(0.92)'>
<path style='fill:#f4a393;stroke:#404040;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 0.12,12.67 0.16,7.22 C 2.59,7.22 4.13,8.78 9.22,4.22 5.68,4.98 2.53,4.50 0.09,1.80 z'/>
</g>
</symbol>
<symbol id='flag2' >
<g transform='scale(0.92)'>
<path style='fill:#77ec8b;stroke:#404040;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 0.12,12.67 0.16,7.22 C 2.59,7.22 4.13,8.78 9.22,4.22 5.68,4.98 2.53,4.50 0.09,1.80 z'/>
</g>
</symbol>
<symbol id='nn' >
<path style='stroke:#9b3e50;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;'
d='M 0,0 3,3 M 0,3 3,0 z'/>
</symbol>
<symbol id='view' >
<g transform='scale(0.99)'>
<line x1='12' y1='6' x2='19' y2='0' stroke='gray' stroke-width='0.5' />
<line x1='0' y1='6' x2='7' y2='0' stroke='gray' stroke-width='0.5' />
<circle cx='3' cy='6' r='3' fill='#f9ebbc' stroke='gray' stroke-width='0.5'/>
<circle cx='10' cy='6' r='3' fill='#f9ebbc' stroke='gray' stroke-width='0.5'/>
</g>
</symbol>
</defs>
<defs> <marker id='arrow01' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 8.000,4.000 L 16.000,4.000 L 8.000,0.000 L 16.000,4.000 L 8.000,8.000' />
</marker>
<marker id='arrow1' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 8.000,4.000 L 16.000,4.000 L 8.000,0.000 L 16.000,4.000 L 8.000,8.000' />
</marker>
<marker id='foot01' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 0.00,4.00 L 16.00,4.00 z' />
<circle cx='12.00' cy='4.00' r='2.67' style='fill:white;stroke:#5e554d;' />
<path d='M 4.00,0.00 L 4.00, 8.00 z' />
</marker>
<marker id='foot0p' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 0.00,4.00 L 16.00,4.00 z' />
<circle cx='12.00' cy='4.00' r='2.67' style='fill:white;stroke:#5e554d;' />
<path d='M 0.00,0.00 L 8.00,4.00 L 0.00,8.00' />
</marker>
<marker id='foot1' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 0.00,4.00 L 16.00,4.00 z' />
<path d='M 8.00,0.00 L 8.00, 8.00 z' />
<path d='M 4.00,0.00 L 4.00, 8.00 z' />
</marker>
<marker id='foot1p' viewBox='0 0 16.00 8.00' refX='8.00' refY='4.00' markerWidth='16.00' markerHeight='8.00' orient='auto'>
<path d='M 0.00,4.00 L 16.00,4.00 z' />
<path d='M 8.00,0.00 L 8.00, 8.00 z' />
<path d='M 0.00,0.00 L 8.00,4.00 L 0.00,8.00' />
</marker>
<linearGradient id='tbg_BEF4D0' x1='0%' y1='0%' x2='0%' y2='100%' >
<stop offset='0%' stop-color='#1C7F3B' />
<stop offset='40%' stop-color='#1D6232' />
<stop offset='100%' stop-color='#235031' />
</linearGradient>
<linearGradient id='tbg_F4BEBE' x1='0%' y1='0%' x2='0%' y2='100%' >
<stop offset='0%' stop-color='#7F1C1C' />
<stop offset='40%' stop-color='#621D1D' />
<stop offset='100%' stop-color='#502323' />
</linearGradient>
<linearGradient id='tbg_BED3F4' x1='0%' y1='0%' x2='0%' y2='100%' >
<stop offset='0%' stop-color='#1C417F' />
<stop offset='40%' stop-color='#1D3762' />
<stop offset='100%' stop-color='#233450' />
</linearGradient>
<linearGradient id='tbg_BEE9F4' x1='0%' y1='0%' x2='0%' y2='100%' >
<stop offset='0%' stop-color='#1C697F' />
<stop offset='40%' stop-color='#1D5262' />
<stop offset='100%' stop-color='#234650' />
</linearGradient>
</defs>
<!-- == Desktop == -->
<rect x='1' y='1' width='1310' height='524' rx='8' ry='8' style='fill:url(#layoutBgA); stroke:#84827b; stroke-width:0.5;' />
<rect x='1' y='1' width='1310' height='524' rx='8' ry='8' style='fill:url(#layoutBgTr);' />
<!-- == Legend == -->
<g transform='translate(10,10)'>
<rect x='10' y='10' width='230' height='56' rx='6' ry='6' style='fill:url(#legendGradient);filter:url(#shadow);'/>
<text x='20' y='25' class='legendTitle' >Plugin materiels database</text>
<a xlink:href='https://dbschema.com'><text x='20' y='39' class='legendSubTitle'><tspan>(c) DbSchema</tspan></text></a>
<text x='20' y='53' class='legendSubTitle'><tspan>Hover columns to read the comments.</tspan></text>
</g>
<g transform='translate(0,110)'>
<!-- == Fk 'plugin_materiels_entry_Fk_plugin_materiels_entry' == -->
<path id='plugin_materiels_entry_Fk_plugin_materiels_entry' onmouseover="hghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_entry.equipment_id','Default.plugin_materiels_equipment.id'])" onmouseout="uhghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_entry.equipment_id','Default.plugin_materiels_equipment.id'])" transform='translate(8,0)' class='scene' d='M 960,128L 760,128Q 752,128 752,136L 752,280Q 752,288 744,288L 736,288' >
<title>Fk Fk_plugin_materiels_entry
plugin_materiels_entry ref plugin_materiels_equipment ( equipment_id -&gt; id )</title>
</path>
<path transform='translate(8,0)' marker-start='url(#foot1)' marker-end='url(#arrow1)' d='M 960,128L 760,128Q 752,128 752,136L 752,280Q 752,288 744,288L 736,288' ><title>Fk Fk_plugin_materiels_entry
plugin_materiels_entry ref plugin_materiels_equipment ( equipment_id -&gt; id )</title></path>
<text x='786' y='123' transform='rotate(0 786,123)' class='relName'>Fk_plugin_materiels_entry</text>
<!-- == Fk 'plugin_materiels_output_Fk_plugin_materiels_output' == -->
<path id='plugin_materiels_output_Fk_plugin_materiels_output' onmouseover="hghl(['plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_output.equipment_id','Default.plugin_materiels_equipment.id'])" onmouseout="uhghl(['plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_output.equipment_id','Default.plugin_materiels_equipment.id'])" transform='translate(8,0)' class='scene' d='M 960,288L 736,288' >
<title>Fk Fk_plugin_materiels_output
plugin_materiels_output ref plugin_materiels_equipment ( equipment_id -&gt; id )</title>
</path>
<path transform='translate(8,0)' marker-start='url(#foot1)' d='M 960,288L 736,288' ><title>Fk Fk_plugin_materiels_output
plugin_materiels_output ref plugin_materiels_equipment ( equipment_id -&gt; id )</title></path>
<text x='777' y='283' transform='rotate(0 777,283)' class='relName'>Fk_plugin_materiels_output</text>
<!-- == Fk 'plugin_materiels_equipment_Fk_plugin_materiels_equipment' == -->
<path id='plugin_materiels_equipment_Fk_plugin_materiels_equipment' onmouseover="hghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_equipment.category_id','Default.plugin_materiels_category.id'])" onmouseout="uhghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_equipment.category_id','Default.plugin_materiels_category.id'])" transform='translate(8,0)' class='scene' d='M 496,304L 256,304' >
<title>Fk Fk_plugin_materiels_equipment
plugin_materiels_equipment ref plugin_materiels_category ( category_id -&gt; id )</title>
</path>
<path transform='translate(8,0)' marker-start='url(#foot1)' marker-end='url(#arrow1)' d='M 496,304L 256,304' ><title>Fk Fk_plugin_materiels_equipment
plugin_materiels_equipment ref plugin_materiels_category ( category_id -&gt; id )</title></path>
<text x='283' y='299' transform='rotate(0 283,299)' class='relName'>Fk_plugin_materiels_equipment</text>
<!-- == Table 'plugin_materiels_entry' == -->
<rect class='entity' style='stroke:none;' x='976' y='40' width='288' height='144' rx='8' ry='8' />
<path d='M 976 68 L 976 48 Q 976 40 984 40 L 1256 40 Q 1264 40 1264 48 L 1264 68 L976 68 ' style='fill:url(#tbg_BEF4D0);stroke:1;stroke-opacity:0.1;' />
<rect class='entity' x='976' y='40' width='288' height='144' rx='8' ry='8' style='fill:none;stroke:#272C28'/>
<a xlink:href='#Default.plugin_materiels_entry'><text x='1035' y='59' >plugin_materiels_entry</text><title>Table Default.plugin_materiels_entry</title></a>
<use id='nn' x='978' y='77' xlink:href='#nn'/><use id='pk' x='978' y='76' xlink:href='#pk'><title>Pk pk_plugin_materiels_entry ( id ) </title></use><a xlink:href='#Default.plugin_materiels_entry_id'><text id='Default.plugin_materiels_entry.id' x='995' y='87'>id</text><title>id
* integer</title></a>
<text x='1248' y='88' text-anchor='end' class='colType'>integer</text> <use id='nn' x='978' y='93' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_entry_kind'><text id='Default.plugin_materiels_entry.kind' x='995' y='103'>kind</text><title>kind
* varchar(20)
Achat, Don, Récupération, ...</title></a>
<text x='1248' y='104' text-anchor='end' class='colType'>varchar(20)</text> <use id='nn' x='978' y='109' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_entry_equipment_number'><text id='Default.plugin_materiels_entry.equipment_number' x='995' y='119'>equipment_number</text><title>equipment_number
* integer</title></a>
<text x='1248' y='120' text-anchor='end' class='colType'>integer</text> <use id='nn' x='978' y='125' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_entry_equipment_id'><text id='Default.plugin_materiels_entry.equipment_id' x='995' y='135' onmouseover="hghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_equipment.id'])" onmouseout="uhghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_equipment.id'])">equipment_id</text><title>equipment_id
* integer</title></a>
<text x='1248' y='136' text-anchor='end' class='colType'>integer</text><a xlink:href='#Default.plugin_materiels_entry.equipment_id'><use id='fk' x='1252' y='124' xlink:href='#fk'/><title>References plugin_materiels_equipment ( equipment_id -&gt; id ) </title></a>
<use id='nn' x='978' y='141' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_entry_entry_date'><text id='Default.plugin_materiels_entry.entry_date' x='995' y='151'>entry_date</text><title>entry_date
* date</title></a>
<text x='1248' y='152' text-anchor='end' class='colType'>date</text> <a xlink:href='#Default.plugin_materiels_entry_additional_comment'><text id='Default.plugin_materiels_entry.additional_comment' x='995' y='167'>additional_comment</text><title>additional_comment
varchar(255)</title></a>
<text x='1248' y='168' text-anchor='end' class='colType'>varchar(255)</text>
<!-- == Table 'plugin_materiels_output' == -->
<rect class='entity' style='stroke:none;' x='976' y='200' width='288' height='144' rx='8' ry='8' />
<path d='M 976 228 L 976 208 Q 976 200 984 200 L 1256 200 Q 1264 200 1264 208 L 1264 228 L976 228 ' style='fill:url(#tbg_F4BEBE);stroke:1;stroke-opacity:0.1;' />
<rect class='entity' x='976' y='200' width='288' height='144' rx='8' ry='8' style='fill:none;stroke:#2C2727'/>
<a xlink:href='#Default.plugin_materiels_output'><text x='1031' y='219' >plugin_materiels_output</text><title>Table Default.plugin_materiels_output</title></a>
<use id='nn' x='978' y='237' xlink:href='#nn'/><use id='pk' x='978' y='236' xlink:href='#pk'><title>Pk pk_plugin_materiels_output ( id ) </title></use><a xlink:href='#Default.plugin_materiels_output_id'><text id='Default.plugin_materiels_output.id' x='995' y='247'>id</text><title>id
* integer</title></a>
<text x='1248' y='248' text-anchor='end' class='colType'>integer</text> <use id='nn' x='978' y='253' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_output_kind'><text id='Default.plugin_materiels_output.kind' x='995' y='263'>kind</text><title>kind
* varchar(20)
Vente, Don, Prêt, ...</title></a>
<text x='1248' y='264' text-anchor='end' class='colType'>varchar(20)</text> <use id='nn' x='978' y='269' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_output_equipment_number'><text id='Default.plugin_materiels_output.equipment_number' x='995' y='279'>equipment_number</text><title>equipment_number
* integer</title></a>
<text x='1248' y='280' text-anchor='end' class='colType'>integer</text> <use id='nn' x='978' y='285' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_output_equipment_id'><text id='Default.plugin_materiels_output.equipment_id' x='995' y='295' onmouseover="hghl(['plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_equipment.id'])" onmouseout="uhghl(['plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_equipment.id'])">equipment_id</text><title>equipment_id
* integer</title></a>
<text x='1248' y='296' text-anchor='end' class='colType'>integer</text><a xlink:href='#Default.plugin_materiels_output.equipment_id'><use id='fk' x='1252' y='284' xlink:href='#fk'/><title>References plugin_materiels_equipment ( equipment_id -&gt; id ) </title></a>
<use id='nn' x='978' y='301' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_output_output_date'><text id='Default.plugin_materiels_output.output_date' x='995' y='311'>output_date</text><title>output_date
* date</title></a>
<text x='1248' y='312' text-anchor='end' class='colType'>date</text> <a xlink:href='#Default.plugin_materiels_output_additional_comment'><text id='Default.plugin_materiels_output.additional_comment' x='995' y='327'>additional_comment</text><title>additional_comment
varchar(255)</title></a>
<text x='1248' y='328' text-anchor='end' class='colType'>varchar(255)</text>
<!-- == Table 'plugin_materiels_category' == -->
<rect class='entity' style='stroke:none;' x='48' y='264' width='208' height='80' rx='8' ry='8' />
<path d='M 48 292 L 48 272 Q 48 264 56 264 L 248 264 Q 256 264 256 272 L 256 292 L48 292 ' style='fill:url(#tbg_BED3F4);stroke:1;stroke-opacity:0.1;' />
<rect class='entity' x='48' y='264' width='208' height='80' rx='8' ry='8' style='fill:none;stroke:#27282C'/>
<a xlink:href='#Default.plugin_materiels_category'><text x='55' y='283' >plugin_materiels_category</text><title>Table Default.plugin_materiels_category</title></a>
<use id='nn' x='50' y='301' xlink:href='#nn'/><use id='pk' x='50' y='300' xlink:href='#pk'><title>Pk pk_plugin_materiels_category ( id ) </title></use><a xlink:href='#Default.plugin_materiels_category_id'><text id='Default.plugin_materiels_category.id' x='67' y='311' onmouseover="hghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_equipment.category_id'])" onmouseout="uhghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_equipment.category_id'])">id</text><title>id
* integer</title></a>
<text x='240' y='312' text-anchor='end' class='colType'>integer</text><a xlink:href='#Default.plugin_materiels_category.id'><use id='ref' x='244' y='300' xlink:href='#ref'/><title>Referred by plugin_materiels_equipment ( category_id -&gt; id ) </title></a>
<use id='nn' x='50' y='317' xlink:href='#nn'/><use id='unq' x='50' y='316' xlink:href='#unq'><title>Unq sqlite_autoindex_plugin_materiels_category_1 ( name ) </title></use><a xlink:href='#Default.plugin_materiels_category_name'><text id='Default.plugin_materiels_category.name' x='67' y='327'>name</text><title>name
* varchar(100)</title></a>
<text x='240' y='328' text-anchor='end' class='colType'>varchar(100)</text>
<!-- == Table 'plugin_materiels_equipment' == -->
<rect class='entity' style='stroke:none;' x='512' y='248' width='224' height='112' rx='8' ry='8' />
<path d='M 512 276 L 512 256 Q 512 248 520 248 L 728 248 Q 736 248 736 256 L 736 276 L512 276 ' style='fill:url(#tbg_BEE9F4);stroke:1;stroke-opacity:0.1;' />
<rect class='entity' x='512' y='248' width='224' height='112' rx='8' ry='8' style='fill:none;stroke:#272A2C'/>
<a xlink:href='#Default.plugin_materiels_equipment'><text x='520' y='267' >plugin_materiels_equipment</text><title>Table Default.plugin_materiels_equipment</title></a>
<use id='nn' x='514' y='285' xlink:href='#nn'/><use id='pk' x='514' y='284' xlink:href='#pk'><title>Pk pk_plugin_materiels_equipment ( id ) </title></use><a xlink:href='#Default.plugin_materiels_equipment_id'><text id='Default.plugin_materiels_equipment.id' x='531' y='295' onmouseover="hghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_entry.equipment_id','plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_output.equipment_id'])" onmouseout="uhghl(['plugin_materiels_entry_Fk_plugin_materiels_entry','Default.plugin_materiels_entry.equipment_id','plugin_materiels_output_Fk_plugin_materiels_output','Default.plugin_materiels_output.equipment_id'])">id</text><title>id
* integer</title></a>
<text x='720' y='296' text-anchor='end' class='colType'>integer</text><a xlink:href='#Default.plugin_materiels_equipment.id'><use id='ref' x='724' y='284' xlink:href='#ref'/><title>Referred by plugin_materiels_entry ( equipment_id -&gt; id )
Referred by plugin_materiels_output ( equipment_id -&gt; id ) </title></a>
<use id='nn' x='514' y='301' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_equipment_category_id'><text id='Default.plugin_materiels_equipment.category_id' x='531' y='311' onmouseover="hghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_category.id'])" onmouseout="uhghl(['plugin_materiels_equipment_Fk_plugin_materiels_equipment','Default.plugin_materiels_category.id'])">category_id</text><title>category_id
* integer</title></a>
<text x='720' y='312' text-anchor='end' class='colType'>integer</text><a xlink:href='#Default.plugin_materiels_equipment.category_id'><use id='fk' x='724' y='300' xlink:href='#fk'/><title>References plugin_materiels_category ( category_id -&gt; id ) </title></a>
<use id='nn' x='514' y='317' xlink:href='#nn'/><a xlink:href='#Default.plugin_materiels_equipment_stock_number'><text id='Default.plugin_materiels_equipment.stock_number' x='531' y='327'>stock_number</text><title>stock_number
* integer</title></a>
<text x='720' y='328' text-anchor='end' class='colType'>integer</text> <use id='nn' x='514' y='333' xlink:href='#nn'/><use id='unq' x='514' y='332' xlink:href='#unq'><title>Unq sqlite_autoindex_plugin_materiels_equipment_1 ( designation ) </title></use><a xlink:href='#Default.plugin_materiels_equipment_designation'><text id='Default.plugin_materiels_equipment.designation' x='531' y='343'>designation</text><title>designation
* varchar(255)</title></a>
<text x='720' y='344' text-anchor='end' class='colType'>varchar(255)</text>
</g></svg>

After

Width:  |  Height:  |  Size: 32 KiB

55
doc_db/doc_db.md Normal file
View File

@ -0,0 +1,55 @@
## Plugin materiels database
![img](./LayoutwithTools.svg)
### Table plugin_materiels_category
| Idx | Field Name | Data Type |
|---|---|---|
| *🔑 ⬋ | id| integer autoincrement |
| *🔍 | name| varchar(100) |
| Indexes |
| 🔑 primary key | pk_plugin_materiels_category ||
| 🔍 unique | u_category_name |
### Table plugin_materiels_equipment
| Idx | Field Name | Data Type |
|---|---|---|
| *🔑 ⬋ | id| integer autoincrement |
| *⬈ | category_id| integer |
| *| stock_number| integer |
| *🔍 | designation| varchar(255) |
| Indexes |
| 🔑 primary key | pk_plugin_materiels_equipment || ON id|
| 🔍 unique | u_equipment_designation || ON designation|
| Foreign Keys |
| | Fk_plugin_materiels_equipment | ( category_id ) ref plugin_materiels_category (id) |
### Table plugin_materiels_entry
| Idx | Field Name | Data Type | Description |
|---|---|---|---|
| *🔑 | id| integer autoincrement | |
| *| kind| varchar(20) | Achat, Don, Récupération, ... |
| *| equipment_number| integer | |
| *⬈ | equipment_id| integer | |
| *| entry_date| date | |
| | additional_comment| varchar(255) | |
| Indexes |
| 🔑 primary key | pk_plugin_materiels_entry | |
| Foreign Keys |
| | Fk_plugin_materiels_entry | ( equipment_id ) ref plugin_materiels_equipment (id) | |
### Table plugin_materiels_output
| Idx | Field Name | Data Type | Description |
|---|---|---|---|
| *🔑 | id| integer autoincrement | |
| *| kind| varchar(20) | Vente, Don, Prêt, ... |
| *| equipment_number| integer | |
| *⬈ | equipment_id| integer | |
| *| output_date| date | |
| | additional_comment| varchar(255) | |
| Indexes |
| 🔑 primary key | pk_plugin_materiels_output || ON id | |
| Foreign Keys |
| | Fk_plugin_materiels_output | ( equipment_id ) ref plugin_materiels_equipment (id) | |
| * -> NOT NULL

Binary file not shown.

View File

@ -9,9 +9,10 @@ class Entry
protected $columns_order = array(
'id',
'kind',
'number_of_equipments',
'equipment_number',
'equipment_id',
'date_of_entry',
'entry_date',
'additional_comment',
);
public function listKinds()
@ -36,6 +37,6 @@ class Entry
public function listAll()
{
return DB::getInstance()->get('SELECT * FROM plugin_materiels_entry ORDER BY date_of_entry DESC;');
return DB::getInstance()->get('SELECT * FROM plugin_materiels_entry ORDER BY entry_date DESC;');
}
}

View File

@ -9,8 +9,8 @@ class Equipment
protected $columns_order = array(
'id',
'category_id',
'number_of_equipments',
'designation'
'stock_number',
'designation',
);
public function add($data = [])

View File

@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS plugin_materiels_category (
CREATE TABLE IF NOT EXISTS plugin_materiels_equipment (
id integer NOT NULL PRIMARY KEY autoincrement,
category_id integer NOT NULL,
number_of_equipments integer NOT NULL,
stock_number integer NOT NULL,
designation varchar(255) NOT NULL,
CONSTRAINT u_equipment_designation UNIQUE ( designation ),
FOREIGN KEY ( category_id ) REFERENCES plugin_materiels_category( id ) ON DELETE RESTRICT ON UPDATE CASCADE
@ -16,17 +16,19 @@ CREATE TABLE IF NOT EXISTS plugin_materiels_equipment (
CREATE TABLE IF NOT EXISTS plugin_materiels_entry (
id integer NOT NULL PRIMARY KEY autoincrement,
kind varchar(20) NOT NULL,
number_of_equipments integer NOT NULL,
equipment_number integer NOT NULL,
equipment_id integer NOT NULL,
date_of_entry date NOT NULL,
entry_date date NOT NULL,
additional_comment varchar(255),
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_equipment( id ) ON DELETE RESTRICT ON UPDATE CASCADE
);
CREATE TABLE IF NOT EXISTS plugin_materiels_output (
id integer NOT NULL PRIMARY KEY autoincrement,
kind varchar(20) NOT NULL,
number_of_equipments integer NOT NULL,
equipment_number integer NOT NULL,
equipment_id integer NOT NULL,
output_date date NOT NULL,
additional_comment varchar(255),
FOREIGN KEY ( equipment_id ) REFERENCES plugin_materiels_equipment( id ) ON DELETE RESTRICT ON UPDATE CASCADE
);

View File

@ -18,9 +18,9 @@
<tbody>
{foreach from=$entries item="entry"}
<tr>
<td>{$entry.date_of_entry}</td>
<td>{$entry.entry_date}</td>
<td>{$entry.kind}</td>
<td>{$entry.number_of_equipments}</td>
<td>{$entry.equipment_number}</td>
<td>{$entry.equipment.designation}</td>
</tr>
{/foreach}

View File

@ -15,8 +15,8 @@
{/foreach}
</select>
</dd>
{input type="date" name="date_entree" default=$default_date label="Date d'entrée" required=true }
{input type="number" name="number" label="Nombre d'entrée" required=true step="1" min="1" default=$default_number}
{input type="date" name="entry_date" default=$default_date label="Date d'entrée" required=true }
{input type="number" name="equipment_number" label="Nombre" required=true step="1" min="1" default=$default_number}
</dl>
<fieldset>
<legend><h3>Matériel</h3></legend>

View File

@ -4,7 +4,7 @@
<table class="list">
<thead>
<th><b>Nombre</b></th>
<th><b>Nombre en stock</b></th>
<th><b>Désignation</b></th>
<th><b>Categorie</b></th>
<th></th>
@ -12,7 +12,7 @@
<tbody>
{foreach from=$eqmts item="eqmt"}
<tr>
<td>{$eqmt.number_of_equipments}</td>
<td>{$eqmt.stock_number}</td>
<td>{$eqmt.designation}</td>
<td>{$eqmt.category.name}</td>
<td class="actions">

View File

@ -28,8 +28,8 @@ $csrf_key = 'add_entry';
if (f('save'))
{
$selected_kind = f('kind');
$default_date = f('date_entree');
$default_number = f('number');
$default_date = f('entry_date');
$default_number = f('equipment_number');
$selected_cat = f('category_id');
if ($form->check($csrf_key) && !$form->hasErrors())
@ -39,14 +39,14 @@ if (f('save'))
$eqmt = new Equipment;
$eqmt_id = $eqmt->add([
'category_id' => (int) f('category_id'),
'number_of_equipments' => (int) f('number'),
'stock_number' => (int) f('equipment_number'),
'designation' => ucfirst(strtolower(f('designation'))),
]);
$entry->add([
'kind' => f('kind'),
'number_of_equipments' => (int) f('number'),
'equipment_number' => (int) f('equipment_number'),
'equipment_id' => $eqmt_id,
'date_of_entry' => f('date_entree'),
'entry_date' => f('entry_date'),
]);
Utils::redirect(PLUGIN_URL . 'entrees/index.php');
}
@ -65,6 +65,6 @@ if (f('save'))
$cancel_link = PLUGIN_URL . 'entrees/index.php';
$tpl->assign(compact('kinds', 'date', 'cats', 'selected_kind', 'default_date', 'default_number', 'selected_cat', 'cancel_link', 'csrf_key'));
$tpl->assign(compact('kinds', 'cats', 'selected_kind', 'default_date', 'default_number', 'selected_cat', 'cancel_link', 'csrf_key'));
$tpl->display(PLUGIN_ROOT . '/templates/entrees/non_repertorie.tpl');