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
# 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:
- memcached # will start memcached
# This will tell travis to run phpunit
language: php
php:
# - "5.2" is not supported because pyrus to install PHP_Codesniffer is not available
- "5.3"
- "5.4"
- "5.5"
env:
- DB=mysql
@ -20,7 +27,9 @@ before_script:
- echo Start travis
- echo Current dir is `pwd`
- 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
- echo Install phpcs then show installed rules
- pyrus install pear/PHP_CodeSniffer
@ -35,10 +44,12 @@ before_script:
- find $(pwd)/htdocs/documents -type d -exec ls -alt {} \;
- echo Edit php.ini file
- 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 = 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
- echo Init database
- 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.
- 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 #1011 ] Now supplier order and invoice deal with payment terms and mode
- New: [ task #1014 ] Add option to recursivly add parent category
- New: [ task #1016 ] Can define a specific numbering for deposits
- New: [ task #918 ] Stock replenishment
- 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 : Genrate auto the PDF for supplier invoice
- New : Add category into filter webservice thirdparty method getListOfThirdParties
- New : Allow to define margin or mark rate during quoting, ordering, invoicing
- New : User permissions on margin module
- New : Add ref supplier into muscadet model
- New : Add ability to copy contact address to clipboard
- 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 #1016 ] Can define a specific numbering for deposits.
- New: [ task #918 ] Stock replenishment.
- 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 : Genrate auto the PDF for supplier invoice.
- New : Add category into filter webservice thirdparty method getListOfThirdParties.
- New : Allow to define margin or mark rate during quoting, ordering, invoicing.
- New : User permissions on margin module.
- New : Add ref supplier into muscadet model/
- 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: [ task #1060 ] Register fields localtax(1|2)_type into details tables.
- New: [ task #923 ] Localtax support for ODT templates.
@ -61,7 +61,10 @@ For users:
- New: Can send an email from thirdparty card.
- New: Can cancel holidays that were previously validated.
- 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:
- 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 #1062 ] Documents lost in propals and contracts validating
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
@ -243,6 +249,8 @@ backport commit 384e3812eb73a15adafb472cacfb93397a54459b to fix W3C/edit contrac
***** ChangeLog for 3.3.4 compared to 3.3.3 *****
- 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 *****
- 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
user contact). This allow to view a "basket" of its elements.
- 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: Can edit and resiliate member status from list.
- 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 ...
> dput ...
* Go into page. You should see new package into unstable.
http://packages.qa.debian.org/t/tcpdf.html
* Package arrives into FTPmaster taskboard with status NEW (pending upload). You can view it at:
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.

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
AFGHANISTAN;AF
ÅLAND ISLANDS;AX
ÅLAND ISLANDS;AX
ALBANIA;AL
ALGERIA;DZ
AMERICAN SAMOA;AS
@ -62,7 +62,7 @@ CONGO;CG
CONGO, THE DEMOCRATIC REPUBLIC OF THE;CD
COOK ISLANDS;CK
COSTA RICA;CR
CÔTE D'IVOIRE;CI
CÔTE D'IVOIRE;CI
CROATIA;HR
CUBA;CU
CYPRUS;CY
@ -192,7 +192,7 @@ REUNION;RE
ROMANIA;RO
RUSSIAN FEDERATION;RU
RWANDA;RW
SAINT BARTHÉLEMY;BL
SAINT BARTHÉLEMY;BL
SAINT HELENA;SH
SAINT KITTS AND NEVIS;KN
SAINT LUCIA;LC

View File

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

View File

@ -135,7 +135,7 @@ SKK,Slovak Koruna,2
SLL,Sierra Leone Leone,2
SOS,Somali Shilling,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
SYP,Syrian Pound,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" ]
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
echo "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 "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 "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
fi
if [ "x$1" = "xall" ]
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
echo "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->societe = trim($_POST["societe"]);
$object->company = trim($_POST["societe"]);
$object->address = trim($_POST["address"]);
$object->zip = trim($_POST["zipcode"]);
$object->town = trim($_POST["town"]);

View File

@ -82,7 +82,7 @@ $pid=GETPOST("projectid","int",3);
$status=GETPOST("status");
$type=GETPOST("type");
$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') {
$action='show_month'; $day='';
@ -236,7 +236,7 @@ if ($filterd) $param.="&filterd=".$filterd;
if ($socid) $param.="&socid=".$socid;
if ($showbirthday) $param.="&showbirthday=1";
if ($pid) $param.="&projectid=".$pid;
if ($actioncode) $param.="&actioncode=".$actioncode;
if ($actioncode != '') $param.="&actioncode=".$actioncode;
if ($type) $param.="&type=".$type;
if ($action == 'show_day' || $action == 'show_week') $param.='&action='.$action;
$param.="&maxprint=".$maxprint;
@ -382,10 +382,10 @@ if ($resql)
$event->type_code=$obj->code;
$event->libelle=$obj->label;
$event->percentage=$obj->percent;
$event->author->id=$obj->fk_user_author;
$event->usertodo->id=$obj->fk_user_action;
$event->userdone->id=$obj->fk_user_done;
$event->author->id=$obj->fk_user_author; // user id of creator
$event->usertodo->id=$obj->fk_user_action; // user id of owner
$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->fulldayevent=$obj->fulldayevent;
$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)
{
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 $cachethirdparties, $cachecontacts, $colorindexused;
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);
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))
{
$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')
{
@ -1179,9 +1183,10 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
}
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 ($filtera?'&filtera='.$filtera:'').($filtert?'&filtert='.$filtert:'').($filterd?'&filterd='.$filterd:'');
print ($actioncode!=''?'&actioncode='.$actioncode:'');
print '">'.img_picto("all","1downarrow_selected.png").' ...';
print ' +'.(count($eventarray[$daykey])-$maxprint);
print '</a>';

View File

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

View File

@ -128,6 +128,14 @@ if ($action == 'cstc')
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 '</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
if (! empty($conf->global->PRODUIT_MULTIPRICES))
{
@ -898,4 +918,4 @@ dol_htmloutput_mesg('',$mesgs);
// End of page
llxFooter();
$db->close();
?>
?>

View File

@ -1885,6 +1885,18 @@ else
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
$res=$object->fetch_optionals($object->id,$extralabels);
$parameters=array('colspan' => ' colspan="3"');

View File

@ -233,7 +233,7 @@ if ($result)
if ($month) $param.='&month='.$month;
if ($year) $param.='&year='.$year;
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_user > 0) $param.='&search_user='.$search_user;
if ($search_sale > 0) $param.='&search_sale='.$search_sale;
@ -274,9 +274,9 @@ if ($result)
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('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('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('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);
@ -287,15 +287,15 @@ if ($result)
print '<tr 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 class="liste_titre" align="left">';
print '<input class="flat" type="text" size="16" name="search_societe" value="'.$search_societe.'">';
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">';
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 $langs->trans('Month').': <input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
print '&nbsp;'.$langs->trans('Year').': ';
@ -347,6 +347,7 @@ if ($result)
}
print '</td>';
// Ref
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
$filename=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 '</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;
// Company
@ -369,11 +377,6 @@ if ($result)
print $objp->town;
print '</td>';
// Customer ref
print '<td class="nocellnopadd nowrap">';
print $objp->ref_client;
print '</td>';
// Date proposal
print '<td align="center">';
$y = dol_print_date($db->jdate($objp->dp),'%Y');

View File

@ -2195,6 +2195,19 @@ else
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
$res=$object->fetch_optionals($object->id,$extralabels);
$parameters=array('colspan' => ' colspan="3"');

View File

@ -280,8 +280,8 @@ if ($resql)
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('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('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('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);
@ -289,12 +289,15 @@ if ($resql)
print '</tr>';
print '<tr class="liste_titre">';
print '<td class="liste_titre">';
print '<input class="flat" size="10" type="text" name="sref" value="'.$sref.'">';
print '</td><td class="liste_titre" align="left">';
print '<input class="flat" size="6" type="text" name="sref" value="'.$sref.'">';
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 '</td><td class="liste_titre" align="left">';
print '<input class="flat" type="text" size="10" name="sref_client" value="'.$sref_client.'">';
print '</td><td class="liste_titre">&nbsp;';
print '</td>';
print '<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">';
@ -341,6 +344,9 @@ if ($resql)
print '</td>';
// Ref customer
print '<td>'.$objp->ref_client.'</td>';
// Company
$companystatic->id=$objp->socid;
$companystatic->nom=$objp->nom;
@ -362,8 +368,6 @@ if ($resql)
}
print '</td>';
print '<td>'.$objp->ref_client.'</td>';
// Order date
$y = dol_print_date($db->jdate($objp->date_commande),'%Y');
$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.' ');
$result.=$lien.$this->rowid.$lienfin;
if ($option == 'showall' || $option == 'showconciliated') $result.=' (';
if ($option == 'showall')
{
$result.=' (';
$result.=$langs->trans("BankAccount").': ';
$accountstatic=new Account($this->db);
$accountstatic->id=$this->fk_account;
$accountstatic->label=$this->bank_account_label;
$result.=$accountstatic->getNomUrl(0).', ';
}
if ($option == 'showall' || $option == 'showconciliated')
{
$result.=$langs->trans("BankLineConciliated").': ';
$result.=yn($this->rappro);
$result.=')';
}
if ($option == 'showall' || $option == 'showconciliated') $result.=')';
return $result;
}

View File

@ -42,7 +42,7 @@ $debit=GETPOST("debit");
$credit=GETPOST("credit");
$type=GETPOST("type");
$account=GETPOST("account");
$bid=GETPOST("bid");
$bid=GETPOST("bid","int");
$param='';
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.= " bu.label as labelurl, bu.url_id";
$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 as b";
$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;
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"));
}
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"));
}
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
$si=0;

View File

@ -2318,6 +2318,18 @@ if ($action == 'create')
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
$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
@ -3034,6 +3046,7 @@ else if ($id > 0 || ! empty($ref))
$nbrows=8; $nbcols=2;
if (! empty($conf->projet->enabled)) $nbrows++;
if (! empty($conf->banque->enabled)) $nbcols++;
if (! empty($soc->outstandingbill)) $nbrows++;
if($mysoc->localtax1_assuj=="1") $nbrows++;
if($mysoc->localtax2_assuj=="1") $nbrows++;
if ($selleruserevenustamp) $nbrows++;
@ -3305,6 +3318,18 @@ else if ($id > 0 || ! empty($ref))
}
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
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>';
@ -3955,4 +3980,4 @@ dol_htmloutput_mesg('',$mesgs);
llxFooter();
$db->close();
?>
?>

