Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into develop

This commit is contained in:
Maxime Kohlhaas 2013-10-24 14:36:08 +02:00
commit a10b836e8a
1851 changed files with 19360 additions and 8515 deletions

View File

@ -3,14 +3,21 @@
# Command run is phpunit # Command run is phpunit
# For syntax, see http://about.travis-ci.org/docs/user/languages/php/ # For syntax, see http://about.travis-ci.org/docs/user/languages/php/
notifications:
email:
on_success: never # [always|never|change] default: change
on_failure: always # [always|never|change] default: always
services: services:
- memcached # will start memcached - memcached # will start memcached
# This will tell travis to run phpunit # This will tell travis to run phpunit
language: php language: php
php: php:
# - "5.2" is not supported because pyrus to install PHP_Codesniffer is not available
- "5.3" - "5.3"
- "5.4" - "5.4"
- "5.5"
env: env:
- DB=mysql - DB=mysql
@ -20,7 +27,9 @@ before_script:
- echo Start travis - echo Start travis
- echo Current dir is `pwd` - echo Current dir is `pwd`
- echo Home dir is `echo ~` - echo Home dir is `echo ~`
- echo Update composer - export PHPV=`phpenv version-name`
- echo PHP version $PHPV
# - echo Update composer
# - ~/.phpenv/versions/$(phpenv version-name)/bin/composer.phar self-update # - ~/.phpenv/versions/$(phpenv version-name)/bin/composer.phar self-update
- echo Install phpcs then show installed rules - echo Install phpcs then show installed rules
- pyrus install pear/PHP_CodeSniffer - pyrus install pear/PHP_CodeSniffer
@ -35,10 +44,12 @@ before_script:
- find $(pwd)/htdocs/documents -type d -exec ls -alt {} \; - find $(pwd)/htdocs/documents -type d -exec ls -alt {} \;
- echo Edit php.ini file - echo Edit php.ini file
- echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
# - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini # - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "zend_extension_ts = xdebug.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - sh -c "if [ '$PHPV' = '5.3' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo Init database - echo Init database
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"

View File

