Merge remote-tracking branch 'Dolibarr/12.0' into 12
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
BIN
doc/images/dolibarr_256x256_black.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
313
doc/images/dolibarr_256x256_black.svg
Normal file
@ -0,0 +1,313 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="124"
|
||||
height="124"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="dolibarr_256x256_black.svg"
|
||||
inkscape:export-filename="/home/ldestailleur/git/dolibarr-foundation/logo-cliparts/dolibarr_256x256_black.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient3767">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3755">
|
||||
<stop
|
||||
style="stop-color:#16317f;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3757" />
|
||||
<stop
|
||||
style="stop-color:#2b2baa;stop-opacity:0.98581558;"
|
||||
offset="1"
|
||||
id="stop3759" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3767-1"
|
||||
id="linearGradient3773-6"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-129.5163,-666.48391)" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.738112,-442.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3837-1"
|
||||
xlink:href="#linearGradient3767-1-3"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-3">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-9" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(53.452398,-634.19193)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3877-0"
|
||||
xlink:href="#linearGradient3767-1-3-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-3-5">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-9-6" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-6-8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.738112,-442.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3837-5"
|
||||
xlink:href="#linearGradient3767-1-0"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(195.59526,-442.76336)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3991-3"
|
||||
xlink:href="#linearGradient3767-1-0-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(197.02383,-635.62051)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4034-9"
|
||||
xlink:href="#linearGradient3767-1-0-4-1"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4-1">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2-4" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6-3" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(199.1667,-827.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4077-9"
|
||||
xlink:href="#linearGradient3767-1-0-4-1-6"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4-1-6">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2-4-5" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6-3-2" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(339.881,-442.76339)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3064"
|
||||
xlink:href="#linearGradient3767-1-0-4-1-6"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3767-1-0-4-1-6"
|
||||
id="linearGradient3106"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(339.881,-442.76339)"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3767-1-0-4-1-6-6"
|
||||
id="linearGradient3071-5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(339.881,-442.76339)"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4-1-6-6">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2-4-5-8" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6-3-2-4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="matrix(2.0603828,0,0,2.0603828,115.78961,-723.84612)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3113"
|
||||
xlink:href="#linearGradient3767-1-0-4-8"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4-8">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2-8" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6-4" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4311616"
|
||||
inkscape:cx="-197.01761"
|
||||
inkscape:cy="136.94147"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1023"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
units="px"
|
||||
borderlayer="true"
|
||||
inkscape:showpageshadow="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
showborder="false"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1003.026)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:18.96238708px;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.58019912"
|
||||
x="-12.676609"
|
||||
y="1153.9496"
|
||||
id="text3775"
|
||||
transform="scale(1.0245459,0.9760422)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3777"
|
||||
x="-12.676609"
|
||||
y="1153.9496"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:189.50143433px;line-height:1.25;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93,';fill:#000000;fill-opacity:1;stroke-width:1.58019912">D</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.6 KiB |
BIN
doc/images/dolibarr_256x256_color.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
123
doc/images/dolibarr_256x256_color.svg
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128"
|
||||
height="128"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="dolibarr_124x124_color.svg"
|
||||
inkscape:export-filename="/home/ldestailleur/git/dolibarr-foundation/logo-cliparts/dolibarr_256x256_color.png"
|
||||
inkscape:export-xdpi="192"
|
||||
inkscape:export-ydpi="192">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient858">
|
||||
<stop
|
||||
id="stop854"
|
||||
offset="0"
|
||||
style="stop-color:#263c5c;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop856"
|
||||
offset="1"
|
||||
style="stop-color:#263c5a;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient858"
|
||||
id="linearGradient3204"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-129.5163,-666.48391)"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="68.321429"
|
||||
inkscape:cy="61.400881"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g3197"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1023"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:showpageshadow="false"
|
||||
showborder="false"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-315.1676,-72.803581)">
|
||||
<g
|
||||
id="g3197"
|
||||
transform="matrix(1.0301914,0,0,1.0301914,-9.5153501,-6.0625407)">
|
||||
<rect
|
||||
inkscape:export-ydpi="90.544151"
|
||||
inkscape:export-xdpi="90.544151"
|
||||
inkscape:export-filename="/home/ldestail/git/foundation/logo/dolibarr_124x124.png"
|
||||
transform="rotate(90)"
|
||||
y="-439.41635"
|
||||
x="76.554825"
|
||||
height="124.24876"
|
||||
width="124.24876"
|
||||
id="rect3765"
|
||||
style="fill:url(#linearGradient3204);fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<g
|
||||
aria-label="D"
|
||||
transform="matrix(1.0073139,0,0,0.99273916,-0.13867046,0.34667621)"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="text3775">
|
||||
<path
|
||||
d="m 361.99432,122.6877 -0.0304,57.43789 h -23.7433 V 99.733777 h 30.97607 c 13.58497,0 24.22263,3.083943 31.91298,9.251833 9.13472,7.37805 13.70208,17.39111 13.70208,30.03918 0,12.10156 -3.90373,21.97799 -11.71118,29.6293 -7.80746,7.6513 -17.85956,11.47695 -30.1563,11.47695 -1.44438,0 -7.08526,-0.0182 -7.08526,-0.0182 V 156.4159 h 3.80613 c 13.85823,0 20.78735,-5.79704 20.78735,-17.39111 0,-10.89139 -6.812,-16.33709 -20.43601,-16.33709 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:119.92250824px;line-height:1.25;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93,';fill:#ffffff;fill-opacity:1"
|
||||
id="path854"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccscsssccsssc" />
|
||||
</g>
|
||||
<ellipse
|
||||
style="display:inline;fill:#60bbc1;fill-opacity:1;stroke:none;stroke-width:0.62043476;stroke-opacity:1"
|
||||
id="path957"
|
||||
cx="407.14789"
|
||||
cy="108.85997"
|
||||
rx="10.732866"
|
||||
ry="10.693515" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
BIN
doc/images/dolibarr_256x256_white.jpg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
doc/images/dolibarr_256x256_white.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
327
doc/images/dolibarr_256x256_white.svg
Normal file
@ -0,0 +1,327 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128"
|
||||
height="128"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="dolibarr_256x256_white.svg"
|
||||
inkscape:export-filename="/home/ldestailleur/git/dolibarr-foundation/logo-cliparts/dolibarr_256x256_white.png"
|
||||
inkscape:export-xdpi="192"
|
||||
inkscape:export-ydpi="192">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient858">
|
||||
<stop
|
||||
id="stop854"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop856"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3767">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3755">
|
||||
<stop
|
||||
style="stop-color:#16317f;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3757" />
|
||||
<stop
|
||||
style="stop-color:#2b2baa;stop-opacity:0.98581558;"
|
||||
offset="1"
|
||||
id="stop3759" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3767"
|
||||
id="linearGradient3773"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-129.5163,-666.48391)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3767-1"
|
||||
id="linearGradient3773-6"
|
||||
x1="205.42113"
|
||||
y1="289.19193"
|
||||
x2="330.96988"
|
||||
y2="289.19193"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-129.5163,-666.48391)" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.738112,-442.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3837"
|
||||
xlink:href="#linearGradient3767-1"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.738112,-442.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3837-1"
|
||||
xlink:href="#linearGradient3767-1-3"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-3">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-9" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(53.452398,-634.19193)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3877"
|
||||
xlink:href="#linearGradient3767-1-3"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(53.452398,-634.19193)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3877-0"
|
||||
xlink:href="#linearGradient3767-1-3-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-3-5">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-9-6" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-6-8" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.023817,-824.19192)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3917"
|
||||
xlink:href="#linearGradient3767-1-3-5"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(52.738112,-442.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3837-5"
|
||||
xlink:href="#linearGradient3767-1-0"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(195.59526,-442.76336)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3991"
|
||||
xlink:href="#linearGradient3767-1-0"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(195.59526,-442.76336)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient3991-3"
|
||||
xlink:href="#linearGradient3767-1-0-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(197.02383,-635.62051)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4034"
|
||||
xlink:href="#linearGradient3767-1-0-4"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(197.02383,-635.62051)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4034-9"
|
||||
xlink:href="#linearGradient3767-1-0-4-1"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3767-1-0-4-1">
|
||||
<stop
|
||||
style="stop-color:#4479ab;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3769-2-0-2-4" />
|
||||
<stop
|
||||
style="stop-color:#1b4b77;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3771-8-3-6-3" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
y2="289.19193"
|
||||
x2="330.96988"
|
||||
y1="289.19193"
|
||||
x1="205.42113"
|
||||
gradientTransform="translate(199.1667,-827.04909)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient4077"
|
||||
xlink:href="#linearGradient3767-1-0-4-1"
|
||||
inkscape:collect="always" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="50.5723"
|
||||
inkscape:cy="70.745335"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g3197"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1023"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-315.1676,-72.803581)">
|
||||
<g
|
||||
id="g3197"
|
||||
transform="matrix(1.0301914,0,0,1.0301914,-9.5153501,-6.0625407)">
|
||||
<rect
|
||||
inkscape:export-ydpi="90.544151"
|
||||
inkscape:export-xdpi="90.544151"
|
||||
inkscape:export-filename="/home/ldestail/git/foundation/logo/dolibarr_124x124.png"
|
||||
transform="rotate(90)"
|
||||
y="-439.41635"
|
||||
x="76.554825"
|
||||
height="124.24876"
|
||||
width="124.24876"
|
||||
id="rect3765"
|
||||
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||
<g
|
||||
aria-label="D"
|
||||
transform="matrix(1.0073139,0,0,0.99273916,-0.13867046,0.34667621)"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="text3775">
|
||||
<path
|
||||
d="m 361.99432,122.6877 v 56.9749 h -23.7737 V 99.733777 h 30.97607 q 20.37746,0 31.91298,9.251833 13.70208,11.06707 13.70208,30.03918 0,18.15234 -11.71118,29.6293 -11.71119,11.47695 -30.1563,11.47695 -2.16657,0 -7.08526,-0.23422 V 156.4159 h 3.80613 q 20.78735,0 20.78735,-17.39111 0,-16.33709 -20.43601,-16.33709 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:119.92250824px;line-height:1.25;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93,';fill:#fbfbfb;fill-opacity:1"
|
||||
id="path854"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<ellipse
|
||||
style="display:inline;fill:#a1cccf;fill-opacity:1;stroke:none;stroke-width:0.65291774;stroke-opacity:1"
|
||||
id="path957"
|
||||
cx="412.50858"
|
||||
cy="112.0897"
|
||||
rx="11.512888"
|
||||
ry="11.040191" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
BIN
doc/images/dolibarr_512x512_color.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
doc/images/dolibarr_favicon.ico
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 18 KiB |
BIN
doc/images/dolibarr_logo.png
Normal file → Executable file
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 14 KiB |
209
doc/images/dolibarr_logo.svg
Normal file
@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="720"
|
||||
height="200"
|
||||
id="svg3450"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||
sodipodi:docname="dolibarr_logo.svg"
|
||||
inkscape:export-filename="/home/ldestailleur/git/dolibarr-foundation/logo-cliparts/dolibarr_logo.png"
|
||||
inkscape:export-xdpi="77.362831"
|
||||
inkscape:export-ydpi="77.362831">
|
||||
<title
|
||||
id="title3072">Logo Dolibarr ERP-CRM</title>
|
||||
<defs
|
||||
id="defs3452">
|
||||
<linearGradient
|
||||
id="linearGradient3734-3-6">
|
||||
<stop
|
||||
style="stop-color:#49496f;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3736" />
|
||||
<stop
|
||||
style="stop-color:#45455a;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3738" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3734-3-6"
|
||||
id="linearGradient4636"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="75.697441"
|
||||
y1="310.53391"
|
||||
x2="742.98004"
|
||||
y2="310.53391" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3734-3-6"
|
||||
id="linearGradient899"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="75.697441"
|
||||
y1="310.53391"
|
||||
x2="742.98004"
|
||||
y2="310.53391" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="391.6782"
|
||||
inkscape:cy="-50.366015"
|
||||
inkscape:current-layer="g4648"
|
||||
inkscape:document-units="px"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1023"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:showpageshadow="false"
|
||||
showborder="true"
|
||||
borderlayer="false"
|
||||
fit-margin-top="24"
|
||||
fit-margin-left="24"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:measure-start="0,0"
|
||||
inkscape:measure-end="0,0"
|
||||
inkscape:pagecheckerboard="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid1458" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3455">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>Logo Dolibarr ERP-CRM</dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-nd/4.0/" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Laurent Destailleur</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>Laurent Destailleur</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-nd/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
style="display:inline"
|
||||
transform="translate(-51.413681,-199.60957)">
|
||||
<g
|
||||
id="g4592">
|
||||
<g
|
||||
style="fill:url(#linearGradient4636);fill-opacity:1"
|
||||
id="g4626">
|
||||
<g
|
||||
style="fill:url(#linearGradient899)"
|
||||
id="g4648">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccscsssccsssc"
|
||||
d="m 112.32913,280.29476 v 98.02589 l -36.631688,-0.40123 v 0.40123 -137.35672 h 47.729468 c 20.93239,0 37.32341,5.28424 49.17307,15.85272 14.07523,12.64204 21.11285,29.7991 21.11285,51.47117 0,20.73563 -6.01506,37.65857 -18.04517,50.76884 -12.03011,13.11027 -27.20637,19.35291 -46.1538,19.35291 -2.22557,0 -6.23968,-0.0713 -11.22982,-0.0888 v -40.23379 l 10.08954,-0.0542 c 21.35314,-0.11469 27.8053,-9.87885 27.8053,-29.74492 0,-18.66206 -10.49627,-27.99309 -31.48881,-27.99309 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8463"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 251.18669,274.26322 q 19.12787,0 32.75197,15.35106 13.71432,15.25071 13.71432,36.62179 0,21.67206 -13.89478,36.92279 -13.80455,15.25071 -33.38356,15.25071 -19.57899,0 -33.47377,-15.25071 -13.89479,-15.35105 -13.89479,-36.92279 0,-21.97308 13.89479,-36.9228 13.89478,-15.05005 34.28582,-15.05005 z m -0.90227,37.02313 q -5.41355,0 -9.20303,4.41468 -3.78949,4.31435 -3.78949,10.63537 0,6.22068 3.78949,10.63537 3.87971,4.41468 9.20303,4.41468 5.41356,0 9.20304,-4.41468 3.8797,-4.41469 3.8797,-10.63537 0,-6.32102 -3.78947,-10.63537 -3.78949,-4.41468 -9.29327,-4.41468 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8465"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
d="M 345.47268,241.05287 V 378.40956 H 311.72822 V 241.05287 Z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8467"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="csscscsccscsssccscc"
|
||||
d="m 450.676,239.98458 v 81.97261 c 0,13.31093 4.30076,19.9664 12.90229,19.9664 3.66918,0 6.76693,-1.37123 9.29326,-4.11368 2.58647,-2.80935 3.87971,-6.18725 3.87971,-10.1337 0,-4.08023 -1.20301,-7.49158 -3.60903,-10.23403 -2.40603,-2.80935 -5.3534,-4.21402 -8.84213,-4.21402 -2.46617,0 -8.23123,-0.013 -8.23123,-0.013 l -0.25,-38.08747 c 0,0 6.97747,-0.22701 9.02258,-0.22701 12.69177,0 23.54895,5.08358 32.57153,15.25073 9.08273,10.16714 13.6241,22.40785 13.6241,36.72212 0,14.64872 -5.14562,26.5166 -13.80455,37.02313 -8.57803,10.40836 -22.98621,14.59993 -33.92491,14.51154 -6.73664,-0.0544 -13.32335,-1.10024 -19.75947,-4.37784 -6.37595,-3.27757 -11.63912,-7.69225 -15.78951,-13.24404 -7.21807,-9.63203 -10.8271,-22.10686 -10.8271,-37.42447 v -83.37728 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8471"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccssscscsccscscscscc"
|
||||
d="m 575.66649,342.98354 -0.15625,35.42602 c 0,0 -5.0745,0 -7.36022,0 -13.53387,0 -24.8121,-3.24403 -33.83468,-13.14362 -9.02259,-9.89959 -13.53388,-22.30753 -13.53388,-37.2238 0,-14.51494 4.54137,-26.82254 13.6241,-36.92279 9.14289,-10.10026 20.24066,-15.15039 33.29333,-15.15039 14.55643,0 26.01511,4.74913 34.37604,14.24739 8.42108,9.43136 12.63162,22.34096 12.63162,38.72879 l -0.0625,49.46442 h -33.80696 l 0.125,-46.75541 c 0.0141,-5.28421 -1.17293,-9.49824 -3.5188,-12.64203 -2.28573,-3.14379 -5.38348,-4.71569 -9.29327,-4.71569 -3.54889,0 -6.61657,1.43811 -9.20304,4.31434 -2.58647,2.87623 -3.87971,6.28758 -3.87971,10.23405 0,4.14712 1.17294,7.55846 3.51881,10.23403 2.34587,2.67556 5.32333,4.01334 8.93236,4.01334 2.94737,0 8.14805,-0.10867 8.14805,-0.10867 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8473"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccssccscsc"
|
||||
d="m 683.66305,275.87667 0.004,38.91662 c 0,0 -4.41872,0.10517 -6.34353,0.10517 -6.13535,0 -9.20303,5.21735 -9.20303,15.65204 v 47.85906 h -33.74447 v -55.08308 c 0,-14.44805 3.54888,-25.95298 10.64665,-34.51479 7.09777,-8.62869 16.57148,-12.94304 28.42114,-12.94304 2.64662,0 10.21945,0.008 10.21945,0.008 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8475"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccssccscscc"
|
||||
d="m 742.97999,275.87857 -0.0312,38.94597 c 0,0 -4.51247,0.0739 -6.43728,0.0739 -6.13537,0 -9.20305,5.21735 -9.20305,15.65204 v 47.85906 h -33.74445 v -55.08308 c 0,-14.44805 3.54888,-25.95298 10.64664,-34.51479 7.09777,-8.62869 16.57149,-12.94304 28.42114,-12.94304 2.64663,0 10.34825,0.01 10.34825,0.01 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.7072947;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8477"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
d="m 398.91378,276.40957 v 102 h -33.74446 v -102 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:194.85823059px;line-height:125%;font-family:'Bauhaus 93';-inkscape-font-specification:'Bauhaus 93';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#263c5c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.47124052;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.18431373"
|
||||
id="path8467-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007b8c;fill-opacity:1;fill-rule:nonzero;stroke:none;"
|
||||
x="643.31146"
|
||||
y="229.77211"
|
||||
id="text5484"
|
||||
transform="scale(0.88533213,1.1295196)"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.95219803px;line-height:100%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#007b8c;fill-opacity:1;fill-rule:nonzero;stroke:none;"
|
||||
sodipodi:role="line"
|
||||
id="tspan5486"
|
||||
x="643.31146"
|
||||
y="229.77211">ERP/CRM</tspan></text>
|
||||
<ellipse
|
||||
style="fill:#007b8c;fill-opacity:1;stroke:none;stroke-width:1.02999127;stroke-opacity:1"
|
||||
id="path957"
|
||||
cx="381.94193"
|
||||
cy="247.58162"
|
||||
rx="17.456699"
|
||||
ry="18.119612" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
482
htdocs/admin/paymentbybanktransfer.php
Normal file
@ -0,0 +1,482 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2005-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@inodbox.com>
|
||||
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2019 Markus Welters <markus@welters.de>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/credtitransfer.php
|
||||
* \ingroup paymentbybanktransfer
|
||||
* \brief Page to setup payments by credit transfer
|
||||
*/
|
||||
|
||||
require '../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||
|
||||
// Load translation files required by the page
|
||||
$langs->loadLangs(array("admin", "withdrawals"));
|
||||
|
||||
// Security check
|
||||
if (!$user->admin) accessforbidden();
|
||||
|
||||
$action = GETPOST('action', 'alpha');
|
||||
$type = 'paymentorder';
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($action == "set")
|
||||
{
|
||||
$db->begin();
|
||||
|
||||
$id = GETPOST('PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT', 'int');
|
||||
$account = new Account($db);
|
||||
if ($account->fetch($id) > 0)
|
||||
{
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT", $id, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
/*
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_CODE_BANQUE", $account->code_banque,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_CODE_GUICHET", $account->code_guichet,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_NUMERO_COMPTE", $account->number,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_NUMBER_KEY", $account->cle_rib,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_IBAN", $account->iban,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_BIC", $account->bic,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
$res = dolibarr_set_const($db, "PRELEVEMENT_RAISON_SOCIALE", $account->proprio,'chaine',0,'',$conf->entity);
|
||||
if (! $res > 0) $error++;
|
||||
*/
|
||||
} else $error++;
|
||||
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ICS", GETPOST("PAYMENTBYBANKTRANSFER_ICS"), 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
|
||||
if (GETPOST("PAYMENTBYBANKTRANSFER_USER") > 0)
|
||||
{
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USER", GETPOST("PAYMENTBYBANKTRANSFER_USER"), 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
}
|
||||
/*
|
||||
if (GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") || GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END") == "")
|
||||
{
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_END_TO_END", GETPOST("PAYMENTBYBANKTRANSFER_END_TO_END"), 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
}
|
||||
if (GETPOST("PAYMENTBYBANKTRANSFER_USTRD") || GETPOST("PAYMENTBYBANKTRANSFER_USTRD") == "")
|
||||
{
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_USTRD", GETPOST("PAYMENTBYBANKTRANSFER_USTRD"), 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
}
|
||||
*/
|
||||
if (GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") || GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS") == "")
|
||||
{
|
||||
$res = dolibarr_set_const($db, "PAYMENTBYBANKTRANSFER_ADDDAYS", GETPOST("PAYMENTBYBANKTRANSFER_ADDDAYS"), 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) $error++;
|
||||
} elseif (!$error)
|
||||
{
|
||||
$db->commit();
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
$db->rollback();
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == "addnotif")
|
||||
{
|
||||
$bon = new BonPrelevement($db);
|
||||
$bon->AddNotification($db, GETPOST('user', 'int'), $action);
|
||||
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($action == "deletenotif")
|
||||
{
|
||||
$bon = new BonPrelevement($db);
|
||||
$bon->DeleteNotificationById(GETPOST('notif', 'int'));
|
||||
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form = new Form($db);
|
||||
|
||||
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||
|
||||
llxHeader('', $langs->trans("CreditTransferSetup"));
|
||||
|
||||
$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||
|
||||
print load_fiche_titre($langs->trans("CreditTransferSetup"), $linkback, 'title_setup');
|
||||
print '<br>';
|
||||
|
||||
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'?action=set">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
|
||||
print '<table class="noborder centpercent">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td class="titlefieldcreate">'.$langs->trans("Parameter").'</td>';
|
||||
print '<td>'.$langs->trans("Value").'</td>';
|
||||
print "</tr>";
|
||||
|
||||
// Bank account (from Banks module)
|
||||
print '<tr class="oddeven"><td class="fieldrequired">'.$langs->trans("BankToPayCreditTransfer").'</td>';
|
||||
print '<td class="left">';
|
||||
$form->select_comptes($conf->global->PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT, 'PAYMENTBYBANKTRANSFER_ID_BANKACCOUNT', 0, "courant=1", 1);
|
||||
print '</td></tr>';
|
||||
|
||||
// ICS
|
||||
print '<tr class="oddeven"><td class="fieldrequired">'.$langs->trans("ICS").'</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PAYMENTBYBANKTRANSFER_ICS" value="'.$conf->global->PAYMENTBYBANKTRANSFER_ICS.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
|
||||
//User
|
||||
print '<tr class="oddeven"><td class="fieldrequired">'.$langs->trans("ResponsibleUser").'</td>';
|
||||
print '<td class="left">';
|
||||
print $form->select_dolusers($conf->global->PAYMENTBYBANKTRANSFER_USER, 'PAYMENTBYBANKTRANSFER_USER', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
/*
|
||||
//EntToEnd
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("END_TO_END").'</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PRELEVEMENT_END_TO_END" value="'.$conf->global->PRELEVEMENT_END_TO_END.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
|
||||
//USTRD
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("USTRD").'</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PRELEVEMENT_USTRD" value="'.$conf->global->PRELEVEMENT_USTRD.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
*/
|
||||
|
||||
//ADDDAYS
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("ADDDAYS").'</td>';
|
||||
print '<td class="left">';
|
||||
if (!$conf->global->PAYMENTBYBANKTRANSFER_ADDDAYS) $conf->global->PAYMENTBYBANKTRANSFER_ADDDAYS = 0;
|
||||
print '<input type="text" name="PAYMENTBYBANKTRANSFER_ADDDAYS" value="'.$conf->global->PAYMENTBYBANKTRANSFER_ADDDAYS.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
print '</table>';
|
||||
print '<br>';
|
||||
|
||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
||||
|
||||
print '</form>';
|
||||
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
/*
|
||||
* Document templates generators
|
||||
*/
|
||||
/*
|
||||
print load_fiche_titre($langs->trans("OrdersModelModule"),'','');
|
||||
|
||||
// Load array def with activated templates
|
||||
$def = array();
|
||||
$sql = "SELECT nom";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||
$sql.= " WHERE type = '".$type."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num_rows=$db->num_rows($resql);
|
||||
while ($i < $num_rows)
|
||||
{
|
||||
$array = $db->fetch_array($resql);
|
||||
array_push($def, $array[0]);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">\n";
|
||||
print "<tr class=\"liste_titre\">\n";
|
||||
print '<td>'.$langs->trans("Name").'</td>';
|
||||
print '<td>'.$langs->trans("Description").'</td>';
|
||||
print '<td align="center" width="60">'.$langs->trans("Status")."</td>\n";
|
||||
print '<td align="center" width="60">'.$langs->trans("Default")."</td>\n";
|
||||
print '<td align="center" width="38">'.$langs->trans("ShortInfo").'</td>';
|
||||
print '<td align="center" width="38">'.$langs->trans("Preview").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
clearstatcache();
|
||||
|
||||
foreach ($dirmodels as $reldir)
|
||||
{
|
||||
foreach (array('','/doc') as $valdir)
|
||||
{
|
||||
$dir = dol_buildpath($reldir."core/modules/paymentorders".$valdir);
|
||||
|
||||
if (is_dir($dir))
|
||||
{
|
||||
$handle=opendir($dir);
|
||||
if (is_resource($handle))
|
||||
{
|
||||
while (($file = readdir($handle))!==false)
|
||||
{
|
||||
$filelist[]=$file;
|
||||
}
|
||||
closedir($handle);
|
||||
arsort($filelist);
|
||||
|
||||
foreach($filelist as $file)
|
||||
{
|
||||
if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file))
|
||||
{
|
||||
|
||||
if (file_exists($dir.'/'.$file))
|
||||
{
|
||||
$name = substr($file, 4, dol_strlen($file) -16);
|
||||
$classname = substr($file, 0, dol_strlen($file) -12);
|
||||
|
||||
require_once $dir.'/'.$file;
|
||||
$module = new $classname($db);
|
||||
|
||||
$modulequalified=1;
|
||||
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
|
||||
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
|
||||
|
||||
if ($modulequalified)
|
||||
{
|
||||
$var = !$var;
|
||||
print '<tr class="oddeven"><td width="100">';
|
||||
print (empty($module->name)?$name:$module->name);
|
||||
print "</td><td>\n";
|
||||
if (method_exists($module,'info')) print $module->info($langs);
|
||||
else print $module->description;
|
||||
print '</td>';
|
||||
|
||||
// Active
|
||||
if (in_array($name, $def))
|
||||
{
|
||||
print '<td class="center">'."\n";
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&value='.$name.'">';
|
||||
print img_picto($langs->trans("Enabled"),'switch_on');
|
||||
print '</a>';
|
||||
print '</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<td class="center">'."\n";
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
|
||||
print "</td>";
|
||||
}
|
||||
|
||||
// Default
|
||||
print '<td class="center">';
|
||||
if ($conf->global->PAYMENTORDER_ADDON_PDF == $name)
|
||||
{
|
||||
print img_picto($langs->trans("Default"),'on');
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'off').'</a>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Info
|
||||
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
|
||||
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
|
||||
if ($module->type == 'pdf')
|
||||
{
|
||||
$htmltooltip.='<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
|
||||
}
|
||||
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
|
||||
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
|
||||
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
|
||||
$htmltooltip.='<br>'.$langs->trans("PaymentConditions").': '.yn($module->option_condreg,1,1);
|
||||
$htmltooltip.='<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang,1,1);
|
||||
//$htmltooltip.='<br>'.$langs->trans("Discounts").': '.yn($module->option_escompte,1,1);
|
||||
//$htmltooltip.='<br>'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1);
|
||||
$htmltooltip.='<br>'.$langs->trans("WatermarkOnDraftOrders").': '.yn($module->option_draft_watermark,1,1);
|
||||
|
||||
|
||||
print '<td class="center">';
|
||||
print $form->textwithpicto('',$htmltooltip,1,0);
|
||||
print '</td>';
|
||||
|
||||
// Preview
|
||||
print '<td class="center">';
|
||||
if ($module->type == 'pdf')
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'bill').'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print img_object($langs->trans("PreviewNotAvailable"),'generic');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print "</tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
/*
|
||||
* Notifications
|
||||
*/
|
||||
|
||||
/* Disable this, there is no trigger with elementtype 'withdraw'
|
||||
if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
|
||||
{
|
||||
$langs->load("mails");
|
||||
print load_fiche_titre($langs->trans("Notifications"));
|
||||
|
||||
$sql = "SELECT u.rowid, u.lastname, u.firstname, u.fk_soc, u.email";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
$sql.= " WHERE entity IN (".getEntity('invoice').")";
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
if (!$obj->fk_soc)
|
||||
{
|
||||
$username=dolGetFirstLastname($obj->firstname,$obj->lastname);
|
||||
$internalusers[$obj->rowid] = $username;
|
||||
}
|
||||
|
||||
$i++;
|
||||
}
|
||||
$db->free($resql);
|
||||
}
|
||||
|
||||
// Get list of triggers for module withdraw
|
||||
$sql = "SELECT rowid, code, label";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_action_trigger";
|
||||
$sql.= " WHERE elementtype = 'withdraw'";
|
||||
$sql.= " ORDER BY rang ASC";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
$label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label);
|
||||
$actions[$obj->rowid]=$label;
|
||||
$i++;
|
||||
}
|
||||
$db->free($resql);
|
||||
}
|
||||
|
||||
|
||||
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'?action=addnotif">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<table class="noborder centpercent">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("User").'</td>';
|
||||
print '<td>'.$langs->trans("Value").'</td>';
|
||||
print '<td class="right">'.$langs->trans("Action").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
print '<tr class="impair"><td class="left">';
|
||||
print $form->selectarray('user',$internalusers);// select_dolusers(0,'user',0);
|
||||
print '</td>';
|
||||
|
||||
print '<td>';
|
||||
print $form->selectarray('action',$actions);// select_dolusers(0,'user',0);
|
||||
print '</td>';
|
||||
|
||||
print '<td class="right"><input type="submit" class="button" value="'.$langs->trans("Add").'"></td></tr>';
|
||||
|
||||
// List of current notifications for objet_type='withdraw'
|
||||
$sql = "SELECT u.lastname, u.firstname,";
|
||||
$sql.= " nd.rowid, ad.code, ad.label";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as u,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."notify_def as nd,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."c_action_trigger as ad";
|
||||
$sql.= " WHERE u.rowid = nd.fk_user";
|
||||
$sql.= " AND nd.fk_action = ad.rowid";
|
||||
$sql.= " AND u.entity IN (0,".$conf->entity.")";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$num = $db->num_rows($resql);
|
||||
$i = 0;
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
print '<td>'.dolGetFirstLastname($obj->firstname,$obj->lastname).'</td>';
|
||||
$label=($langs->trans("Notify_".$obj->code)!="Notify_".$obj->code?$langs->trans("Notify_".$obj->code):$obj->label);
|
||||
print '<td>'.$label.'</td>';
|
||||
print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=deletenotif&notif='.$obj->rowid.'">'.img_delete().'</a></td>';
|
||||
print '</tr>';
|
||||
$i++;
|
||||
}
|
||||
$db->free($resql);
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
print '</form>';
|
||||
}
|
||||
*/
|
||||
|
||||
// End of page
|
||||
llxFooter();
|
||||
$db->close();
|
||||
@ -113,7 +113,7 @@ if ($action == "addnotif")
|
||||
$bon = new BonPrelevement($db);
|
||||
$bon->AddNotification($db, GETPOST('user', 'int'), $action);
|
||||
|
||||
header("Location: prelevement.php");
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -122,75 +122,10 @@ if ($action == "deletenotif")
|
||||
$bon = new BonPrelevement($db);
|
||||
$bon->DeleteNotificationById(GETPOST('notif', 'int'));
|
||||
|
||||
header("Location: prelevement.php");
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
/*
|
||||
if ($action == 'specimen')
|
||||
{
|
||||
$modele=GETPOST('module','alpha');
|
||||
|
||||
$commande = new Commande($db);
|
||||
$commande->initAsSpecimen();
|
||||
|
||||
// Search template files
|
||||
$file=''; $classname=''; $filefound=0;
|
||||
$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
|
||||
foreach($dirmodels as $reldir)
|
||||
{
|
||||
$file=dol_buildpath($reldir."core/modules/paymentorders/doc/pdf_".$modele.".modules.php",0);
|
||||
if (file_exists($file))
|
||||
{
|
||||
$filefound=1;
|
||||
$classname = "pdf_".$modele;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($filefound)
|
||||
{
|
||||
require_once $file;
|
||||
|
||||
$module = new $classname($db);
|
||||
|
||||
if ($module->write_file($commande,$langs) > 0)
|
||||
{
|
||||
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=paymentorders&file=SPECIMEN.pdf");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessages($module->error, null, 'errors');
|
||||
dol_syslog($module->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
// Set default model
|
||||
elseif ($action == 'setdoc')
|
||||
{
|
||||
if (dolibarr_set_const($db, "PAYMENTORDER_ADDON_PDF",$value,'chaine',0,'',$conf->entity))
|
||||
{
|
||||
// The constant that was read before the new set
|
||||
// We therefore requires a variable to have a coherent view
|
||||
$conf->global->PAYMENTORDER_ADDON_PDF = $value;
|
||||
}
|
||||
|
||||
// On active le modele
|
||||
$ret = delDocumentModel($value, $type);
|
||||
if ($ret > 0)
|
||||
{
|
||||
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
@ -207,52 +142,62 @@ $linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_valu
|
||||
print load_fiche_titre($langs->trans("WithdrawalsSetup"), $linkback, 'title_setup');
|
||||
print '<br>';
|
||||
|
||||
print '<form method="post" action="prelevement.php?action=set">';
|
||||
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'?action=set">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
|
||||
print '<table class="noborder centpercent">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td width="30%">'.$langs->trans("Parameter").'</td>';
|
||||
print '<td width="40%">'.$langs->trans("Value").'</td>';
|
||||
print '<td class="titlefieldcreate">'.$langs->trans("Parameter").'</td>';
|
||||
print '<td>'.$langs->trans("Value").'</td>';
|
||||
print "</tr>";
|
||||
|
||||
// Bank account (from Banks module)
|
||||
print '<tr class="impair"><td class="fieldrequired">'.$langs->trans("BankToReceiveWithdraw").'</td>';
|
||||
print '<tr class="oddeven"><td class="fieldrequired">'.$langs->trans("BankToReceiveWithdraw").'</td>';
|
||||
print '<td class="left">';
|
||||
$form->select_comptes($conf->global->PRELEVEMENT_ID_BANKACCOUNT, 'PRELEVEMENT_ID_BANKACCOUNT', 0, "courant=1", 1);
|
||||
print '</td></tr>';
|
||||
|
||||
// ICS
|
||||
print '<tr class="pair"><td class="fieldrequired">'.$langs->trans("ICS").'</td>';
|
||||
print '<tr class="oddeven"><td class="fieldrequired">';
|
||||
$htmltext = $langs->trans("AskThisIDToYourBank");
|
||||
print $form->textwithpicto($langs->trans("ICS"), $htmltext);
|
||||
print '</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PRELEVEMENT_ICS" value="'.$conf->global->PRELEVEMENT_ICS.'" size="15" ></td>';
|
||||
print '<input type="text" name="PRELEVEMENT_ICS" value="'.$conf->global->PRELEVEMENT_ICS.'" size="15" >';
|
||||
print '</td>';
|
||||
print '</td></tr>';
|
||||
|
||||
//User
|
||||
print '<tr class="impair"><td class="fieldrequired">'.$langs->trans("ResponsibleUser").'</td>';
|
||||
print '<tr class="oddeven"><td class="fieldrequired">'.$langs->trans("ResponsibleUser").'</td>';
|
||||
print '<td class="left">';
|
||||
print $form->select_dolusers($conf->global->PRELEVEMENT_USER, 'PRELEVEMENT_USER', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
//EntToEnd
|
||||
print '<tr class="pair"><td>'.$langs->trans("END_TO_END").'</td>';
|
||||
print '<tr class="oddeven"><td>';
|
||||
$htmltext = $langs->trans("KeepThisEmptyInMostCases");
|
||||
print $form->textwithpicto($langs->trans("END_TO_END"), $htmltext);
|
||||
print '</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PRELEVEMENT_END_TO_END" value="'.$conf->global->PRELEVEMENT_END_TO_END.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
|
||||
//USTRD
|
||||
print '<tr class="pair"><td>'.$langs->trans("USTRD").'</td>';
|
||||
print '<tr class="oddeven"><td>';
|
||||
$htmltext = $langs->trans("KeepThisEmptyInMostCases");
|
||||
print $form->textwithpicto($langs->trans("USTRD"), $htmltext);
|
||||
print '</td>';
|
||||
print '<td class="left">';
|
||||
print '<input type="text" name="PRELEVEMENT_USTRD" value="'.$conf->global->PRELEVEMENT_USTRD.'" size="15" ></td>';
|
||||
print '</td></tr>';
|
||||
|
||||
//ADDDAYS
|
||||
print '<tr class="pair"><td>'.$langs->trans("ADDDAYS").'</td>';
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("ADDDAYS").'</td>';
|
||||
print '<td class="left">';
|
||||
if (!$conf->global->PRELEVEMENT_ADDDAYS) $conf->global->PRELEVEMENT_ADDDAYS = 0;
|
||||
print '<input type="text" name="PRELEVEMENT_ADDDAYS" value="'.$conf->global->PRELEVEMENT_ADDDAYS.'" size="15" ></td>';
|
||||
print '<input type="text" name="PRELEVEMENT_ADDDAYS" value="'.$conf->global->PRELEVEMENT_ADDDAYS.'" size="5" ></td>';
|
||||
print '</td></tr>';
|
||||
print '</table>';
|
||||
print '<br>';
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||
* Copyright (C) 2017 Open-DSI <support@open-dsi.fr>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -493,7 +493,7 @@ $sql .= ' a.datep2,';
|
||||
$sql .= ' a.percent,';
|
||||
$sql .= ' a.fk_user_author,a.fk_user_action,';
|
||||
$sql .= ' a.transparency, a.priority, a.fulldayevent, a.location,';
|
||||
$sql .= ' a.fk_soc, a.fk_contact,';
|
||||
$sql .= ' a.fk_soc, a.fk_contact, a.fk_project,';
|
||||
$sql .= ' a.fk_element, a.elementtype,';
|
||||
$sql .= ' ca.code as type_code, ca.libelle as type_label, ca.color as type_color';
|
||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'c_actioncomm as ca, '.MAIN_DB_PREFIX."actioncomm as a";
|
||||
@ -608,7 +608,9 @@ if ($resql)
|
||||
|
||||
// Create a new object action
|
||||
$event = new ActionComm($db);
|
||||
|
||||
$event->id = $obj->id;
|
||||
$event->ref = $event->id;
|
||||
|
||||
$event->datep = $db->jdate($obj->datep); // datep and datef are GMT date. Example: 1970-01-01 01:00:00, jdate will return 0 if TZ of PHP server is Europe/Berlin
|
||||
$event->datef = $db->jdate($obj->datep2);
|
||||
@ -632,6 +634,8 @@ if ($resql)
|
||||
$event->fk_element = $obj->fk_element;
|
||||
$event->elementtype = $obj->elementtype;
|
||||
|
||||
$event->fk_project = $obj->fk_project;
|
||||
|
||||
$event->thirdparty_id = $obj->fk_soc;
|
||||
$event->contact_id = $obj->fk_contact;
|
||||
|
||||
@ -718,7 +722,10 @@ if ($showbirthday)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
$event = new ActionComm($db);
|
||||
|
||||
$event->id = $obj->rowid; // We put contact id in action id for birthdays events
|
||||
$event->ref = $event->id;
|
||||
|
||||
$datebirth = dol_stringtotime($obj->birthday, 1);
|
||||
//print 'ee'.$obj->birthday.'-'.$datebirth;
|
||||
$datearray = dol_getdate($datebirth, true);
|
||||
@ -796,6 +803,7 @@ if ($conf->global->AGENDA_SHOW_HOLIDAYS)
|
||||
|
||||
// Need the id of the leave object for link to it
|
||||
$event->id = $obj->rowid;
|
||||
$event->ref = $event->id;
|
||||
|
||||
$event->type_code = 'HOLIDAY';
|
||||
$event->datep = dol_mktime(0, 0, 0, $dateStartArray['mon'], $dateStartArray['mday'], $dateStartArray['year'], true);
|
||||
@ -1036,6 +1044,8 @@ if (count($listofextcals))
|
||||
if ($addevent)
|
||||
{
|
||||
$event->id = $icalevent['UID'];
|
||||
$event->ref = $event->id;
|
||||
|
||||
$event->icalname = $namecal;
|
||||
$event->icalcolor = $colorcal;
|
||||
$usertime = 0; // We dont modify date because we want to have date into memory datep and datef stored as GMT date. Compensation will be done during output.
|
||||
@ -1626,7 +1636,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
||||
// Hour start
|
||||
if ($tmpyearstart == $annee && $tmpmonthstart == $mois && $tmpdaystart == $jour)
|
||||
{
|
||||
$daterange .= dol_print_date($event->date_start_in_calendar, '%H:%M'); // Il faudrait utiliser ici tzuser, mais si on ne peut pas car qd on rentre un date dans fiche action, en input la conversion local->gmt se base sur le TZ server et non user
|
||||
$daterange .= dol_print_date($event->date_start_in_calendar, 'hour'); // Il faudrait utiliser ici tzuser, mais si on ne peut pas car qd on rentre un date dans fiche action, en input la conversion local->gmt se base sur le TZ server et non user
|
||||
if ($event->date_end_in_calendar && $event->date_start_in_calendar != $event->date_end_in_calendar)
|
||||
{
|
||||
if ($tmpyearstart == $tmpyearend && $tmpmonthstart == $tmpmonthend && $tmpdaystart == $tmpdayend)
|
||||
@ -1646,7 +1656,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
||||
if ($event->date_end_in_calendar && $event->date_start_in_calendar != $event->date_end_in_calendar)
|
||||
{
|
||||
if ($tmpyearend == $annee && $tmpmonthend == $mois && $tmpdayend == $jour)
|
||||
$daterange .= dol_print_date($event->date_end_in_calendar, '%H:%M'); // Il faudrait utiliser ici tzuser, mais si on ne peut pas car qd on rentre un date dans fiche action, en input la conversion local->gmt se base sur le TZ server et non user
|
||||
$daterange .= dol_print_date($event->date_end_in_calendar, 'hour'); // Il faudrait utiliser ici tzuser, mais si on ne peut pas car qd on rentre un date dans fiche action, en input la conversion local->gmt se base sur le TZ server et non user
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -1253,7 +1253,7 @@ if (empty($reshook))
|
||||
}
|
||||
|
||||
// Add link between credit note and origin
|
||||
if (!empty($object->fk_facture_source)) {
|
||||
if (!empty($object->fk_facture_source) && $id > 0) {
|
||||
$facture_source->fetch($object->fk_facture_source);
|
||||
$facture_source->fetchObjectLinked();
|
||||
|
||||
|
||||
@ -78,13 +78,13 @@ print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("NbOfInvoiceToPayByBankTransfer").'</td>';
|
||||
print '<td class="right">';
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/demandes.php?status=0&type=bank-transfer">';
|
||||
print $bprev->NbFactureAPrelever();
|
||||
print $bprev->nbOfInvoiceToPay('credit-transfer');
|
||||
print '</a>';
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
|
||||
print '<td class="right">';
|
||||
print price($bprev->SommeAPrelever(), '', '', 1, -1, -1, 'auto');
|
||||
print price($bprev->SommeAPrelever('credit-transfer'), '', '', 1, -1, -1, 'auto');
|
||||
print '</td></tr></table></div><br>';
|
||||
|
||||
|
||||
|
||||
@ -687,17 +687,21 @@ class BonPrelevement extends CommonObject
|
||||
/**
|
||||
* Returns amount of withdrawal
|
||||
*
|
||||
* @return double Total amount
|
||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
||||
* @return double <O if KO, Total amount
|
||||
*/
|
||||
public function SommeAPrelever()
|
||||
public function SommeAPrelever($mode = 'direct-debit')
|
||||
{
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT sum(pfd.amount) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
||||
if ($mode != 'credit-transfer') {
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f,";
|
||||
} else {
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f,";
|
||||
}
|
||||
$sql .= " ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||
//$sql.= " ,".MAIN_DB_PREFIX."c_paiement as cp";
|
||||
$sql .= " WHERE f.fk_statut = 1";
|
||||
$sql .= " AND f.entity IN (".getEntity('invoice').")";
|
||||
$sql .= " AND f.rowid = pfd.fk_facture";
|
||||
@ -719,32 +723,51 @@ class BonPrelevement extends CommonObject
|
||||
$error = 1;
|
||||
dol_syslog(get_class($this)."::SommeAPrelever Erreur -1");
|
||||
dol_syslog($this->db->error());
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of invoices waiting for payment
|
||||
*
|
||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
||||
* @return int <O if KO, number of invoices if OK
|
||||
*/
|
||||
public function nbOfInvoiceToPay($mode = 'direct-debit')
|
||||
{
|
||||
return $this->NbFactureAPrelever($mode);
|
||||
}
|
||||
|
||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||
/**
|
||||
* Get number of invoices to withdrawal
|
||||
* TODO delete params banque and agence when not necesary
|
||||
*
|
||||
* @param int $banque dolibarr mysoc bank
|
||||
* @param int $agence dolibarr mysoc agence
|
||||
* @param string $mode 'direct-debit' or 'credit-transfer'
|
||||
* @return int <O if KO, number of invoices if OK
|
||||
*/
|
||||
public function NbFactureAPrelever($banque = 0, $agence = 0)
|
||||
public function NbFactureAPrelever($mode = 'direct-debit')
|
||||
{
|
||||
// phpcs:enable
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT count(f.rowid) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||
if ($mode == 'credit-transfer') {
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn as f";
|
||||
} else {
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
|
||||
}
|
||||
$sql .= ", ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
|
||||
$sql .= " WHERE f.entity IN (".getEntity('invoice').")";
|
||||
if (empty($conf->global->WITHDRAWAL_ALLOW_ANY_INVOICE_STATUS))
|
||||
{
|
||||
$sql .= " AND f.fk_statut = ".Facture::STATUS_VALIDATED;
|
||||
}
|
||||
$sql .= " AND f.rowid = pfd.fk_facture";
|
||||
if ($mode == 'credit-transfer') {
|
||||
$sql .= " AND f.rowid = pfd.fk_facture_fourn";
|
||||
} else {
|
||||
$sql .= " AND f.rowid = pfd.fk_facture";
|
||||
}
|
||||
$sql .= " AND pfd.traite = 0";
|
||||
$sql .= " AND f.total_ttc > 0";
|
||||
|
||||
|
||||
@ -142,10 +142,8 @@ print load_fiche_titre($title);
|
||||
dol_fiche_head();
|
||||
|
||||
$nb = $bprev->NbFactureAPrelever();
|
||||
$nb1 = $bprev->NbFactureAPrelever(1);
|
||||
$nb11 = $bprev->NbFactureAPrelever(1, 1);
|
||||
$pricetowithdraw = $bprev->SommeAPrelever();
|
||||
if ($nb < 0 || $nb1 < 0 || $nb11 < 0)
|
||||
if ($nb < 0)
|
||||
{
|
||||
dol_print_error($bprev->error);
|
||||
}
|
||||
|
||||
@ -78,13 +78,13 @@ print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("NbOfInvoiceToWithdraw").'</td>';
|
||||
print '<td class="right">';
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/prelevement/demandes.php?status=0">';
|
||||
print $bprev->NbFactureAPrelever();
|
||||
print $bprev->nbOfInvoiceToPay('direct-debit');
|
||||
print '</a>';
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("AmountToWithdraw").'</td>';
|
||||
print '<td class="right">';
|
||||
print price($bprev->SommeAPrelever(), '', '', 1, -1, -1, 'auto');
|
||||
print price($bprev->SommeAPrelever('direct-debit'), '', '', 1, -1, -1, 'auto');
|
||||
print '</td></tr></table></div><br>';
|
||||
|
||||
|
||||
|
||||
@ -635,6 +635,7 @@ abstract class CommonObject
|
||||
|
||||
$contactid = 0;
|
||||
$thirdpartyid = 0;
|
||||
$elementforaltlanguage = $this->element;
|
||||
if ($this->element == 'societe')
|
||||
{
|
||||
$thirdpartyid = $this->id;
|
||||
@ -682,10 +683,11 @@ abstract class CommonObject
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/extralanguages.class.php';
|
||||
$extralanguages = new ExtraLanguages($this->db);
|
||||
}
|
||||
$extralanguages->fetch_name_extralanguages('societe');
|
||||
$extralanguages->fetch_name_extralanguages($elementforaltlanguage);
|
||||
|
||||
if (!empty($extralanguages->attributes['societe']['address']) || !empty($extralanguages->attributes['societe']['town']))
|
||||
if (!empty($extralanguages->attributes[$elementforaltlanguage]['address']) || !empty($extralanguages->attributes[$elementforaltlanguage]['town']))
|
||||
{
|
||||
$out .= "<!-- alternatelanguage for '".$elementforaltlanguage."' set to fields '".join(',', $extralanguages->attributes[$elementforaltlanguage]). "' -->\n";
|
||||
$this->fetchValuesForExtraLanguages();
|
||||
if (!is_object($form)) $form = new Form($this->db);
|
||||
$htmltext = '';
|
||||
@ -4742,7 +4744,7 @@ abstract class CommonObject
|
||||
// Search template files
|
||||
$file = '';
|
||||
$classname = '';
|
||||
$filefound = 0;
|
||||
$filefound = '';
|
||||
$dirmodels = array('/');
|
||||
if (is_array($conf->modules_parts['models'])) $dirmodels = array_merge($dirmodels, $conf->modules_parts['models']);
|
||||
foreach ($dirmodels as $reldir)
|
||||
@ -4756,7 +4758,7 @@ abstract class CommonObject
|
||||
$file = dol_buildpath($reldir.$modelspath.$file, 0);
|
||||
if (file_exists($file))
|
||||
{
|
||||
$filefound = 1;
|
||||
$filefound = $file;
|
||||
$classname = $prefix.'_'.$modele;
|
||||
break;
|
||||
}
|
||||
@ -4960,11 +4962,14 @@ abstract class CommonObject
|
||||
dol_print_error($this->db, "Error generating document for ".__CLASS__.". Error: ".$obj->error, $obj->errors);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error = $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists", $file);
|
||||
dol_print_error('', $this->error);
|
||||
} else {
|
||||
if (! $filefound) {
|
||||
$this->error = $langs->trans("Error").' Failed to load doc generator with modelpaths='.$modelspath.' - modele='.$modele;
|
||||
dol_print_error('', $this->error);
|
||||
} else {
|
||||
$this->error = $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists", $filefound);
|
||||
dol_print_error('', $this->error);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ class ExtraLanguages
|
||||
/**
|
||||
* Load array this->attributes with list of fields per object that need an alternate translation. The object and field must be managed with
|
||||
* the widgetForTranslation() method.
|
||||
* You can set variable MAIN_USE_ALTERNATE_TRANSLATION_FOR=elementA:fieldname,fieldname2;elementB:...
|
||||
* You must set variable MAIN_USE_ALTERNATE_TRANSLATION_FOR=elementA:fieldname,fieldname2;elementB:...
|
||||
* Example: MAIN_USE_ALTERNATE_TRANSLATION_FOR=societe:name,town;contact:firstname,lastname
|
||||
*
|
||||
* @param string $elementtype Type of element ('' = all, 'adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...).
|
||||
|
||||
@ -127,12 +127,12 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
|
||||
{
|
||||
$i++;
|
||||
$texttoinsert .= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',";
|
||||
$texttoinsert .= " 'enabled'=>".($val['enabled'] !== '' ? $val['enabled'] : 1).",";
|
||||
$texttoinsert .= " 'enabled'=>'".($val['enabled'] !== '' ? $val['enabled'] : 1)."',";
|
||||
$texttoinsert .= " 'position'=>".($val['position'] !== '' ? $val['position'] : 50).",";
|
||||
$texttoinsert .= " 'notnull'=>".(empty($val['notnull']) ? 0 : $val['notnull']).",";
|
||||
$texttoinsert .= " 'visible'=>".($val['visible'] !== '' ? $val['visible'] : -1).",";
|
||||
if ($val['noteditable']) $texttoinsert .= " 'noteditable'=>'".$val['noteditable']."',";
|
||||
if ($val['default']) $texttoinsert .= " 'default'=>'".$val['default']."',";
|
||||
if ($val['default'] || $val['default'] === '0') $texttoinsert .= " 'default'=>'".$val['default']."',";
|
||||
if ($val['index']) $texttoinsert .= " 'index'=>".$val['index'].",";
|
||||
if ($val['foreignkey']) $texttoinsert .= " 'foreignkey'=>'".$val['foreignkey']."',";
|
||||
if ($val['searchall']) $texttoinsert .= " 'searchall'=>".$val['searchall'].",";
|
||||
@ -141,6 +141,7 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir =
|
||||
if ($val['help']) $texttoinsert .= " 'help'=>\"".preg_replace('/"/', '', $val['help'])."\",";
|
||||
if ($val['showoncombobox']) $texttoinsert .= " 'showoncombobox'=>'".$val['showoncombobox']."',";
|
||||
if ($val['disabled']) $texttoinsert .= " 'disabled'=>'".$val['disabled']."',";
|
||||
if ($val['autofocusoncreate']) $texttoinsert .= " 'autofocusoncreate'=>'".$val['autofocusoncreate']."',";
|
||||
if ($val['arrayofkeyval'])
|
||||
{
|
||||
$texttoinsert .= " 'arrayofkeyval'=>array(";
|
||||
|
||||
@ -83,7 +83,7 @@ class mod_bom_standard extends ModeleNumRefboms
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."bom";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -116,8 +116,8 @@ class mod_bom_standard extends ModeleNumRefboms
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 9;
|
||||
// First we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."bom_bom";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -80,7 +80,7 @@ class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
|
||||
|
||||
$payyymm = ''; $max = '';
|
||||
|
||||
$posindice = 9;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."bordereau_cheque";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -113,8 +113,8 @@ class mod_chequereceipt_mint extends ModeleNumRefChequeReceipts
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 9;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."bordereau_cheque";
|
||||
$sql .= " WHERE ref like '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -83,7 +83,7 @@ class mod_commande_marbre extends ModeleNumRefCommandes
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -116,8 +116,8 @@ class mod_commande_marbre extends ModeleNumRefCommandes
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -93,7 +93,7 @@ class mod_contract_serpis extends ModelNumRefContracts
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."contrat";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -126,7 +126,7 @@ class mod_contract_serpis extends ModelNumRefContracts
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."contrat";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -88,7 +88,7 @@ class mod_expedition_safor extends ModelNumRefExpedition
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."expedition";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -121,7 +121,7 @@ class mod_expedition_safor extends ModelNumRefExpedition
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."expedition";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -89,7 +89,7 @@ class mod_expensereport_jade extends ModeleNumRefExpenseReport
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."expensereport";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -174,7 +174,7 @@ class mod_expensereport_jade extends ModeleNumRefExpenseReport
|
||||
}
|
||||
|
||||
// First we get the max value
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."expensereport";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -98,7 +98,7 @@ class mod_facture_mars extends ModeleNumRefFactures
|
||||
// Check invoice num
|
||||
$fayymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixinvoice) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixinvoice)."____-%'";
|
||||
@ -120,7 +120,7 @@ class mod_facture_mars extends ModeleNumRefFactures
|
||||
// Check credit note num
|
||||
$fayymm = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixcreditnote) + 6;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
|
||||
@ -152,15 +152,14 @@ class mod_facture_mars extends ModeleNumRefFactures
|
||||
public function getNextValue($objsoc, $invoice, $mode = 'next')
|
||||
{
|
||||
global $db;
|
||||
$prefix = $this->prefixinvoice;
|
||||
|
||||
$prefix = $this->prefixinvoice;
|
||||
if ($invoice->type == 1) $prefix = $this->prefixreplacement;
|
||||
elseif ($invoice->type == 2) $prefix = $this->prefixcreditnote;
|
||||
elseif ($invoice->type == 3) $prefix = $this->prefixdeposit;
|
||||
else $prefix = $this->prefixinvoice;
|
||||
|
||||
// First we get the max value
|
||||
$posindice = 8;
|
||||
$posindice = strlen($prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$prefix."____-%'";
|
||||
|
||||
@ -108,7 +108,7 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
// Check invoice num
|
||||
$fayymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixinvoice) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixinvoice)."____-%'";
|
||||
@ -130,7 +130,7 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
// Check credit note num
|
||||
$fayymm = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixcreditnote) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
|
||||
@ -151,7 +151,7 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
// Check deposit num
|
||||
$fayymm = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixdeposit) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixdeposit)."____-%'";
|
||||
@ -186,11 +186,12 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
|
||||
dol_syslog(get_class($this)."::getNextValue mode=".$mode, LOG_DEBUG);
|
||||
|
||||
$prefix = $this->prefixinvoice;
|
||||
if ($invoice->type == 2) $prefix = $this->prefixcreditnote;
|
||||
elseif ($invoice->type == 3) $prefix = $this->prefixdeposit;
|
||||
else $prefix = $this->prefixinvoice;
|
||||
|
||||
// First we get the max value
|
||||
$posindice = 8;
|
||||
$posindice = strlen($prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$prefix."____-%'";
|
||||
|
||||
@ -91,7 +91,7 @@ class mod_pacific extends ModeleNumRefFicheinter
|
||||
|
||||
$fayymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."fichinter";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -126,8 +126,8 @@ class mod_pacific extends ModeleNumRefFicheinter
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."fichinter";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -94,7 +94,7 @@ class mod_holiday_madonna extends ModelNumRefHolidays
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."holiday";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -127,7 +127,7 @@ class mod_holiday_madonna extends ModelNumRefHolidays
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."holiday";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -96,7 +96,7 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder
|
||||
// Check invoice num
|
||||
$fayymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."livraison";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -129,8 +129,8 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."livraison";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -34,7 +34,6 @@ include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
|
||||
*/
|
||||
class modPrelevement extends DolibarrModules
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor. Define names, constants, directories, boxes, permissions
|
||||
*
|
||||
|
||||
@ -83,7 +83,7 @@ class mod_mo_standard extends ModeleNumRefMos
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."mrp_mo";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -116,8 +116,8 @@ class mod_mo_standard extends ModeleNumRefMos
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 9;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."mrp_mo";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -90,7 +90,7 @@ class mod_payment_cicada extends ModeleNumRefPayments
|
||||
|
||||
$payyymm = ''; $max = '';
|
||||
|
||||
$posindice = 9;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."paiement";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -123,8 +123,8 @@ class mod_payment_cicada extends ModeleNumRefPayments
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 9;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."paiement";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -92,7 +92,7 @@ class mod_project_simple extends ModeleNumRefProjects
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."projet";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -127,8 +127,8 @@ class mod_project_simple extends ModeleNumRefProjects
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."projet";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -92,7 +92,7 @@ class mod_task_simple extends ModeleNumRefTask
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(task.ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task AS task, ";
|
||||
$sql .= MAIN_DB_PREFIX."projet AS project WHERE task.fk_projet=project.rowid";
|
||||
@ -128,8 +128,8 @@ class mod_task_simple extends ModeleNumRefTask
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -92,7 +92,7 @@ class mod_propale_marbre extends ModeleNumRefPropales
|
||||
|
||||
$pryymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."propal";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -128,8 +128,8 @@ class mod_propale_marbre extends ModeleNumRefPropales
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."propal";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -68,7 +68,7 @@ class mod_reception_beryl extends ModelNumRefReception
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."reception";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -101,7 +101,7 @@ class mod_reception_beryl extends ModelNumRefReception
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
$posindice = 9;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."reception";
|
||||
$sql .= " WHERE ref like '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -129,8 +129,8 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
|
||||
return -1;
|
||||
}
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
$posindice = 8;
|
||||
// First, we get the max value (reponse immediate car champ indexe)
|
||||
$posindice = strlen($prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(".$field." FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe";
|
||||
$sql .= " WHERE ".$field." LIKE '".$prefix."____-%'";
|
||||
|
||||
@ -101,7 +101,7 @@ class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices
|
||||
// Check invoice num
|
||||
$siyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixinvoice) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixinvoice)."____-%'";
|
||||
@ -122,7 +122,7 @@ class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices
|
||||
// Check credit note num
|
||||
$siyymm = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixcreditnote) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixcreditnote)."____-%'";
|
||||
@ -143,7 +143,7 @@ class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices
|
||||
// Check deposit num
|
||||
$siyymm = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefixdeposit) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefixdeposit)."____-%'";
|
||||
@ -174,12 +174,12 @@ class mod_facture_fournisseur_cactus extends ModeleNumRefSuppliersInvoices
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
$prefix = $this->prefixinvoice;
|
||||
if ($object->type == 2) $prefix = $this->prefixcreditnote;
|
||||
elseif ($facture->type == 3) $prefix = $this->prefixdeposit;
|
||||
else $prefix = $this->prefixinvoice;
|
||||
elseif ($object->type == 3) $prefix = $this->prefixdeposit;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn";
|
||||
$sql .= " WHERE ref LIKE '".$prefix."____-%'";
|
||||
|
||||
@ -102,7 +102,7 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -136,8 +136,8 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -90,7 +90,7 @@ class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
|
||||
|
||||
$payyymm = ''; $max = '';
|
||||
|
||||
$posindice = 9;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."paiementfourn";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -123,8 +123,8 @@ class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 10;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."paiementfourn";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -92,7 +92,7 @@ class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal
|
||||
|
||||
$pryymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."supplier_proposal";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -128,8 +128,8 @@ class mod_supplier_proposal_marbre extends ModeleNumRefSupplierProposal
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."supplier_proposal";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -41,7 +41,7 @@ class mod_takepos_ref_simple extends ModeleNumRefTakepos
|
||||
* Prefix
|
||||
* @var string
|
||||
*/
|
||||
public $prefix = 'TK';
|
||||
public $prefix = 'TC';
|
||||
|
||||
/**
|
||||
* @var string Error code (or message)
|
||||
@ -89,7 +89,11 @@ class mod_takepos_ref_simple extends ModeleNumRefTakepos
|
||||
$pryymm = '';
|
||||
$max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$pos_source = 0;
|
||||
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix.$pos_source.'-____-') + 1;
|
||||
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -127,7 +131,7 @@ class mod_takepos_ref_simple extends ModeleNumRefTakepos
|
||||
|
||||
$pos_source = is_object($invoice) && $invoice->pos_source > 0 ? $invoice->pos_source : 0;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix.$pos_source.'-____-') + 1;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max"; // This is standard SQL
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
|
||||
@ -89,7 +89,7 @@ class mod_ticket_simple extends ModeleNumRefTicket
|
||||
$coyymm = '';
|
||||
$max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."ticket";
|
||||
$search = $this->prefix."____-%";
|
||||
@ -123,8 +123,8 @@ class mod_ticket_simple extends ModeleNumRefTicket
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 8;
|
||||
// First, we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."ticket";
|
||||
$search = $this->prefix."____-%";
|
||||
|
||||
@ -75,8 +75,6 @@ $pagenext = $page + 1;
|
||||
if (!$sortorder) $sortorder = "DESC";
|
||||
if (!$sortfield)
|
||||
{
|
||||
//if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sortfield="fd.date";
|
||||
//else
|
||||
$sortfield = "f.ref";
|
||||
}
|
||||
|
||||
@ -203,7 +201,7 @@ foreach ($arrayfields as $tmpkey => $tmpval)
|
||||
|
||||
$sql = "SELECT";
|
||||
$sql .= " f.ref, f.rowid, f.fk_statut as status, f.description, f.datec as date_creation, f.tms as date_update, f.note_private,";
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql .= "fd.rowid as lineid, fd.description as descriptiondetail, fd.date as dp, fd.duree,";
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql .= " fd.rowid as lineid, fd.description as descriptiondetail, fd.date as dp, fd.duree,";
|
||||
$sql .= " s.nom as name, s.rowid as socid, s.client, s.fournisseur, s.email, s.status as thirdpartystatus";
|
||||
if (!empty($conf->projet->enabled)) {
|
||||
$sql .= ", pr.rowid as projet_id, pr.ref as projet_ref, pr.title as projet_title";
|
||||
@ -245,7 +243,7 @@ if ($search_contrat_ref) {
|
||||
$sql .= natural_search('c.ref', $search_contrat_ref);
|
||||
}
|
||||
if ($search_desc) {
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sql .= natural_search(array('f.description', 'fd.description'), $search_desc);
|
||||
if (empty($conf->global->FICHINTER_DISABLE_DETAILS) && $atleastonefieldinlines) $sql .= natural_search(array('f.description', 'fd.description'), $search_desc);
|
||||
else $sql .= natural_search(array('f.description'), $search_desc);
|
||||
}
|
||||
if ($search_status != '' && $search_status >= 0) {
|
||||
|
||||
@ -21,6 +21,9 @@
|
||||
* \brief Show example of import file
|
||||
*/
|
||||
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on)
|
||||
|
||||
|
||||
/**
|
||||
* This file is a wrapper, so empty header
|
||||
*
|
||||
|
||||
@ -823,6 +823,7 @@ if ($step == 4 && $datatoimport)
|
||||
print '<tr><td>'.$langs->trans("CsvOptions").'</td>';
|
||||
print '<td>';
|
||||
print '<form>';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" value="'.$step.'" name="step">';
|
||||
print '<input type="hidden" value="'.$format.'" name="format">';
|
||||
print '<input type="hidden" value="'.$excludefirstline.'" name="excludefirstline">';
|
||||
@ -1249,6 +1250,7 @@ if ($step == 5 && $datatoimport)
|
||||
|
||||
|
||||
print '<form action="'.$_SERVER["PHP_SELF"].'?'.$param2.'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="step" value="5">'; // step 5
|
||||
print '<input type="hidden" name="action" value="launchsimu">'; // step 5
|
||||
|
||||
|
||||
@ -73,6 +73,8 @@ delete from llx_const where name in ('PROJECT_HIDE_TASKS', 'MAIN_BUGTRACK_ENABLE
|
||||
|
||||
ALTER TABLE llx_prelevement_bons ADD COLUMN type varchar(16) DEFAULT 'debit-order';
|
||||
|
||||
ALTER TABLE llx_ecm_files MODIFY COLUMN src_object_type varchar(64);
|
||||
|
||||
|
||||
-- Delete an old index that is duplicated
|
||||
-- VMYSQL4.1 DROP INDEX ix_fk_product_stock on llx_product_batch;
|
||||
|
||||
@ -25,7 +25,7 @@ CREATE TABLE llx_ecm_files
|
||||
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||
filepath varchar(255) NOT NULL, -- relative to dolibarr document dir. Example module/def
|
||||
filename varchar(255) NOT NULL, -- file name only without any directory
|
||||
src_object_type varchar(32), -- Source object type ('proposal', 'invoice', ...)
|
||||
src_object_type varchar(64), -- Source object type ('proposal', 'invoice', ...)
|
||||
src_object_id integer, -- Source object id
|
||||
fullpath_orig varchar(750), -- full path of original filename, when file is uploaded from a local computer
|
||||
description text,
|
||||
|
||||
@ -207,7 +207,7 @@ ModulesMarketPlaces=Find external app/modules
|
||||
ModulesDevelopYourModule=Develop your own app/modules
|
||||
ModulesDevelopDesc=You may also develop your own module or find a partner to develop one for you.
|
||||
DOLISTOREdescriptionLong=Instead of switching on <a href="https://www.dolistore.com">www.dolistore.com</a> web site to find an external module, you can use this embedded tool that will perform the search on the external market place for you (may be slow, need an internet access)...
|
||||
NewModule=New
|
||||
NewModule=New module
|
||||
FreeModule=Free
|
||||
CompatibleUpTo=Compatible with version %s
|
||||
NotCompatible=This module does not seem compatible with your Dolibarr %s (Min %s - Max %s).
|
||||
@ -446,6 +446,7 @@ LinkToTestClickToDial=Enter a phone number to call to show a link to test the Cl
|
||||
RefreshPhoneLink=Refresh link
|
||||
LinkToTest=Clickable link generated for user <strong>%s</strong> (click phone number to test)
|
||||
KeepEmptyToUseDefault=Keep empty to use default value
|
||||
KeepThisEmptyInMostCases=In most cases, you can keep this field empy.
|
||||
DefaultLink=Default link
|
||||
SetAsDefault=Set as default
|
||||
ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url)
|
||||
@ -1263,6 +1264,7 @@ FieldEdition=Edition of field %s
|
||||
FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
|
||||
GetBarCode=Get barcode
|
||||
NumberingModules=Numbering models
|
||||
DocumentModules=Document models
|
||||
##### Module password generation
|
||||
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||
|
||||
@ -11,7 +11,7 @@ CloseEtablishment=Close establishment
|
||||
# Dictionary
|
||||
DictionaryPublicHolidays=HRM - Public holidays
|
||||
DictionaryDepartment=HRM - Department list
|
||||
DictionaryFunction=HRM - Function list
|
||||
DictionaryFunction=HRM - Job positions
|
||||
# Module
|
||||
Employees=Employees
|
||||
Employee=Employee
|
||||
|
||||
@ -218,6 +218,6 @@ ErrorFoundDuringMigration=Error(s) were reported during the migration process so
|
||||
YouTryInstallDisabledByDirLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (directory renamed with .lock suffix).<br>
|
||||
YouTryInstallDisabledByFileLock=The application tried to self-upgrade, but the install/upgrade pages have been disabled for security (by the existence of a lock file <strong>install.lock</strong> in the dolibarr documents directory).<br>
|
||||
ClickHereToGoToApp=Click here to go to your application
|
||||
ClickOnLinkOrRemoveManualy=Click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
||||
ClickOnLinkOrRemoveManualy=If an upgrade is in progress, please wait. If not, click on the following link. If you always see this same page, you must remove/rename the file install.lock in the documents directory.
|
||||
Loaded=Loaded
|
||||
FunctionTest=Function test
|
||||
|
||||
@ -139,3 +139,4 @@ ForeignKey=Foreign key
|
||||
TypeOfFieldsHelp=Type of fields:<br>varchar(99), double(24,8), real, text, html, datetime, timestamp, integer, integer:ClassName:relativepath/to/classfile.class.php[:1[:filter]] ('1' means we add a + button after the combo to create the record, 'filter' can be 'status=1 AND fk_user = __USER_ID AND entity IN (__SHARED_ENTITIES__)' for example)
|
||||
AsciiToHtmlConverter=Ascii to HTML converter
|
||||
AsciiToPdfConverter=Ascii to PDF converter
|
||||
TableNotEmptyDropCanceled=Table not empty. Drop has been canceled.
|
||||
@ -27,6 +27,7 @@ NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is wai
|
||||
NoSupplierInvoiceToWithdraw=No supplier invoice with open 'Direct credit requests' is waiting. Go on tab '%s' on invoice card to make a request.
|
||||
ResponsibleUser=User Responsible
|
||||
WithdrawalsSetup=Direct debit payment setup
|
||||
CreditTransferSetup=Crebit transfer setup
|
||||
WithdrawStatistics=Direct debit payment statistics
|
||||
WithdrawRejectStatistics=Direct debit payment reject statistics
|
||||
LastWithdrawalReceipt=Latest %s direct debit receipts
|
||||
@ -74,6 +75,7 @@ NumeroNationalEmetter=National Transmitter Number
|
||||
WithBankUsingRIB=For bank accounts using RIB
|
||||
WithBankUsingBANBIC=For bank accounts using IBAN/BIC/SWIFT
|
||||
BankToReceiveWithdraw=Receiving Bank Account
|
||||
BankToPayCreditTransfer=Bank Account used as source of payments
|
||||
CreditDate=Credit on
|
||||
WithdrawalFileNotCapable=Unable to generate withdrawal receipt file for your country %s (Your country is not supported)
|
||||
ShowWithdraw=Show Direct Debit Order
|
||||
|
||||
@ -650,14 +650,18 @@ if ($dirins && $action == 'confirm_removefile' && !empty($module))
|
||||
$dirtodelete = $dirins.'/'.$dirnametodelete;
|
||||
|
||||
$result = dol_delete_file($filetodelete);
|
||||
if (dol_is_dir_empty($dirtodelete)) dol_delete_dir($dirtodelete);
|
||||
if (! $result) {
|
||||
setEventMessages($langs->trans("ErrorFailToDeleteFile", basename($filetodelete)), null, 'errors');
|
||||
} else {
|
||||
if (dol_is_dir_empty($dirtodelete)) dol_delete_dir($dirtodelete);
|
||||
|
||||
// Update descriptor file to comment file
|
||||
if (in_array($tab, array('css', 'js')))
|
||||
{
|
||||
$srcfile = $dirins.'/'.strtolower($module).'/core/modules/mod'.$module.'.class.php';
|
||||
$arrayreplacement = array('/^\s*\''.preg_quote('/'.$relativefilename, '/').'\',*/m'=>' // \'/'.$relativefilename.'\',');
|
||||
dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1);
|
||||
// Update descriptor file to comment file
|
||||
if (in_array($tab, array('css', 'js')))
|
||||
{
|
||||
$srcfile = $dirins.'/'.strtolower($module).'/core/modules/mod'.$module.'.class.php';
|
||||
$arrayreplacement = array('/^\s*\''.preg_quote('/'.$relativefilename, '/').'\',*/m'=>' // \'/'.$relativefilename.'\',');
|
||||
dolReplaceInFile($srcfile, $arrayreplacement, '', 0, 0, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -867,7 +871,8 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
|
||||
dol_mkdir($destdir.'/core/modules/'.strtolower($module).'/doc');
|
||||
|
||||
$filetogenerate += array(
|
||||
'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
|
||||
'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php',
|
||||
'core/modules/mymodule/doc/pdf_standard_myobject.modules.php'=>'core/modules/'.strtolower($module).'/doc/pdf_standard_'.strtolower($objectname).'.modules.php'
|
||||
);
|
||||
}
|
||||
|
||||
@ -912,10 +917,12 @@ if ($dirins && $action == 'initobject' && $module && $objectname)
|
||||
'/\$includedocgeneration = 0;/' => '$includedocgeneration = 1;'
|
||||
);
|
||||
dolReplaceInFile($destdir.'/class/'.strtolower($objectname).'.class.php', $arrayreplacement, '', 0, 0, 1);
|
||||
dolReplaceInFile($destdir.'/'.strtolower($objectname).'_card.php', $arrayreplacement, '', 0, 0, 1);
|
||||
|
||||
$arrayreplacement = array(
|
||||
'/\'models\' => 0,/' => '\'models\' => 1,'
|
||||
);
|
||||
|
||||
dolReplaceInFile($destdir.'/core/modules/mod'.$module.'.class.php', $arrayreplacement, '', 0, 0, 1);
|
||||
}
|
||||
|
||||
@ -1277,13 +1284,15 @@ if ($dirins && $action == 'confirm_deleteobject' && $objectname)
|
||||
'core/modules/mymodule/mod_myobject_advanced.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_advanced.php',
|
||||
'core/modules/mymodule/mod_myobject_standard.php'=>'core/modules/'.strtolower($module).'/mod_'.strtolower($objectname).'_standard.php',
|
||||
'core/modules/mymodule/modules_myobject.php'=>'core/modules/'.strtolower($module).'/modules_'.strtolower($objectname).'.php',
|
||||
'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php'
|
||||
'core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php'=>'core/modules/'.strtolower($module).'/doc/doc_generic_'.strtolower($objectname).'_odt.modules.php',
|
||||
'core/modules/mymodule/doc/pdf_standard_myobject.modules.php'=>'core/modules/'.strtolower($module).'/doc/pdf_standard_'.strtolower($objectname).'.modules.php'
|
||||
);
|
||||
|
||||
$resultko = 0;
|
||||
foreach ($filetodelete as $filetodelete)
|
||||
{
|
||||
$resulttmp = dol_delete_file($dir.'/'.$filetodelete, 0, 0, 1);
|
||||
$resulttmp = dol_delete_file($dir.'/'.$filetodelete.'.back', 0, 0, 1);
|
||||
if (!$resulttmp) $resultko++;
|
||||
}
|
||||
|
||||
@ -1756,7 +1765,7 @@ $head[$h][1] = $langs->trans("DangerZone");
|
||||
$head[$h][2] = 'deletemodule';
|
||||
$h++;
|
||||
|
||||
dol_fiche_head($head, $module, $langs->trans("Modules"), -1, 'generic', 0, $infomodulesfound, '', 8); // Modules
|
||||
dol_fiche_head($head, $module, '', -1, '', 0, $infomodulesfound, '', 8); // Modules
|
||||
|
||||
if ($module == 'initmodule')
|
||||
{
|
||||
@ -2304,7 +2313,7 @@ elseif (!empty($module))
|
||||
|
||||
print '<span class="opacitymedium">'.$langs->trans("EnterNameOfObjectDesc").'</span><br><br>';
|
||||
|
||||
print '<input type="text" name="objectname" value="'.dol_escape_htmltag(GETPOST('objectname', 'alpha') ?GETPOST('objectname', 'alpha') : $modulename).'" placeholder="'.dol_escape_htmltag($langs->trans("ObjectKey")).'"><br>';
|
||||
print '<input type="text" name="objectname" maxlength="64" value="'.dol_escape_htmltag(GETPOST('objectname', 'alpha') ? GETPOST('objectname', 'alpha') : $modulename).'" placeholder="'.dol_escape_htmltag($langs->trans("ObjectKey")).'"><br>';
|
||||
print '<input type="checkbox" name="includerefgeneration" value="includerefgeneration"> '.$form->textwithpicto($langs->trans("IncludeRefGeneration"), $langs->trans("IncludeRefGenerationHelp")).'<br>';
|
||||
print '<input type="checkbox" name="includedocgeneration" value="includedocgeneration"> '.$form->textwithpicto($langs->trans("IncludeDocGeneration"), $langs->trans("IncludeDocGenerationHelp")).'<br>';
|
||||
print '<input type="submit" class="button" name="create" value="'.dol_escape_htmltag($langs->trans("Generate")).'"'.($dirins ? '' : ' disabled="disabled"').'>';
|
||||
@ -2419,7 +2428,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
//print '<span class="opacitymedium">'.$langs->trans("FileNotYetGenerated").'</span> ';
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initapi&format=php&file='.urlencode($pathtoapi).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initapi&format=php&file='.urlencode($pathtoapi).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a>';
|
||||
}
|
||||
// PHPUnit
|
||||
print '<br>';
|
||||
@ -2434,7 +2443,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
//print '<span class="opacitymedium">'.$langs->trans("FileNotYetGenerated").'</span> ';
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initphpunit&format=php&file='.urlencode($pathtophpunit).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initphpunit&format=php&file='.urlencode($pathtophpunit).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a>';
|
||||
}
|
||||
print '<br>';
|
||||
|
||||
@ -2470,7 +2479,7 @@ elseif (!empty($module))
|
||||
print '<a class="reposition editfielda" href="'.$_SERVER["PHP_SELF"].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=droptableextrafields">'.$langs->trans("DropTableIfEmpty").'</a>';
|
||||
}
|
||||
else {
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initsqlextrafields&format=sql&file='.urlencode($pathtosqlextra).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '<a class="editfielda" href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&tabobj='.$tabobj.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initsqlextrafields&format=sql&file='.urlencode($pathtosqlextra).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a>';
|
||||
}
|
||||
//print ' <a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("RunSql").'</a>';
|
||||
print '<br>';
|
||||
@ -2570,8 +2579,8 @@ elseif (!empty($module))
|
||||
print '<input type="hidden" name="module" value="'.dol_escape_htmltag($module.($forceddirread ? '@'.$dirread : '')).'">';
|
||||
print '<input type="hidden" name="tabobj" value="'.dol_escape_htmltag($tabobj).'">';
|
||||
|
||||
print '<input class="button" type="submit" name="regenerateclasssql" value="'.$langs->trans("RegenerateClassAndSql").'">';
|
||||
//print '<input class="button" type="submit" name="regeneratemissing" value="'.$langs->trans("RegenerateMissingFiles").'">';
|
||||
print '<input class="button buttongen" type="submit" name="regenerateclasssql" value="'.$langs->trans("RegenerateClassAndSql").'">';
|
||||
//print '<input class="button buttongen" type="submit" name="regeneratemissing" value="'.$langs->trans("RegenerateMissingFiles").'">';
|
||||
print '<br><br>';
|
||||
|
||||
print load_fiche_titre($langs->trans("ObjectProperties"), '', '');
|
||||
@ -3121,7 +3130,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
print '<span class="opacitymedium">'.$langs->trans("FileNotYetGenerated").'</span>';
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=inithook&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=inithook&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '<td></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
@ -3191,7 +3200,7 @@ elseif (!empty($module))
|
||||
{
|
||||
print '<tr><td>';
|
||||
print '<span class="fa fa-file-o"></span> '.$langs->trans("NoTrigger");
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=inittrigger&format=php"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '<a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=inittrigger&format=php"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '<td></td>';
|
||||
print '</tr>';
|
||||
}
|
||||
@ -3246,7 +3255,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
print '<span class="opacitymedium">'.$langs->trans("FileNotYetGenerated").'</span>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initcss&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initcss&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
}
|
||||
@ -3298,7 +3307,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
print '<span class="opacitymedium">'.$langs->trans("FileNotYetGenerated").'</span>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initjs&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initjs&format=php&file='.urlencode($pathtohook).'"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
}
|
||||
@ -3356,7 +3365,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
print '<tr><td><span class="fa fa-file-o"></span> '.$langs->trans("NoWidget");
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initwidget&format=php"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initwidget&format=php"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
print '</table>';
|
||||
@ -3442,7 +3451,7 @@ elseif (!empty($module))
|
||||
else
|
||||
{
|
||||
print '<tr><td><span class="fa fa-file-o"></span> '.$langs->trans("NoCLIFile");
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initcli&format=php"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initcli&format=php"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
print '</table>';
|
||||
@ -3624,7 +3633,7 @@ elseif (!empty($module))
|
||||
{
|
||||
print '<tr><td>';
|
||||
print '<span class="fa fa-file-o"></span> '.$langs->trans("FileNotYetGenerated");
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initdoc&format=php"><input type="button" class="button" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '</td><td><a href="'.$_SERVER['PHP_SELF'].'?tab='.$tab.'&module='.$module.($forceddirread ? '@'.$dirread : '').'&action=initdoc&format=php"><input type="button" class="button buttongen" value="'.$langs->trans("Generate").'"></a></td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
@ -53,11 +53,15 @@ if (!$user->admin) accessforbidden();
|
||||
$action = GETPOST('action', 'alpha');
|
||||
$backtopage = GETPOST('backtopage', 'alpha');
|
||||
|
||||
$value = GETPOST('value', 'alpha');
|
||||
|
||||
$arrayofparameters = array(
|
||||
'MYMODULE_MYPARAM1'=>array('css'=>'minwidth200', 'enabled'=>1),
|
||||
'MYMODULE_MYPARAM2'=>array('css'=>'minwidth500', 'enabled'=>1)
|
||||
);
|
||||
|
||||
$error = 0;
|
||||
$setupnotempty = 0;
|
||||
|
||||
|
||||
/*
|
||||
@ -69,12 +73,116 @@ if ((float) DOL_VERSION >= 6)
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||
}
|
||||
|
||||
if ($action == 'updateMask')
|
||||
{
|
||||
$maskconstorder = GETPOST('maskconstorder', 'alpha');
|
||||
$maskorder = GETPOST('maskorder', 'alpha');
|
||||
|
||||
if ($maskconstorder) $res = dolibarr_set_const($db, $maskconstorder, $maskorder, 'chaine', 0, '', $conf->entity);
|
||||
|
||||
if (!$res > 0) $error++;
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||
}
|
||||
} elseif ($action == 'specimen')
|
||||
{
|
||||
$modele = GETPOST('module', 'alpha');
|
||||
$tmpobjectkey = GETPOST('object');
|
||||
|
||||
$tmpobject = new $tmpobjectkey($db);
|
||||
$tmpobject->initAsSpecimen();
|
||||
|
||||
// Search template files
|
||||
$file = ''; $classname = ''; $filefound = 0;
|
||||
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||
foreach ($dirmodels as $reldir)
|
||||
{
|
||||
$file = dol_buildpath($reldir."core/modules/mymodule/doc/pdf_".$modele."_".strtolower($tmpobjectkey).".modules.php", 0);
|
||||
if (file_exists($file))
|
||||
{
|
||||
$filefound = 1;
|
||||
$classname = "pdf_".$modele;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($filefound)
|
||||
{
|
||||
require_once $file;
|
||||
|
||||
$module = new $classname($db);
|
||||
|
||||
if ($module->write_file($tmpobject, $langs) > 0)
|
||||
{
|
||||
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=".strtolower($tmpobjectkey)."&file=SPECIMEN.pdf");
|
||||
return;
|
||||
} else {
|
||||
setEventMessages($module->error, null, 'errors');
|
||||
dol_syslog($module->error, LOG_ERR);
|
||||
}
|
||||
} else {
|
||||
setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors');
|
||||
dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
// Activate a model
|
||||
elseif ($action == 'set')
|
||||
{
|
||||
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||
} elseif ($action == 'del')
|
||||
{
|
||||
$tmpobjectkey = GETPOST('object');
|
||||
|
||||
$ret = delDocumentModel($value, $type);
|
||||
if ($ret > 0)
|
||||
{
|
||||
$constforval = strtoupper($tmpobjectkey).'_ADDON_PDF';
|
||||
if ($conf->global->$constforval == "$value") dolibarr_del_const($db, $constforval, $conf->entity);
|
||||
}
|
||||
}
|
||||
|
||||
// Set default model
|
||||
elseif ($action == 'setdoc')
|
||||
{
|
||||
$tmpobjectkey = GETPOST('object');
|
||||
$constforval = strtoupper($tmpobjectkey).'_ADDON_PDF';
|
||||
if (dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity))
|
||||
{
|
||||
// The constant that was read before the new set
|
||||
// We therefore requires a variable to have a coherent view
|
||||
$conf->global->$constforval = $value;
|
||||
}
|
||||
|
||||
// On active le modele
|
||||
$ret = delDocumentModel($value, $type);
|
||||
if ($ret > 0)
|
||||
{
|
||||
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||
}
|
||||
} elseif ($action == 'setmod')
|
||||
{
|
||||
// TODO Check if numbering module chosen can be activated
|
||||
// by calling method canBeActivated
|
||||
$tmpobjectkey = GETPOST('object');
|
||||
$constforval = 'MYMODULE_'.strtoupper($tmpobjectkey)."_ADDON";
|
||||
dolibarr_set_const($db, $constforval, $value, 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form = new Form($db);
|
||||
|
||||
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||
|
||||
$page_name = "MyModuleSetup";
|
||||
llxHeader('', $langs->trans($page_name));
|
||||
|
||||
@ -115,9 +223,7 @@ if ($action == 'edit')
|
||||
|
||||
print '</form>';
|
||||
print '<br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
if (!empty($arrayofparameters))
|
||||
{
|
||||
print '<table class="noborder centpercent">';
|
||||
@ -125,6 +231,8 @@ else
|
||||
|
||||
foreach ($arrayofparameters as $key => $val)
|
||||
{
|
||||
$setupnotempty++;
|
||||
|
||||
print '<tr class="oddeven"><td>';
|
||||
$tooltiphelp = (($langs->trans($key.'Tooltip') != $key.'Tooltip') ? $langs->trans($key.'Tooltip') : '');
|
||||
print $form->textwithpicto($langs->trans($key), $tooltiphelp);
|
||||
@ -144,6 +252,272 @@ else
|
||||
}
|
||||
|
||||
|
||||
$moduledir = 'mymodule';
|
||||
$myTmpObjects = array();
|
||||
$myTmpObjects['MyObject']=array('includerefgeneration'=>0, 'includedocgeneration'=>0);
|
||||
|
||||
|
||||
foreach($myTmpObjects as $myTmpObjectKey => $myTmpObjectArray) {
|
||||
if ($myTmpObjectArray['includerefgeneration']) {
|
||||
/*
|
||||
* Orders Numbering model
|
||||
*/
|
||||
$setupnotempty++;
|
||||
|
||||
print load_fiche_titre($langs->trans("NumberingModules", $myTmpObjectKey), '', '');
|
||||
|
||||
print '<table class="noborder centpercent">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Name").'</td>';
|
||||
print '<td>'.$langs->trans("Description").'</td>';
|
||||
print '<td class="nowrap">'.$langs->trans("Example").'</td>';
|
||||
print '<td class="center" width="60">'.$langs->trans("Status").'</td>';
|
||||
print '<td class="center" width="16">'.$langs->trans("ShortInfo").'</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
clearstatcache();
|
||||
|
||||
foreach ($dirmodels as $reldir)
|
||||
{
|
||||
$dir = dol_buildpath($reldir."core/modules/".$moduledir);
|
||||
|
||||
if (is_dir($dir))
|
||||
{
|
||||
$handle = opendir($dir);
|
||||
if (is_resource($handle))
|
||||
{
|
||||
while (($file = readdir($handle)) !== false)
|
||||
{
|
||||
if (strpos($file, 'mod_'.strtolower($myTmpObjectKey).'_') === 0 && substr($file, dol_strlen($file) - 3, 3) == 'php')
|
||||
{
|
||||
$file = substr($file, 0, dol_strlen($file) - 4);
|
||||
|
||||
require_once $dir.'/'.$file.'.php';
|
||||
|
||||
$module = new $file($db);
|
||||
|
||||
// Show modules according to features level
|
||||
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue;
|
||||
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue;
|
||||
|
||||
if ($module->isEnabled())
|
||||
{
|
||||
dol_include_once('/'.$moduledir.'/class/'.strtolower($myTmpObjectKey).'.class.php');
|
||||
|
||||
print '<tr class="oddeven"><td>'.$module->name."</td><td>\n";
|
||||
print $module->info();
|
||||
print '</td>';
|
||||
|
||||
// Show example of numbering model
|
||||
print '<td class="nowrap">';
|
||||
$tmp = $module->getExample();
|
||||
if (preg_match('/^Error/', $tmp)) print '<div class="error">'.$langs->trans($tmp).'</div>';
|
||||
elseif ($tmp == 'NotConfigured') print $langs->trans($tmp);
|
||||
else print $tmp;
|
||||
print '</td>'."\n";
|
||||
|
||||
print '<td class="center">';
|
||||
$constforvar = 'MYMODULE_'.strtoupper($myTmpObjectKey).'_ADDON';
|
||||
if ($conf->global->$constforvar == $file)
|
||||
{
|
||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||
} else {
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&object='.strtolower($myTmpObjectKey).'&value='.$file.'">';
|
||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||
print '</a>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
$mytmpinstance = new $myTmpObjectKey($db);
|
||||
$mytmpinstance->initAsSpecimen();
|
||||
|
||||
// Info
|
||||
$htmltooltip = '';
|
||||
$htmltooltip .= ''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
|
||||
|
||||
$nextval = $module->getNextValue($mytmpinstance);
|
||||
if ("$nextval" != $langs->trans("NotAvailable")) { // Keep " on nextval
|
||||
$htmltooltip .= ''.$langs->trans("NextValue").': ';
|
||||
if ($nextval) {
|
||||
if (preg_match('/^Error/', $nextval) || $nextval == 'NotConfigured')
|
||||
$nextval = $langs->trans($nextval);
|
||||
$htmltooltip .= $nextval.'<br>';
|
||||
} else {
|
||||
$htmltooltip .= $langs->trans($module->error).'<br>';
|
||||
}
|
||||
}
|
||||
|
||||
print '<td class="center">';
|
||||
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||
print '</td>';
|
||||
|
||||
print "</tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
}
|
||||
}
|
||||
print "</table><br>\n";
|
||||
}
|
||||
|
||||
if ($myTmpObjectArray['includedocgeneration']) {
|
||||
/*
|
||||
* Document templates generators
|
||||
*/
|
||||
$setupnotempty++;
|
||||
$type = strtolower($myTmpObjectKey);
|
||||
|
||||
print load_fiche_titre($langs->trans("DocumentModules", $myTmpObjectKey), '', '');
|
||||
|
||||
// Load array def with activated templates
|
||||
$def = array();
|
||||
$sql = "SELECT nom";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||
$sql .= " WHERE type = '".$type."'";
|
||||
$sql .= " AND entity = ".$conf->entity;
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num_rows = $db->num_rows($resql);
|
||||
while ($i < $num_rows)
|
||||
{
|
||||
$array = $db->fetch_array($resql);
|
||||
array_push($def, $array[0]);
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">\n";
|
||||
print "<tr class=\"liste_titre\">\n";
|
||||
print '<td>'.$langs->trans("Name").'</td>';
|
||||
print '<td>'.$langs->trans("Description").'</td>';
|
||||
print '<td class="center" width="60">'.$langs->trans("Status")."</td>\n";
|
||||
print '<td class="center" width="60">'.$langs->trans("Default")."</td>\n";
|
||||
print '<td class="center" width="38">'.$langs->trans("ShortInfo").'</td>';
|
||||
print '<td class="center" width="38">'.$langs->trans("Preview").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
clearstatcache();
|
||||
|
||||
foreach ($dirmodels as $reldir)
|
||||
{
|
||||
foreach (array('', '/doc') as $valdir)
|
||||
{
|
||||
$realpath = $reldir."core/modules/".$moduledir.$valdir;
|
||||
$dir = dol_buildpath($realpath);
|
||||
|
||||
if (is_dir($dir))
|
||||
{
|
||||
$handle = opendir($dir);
|
||||
if (is_resource($handle))
|
||||
{
|
||||
while (($file = readdir($handle)) !== false)
|
||||
{
|
||||
$filelist[] = $file;
|
||||
}
|
||||
closedir($handle);
|
||||
arsort($filelist);
|
||||
|
||||
foreach ($filelist as $file)
|
||||
{
|
||||
if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file))
|
||||
{
|
||||
if (file_exists($dir.'/'.$file))
|
||||
{
|
||||
$name = substr($file, 4, dol_strlen($file) - 16);
|
||||
$classname = substr($file, 0, dol_strlen($file) - 12);
|
||||
|
||||
require_once $dir.'/'.$file;
|
||||
$module = new $classname($db);
|
||||
|
||||
$modulequalified = 1;
|
||||
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0;
|
||||
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified = 0;
|
||||
|
||||
if ($modulequalified)
|
||||
{
|
||||
print '<tr class="oddeven"><td width="100">';
|
||||
print (empty($module->name) ? $name : $module->name);
|
||||
print "</td><td>\n";
|
||||
if (method_exists($module, 'info')) print $module->info($langs);
|
||||
else print $module->description;
|
||||
print '</td>';
|
||||
|
||||
// Active
|
||||
if (in_array($name, $def))
|
||||
{
|
||||
print '<td class="center">'."\n";
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del&value='.$name.'">';
|
||||
print img_picto($langs->trans("Enabled"), 'switch_on');
|
||||
print '</a>';
|
||||
print '</td>';
|
||||
} else {
|
||||
print '<td class="center">'."\n";
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
|
||||
print "</td>";
|
||||
}
|
||||
|
||||
// Default
|
||||
print '<td class="center">';
|
||||
$constforvar = 'MYMODULE_'.strtoupper($myTmpObjectKey).'_ADDON';
|
||||
if ($conf->global->$constforvar == $name)
|
||||
{
|
||||
print img_picto($langs->trans("Default"), 'on');
|
||||
} else {
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&value='.$name.'&scan_dir='.$module->scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Info
|
||||
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
|
||||
$htmltooltip .= '<br>'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown"));
|
||||
if ($module->type == 'pdf')
|
||||
{
|
||||
$htmltooltip .= '<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
|
||||
}
|
||||
$htmltooltip .= '<br>'.$langs->trans("Path").': '.preg_replace('/^\//', '', $realpath).'/'.$file;
|
||||
|
||||
$htmltooltip .= '<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
|
||||
$htmltooltip .= '<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
|
||||
$htmltooltip .= '<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1);
|
||||
|
||||
print '<td class="center">';
|
||||
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||
print '</td>';
|
||||
|
||||
// Preview
|
||||
print '<td class="center">';
|
||||
if ($module->type == 'pdf')
|
||||
{
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'&object='.$myTmpObjectKey.'">'.img_object($langs->trans("Preview"), 'generic').'</a>';
|
||||
} else {
|
||||
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
print "</tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($setupnotempty)) {
|
||||
print '<br>'.$langs->trans("NothingToSetup");
|
||||
}
|
||||
|
||||
// Page end
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
@ -1027,7 +1027,7 @@ class MyObject extends CommonObject
|
||||
$langs->load("mymodule@mymodule");
|
||||
|
||||
if (!dol_strlen($modele)) {
|
||||
$modele = 'standard';
|
||||
$modele = 'standard_myobject';
|
||||
|
||||
if ($this->modelpdf) {
|
||||
$modele = $this->modelpdf;
|
||||
|
||||
@ -316,7 +316,7 @@ class modMyModule extends DolibarrModules
|
||||
'titre'=>'New MyObject',
|
||||
'mainmenu'=>'mymodule',
|
||||
'leftmenu'=>'mymodule_myobject_new',
|
||||
'url'=>'/mymodule/myobject_page.php?action=create',
|
||||
'url'=>'/mymodule/myobject_card.php?action=create',
|
||||
'langs'=>'mymodule@mymodule', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
|
||||
'position'=>1000+$r,
|
||||
'enabled'=>'$conf->mymodule->enabled', // Define condition to show or hide menu entry. Use '$conf->mymodule->enabled' if entry must be visible if module is enabled. Use '$leftmenu==\'system\'' to show if leftmenu system is selected.
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
* \brief File of class to build ODT documents for myobjects
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/myobject/modules_myobject.php';
|
||||
dol_include_once('/mymodule/core/modules/mymodule/modules_myobject.php');
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||
|
||||
@ -85,7 +85,7 @@ class mod_myobject_standard extends ModeleNumRefMyObject
|
||||
|
||||
$coyymm = ''; $max = '';
|
||||
|
||||
$posindice = 8;
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
@ -122,8 +122,8 @@ class mod_myobject_standard extends ModeleNumRefMyObject
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice = 9;
|
||||
// first we get the max value
|
||||
$posindice = strlen($this->prefix) + 6;
|
||||
$sql = "SELECT MAX(CAST(SUBSTRING(ref FROM ".$posindice.") AS SIGNED)) as max";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."mymodule_myobject";
|
||||
$sql .= " WHERE ref LIKE '".$db->escape($this->prefix)."____-%'";
|
||||
|
||||
@ -122,11 +122,10 @@ abstract class ModeleNumRefMyObject
|
||||
/**
|
||||
* Returns next assigned value
|
||||
*
|
||||
* @param Societe $objsoc Object thirdparty
|
||||
* @param Object $object Object we need next value for
|
||||
* @return string Valeur
|
||||
*/
|
||||
public function getNextValue($objsoc, $object)
|
||||
public function getNextValue($object)
|
||||
{
|
||||
global $langs;
|
||||
return $langs->trans("NotAvailable");
|
||||
|
||||
@ -140,7 +140,7 @@ if ($object->id > 0)
|
||||
$head = myobjectPrepareHead($object);
|
||||
|
||||
|
||||
dol_fiche_head($head, 'agenda', $langs->trans("MyObject"), -1, $object->picto);
|
||||
dol_fiche_head($head, 'agenda', $langs->trans("MyObject"), -1, 'object_'.$object->picto);
|
||||
|
||||
// Object card
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@ -59,6 +59,7 @@ if (!$res) die("Include of main fails");
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
|
||||
dol_include_once('/mymodule/class/myobject.class.php');
|
||||
dol_include_once('/mymodule/lib/mymodule_myobject.lib.php');
|
||||
|
||||
@ -181,6 +182,7 @@ if (empty($reshook))
|
||||
|
||||
$form = new Form($db);
|
||||
$formfile = new FormFile($db);
|
||||
$formproject = new FormProjets($db);
|
||||
|
||||
$title = $langs->trans("MyObject");
|
||||
$help_url = '';
|
||||
@ -205,7 +207,7 @@ jQuery(document).ready(function() {
|
||||
// Part to create
|
||||
if ($action == 'create')
|
||||
{
|
||||
print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("MyObject")));
|
||||
print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("MyObject")), '', 'object_'.$object->picto);
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
@ -215,6 +217,9 @@ if ($action == 'create')
|
||||
|
||||
dol_fiche_head(array(), '');
|
||||
|
||||
// Set some default values
|
||||
//if (! GETPOSTISSET('fieldname')) $_POST['fieldname'] = 'myvalue';
|
||||
|
||||
print '<table class="border centpercent tableforfieldcreate">'."\n";
|
||||
|
||||
// Common attributes
|
||||
@ -241,7 +246,7 @@ if ($action == 'create')
|
||||
// Part to edit record
|
||||
if (($id || $ref) && $action == 'edit')
|
||||
{
|
||||
print load_fiche_titre($langs->trans("MyObject"));
|
||||
print load_fiche_titre($langs->trans("MyObject"), '', 'object_'.$object->picto);
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
@ -343,8 +348,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
|
||||
if ($permissiontoadd)
|
||||
{
|
||||
if ($action != 'classify')
|
||||
//$morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : ';
|
||||
//if ($action != 'classify') $morehtmlref.='<a class="editfielda" href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> ';
|
||||
$morehtmlref.=' : ';
|
||||
if ($action == 'classify') {
|
||||
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
|
||||
@ -379,7 +383,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
print '<table class="border centpercent">'."\n";
|
||||
|
||||
// Common attributes
|
||||
//$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just after this field
|
||||
//$keyforbreak='fieldkeytoswitchonsecondcolumn'; // We change column just before this field
|
||||
//unset($object->fields['fk_project']); // Hide field already shown in banner
|
||||
//unset($object->fields['fk_soc']); // Hide field already shown in banner
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php';
|
||||
@ -556,15 +560,18 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
||||
print '<div class="fichecenter"><div class="fichehalfleft">';
|
||||
print '<a name="builddoc"></a>'; // ancre
|
||||
|
||||
$includedocgeneration = 0;
|
||||
|
||||
// Documents
|
||||
/*$objref = dol_sanitizeFileName($object->ref);
|
||||
$relativepath = $objref . '/' . $objref . '.pdf';
|
||||
$filedir = $conf->mymodule->dir_output . '/' . $objref;
|
||||
$urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
|
||||
$genallowed = $user->rights->mymodule->myobject->read; // If you can read, you can build the PDF to read content
|
||||
$delallowed = $user->rights->mymodule->myobject->create; // If you can create/edit, you can remove a file on card
|
||||
print $formfile->showdocuments('mymodule', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
|
||||
*/
|
||||
if ($includedocgeneration) {
|
||||
$objref = dol_sanitizeFileName($object->ref);
|
||||
$relativepath = $objref . '/' . $objref . '.pdf';
|
||||
$filedir = $conf->mymodule->dir_output.'/'.$object->element.'/'.$objref;
|
||||
$urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id;
|
||||
$genallowed = $user->rights->mymodule->myobject->read; // If you can read, you can build the PDF to read content
|
||||
$delallowed = $user->rights->mymodule->myobject->create; // If you can create/edit, you can remove a file on card
|
||||
print $formfile->showdocuments('mymodule:myobject', $objref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $langs->defaultlang);
|
||||
}
|
||||
|
||||
// Show links to link elements
|
||||
$linktoelem = $form->showLinkToObjectBlock($object, null, array('myobject'));
|
||||
|
||||
@ -374,7 +374,7 @@ print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
|
||||
|
||||
$newcardbutton = dolGetButtonTitle($langs->trans('New'), '', 'fa fa-plus-circle', dol_buildpath('/mymodule/myobject_card.php', 1).'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF']), '', $permissiontoadd);
|
||||
|
||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, $newcardbutton, '', $limit, 0, 0, 1);
|
||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'object_'.$object->picto, 0, $newcardbutton, '', $limit, 0, 0, 1);
|
||||
|
||||
// Add code for pre mass action (confirmation or email presend form)
|
||||
$topicmail = "SendMyObjectRef";
|
||||
|
||||
@ -188,8 +188,7 @@ if (!defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?>
|
||||
.info-box-title{
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
margin-bottom: 6px;
|
||||
/* padding-bottom: 4px; */
|
||||
margin-bottom: 3px; /* not too much space so we can add another lines */
|
||||
}
|
||||
.info-box-text{
|
||||
font-size: 0.92em;
|
||||
|
||||
@ -2427,7 +2427,7 @@ class User extends CommonObject
|
||||
$paddafterimage = '';
|
||||
if (abs($withpictoimg) == 1) $paddafterimage = 'style="margin-'.($langs->trans("DIRECTION") == 'rtl' ? 'left' : 'right').': 3px;"';
|
||||
// Only picto
|
||||
if ($withpictoimg > 0) $picto = '<!-- picto user --><span class="nopadding userimg'.($morecss ? ' '.$morecss : '').'">'.img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
|
||||
if ($withpictoimg > 0) $picto = '<!-- picto user --><span class="nopadding userimg'.($morecss ? ' '.$morecss : '').'">'.img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="paddingright classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
|
||||
// Picto must be a photo
|
||||
else $picto = '<!-- picto photo user --><span class="nopadding userimg'.($morecss ? ' '.$morecss : '').'"'.($paddafterimage ? ' '.$paddafterimage : '').'>'.Form::showphoto('userphoto', $this, 0, 0, 0, 'userphoto'.($withpictoimg == -3 ? 'small' : ''), 'mini', 0, 1).'</span>';
|
||||
$result .= $picto;
|
||||
|
||||