View File

@ -1788,8 +1788,8 @@ class Facture extends CommonInvoice
// Rename directory if dir was a temporary ref
if (preg_match('/^[\(]?PROV/i', $this->ref))
{
// On renomme repertoire facture ($this->ref = ancienne ref, $num = nouvelle ref)
// afin de ne pas perdre les fichiers attaches
// Rename of object directory ($this->ref = old ref, $num = new ref)
// to not lose the linked files
$facref = dol_sanitizeFileName($this->ref);
$snumfa = dol_sanitizeFileName($num);
$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)
{
global $mysoc;
$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);
@ -2023,9 +2023,9 @@ class Facture extends CommonInvoice
// qty, pu, remise_percent et txtva
// 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.
$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);
$total_ht = $tabprice[0];
$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)
{
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
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);
@ -2176,9 +2176,9 @@ class Facture extends CommonInvoice
// 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
// 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);
$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_tva = $tabprice[1];

View File

@ -62,6 +62,7 @@ $confirm=GETPOST('confirm','alpha');
$lineid=GETPOST('lineid','int');
$userid=GETPOST('userid','int');
$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_montant_ht=GETPOST('search_montant_ht','alpha');
$search_montant_ttc=GETPOST('search_montant_ttc','alpha');
@ -139,7 +140,7 @@ $facturestatic=new Facture($db);
if (! $sall) $sql = 'SELECT';
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.paye as paye, f.fk_statut,';
$sql.= ' s.nom, s.rowid as socid';
@ -177,6 +178,10 @@ if ($search_ref)
{
$sql .= natural_search('f.facnumber', $search_ref);
}
if ($search_refcustomer)
{
$sql .= natural_search('f.ref_client', $search_refcustomer);
}
if ($search_societe)
{
$sql .= natural_search('s.nom', $search_societe);
@ -244,6 +249,7 @@ if ($resql)
if ($month) $param.='&month='.$month;
if ($year) $param.='&year=' .$year;
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_sale > 0) $param.='&search_sale=' .$search_sale;
if ($search_user > 0) $param.='&search_user=' .$search_user;
@ -273,13 +279,14 @@ if ($resql)
if ($moreforfilter)
{
print '<tr class="liste_titre">';
print '<td class="liste_titre" colspan="9">';
print '<td class="liste_titre" colspan="10">';
print $moreforfilter;
print '</td></tr>';
}
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('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("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);
@ -294,8 +301,11 @@ if ($resql)
// Filters lines
print '<tr class="liste_titre">';
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 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">';
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.'">';
@ -358,13 +368,18 @@ if ($resql)
print "</td>\n";
// Date
print '<td align="center" nowrap>';
// Customer ref
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 '</td>';
// 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)
{
print img_warning($langs->trans('Late'));
@ -403,7 +418,7 @@ if ($resql)
{
// Print 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_tva,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;
}
$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
$hookmanager = new HookManager($db);
$hookmanager->initHooks(array('paiementcard'));

View File

@ -193,7 +193,7 @@ dol_fiche_head($head, $hselected, $langs->trans("PaymentCustomerInvoice"), 0, 'p
if ($action == 'delete')
{
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'];
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>';
// 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
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 '<td>'.$langs->trans('BankTransactionLine').'</td>';
print '<td colspan="3">';
print $bankline->getNomUrl(1,0,'showall');
print $bankline->getNomUrl(1,0,'showconciliated');
print '</td>';
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) {
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
$bordereau = new RemiseCheque($db);
$bordereau->fetch($bankline->fk_bordereau);
print '<tr>';
print '<td>'.$langs->trans('CheckReceipt').'</td>';
print '<td colspan="3">';

View File

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

View File

@ -116,7 +116,8 @@ $total_ttc=0;
if ($modecompta=="CREANCES-DETTES")
{
$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);
//$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");
@ -127,7 +128,8 @@ if ($modecompta=="CREANCES-DETTES")
}
else {
$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',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>';
@ -135,7 +137,7 @@ else {
$builddate=time();
//$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
print '<table class="noborder" width="100%">';

View File

@ -63,7 +63,8 @@ $exportlink='';
if ($modecompta == 'CREANCES-DETTES')
{
$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";
$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");
@ -75,7 +76,8 @@ if ($modecompta == 'CREANCES-DETTES')
}
else {
$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";
$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");
@ -83,7 +85,7 @@ else {
$builddate=time();
//$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");
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);
@ -155,7 +156,8 @@ if ($modecompta=="CREANCES-DETTES") {
$builddate=time();
} 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);
@ -165,7 +167,7 @@ if ($modecompta=="CREANCES-DETTES") {
$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
@ -382,8 +384,7 @@ if ($modecompta == 'CREANCES-DETTES') {
print '</form>';
} else {
// $modecompta != 'CREANCES-DETTES'
// TODO: better message
print '<div class="warning">' . $langs->trans("WarningNotRelevant") . '</div>';
print '<br>'.$langs->trans("TurnoverPerProductInCommitmentAccountingNotRelevant") . '<br>';
}
llxFooter();

View File

@ -137,7 +137,8 @@ $form=new Form($db);
// Show report header
if ($modecompta=="CREANCES-DETTES") {
$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);
//$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");
@ -147,7 +148,8 @@ if ($modecompta=="CREANCES-DETTES") {
//$exportlink=$langs->trans("NotYetAvailable");
} else {
$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);
//$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");
@ -158,7 +160,7 @@ if ($modecompta=="CREANCES-DETTES") {
$moreparam=array();
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

View File

@ -151,7 +151,8 @@ $formother = new FormOther($db);
if ($modecompta=="CREANCES-DETTES")
{
$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);
//$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");
@ -161,7 +162,8 @@ if ($modecompta=="CREANCES-DETTES")
//$exportlink=$langs->trans("NotYetAvailable");
} else {
$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);
//$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");
@ -170,7 +172,7 @@ if ($modecompta=="CREANCES-DETTES")
//$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
@ -227,7 +229,7 @@ $sql.= " AND f.entity = ".$conf->entity;
if ($socid) $sql.= " AND f.fk_soc = ".$socid;
$sql.= " GROUP BY s.rowid, s.nom";
$sql.= " ORDER BY s.rowid";
echo $sql;
//echo $sql;
$result = $db->query($sql);
if ($result) {

View File

@ -60,7 +60,8 @@ $form=new Form($db);
if ($modecompta=="CREANCES-DETTES")
{
$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";
$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");
@ -71,7 +72,8 @@ if ($modecompta=="CREANCES-DETTES")
}
else {
$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";
$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");
@ -81,7 +83,7 @@ else {
}
$moreparam=array();
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')

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* 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>
*
* 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
{
$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>').')';
$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>":"");
@ -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");
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
$description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time();
//$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
{
$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>').')';
$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>":"");
@ -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 (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
$description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time();
//$exportlink=$langs->trans("NotYetAvailable");
@ -162,7 +164,7 @@ if ($modetax==0) // Invoice for goods, payment for services
$amountsup=$langs->trans("AmountHT");
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");
$vatsup=$langs->trans("VATPaid");

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* 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>
*
* 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.=' <input type="text" name="min" value="'.$min.'">';
// Affiche en-tete du rapport
if ($modetax==1) // Calculate on invoice for goods and services
{
$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);
$prevyear=$year_start; $prevquarter=$q;
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->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) $description.='<br>'.$langs->trans("DepositsAreNotIncluded");
else $description.='<br>'.$langs->trans("DepositsAreIncluded");
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$description.=$fsearch;
$builddate=time();
//$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
{
$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);
$prevyear=$year_start; $prevquarter=$q;
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 (! empty($conf->global->MAIN_MODULE_COMPTABILITE)) $description.='<br>'.$langs->trans("WarningDepositsNotIncluded");
$description.=$fsearch;
$description.='<br>('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')';
$builddate=time();
//$exportlink=$langs->trans("NotYetAvailable");
@ -191,7 +194,7 @@ if ($modetax==0) // Invoice for goods, payment for services
$vatsup=$langs->trans("VATPaid");
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");
$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 User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
@ -481,8 +481,7 @@ class Contact extends CommonObject
$langs->load("companies");
$sql = "SELECT c.rowid, c.fk_soc, c.civilite as civilite_id, c.lastname, c.firstname,";
$sql = "SELECT c.rowid, c.fk_soc, c.ref_ext, c.civilite as civilite_id, c.lastname, c.firstname,";
$sql.= " c.address, c.statut, c.zip, c.town,";
$sql.= " c.fk_pays as country_id,";
$sql.= " c.fk_departement,";
@ -511,6 +510,7 @@ class Contact extends CommonObject
$this->id = $obj->rowid;
$this->ref = $obj->rowid;
$this->ref_ext = $obj->ref_ext;
$this->civilite_id = $obj->civilite_id;
$this->lastname = $obj->lastname;
$this->firstname = $obj->firstname;
@ -972,7 +972,7 @@ class Contact extends CommonObject
}
/**
* Return translated label of Public or Private
*

View File

@ -132,28 +132,25 @@ if (empty($reshook))
}
/*
* Confirmation desactivation
*/
if ($action == 'disable')
{
$object->fetch($id);
$object->setstatus(0);
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
exit;
}
// Confirmation desactivation
if ($action == 'disable')
{
$object->fetch($id);
$object->setstatus(0);
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
exit;
}
/*
* Confirmation activation
*/
if ($action == 'enable')
{
$object->fetch($id);
$object->setstatus(1);
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
exit;
// Confirmation activation
if ($action == 'enable')
{
$object->fetch($id);
$object->setstatus(1);
header("Location: ".$_SERVER['PHP_SELF'].'?id='.$id);
exit;
}
}
// Add contact
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)
{
$result=$object->fetch($_GET["id"]);
$result=$object->fetch($id);
$object->old_lastname = $_POST["old_lastname"];
$object->old_firstname = $_POST["old_firstname"];
@ -248,7 +245,9 @@ if (empty($reshook))
if (! $error)
{
$object->fetch($_POST["contactid"]);
$contactid=GETPOST("contactid",'int');
$object->fetch($contactid);
$object->oldcopy=dol_clone($object);
@ -281,7 +280,7 @@ if (empty($reshook))
// Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
$result = $object->update($_POST["contactid"], $user);
$result = $object->update($contactid, $user);
if ($result > 0)
{
@ -343,8 +342,7 @@ else
{
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
* @return int <0 if KO, >0 if OK
* @param User $user Objet User
* @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';
global $langs, $conf;
$now=dol_now();
$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
$result=$soc->set_as_client();
$this->db->begin();
$this->fetch_thirdparty();
// A contract is validated so we can move thirdparty to status customer
$result=$this->thirdparty->set_as_client();
// Define new ref
if (! $error && (preg_match('/^[\(]?PROV/i', $this->ref)))
{
$num = $this->getNextNumRef($soc);
$num = $this->getNextNumRef($this->thirdparty);
}
else
{
$num = $this->ref;
}
$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET ref = '".$num."', statut = 1";
$sql .= " WHERE rowid = ".$this->id . " AND statut = 0";
$resql = $this->db->query($sql);
if ($resql)
if ($num)
{
// 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
$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET ref = '".$num."', statut = 1";
//$sql.= ", fk_user_valid = ".$user->id.", date_valid = '".$this->db->idate($now)."'";
$sql .= " WHERE rowid = ".$this->id . " AND statut = 0";
dol_syslog(get_class($this)."::validate sql=".$sql);
$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)
{
$this->oldref = '';
// Rename directory if dir was a temporary 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
$facref = dol_sanitizeFileName($this->ref);
$snumfa = dol_sanitizeFileName($num);
@ -330,28 +339,56 @@ class Contrat extends CommonObject
if (file_exists($dirsource))
{
dol_syslog(get_class($this)."::validate rename dir ".$dirsource." into ".$dirdest);
if (@rename($dirsource, $dirdest))
{
$this->oldref = $facref;
dol_syslog("Rename ok");
// Deleting old PDF in new rep
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
{
$this->error=$this->db->error();
$error++;
}
if (! $error)
{
$this->db->commit();
return 1;
}
else
{
$this->db->rollback();
$this->error=$this->db->lasterror();
return -1;
}
}
@ -966,19 +1003,19 @@ class Contrat extends CommonObject
// qty, pu, remise_percent et txtva
// 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.
$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);
$total_ht = $tabprice[0];
$total_tva = $tabprice[1];
$total_ttc = $tabprice[2];
$total_localtax1= $tabprice[9];
$total_localtax2= $tabprice[10];
$localtax1_type=$localtaxes_type[0];
$localtax2_type=$localtaxes_type[2];
// TODO A virer
// Anciens indicateurs: $price, $remise (a ne plus utiliser)
$remise = 0;
@ -1114,19 +1151,19 @@ class Contrat extends CommonObject
// qty, pu, remise_percent et txtva
// 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.
$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);
$total_ht = $tabprice[0];
$total_tva = $tabprice[1];
$total_ttc = $tabprice[2];
$total_localtax1= $tabprice[9];
$total_localtax2= $tabprice[10];
$localtax1_type=$localtaxes_type[0];
$localtax2_type=$localtaxes_type[2];
// TODO A virer
// Anciens indicateurs: $price, $remise (a ne plus utiliser)
$remise = 0;

View File

@ -1,6 +1,6 @@
<?php
/* 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) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com>
@ -464,7 +464,7 @@ abstract class CommonObject
$sql.= " WHERE tc.element='".$this->element."'";
if ($activeonly == 1)
$sql.= " AND tc.active=1"; // only the active type
if (! empty($source)) $sql.= " AND tc.source='".$source."'";
$sql.= " ORDER by tc.".$order;
@ -1112,9 +1112,9 @@ abstract class CommonObject
$row = $this->db->fetch_row($resql);
$rows[] = $row[0]; // Add parent line into array rows
$childrens = $this->getChildrenOfLine($row[0]);
if (! empty($children))
if (! empty($childrens))
{
foreach($children as $child)
foreach($childrens as $child)
{
array_push($rows, $child);
}
@ -2621,7 +2621,7 @@ abstract class CommonObject
}
}
/* This is to show add lines */

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* 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 Marc Barilley/Ocebo <marc@ocebo.com>
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerker@telenet.be>
@ -800,7 +800,7 @@ class Form
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
if ($conf->global->SOCIETE_ADD_REF_IN_LIST) {
if (($obj->client) && (!empty($obj->code_client))) {
$label = $obj->code_client. ' - ';
@ -814,7 +814,7 @@ class Form
{
$label=$obj->nom;
}
if ($showtype)
{
if ($obj->client || $obj->fournisseur) $label.=' (';
@ -2484,9 +2484,9 @@ class Form
/**
* Show a confirmation HTML form or AJAX popup.
* 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)
* just after calling this method. For example:
* 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)
* just after calling this method. For example:
* print '<script type="text/javascript">'."\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";
@ -2587,9 +2587,9 @@ class Form
$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
if (! empty($conf->dol_use_jmobile)) $useajax=0;
if (! empty($conf->dol_use_jmobile)) $useajax=0;
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 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 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.
* @param bool $options_only Return options only (for ajax treatment)
* @return void
@ -3376,7 +3377,7 @@ class Form
// Disabled if seller is not subject to VAT
$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').'"';
$disabled=true;

View File

@ -203,7 +203,7 @@ class FormCompany
* 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.
*
* @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 $htmlname Id of department
* @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">';
}

View File

@ -106,11 +106,12 @@ class Translate
// Array force long code from first part, even if long code is defined
$longforshort=array('ar'=>'ar_SA');
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]);
$longforlong=array('no_nb'=>'nb_NO');
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
// Array to convert short lang code into long code.
@ -784,6 +785,16 @@ class Translate
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';
$h++;
}
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;
@ -70,7 +70,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'localtaxes';
$h++;
}
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;
@ -104,7 +104,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'consumption';
$h++;
}
// Notifications
if (! empty($conf->notification->enabled))
{
@ -113,7 +113,7 @@ function societe_prepare_head($object)
$head[$h][2] = 'notify';
$h++;
}
// Notes
$nbNote = 0;
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 $withcode '0'=Return label,
* '1'=Return string code + label,
* '2'=Return code,
* 'all'=return array('id'=>,'code'=>,'label'=>)
* @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
* @param int $id id of state (province/departement)
* @param int $withcode '0'=Return label,
* '1'=Return string code + label,
* '2'=Return code,
* 'all'=return array('id'=>,'code'=>,'label'=>)
* @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 state name (Return value is always utf8 encoded and without entities)
*/
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>';
elseif ($obj->statut==1) print '<td>'.$langs->trans('Enabled').' </span>'.img_picto($langs->trans('StatusContactValidatedShort'),'statut1').'</td>';
// copy in clipboard
$coords = '';
if (!empty($object->name))
@ -667,7 +667,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print '</a></td>';
}
if ($user->rights->societe->contact->creer)
{
print '<td align="right">';
@ -675,9 +675,9 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
print img_edit();
print '</a></td>';
}
print "</tr>\n";
$i++;
}

View File

@ -2329,7 +2329,7 @@ function print_liste_field_titre($name, $file="", $field="", $begin="", $morepar
* Get title line of an array
*
* @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 $field Field to use for new sorting. Empty if this field is not sortable.
* @param string $begin ("" by defaut)
@ -2347,10 +2347,13 @@ function getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $m
$sortorder=strtoupper($sortorder);
$out='';
$tag='th';
if ($thead==2) $tag='div';
// If field is used as sort criteria we use a specific class
// 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.'>';
else $out.= '<th class="liste_titre" '. $moreattrib.'>';
if ($field && ($sortfield == $field || $sortfield == preg_replace("/^[^\.]+\./","",$field))) $out.= '<'.$tag.' class="liste_titre_sel" '. $moreattrib.'>';
else $out.= '<'.$tag.' class="liste_titre" '. $moreattrib.'>';
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;
}

View File

@ -54,14 +54,16 @@ function dol_json_encode($elements)
//var_dump($num);
// determine type
if (is_numeric(key($elements)))
if (is_numeric(key($elements)) && key($elements) == 0)
{
// 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 = '[';
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]);
else $output .= _val($elements[$i]);
if (! isset($elements[$keysofelements[$i]])) continue;
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.= ',';
}
$output.= ']';

View File

@ -34,9 +34,10 @@
* @param date $builddate Date generation
* @param string $exportlink Link for export or ''
* @param array $moreparam Array with list of params to add into form
* @param string $calcmode Calculation mode
* @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;
@ -59,13 +60,26 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
// Ligne de titre
print '<tr>';
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>';
print $nom;
if ($variante) print '</td><td colspan="2">'.$variante;
if ($variantexxx) print '</td><td colspan="2">'.$variantexxx;
print '</td>';
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
print '<tr>';
print '<td>'.$langs->trans("ReportPeriod").'</td>';

View File

@ -515,22 +515,7 @@ function quotedPrintEncode($str,$forcal=0)
function quotedPrintDecode($str)
{
$out = preg_replace('/=\r?\n/', '', $str);
/*
* 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);
}
$out = quoted_printable_decode($out); // Available with PHP 4+
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', 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 && $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
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__);

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'
{
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)
{
$relurl=dol_buildpath($val['url'],1);
$relurl=preg_replace('/__LOGIN__/',$user->login,$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
$tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all';
@ -211,7 +211,7 @@ class MenuManager
|| (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false))
{
// 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 str_pad('',12,'&nbsp;');
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']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
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
if ($relurl2) print '<a href="'.$relurl2.'">';
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')
{
@ -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);
}
// Clients
// Customers/Prospects
if (! empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
{
$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);
}
// Fournisseurs
// Suppliers
if (! empty($conf->societe->enabled) && ! empty($conf->fournisseur->enabled))
{
$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/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/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

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'
{
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)
{
$relurl=dol_buildpath($val['url'],1);
$relurl=preg_replace('/__LOGIN__/',$user->login,$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
$tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all';
@ -165,7 +165,7 @@ class MenuManager
|| (strpos($canonrelurl,'/product/index.php') !== false || strpos($canonrelurl,'/compta/bank/index.php') !== false))
{
// 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 ' data-ajax="false"';
print '>';
@ -183,7 +183,7 @@ class MenuManager
$canonurl2=preg_replace('/\?.*$/','',$val2['url']);
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
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
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'
{
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)
{
$relurl=dol_buildpath($val['url'],1);
@ -227,7 +227,7 @@ class MenuManager
if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools')))
{
// 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'
{
@ -235,7 +235,7 @@ class MenuManager
$relurl2=preg_replace('/__LOGIN__/',$user->login,$relurl2);
$relurl2=preg_replace('/__USERID__/',$user->id,$relurl2);
//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);
print '</ul>';

View File

@ -74,7 +74,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
$this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement
$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_credit_note = 0; // Support credit notes
$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
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->commande->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->commande->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -535,6 +542,18 @@ class doc_generic_order_odt extends ModelePDFCommandes
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
$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

View File

@ -74,7 +74,7 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
$this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement
$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_credit_note = 0; // Support credit notes
$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_ttc'=>price2num($object->total_ttc),
'object_total_discount_ht' => price2num($object->getTotalDiscount()),
'object_vatrate'=>vatrate($object->tva),
'object_note_private'=>$object->note,
'object_note'=>$object->note_public,
@ -392,15 +392,22 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
// Open and load template
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->expedition->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->expedition->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -535,6 +542,18 @@ class doc_generic_shipment_odt extends ModelePdfExpedition
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
$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

View File

@ -524,14 +524,14 @@ class pdf_merou extends ModelePdfExpedition
if ($object->client->code_client)
{
$Yoff+=7;
$Yoff+=3;
$posy=$Yoff;
$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');
}
//Date Expedition
// Date Expedition
$Yoff = $Yoff+7;
$pdf->SetXY($blSocX-80,$blSocY+20);
$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_condreg = 0; // Affiche conditions reglement
$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_credit_note = 0; // Support credit notes
$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
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->facture->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->facture->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -515,6 +522,18 @@ class doc_generic_invoice_odt extends ModelePDFFactures
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
$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

View File

@ -90,7 +90,7 @@ class doc_generic_project_odt extends ModelePDFProjects
$this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement
$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_credit_note = 0; // Support credit notes
$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'));
global $action;
if (! is_object($outputlangs)) $outputlangs=$langs;
$sav_charset_output=$outputlangs->charset_output;
$outputlangs->charset_output='UTF-8';
@ -469,15 +469,22 @@ class doc_generic_project_odt extends ModelePDFProjects
// Open and load template
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->projet->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->projet->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -586,7 +593,7 @@ class doc_generic_project_odt extends ModelePDFProjects
if (!empty($object->fk_soc)) $socid = $object->fk_soc;
$tasksarray=$taskstatic->getTasksArray(0, 0, $object->id, $socid, 0);
foreach ($tasksarray as $task)
{
@ -910,14 +917,14 @@ class doc_generic_project_odt extends ModelePDFProjects
{
$ref_array=array();
$ref_array['type']=$langs->trans($classname);
$element = new $classname($this->db);
$element->fetch($elementarray[$i]);
$element->fetch_thirdparty();
//Ref object
$ref_array['ref']=$element->ref;
//Date object
$dateref=$element->date;
if (empty($dateref)) $dateref=$element->datep;
@ -977,6 +984,18 @@ class doc_generic_project_odt extends ModelePDFProjects
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
$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
@ -998,7 +1017,7 @@ class doc_generic_project_odt extends ModelePDFProjects
$this->error=$e->getMessage();
return -1;
}
}
}
if (! empty($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;
}
}
if (file_exists($dir))
{
@ -455,15 +455,22 @@ class doc_generic_task_odt extends ModelePDFTask
// Open and load template
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->projet->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->projet->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -677,7 +684,7 @@ class doc_generic_task_odt extends ModelePDFTask
$i++;
}
$this->db->free($resql);
$odfHandler->mergeSegment($listlinestasktime);
}
@ -711,7 +718,7 @@ class doc_generic_task_odt extends ModelePDFTask
//$listlines->merge();
$odfHandler->mergeSegment($listtasksfiles);
}
catch(OdfException $e)
{
@ -793,7 +800,7 @@ class doc_generic_task_odt extends ModelePDFTask
$contact['fullname']=$objectdetail->getFullName($outputlangs,1);
$tmparray=$this->get_substitutionarray_project_contacts($contact,$outputlangs);
foreach($tmparray as $key => $val)
{
try

View File

@ -74,7 +74,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement
$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_credit_note = 0; // Support credit notes
$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('/template_/i','',$newfiletmp);
$newfiletmp=preg_replace('/modele_/i','',$newfiletmp);
$newfiletmp=$objectref.'_'.$newfiletmp;
// Get extension (ods or odt)
$newfileformat=substr($newfile, strrpos($newfile, '.')+1);
if ( ! empty($conf->global->MAIN_DOC_USE_TIMING))
@ -344,15 +344,22 @@ class doc_generic_proposal_odt extends ModelePDFPropales
// Open and load template
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->propal->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->propal->dir_temp,
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
@ -488,6 +495,18 @@ class doc_generic_proposal_odt extends ModelePDFPropales
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
$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
@ -508,7 +527,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$this->error=$e->getMessage();
return -1;
}
}
}
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));

View File

@ -315,7 +315,7 @@ class pdf_azur extends ModelePDFPropales
$posYAfterDescription=0;
// 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);
if (! empty($tplidx)) $pdf->useTemplate($tplidx);

View File

@ -236,16 +236,22 @@ class doc_generic_odt extends ModeleThirdPartyDoc
// Open and load template
require_once ODTPHP_PATH.'odf.php';
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->societe->multidir_temp[$object->entity],
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
try {
$odfHandler = new odf(
$srctemplatepath,
array(
'PATH_TO_TMP' => $conf->societe->multidir_temp[$object->entity],
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
'DELIMITER_LEFT' => '{',
'DELIMITER_RIGHT' => '}'
)
);
}
catch(Exception $e)
{
$this->error=$e->getMessage();
return -1;
}
//print $odfHandler->__toString()."\n";
// 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
$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
@ -339,7 +357,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc
$this->error=$e->getMessage();
return -1;
}
}
}
if (! empty($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/>.
*
* 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;
$nboflines=(isset($object->lines)?count($object->lines):(isset($tasksarray)?count($tasksarray):0));
$forcereloadpage=empty($conf->global->MAIN_FORCE_RELOAD_PAGE)?0:1;
$tagidfortablednd=(empty($tagidfortablednd)?'tablelines':$tagidfortablednd);
if (GETPOST('action') != 'editline' && $nboflines > 1) { ?>
<script type="text/javascript">
@ -37,10 +40,10 @@ $(document).ready(function(){
$(".tdlineupdown").css("background-repeat","no-repeat");
$(".tdlineupdown").css("background-position","center center");
$("#tablelines").tableDnD({
$("#<?php echo $tagidfortablednd; ?>").tableDnD({
onDrop: function(table, row) {
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 fk_element = "<?php echo $fk_element; ?>";
var element_id = "<?php echo $id; ?>";
@ -55,7 +58,7 @@ $(document).ready(function(){
if (reloadpage == 1) {
location.href = '<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; ?>';
} else {
$("#tablelines .drag").each(
$("#<?php echo $tagidfortablednd; ?> .drag").each(
function( intIndex ) {
$(this).removeClass("pair impair");
if (intIndex % 2 == 0) $(this).addClass('impair');

View File

@ -1,5 +1,5 @@
<?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) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
@ -65,7 +65,7 @@
{
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
echo get_date_range($line->date_start, $line->date_end);
@ -78,14 +78,14 @@
} else {
if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow');
if ($type==1) $text = img_object($langs->trans('Service'),'service');
else $text = img_object($langs->trans('Product'),'product');
if (! empty($line->label)) {
$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 {
if (! empty($line->fk_parent_line)) echo img_picto('', 'rightarrow');
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_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('object_id','int'); // Id of order or propal
$id = $origin_id;
$ref=GETPOST('ref','alpha');
// 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));
$object = new Expedition($db);
// Load object
if ($id > 0 || ! empty($ref))
{
$ret=$object->fetch($id, $ref);
}
// Load object
if ($id > 0 || ! empty($ref))
@ -95,8 +90,6 @@ if ($action == 'add')
{
$error=0;
$object = new Expedition($db);
$db->begin();
$object->note = GETPOST('note','alpha');
@ -898,7 +891,7 @@ if ($action == 'create')
}
}
}
else
else if ($id || $ref)
/* *************************************************************************** */
/* */
/* 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_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents)
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.
$tmp='';
$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
$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
// 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='';
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>';
if ($real_dolibarr_main_document_root == @realpath($pathroot.$concatpath)) // @ avoid warning when safe_mode is on.
{
$tmp3=$concatpath;
//print "Found relative url = ".$tmp3;
//print "Found relative url = ".$concatpath;
$tmp3=$concatpath;
$found=1;
break;
}
//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:'');
//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);
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*
@ -176,7 +179,7 @@ $suburi = strstr($uri, '/'); // $suburi contains url without domain:p
if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now ''
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('MAIN_DB_PREFIX',$dolibarr_main_db_prefix);

View File

@ -636,7 +636,7 @@ class FactureFournisseur extends CommonInvoice
else {
$error++;
}
if (! $error)
{
// Delete linked object
@ -1153,6 +1153,7 @@ class FactureFournisseur extends CommonInvoice
if ($type < 0) return -1;
// Clean parameters
if (empty($vatrate)) $vatrate=0;
if (empty($txlocaltax1)) $txlocaltax1=0;
if (empty($txlocaltax2)) $txlocaltax2=0;
@ -1163,9 +1164,9 @@ class FactureFournisseur extends CommonInvoice
// qty, pu, remise_percent et txtva
// 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.
$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);
$total_ht = $tabprice[0];
$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);
$datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']);
@ -162,7 +162,7 @@ if ($result > 0)
if ($action == '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')
{
print $form->formconfirm($_SERVER['PHP_SELF'].'?id='.$object->id, $langs->trans("ValidatePayment"), $langs->trans("ConfirmValidatePayment"), 'confirm_valide');
}
print '<table class="border" width="100%">';
@ -195,7 +195,7 @@ if ($result > 0)
print '</td></tr>';
// 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))
{
@ -218,9 +218,19 @@ if ($result > 0)
print '<tr>';
print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>';
print '<td colspan="3">';
print $bankline->getNomUrl(1,0,'showall');
print $bankline->getNomUrl(1,0,'showconciliated');
print '</td>';
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);
}
if ($sRefSupplier)
{
$sql .= natural_search('ppf.ref_fourn', $sRefSupplier);
}
if ($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("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("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 "</tr>\n";

View File

@ -35,7 +35,7 @@ $ok = 0;
$err=error_reporting();
error_reporting(0); // Disable all errors
//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);
$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;
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)
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
tms timestamp, -- date modif
fk_user_author integer, -- id user qui a cree l'action
fk_user_mod integer, -- id dernier user qui a modifier l'action
tms timestamp, -- date modification
fk_user_author integer, -- user id of user that has created record
fk_user_mod integer, -- user id of user that has modified record
fk_project integer,
fk_soc integer,
fk_contact integer,
fk_parent integer NOT NULL default 0,
fk_user_action integer, -- id de la personne qui doit effectuer l'action
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
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 (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,
fulldayevent smallint NOT NULL default 0,
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_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
product_type integer DEFAULT 1, -- Product type (1=service by default)
info_bits integer DEFAULT 0, -- TVA NPR ou non
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_typent integer DEFAULT 0, --
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
siret varchar(128), -- IDProf2: siret 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
tva_intra varchar(20), -- tva
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_public text, --
prefix_comm varchar(5), -- prefix commercial
@ -85,6 +85,7 @@ create table llx_societe
barcode varchar(255), -- barcode
fk_barcode_type integer NULL DEFAULT 0, -- barcode type
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
logo varchar(255),
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
CHARSET=UTF-8
# Foundation=Foundation
Version=النسخة
VersionProgram=نسخة البرنامج
@ -72,6 +71,8 @@ Mask=قناع
NextValue=قيمة المقبل
NextValueForInvoices=قيمة المقبل (الفواتير)
NextValueForCreditNotes=قيمة المقبل (مذكرات الائتمان)
# NextValueForDeposit=Next value (deposit)
# NextValueForReplacements=Next value (replacements)
MustBeLowerThanPHPLimit=ملاحظة : PHP الخاصة بك في حدود كل من تحميل الملفات لحجم ٪ <b>ق</b> ق ٪ ، مهما كانت قيمة هذا المعلم هو
NoMaxSizeByPHPLimit=ملاحظة : لم يتم تحديد أي في التكوين الخاص بك PHP
MaxSizeForUploadedFiles=الحجم الأقصى لتحميل الملفات (0 لمنع أي تحميل)
@ -487,6 +488,8 @@ Module2900Name= GeoIPMaxmind
Module2900Desc= GeoIP التحويلات Maxmind القدرات
Module5000Name=شركة متعددة
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
# Module6000Name=Workflow
# Module6000Desc=Workflow management
# Module20000Name=Holidays
# Module20000Desc=Declare and follow employees holidays
Module50000Name=PayBox
@ -495,6 +498,10 @@ Module50100Name=نقطة البيع
Module50100Desc=نقطة بيع وحدة
Module50200Name= باي بال
Module50200Desc= وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال
# Module54000Name=PrintIPP
# Module54000Desc=Print via Cups IPP Printer.
# Module55000Name=Open Survey
# Module55000Desc=Module to integrate a survey (like Doodle, Studs, Rdvz, ...)
# Module59000Name=Margins
# Module59000Desc=Module to manage margins
# Module60000Name=Commissions
@ -708,8 +715,11 @@ Permission2515=إعداد وثائق وأدلة
# Permission2801=Use FTP client in read mode (browse and download only)
# Permission2802=Use FTP client in write mode (delete or upload files)
# Permission50101=Use Point of sales
Permission50201= قراءة المعاملات
Permission50202= استيراد المعاملات
Permission50201=قراءة المعاملات
Permission50202=استيراد المعاملات
# Permission54001=Print
# Permission55001=Read surveys
# Permission55002=Create/modify surveys
DictionnaryCompanyType=أنواع الشركة
DictionnaryCompanyJuridicalType=أنواع القانوني للشركة
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.
# XDebugInstalled=XDebug est chargé.
# XCacheInstalled=XCache is loaded.
# AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink
##### Module password generation
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
PasswordGenerationNone=لا توحي بأي كلمة المرور المتولدة. يجب أن تكون كلمة السر في نوع يدويا.

View File

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

View File

@ -1,14 +1,4 @@
/*
* 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
# Dolibarr language file - Source file is en_US - banks
Bank=البنك
Banks=المصارف
MenuBankCash=البنك / النقدية
@ -29,6 +19,8 @@ SavingAccount=حساب توفير
SavingAccounts=حسابات التوفير
ErrorBankLabelAlreadyExists=الحساب المالي الملصق موجود بالفعل
BankBalance=التوازن
# BankBalanceBefore=Balance before
# BankBalanceAfter=Balance after
BalanceMinimalAllowed=الحد الأدنى المسموح التوازن
BalanceMinimalDesired=الحد الأدنى من التوازن المطلوب
InitialBankBalance=الرصيد الأولي
@ -51,11 +43,11 @@ LastAccountStatements=كشوفات الحساب الأخير
Rapprochement=المصالحة
IOMonthlyReporting=تقارير شهرية
BankAccountDomiciliation=معالجة حساب
BankAccountCountry=حساب البلاد
BankAccountOwner=اسم صاحب الحساب
BankAccountOwnerAddress=معالجة حساب المالك
RIBControlError=التحقق من تكامل القيم يفشل. وهذا يعني حصول على معلومات عن هذا رقم الحساب ليست كاملة أو خاطئة (ارجع البلد والأرقام وIBAN).
CreateAccount=إنشاء حساب
StandingOrderToProcess=لعملية
StandingOrderProcessed=تجهيز
NewAccount=حساب جديد
NewBankAccount=حساب مصرفي جديد
NewFinancialAccount=الحساب المالي الجديد
@ -112,7 +104,9 @@ ConciliatedBy=طريق التصالح
DateConciliating=التوفيق التاريخ
BankLineConciliated=صفقة التصالح
CustomerInvoicePayment=عملاء الدفع
# CustomerInvoicePaymentBack=Customer payment back
SupplierInvoicePayment=المورد الدفع
WithdrawalPayment=انسحاب الدفع
SocialContributionPayment=دفع المساهمة الاجتماعية
FinancialAccountJournal=مجلة الحساب المالي
BankTransfer=حوالة مصرفية
@ -128,6 +122,7 @@ DeleteCheckReceipt=تأكد من ورود حذف هذا؟
ConfirmDeleteCheckReceipt=هل أنت متأكد من أنك تريد حذف هذا التحقق من ورود؟
BankChecks=الشيكات المصرفية
BankChecksToReceipt=في انتظار إيداع الشيكات
ShowCheckReceipt=الاختيار إظهار تلقي الودائع
NumberOfCheques=ملاحظة : للشيكات
DeleteTransaction=حذف المعاملات
ConfirmDeleteTransaction=هل أنت متأكد من أنك تريد حذف هذه الصفقة؟
@ -135,42 +130,23 @@ ThisWillAlsoDeleteBankRecord=وهذا من شأنه أيضا حذف المتول
BankMovements=حركات
CashBudget=الميزانية النقدية
PlannedTransactions=المخطط المعاملات
Graph=الرسومات
ExportDataset_banque_1=المعاملات المصرفية وحساب
TransactionOnTheOtherAccount=صفقة على حساب الآخرين
TransactionWithOtherAccount=تحويل الحساب
PaymentNumberUpdateSucceeded=دفع عدد تحديث بنجاح
PaymentNumberUpdateFailed=دفع عددا لا يمكن تحديث
PaymentDateUpdateSucceeded=تاريخ التحديث الدفع بنجاح
PaymentDateUpdateFailed=دفع حتى الآن لا يمكن تحديث
# Transactions=Transactions
BankTransactionLine=المعاملات المصرفية
AllAccounts=جميع المصرفية / حسابات نقدية
BackToAccount=إلى حساب
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=الصفقة في أجل المستقبل. أي وسيلة للتوفيق.
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
CHARSET=UTF-8
Bill=فاتورة
Bills=فواتير
BillsCustomers=العملاء والفواتير

View File

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

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - boxes
CHARSET=UTF-8
BoxLastRssInfos=Rss المعلومات
BoxLastProducts=ق الماضي ٪ منتجات / خدمات
# BoxProductsAlertStock=Products in stock alert
@ -75,10 +74,18 @@ NoRecordedProducts=لم تسجل المنتجات / الخدمات
NoRecordedProspects=لم تسجل آفاق
NoContractedProducts=أي المنتجات / الخدمات المتعاقد عليها
NoRecordedContracts=لا عقود المسجلة
# NoRecordedInterventions=No recorded interventions
# BoxLatestSupplierOrders=Latest supplier orders
# BoxTitleLatestSupplierOrders=%s latest supplier orders
# NoSupplierOrder=No recorded supplier order
# BoxInvoicesPerMonth=Invoices per month
# BoxOrdersPerMonth=Orders per month
# BoxCustomersInvoicesPerMonth=Customer invoices per month
# BoxSuppliersInvoicesPerMonth=Supplier invoices per month
# BoxCustomersOrdersPerMonth=Customer orders per month
# BoxSuppliersOrdersPerMonth=Supplier orders per month
# BoxProposalsPerMonth=Proposals per month
# 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
CHARSET=UTF-8
CashDeskMenu=نقطة بيع
CashDesk=نقطة بيع
CashDesks=نقاط البيع
@ -37,3 +36,4 @@ BankToPay=تهمة حساب
ShowCompany=عرض شركة
ShowStock=عرض مستودع
DeleteArticle=انقر لإزالة هذه المادة
# FilterRefOrLabelOrBC=Search (Ref/Label)

View File

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

View File

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

View File

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

View File

@ -1,10 +1,9 @@
# Dolibarr language file - Source file is en_US - compta
CHARSET=UTF-8
Accountancy=المحاسبة
AccountancyCard=بطاقة المحاسبة
Treasury=الخزانة
MenuFinancial=المالية
TaxModuleSetupToModifyRules=انتقل إلى <a href="%s">وحدة الإعداد</a> لتعديل القواعد لحساب
# TaxModuleSetupToModifyRules=Go to <a href="%s">Taxes module setup</a> to modify rules for calculation
OptionMode=الخيار المحاسبة
OptionModeTrue=خيار المدخلات والمخرجات
OptionModeVirtual=الخيار بين اعتمادات الديون
@ -103,8 +102,12 @@ ConfirmPaySocialContribution=هل أنت متأكد من أن يصنف هذه ا
DeleteSocialContribution=حذف المساهمات الاجتماعية
ConfirmDeleteSocialContribution=هل أنت متأكد من أنك تريد حذف هذه المساهمة الاجتماعية؟
ExportDataset_tax_1=المساهمات الاجتماعية والمدفوعات
AnnualSummaryDueDebtMode=ميزان الإيرادات والمصروفات ، وموجزا سنويا ، طريقة <b>٪ sClaims - ديونها ٪ ق</b> قال <b>الالتزام والمحاسبة.</b>
AnnualSummaryInputOutputMode=ميزان الإيرادات والنفقات السنوية وخلاصة طريقة <b>sRevenues - ٪ ق ٪ Expensens</b> قال <b>المحاسبة النقدية.</b>
# CalcModeVATDebt=Mode <b>%sVAT on commitment accounting%s</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>
AnnualByCompaniesInputOutputMode=ميزان الإيرادات والنفقات ، وبالتفصيل من قبل أطراف ثالثة ، واسطة بين <b>sRevenues ٪ من مصروفات ٪ ق</b> قال <b>المحاسبة النقدية.</b>
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
@ -117,13 +120,13 @@ RulesCAIn=-- ويشمل جميع الفعال دفع الفواتير الوار
DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير
DepositsAreIncluded=- وترد الفواتير ودائع
LT2ReportByCustomersInInputOutputModeES=تقرير من قبل طرف ثالث IRPF
VATReportByCustomersInInputOutputMode=تقرير من العملاء المجمعة ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة ورود)
VATReportByCustomersInDueDebtMode=تقرير من العملاء المجمعة ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة بمعدل)
VATReportByQuartersInInputOutputMode=التقرير الفصلي للتجمع ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة ورود)
VATReportByQuartersInDueDebtMode=التقرير الفصلي للتجمع ، وتدفع ضريبة القيمة المضافة (ضريبة القيمة المضافة بمعدل)
# VATReportByCustomersInInputOutputMode=Report by the customer VAT collected and paid
# VATReportByCustomersInDueDebtMode=Report by the customer VAT collected and paid
# VATReportByQuartersInInputOutputMode=Report by rate of the VAT collected and paid
# VATReportByQuartersInDueDebtMode=Report by rate of the VAT collected and paid
SeeVATReportInInputOutputMode=انظر التقرير <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=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير على أساس من تاريخ الفاتورة.
RulesVATDueServices=- للحصول على الخدمات، ويتضمن التقرير فواتير ضريبة القيمة المضافة المستحقة، مدفوعة الأجر أم لا، بناء على تاريخ الفاتورة.
RulesVATDueProducts=- للحصول على الأصول المادية، فإنه يشمل ضريبة القيمة المضافة على الفواتير، بناء على تاريخ الفاتورة.
@ -155,3 +158,14 @@ WarningDepositsNotIncluded=لا يتم تضمين فواتير الودائع ف
# AccountancyDashboard=Accountancy summary
# ByProductsAndServices=By products and services
# 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
CHARSET=UTF-8
ContractsArea=عقود منطقة
ListOfContracts=قائمة العقود
LastContracts=آخر تعديل العقود ق ٪

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,4 @@
# Dolibarr language file - Source file is en_US - errors
CHARSET=UTF-8
# No errors
# NoErrorCommitIsDone=No error, we commit
@ -125,6 +124,9 @@ ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها
# ErrorFailedToAddContact=Failed to add contact
# 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.
# 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
# WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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