@ -41,18 +41,18 @@ For users:
- New: A more responsive desgin for statistic box of home page. - New: A more responsive desgin for statistic box of home page.
- Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error). - Qual: Implement same rule for return value of all command line scripts (0 when success, <>0 if error).
- New: [ task #1005 ] Adapting to Spanish legislation bill numbering - New: [ task #1005 ] Adapting to Spanish legislation bill numbering
- New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode - New: [ task #1011 ] Now supplier order and invoice deal with payment terms and mode.
- New: [ task #1014 ] Add option to recursivly add parent category - New: [ task #1014 ] Add option to recursivly add parent category.
- New: [ task #1016 ] Can define a specific numbering for deposits - New: [ task #1016 ] Can define a specific numbering for deposits.
- New: [ task #918 ] Stock replenishment - New: [ task #918 ] Stock replenishment.
- Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count - Fix: [ bug #992 ] Proforma invoices don't have a separated numeric count.
- New : Add pdf link into supplier invoice list and supplier order list - New : Add pdf link into supplier invoice list and supplier order list.
- New : Genrate auto the PDF for supplier invoice - New : Genrate auto the PDF for supplier invoice.
- New : Add category into filter webservice thirdparty method getListOfThirdParties - New : Add category into filter webservice thirdparty method getListOfThirdParties.
- New : Allow to define margin or mark rate during quoting, ordering, invoicing - New : Allow to define margin or mark rate during quoting, ordering, invoicing.
- New : User permissions on margin module - New : User permissions on margin module.
- New : Add ref supplier into muscadet model - New : Add ref supplier into muscadet model/
- New : Add ability to copy contact address to clipboard - New : Add ability to copy contact address to clipboard.
- New: Can use tag {mm} before {yy} even when there is a reset into numbering masks. - New: Can use tag {mm} before {yy} even when there is a reset into numbering masks.
- New: [ task #1060 ] Register fields localtax(1|2)_type into details tables. - New: [ task #1060 ] Register fields localtax(1|2)_type into details tables.
- New: [ task #923 ] Localtax support for ODT templates. - New: [ task #923 ] Localtax support for ODT templates.
@ -61,7 +61,10 @@ For users:
- New: Can send an email from thirdparty card. - New: Can send an email from thirdparty card.
- New: Can cancel holidays that were previously validated. - New: Can cancel holidays that were previously validated.
- Fix: [bug #1022] correct margin calculation for credit notes. - Fix: [bug #1022] correct margin calculation for credit notes.
- New: Can choose contact on event (action com) creation, and filtred by thirdparty - New: Can choose contact on event (action com) creation, and filtred by thirdparty.
- New: Add hidden option MAIN_FORCE_DEFAULT_STATE_ID.
- New: Add page to make mass stock movement.
- New: Add field oustanding limit into thirdparty properties.
For translators: For translators:
- Qual: Normalized sort order of all languages files with english reference files. - Qual: Normalized sort order of all languages files with english reference files.
@ -142,6 +145,9 @@ Fix: Delete linked element to supplier invoice when deleted
Fix: [ bug #1061 ] Bad info shipped products Fix: [ bug #1061 ] Bad info shipped products
Fix: [ bug #1062 ] Documents lost in propals and contracts validating Fix: [ bug #1062 ] Documents lost in propals and contracts validating
Fix: Supplier price displayed on document lines and margin infos didnt take discount Fix: Supplier price displayed on document lines and margin infos didnt take discount
Fix: sorting on qty did not work in supplier product list
Fix: there was no escaping on filter fields in supplier product list
Fix: bugs on margin reports and better margin calculation on credit notes
Qual: Add travis-ci integration Qual: Add travis-ci integration
@ -243,6 +249,8 @@ backport commit 384e3812eb73a15adafb472cacfb93397a54459b to fix W3C/edit contrac
***** ChangeLog for 3.3.4 compared to 3.3.3 ***** ***** ChangeLog for 3.3.4 compared to 3.3.3 *****
- Fix: [ bug #1001 ] Social Contribution : State not correct - Fix: [ bug #1001 ] Social Contribution : State not correct
- Fix: Better management of pdf generation when tcpdf is not available.
- Fix: Change to be more debian compliant natively.
***** ChangeLog for 3.3.3 compared to 3.3.2 ***** ***** ChangeLog for 3.3.3 compared to 3.3.2 *****
- Fix: [ bug #903 ] Fatal error: Call to undefined function dol_get_first_day() in htdocs/commande/liste.php - Fix: [ bug #903 ] Fatal error: Call to undefined function dol_get_first_day() in htdocs/commande/liste.php
@ -308,7 +316,7 @@ For users:
- New: Can list elements (invoices, orders or proposals) on a particular - New: Can list elements (invoices, orders or proposals) on a particular
user contact). This allow to view a "basket" of its elements. user contact). This allow to view a "basket" of its elements.
- New: Show bank account on payment list of invoice card. - New: Show bank account on payment list of invoice card.
- New: Cloning project allow to clones task, notes, files, contacts. - New: Cloning project allow to clones task, notes, projects files, tasks files, contacts.
- New: Enhance default style. - New: Enhance default style.
- New: Can edit and resiliate member status from list. - New: Can edit and resiliate member status from list.
- New: Can insert URL links into elements lines. Also reported into PDF. - New: Can insert URL links into elements lines. Also reported into PDF.

View File

@ -207,8 +207,11 @@ Note: If there was errors managed manually, you may need to make a git commit bu
> sbuild ... > sbuild ...
> dput ... > dput ...
* Go into page. You should see new package into unstable. * Package arrives into FTPmaster taskboard with status NEW (pending upload). You can view it at:
http://packages.qa.debian.org/t/tcpdf.html http://ftp-master.debian.org/new/
* Once package is validated, you should see it into area unstable at:
http://packages.qa.debian.org
* Package will be into release when test will be moved as stable. * Package will be into release when test will be moved as stable.

File diff suppressed because one or more lines are too long

View File

@ -10,7 +10,7 @@
# ISO-3166 alpha 3: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 # ISO-3166 alpha 3: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
AFGHANISTAN;AF AFGHANISTAN;AF
ÅLAND ISLANDS;AX ÅLAND ISLANDS;AX
ALBANIA;AL ALBANIA;AL
ALGERIA;DZ ALGERIA;DZ
AMERICAN SAMOA;AS AMERICAN SAMOA;AS
@ -62,7 +62,7 @@ CONGO;CG
CONGO, THE DEMOCRATIC REPUBLIC OF THE;CD CONGO, THE DEMOCRATIC REPUBLIC OF THE;CD
COOK ISLANDS;CK COOK ISLANDS;CK
COSTA RICA;CR COSTA RICA;CR
CÔTE D'IVOIRE;CI CÔTE D'IVOIRE;CI
CROATIA;HR CROATIA;HR
CUBA;CU CUBA;CU
CYPRUS;CY CYPRUS;CY
@ -192,7 +192,7 @@ REUNION;RE
ROMANIA;RO ROMANIA;RO
RUSSIAN FEDERATION;RU RUSSIAN FEDERATION;RU
RWANDA;RW RWANDA;RW
SAINT BARTHÉLEMY;BL SAINT BARTHÉLEMY;BL
SAINT HELENA;SH SAINT HELENA;SH
SAINT KITTS AND NEVIS;KN SAINT KITTS AND NEVIS;KN
SAINT LUCIA;LC SAINT LUCIA;LC

View File

@ -11,118 +11,118 @@
AFGHANISTAN;AF AFGHANISTAN;AF
AFRIQUE DU SUD;ZA AFRIQUE DU SUD;ZA
ÅLAND, ÎLES;AX ÅLAND, ÎLES;AX
ALBANIE;AL ALBANIE;AL
ALGÉRIE;DZ ALGÉRIE;DZ
ALLEMAGNE;DE ALLEMAGNE;DE
ANDORRE;AD ANDORRE;AD
ANGOLA;AO ANGOLA;AO
ANGUILLA;AI ANGUILLA;AI
ANTARCTIQUE;AQ ANTARCTIQUE;AQ
ANTIGUA-ET-BARBUDA;AG ANTIGUA-ET-BARBUDA;AG
ANTILLES NÉERLANDAISES;AN ANTILLES NÉERLANDAISES;AN
ARABIE SAOUDITE;SA ARABIE SAOUDITE;SA
ARGENTINE;AR ARGENTINE;AR
ARMÉNIE;AM ARMÉNIE;AM
ARUBA;AW ARUBA;AW
AUSTRALIE;AU AUSTRALIE;AU
AUTRICHE;AT AUTRICHE;AT
AZERBAÏDJAN;AZ AZERBAÏDJAN;AZ
BAHAMAS;BS BAHAMAS;BS
BAHREÏN;BH BAHREÏN;BH
BANGLADESH;BD BANGLADESH;BD
BARBADE;BB BARBADE;BB
BÉLARUS;BY BÉLARUS;BY
BELGIQUE;BE BELGIQUE;BE
BELIZE;BZ BELIZE;BZ
BÉNIN;BJ BÉNIN;BJ
BERMUDES;BM BERMUDES;BM
BHOUTAN;BT BHOUTAN;BT
BOLIVIE;BO BOLIVIE;BO
BOSNIE-HERZÉGOVINE;BA BOSNIE-HERZÉGOVINE;BA
BOTSWANA;BW BOTSWANA;BW
BOUVET, ÎLE;BV BOUVET, ÎLE;BV
BRÉSIL;BR BRÉSIL;BR
BRUNÉI DARUSSALAM;BN BRUNÉI DARUSSALAM;BN
BULGARIE;BG BULGARIE;BG
BURKINA FASO;BF BURKINA FASO;BF
BURUNDI;BI BURUNDI;BI
CAÏMANES, ÎLES;KY CAÏMANES, ÎLES;KY
CAMBODGE;KH CAMBODGE;KH
CAMEROUN;CM CAMEROUN;CM
CANADA;CA CANADA;CA
CAP-VERT;CV CAP-VERT;CV
CENTRAFRICAINE, RÉPUBLIQUE;CF CENTRAFRICAINE, RÉPUBLIQUE;CF
CHILI;CL CHILI;CL
CHINE;CN CHINE;CN
CHRISTMAS, ÎLE;CX CHRISTMAS, ÎLE;CX
CHYPRE;CY CHYPRE;CY
COCOS (KEELING), ÎLES;CC COCOS (KEELING), ÎLES;CC
COLOMBIE;CO COLOMBIE;CO
COMORES;KM COMORES;KM
CONGO;CG CONGO;CG
CONGO, LA RÉPUBLIQUE DÉMOCRATIQUE DU;CD CONGO, LA RÉPUBLIQUE DÉMOCRATIQUE DU;CD
COOK, ÎLES;CK COOK, ÎLES;CK
CORÉE, RÉPUBLIQUE DE;KR CORÉE, RÉPUBLIQUE DE;KR
CORÉE, RÉPUBLIQUE POPULAIRE DÉMOCRATIQUE DE;KP CORÉE, RÉPUBLIQUE POPULAIRE DÉMOCRATIQUE DE;KP
COSTA RICA;CR COSTA RICA;CR
CÔTE D'IVOIRE;CI CÔTE D'IVOIRE;CI
CROATIE;HR CROATIE;HR
CUBA;CU CUBA;CU
DANEMARK;DK DANEMARK;DK
DJIBOUTI;DJ DJIBOUTI;DJ
DOMINICAINE, RÉPUBLIQUE;DO DOMINICAINE, RÉPUBLIQUE;DO
DOMINIQUE;DM DOMINIQUE;DM
ÉGYPTE;EG ÉGYPTE;EG
EL SALVADOR;SV EL SALVADOR;SV
ÉMIRATS ARABES UNIS;AE ÉMIRATS ARABES UNIS;AE
ÉQUATEUR;EC ÉQUATEUR;EC
ÉRYTHRÉE;ER ÉRYTHRÉE;ER
ESPAGNE;ES ESPAGNE;ES
ESTONIE;EE ESTONIE;EE
ÉTATS-UNIS;US ÉTATS-UNIS;US
ÉTHIOPIE;ET ÉTHIOPIE;ET
FALKLAND, ÎLES (MALVINAS);FK FALKLAND, ÎLES (MALVINAS);FK
FÉROÉ, ÎLES;FO FÉROÉ, ÎLES;FO
FIDJI;FJ FIDJI;FJ
FINLANDE;FI FINLANDE;FI
FRANCE;FR FRANCE;FR
GABON;GA GABON;GA
GAMBIE;GM GAMBIE;GM
GÉORGIE;GE GÉORGIE;GE
GÉORGIE DU SUD ET LES ÎLES SANDWICH DU SUD;GS GÉORGIE DU SUD ET LES ÎLES SANDWICH DU SUD;GS
GHANA;GH GHANA;GH
GIBRALTAR;GI GIBRALTAR;GI
GRÈCE;GR GRÈCE;GR
GRENADE;GD GRENADE;GD
GROENLAND;GL GROENLAND;GL
GUADELOUPE;GP GUADELOUPE;GP
GUAM;GU GUAM;GU
GUATEMALA;GT GUATEMALA;GT
GUERNESEY;GG GUERNESEY;GG
GUINÉE;GN GUINÉE;GN
GUINÉE-BISSAU;GW GUINÉE-BISSAU;GW
GUINÉE ÉQUATORIALE;GQ GUINÉE ÉQUATORIALE;GQ
GUYANA;GY GUYANA;GY
GUYANE FRANÇAISE;GF GUYANE FRANÇAISE;GF
HAÏTI;HT HAÏTI;HT
HEARD, ÎLE ET MCDONALD, ÎLES;HM HEARD, ÎLE ET MCDONALD, ÎLES;HM
HONDURAS;HN HONDURAS;HN
HONG-KONG;HK HONG-KONG;HK
HONGRIE;HU HONGRIE;HU
ÎLE DE MAN;IM ÎLE DE MAN;IM
ÎLES MINEURES ÉLOIGNÉES DES ÉTATS-UNIS;UM ÎLES MINEURES ÉLOIGNÉES DES ÉTATS-UNIS;UM
ÎLES VIERGES BRITANNIQUES;VG ÎLES VIERGES BRITANNIQUES;VG
ÎLES VIERGES DES ÉTATS-UNIS;VI ÎLES VIERGES DES ÉTATS-UNIS;VI
INDE;IN INDE;IN
INDONÉSIE;ID INDONÉSIE;ID
IRAN, RÉPUBLIQUE ISLAMIQUE D';IR IRAN, RÉPUBLIQUE ISLAMIQUE D';IR
IRAQ;IQ IRAQ;IQ
IRLANDE;IE IRLANDE;IE
ISLANDE;IS ISLANDE;IS
ISRAËL;IL ISRAËL;IL
ITALIE;IT ITALIE;IT
JAMAÏQUE;JM JAMAÏQUE;JM
JAPON;JP JAPON;JP
JERSEY;JE JERSEY;JE
JORDANIE;JO JORDANIE;JO
@ -130,120 +130,120 @@ KAZAKHSTAN;KZ
KENYA;KE KENYA;KE
KIRGHIZISTAN;KG KIRGHIZISTAN;KG
KIRIBATI;KI KIRIBATI;KI
KOWEÏT;KW KOWEÏT;KW
LAO, RÉPUBLIQUE DÉMOCRATIQUE POPULAIRE;LA LAO, RÉPUBLIQUE DÉMOCRATIQUE POPULAIRE;LA
LESOTHO;LS LESOTHO;LS
LETTONIE;LV LETTONIE;LV
LIBAN;LB LIBAN;LB
LIBÉRIA;LR LIBÉRIA;LR
LIBYENNE, JAMAHIRIYA ARABE;LY LIBYENNE, JAMAHIRIYA ARABE;LY
LIECHTENSTEIN;LI LIECHTENSTEIN;LI
LITUANIE;LT LITUANIE;LT
LUXEMBOURG;LU LUXEMBOURG;LU
MACAO;MO MACAO;MO
MACÉDOINE, L'EX-RÉPUBLIQUE YOUGOSLAVE DE;MK MACÉDOINE, L'EX-RÉPUBLIQUE YOUGOSLAVE DE;MK
MADAGASCAR;MG MADAGASCAR;MG
MALAISIE;MY MALAISIE;MY
MALAWI;MW MALAWI;MW
MALDIVES;MV MALDIVES;MV
MALI;ML MALI;ML
MALTE;MT MALTE;MT
MARIANNES DU NORD, ÎLES;MP MARIANNES DU NORD, ÎLES;MP
MAROC;MA MAROC;MA
MARSHALL, ÎLES;MH MARSHALL, ÎLES;MH
MARTINIQUE;MQ MARTINIQUE;MQ
MAURICE;MU MAURICE;MU
MAURITANIE;MR MAURITANIE;MR
MAYOTTE;YT MAYOTTE;YT
MEXIQUE;MX MEXIQUE;MX
MICRONÉSIE, ÉTATS FÉDÉRÉS DE;FM MICRONÉSIE, ÉTATS FÉDÉRÉS DE;FM
MOLDOVA, RÉPUBLIQUE DE;MD MOLDOVA, RÉPUBLIQUE DE;MD
MONACO;MC MONACO;MC
MONGOLIE;MN MONGOLIE;MN
MONTÉNÉGRO;ME MONTÉNÉGRO;ME
MONTSERRAT;MS MONTSERRAT;MS
MOZAMBIQUE;MZ MOZAMBIQUE;MZ
MYANMAR;MM MYANMAR;MM
NAMIBIE;NA NAMIBIE;NA
NAURU;NR NAURU;NR
NÉPAL;NP NÉPAL;NP
NICARAGUA;NI NICARAGUA;NI
NIGER;NE NIGER;NE
NIGÉRIA;NG NIGÉRIA;NG
NIUÉ;NU NIUÉ;NU
NORFOLK, ÎLE;NF NORFOLK, ÎLE;NF
NORVÈGE;NO NORVÈGE;NO
NOUVELLE-CALÉDONIE;NC NOUVELLE-CALÉDONIE;NC
NOUVELLE-ZÉLANDE;NZ NOUVELLE-ZÉLANDE;NZ
OCÉAN INDIEN, TERRITOIRE BRITANNIQUE DE L';IO OCÉAN INDIEN, TERRITOIRE BRITANNIQUE DE L';IO
OMAN;OM OMAN;OM
OUGANDA;UG OUGANDA;UG
OUZBÉKISTAN;UZ OUZBÉKISTAN;UZ
PAKISTAN;PK PAKISTAN;PK
PALAOS;PW PALAOS;PW
PALESTINIEN OCCUPÉ, TERRITOIRE;PS PALESTINIEN OCCUPÉ, TERRITOIRE;PS
PANAMA;PA PANAMA;PA
PAPOUASIE-NOUVELLE-GUINÉE;PG PAPOUASIE-NOUVELLE-GUINÉE;PG
PARAGUAY;PY PARAGUAY;PY
PAYS-BAS;NL PAYS-BAS;NL
PÉROU;PE PÉROU;PE
PHILIPPINES;PH PHILIPPINES;PH
PITCAIRN;PN PITCAIRN;PN
POLOGNE;PL POLOGNE;PL
POLYNÉSIE FRANÇAISE;PF POLYNÉSIE FRANÇAISE;PF
PORTO RICO;PR PORTO RICO;PR
PORTUGAL;PT PORTUGAL;PT
QATAR;QA QATAR;QA
RÉUNION;RE RÉUNION;RE
ROUMANIE;RO ROUMANIE;RO
ROYAUME-UNI;GB ROYAUME-UNI;GB
RUSSIE, FÉDÉRATION DE;RU RUSSIE, FÉDÉRATION DE;RU
RWANDA;RW RWANDA;RW
SAHARA OCCIDENTAL;EH SAHARA OCCIDENTAL;EH
SAINT-BARTHÉLEMY;BL SAINT-BARTHÉLEMY;BL
SAINTE-HÉLÈNE;SH SAINTE-HÉLÈNE;SH
SAINTE-LUCIE;LC SAINTE-LUCIE;LC
SAINT-KITTS-ET-NEVIS;KN SAINT-KITTS-ET-NEVIS;KN
SAINT-MARIN;SM SAINT-MARIN;SM
SAINT-MARTIN;MF SAINT-MARTIN;MF
SAINT-PIERRE-ET-MIQUELON;PM SAINT-PIERRE-ET-MIQUELON;PM
SAINT-SIÈGE (ÉTAT DE LA CITÉ DU VATICAN);VA SAINT-SIÈGE (ÉTAT DE LA CITÉ DU VATICAN);VA
SAINT-VINCENT-ET-LES GRENADINES;VC SAINT-VINCENT-ET-LES GRENADINES;VC
SALOMON, ÎLES;SB SALOMON, ÎLES;SB
SAMOA;WS SAMOA;WS
SAMOA AMÉRICAINES;AS SAMOA AMÉRICAINES;AS
SAO TOMÉ-ET-PRINCIPE;ST SAO TOMÉ-ET-PRINCIPE;ST
SÉNÉGAL;SN SÉNÉGAL;SN
SERBIE;RS SERBIE;RS
SEYCHELLES;SC SEYCHELLES;SC
SIERRA LEONE;SL SIERRA LEONE;SL
SINGAPOUR;SG SINGAPOUR;SG
SLOVAQUIE;SK SLOVAQUIE;SK
SLOVÉNIE;SI SLOVÉNIE;SI
SOMALIE;SO SOMALIE;SO
SOUDAN;SD SOUDAN;SD
SRI LANKA;LK SRI LANKA;LK
SUÈDE;SE SUÈDE;SE
SUISSE;CH SUISSE;CH
SURINAME;SR SURINAME;SR
SVALBARD ET ÎLE JAN MAYEN;SJ SVALBARD ET ÎLE JAN MAYEN;SJ
SWAZILAND;SZ SWAZILAND;SZ
SYRIENNE, RÉPUBLIQUE ARABE;SY SYRIENNE, RÉPUBLIQUE ARABE;SY
TADJIKISTAN;TJ TADJIKISTAN;TJ
TAÏWAN, PROVINCE DE CHINE;TW TAÏWAN, PROVINCE DE CHINE;TW
TANZANIE, RÉPUBLIQUE-UNIE DE;TZ TANZANIE, RÉPUBLIQUE-UNIE DE;TZ
TCHAD;TD TCHAD;TD
TCHÈQUE, RÉPUBLIQUE;CZ TCHÈQUE, RÉPUBLIQUE;CZ
TERRES AUSTRALES FRANÇAISES;TF TERRES AUSTRALES FRANÇAISES;TF
THAÏLANDE;TH THAÏLANDE;TH
TIMOR-LESTE;TL TIMOR-LESTE;TL
TOGO;TG TOGO;TG
TOKELAU;TK TOKELAU;TK
TONGA;TO TONGA;TO
TRINITÉ-ET-TOBAGO;TT TRINITÉ-ET-TOBAGO;TT
TUNISIE;TN TUNISIE;TN
TURKMÉNISTAN;TM TURKMÉNISTAN;TM
TURKS ET CAÏQUES, ÎLES;TC TURKS ET CAÏQUES, ÎLES;TC
TURQUIE;TR TURQUIE;TR
TUVALU;TV TUVALU;TV
UKRAINE;UA UKRAINE;UA
@ -252,6 +252,6 @@ VANUATU;VU
VENEZUELA;VE VENEZUELA;VE
VIET NAM;VN VIET NAM;VN
WALLIS ET FUTUNA;WF WALLIS ET FUTUNA;WF
YÉMEN;YE YÉMEN;YE
ZAMBIE;ZM ZAMBIE;ZM
ZIMBABWE;ZW ZIMBABWE;ZW

View File

@ -135,7 +135,7 @@ SKK,Slovak Koruna,2
SLL,Sierra Leone Leone,2 SLL,Sierra Leone Leone,2
SOS,Somali Shilling,2 SOS,Somali Shilling,2
SRD,Surinam Dollar,2 SRD,Surinam Dollar,2
STD,São Tome and Principe Dobra,2 STD,São Tome and Principe Dobra,2
SVC,El Salvador Colon,2 SVC,El Salvador Colon,2
SYP,Syrian Pound,2 SYP,Syrian Pound,2
SZL,Swaziland Lilangeni,2 SZL,Swaziland Lilangeni,2

View File

@ -0,0 +1 @@
http://en.wikipedia.org/wiki/VAT_identification_number

View File

@ -20,7 +20,7 @@ fi
if [ "x$1" = "xall" ] if [ "x$1" = "xall" ]
then then
for fic in ar_SA bg_BG ca_ES da_DK de_DE el_GR es_ES et_EE fa_IR fi_FI fr_FR hu_HU is_IS it_IT ja_JP nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sl_SI sv_SE tr_TR zh_CN zh_TW for fic in ar_SA bg_BG ca_ES da_DK de_DE el_GR es_ES et_EE fa_IR fi_FI fr_FR he_IL hu_HU is_IS it_IT ja_JP ko_KR nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sl_SI sv_SE tr_TR vi_VN zh_CN zh_TW
do do
echo "tx pull -l $fic $2 $3" echo "tx pull -l $fic $2 $3"
tx pull -l $fic $2 $3 tx pull -l $fic $2 $3

View File

@ -13,14 +13,14 @@ then
echo "This push local files to transifex." echo "This push local files to transifex."
echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer." echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer."
echo " Using -f will overwrite translation but not memory." echo " Using -f will overwrite translation but not memory."
echo "Usage: txpush.sh (source|all|xx_XX) [-r dolibarr.file] [-f]" echo "Usage: txpush.sh (source|all|xx_XX) [-r dolibarr.file] [-f] [--skip] [--no-interactive]"
exit exit
fi fi
if [ "x$1" = "xall" ] if [ "x$1" = "xall" ]
then then
for fic in ar_SA bg_BG ca_ES da_DK de_DE el_GR es_ES et_EE fa_IR fi_FI fr_FR hu_HU is_IS it_IT ja_JP nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sl_SI sv_SE tr_TR zh_CN zh_TW for fic in ar_SA bg_BG ca_ES da_DK de_DE el_GR es_ES et_EE fa_IR fi_FI fr_FR he_IL hu_HU is_IS it_IT ja_JP ko_KR nb_NO nl_NL pl_PL pt_PT ro_RO ru_RU ru_UA sl_SI sv_SE tr_TR vi_VN zh_CN zh_TW
do do
echo "tx push -t -l $fic $2 $3" echo "tx push -t -l $fic $2 $3"
tx push -t -l $fic $2 $3 tx push -t -l $fic $2 $3

View File

@ -273,6 +273,8 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer)
$object->pass = trim($_POST["pass"]); $object->pass = trim($_POST["pass"]);
$object->societe = trim($_POST["societe"]); $object->societe = trim($_POST["societe"]);
$object->company = trim($_POST["societe"]);
$object->address = trim($_POST["address"]); $object->address = trim($_POST["address"]);
$object->zip = trim($_POST["zipcode"]); $object->zip = trim($_POST["zipcode"]);
$object->town = trim($_POST["town"]); $object->town = trim($_POST["town"]);

View File

@ -82,7 +82,7 @@ $pid=GETPOST("projectid","int",3);
$status=GETPOST("status"); $status=GETPOST("status");
$type=GETPOST("type"); $type=GETPOST("type");
$maxprint=(isset($_GET["maxprint"])?GETPOST("maxprint"):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); $maxprint=(isset($_GET["maxprint"])?GETPOST("maxprint"):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW);
$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=="0"?'':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':'')); $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':''));
if (GETPOST('viewcal') && $action != 'show_day' && $action != 'show_week') { if (GETPOST('viewcal') && $action != 'show_day' && $action != 'show_week') {
$action='show_month'; $day=''; $action='show_month'; $day='';
@ -236,7 +236,7 @@ if ($filterd) $param.="&filterd=".$filterd;
if ($socid) $param.="&socid=".$socid; if ($socid) $param.="&socid=".$socid;
if ($showbirthday) $param.="&showbirthday=1"; if ($showbirthday) $param.="&showbirthday=1";
if ($pid) $param.="&projectid=".$pid; if ($pid) $param.="&projectid=".$pid;
if ($actioncode) $param.="&actioncode=".$actioncode; if ($actioncode != '') $param.="&actioncode=".$actioncode;
if ($type) $param.="&type=".$type; if ($type) $param.="&type=".$type;
if ($action == 'show_day' || $action == 'show_week') $param.='&action='.$action; if ($action == 'show_day' || $action == 'show_week') $param.='&action='.$action;
$param.="&maxprint=".$maxprint; $param.="&maxprint=".$maxprint;
@ -382,10 +382,10 @@ if ($resql)
$event->type_code=$obj->code; $event->type_code=$obj->code;
$event->libelle=$obj->label; $event->libelle=$obj->label;
$event->percentage=$obj->percent; $event->percentage=$obj->percent;
$event->author->id=$obj->fk_user_author; $event->author->id=$obj->fk_user_author; // user id of creator
$event->usertodo->id=$obj->fk_user_action; $event->usertodo->id=$obj->fk_user_action; // user id of owner
$event->userdone->id=$obj->fk_user_done; $event->userdone->id=$obj->fk_user_done; // deprecated
// $event->userstodo=... with s after user, in future version, will be an array with all id of user assigned to event
$event->priority=$obj->priority; $event->priority=$obj->priority;
$event->fulldayevent=$obj->fulldayevent; $event->fulldayevent=$obj->fulldayevent;
$event->location=$obj->location; $event->location=$obj->location;
@ -952,11 +952,10 @@ llxFooter();
function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60) function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventarray, $maxprint=0, $maxnbofchar=16, $newparam='', $showinfo=0, $minheight=60)
{ {
global $user, $conf, $langs; global $user, $conf, $langs;
global $filter, $filtera, $filtert, $filterd, $status; global $filter, $filtera, $filtert, $filterd, $status, $actioncode; // Filters used into search form
global $theme_datacolor; global $theme_datacolor;
global $cachethirdparties, $cachecontacts, $colorindexused; global $cachethirdparties, $cachecontacts, $colorindexused;
print '<div id="dayevent_'.sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day).'" class="dayevent">'."\n"; print '<div id="dayevent_'.sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day).'" class="dayevent">'."\n";
$curtime = dol_mktime(0, 0, 0, $month, $day, $year); $curtime = dol_mktime(0, 0, 0, $month, $day, $year);
print '<table class="nobordernopadding" width="100%">'; print '<table class="nobordernopadding" width="100%">';
@ -1009,6 +1008,11 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|| (! empty($event->userdone->id) && $event->userdone->id == $user->id)) || (! empty($event->userdone->id) && $event->userdone->id == $user->id))
{ {
$nummytasks++; $cssclass='family_mytasks'; $nummytasks++; $cssclass='family_mytasks';
// TODO Set a color using user color
// Must defined rule to choose color of who to use.
// event->usertodo->id will still contains user id of owner
// event->userstodo will be an array in future.
// $color=$user->color;
} }
else if ($event->type_code == 'ICALEVENT') else if ($event->type_code == 'ICALEVENT')
{ {
@ -1179,9 +1183,10 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
} }
else else
{ {
print '<a href="'.DOL_URL_ROOT.'/comm/action/index.php?maxprint=0&month='.$monthshown.'&year='.$year; print '<a href="'.DOL_URL_ROOT.'/comm/action/index.php?maxprint=0&month='.$monthshown.'&year='.$year;
print ($status?'&status='.$status:'').($filter?'&filter='.$filter:''); print ($status?'&status='.$status:'').($filter?'&filter='.$filter:'');
print ($filtera?'&filtera='.$filtera:'').($filtert?'&filtert='.$filtert:'').($filterd?'&filterd='.$filterd:''); print ($filtera?'&filtera='.$filtera:'').($filtert?'&filtert='.$filtert:'').($filterd?'&filterd='.$filterd:'');
print ($actioncode!=''?'&actioncode='.$actioncode:'');
print '">'.img_picto("all","1downarrow_selected.png").' ...'; print '">'.img_picto("all","1downarrow_selected.png").' ...';
print ' +'.(count($eventarray[$daykey])-$maxprint); print ' +'.(count($eventarray[$daykey])-$maxprint);
print '</a>'; print '</a>';

View File

@ -114,7 +114,7 @@ if ($action == 'add' || $action == 'update')
// Update address // Update address
else if ($action == 'update') else if ($action == 'update')
{ {
$result = $object->update($_POST["id"], $socid, $user); $result = $object->update($id, $socid, $user);
if ($result >= 0) if ($result >= 0)
{ {

View File

@ -128,6 +128,14 @@ if ($action == 'cstc')
if ($result < 0) setEventMessage($object->error,'errors'); if ($result < 0) setEventMessage($object->error,'errors');
} }
// Update communication level
if ($action == 'setOutstandingBill')
{
$object->fetch($id);
$object->outstanding_limit=GETPOST('OutstandingBill');
$result=$object->set_OutstandingBill($user);
if ($result < 0) setEventMessage($object->error,'errors');
}
/* /*
@ -369,6 +377,18 @@ if ($id > 0)
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
if ($object->client)
{
print '<tr>';
print '<td>';
print $form->editfieldkey("OutstandingBill",'OutstandingBill',$object->outstanding_limit,$object,$user->rights->societe->creer);
print '</td><td colspan="3">';
print $form->editfieldval("OutstandingBill",'OutstandingBill',$object->outstanding_limit,$object,$user->rights->societe->creer);
print '</td>';
print '</tr>';
}
// Multiprice level // Multiprice level
if (! empty($conf->global->PRODUIT_MULTIPRICES)) if (! empty($conf->global->PRODUIT_MULTIPRICES))
{ {
@ -898,4 +918,4 @@ dol_htmloutput_mesg('',$mesgs);
// End of page // End of page
llxFooter(); llxFooter();
$db->close(); $db->close();
?> ?>

View File

@ -1885,6 +1885,18 @@ else
print '</tr>'; print '</tr>';
} }
if ($soc->outstanding_limit)
{
// Outstanding Bill
print '<tr><td>';
print $langs->trans('OutstandingBill');
print '</td><td align=right colspan=3>';
print price($soc->get_OutstandingBill()).' / ';
print price($soc->outstanding_limit, 0, '', 1, -1, -1, $conf->currency);
print '</td>';
print '</tr>';
}
// Other attributes // Other attributes
$res=$object->fetch_optionals($object->id,$extralabels); $res=$object->fetch_optionals($object->id,$extralabels);
$parameters=array('colspan' => ' colspan="3"'); $parameters=array('colspan' => ' colspan="3"');

View File

@ -233,7 +233,7 @@ if ($result)
if ($month) $param.='&month='.$month; if ($month) $param.='&month='.$month;
if ($year) $param.='&year='.$year; if ($year) $param.='&year='.$year;
if ($search_ref) $param.='&search_ref=' .$search_ref; if ($search_ref) $param.='&search_ref=' .$search_ref;
if ($search_refcustomer) $param.='&search_ref=' .$search_refcustomer; if ($search_refcustomer) $param.='&search_refcustomer=' .$search_refcustomer;
if ($search_societe) $param.='&search_societe=' .$search_societe; if ($search_societe) $param.='&search_societe=' .$search_societe;
if ($search_user > 0) $param.='&search_user='.$search_user; if ($search_user > 0) $param.='&search_user='.$search_user;
if ($search_sale > 0) $param.='&search_sale='.$search_sale; if ($search_sale > 0) $param.='&search_sale='.$search_sale;
@ -274,9 +274,9 @@ if ($result)
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'p.ref','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'p.ref','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'p.ref_client','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Town'),$_SERVER["PHP_SELF"],'s.town','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Town'),$_SERVER["PHP_SELF"],'s.town','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'p.ref_client','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'p.datep','',$param, 'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'p.datep','',$param, 'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('DateEndPropalShort'),$_SERVER["PHP_SELF"],'dfv','',$param, 'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('DateEndPropalShort'),$_SERVER["PHP_SELF"],'dfv','',$param, 'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'p.total_ht','',$param, 'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'p.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
@ -287,15 +287,15 @@ if ($result)
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="search_ref" value="'.$search_ref.'">'; print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">';
print '</td>';
print '<td class="liste_titre">';
print '<input class="flat" size="6" type="text" name="search_refcustomer" value="'.$search_refcustomer.'">';
print '</td>'; print '</td>';
print '<td class="liste_titre" align="left">'; print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" size="16" name="search_societe" value="'.$search_societe.'">'; print '<input class="flat" type="text" size="16" name="search_societe" value="'.$search_societe.'">';
print '</td>'; print '</td>';
print '<td class="liste_titre"><input class="flat" type="text" size="16" name="search_town" value="'.$search_town.'"></td>'; print '<td class="liste_titre"><input class="flat" type="text" size="16" name="search_town" value="'.$search_town.'"></td>';
print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="search_refcustomer" value="'.$search_refcustomer.'">';
print '</td>';
print '<td class="liste_titre" colspan="1" align="center">'; print '<td class="liste_titre" colspan="1" align="center">';
print $langs->trans('Month').': <input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">'; print $langs->trans('Month').': <input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
print '&nbsp;'.$langs->trans('Year').': '; print '&nbsp;'.$langs->trans('Year').': ';
@ -347,6 +347,7 @@ if ($result)
} }
print '</td>'; print '</td>';
// Ref
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">'; print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
$filename=dol_sanitizeFileName($objp->ref); $filename=dol_sanitizeFileName($objp->ref);
$filedir=$conf->propal->dir_output . '/' . dol_sanitizeFileName($objp->ref); $filedir=$conf->propal->dir_output . '/' . dol_sanitizeFileName($objp->ref);
@ -354,6 +355,13 @@ if ($result)
print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
print '</td></tr></table>'; print '</td></tr></table>';
print "</td>\n";
// Customer ref
print '<td class="nocellnopadd nowrap">';
print $objp->ref_client;
print '</td>';
$url = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objp->rowid; $url = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objp->rowid;
// Company // Company
@ -369,11 +377,6 @@ if ($result)
print $objp->town; print $objp->town;
print '</td>'; print '</td>';
// Customer ref
print '<td class="nocellnopadd nowrap">';
print $objp->ref_client;
print '</td>';
// Date proposal // Date proposal
print '<td align="center">'; print '<td align="center">';
$y = dol_print_date($db->jdate($objp->dp),'%Y'); $y = dol_print_date($db->jdate($objp->dp),'%Y');

View File

@ -2195,6 +2195,19 @@ else
print '</td></tr>'; print '</td></tr>';
} }
if ($soc->outstanding_limit)
{
// Outstanding Bill
print '<tr><td>';
print $langs->trans('OutstandingBill');
print '</td><td align=right colspan=3>';
print price($soc->get_OutstandingBill()).' / ';
print price($soc->outstanding_limit, 0, '', 1, -1, -1, $conf->currency);
print '</td>';
print '</tr>';
}
// Other attributes // Other attributes
$res=$object->fetch_optionals($object->id,$extralabels); $res=$object->fetch_optionals($object->id,$extralabels);
$parameters=array('colspan' => ' colspan="3"'); $parameters=array('colspan' => ' colspan="3"');

View File

@ -280,8 +280,8 @@ if ($resql)
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','',$param,'width="25%"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','',$param, 'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','',$param, 'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'c.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
@ -289,12 +289,15 @@ if ($resql)
print '</tr>'; print '</tr>';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre">'; print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="sref" value="'.$sref.'">'; print '<input class="flat" size="6" type="text" name="sref" value="'.$sref.'">';
print '</td><td class="liste_titre" align="left">'; print '</td>';
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" size="6" name="sref_client" value="'.$sref_client.'">';
print '</td>';
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="snom" value="'.$snom.'">'; print '<input class="flat" type="text" name="snom" value="'.$snom.'">';
print '</td><td class="liste_titre" align="left">'; print '</td>';
print '<input class="flat" type="text" size="10" name="sref_client" value="'.$sref_client.'">'; print '<td class="liste_titre">&nbsp;';
print '</td><td class="liste_titre">&nbsp;';
print '</td><td class="liste_titre">&nbsp;'; print '</td><td class="liste_titre">&nbsp;';
print '</td><td class="liste_titre">&nbsp;'; print '</td><td class="liste_titre">&nbsp;';
print '</td><td align="right" class="liste_titre">'; print '</td><td align="right" class="liste_titre">';
@ -341,6 +344,9 @@ if ($resql)
print '</td>'; print '</td>';
// Ref customer
print '<td>'.$objp->ref_client.'</td>';
// Company // Company
$companystatic->id=$objp->socid; $companystatic->id=$objp->socid;
$companystatic->nom=$objp->nom; $companystatic->nom=$objp->nom;
@ -362,8 +368,6 @@ if ($resql)
} }
print '</td>'; print '</td>';
print '<td>'.$objp->ref_client.'</td>';
// Order date // Order date
$y = dol_print_date($db->jdate($objp->date_commande),'%Y'); $y = dol_print_date($db->jdate($objp->date_commande),'%Y');
$m = dol_print_date($db->jdate($objp->date_commande),'%m'); $m = dol_print_date($db->jdate($objp->date_commande),'%m');

View File

@ -1436,18 +1436,21 @@ class AccountLine extends CommonObject
if ($withpicto) $result.=($lien.img_object($langs->trans("ShowTransaction"),'account').$lienfin.' '); if ($withpicto) $result.=($lien.img_object($langs->trans("ShowTransaction"),'account').$lienfin.' ');
$result.=$lien.$this->rowid.$lienfin; $result.=$lien.$this->rowid.$lienfin;
if ($option == 'showall' || $option == 'showconciliated') $result.=' (';
if ($option == 'showall') if ($option == 'showall')
{ {
$result.=' (';
$result.=$langs->trans("BankAccount").': '; $result.=$langs->trans("BankAccount").': ';
$accountstatic=new Account($this->db); $accountstatic=new Account($this->db);
$accountstatic->id=$this->fk_account; $accountstatic->id=$this->fk_account;
$accountstatic->label=$this->bank_account_label; $accountstatic->label=$this->bank_account_label;
$result.=$accountstatic->getNomUrl(0).', '; $result.=$accountstatic->getNomUrl(0).', ';
}
if ($option == 'showall' || $option == 'showconciliated')
{
$result.=$langs->trans("BankLineConciliated").': '; $result.=$langs->trans("BankLineConciliated").': ';
$result.=yn($this->rappro); $result.=yn($this->rappro);
$result.=')';
} }
if ($option == 'showall' || $option == 'showconciliated') $result.=')';
return $result; return $result;
} }

View File

@ -42,7 +42,7 @@ $debit=GETPOST("debit");
$credit=GETPOST("credit"); $credit=GETPOST("credit");
$type=GETPOST("type"); $type=GETPOST("type");
$account=GETPOST("account"); $account=GETPOST("account");
$bid=GETPOST("bid"); $bid=GETPOST("bid","int");
$param=''; $param='';
if ($description) $param.='&description='.$description; if ($description) $param.='&description='.$description;
@ -83,7 +83,7 @@ $sql.= " b.fk_account, b.fk_type,";
$sql.= " ba.rowid as bankid, ba.ref as bankref,"; $sql.= " ba.rowid as bankid, ba.ref as bankref,";
$sql.= " bu.label as labelurl, bu.url_id"; $sql.= " bu.label as labelurl, bu.url_id";
$sql.= " FROM "; $sql.= " FROM ";
if (! empty($_REQUEST["bid"])) $sql.= MAIN_DB_PREFIX."bank_class as l,"; if ($bid) $sql.= MAIN_DB_PREFIX."bank_class as l,";
$sql.= " ".MAIN_DB_PREFIX."bank_account as ba,"; $sql.= " ".MAIN_DB_PREFIX."bank_account as ba,";
$sql.= " ".MAIN_DB_PREFIX."bank as b"; $sql.= " ".MAIN_DB_PREFIX."bank as b";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'company'"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON bu.fk_bank = b.rowid AND type = 'company'";
@ -92,21 +92,21 @@ $sql.= " WHERE b.fk_account = ba.rowid";
$sql.= " AND ba.entity = ".$conf->entity; $sql.= " AND ba.entity = ".$conf->entity;
if (GETPOST("req_nb")) if (GETPOST("req_nb"))
{ {
$sql.= " AND b.num_chq like '%".$db->escape(GETPOST("req_nb"))."%'"; $sql.= " AND b.num_chq LIKE '%".$db->escape(GETPOST("req_nb"))."%'";
$param.='&amp;req_nb='.urlencode(GETPOST("req_nb")); $param.='&amp;req_nb='.urlencode(GETPOST("req_nb"));
} }
if (GETPOST("thirdparty")) if (GETPOST("thirdparty"))
{ {
$sql.=" AND (COALESCE(s.nom,'') LIKE '%".$db->escape(GETPOST("thirdparty"))."%')"; $sql.=" AND s.nom LIKE '%".$db->escape(GETPOST("thirdparty"))."%'";
$param.='&amp;thirdparty='.urlencode(GETPOST("thirdparty")); $param.='&amp;thirdparty='.urlencode(GETPOST("thirdparty"));
} }
if (! empty($_REQUEST["bid"])) if ($bid)
{ {
$sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$_REQUEST["bid"]; $sql.= " AND b.rowid=l.lineid AND l.fk_categ=".$bid;
} }
if(! empty($type)) if (! empty($type))
{ {
$sql .= " AND b.fk_type = '" . $type ."' "; $sql.= " AND b.fk_type = '".$db->escape($type)."' ";
} }
// Search criteria amount // Search criteria amount
$si=0; $si=0;

View File

@ -2318,6 +2318,18 @@ if ($action == 'create')
print '</td></tr>'; print '</td></tr>';
} }
if ($soc->outstanding_limit)
{
// Outstanding Bill
print '<tr><td>';
print $langs->trans('OutstandingBill');
print '</td><td align=right>';
print price($soc->get_OutstandingBill()).' / ';
print price($soc->outstanding_limit).'</td><td colspan=2>';
print '</td>';
print '</tr>';
}
// Other attributes // Other attributes
$parameters=array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"'); $parameters=array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"');
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
@ -3034,6 +3046,7 @@ else if ($id > 0 || ! empty($ref))
$nbrows=8; $nbcols=2; $nbrows=8; $nbcols=2;
if (! empty($conf->projet->enabled)) $nbrows++; if (! empty($conf->projet->enabled)) $nbrows++;
if (! empty($conf->banque->enabled)) $nbcols++; if (! empty($conf->banque->enabled)) $nbcols++;
if (! empty($soc->outstandingbill)) $nbrows++;
if($mysoc->localtax1_assuj=="1") $nbrows++; if($mysoc->localtax1_assuj=="1") $nbrows++;
if($mysoc->localtax2_assuj=="1") $nbrows++; if($mysoc->localtax2_assuj=="1") $nbrows++;
if ($selleruserevenustamp) $nbrows++; if ($selleruserevenustamp) $nbrows++;
@ -3305,6 +3318,18 @@ else if ($id > 0 || ! empty($ref))
} }
print '</td></tr>'; print '</td></tr>';
if ($soc->outstandingbill)
{
// Outstanding Bill
print '<tr><td>';
print $langs->trans('OutstandingBill');
print '</td><td align=right>';
print price($soc->get_OutstandingBill()).' / ';
print price($soc->outstandingbill);
print '</td>';
print '</tr>';
}
// Amount // Amount
print '<tr><td>'.$langs->trans('AmountHT').'</td>'; print '<tr><td>'.$langs->trans('AmountHT').'</td>';
print '<td align="right" colspan="3" nowrap>'.price($object->total_ht,1,'',1,-1,-1,$conf->currency).'</td></tr>'; print '<td align="right" colspan="3" nowrap>'.price($object->total_ht,1,'',1,-1,-1,$conf->currency).'</td></tr>';
@ -3955,4 +3980,4 @@ dol_htmloutput_mesg('',$mesgs);
llxFooter(); llxFooter();
$db->close(); $db->close();
?> ?>

View File

@ -1788,8 +1788,8 @@ class Facture extends CommonInvoice
// Rename directory if dir was a temporary ref // Rename directory if dir was a temporary ref
if (preg_match('/^[\(]?PROV/i', $this->ref)) if (preg_match('/^[\(]?PROV/i', $this->ref))
{ {
// On renomme repertoire facture ($this->ref = ancienne ref, $num = nouvelle ref) // Rename of object directory ($this->ref = old ref, $num = new ref)
// afin de ne pas perdre les fichiers attaches // to not lose the linked files
$facref = dol_sanitizeFileName($this->ref); $facref = dol_sanitizeFileName($this->ref);
$snumfa = dol_sanitizeFileName($num); $snumfa = dol_sanitizeFileName($num);
$dirsource = $conf->facture->dir_output.'/'.$facref; $dirsource = $conf->facture->dir_output.'/'.$facref;
@ -1977,7 +1977,7 @@ class Facture extends CommonInvoice
function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits=0, $fk_remise_except='', $price_base_type='HT', $pu_ttc=0, $type=0, $rang=-1, $special_code=0, $origin='', $origin_id=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='',$array_option=0) function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1=0, $txlocaltax2=0, $fk_product=0, $remise_percent=0, $date_start='', $date_end='', $ventil=0, $info_bits=0, $fk_remise_except='', $price_base_type='HT', $pu_ttc=0, $type=0, $rang=-1, $special_code=0, $origin='', $origin_id=0, $fk_parent_line=0, $fk_fournprice=null, $pa_ht=0, $label='',$array_option=0)
{ {
global $mysoc; global $mysoc;
$facid=$this->id; $facid=$this->id;
dol_syslog(get_class($this)."::Addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva, txlocaltax1=$txlocaltax1, txlocaltax2=$txlocaltax2, fk_product=$fk_product,remise_percent=$remise_percent,date_start=$date_start,date_end=$date_end,ventil=$ventil,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type", LOG_DEBUG); dol_syslog(get_class($this)."::Addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva, txlocaltax1=$txlocaltax1, txlocaltax2=$txlocaltax2, fk_product=$fk_product,remise_percent=$remise_percent,date_start=$date_start,date_end=$date_end,ventil=$ventil,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type", LOG_DEBUG);
@ -2023,9 +2023,9 @@ class Facture extends CommonInvoice
// qty, pu, remise_percent et txtva // qty, pu, remise_percent et txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc); $localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'',$localtaxes_type); $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'',$localtaxes_type);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];
@ -2148,7 +2148,7 @@ class Facture extends CommonInvoice
function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_option=0) function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_option=0)
{ {
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
global $mysoc; global $mysoc;
dol_syslog(get_class($this)."::updateline $rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1, $txlocaltax2, $price_base_type, $info_bits, $type, $fk_parent_line", LOG_DEBUG); dol_syslog(get_class($this)."::updateline $rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1, $txlocaltax2, $price_base_type, $info_bits, $type, $fk_parent_line", LOG_DEBUG);
@ -2176,9 +2176,9 @@ class Facture extends CommonInvoice
// Calculate total with, without tax and tax from qty, pu, remise_percent and txtva // Calculate total with, without tax and tax from qty, pu, remise_percent and txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc); $localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'',$localtaxes_type); $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'',$localtaxes_type);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];

View File

@ -62,6 +62,7 @@ $confirm=GETPOST('confirm','alpha');
$lineid=GETPOST('lineid','int'); $lineid=GETPOST('lineid','int');
$userid=GETPOST('userid','int'); $userid=GETPOST('userid','int');
$search_ref=GETPOST('sf_ref')?GETPOST('sf_ref','alpha'):GETPOST('search_ref','alpha'); $search_ref=GETPOST('sf_ref')?GETPOST('sf_ref','alpha'):GETPOST('search_ref','alpha');
$search_refcustomer=GETPOST('search_refcustomer','alpha');
$search_societe=GETPOST('search_societe','alpha'); $search_societe=GETPOST('search_societe','alpha');
$search_montant_ht=GETPOST('search_montant_ht','alpha'); $search_montant_ht=GETPOST('search_montant_ht','alpha');
$search_montant_ttc=GETPOST('search_montant_ttc','alpha'); $search_montant_ttc=GETPOST('search_montant_ttc','alpha');
@ -139,7 +140,7 @@ $facturestatic=new Facture($db);
if (! $sall) $sql = 'SELECT'; if (! $sall) $sql = 'SELECT';
else $sql = 'SELECT DISTINCT'; else $sql = 'SELECT DISTINCT';
$sql.= ' f.rowid as facid, f.facnumber, f.type, f.note_private, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc,'; $sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc,';
$sql.= ' f.datef as df, f.date_lim_reglement as datelimite,'; $sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
$sql.= ' f.paye as paye, f.fk_statut,'; $sql.= ' f.paye as paye, f.fk_statut,';
$sql.= ' s.nom, s.rowid as socid'; $sql.= ' s.nom, s.rowid as socid';
@ -177,6 +178,10 @@ if ($search_ref)
{ {
$sql .= natural_search('f.facnumber', $search_ref); $sql .= natural_search('f.facnumber', $search_ref);
} }
if ($search_refcustomer)
{
$sql .= natural_search('f.ref_client', $search_refcustomer);
}
if ($search_societe) if ($search_societe)
{ {
$sql .= natural_search('s.nom', $search_societe); $sql .= natural_search('s.nom', $search_societe);
@ -244,6 +249,7 @@ if ($resql)
if ($month) $param.='&month='.$month; if ($month) $param.='&month='.$month;
if ($year) $param.='&year=' .$year; if ($year) $param.='&year=' .$year;
if ($search_ref) $param.='&search_ref=' .$search_ref; if ($search_ref) $param.='&search_ref=' .$search_ref;
if ($search_refcustomer) $param.='&search_refcustomer=' .$search_refcustomer;
if ($search_societe) $param.='&search_societe=' .$search_societe; if ($search_societe) $param.='&search_societe=' .$search_societe;
if ($search_sale > 0) $param.='&search_sale=' .$search_sale; if ($search_sale > 0) $param.='&search_sale=' .$search_sale;
if ($search_user > 0) $param.='&search_user=' .$search_user; if ($search_user > 0) $param.='&search_user=' .$search_user;
@ -273,13 +279,14 @@ if ($resql)
if ($moreforfilter) if ($moreforfilter)
{ {
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre" colspan="9">'; print '<td class="liste_titre" colspan="10">';
print $moreforfilter; print $moreforfilter;
print '</td></tr>'; print '</td></tr>';
} }
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'f.facnumber','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'f.facnumber','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('RefCustomer'),$_SERVER["PHP_SELF"],'f.ref_client','',$param,'',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'f.datef','',$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'f.datef','',$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("DateDue"),$_SERVER['PHP_SELF'],"f.date_lim_reglement",'',$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DateDue"),$_SERVER['PHP_SELF'],"f.date_lim_reglement",'',$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans('Company'),$_SERVER['PHP_SELF'],'s.nom','',$param,'',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Company'),$_SERVER['PHP_SELF'],'s.nom','',$param,'',$sortfield,$sortorder);
@ -294,8 +301,11 @@ if ($resql)
// Filters lines // Filters lines
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td class="liste_titre" align="left">'; print '<td class="liste_titre" align="left">';
print '<input class="flat" size="10" type="text" name="search_ref" value="'.$search_ref.'">'; print '<input class="flat" size="6" type="text" name="search_ref" value="'.$search_ref.'">';
print '</td>'; print '</td>';
print '<td class="liste_titre">';
print '<input class="flat" size="6" type="text" name="search_refcustomer" value="'.$search_refcustomer.'">';
print '</td>';
print '<td class="liste_titre" align="center">'; print '<td class="liste_titre" align="center">';
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">'; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">'; print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
@ -358,13 +368,18 @@ if ($resql)
print "</td>\n"; print "</td>\n";
// Date // Customer ref
print '<td align="center" nowrap>'; print '<td class="nowrap">';
print $objp->ref_client;
print '</td>';
// Date
print '<td align="center" class="nowrap">';
print dol_print_date($db->jdate($objp->df),'day'); print dol_print_date($db->jdate($objp->df),'day');
print '</td>'; print '</td>';
// Date limit // Date limit
print '<td align="center" nowrap="1">'.dol_print_date($datelimit,'day'); print '<td align="center" class="nowrap">'.dol_print_date($datelimit,'day');
if ($datelimit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1 && ! $paiement) if ($datelimit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1 && ! $paiement)
{ {
print img_warning($langs->trans('Late')); print img_warning($langs->trans('Late'));
@ -403,7 +418,7 @@ if ($resql)
{ {
// Print total // Print total
print '<tr class="liste_total">'; print '<tr class="liste_total">';
print '<td class="liste_total" colspan="4" align="left">'.$langs->trans('Total').'</td>'; print '<td class="liste_total" colspan="5" align="left">'.$langs->trans('Total').'</td>';
print '<td class="liste_total" align="right">'.price($total_ht,0,$langs).'</td>'; print '<td class="liste_total" align="right">'.price($total_ht,0,$langs).'</td>';
print '<td class="liste_total" align="right">'.price($total_tva,0,$langs).'</td>'; print '<td class="liste_total" align="right">'.price($total_tva,0,$langs).'</td>';
print '<td class="liste_total" align="right">'.price($total_ttc,0,$langs).'</td>'; print '<td class="liste_total" align="right">'.price($total_ttc,0,$langs).'</td>';

View File

@ -57,6 +57,14 @@ if ($user->societe_id > 0)
$socid = $user->societe_id; $socid = $user->societe_id;
} }
$object=new Facture($db);
// Load object
if ($facid > 0)
{
$ret=$object->fetch($facid);
}
// Initialize technical object to manage hooks of paiements. Note that conf->hooks_modules contains array array // Initialize technical object to manage hooks of paiements. Note that conf->hooks_modules contains array array
$hookmanager = new HookManager($db); $hookmanager = new HookManager($db);
$hookmanager->initHooks(array('paiementcard')); $hookmanager->initHooks(array('paiementcard'));

View File

@ -193,7 +193,7 @@ dol_fiche_head($head, $hselected, $langs->trans("PaymentCustomerInvoice"), 0, 'p
if ($action == 'delete') if ($action == 'delete')
{ {
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2); print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete','',0,2);
} }
/* /*
@ -203,7 +203,7 @@ if ($action == 'valide')
{ {
$facid = $_GET['facid']; $facid = $_GET['facid'];
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2); print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id.'&amp;facid='.$facid, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide','',0,2);
} }
@ -230,7 +230,7 @@ print $form->editfieldval("Numero",'num_paiement',$object->numero,$object,$objec
print '</td></tr>'; print '</td></tr>';
// Amount // Amount
print '<tr><td valign="top">'.$langs->trans('Amount').'</td><td colspan="3">'.price($object->montant).'&nbsp;'.$langs->trans('Currency'.$conf->currency).'</td></tr>'; print '<tr><td valign="top">'.$langs->trans('Amount').'</td><td colspan="3">'.price($object->montant,'',$langs,0,0,-1,$conf->currency).'</td></tr>';
// Note // Note
print '<tr><td valign="top">'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->facture->paiement).'</td><td colspan="3">'; print '<tr><td valign="top">'.$form->editfieldkey("Note",'note',$object->note,$object,$user->rights->facture->paiement).'</td><td colspan="3">';
@ -248,15 +248,25 @@ if (! empty($conf->banque->enabled))
print '<tr>'; print '<tr>';
print '<td>'.$langs->trans('BankTransactionLine').'</td>'; print '<td>'.$langs->trans('BankTransactionLine').'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $bankline->getNomUrl(1,0,'showall'); print $bankline->getNomUrl(1,0,'showconciliated');
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
print '<tr>';
print '<td>'.$langs->trans('BankAccount').'</td>';
print '<td colspan="3">';
$accountstatic=new Account($db);
$accountstatic->id=$bankline->fk_account;
$accountstatic->label=$bankline->bank_account_ref.' - '.$bankline->bank_account_label;
print $accountstatic->getNomUrl(0);
print '</td>';
print '</tr>';
if($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) { if($object->type_code == 'CHQ' && $bankline->fk_bordereau > 0) {
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php'); dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
$bordereau = new RemiseCheque($db); $bordereau = new RemiseCheque($db);
$bordereau->fetch($bankline->fk_bordereau); $bordereau->fetch($bankline->fk_bordereau);
print '<tr>'; print '<tr>';
print '<td>'.$langs->trans('CheckReceipt').'</td>'; print '<td>'.$langs->trans('CheckReceipt').'</td>';
print '<td colspan="3">'; print '<td colspan="3">';

View File

@ -55,7 +55,7 @@ if ($action == 'builddoc')
$rap = new pdf_paiement($db); $rap = new pdf_paiement($db);
$outputlangs = $langs; $outputlangs = $langs;
if (! empty(GETPOST('lang_id'))) if (GETPOST('lang_id'))
{ {
$outputlangs = new Translate("",$conf); $outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang(GETPOST('lang_id')); $outputlangs->setDefaultLang(GETPOST('lang_id'));

View File

@ -116,7 +116,8 @@ $total_ttc=0;
if ($modecompta=="CREANCES-DETTES") if ($modecompta=="CREANCES-DETTES")
{ {
$nom=$langs->trans("AnnualByCompaniesDueDebtMode"); $nom=$langs->trans("AnnualByCompaniesDueDebtMode");
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>'; //$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
$description=$langs->trans("RulesResultDue"); $description=$langs->trans("RulesResultDue");
@ -127,7 +128,8 @@ if ($modecompta=="CREANCES-DETTES")
} }
else { else {
$nom=$langs->trans("AnnualByCompaniesInputOutputMode"); $nom=$langs->trans("AnnualByCompaniesInputOutputMode");
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.(GETPOST("month")>0?'&month='.GETPOST("month"):'').'&modecompta=CREANCES-DETTES">','</a>').')';
//$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1); //$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',1,1,0,'',1,0,1);
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>'; //$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
@ -135,7 +137,7 @@ else {
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array('modecompta'=>$modecompta)); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array('modecompta'=>$modecompta),$calcmode);
// Show report array // Show report array
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';

View File

@ -63,7 +63,8 @@ $exportlink='';
if ($modecompta == 'CREANCES-DETTES') if ($modecompta == 'CREANCES-DETTES')
{ {
$nom=$langs->trans("AnnualSummaryDueDebtMode"); $nom=$langs->trans("AnnualSummaryDueDebtMode");
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period="$year_start - $year_end"; $period="$year_start - $year_end";
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":""); $periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
$description=$langs->trans("RulesAmountWithTaxIncluded"); $description=$langs->trans("RulesAmountWithTaxIncluded");
@ -75,7 +76,8 @@ if ($modecompta == 'CREANCES-DETTES')
} }
else { else {
$nom=$langs->trans("AnnualSummaryInputOutputMode"); $nom=$langs->trans("AnnualSummaryInputOutputMode");
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
$period="$year_start - $year_end"; $period="$year_start - $year_end";
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":""); $periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
$description=$langs->trans("RulesAmountWithTaxIncluded"); $description=$langs->trans("RulesAmountWithTaxIncluded");
@ -83,7 +85,7 @@ else {
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array('modecompta'=>$modecompta)); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array('modecompta'=>$modecompta),$calcmode);
/* /*

View File

@ -142,7 +142,8 @@ $formother = new FormOther($db);
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByProductsAndServices"); $nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByProductsAndServices");
if ($modecompta=="CREANCES-DETTES") { if ($modecompta=="CREANCES-DETTES") {
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
@ -155,7 +156,8 @@ if ($modecompta=="CREANCES-DETTES") {
$builddate=time(); $builddate=time();
} else { } else {
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
@ -165,7 +167,7 @@ if ($modecompta=="CREANCES-DETTES") {
$builddate=time(); $builddate=time();
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
// SQL request // SQL request
@ -382,8 +384,7 @@ if ($modecompta == 'CREANCES-DETTES') {
print '</form>'; print '</form>';
} else { } else {
// $modecompta != 'CREANCES-DETTES' // $modecompta != 'CREANCES-DETTES'
// TODO: better message print '<br>'.$langs->trans("TurnoverPerProductInCommitmentAccountingNotRelevant") . '<br>';
print '<div class="warning">' . $langs->trans("WarningNotRelevant") . '</div>';
} }
llxFooter(); llxFooter();

View File

@ -137,7 +137,8 @@ $form=new Form($db);
// Show report header // Show report header
if ($modecompta=="CREANCES-DETTES") { if ($modecompta=="CREANCES-DETTES") {
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice"); $nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>"; //$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>";
$description=$langs->trans("RulesCADue"); $description=$langs->trans("RulesCADue");
@ -147,7 +148,8 @@ if ($modecompta=="CREANCES-DETTES") {
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
} else { } else {
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice"); $nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByUserAuthorOfInvoice");
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>"; //$periodlink="<a href='".$_SERVER["PHP_SELF"]."?year=".($year-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year+1)."&modecompta=".$modecompta."'>".img_next()."</a>";
$description=$langs->trans("RulesCAIn"); $description=$langs->trans("RulesCAIn");
@ -158,7 +160,7 @@ if ($modecompta=="CREANCES-DETTES") {
$moreparam=array(); $moreparam=array();
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta; if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
// Show array // Show array

View File

@ -151,7 +151,8 @@ $formother = new FormOther($db);
if ($modecompta=="CREANCES-DETTES") if ($modecompta=="CREANCES-DETTES")
{ {
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties"); $nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>'; //$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
$description=$langs->trans("RulesCADue"); $description=$langs->trans("RulesCADue");
@ -161,7 +162,8 @@ if ($modecompta=="CREANCES-DETTES")
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
} else { } else {
$nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties"); $nom=$langs->trans("SalesTurnover").', '.$langs->trans("ByThirdParties");
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year.'&modecompta=CREANCES-DETTES">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>'; //$periodlink='<a href="'.$_SERVER["PHP_SELF"].'?year='.($year-1).'&modecompta='.$modecompta.'">'.img_previous().'</a> <a href="'.$_SERVER["PHP_SELF"].'?year='.($year+1).'&modecompta='.$modecompta.'">'.img_next().'</a>';
$description=$langs->trans("RulesCAIn"); $description=$langs->trans("RulesCAIn");
@ -170,7 +172,7 @@ if ($modecompta=="CREANCES-DETTES")
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$tableparams,$calcmode);
// Show Array // Show Array
@ -227,7 +229,7 @@ $sql.= " AND f.entity = ".$conf->entity;
if ($socid) $sql.= " AND f.fk_soc = ".$socid; if ($socid) $sql.= " AND f.fk_soc = ".$socid;
$sql.= " GROUP BY s.rowid, s.nom"; $sql.= " GROUP BY s.rowid, s.nom";
$sql.= " ORDER BY s.rowid"; $sql.= " ORDER BY s.rowid";
echo $sql; //echo $sql;
$result = $db->query($sql); $result = $db->query($sql);
if ($result) { if ($result) {

View File

@ -60,7 +60,8 @@ $form=new Form($db);
if ($modecompta=="CREANCES-DETTES") if ($modecompta=="CREANCES-DETTES")
{ {
$nom=$langs->trans("SalesTurnover"); $nom=$langs->trans("SalesTurnover");
$nom.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')'; $calcmode=$langs->trans("CalcModeDebt");
$calcmode.='<br>('.$langs->trans("SeeReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=RECETTES-DEPENSES">','</a>').')';
$period="$year_start - $year_end"; $period="$year_start - $year_end";
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":""); $periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
$description=$langs->trans("RulesCADue"); $description=$langs->trans("RulesCADue");
@ -71,7 +72,8 @@ if ($modecompta=="CREANCES-DETTES")
} }
else { else {
$nom=$langs->trans("SalesTurnover"); $nom=$langs->trans("SalesTurnover");
$nom.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')'; $calcmode=$langs->trans("CalcModeEngagement");
$calcmode.='<br>('.$langs->trans("SeeReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year_start='.$year_start.'&modecompta=CREANCES-DETTES">','</a>').')';
$period="$year_start - $year_end"; $period="$year_start - $year_end";
$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":""); $periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start-1)."&modecompta=".$modecompta."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year_start=".($year_start+1)."&modecompta=".$modecompta."'>".img_next()."</a>":"");
$description=$langs->trans("RulesCAIn"); $description=$langs->trans("RulesCAIn");
@ -81,7 +83,7 @@ else {
} }
$moreparam=array(); $moreparam=array();
if (! empty($modecompta)) $moreparam['modecompta']=$modecompta; if (! empty($modecompta)) $moreparam['modecompta']=$modecompta;
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,$moreparam,$calcmode);
if ($modecompta == 'CREANCES-DETTES') if ($modecompta == 'CREANCES-DETTES')

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2006 Yannick Warnier <ywarnier@beeznest.org> * Copyright (C) 2006 Yannick Warnier <ywarnier@beeznest.org>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -110,6 +110,8 @@ $fsearch.=' <input type="text" name="min" id="min" value="'.$min.'" size="6">';
if ($modetax==1) // Calculate on invoice for goods and services if ($modetax==1) // Calculate on invoice for goods and services
{ {
$nom=$langs->trans("VATReportByCustomersInDueDebtMode"); $nom=$langs->trans("VATReportByCustomersInDueDebtMode");
$calcmode=$langs->trans("CalcModeVATDebt");
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
//$nom.='<br>('.$langs->trans("SeeVATReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=0">','</a>').')'; //$nom.='<br>('.$langs->trans("SeeVATReportInInputOutputMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=0">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":""); //$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
@ -121,7 +123,6 @@ if ($modetax==1) // Calculate on invoice for goods and services
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded"); if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
else $description.='<br>'.$langs->trans("DepositsAreIncluded"); else $description.='<br>'.$langs->trans("DepositsAreIncluded");
$description.=$fsearch; $description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
@ -137,6 +138,8 @@ if ($modetax==1) // Calculate on invoice for goods and services
if ($modetax==0) // Invoice for goods, payment for services if ($modetax==0) // Invoice for goods, payment for services
{ {
$nom=$langs->trans("VATReportByCustomersInInputOutputMode"); $nom=$langs->trans("VATReportByCustomersInInputOutputMode");
$calcmode=$langs->trans("CalcModeVATEngagement");
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
//$nom.='<br>('.$langs->trans("SeeVATReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=1">','</a>').')'; //$nom.='<br>('.$langs->trans("SeeVATReportInDueDebtMode",'<a href="'.$_SERVER["PHP_SELF"].'?year='.$year_start.'&modetax=1">','</a>').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
//$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":""); //$periodlink=($year_start?"<a href='".$_SERVER["PHP_SELF"]."?year=".($year_start-1)."&modetax=".$modetax."'>".img_previous()."</a> <a href='".$_SERVER["PHP_SELF"]."?year=".($year_start+1)."&modetax=".$modetax."'>".img_next()."</a>":"");
@ -149,7 +152,6 @@ if ($modetax==0) // Invoice for goods, payment for services
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite'); //if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded"); //if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
$description.=$fsearch; $description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
@ -162,7 +164,7 @@ if ($modetax==0) // Invoice for goods, payment for services
$amountsup=$langs->trans("AmountHT"); $amountsup=$langs->trans("AmountHT");
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')'; if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
$vatcust=$langs->trans("VATReceived"); $vatcust=$langs->trans("VATReceived");
$vatsup=$langs->trans("VATPaid"); $vatsup=$langs->trans("VATPaid");

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2006-2007 Yannick Warnier <ywarnier@beeznest.org> * Copyright (C) 2006-2007 Yannick Warnier <ywarnier@beeznest.org>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -121,10 +121,13 @@ $fsearch.=' <input type="hidden" name="modetax" value="'.$modetax.'">';
//$fsearch.=' '.$langs->trans("SalesTurnoverMinimum").': '; //$fsearch.=' '.$langs->trans("SalesTurnoverMinimum").': ';
//$fsearch.=' <input type="text" name="min" value="'.$min.'">'; //$fsearch.=' <input type="text" name="min" value="'.$min.'">';
// Affiche en-tete du rapport // Affiche en-tete du rapport
if ($modetax==1) // Calculate on invoice for goods and services if ($modetax==1) // Calculate on invoice for goods and services
{ {
$nom=$langs->trans("VATReportByQuartersInDueDebtMode"); $nom=$langs->trans("VATReportByQuartersInDueDebtMode");
$calcmode=$langs->trans("CalcModeVATDebt");
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
$prevyear=$year_start; $prevquarter=$q; $prevyear=$year_start; $prevquarter=$q;
if ($prevquarter > 1) $prevquarter--; if ($prevquarter > 1) $prevquarter--;
@ -140,7 +143,6 @@ if ($modetax==1) // Calculate on invoice for goods and services
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded"); //if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded"); if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
else $description.='<br>'.$langs->trans("DepositsAreIncluded"); else $description.='<br>'.$langs->trans("DepositsAreIncluded");
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$description.=$fsearch; $description.=$fsearch;
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
@ -159,6 +161,8 @@ if ($modetax==1) // Calculate on invoice for goods and services
if ($modetax==0) // Invoice for goods, payment for services if ($modetax==0) // Invoice for goods, payment for services
{ {
$nom=$langs->trans("VATReportByQuartersInInputOutputMode"); $nom=$langs->trans("VATReportByQuartersInInputOutputMode");
$calcmode=$langs->trans("CalcModeVATEngagement");
$calcmode.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1); $period=$form->select_date($date_start,'date_start',0,0,0,'',1,0,1).' - '.$form->select_date($date_end,'date_end',0,0,0,'',1,0,1);
$prevyear=$year_start; $prevquarter=$q; $prevyear=$year_start; $prevquarter=$q;
if ($prevquarter > 1) $prevquarter--; if ($prevquarter > 1) $prevquarter--;
@ -176,7 +180,6 @@ if ($modetax==0) // Invoice for goods, payment for services
//if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite'); //if ($conf->global->MAIN_MODULE_COMPTABILITE || $conf->global->MAIN_MODULE_ACCOUNTING) $description.='<br>'.img_warning().' '.$langs->trans('OptionVatInfoModuleComptabilite');
//if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded"); //if (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
$description.=$fsearch; $description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time(); $builddate=time();
//$exportlink=$langs->trans("NotYetAvailable"); //$exportlink=$langs->trans("NotYetAvailable");
@ -191,7 +194,7 @@ if ($modetax==0) // Invoice for goods, payment for services
$vatsup=$langs->trans("VATPaid"); $vatsup=$langs->trans("VATPaid");
if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')'; if ($mysoc->tva_assuj) $vatsup.=' ('.$langs->trans("ToGetBack").')';
} }
report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink); report_header($nom,$nomlink,$period,$periodlink,$description,$builddate,$exportlink,array(),$calcmode);
$vatcust=$langs->trans("VATReceived"); $vatcust=$langs->trans("VATReceived");
$vatsup=$langs->trans("VATPaid"); $vatsup=$langs->trans("VATPaid");

View File

@ -469,7 +469,7 @@ class Contact extends CommonObject
/** /**
* Charge l'objet contact * Load object contact
* *
* @param int $id id du contact * @param int $id id du contact
* @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact * @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
@ -481,8 +481,7 @@ class Contact extends CommonObject
$langs->load("companies"); $langs->load("companies");
$sql = "SELECT c.rowid, c.fk_soc, c.ref_ext, c.civilite as civilite_id, c.lastname, c.firstname,";
$sql = "SELECT c.rowid, c.fk_soc, c.civilite as civilite_id, c.lastname, c.firstname,";
$sql.= " c.address, c.statut, c.zip, c.town,"; $sql.= " c.address, c.statut, c.zip, c.town,";
$sql.= " c.fk_pays as country_id,"; $sql.= " c.fk_pays as country_id,";
$sql.= " c.fk_departement,"; $sql.= " c.fk_departement,";
@ -511,6 +510,7 @@ class Contact extends CommonObject
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->ref = $obj->rowid; $this->ref = $obj->rowid;
$this->ref_ext = $obj->ref_ext;
$this->civilite_id = $obj->civilite_id; $this->civilite_id = $obj->civilite_id;
$this->lastname = $obj->lastname; $this->lastname = $obj->lastname;
$this->firstname = $obj->firstname; $this->firstname = $obj->firstname;
@ -972,7 +972,7 @@ class Contact extends CommonObject
} }
/** /**
* Return translated label of Public or Private * Return translated label of Public or Private
* *

View File

@ -132,28 +132,25 @@ if (empty($reshook))
} }
/* // Confirmation desactivation
* Confirmation desactivation if ($action == 'disable')
*/ {
if ($action == 'disable') $object->fetch($id);
{ $object->setstatus(0);
$object->fetch($id); header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
$object->setstatus(0); exit;
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id); }
exit;
}
/* // Confirmation activation
* Confirmation activation if ($action == 'enable')
*/ {
if ($action == 'enable') $object->fetch($id);
{ $object->setstatus(1);
$object->fetch($id); header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
$object->setstatus(1); exit;
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
exit; }
}
// Add contact // Add contact
if ($action == 'add' && $user->rights->societe->contact->creer) if ($action == 'add' && $user->rights->societe->contact->creer)
{ {
@ -221,7 +218,7 @@ if (empty($reshook))
if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->societe->contact->supprimer) if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->societe->contact->supprimer)
{ {
$result=$object->fetch($_GET["id"]); $result=$object->fetch($id);
$object->old_lastname = $_POST["old_lastname"]; $object->old_lastname = $_POST["old_lastname"];
$object->old_firstname = $_POST["old_firstname"]; $object->old_firstname = $_POST["old_firstname"];
@ -248,7 +245,9 @@ if (empty($reshook))
if (! $error) if (! $error)
{ {
$object->fetch($_POST["contactid"]); $contactid=GETPOST("contactid",'int');
$object->fetch($contactid);
$object->oldcopy=dol_clone($object); $object->oldcopy=dol_clone($object);
@ -281,7 +280,7 @@ if (empty($reshook))
// Fill array 'array_options' with data from add form // Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$object); $ret = $extrafields->setOptionalsFromPost($extralabels,$object);
$result = $object->update($_POST["contactid"], $user); $result = $object->update($contactid, $user);
if ($result > 0) if ($result > 0)
{ {
@ -343,8 +342,7 @@ else
{ {
if ($action == 'delete') if ($action == 'delete')
{ {
print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$_GET["id"],$langs->trans("DeleteContact"),$langs->trans("ConfirmDeleteContact"),"confirm_delete",'',0,1); print $form->formconfirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("DeleteContact"),$langs->trans("ConfirmDeleteContact"),"confirm_delete",'',0,1);
} }
} }

View File

@ -274,54 +274,63 @@ class Contrat extends CommonObject
} }
/** /**
* Validate a contract * Validate a contract
* *
* @param User $user Objet User * @param User $user Objet User
* @return int <0 if KO, >0 if OK * @param string $force_number Reference to force on contract (not implemented yet)
* @return int <0 if KO, >0 if OK
*/ */
function validate($user) function validate($user, $force_number='')
{ {
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
global $langs, $conf; global $langs, $conf;
$now=dol_now();
$error=0; $error=0;
dol_syslog(get_class($this).'::validate user='.$user->id.', force_number='.$force_number);
// Definition du nom de module de numerotation de commande
$soc = new Societe($this->db);
$soc->fetch($this->socid);
// Class of company linked to order $this->db->begin();
$result=$soc->set_as_client();
$this->fetch_thirdparty();
// A contract is validated so we can move thirdparty to status customer
$result=$this->thirdparty->set_as_client();
// Define new ref // Define new ref
if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref))) if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref)))
{ {
$num = $this->getNextNumRef($soc); $num = $this->getNextNumRef($this->thirdparty);
} }
else else
{ {
$num = $this->ref; $num = $this->ref;
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET ref = '".$num."', statut = 1"; if ($num)
$sql .= " WHERE rowid = ".$this->id . " AND statut = 0";
$resql = $this->db->query($sql);
if ($resql)
{ {
// Appel des triggers $sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET ref = '".$num."', statut = 1";
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; //$sql.= ", fk_user_valid = ".$user->id.", date_valid = '".$this->db->idate($now)."'";
$interface=new Interfaces($this->db); $sql .= " WHERE rowid = ".$this->id . " AND statut = 0";
$result=$interface->run_triggers('CONTRACT_VALIDATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; } dol_syslog(get_class($this)."::validate sql=".$sql);
// Fin appel triggers $resql = $this->db->query($sql);
if (! $resql)
{
dol_syslog(get_class($this)."::validate Echec update - 10 - sql=".$sql, LOG_ERR);
dol_print_error($this->db);
$error++;
}
if (! $error) if (! $error)
{ {
$this->oldref = '';
// Rename directory if dir was a temporary ref // Rename directory if dir was a temporary ref
if (preg_match('/^[\(]?PROV/i', $this->ref)) if (preg_match('/^[\(]?PROV/i', $this->ref))
{ {
// Rename of propal directory ($this->ref = old ref, $num = new ref) // Rename of object directory ($this->ref = old ref, $num = new ref)
// to not lose the linked files // to not lose the linked files
$facref = dol_sanitizeFileName($this->ref); $facref = dol_sanitizeFileName($this->ref);
$snumfa = dol_sanitizeFileName($num); $snumfa = dol_sanitizeFileName($num);
@ -330,28 +339,56 @@ class Contrat extends CommonObject
if (file_exists($dirsource)) if (file_exists($dirsource))
{ {
dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest); dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest);
if (@rename($dirsource, $dirdest)) if (@rename($dirsource, $dirdest))
{ {
$this->oldref = $facref;
dol_syslog("Rename ok"); dol_syslog("Rename ok");
// Deleting old PDF in new rep // Deleting old PDF in new rep
dol_delete_file($conf->contract->dir_output.'/'.$snumfa.'/'.$facref.'*.*'); dol_delete_file($conf->contract->dir_output.'/'.$snumfa.'/'.$facref.'*.*');
} }
} }
} }
return 1;
} }
else
// Set new ref and define current statut
if (! $error)
{ {
return -1; $this->ref = $num;
$this->statut=1;
$this->brouillon=0;
$this->date_validation=$now;
}
// Trigger calls
if (! $error)
{
// Appel des triggers
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('CONTRACT_VALIDATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
} }
} }
else else
{ {
$this->error=$this->db->error(); $error++;
}
if (! $error)
{
$this->db->commit();
return 1;
}
else
{
$this->db->rollback();
$this->error=$this->db->lasterror();
return -1; return -1;
} }
} }
@ -966,19 +1003,19 @@ class Contrat extends CommonObject
// qty, pu, remise_percent et txtva // qty, pu, remise_percent et txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc); $localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, 1,'', $localtaxes_type); $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, 1,'', $localtaxes_type);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];
$total_ttc = $tabprice[2]; $total_ttc = $tabprice[2];
$total_localtax1= $tabprice[9]; $total_localtax1= $tabprice[9];
$total_localtax2= $tabprice[10]; $total_localtax2= $tabprice[10];
$localtax1_type=$localtaxes_type[0]; $localtax1_type=$localtaxes_type[0];
$localtax2_type=$localtaxes_type[2]; $localtax2_type=$localtaxes_type[2];
// TODO A virer // TODO A virer
// Anciens indicateurs: $price, $remise (a ne plus utiliser) // Anciens indicateurs: $price, $remise (a ne plus utiliser)
$remise = 0; $remise = 0;
@ -1114,19 +1151,19 @@ class Contrat extends CommonObject
// qty, pu, remise_percent et txtva // qty, pu, remise_percent et txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc); $localtaxes_type=getLocalTaxesFromRate($txtva,0,$mysoc);
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $tvatx, $localtaxtx1, $txlocaltaxtx2, 0, $price_base_type, $info_bits, 1, '', $localtaxes_type); $tabprice=calcul_price_total($qty, $pu, $remise_percent, $tvatx, $localtaxtx1, $txlocaltaxtx2, 0, $price_base_type, $info_bits, 1, '', $localtaxes_type);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];
$total_ttc = $tabprice[2]; $total_ttc = $tabprice[2];
$total_localtax1= $tabprice[9]; $total_localtax1= $tabprice[9];
$total_localtax2= $tabprice[10]; $total_localtax2= $tabprice[10];
$localtax1_type=$localtaxes_type[0]; $localtax1_type=$localtaxes_type[0];
$localtax2_type=$localtaxes_type[2]; $localtax2_type=$localtaxes_type[2];
// TODO A virer // TODO A virer
// Anciens indicateurs: $price, $remise (a ne plus utiliser) // Anciens indicateurs: $price, $remise (a ne plus utiliser)
$remise = 0; $remise = 0;

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2006-2013 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2006-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr> * Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com> * Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com>
@ -464,7 +464,7 @@ abstract class CommonObject
$sql.= " WHERE tc.element='".$this->element."'"; $sql.= " WHERE tc.element='".$this->element."'";
if ($activeonly == 1) if ($activeonly == 1)
$sql.= " AND tc.active=1"; // only the active type $sql.= " AND tc.active=1"; // only the active type
if (! empty($source)) $sql.= " AND tc.source='".$source."'"; if (! empty($source)) $sql.= " AND tc.source='".$source."'";
$sql.= " ORDER by tc.".$order; $sql.= " ORDER by tc.".$order;
@ -1112,9 +1112,9 @@ abstract class CommonObject
$row = $this->db->fetch_row($resql); $row = $this->db->fetch_row($resql);
$rows[] = $row[0]; // Add parent line into array rows $rows[] = $row[0]; // Add parent line into array rows
$childrens = $this->getChildrenOfLine($row[0]); $childrens = $this->getChildrenOfLine($row[0]);
if (! empty($children)) if (! empty($childrens))
{ {
foreach($children as $child) foreach($childrens as $child)
{ {
array_push($rows, $child); array_push($rows, $child);
} }
@ -2621,7 +2621,7 @@ abstract class CommonObject
} }
} }
/* This is to show add lines */ /* This is to show add lines */

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr> * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2006 Marc Barilley/Ocebo <marc@ocebo.com> * Copyright (C) 2006 Marc Barilley/Ocebo <marc@ocebo.com>
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerker@telenet.be> * Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerker@telenet.be>
@ -800,7 +800,7 @@ class Form
while ($i < $num) while ($i < $num)
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
if ($conf->global->SOCIETE_ADD_REF_IN_LIST) { if ($conf->global->SOCIETE_ADD_REF_IN_LIST) {
if (($obj->client) && (!empty($obj->code_client))) { if (($obj->client) && (!empty($obj->code_client))) {
$label = $obj->code_client. ' - '; $label = $obj->code_client. ' - ';
@ -814,7 +814,7 @@ class Form
{ {
$label=$obj->nom; $label=$obj->nom;
} }
if ($showtype) if ($showtype)
{ {
if ($obj->client || $obj->fournisseur) $label.=' ('; if ($obj->client || $obj->fournisseur) $label.=' (';
@ -2484,9 +2484,9 @@ class Form
/** /**
* Show a confirmation HTML form or AJAX popup. * Show a confirmation HTML form or AJAX popup.
* Easiest way to use this is with useajax=1. * Easiest way to use this is with useajax=1.
* If you use useajax='xxx', you must also add jquery code to trigger opening of box (with correct parameters) * If you use useajax='xxx', you must also add jquery code to trigger opening of box (with correct parameters)
* just after calling this method. For example: * just after calling this method. For example:
* print '<script type="text/javascript">'."\n"; * print '<script type="text/javascript">'."\n";
* print 'jQuery(document).ready(function() {'."\n"; * print 'jQuery(document).ready(function() {'."\n";
* print 'jQuery(".xxxlink").click(function(e) { jQuery("#aparamid").val(jQuery(this).attr("rel")); jQuery("#dialog-confirm-xxx").dialog("open"); return false; });'."\n"; * print 'jQuery(".xxxlink").click(function(e) { jQuery("#aparamid").val(jQuery(this).attr("rel")); jQuery("#dialog-confirm-xxx").dialog("open"); return false; });'."\n";
@ -2587,9 +2587,9 @@ class Form
$more.='</table>'."\n"; $more.='</table>'."\n";
} }
// JQUI method dialog is broken with jmobile, we use standard HTML. // JQUI method dialog is broken with jmobile, we use standard HTML.
// Note: When using dol_use_jmobile, you must also check code for button use a GET url with action=xxx and output the confirm code only when action=xxx // Note: When using dol_use_jmobile, you must also check code for button use a GET url with action=xxx and output the confirm code only when action=xxx
if (! empty($conf->dol_use_jmobile)) $useajax=0; if (! empty($conf->dol_use_jmobile)) $useajax=0;
if ($useajax && $conf->use_javascript_ajax) if ($useajax && $conf->use_javascript_ajax)
{ {
@ -3280,7 +3280,8 @@ class Form
* Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle. * Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle. * Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle. * Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu autre que transport neuf alors la TVA par defaut=TVA du produit vendu. Fin de regle. * Si vendeur et acheteur dans Communauté européenne et acheteur= particulier alors TVA par défaut=TVA du produit vendu. Fin de règle.
* Si vendeur et acheteur dans Communauté européenne et acheteur= entreprise alors TVA par défaut=0. Fin de règle.
* Sinon la TVA proposee par defaut=0. Fin de regle. * Sinon la TVA proposee par defaut=0. Fin de regle.
* @param bool $options_only Return options only (for ajax treatment) * @param bool $options_only Return options only (for ajax treatment)
* @return void * @return void
@ -3376,7 +3377,7 @@ class Form
// Disabled if seller is not subject to VAT // Disabled if seller is not subject to VAT
$disabled=false; $title=''; $disabled=false; $title='';
if (is_object($societe_vendeuse) && $societe_vendeuse->id == $mysoc->id && $societe_vendeuse->tva_assuj == "0") if (is_object($societe_vendeuse) && $societe_vendeuse->id == $mysoc->id && $societe_vendeuse->tva_assuj == "0")
{ {
$title=' title="'.$langs->trans('VATIsNotUsed').'"'; $title=' title="'.$langs->trans('VATIsNotUsed').'"';
$disabled=true; $disabled=true;

View File

@ -203,7 +203,7 @@ class FormCompany
* un code donnee mais dans ce cas, le champ pays differe). * un code donnee mais dans ce cas, le champ pays differe).
* Ainsi les liens avec les departements se font sur un departement independemment de son nom. * Ainsi les liens avec les departements se font sur un departement independemment de son nom.
* *
* @param string $selected Code state preselected * @param string $selected Code state preselected (mus be state id)
* @param string $country_codeid Country code or id: 0=list for all countries, otherwise country code or country rowid to show * @param string $country_codeid Country code or id: 0=list for all countries, otherwise country code or country rowid to show
* @param string $htmlname Id of department * @param string $htmlname Id of department
* @return string String with HTML select * @return string String with HTML select
@ -257,7 +257,8 @@ class FormCompany
} }
} }
if ($selected > 0 && $selected == $obj->rowid) if ((! empty($selected) && $selected == $obj->rowid)
|| (empty($selected) && ! empty($conf->global->MAIN_FORCE_DEFAULT_STATE_ID) && $conf->global->MAIN_FORCE_DEFAULT_STATE_ID == $obj->rowid))
{ {
$out.= '<option value="'.$obj->rowid.'" selected="selected">'; $out.= '<option value="'.$obj->rowid.'" selected="selected">';
} }

View File

@ -106,11 +106,12 @@ class Translate
// Array force long code from first part, even if long code is defined // Array force long code from first part, even if long code is defined
$longforshort=array('ar'=>'ar_SA'); $longforshort=array('ar'=>'ar_SA');
if (isset($longforshort[strtolower($langpart[0])])) $srclang=$longforshort[strtolower($langpart[0])]; if (isset($longforshort[strtolower($langpart[0])])) $srclang=$longforshort[strtolower($langpart[0])];
else { else if (! is_numeric($langpart[1])) { // Second part YY may be a numeric with some Chrome browser
$srclang=strtolower($langpart[0])."_".strtoupper($langpart[1]); $srclang=strtolower($langpart[0])."_".strtoupper($langpart[1]);
$longforlong=array('no_nb'=>'nb_NO'); $longforlong=array('no_nb'=>'nb_NO');
if (isset($longforlong[strtolower($srclang)])) $srclang=$longforlong[strtolower($srclang)]; if (isset($longforlong[strtolower($srclang)])) $srclang=$longforlong[strtolower($srclang)];
} }
else $srclang=strtolower($langpart[0])."_".strtoupper($langpart[0]);
} }
else { // If it's for a codetouse that is a short code xx else { // If it's for a codetouse that is a short code xx
// Array to convert short lang code into long code. // Array to convert short lang code into long code.
@ -784,6 +785,16 @@ class Translate
return -1; return -1;
} }
} }
function get_translations_for_substitutions() {
$substitutionarray = array();
foreach($this->tab_translate as $code => $label) {
$substitutionarray['lang_'.$code] = $label;
}
return $substitutionarray;
}
} }
?> ?>

View File

@ -62,7 +62,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'supplier'; $head[$h][2] = 'supplier';
$h++; $h++;
} }
if (($object->localtax1_assuj || $object->localtax2_assuj) && (isset($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL > 0) ) if (($object->localtax1_assuj || $object->localtax2_assuj) && (isset($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL > 0) )
{ {
$head[$h][0] = DOL_URL_ROOT.'/societe/localtaxes.php?socid='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/societe/localtaxes.php?socid='.$object->id;
@ -70,7 +70,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'localtaxes'; $head[$h][2] = 'localtaxes';
$h++; $h++;
} }
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
{ {
$head[$h][0] = DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id; $head[$h][0] = DOL_URL_ROOT.'/societe/agenda.php?socid='.$object->id;
@ -104,7 +104,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'consumption'; $head[$h][2] = 'consumption';
$h++; $h++;
} }
// Notifications // Notifications
if (! empty($conf->notification->enabled)) if (! empty($conf->notification->enabled))
{ {
@ -113,7 +113,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'notify'; $head[$h][2] = 'notify';
$h++; $h++;
} }
// Notes // Notes
$nbNote = 0; $nbNote = 0;
if(!empty($object->note_private)) $nbNote++; if(!empty($object->note_private)) $nbNote++;
@ -287,15 +287,15 @@ function getCountry($searchkey,$withcode='',$dbtouse=0,$outputlangs='',$entconv=
} }
/** /**
* Return state translated from an id * Return state translated from an id. Return value is always utf8 encoded and without entities.
* *
* @param int $id id of state (province/departement) * @param int $id id of state (province/departement)
* @param int $withcode '0'=Return label, * @param int $withcode '0'=Return label,
* '1'=Return string code + label, * '1'=Return string code + label,
* '2'=Return code, * '2'=Return code,
* 'all'=return array('id'=>,'code'=>,'label'=>) * 'all'=return array('id'=>,'code'=>,'label'=>)
* @param DoliDB $dbtouse Database handler (using in global way may fail because of conflicts with some autoload features) * @param DoliDB $dbtouse Database handler (using in global way may fail because of conflicts with some autoload features)
* @return string String with state code or translated state name * @return string String with state code or state name (Return value is always utf8 encoded and without entities)
*/ */
function getState($id,$withcode='',$dbtouse=0) function getState($id,$withcode='',$dbtouse=0)
{ {
@ -617,7 +617,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
if ($obj->statut==0) print '<td>'.$langs->trans('Disabled').' </span>'.img_picto($langs->trans('StatusContactDraftShort'),'statut0').'</td>'; if ($obj->statut==0) print '<td>'.$langs->trans('Disabled').' </span>'.img_picto($langs->trans('StatusContactDraftShort'),'statut0').'</td>';
elseif ($obj->statut==1) print '<td>'.$langs->trans('Enabled').' </span>'.img_picto($langs->trans('StatusContactValidatedShort'),'statut1').'</td>'; elseif ($obj->statut==1) print '<td>'.$langs->trans('Enabled').' </span>'.img_picto($langs->trans('StatusContactValidatedShort'),'statut1').'</td>';
// copy in clipboard // copy in clipboard
$coords = ''; $coords = '';
if (!empty($object->name)) if (!empty($object->name))
@ -667,7 +667,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print '</a></td>'; print '</a></td>';
} }
if ($user->rights->societe->contact->creer) if ($user->rights->societe->contact->creer)
{ {
print '<td align="right">'; print '<td align="right">';
@ -675,9 +675,9 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print img_edit(); print img_edit();
print '</a></td>'; print '</a></td>';
} }
print "</tr>\n"; print "</tr>\n";
$i++; $i++;
} }

View File

@ -2329,7 +2329,7 @@ function print_liste_field_titre($name, $file="", $field="", $begin="", $morepar
* Get title line of an array * Get title line of an array
* *
* @param string $name Label of field * @param string $name Label of field
* @param int $thead For thead format (0 by default) * @param int $thead 0=To use with standard table forat, 1=To use inside <thead><tr>, 2=To use with <div>
* @param string $file Url used when we click on sort picto * @param string $file Url used when we click on sort picto
* @param string $field Field to use for new sorting. Empty if this field is not sortable. * @param string $field Field to use for new sorting. Empty if this field is not sortable.
* @param string $begin ("" by defaut) * @param string $begin ("" by defaut)
@ -2347,10 +2347,13 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
$sortorder=strtoupper($sortorder); $sortorder=strtoupper($sortorder);
$out=''; $out='';
$tag='th';
if ($thead==2) $tag='div';
// If field is used as sort criteria we use a specific class // If field is used as sort criteria we use a specific class
// Example if (sortfield,field)=("nom","xxx.nom") or (sortfield,field)=("nom","nom") // Example if (sortfield,field)=("nom","xxx.nom") or (sortfield,field)=("nom","nom")
if ($field && ($sortfield == $field || $sortfield == preg_replace("/^[^\.]+\./","",$field))) $out.= '<th class="liste_titre_sel" '. $moreattrib.'>'; if ($field && ($sortfield == $field || $sortfield == preg_replace("/^[^\.]+\./","",$field))) $out.= '<'.$tag.' class="liste_titre_sel" '. $moreattrib.'>';
else $out.= '<th class="liste_titre" '. $moreattrib.'>'; else $out.= '<'.$tag.' class="liste_titre" '. $moreattrib.'>';
if (! empty($conf->dol_optimize_smallscreen) && empty($thead) && $field) // If this is a sort field if (! empty($conf->dol_optimize_smallscreen) && empty($thead) && $field) // If this is a sort field
{ {
@ -2397,7 +2400,7 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
} }
} }
} }
$out.='</th>'; $out.='</'.$tag.'>';
return $out; return $out;
} }

View File

@ -54,14 +54,16 @@ function dol_json_encode($elements)
//var_dump($num); //var_dump($num);
// determine type // determine type
if (is_numeric(key($elements))) if (is_numeric(key($elements)) && key($elements) == 0)
{ {
// indexed (list) // indexed (list)
$keysofelements=array_keys($elements); // Elements array mus have key that does not start with 0 and end with num-1, so we will use this later.
$output = '['; $output = '[';
for ($i = 0, $last = ($num - 1); isset($elements[$i]); ++$i) for ($i = 0, $last = ($num - 1); $i < $num; $i++)
{ {
if (is_array($elements[$i]) || is_object($elements[$i])) $output.= json_encode($elements[$i]); if (! isset($elements[$keysofelements[$i]])) continue;
else $output .= _val($elements[$i]); if (is_array($elements[$keysofelements[$i]]) || is_object($elements[$keysofelements[$i]])) $output.= json_encode($elements[$keysofelements[$i]]);
else $output .= _val($elements[$keysofelements[$i]]);
if ($i !== $last) $output.= ','; if ($i !== $last) $output.= ',';
} }
$output.= ']'; $output.= ']';

View File

@ -34,9 +34,10 @@
* @param date $builddate Date generation * @param date $builddate Date generation
* @param string $exportlink Link for export or '' * @param string $exportlink Link for export or ''
* @param array $moreparam Array with list of params to add into form * @param array $moreparam Array with list of params to add into form
* @param string $calcmode Calculation mode
* @return void * @return void
*/ */
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array()) function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
{ {
global $langs, $hselected; global $langs, $hselected;
@ -59,13 +60,26 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
// Ligne de titre // Ligne de titre
print '<tr>'; print '<tr>';
print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>'; print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
if (! $variante) print '<td colspan="3">'; if (! $variantexxx) print '<td colspan="3">';
else print '<td>'; else print '<td>';
print $nom; print $nom;
if ($variante) print '</td><td colspan="2">'.$variante; if ($variantexxx) print '</td><td colspan="2">'.$variantexxx;
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Calculation mode
if ($calcmode)
{
print '<tr>';
print '<td valign="top" width="110">'.$langs->trans("CalculationMode").'</td>';
if (! $variante) print '<td colspan="3">';
else print '<td>';
print $calcmode;
if ($variante) print '</td><td colspan="2">'.$variante;
print '</td>';
print '</tr>';
}
// Ligne de la periode d'analyse du rapport // Ligne de la periode d'analyse du rapport
print '<tr>'; print '<tr>';
print '<td>'.$langs->trans("ReportPeriod").'</td>'; print '<td>'.$langs->trans("ReportPeriod").'</td>';

View File

@ -515,22 +515,7 @@ function quotedPrintEncode($str,$forcal=0)
function quotedPrintDecode($str) function quotedPrintDecode($str)
{ {
$out = preg_replace('/=\r?\n/', '', $str); $out = preg_replace('/=\r?\n/', '', $str);
/* $out = quoted_printable_decode($out); // Available with PHP 4+
* preg_replace /e modifier is deprecated in PHP 5.5
* but anonymous functions for use in preg_replace_callback are only available from 5.3.0
*/
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$out = preg_replace_callback(
'/=([A-F0-9]{2})/',
function ($m) {
return chr(hexdec($m[1]));
},
$out
);
} else {
$out = preg_replace('/=([A-F0-9]{2})/e', chr(hexdec('\\1')), $out);
}
return trim($out); return trim($out);
} }

View File

@ -102,6 +102,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/liste.php', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3102__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/liste.php', 'List', 1, 'stocks', '$user->rights->stock->lire', '', 2, 1, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3103__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/valo.php', 'EnhancedValue', 1, 'stocks', '$user->rights->stock->lire', '', 2, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3103__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/valo.php', 'EnhancedValue', 1, 'stocks', '$user->rights->stock->lire', '', 2, 2, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3104__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/mouvement.php', 'Movements', 1, 'stocks', '$user->rights->stock->mouvement->lire', '', 2, 3, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled', __HANDLER__, 'left', 3104__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/mouvement.php', 'Movements', 1, 'stocks', '$user->rights->stock->mouvement->lire', '', 2, 3, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 3105__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/replenish.php', 'Replenishments', 1, 'stocks', '$user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire', '', 2, 4, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->stock->enabled && $conf->fournisseur->enabled', __HANDLER__, 'left', 3106__+MAX_llx_menu__, 'products', '', 3100__+MAX_llx_menu__, '/product/stock/massstockmove.php', 'StockTransfer', 1, 'stocks', '$user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire', '', 2, 5, __ENTITY__);
-- Product - Categories -- Product - Categories
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3200__+MAX_llx_menu__, 'products', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=0', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3200__+MAX_llx_menu__, 'products', 'cat', 3__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=0', 'Categories', 0, 'categories', '$user->rights->categorie->lire', '', 2, 4, __ENTITY__);
insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3201__+MAX_llx_menu__, 'products', '', 3200__+MAX_llx_menu__, '/categories/fiche.php?action=create&amp;type=0', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->categorie->enabled', __HANDLER__, 'left', 3201__+MAX_llx_menu__, 'products', '', 3200__+MAX_llx_menu__, '/categories/fiche.php?action=create&amp;type=0', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);

View File

@ -187,14 +187,14 @@ class MenuManager
foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{ {
print '<ul class="ulmenu" data-role="listview" data-inset="true">'; print '<ul class="ulmenu" data-role="listview" data-inset="true">';
print '<li data-role="list-divider">'; print '<li data-role="list-dividerxxx" class="lilevel0">';
if ($val['enabled'] == 1) if ($val['enabled'] == 1)
{ {
$relurl=dol_buildpath($val['url'],1); $relurl=dol_buildpath($val['url'],1);
$relurl=preg_replace('/__LOGIN__/',$user->login,$relurl); $relurl=preg_replace('/__LOGIN__/',$user->login,$relurl);
$relurl=preg_replace('/__USERID__/',$user->id,$relurl); $relurl=preg_replace('/__USERID__/',$user->id,$relurl);
print '<a href="#">'.$val['titre'].'</a>'."\n"; print '<a class="alilevel0" href="#">'.$val['titre'].'</a>'."\n";
// Search submenu fot this entry // Search submenu fot this entry
$tmpmainmenu=$val['mainmenu']; $tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all'; $tmpleftmenu='all';
@ -211,7 +211,7 @@ class MenuManager
|| (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false)) || (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false))
{ {
// We add sub entry // We add sub entry
print str_pad('',1).'<li data-role="list-divider" class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic print str_pad('',1).'<li data-role="list-dividerxxx" class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic
print '<a href="'.$relurl.'">'; print '<a href="'.$relurl.'">';
print str_pad('',12,'&nbsp;'); print str_pad('',12,'&nbsp;');
if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") print $langs->trans("Access"); // No translation if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") print $langs->trans("Access"); // No translation
@ -227,7 +227,7 @@ class MenuManager
$canonurl2=preg_replace('/\?.*$/','',$val2['url']); $canonurl2=preg_replace('/\?.*$/','',$val2['url']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2=''; if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2='';
if ($val2['level']==0) print str_pad('',$val2['level']+1).'<li'.($val2['level']==0?' data-role="list-divider"':'').' class="lilevel'.($val2['level']+1).' ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic if ($val2['level']==0) print str_pad('',$val2['level']+1).'<li'.($val2['level']==0?' data-role="list-dividerxxx"':'').' class="lilevel'.($val2['level']+1).' ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic
else print str_pad('',$val2['level']+1).'<li class="lilevel'.($val2['level']+1).'">'; // ui-btn to highlight on clic else print str_pad('',$val2['level']+1).'<li class="lilevel'.($val2['level']+1).'">'; // ui-btn to highlight on clic
if ($relurl2) print '<a href="'.$relurl2.'">'; if ($relurl2) print '<a href="'.$relurl2.'">';
print str_pad('',($val2['level']+1)*12,'&nbsp;'); print str_pad('',($val2['level']+1)*12,'&nbsp;');

View File

@ -565,7 +565,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
/* /*
* Menu TIERS * Menu THIRDPARTIES
*/ */
if ($mainmenu == 'companies') if ($mainmenu == 'companies')
{ {
@ -598,7 +598,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
//$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire); //$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
} }
// Clients // Customers/Prospects
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
{ {
$langs->load("commercial"); $langs->load("commercial");
@ -608,7 +608,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
//$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire); //$newmenu->add("/contact/list.php?leftmenu=customers&amp;type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire);
} }
// Fournisseurs // Suppliers
if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled)) if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled))
{ {
$langs->load("suppliers"); $langs->load("suppliers");
@ -1007,7 +1007,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/liste.php", $langs->trans("List"), 1, $user->rights->stock->lire); if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/liste.php", $langs->trans("List"), 1, $user->rights->stock->lire);
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/valo.php", $langs->trans("EnhancedValue"), 1, $user->rights->stock->lire); if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/valo.php", $langs->trans("EnhancedValue"), 1, $user->rights->stock->lire);
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/mouvement.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire); if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/mouvement.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire);
if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->lire); if ($conf->fournisseur->enabled) if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire);
if ($conf->fournisseur->enabled) if (empty($leftmenu) || $leftmenu=="stock") $newmenu->add("/product/stock/massstockmove.php", $langs->trans("StockTransfer"), 1, $user->rights->stock->mouvement->lire && $user->rights->fournisseur->lire);
} }
// Expeditions // Expeditions

View File

@ -141,14 +141,14 @@ class MenuManager
foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{ {
print '<ul class="ulmenu" data-role="listview" data-inset="true">'; print '<ul class="ulmenu" data-role="listview" data-inset="true">';
print '<li data-role="list-divider">'; print '<li data-role="list-dividerxxx" class="lilevel0">';
if ($val['enabled'] == 1) if ($val['enabled'] == 1)
{ {
$relurl=dol_buildpath($val['url'],1); $relurl=dol_buildpath($val['url'],1);
$relurl=preg_replace('/__LOGIN__/',$user->login,$relurl); $relurl=preg_replace('/__LOGIN__/',$user->login,$relurl);
$relurl=preg_replace('/__USERID__/',$user->id,$relurl); $relurl=preg_replace('/__USERID__/',$user->id,$relurl);
print '<a href="#">'.$val['titre'].'</a>'."\n"; print '<a class="alilevel0" href="#">'.$val['titre'].'</a>'."\n";
// Search submenu fot this entry // Search submenu fot this entry
$tmpmainmenu=$val['mainmenu']; $tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all'; $tmpleftmenu='all';
@ -165,7 +165,7 @@ class MenuManager
|| (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false)) || (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false))
{ {
// We add sub entry // We add sub entry
print str_pad('',1).'<li data-role="list-divider" class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic print str_pad('',1).'<li data-role="list-dividerxxx" class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic
print '<a href="'.$relurl.'"'; print '<a href="'.$relurl.'"';
//print ' data-ajax="false"'; //print ' data-ajax="false"';
print '>'; print '>';
@ -183,7 +183,7 @@ class MenuManager
$canonurl2=preg_replace('/\?.*$/','',$val2['url']); $canonurl2=preg_replace('/\?.*$/','',$val2['url']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2=''; if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php','/core/tools.php'))) $relurl2='';
if ($val2['level']==0) print str_pad('',$val2['level']+1).'<li'.($val2['level']==0?' data-role="list-divider"':'').' class="lilevel'.($val2['level']+1).' ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic if ($val2['level']==0) print str_pad('',$val2['level']+1).'<li'.($val2['level']==0?' data-role="list-dividerxxx"':'').' class="lilevel'.($val2['level']+1).' ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic
else print str_pad('',$val2['level']+1).'<li class="lilevel'.($val2['level']+1).'">'; // ui-btn to highlight on clic else print str_pad('',$val2['level']+1).'<li class="lilevel'.($val2['level']+1).'">'; // ui-btn to highlight on clic
if ($relurl2) if ($relurl2)
{ {

View File

@ -203,7 +203,7 @@ class MenuManager
foreach($this->topmenu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' foreach($this->topmenu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{ {
print '<ul class="ulmenu" data-role="listview" data-inset="true">'; print '<ul class="ulmenu" data-role="listview" data-inset="true">';
print '<li data-role="list-divider">'; print '<li data-role="list-dividerxxx" class="lilevel0">';
if ($val['enabled'] == 1) if ($val['enabled'] == 1)
{ {
$relurl=dol_buildpath($val['url'],1); $relurl=dol_buildpath($val['url'],1);
@ -227,7 +227,7 @@ class MenuManager
if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools'))) if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools')))
{ {
// We add sub entry // We add sub entry
print '<li data-role="list-divider"><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n"; print '<li data-role="list-dividerxxx"><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n";
} }
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{ {
@ -235,7 +235,7 @@ class MenuManager
$relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2); $relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2);
$relurl2=preg_replace('/__USERID__/',$user->id,$relurl2); $relurl2=preg_replace('/__USERID__/',$user->id,$relurl2);
//var_dump($val2); //var_dump($val2);
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n"; print '<li'.($val2['level']==0?' data-role="list-dividerxxx"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n";
} }
//var_dump($submenu); //var_dump($submenu);
print '</ul>'; print '</ul>';

View File

@ -74,7 +74,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
$this->option_modereg = 0; // Affiche mode reglement $this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement $this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service $this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 0; // Dispo en plusieurs langues $this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte $this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes $this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text $this->option_freetext = 1; // Support add of a personalised text
@ -392,15 +392,22 @@ class doc_generic_order_odt extends ModelePDFCommandes
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->commande->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->commande->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -535,6 +542,18 @@ class doc_generic_order_odt extends ModelePDFCommandes
return -1; return -1;
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks

View File

@ -74,7 +74,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
$this->option_modereg = 0; // Affiche mode reglement $this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement $this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service $this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 0; // Dispo en plusieurs langues $this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte $this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes $this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text $this->option_freetext = 1; // Support add of a personalised text
@ -127,7 +127,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
'object_total_localtax2'=>price2num($object->total_localtax2), 'object_total_localtax2'=>price2num($object->total_localtax2),
'object_total_ttc'=>price2num($object->total_ttc), 'object_total_ttc'=>price2num($object->total_ttc),
'object_total_discount_ht' => price2num($object->getTotalDiscount()), 'object_total_discount_ht' => price2num($object->getTotalDiscount()),
'object_vatrate'=>vatrate($object->tva), 'object_vatrate'=>vatrate($object->tva),
'object_note_private'=>$object->note, 'object_note_private'=>$object->note,
'object_note'=>$object->note_public, 'object_note'=>$object->note_public,
@ -392,15 +392,22 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->expedition->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->expedition->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -535,6 +542,18 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
return -1; return -1;
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks

View File

@ -524,14 +524,14 @@ class pdf_merou extends ModelePdfExpedition
if ($object->client->code_client) if ($object->client->code_client)
{ {
$Yoff+=7; $Yoff+=3;
$posy=$Yoff; $posy=$Yoff;
$pdf->SetXY(100,$posy); $pdf->SetXY(100,$posy);
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,0);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->client->code_client), '', 'R'); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->client->code_client), '', 'R');
} }
//Date Expedition // Date Expedition
$Yoff = $Yoff+7; $Yoff = $Yoff+7;
$pdf->SetXY($blSocX-80,$blSocY+20); $pdf->SetXY($blSocX-80,$blSocY+20);
$pdf->SetFont('','B', $default_font_size - 2); $pdf->SetFont('','B', $default_font_size - 2);

View File

@ -74,7 +74,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
$this->option_modereg = 0; // Affiche mode reglement $this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement $this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service $this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 0; // Dispo en plusieurs langues $this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte $this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes $this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text $this->option_freetext = 1; // Support add of a personalised text
@ -423,15 +423,22 @@ class doc_generic_invoice_odt extends ModelePDFFactures
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->facture->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->facture->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -515,6 +522,18 @@ class doc_generic_invoice_odt extends ModelePDFFactures
return -1; return -1;
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks

View File

@ -90,7 +90,7 @@ class doc_generic_project_odt extends ModelePDFProjects
$this->option_modereg = 0; // Affiche mode reglement $this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement $this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service $this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 0; // Dispo en plusieurs langues $this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte $this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes $this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text $this->option_freetext = 1; // Support add of a personalised text
@ -392,7 +392,7 @@ class doc_generic_project_odt extends ModelePDFProjects
} }
$hookmanager->initHooks(array('odtgeneration')); $hookmanager->initHooks(array('odtgeneration'));
global $action; global $action;
if (! is_object($outputlangs)) $outputlangs=$langs; if (! is_object($outputlangs)) $outputlangs=$langs;
$sav_charset_output=$outputlangs->charset_output; $sav_charset_output=$outputlangs->charset_output;
$outputlangs->charset_output='UTF-8'; $outputlangs->charset_output='UTF-8';
@ -469,15 +469,22 @@ class doc_generic_project_odt extends ModelePDFProjects
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->projet->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->projet->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -586,7 +593,7 @@ class doc_generic_project_odt extends ModelePDFProjects
if (!empty($object->fk_soc)) $socid = $object->fk_soc; if (!empty($object->fk_soc)) $socid = $object->fk_soc;
$tasksarray=$taskstatic->getTasksArray(0, 0, $object->id, $socid, 0); $tasksarray=$taskstatic->getTasksArray(0, 0, $object->id, $socid, 0);
foreach ($tasksarray as $task) foreach ($tasksarray as $task)
{ {
@ -910,14 +917,14 @@ class doc_generic_project_odt extends ModelePDFProjects
{ {
$ref_array=array(); $ref_array=array();
$ref_array['type']=$langs->trans($classname); $ref_array['type']=$langs->trans($classname);
$element = new $classname($this->db); $element = new $classname($this->db);
$element->fetch($elementarray[$i]); $element->fetch($elementarray[$i]);
$element->fetch_thirdparty(); $element->fetch_thirdparty();
//Ref object //Ref object
$ref_array['ref']=$element->ref; $ref_array['ref']=$element->ref;
//Date object //Date object
$dateref=$element->date; $dateref=$element->date;
if (empty($dateref)) $dateref=$element->datep; if (empty($dateref)) $dateref=$element->datep;
@ -977,6 +984,18 @@ class doc_generic_project_odt extends ModelePDFProjects
return -1; return -1;
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
@ -998,7 +1017,7 @@ class doc_generic_project_odt extends ModelePDFProjects
$this->error=$e->getMessage(); $this->error=$e->getMessage();
return -1; return -1;
} }
} }
if (! empty($conf->global->MAIN_UMASK)) if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK)); @chmod($file, octdec($conf->global->MAIN_UMASK));

View File

@ -425,7 +425,7 @@ class doc_generic_task_odt extends ModelePDFTask
return -1; return -1;
} }
} }
if (file_exists($dir)) if (file_exists($dir))
{ {
@ -455,15 +455,22 @@ class doc_generic_task_odt extends ModelePDFTask
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->projet->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->projet->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -677,7 +684,7 @@ class doc_generic_task_odt extends ModelePDFTask
$i++; $i++;
} }
$this->db->free($resql); $this->db->free($resql);
$odfHandler->mergeSegment($listlinestasktime); $odfHandler->mergeSegment($listlinestasktime);
} }
@ -711,7 +718,7 @@ class doc_generic_task_odt extends ModelePDFTask
//$listlines->merge(); //$listlines->merge();
$odfHandler->mergeSegment($listtasksfiles); $odfHandler->mergeSegment($listtasksfiles);
} }
catch(OdfException $e) catch(OdfException $e)
{ {
@ -793,7 +800,7 @@ class doc_generic_task_odt extends ModelePDFTask
$contact['fullname']=$objectdetail->getFullName($outputlangs,1); $contact['fullname']=$objectdetail->getFullName($outputlangs,1);
$tmparray=$this->get_substitutionarray_project_contacts($contact,$outputlangs); $tmparray=$this->get_substitutionarray_project_contacts($contact,$outputlangs);
foreach($tmparray as $key => $val) foreach($tmparray as $key => $val)
{ {
try try

View File

@ -74,7 +74,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$this->option_modereg = 0; // Affiche mode reglement $this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement $this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service $this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 0; // Dispo en plusieurs langues $this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte $this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes $this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text $this->option_freetext = 1; // Support add of a personalised text
@ -278,9 +278,9 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$newfiletmp=preg_replace('/\.od(t|s)/i','',$newfile); $newfiletmp=preg_replace('/\.od(t|s)/i','',$newfile);
$newfiletmp=preg_replace('/template_/i','',$newfiletmp); $newfiletmp=preg_replace('/template_/i','',$newfiletmp);
$newfiletmp=preg_replace('/modele_/i','',$newfiletmp); $newfiletmp=preg_replace('/modele_/i','',$newfiletmp);
$newfiletmp=$objectref.'_'.$newfiletmp; $newfiletmp=$objectref.'_'.$newfiletmp;
// Get extension (ods or odt) // Get extension (ods or odt)
$newfileformat=substr($newfile, strrpos($newfile, '.')+1); $newfileformat=substr($newfile, strrpos($newfile, '.')+1);
if ( ! empty($conf->global->MAIN_DOC_USE_TIMING)) if ( ! empty($conf->global->MAIN_DOC_USE_TIMING))
@ -344,15 +344,22 @@ class doc_generic_proposal_odt extends ModelePDFPropales
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->propal->dir_temp, array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->propal->dir_temp,
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and // After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by // [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --] // [!-- BEGIN lines --]*[!-- END lines --]
@ -488,6 +495,18 @@ class doc_generic_proposal_odt extends ModelePDFPropales
return -1; return -1;
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
@ -508,7 +527,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$this->error=$e->getMessage(); $this->error=$e->getMessage();
return -1; return -1;
} }
} }
if (! empty($conf->global->MAIN_UMASK)) if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK)); @chmod($file, octdec($conf->global->MAIN_UMASK));

View File

@ -315,7 +315,7 @@ class pdf_azur extends ModelePDFPropales
$posYAfterDescription=0; $posYAfterDescription=0;
// We start with Photo of product line // We start with Photo of product line
if (($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot))) // If photo to high, we moved completely on new page if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot))) // If photo too high, we moved completely on new page
{ {
$pdf->AddPage('','',true); $pdf->AddPage('','',true);
if (! empty($tplidx)) $pdf->useTemplate($tplidx); if (! empty($tplidx)) $pdf->useTemplate($tplidx);

View File

@ -236,16 +236,22 @@ class doc_generic_odt extends ModeleThirdPartyDoc
// Open and load template // Open and load template
require_once ODTPHP_PATH.'odf.php'; require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf( try {
$srctemplatepath, $odfHandler = new odf(
array( $srctemplatepath,
'PATH_TO_TMP' => $conf->societe->multidir_temp[$object->entity], array(
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy. 'PATH_TO_TMP' => $conf->societe->multidir_temp[$object->entity],
'DELIMITER_LEFT' => '{', 'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_RIGHT' => '}' 'DELIMITER_LEFT' => '{',
) 'DELIMITER_RIGHT' => '}'
); )
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
//print $odfHandler->__toString()."\n"; //print $odfHandler->__toString()."\n";
// Make substitutions into odt of user info // Make substitutions into odt of user info
@ -319,6 +325,18 @@ class doc_generic_odt extends ModeleThirdPartyDoc
} }
} }
// Replace labels translated
$tmparray=$outputlangs->get_translations_for_substitutions();
foreach($tmparray as $key=>$value)
{
try {
$odfHandler->setVars($key, $value, true, 'UTF-8');
}
catch(OdfException $e)
{
}
}
// Call the beforeODTSave hook // Call the beforeODTSave hook
$parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs); $parameters=array('odfHandler'=>&$odfHandler,'file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs);
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks $reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
@ -339,7 +357,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
$this->error=$e->getMessage(); $this->error=$e->getMessage();
return -1; return -1;
} }
} }
if (! empty($conf->global->MAIN_UMASK)) if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK)); @chmod($file, octdec($conf->global->MAIN_UMASK));

View File

@ -16,6 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
* Javascript code to activate drag and drop on lines * Javascript code to activate drag and drop on lines
* You can use this if you want to be abale to drag and drop rows of a table.
* You must add id="tablelines" ont table level tag and have count($object->lines) or count($taskarray) > 0
*/ */
?> ?>
@ -26,6 +28,7 @@ $fk_element=$object->fk_element;
$table_element_line=$object->table_element_line; $table_element_line=$object->table_element_line;
$nboflines=(isset($object->lines)?count($object->lines):(isset($tasksarray)?count($tasksarray):0)); $nboflines=(isset($object->lines)?count($object->lines):(isset($tasksarray)?count($tasksarray):0));
$forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1; $forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
$tagidfortablednd=(empty($tagidfortablednd)?'tablelines':$tagidfortablednd);
if (GETPOST('action') != 'editline' && $nboflines > 1) { ?> if (GETPOST('action') != 'editline' && $nboflines > 1) { ?>
<script type="text/javascript"> <script type="text/javascript">
@ -37,10 +40,10 @@ $(document).ready(function(){
$(".tdlineupdown").css("background-repeat","no-repeat"); $(".tdlineupdown").css("background-repeat","no-repeat");
$(".tdlineupdown").css("background-position","center center"); $(".tdlineupdown").css("background-position","center center");
$("#tablelines").tableDnD({ $("#<?php echo $tagidfortablednd; ?>").tableDnD({
onDrop: function(table, row) { onDrop: function(table, row) {
var reloadpage = "<?php echo $forcereloadpage; ?>"; var reloadpage = "<?php echo $forcereloadpage; ?>";
var roworder = cleanSerialize($("#tablelines").tableDnDSerialize()); var roworder = cleanSerialize($("#<?php echo $tagidfortablednd; ?>").tableDnDSerialize());
var table_element_line = "<?php echo $table_element_line; ?>"; var table_element_line = "<?php echo $table_element_line; ?>";
var fk_element = "<?php echo $fk_element; ?>"; var fk_element = "<?php echo $fk_element; ?>";
var element_id = "<?php echo $id; ?>"; var element_id = "<?php echo $id; ?>";
@ -55,7 +58,7 @@ $(document).ready(function(){
if (reloadpage == 1) { if (reloadpage == 1) {
location.href = '<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>'; location.href = '<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>';
} else { } else {
$("#tablelines .drag").each( $("#<?php echo $tagidfortablednd; ?> .drag").each(
function( intIndex ) { function( intIndex ) {
$(this).removeClass("pair impair"); $(this).removeClass("pair impair");
if (intIndex % 2 == 0) $(this).addClass('impair'); if (intIndex % 2 == 0) $(this).addClass('impair');

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com> /* Copyright (C) 2010-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2010-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr> * Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro> * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
@ -65,7 +65,7 @@
{ {
if ($line->fk_product > 0) { if ($line->fk_product > 0) {
echo $form->textwithtooltip($text,$description,3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); echo $form->textwithtooltip($text,$description,3,'','',$i,0,(!empty($line->fk_parent_line)?img_picto('', 'rightarrow'):''));
// Show range // Show range
echo get_date_range($line->date_start, $line->date_end); echo get_date_range($line->date_start, $line->date_end);
@ -78,14 +78,14 @@
} else { } else {
if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow');
if ($type==1) $text = img_object($langs->trans('Service'),'service'); if ($type==1) $text = img_object($langs->trans('Service'),'service');
else $text = img_object($langs->trans('Product'),'product'); else $text = img_object($langs->trans('Product'),'product');
if (! empty($line->label)) { if (! empty($line->label)) {
$text.= ' <strong>'.$line->label.'</strong>'; $text.= ' <strong>'.$line->label.'</strong>';
echo $form->textwithtooltip($text,dol_htmlentitiesbr($line->description),3,'','',$i,0,($line->fk_parent_line?img_picto('', 'rightarrow'):'')); echo $form->textwithtooltip($text,dol_htmlentitiesbr($line->description),3,'','',$i,0,(!empty($line->fk_parent_line)?img_picto('', 'rightarrow'):''));
} else { } else {
if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow');
echo $text.' '.dol_htmlentitiesbr($line->description); echo $text.' '.dol_htmlentitiesbr($line->description);
} }

View File

@ -51,9 +51,9 @@ $langs->load('propal');
$origin = GETPOST('origin','alpha')?GETPOST('origin','alpha'):'expedition'; // Example: commande, propal $origin = GETPOST('origin','alpha')?GETPOST('origin','alpha'):'expedition'; // Example: commande, propal
$origin_id = GETPOST('id','int')?GETPOST('id','int'):''; $origin_id = GETPOST('id','int')?GETPOST('id','int'):'';
$id = $origin_id;
if (empty($origin_id)) $origin_id = GETPOST('origin_id','int'); // Id of order or propal if (empty($origin_id)) $origin_id = GETPOST('origin_id','int'); // Id of order or propal
if (empty($origin_id)) $origin_id = GETPOST('object_id','int'); // Id of order or propal if (empty($origin_id)) $origin_id = GETPOST('object_id','int'); // Id of order or propal
$id = $origin_id;
$ref=GETPOST('ref','alpha'); $ref=GETPOST('ref','alpha');
// Security check // Security check
@ -70,11 +70,6 @@ $hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty(
$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0)); $hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
$object = new Expedition($db); $object = new Expedition($db);
// Load object
if ($id > 0 || ! empty($ref))
{
$ret=$object->fetch($id, $ref);
}
// Load object // Load object
if ($id > 0 || ! empty($ref)) if ($id > 0 || ! empty($ref))
@ -95,8 +90,6 @@ if ($action == 'add')
{ {
$error=0; $error=0;
$object = new Expedition($db);
$db->begin(); $db->begin();
$object->note = GETPOST('note','alpha'); $object->note = GETPOST('note','alpha');
@ -898,7 +891,7 @@ if ($action == 'create')
} }
} }
} }
else else if ($id || $ref)
/* *************************************************************************** */ /* *************************************************************************** */
/* */ /* */
/* Edit and view mode */ /* Edit and view mode */

View File

@ -145,30 +145,33 @@ if (empty($dolibarr_main_data_root))
define('DOL_CLASS_PATH', 'class/'); // Filesystem path to class dir (defined only for some code that want to be compatible with old versions without this parameter) define('DOL_CLASS_PATH', 'class/'); // Filesystem path to class dir (defined only for some code that want to be compatible with old versions without this parameter)
define('DOL_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents) define('DOL_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents)
define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); // Filesystem core php (htdocs) define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); // Filesystem core php (htdocs)
// Try to autodetec DOL_MAIN_URL_ROOT and DOL_URL_ROOT. // Try to autodetect DOL_MAIN_URL_ROOT and DOL_URL_ROOT.
// Note: autodetect works only in case 1, 2, 3 and 4 of phpunit test CoreTest.php. For case 5, 6, only setting value into conf.php will works. // Note: autodetect works only in case 1, 2, 3 and 4 of phpunit test CoreTest.php. For case 5, 6, only setting value into conf.php will works.
$tmp=''; $tmp='';
$found=0; $found=0;
$real_dolibarr_main_document_root=str_replace('\\','/',realpath($dolibarr_main_document_root)); // A) Value found into config file, to say where are store htdocs files. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs $real_dolibarr_main_document_root=str_replace('\\','/',realpath($dolibarr_main_document_root)); // A) Value found into config file, to say where are store htdocs files. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
$pathroot=$_SERVER["DOCUMENT_ROOT"]; // B) Value reported by web server setup, to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs $pathroot=$_SERVER["DOCUMENT_ROOT"]; // B) Value reported by web server setup, to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
$paths=explode('/',str_replace('\\','/',$_SERVER["SCRIPT_NAME"])); // C) Value reported by web server, to say full path on filesystem of a file. Ex: /dolibarr/htdocs/admin/system/phpinfo.php $paths=explode('/',str_replace('\\','/',$_SERVER["SCRIPT_NAME"])); // C) Value reported by web server, to say full path on filesystem of a file. Ex: /dolibarr/htdocs/admin/system/phpinfo.php
// Try to detect if $_SERVER["DOCUMENT_ROOT"]+start of $_SERVER["SCRIPT_NAME"] is $dolibarr_main_document_root. If yes, relative url to add before dol files is this start part.
$concatpath=''; $concatpath='';
foreach($paths as $tmppath) // We check to find (B+start of C)=A foreach($paths as $tmppath) // We check to find (B+start of C)=A
{ {
if ($tmppath) $concatpath.='/'.$tmppath; if (empty($tmppath)) continue;
$concatpath.='/'.$tmppath;
//if ($tmppath) $concatpath.='/'.$tmppath;
//print $_SERVER["SCRIPT_NAME"].'-'.$pathroot.'-'.$concatpath.'-'.$real_dolibarr_main_document_root.'-'.realpath($pathroot.$concatpath).'<br>'; //print $_SERVER["SCRIPT_NAME"].'-'.$pathroot.'-'.$concatpath.'-'.$real_dolibarr_main_document_root.'-'.realpath($pathroot.$concatpath).'<br>';
if ($real_dolibarr_main_document_root == @realpath($pathroot.$concatpath)) // @ avoid warning when safe_mode is on. if ($real_dolibarr_main_document_root == @realpath($pathroot.$concatpath)) // @ avoid warning when safe_mode is on.
{ {
$tmp3=$concatpath; //print "Found relative url = ".$concatpath;
//print "Found relative url = ".$tmp3; $tmp3=$concatpath;
$found=1; $found=1;
break; break;
} }
//else print "Not found yet for concatpath=".$concatpath."<br>\n"; //else print "Not found yet for concatpath=".$concatpath."<br>\n";
} }
if (! $found) $tmp=$dolibarr_main_url_root; // If autodetect fails (Ie: when using apache alias that point outside default DOCUMENT_ROOT. if (! $found) $tmp=$dolibarr_main_url_root; // If autodetect fails (Ie: when using apache alias that point outside default DOCUMENT_ROOT).
else $tmp='http'.(((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') && (empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]!=443))?'':'s').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]==80||$_SERVER["SERVER_PORT"]==443)?'':':'.$_SERVER["SERVER_PORT"]).($tmp3?(preg_match('/^\//',$tmp3)?'':'/').$tmp3:''); else $tmp='http'.(((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') && (empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]!=443))?'':'s').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]==80||$_SERVER["SERVER_PORT"]==443)?'':':'.$_SERVER["SERVER_PORT"]).($tmp3?(preg_match('/^\//',$tmp3)?'':'/').$tmp3:'');
//print "tmp1=".$tmp1." tmp2=".$tmp2." tmp3=".$tmp3." tmp=".$tmp; //print "tmp1=".$tmp1." tmp2=".$tmp2." tmp3=".$tmp3." tmp=".$tmp."\n";
if (! empty($dolibarr_main_force_https)) $tmp=preg_replace('/^http:/i','https:',$tmp); if (! empty($dolibarr_main_force_https)) $tmp=preg_replace('/^http:/i','https:',$tmp);
define('DOL_MAIN_URL_ROOT', $tmp); // URL absolute root (https://sss/dolibarr, ...) define('DOL_MAIN_URL_ROOT', $tmp); // URL absolute root (https://sss/dolibarr, ...)
$uri=preg_replace('/^http(s?):\/\//i','',constant('DOL_MAIN_URL_ROOT')); // $uri contains url without http* $uri=preg_replace('/^http(s?):\/\//i','',constant('DOL_MAIN_URL_ROOT')); // $uri contains url without http*
@ -176,7 +179,7 @@ $suburi = strstr($uri, '/'); // $suburi contains url without domain:p
if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now '' if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now ''
define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...) define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...)
//print DOL_URL_ROOT; //print DOL_MAIN_URL_ROOT.'-'.DOL_URL_ROOT."\n";
// Define prefix MAIN_DB_PREFIX // Define prefix MAIN_DB_PREFIX
define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix); define('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);

View File

@ -636,7 +636,7 @@ class FactureFournisseur extends CommonInvoice
else { else {
$error++; $error++;
} }
if (! $error) if (! $error)
{ {
// Delete linked object // Delete linked object
@ -1153,6 +1153,7 @@ class FactureFournisseur extends CommonInvoice
if ($type < 0) return -1; if ($type < 0) return -1;
// Clean parameters // Clean parameters
if (empty($vatrate)) $vatrate=0;
if (empty($txlocaltax1)) $txlocaltax1=0; if (empty($txlocaltax1)) $txlocaltax1=0;
if (empty($txlocaltax2)) $txlocaltax2=0; if (empty($txlocaltax2)) $txlocaltax2=0;
@ -1163,9 +1164,9 @@ class FactureFournisseur extends CommonInvoice
// qty, pu, remise_percent et txtva // qty, pu, remise_percent et txtva
// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
$localtaxes_type=getLocalTaxesFromRate($vatrate,0,$this->thirdparty); $localtaxes_type=getLocalTaxesFromRate($vatrate,0,$this->thirdparty);
$tabprice = calcul_price_total($qty, $pu, $remise_percent, $vatrate, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty,$localtaxes_type); $tabprice = calcul_price_total($qty, $pu, $remise_percent, $vatrate, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty,$localtaxes_type);
$total_ht = $tabprice[0]; $total_ht = $tabprice[0];
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];

View File

@ -115,7 +115,7 @@ if ($action == 'setnum' && ! empty($_POST['num_paiement']))
} }
} }
if ($action == 'setdate' && ! empty($_POST['datepday'])) if ($action == 'setdatep' && ! empty($_POST['datepday']))
{ {
$object->fetch($id); $object->fetch($id);
$datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']); $datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']);
@ -162,7 +162,7 @@ if ($result > 0)
if ($action == 'delete') if ($action == 'delete')
{ {
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete'); print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("DeletePayment"), $langs->trans("ConfirmDeletePayment"), 'confirm_delete');
} }
/* /*
@ -171,7 +171,7 @@ if ($result > 0)
if ($action == 'valide') if ($action == 'valide')
{ {
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide'); print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide');
} }
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
@ -195,7 +195,7 @@ if ($result > 0)
print '</td></tr>'; print '</td></tr>';
// Amount // Amount
print '<tr><td valign="top" colspan="2">'.$langs->trans('Amount').'</td><td colspan="3">'.price($object->montant).'&nbsp;'.$langs->trans('Currency'.$conf->currency).'</td></tr>'; print '<tr><td valign="top" colspan="2">'.$langs->trans('Amount').'</td><td colspan="3">'.price($object->montant,'',$langs,0,0,-1,$conf->currency).'</td></tr>';
if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION))
{ {
@ -218,9 +218,19 @@ if ($result > 0)
print '<tr>'; print '<tr>';
print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>'; print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $bankline->getNomUrl(1,0,'showall'); print $bankline->getNomUrl(1,0,'showconciliated');
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
print '<tr>';
print '<td colspan="2">'.$langs->trans('BankAccount').'</td>';
print '<td colspan="3">';
$accountstatic=new Account($db);
$accountstatic->id=$bankline->fk_account;
$accountstatic->label=$bankline->bank_account_ref.' - '.$bankline->bank_account_label;
print $accountstatic->getNomUrl(0);
print '</td>';
print '</tr>';
} }
} }

View File

@ -108,6 +108,10 @@ else
{ {
$sql .= natural_search('p.ref', $sref); $sql .= natural_search('p.ref', $sref);
} }
if ($sRefSupplier)
{
$sql .= natural_search('ppf.ref_fourn', $sRefSupplier);
}
if ($snom) if ($snom)
{ {
$sql .= natural_search('p.label', $snom); $sql .= natural_search('p.label', $snom);
@ -174,7 +178,7 @@ if ($resql)
print_liste_field_titre($langs->trans("Label"),"liste.php", "p.label",$param,"","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),"liste.php", "p.label",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Supplier"),"liste.php", "ppf.fk_soc",$param,"","",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Supplier"),"liste.php", "ppf.fk_soc",$param,"","",$sortfield,$sortorder);
print_liste_field_titre($langs->trans("BuyingPrice"),"liste.php", "ppf.price",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("BuyingPrice"),"liste.php", "ppf.price",$param,"",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("QtyMin"),"liste.php", "ppf.qty",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("QtyMin"),"liste.php", "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("UnitPrice"),"liste.php", "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("UnitPrice"),"liste.php", "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder);
print "</tr>\n"; print "</tr>\n";

View File

@ -35,7 +35,7 @@ $ok = 0;
$err=error_reporting(); $err=error_reporting();
error_reporting(0); // Disable all errors error_reporting(0); // Disable all errors
//error_reporting(E_ALL); //error_reporting(E_ALL);
@set_time_limit(300); // Need more than 240 on Windows 7/64 @set_time_limit(900); // Need 900 on some OS like Windows 7/64
error_reporting($err); error_reporting($err);
$action=GETPOST('action'); $action=GETPOST('action');

View File

@ -299,5 +299,20 @@ ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_mode_reglement integer NULL;
ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_cond_reglement integer NULL; ALTER TABLE llx_facture_fourn MODIFY COLUMN fk_cond_reglement integer NULL;
insert into llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1); INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang) values (9,'COMPANY_SENTBYMAIL','Mails sent from third party card','Executed when you send email from third party card','societe',1);
ALTER TABLE llx_contratdet ADD column product_type integer DEFAULT 1 after total_ttc;
create table llx_contrat_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;
-- add outstanding bill
ALTER TABLE llx_societe ADD outstanding_limit double(24,8) DEFAULT NULL AFTER mode_reglement_supplier;

View File

@ -32,21 +32,23 @@ create table llx_actioncomm
fk_action integer, -- type of action (optionnal link with llx_c_actioncomm or null) fk_action integer, -- type of action (optionnal link with llx_c_actioncomm or null)
code varchar(32) NULL, -- code of action for automatic action code varchar(32) NULL, -- code of action for automatic action
label varchar(128) NOT NULL, -- libelle de l'action label varchar(128) NOT NULL, -- label/title of event
datec datetime, -- date creation datec datetime, -- date creation
tms timestamp, -- date modif tms timestamp, -- date modification
fk_user_author integer, -- id user qui a cree l'action fk_user_author integer, -- user id of user that has created record
fk_user_mod integer, -- id dernier user qui a modifier l'action fk_user_mod integer, -- user id of user that has modified record
fk_project integer, fk_project integer,
fk_soc integer, fk_soc integer,
fk_contact integer, fk_contact integer,
fk_parent integer NOT NULL default 0, fk_parent integer NOT NULL default 0,
fk_user_action integer, -- id de la personne qui doit effectuer l'action fk_user_action integer, -- user id of owner of action (currently also user id of actor that must do action. In future, actors assigned to action will be an array into table llx_actioncomm_resources)
transparency integer, -- transparency (ical standard). used to say if people assigned to event are busy or not by event.
fk_user_done integer, -- id de la personne qui a effectue l'action transparency integer, -- transparency (ical standard). used to say if people assigned to event are busy or not by event (in future version, this field is deprecated and will be stored into table llx_actioncomm_resources)
fk_user_done integer, -- user id of people that has made action (deprecated)
priority smallint, priority smallint,
fulldayevent smallint NOT NULL default 0, fulldayevent smallint NOT NULL default 0,
punctual smallint NOT NULL default 1, punctual smallint NOT NULL default 1,

View File

@ -0,0 +1,20 @@
-- ===================================================================
-- Copyright (C) 2013 Charles-Fr BENKE <charles.fr@benke.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
-- 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 <http://www.gnu.org/licenses/>.
--
-- ===================================================================
ALTER TABLE llx_contrat_extrafields ADD INDEX idx_contrat_extrafields (fk_object);

View File

@ -0,0 +1,25 @@
-- ========================================================================
-- Copyright (C) 2013 Charles-Fr BENKE <charles.fr@benke.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
-- 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 <http://www.gnu.org/licenses/>.
--
-- ========================================================================
create table llx_contrat_extrafields
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp,
fk_object integer NOT NULL,
import_key varchar(14) -- import key
) ENGINE=innodb;

View File

@ -52,6 +52,7 @@ create table llx_contratdet
total_localtax1 double(24,8) DEFAULT 0, -- Total Local tax 1 de la ligne total_localtax1 double(24,8) DEFAULT 0, -- Total Local tax 1 de la ligne
total_localtax2 double(24,8) DEFAULT 0, -- Total Local tax 2 de la ligne total_localtax2 double(24,8) DEFAULT 0, -- Total Local tax 2 de la ligne
total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale total_ttc double(24,8) DEFAULT 0, -- Total TTC de la ligne toute quantite et incluant remise ligne et globale
product_type integer DEFAULT 1, -- Product type (1=service by default)
info_bits integer DEFAULT 0, -- TVA NPR ou non info_bits integer DEFAULT 0, -- TVA NPR ou non
buy_price_ht double(24,8) DEFAULT NULL, -- buying price buy_price_ht double(24,8) DEFAULT NULL, -- buying price

View File

@ -52,7 +52,7 @@ create table llx_societe
fk_effectif integer DEFAULT 0, -- fk_effectif integer DEFAULT 0, --
fk_typent integer DEFAULT 0, -- fk_typent integer DEFAULT 0, --
fk_forme_juridique integer DEFAULT 0, -- juridical status fk_forme_juridique integer DEFAULT 0, -- juridical status
fk_currency integer DEFAULT 0, -- currency fk_currency integer DEFAULT 0, -- currency
siren varchar(128), -- IDProf1: siren or RCS for france siren varchar(128), -- IDProf1: siren or RCS for france
siret varchar(128), -- IDProf2: siret for france siret varchar(128), -- IDProf2: siret for france
ape varchar(128), -- IDProf3: code ape for france ape varchar(128), -- IDProf3: code ape for france
@ -61,7 +61,7 @@ create table llx_societe
idprof6 varchar(128), -- IDProf6: nu for france idprof6 varchar(128), -- IDProf6: nu for france
tva_intra varchar(20), -- tva tva_intra varchar(20), -- tva
capital real, -- capital de la societe capital real, -- capital de la societe
fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut
note_private text, -- note_private text, --
note_public text, -- note_public text, --
prefix_comm varchar(5), -- prefix commercial prefix_comm varchar(5), -- prefix commercial
@ -85,6 +85,7 @@ create table llx_societe
barcode varchar(255), -- barcode barcode varchar(255), -- barcode
fk_barcode_type integer NULL DEFAULT 0, -- barcode type fk_barcode_type integer NULL DEFAULT 0, -- barcode type
price_level integer NULL, -- level of price for multiprices price_level integer NULL, -- level of price for multiprices
outstanding_limit double(24,8) DEFAULT NULL, -- allowed outstanding limit
default_lang varchar(6), -- default language default_lang varchar(6), -- default language
logo varchar(255), logo varchar(255),
canvas varchar(32), -- type of canvas if used (null by default) canvas varchar(32), -- type of canvas if used (null by default)

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - admin # Dolibarr language file - Source file is en_US - admin
CHARSET=UTF-8
# Foundation=Foundation # Foundation=Foundation
Version=النسخة Version=النسخة
VersionProgram=نسخة البرنامج VersionProgram=نسخة البرنامج
@ -72,6 +71,8 @@ Mask=قناع
NextValue=قيمة المقبل NextValue=قيمة المقبل
NextValueForInvoices=قيمة المقبل (الفواتير) NextValueForInvoices=قيمة المقبل (الفواتير)
NextValueForCreditNotes=قيمة المقبل (مذكرات الائتمان) NextValueForCreditNotes=قيمة المقبل (مذكرات الائتمان)
# NextValueForDeposit=Next value (deposit)
# NextValueForReplacements=Next value (replacements)
MustBeLowerThanPHPLimit=ملاحظة : PHP الخاصة بك في حدود كل من تحميل الملفات لحجم ٪ <b>ق</b> ق ٪ ، مهما كانت قيمة هذا المعلم هو MustBeLowerThanPHPLimit=ملاحظة : PHP الخاصة بك في حدود كل من تحميل الملفات لحجم ٪ <b>ق</b> ق ٪ ، مهما كانت قيمة هذا المعلم هو
NoMaxSizeByPHPLimit=ملاحظة : لم يتم تحديد أي في التكوين الخاص بك PHP NoMaxSizeByPHPLimit=ملاحظة : لم يتم تحديد أي في التكوين الخاص بك PHP
MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل) MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل)
@ -487,6 +488,8 @@ Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP التحويلات Maxmind القدرات Module2900Desc= GeoIP التحويلات Maxmind القدرات
Module5000Name=شركة متعددة Module5000Name=شركة متعددة
Module5000Desc=يسمح لك لإدارة الشركات المتعددة Module5000Desc=يسمح لك لإدارة الشركات المتعددة
# Module6000Name=Workflow
# Module6000Desc=Workflow management
# Module20000Name=Holidays # Module20000Name=Holidays
# Module20000Desc=Declare and follow employees holidays # Module20000Desc=Declare and follow employees holidays
Module50000Name=PayBox Module50000Name=PayBox
@ -495,6 +498,10 @@ Module50100Name=نقطة البيع
Module50100Desc=نقطة بيع وحدة Module50100Desc=نقطة بيع وحدة
Module50200Name= باي بال Module50200Name= باي بال
Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال
# Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Survey
# Module55000Desc=Module to integrate a survey (like Doodle, Studs, Rdvz, ...)
# Module59000Name=Margins # Module59000Name=Margins
# Module59000Desc=Module to manage margins # Module59000Desc=Module to manage margins
# Module60000Name=Commissions # Module60000Name=Commissions
@ -708,8 +715,11 @@ Permission2515=إعداد وثائق وأدلة
# Permission2801=Use FTP client in read mode (browse and download only) # Permission2801=Use FTP client in read mode (browse and download only)
# Permission2802=Use FTP client in write mode (delete or upload files) # Permission2802=Use FTP client in write mode (delete or upload files)
# Permission50101=Use Point of sales # Permission50101=Use Point of sales
Permission50201= قراءة المعاملات Permission50201=قراءة المعاملات
Permission50202= استيراد المعاملات Permission50202=استيراد المعاملات
# Permission54001=Print
# Permission55001=Read surveys
# Permission55002=Create/modify surveys
DictionnaryCompanyType=أنواع الشركة DictionnaryCompanyType=أنواع الشركة
DictionnaryCompanyJuridicalType=أنواع القانوني للشركة DictionnaryCompanyJuridicalType=أنواع القانوني للشركة
DictionnaryProspectLevel=آفاق محتملة المستوى DictionnaryProspectLevel=آفاق محتملة المستوى
@ -991,6 +1001,7 @@ SendmailOptionMayHurtBuggedMTA=وميزة لإرسال رسائل باستخدا
# BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. # BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari.
# XDebugInstalled=XDebug est chargé. # XDebugInstalled=XDebug est chargé.
# XCacheInstalled=XCache is loaded. # XCacheInstalled=XCache is loaded.
# AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
##### Module password generation ##### Module password generation
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير. PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا. PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا.

View File

@ -1,5 +1,5 @@
# Dolibarr language file - Source file is en_US - agenda # Dolibarr language file - Source file is en_US - agenda
CHARSET=UTF-8 # IdAgenda=ID event
Actions=الإجراءات Actions=الإجراءات
ActionsArea=الإجراءات منطقة الأحداث والمهام) ActionsArea=الإجراءات منطقة الأحداث والمهام)
Agenda= جدول الأعمال Agenda= جدول الأعمال
@ -68,6 +68,7 @@ AgendaUrlOptions5=<b>logind=<b>logind=%s</b> لتقييد الانتاج لإج
AgendaShowBirthdayEvents=عيد ميلاد تظهر اتصالات AgendaShowBirthdayEvents=عيد ميلاد تظهر اتصالات
AgendaHideBirthdayEvents=عيد ميلاد إخفاء اتصالات AgendaHideBirthdayEvents=عيد ميلاد إخفاء اتصالات
# Busy=Busy # Busy=Busy
# ExportDataset_event1=List of agenda events
# External Sites ical # External Sites ical
ExportCal=تصدير التقويم ExportCal=تصدير التقويم

View File

@ -1,14 +1,4 @@
/* # Dolibarr language file - Source file is en_US - banks
* Language code: ar_AR
* Automatic generated via autotranslator.php tool
* Generation date 2009-08-11 13:27:01
*/
// Date 2009-08-11 13:27:01
// START - Lines generated via autotranslator.php tool.
// Reference language: en_US
CHARSET=UTF-8
Bank=البنك Bank=البنك
Banks=المصارف Banks=المصارف
MenuBankCash=البنك / النقدية MenuBankCash=البنك / النقدية
@ -29,6 +19,8 @@ SavingAccount=حساب توفير
SavingAccounts=حسابات التوفير SavingAccounts=حسابات التوفير
ErrorBankLabelAlreadyExists=الحساب المالي الملصق موجود بالفعل ErrorBankLabelAlreadyExists=الحساب المالي الملصق موجود بالفعل
BankBalance=التوازن BankBalance=التوازن
# BankBalanceBefore=Balance before
# BankBalanceAfter=Balance after
BalanceMinimalAllowed=الحد الأدنى المسموح التوازن BalanceMinimalAllowed=الحد الأدنى المسموح التوازن
BalanceMinimalDesired=الحد الأدنى من التوازن المطلوب BalanceMinimalDesired=الحد الأدنى من التوازن المطلوب
InitialBankBalance=الرصيد الأولي InitialBankBalance=الرصيد الأولي
@ -51,11 +43,11 @@ LastAccountStatements=كشوفات الحساب الأخير
Rapprochement=المصالحة Rapprochement=المصالحة
IOMonthlyReporting=تقارير شهرية IOMonthlyReporting=تقارير شهرية
BankAccountDomiciliation=معالجة حساب BankAccountDomiciliation=معالجة حساب
BankAccountCountry=حساب البلاد
BankAccountOwner=اسم صاحب الحساب BankAccountOwner=اسم صاحب الحساب
BankAccountOwnerAddress=معالجة حساب المالك BankAccountOwnerAddress=معالجة حساب المالك
RIBControlError=التحقق من تكامل القيم يفشل. وهذا يعني حصول على معلومات عن هذا رقم الحساب ليست كاملة أو خاطئة (ارجع البلد والأرقام وIBAN).
CreateAccount=إنشاء حساب CreateAccount=إنشاء حساب
StandingOrderToProcess=لعملية
StandingOrderProcessed=تجهيز
NewAccount=حساب جديد NewAccount=حساب جديد
NewBankAccount=حساب مصرفي جديد NewBankAccount=حساب مصرفي جديد
NewFinancialAccount=الحساب المالي الجديد NewFinancialAccount=الحساب المالي الجديد
@ -112,7 +104,9 @@ ConciliatedBy=طريق التصالح
DateConciliating=التوفيق التاريخ DateConciliating=التوفيق التاريخ
BankLineConciliated=صفقة التصالح BankLineConciliated=صفقة التصالح
CustomerInvoicePayment=عملاء الدفع CustomerInvoicePayment=عملاء الدفع
# CustomerInvoicePaymentBack=Customer payment back
SupplierInvoicePayment=المورد الدفع SupplierInvoicePayment=المورد الدفع
WithdrawalPayment=انسحاب الدفع
SocialContributionPayment=دفع المساهمة الاجتماعية SocialContributionPayment=دفع المساهمة الاجتماعية
FinancialAccountJournal=مجلة الحساب المالي FinancialAccountJournal=مجلة الحساب المالي
BankTransfer=حوالة مصرفية BankTransfer=حوالة مصرفية
@ -128,6 +122,7 @@ DeleteCheckReceipt=تأكد من ورود حذف هذا؟
ConfirmDeleteCheckReceipt=هل أنت متأكد من أنك تريد حذف هذا التحقق من ورود؟ ConfirmDeleteCheckReceipt=هل أنت متأكد من أنك تريد حذف هذا التحقق من ورود؟
BankChecks=الشيكات المصرفية BankChecks=الشيكات المصرفية
BankChecksToReceipt=في انتظار إيداع الشيكات BankChecksToReceipt=في انتظار إيداع الشيكات
ShowCheckReceipt=الاختيار إظهار تلقي الودائع
NumberOfCheques=ملاحظة : للشيكات NumberOfCheques=ملاحظة : للشيكات
DeleteTransaction=حذف المعاملات DeleteTransaction=حذف المعاملات
ConfirmDeleteTransaction=هل أنت متأكد من أنك تريد حذف هذه الصفقة؟ ConfirmDeleteTransaction=هل أنت متأكد من أنك تريد حذف هذه الصفقة؟
@ -135,42 +130,23 @@ ThisWillAlsoDeleteBankRecord=وهذا من شأنه أيضا حذف المتول
BankMovements=حركات BankMovements=حركات
CashBudget=الميزانية النقدية CashBudget=الميزانية النقدية
PlannedTransactions=المخطط المعاملات PlannedTransactions=المخطط المعاملات
Graph=الرسومات
ExportDataset_banque_1=المعاملات المصرفية وحساب ExportDataset_banque_1=المعاملات المصرفية وحساب
TransactionOnTheOtherAccount=صفقة على حساب الآخرين TransactionOnTheOtherAccount=صفقة على حساب الآخرين
TransactionWithOtherAccount=تحويل الحساب
PaymentNumberUpdateSucceeded=دفع عدد تحديث بنجاح PaymentNumberUpdateSucceeded=دفع عدد تحديث بنجاح
PaymentNumberUpdateFailed=دفع عددا لا يمكن تحديث PaymentNumberUpdateFailed=دفع عددا لا يمكن تحديث
PaymentDateUpdateSucceeded=تاريخ التحديث الدفع بنجاح PaymentDateUpdateSucceeded=تاريخ التحديث الدفع بنجاح
PaymentDateUpdateFailed=دفع حتى الآن لا يمكن تحديث PaymentDateUpdateFailed=دفع حتى الآن لا يمكن تحديث
# Transactions=Transactions
BankTransactionLine=المعاملات المصرفية BankTransactionLine=المعاملات المصرفية
AllAccounts=جميع المصرفية / حسابات نقدية AllAccounts=جميع المصرفية / حسابات نقدية
BackToAccount=إلى حساب BackToAccount=إلى حساب
ShowAllAccounts=وتبين للجميع الحسابات ShowAllAccounts=وتبين للجميع الحسابات
// Date 2009-08-11 13:27:01
// STOP - Lines generated via parser
// START - Lines generated via autotranslator.php tool (2009-08-13 20:13:59).
// Reference language: en_US
TransactionWithOtherAccount=تحويل الحساب
// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:13:59).
// START - Lines generated via autotranslator.php tool (2010-07-17 11:13:51).
// Reference language: en_US
BankAccountCountry=حساب البلاد
// STOP - Lines generated via autotranslator.php tool (2010-07-17 11:14:16).
// START - Lines generated via autotranslator.php tool (2011-10-10 02:45:33).
// Reference language: en_US -> ar_SA
RIBControlError=التحقق من تكامل القيم يفشل. وهذا يعني حصول على معلومات عن هذا رقم الحساب ليست كاملة أو خاطئة (ارجع البلد والأرقام وIBAN).
WithdrawalPayment=انسحاب الدفع
ShowCheckReceipt=الاختيار إظهار تلقي الودائع
// STOP - Lines generated via autotranslator.php tool (2011-10-10 06:39:39).
// START - Lines generated via autotranslator.php tool (2012-02-29 15:55:27).
// Reference language: en_US -> ar_SA
Graph=الرسومات
FutureTransaction=الصفقة في أجل المستقبل. أي وسيلة للتوفيق. FutureTransaction=الصفقة في أجل المستقبل. أي وسيلة للتوفيق.
SelectChequeTransactionAndGenerate=حدد / تصفية الشيكات لتشمل في الاختيار استلام الودائع وانقر على &quot;إنشاء&quot;. SelectChequeTransactionAndGenerate=حدد / تصفية الشيكات لتشمل في الاختيار استلام الودائع وانقر على &quot;إنشاء&quot;.
// STOP - Lines generated via autotranslator.php tool (2012-02-29 15:55:34). # InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value (such as, YYYYMM)
# EventualyAddCategory=Eventually, specify a category in which to classify the records
# ToConciliate=To conciliate?
# ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click
# BankDashboard=Bank accounts summary

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - bills # Dolibarr language file - Source file is en_US - bills
CHARSET=UTF-8
Bill=فاتورة Bill=فاتورة
Bills=فواتير Bills=فواتير
BillsCustomers=العملاء والفواتير BillsCustomers=العملاء والفواتير

View File

@ -1,7 +1,5 @@
# Dolibarr language file - Source file is en_US - marque pages # Dolibarr language file - Source file is en_US - marque pages
CHARSET=UTF-8
AddThisPageToBookmarks=أضف هذه الصفحة إلى المفضلة AddThisPageToBookmarks=أضف هذه الصفحة إلى المفضلة
Bookmark=احفظ Bookmark=احفظ
Bookmarks=العناوين Bookmarks=العناوين
NewBookmark=إشارة مرجعية جديدة NewBookmark=إشارة مرجعية جديدة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - boxes # Dolibarr language file - Source file is en_US - boxes
CHARSET=UTF-8
BoxLastRssInfos=Rss المعلومات BoxLastRssInfos=Rss المعلومات
BoxLastProducts=ق الماضي ٪ منتجات / خدمات BoxLastProducts=ق الماضي ٪ منتجات / خدمات
# BoxProductsAlertStock=Products in stock alert # BoxProductsAlertStock=Products in stock alert
@ -75,10 +74,18 @@ NoRecordedProducts=لم تسجل المنتجات / الخدمات
NoRecordedProspects=لم تسجل آفاق NoRecordedProspects=لم تسجل آفاق
NoContractedProducts=أي المنتجات / الخدمات المتعاقد عليها NoContractedProducts=أي المنتجات / الخدمات المتعاقد عليها
NoRecordedContracts=لا عقود المسجلة NoRecordedContracts=لا عقود المسجلة
# NoRecordedInterventions=No recorded interventions
# BoxLatestSupplierOrders=Latest supplier orders # BoxLatestSupplierOrders=Latest supplier orders
# BoxTitleLatestSupplierOrders=%s latest supplier orders # BoxTitleLatestSupplierOrders=%s latest supplier orders
# NoSupplierOrder=No recorded supplier order # NoSupplierOrder=No recorded supplier order
# BoxInvoicesPerMonth=Invoices per month # BoxCustomersInvoicesPerMonth=Customer invoices per month
# BoxOrdersPerMonth=Orders per month # BoxSuppliersInvoicesPerMonth=Supplier invoices per month
# BoxCustomersOrdersPerMonth=Customer orders per month
# BoxSuppliersOrdersPerMonth=Supplier orders per month
# BoxProposalsPerMonth=Proposals per month # BoxProposalsPerMonth=Proposals per month
# NoTooLowStockProducts=No product under the low stock limit # NoTooLowStockProducts=No product under the low stock limit
# BoxProductDistribution=Products/Services distribution
# BoxProductDistributionFor=Distribution of %s for %s
ForCustomersInvoices=العملاء والفواتير
# ForCustomersOrders=Customers orders
ForProposals=مقترحات

View File

@ -1,5 +1,4 @@
# Language file - Source file is en_US - cashdesk # Language file - Source file is en_US - cashdesk
CHARSET=UTF-8
CashDeskMenu=نقطة بيع CashDeskMenu=نقطة بيع
CashDesk=نقطة بيع CashDesk=نقطة بيع
CashDesks=نقاط البيع CashDesks=نقاط البيع
@ -37,3 +36,4 @@ BankToPay=تهمة حساب
ShowCompany=عرض شركة ShowCompany=عرض شركة
ShowStock=عرض مستودع ShowStock=عرض مستودع
DeleteArticle=انقر لإزالة هذه المادة DeleteArticle=انقر لإزالة هذه المادة
# FilterRefOrLabelOrBC=Search (Ref/Label)

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - categories # Dolibarr language file - Source file is en_US - categories
CHARSET=UTF-8
Category=الفئة Category=الفئة
Categories=الفئات Categories=الفئات
Rubrique=الفئة Rubrique=الفئة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - commercial # Dolibarr language file - Source file is en_US - commercial
CHARSET=UTF-8
Commercial=التجارية Commercial=التجارية
CommercialArea=منطقة تجارية CommercialArea=منطقة تجارية
CommercialCard=بطاقة تجارية CommercialCard=بطاقة تجارية

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - companies # Dolibarr language file - Source file is en_US - companies
CHARSET=UTF-8
ErrorCompanyNameAlreadyExists=اسم الشركة ل ٪ موجود بالفعل. اختيار آخر. ErrorCompanyNameAlreadyExists=اسم الشركة ل ٪ موجود بالفعل. اختيار آخر.
ErrorPrefixAlreadyExists=بادئة ٪ ق موجود بالفعل. اختيار آخر. ErrorPrefixAlreadyExists=بادئة ٪ ق موجود بالفعل. اختيار آخر.
ErrorSetACountryFirst=المجموعة الأولى في البلد ErrorSetACountryFirst=المجموعة الأولى في البلد
@ -85,6 +84,8 @@ LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة
LocalTax1IsNotUsedES= لا يتم استخدام الطاقة المتجددة LocalTax1IsNotUsedES= لا يتم استخدام الطاقة المتجددة
LocalTax2IsUsedES= يستخدم IRPF LocalTax2IsUsedES= يستخدم IRPF
LocalTax2IsNotUsedES= IRPF لا يستخدم LocalTax2IsNotUsedES= IRPF لا يستخدم
LocalTax1ES=تعاود
LocalTax2ES=IRPF
ThirdPartyEMail=ق ٪ ThirdPartyEMail=ق ٪
WrongCustomerCode=رمز غير صالح العملاء WrongCustomerCode=رمز غير صالح العملاء
WrongSupplierCode=رمز المورد غير صالحة WrongSupplierCode=رمز المورد غير صالحة
@ -395,7 +396,7 @@ InActivity=فتح
ActivityCeased=مغلق ActivityCeased=مغلق
ActivityStateFilter=نشاط المركز ActivityStateFilter=نشاط المركز
# ProductsIntoElements=List of products into # ProductsIntoElements=List of products into
# OutstandingBill=Outstanding Bill
# Monkey # Monkey
MonkeyNumRefModelDesc=عودة número مع الشكل nnnn - ٪ syymm الزبون ورمز وnnnn - ٪ syymm مورد للقانون حيث السنة هو السنة ، هو شهر ملم وnnnn هو تسلسل بلا كسر وعدم العودة إلى 0. MonkeyNumRefModelDesc=عودة número مع الشكل nnnn - ٪ syymm الزبون ورمز وnnnn - ٪ syymm مورد للقانون حيث السنة هو السنة ، هو شهر ملم وnnnn هو تسلسل بلا كسر وعدم العودة إلى 0.
# Leopard # Leopard

View File

@ -1,10 +1,9 @@
# Dolibarr language file - Source file is en_US - compta # Dolibarr language file - Source file is en_US - compta
CHARSET=UTF-8
Accountancy=المحاسبة Accountancy=المحاسبة
AccountancyCard=بطاقة المحاسبة AccountancyCard=بطاقة المحاسبة
Treasury=الخزانة Treasury=الخزانة
MenuFinancial=المالية MenuFinancial=المالية
TaxModuleSetupToModifyRules=انتقل إلى <a href="%s">وحدة الإعداد</a> لتعديل القواعد لحساب # TaxModuleSetupToModifyRules=Go to <a href="%s">Taxes module setup</a> to modify rules for calculation
OptionMode=الخيار المحاسبة OptionMode=الخيار المحاسبة
OptionModeTrue=خيار المدخلات والمخرجات OptionModeTrue=خيار المدخلات والمخرجات
OptionModeVirtual=الخيار بين اعتمادات الديون OptionModeVirtual=الخيار بين اعتمادات الديون
@ -103,8 +102,12 @@ ConfirmPaySocialContribution=هل أنت متأكد من أن يصنف هذه ا
DeleteSocialContribution=حذف المساهمات الاجتماعية DeleteSocialContribution=حذف المساهمات الاجتماعية
ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف هذه المساهمة الاجتماعية؟ ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف هذه المساهمة الاجتماعية؟
ExportDataset_tax_1=المساهمات الاجتماعية والمدفوعات ExportDataset_tax_1=المساهمات الاجتماعية والمدفوعات
AnnualSummaryDueDebtMode=ميزان الإيرادات والمصروفات ، وموجزا سنويا ، طريقة <b>٪ sClaims - ديونها ٪ ق</b> قال <b>الالتزام والمحاسبة.</b> # CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</b>.
AnnualSummaryInputOutputMode=ميزان الإيرادات والنفقات السنوية وخلاصة طريقة <b>sRevenues - ٪ ق ٪ Expensens</b> قال <b>المحاسبة النقدية.</b> # CalcModeVATEngagement=Mode <b>%sVAT on incomes-expenses%s</b>.
# CalcModeDebt=Mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
# CalcModeEngagement=Mode <b>%sIncomes-Expenses%s</b> said <b>cash accounting</b>
# AnnualSummaryDueDebtMode=Balance of income and expenses, annual summary
# AnnualSummaryInputOutputMode=Balance of income and expenses, annual summary
AnnualByCompaniesDueDebtMode=ميزان الإيرادات والنفقات ، وبالتفصيل من قبل أطراف ثالثة ، وطريقة سداد <b>ديون sClaims ٪ ٪ ق</b> قال <b>الالتزام والمحاسبة.</b> AnnualByCompaniesDueDebtMode=ميزان الإيرادات والنفقات ، وبالتفصيل من قبل أطراف ثالثة ، وطريقة سداد <b>ديون sClaims ٪ ٪ ق</b> قال <b>الالتزام والمحاسبة.</b>
AnnualByCompaniesInputOutputMode=ميزان الإيرادات والنفقات ، وبالتفصيل من قبل أطراف ثالثة ، واسطة بين <b>sRevenues ٪ من مصروفات ٪ ق</b> قال <b>المحاسبة النقدية.</b> AnnualByCompaniesInputOutputMode=ميزان الإيرادات والنفقات ، وبالتفصيل من قبل أطراف ثالثة ، واسطة بين <b>sRevenues ٪ من مصروفات ٪ ق</b> قال <b>المحاسبة النقدية.</b>
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
@ -117,13 +120,13 @@ RulesCAIn=-- ويشمل جميع الفعال دفع الفواتير الوار
DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير
DepositsAreIncluded=- وترد الفواتير ودائع DepositsAreIncluded=- وترد الفواتير ودائع
LT2ReportByCustomersInInputOutputModeES=تقرير من قبل طرف ثالث IRPF LT2ReportByCustomersInInputOutputModeES=تقرير من قبل طرف ثالث IRPF
VATReportByCustomersInInputOutputMode=تقرير من العملاء المجمعة ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة ورود) # VATReportByCustomersInInputOutputMode=Report by the customer VAT collected and paid
VATReportByCustomersInDueDebtMode=تقرير من العملاء المجمعة ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة بمعدل) # VATReportByCustomersInDueDebtMode=Report by the customer VAT collected and paid
VATReportByQuartersInInputOutputMode=التقرير الفصلي للتجمع ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة ورود) # VATReportByQuartersInInputOutputMode=Report by rate of the VAT collected and paid
VATReportByQuartersInDueDebtMode=التقرير الفصلي للتجمع ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة بمعدل) # VATReportByQuartersInDueDebtMode=Report by rate of the VAT collected and paid
SeeVATReportInInputOutputMode=انظر التقرير <b>تغطية sVAT ٪ ق ٪</b> لحساب موحد SeeVATReportInInputOutputMode=انظر التقرير <b>تغطية sVAT ٪ ق ٪</b> لحساب موحد
SeeVATReportInDueDebtMode=انظر التقرير <b>عن تدفق sVAT ٪ ق ٪</b> لحساب مع خيار على تدفق SeeVATReportInDueDebtMode=انظر التقرير <b>عن تدفق sVAT ٪ ق ٪</b> لحساب مع خيار على تدفق
RulesVATInServices=- للحصول على الخدمات، ويشتمل هذا التقرير على لوائح ضريبة القيمة المضافة وردت فعلا أو الصادرة على أساس من تاريخ الدفع. <br> - للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير على أساس من تاريخ الفاتورة. # RulesVATInServices=- For services, the report includes the VAT regulations actually received or issued on the basis of the date of payment.
RulesVATInProducts=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير على أساس من تاريخ الفاتورة. RulesVATInProducts=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير على أساس من تاريخ الفاتورة.
RulesVATDueServices=- للحصول على الخدمات، ويتضمن التقرير فواتير ضريبة القيمة المضافة المستحقة، مدفوعة الأجر أم لا، بناء على تاريخ الفاتورة. RulesVATDueServices=- للحصول على الخدمات، ويتضمن التقرير فواتير ضريبة القيمة المضافة المستحقة، مدفوعة الأجر أم لا، بناء على تاريخ الفاتورة.
RulesVATDueProducts=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير، بناء على تاريخ الفاتورة. RulesVATDueProducts=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير، بناء على تاريخ الفاتورة.
@ -155,3 +158,14 @@ WarningDepositsNotIncluded=لا يتم تضمين فواتير الودائع ف
# AccountancyDashboard=Accountancy summary # AccountancyDashboard=Accountancy summary
# ByProductsAndServices=By products and services # ByProductsAndServices=By products and services
# RefExt=External ref # RefExt=External ref
# ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice".
# LinkedOrder=linked to command
# ReCalculate=Recalculate
# Mode1=Methode 1
# Mode2=Method 2
# CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
# CalculationRuleDescSupplier=according to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier.
# TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a <b>cash accountancy</b> mode is not relevant. This report is only available when using <b>engagement accountancy</b> mode (see setup of accountancy module).
# CalculationMode=Calculation mode
# COMPTA_ACCOUNT_CUSTOMER=Accountancy code by default for customer thirdparties
# COMPTA_ACCOUNT_SUPPLIER=Accountancy code by default for supplier thirdparties

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - contracts # Dolibarr language file - Source file is en_US - contracts
CHARSET=UTF-8
ContractsArea=عقود منطقة ContractsArea=عقود منطقة
ListOfContracts=قائمة العقود ListOfContracts=قائمة العقود
LastContracts=آخر تعديل العقود ق ٪ LastContracts=آخر تعديل العقود ق ٪

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - cron # Dolibarr language file - Source file is en_US - cron
CHARSET=UTF-8
# #
# About page # About page
# #

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - deliveries # Dolibarr language file - Source file is en_US - deliveries
CHARSET=UTF-8
Delivery=تسليم Delivery=تسليم
Deliveries=الولادة Deliveries=الولادة
DeliveryCard=تسليم البطاقة DeliveryCard=تسليم البطاقة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - dict # Dolibarr language file - Source file is en_US - dict
CHARSET=UTF-8
CountryFR=فرنسا CountryFR=فرنسا
CountryBE=بلجيكا CountryBE=بلجيكا
CountryIT=ايطاليا CountryIT=ايطاليا

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - donations # Dolibarr language file - Source file is en_US - donations
CHARSET=UTF-8
Donation=تبرع Donation=تبرع
Donations=التبرعات Donations=التبرعات
# DonationRef=Donation ref. # DonationRef=Donation ref.

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - ecm # Dolibarr language file - Source file is en_US - ecm
CHARSET=UTF-8
MenuECM=وثائق MenuECM=وثائق
DocsMine=بلدي وثائق DocsMine=بلدي وثائق
DocsGenerated=ولدت وثائق DocsGenerated=ولدت وثائق
@ -24,10 +23,10 @@ ECMNewDocument=وثيقة جديدة
ECMCreationDate=تاريخ الإنشاء ECMCreationDate=تاريخ الإنشاء
ECMNbOfFilesInDir=عدد من الملفات في دليل ECMNbOfFilesInDir=عدد من الملفات في دليل
ECMNbOfSubDir=من دون أدلة ECMNbOfSubDir=من دون أدلة
ECMNbOfFilesInSubDir=إيليس في Nunber من دون أدلة # ECMNbOfFilesInSubDir=Number of files in sub-directories
ECMCreationUser=مبدع ECMCreationUser=مبدع
ECMArea=مجال إدارة المحتوى في المؤسسة # ECMArea=EDM area
ECMAreaDesc=إدارة المحتوى في المؤسسة (إدارة المحتوى الالكتروني) تتيح لك المجال لانقاذ ، والبحث بسرعة حصة كل نوع من أنواع الوثائق في Dolibarr. # ECMAreaDesc=The EDM (Electronic Document Management) area allows you to save, share and search quickly all kind of documents in Dolibarr.
ECMAreaDesc2=* أدلة تلقائية تملأ تلقائيا عند إضافة الوثائق من بطاقة عنصر. <br> * دليل أدلة يمكن استخدامها لانقاذ وثائق ليست مرتبطة بشكل خاص عنصر. ECMAreaDesc2=* أدلة تلقائية تملأ تلقائيا عند إضافة الوثائق من بطاقة عنصر. <br> * دليل أدلة يمكن استخدامها لانقاذ وثائق ليست مرتبطة بشكل خاص عنصر.
ECMSectionWasRemoved=دليل <b>٪ ق</b> حذفت. ECMSectionWasRemoved=دليل <b>٪ ق</b> حذفت.
ECMDocumentsSection=وثيقة من وثائق ودليل ECMDocumentsSection=وثيقة من وثائق ودليل

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - errors # Dolibarr language file - Source file is en_US - errors
CHARSET=UTF-8
# No errors # No errors
# NoErrorCommitIsDone=No error, we commit # NoErrorCommitIsDone=No error, we commit
@ -125,6 +124,9 @@ ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها
# ErrorFailedToAddContact=Failed to add contact # ErrorFailedToAddContact=Failed to add contact
# ErrorDateMustBeBeforeToday=The date can not be greater than today # ErrorDateMustBeBeforeToday=The date can not be greater than today
# ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. # ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode.
# ErrorPHPNeedModule=Error, your PHP must have module <b>%s</b> installed to use this feature.
# ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s
# ErrorWarehouseMustDiffers=Source and target warehouses must differs
# Warnings # Warnings
# WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined # WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - exports # Dolibarr language file - Source file is en_US - exports
CHARSET=UTF-8
ExportsArea=صادرات المنطقة ExportsArea=صادرات المنطقة
ImportArea=مجال الاستيراد ImportArea=مجال الاستيراد
NewExport=تصديرية جديدة NewExport=تصديرية جديدة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - externalsite # Dolibarr language file - Source file is en_US - externalsite
CHARSET=UTF-8
ExternalSiteSetup=رابط الإعداد لموقع خارجي ExternalSiteSetup=رابط الإعداد لموقع خارجي
ExternalSiteURL=الخارجية الموقع URL ExternalSiteURL=الخارجية الموقع URL
# ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. # ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly.

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - ftp # Dolibarr language file - Source file is en_US - ftp
CHARSET=UTF-8
FTPClientSetup=بروتوكول نقل الملفات العملاء الإعداد وحدة FTPClientSetup=بروتوكول نقل الملفات العملاء الإعداد وحدة
NewFTPClient=جديد الإعداد بروتوكول نقل الملفات الصدد NewFTPClient=جديد الإعداد بروتوكول نقل الملفات الصدد
FTPArea=بروتوكول نقل الملفات المنطقة FTPArea=بروتوكول نقل الملفات المنطقة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - help # Dolibarr language file - Source file is en_US - help
CHARSET=UTF-8
CommunitySupport=منتدى / الدعم ويكي CommunitySupport=منتدى / الدعم ويكي
EMailSupport=رسائل البريد الإلكتروني لدعم EMailSupport=رسائل البريد الإلكتروني لدعم
RemoteControlSupport=الانترنت في الوقت الحقيقي / النائية الدعم RemoteControlSupport=الانترنت في الوقت الحقيقي / النائية الدعم

View File

@ -1,6 +1,4 @@
# Dolibarr language file - Source file is en_US - holiday # Dolibarr language file - Source file is en_US - holiday
CHARSET= UTF-8
# HRM=HRM # HRM=HRM
# Holidays=Holidays # Holidays=Holidays
# CPTitreMenu=Holidays # CPTitreMenu=Holidays
@ -89,6 +87,7 @@ UserName=اسم
# LastDayOfHoliday=Last day of holiday # LastDayOfHoliday=Last day of holiday
# HolidaysMonthlyUpdate=Monthly update # HolidaysMonthlyUpdate=Monthly update
# ManualUpdate=Manual update # ManualUpdate=Manual update
# HolidaysCancelation=Holidays cancelation
## Configuration du Module ## ## Configuration du Module ##
# ConfCP=Configuration of holidays module # ConfCP=Configuration of holidays module

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - install # Dolibarr language file - Source file is en_US - install
CHARSET=UTF-8
InstallEasy=فقط اتبع التعليمات خطوة بخطوة. InstallEasy=فقط اتبع التعليمات خطوة بخطوة.
MiscellaneousChecks=التحقق من الشروط الأساسية MiscellaneousChecks=التحقق من الشروط الأساسية
DolibarrWelcome=مرحبا بكم في Dolibarr DolibarrWelcome=مرحبا بكم في Dolibarr

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - interventions # Dolibarr language file - Source file is en_US - interventions
CHARSET=UTF-8
Intervention=التدخل Intervention=التدخل
Interventions=المداخلات Interventions=المداخلات
InterventionCard=تدخل البطاقة InterventionCard=تدخل البطاقة

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - languages # Dolibarr language file - Source file is en_US - languages
CHARSET=UTF-8
Language_ar_AR=العربية Language_ar_AR=العربية
Language_ar_SA=العربية Language_ar_SA=العربية
@ -16,10 +15,13 @@ Language_en_IN=الإنكليزية (الهند)
Language_en_NZ=الإنجليزية (نيوزيلندا) Language_en_NZ=الإنجليزية (نيوزيلندا)
# Language_en_SA=English (Saudi Arabia) # Language_en_SA=English (Saudi Arabia)
Language_en_US=الإنكليزية (الولايات المتحدة) Language_en_US=الإنكليزية (الولايات المتحدة)
# Language_en_ZA=English (South Africa)
Language_es_ES=الأسبانية Language_es_ES=الأسبانية
Language_es_AR=الأسبانية (الأرجنتين) Language_es_AR=الأسبانية (الأرجنتين)
Language_es_HN=الأسبانية (هندوراس) Language_es_HN=الأسبانية (هندوراس)
Language_es_MX=الإسبانية (المكسيك) Language_es_MX=الإسبانية (المكسيك)
# Language_es_PY=Spanish (Paraguay)
# Language_es_PE=Spanish (Peru)
Language_es_PR=الأسبانية (بورتو ريكو) Language_es_PR=الأسبانية (بورتو ريكو)
# Language_et_EE=Estonian # Language_et_EE=Estonian
Language_fa_IR=اللغة الفارسية Language_fa_IR=اللغة الفارسية
@ -28,6 +30,7 @@ Language_fr_BE=الفرنسية (بلجيكا)
Language_fr_CA=الفرنسية (كندا) Language_fr_CA=الفرنسية (كندا)
Language_fr_CH=الفرنسية (سويسرا) Language_fr_CH=الفرنسية (سويسرا)
Language_fr_FR=الفرنسية Language_fr_FR=الفرنسية
# Language_fr_NC=French (New Caledonia)
# Language_he_IL=Hebrew # Language_he_IL=Hebrew
Language_hu_HU=المجري Language_hu_HU=المجري
Language_is_IS=الآيسلندي Language_is_IS=الآيسلندي
@ -46,6 +49,6 @@ Language_tr_TR=التركية
Language_sl_SI=السلوفينية Language_sl_SI=السلوفينية
Language_sv_SV=السويدية Language_sv_SV=السويدية
Language_sv_SE=السويدية Language_sv_SE=السويدية
# Language_vi_VN=Vietnamese
Language_zh_CN=الصينية Language_zh_CN=الصينية
# Language_zh_TW=Chinese (Traditional) # Language_zh_TW=Chinese (Traditional)
Language_is_IS=الآيسلندي

Some files were not shown because too many files have changed in this diff Show More