Merge branch 'develop' of github.com:atm-maxime/dolibarr into new_modimport_update_option
@ -257,7 +257,7 @@ script:
|
||||
# Ensure we catch errors
|
||||
set -e
|
||||
# Exclusions are defined in the ruleset.xml file
|
||||
phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/codesniffer/ruleset.xml --encoding=utf-8 .
|
||||
phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 .
|
||||
set +e
|
||||
echo
|
||||
|
||||
|
||||
123
ChangeLog
@ -24,69 +24,96 @@ Dolibarr better:
|
||||
- Function delete of class Facture (invoice) need the object $user as first parameter. Also you must
|
||||
check you make a fetch on object before calling the delete.
|
||||
- The old driver of "mysql" has been removed. Dolibarr use the new one (mysqli) by default.
|
||||
- Remove not used function calculate_byte(). Use dol_print_size() instead.
|
||||
- Function pdf_getTotalQty is now deprecated. Not used by Dolibarr core.
|
||||
- Method expensereport->delete(id, user) has been replaced with ->delete(user)
|
||||
Method warehouse->delete(id) has been replace with ->delete(user)
|
||||
This is to follow good practice to make a fetch on object before deleting it.
|
||||
- The form to add a product to a draft proposal/order/invoice from the product card is hidden by default.
|
||||
It was not commonly used and usage generates some problems (cost price for margin calculation not entered, vat setting).
|
||||
Set constant PRODUCT_ADD_FORM_ADD_TO to retrieve it.
|
||||
|
||||
|
||||
|
||||
***** ChangeLog for 4.0.1 compared to 4.0.0 *****
|
||||
FIX #2853
|
||||
FIX #2991
|
||||
FIX #3128
|
||||
FIX: #5699
|
||||
FIX #5734
|
||||
FIX : #5776
|
||||
FIX alignement of intervention status
|
||||
FIX Clean of search fields
|
||||
FIX Creation of donation should go back on card after creation
|
||||
FIX Date visible on project overview
|
||||
FIX Execute a dedicated job from its id may results of launching other jobs too.
|
||||
FIX: Failed to export contact categories with contact extra fields
|
||||
FIX inversion customer/supplier price
|
||||
FIX link "back to list" was not visible.
|
||||
FIX Lost filter on opportunities
|
||||
FIX Mandatory field payment term was not css highlighted.
|
||||
FIX Menu users not visible on dolidroid.
|
||||
FIX SEC for HTB23302
|
||||
FIX The email test sender in email setup was broken
|
||||
FIX Translation of "Name" is not a good choice for floow-up.
|
||||
FIX Update of maxnbrun on job list failed.
|
||||
FIX Value of payment term and project are not set on correct default value when invoice generated from template.
|
||||
FIX: vat dictionary should allow enter and edit multiple values for localtaxes, separated by: (ex -19:-15)
|
||||
|
||||
***** ChangeLog for 4.0.0 compared to 3.9.* *****
|
||||
For users:
|
||||
NEW: Add reccuring invoice feature and automatic generation of invoices.
|
||||
NEW: Add recurring invoice feature and automatic generation of invoices.
|
||||
NEW: Add module "Loan" as stable.
|
||||
NEW: Add module "Supplier commercial proposal" (price request) is set to stable status.
|
||||
NEW: Experimental module Accountancy Expert
|
||||
NEW: Experimental module Multicurency
|
||||
NEW: Show into badge on tab head the number of dedicated contacts for all objects.
|
||||
NEW: Add module "Supplier commercial proposal" (price request) with stable status.
|
||||
NEW: Can select dynamicaly number of lines to show on page on product, shipment, contact, orders, thirdparties.
|
||||
NEW: Can select fields to show on list also for list of customer orders, supplier orders, shipments, proposals and invoices.
|
||||
NEW: Show into badge on tab head, the number of dedicated contacts for all objects.
|
||||
NEW: Add a checkbox to select/unselect all lines on page that support mass actions (like invoice list page)
|
||||
NEW: Add a new method for margin calculation. Added margin on "cost price" to margin on WAP price and margin on "best supplier price".
|
||||
NEW: Add a new method for margin calculation. Added margin on "cost price" in addition to margin on WAP price and margin on "best supplier price".
|
||||
NEW: Add an explanation message on shipment page to explain you can't make shipment if order is not validated
|
||||
NEW: Add date_rum into table of thirdparty bank account.
|
||||
NEW: The probability of lead/opportunity can be defined per lead.
|
||||
NEW: Added Malta VAT into migration script
|
||||
NEW: #4972 Translated Charges sociales (type 0) and Charges sociales (type 1) in reports page
|
||||
NEW: Add Expense report into accountancy report
|
||||
NEW: Add Expense report to approve into workboard
|
||||
NEW: Selection of boxes is move on top of home page
|
||||
NEW: Add filter on a keyword, status and nature into list of modules
|
||||
NEW: Selection of boxes is moved on top of home page
|
||||
NEW: Add filter on a keyword, status and nature into list of modules.
|
||||
NEW: Add hidden option BANK_DISABLE_CHECK_DEPOSIT to disable check deposit feature.
|
||||
NEW: Add option MAIN_PUBLIC_NOTE_IN_ADDRESS
|
||||
NEW: add html id/class to locate value in the DOM html
|
||||
NEW: Add hidden option MAIN_PUBLIC_NOTE_IN_ADDRESS
|
||||
NEW: Add index on invoice status
|
||||
NEW: Add constant MAIN_LOGTOHTML to 0 into other setup by default to save time when we need to make debug on hosted instance.
|
||||
NEW: Add constant MAIN_LOGTOHTML to 0 into setup by default to save time when we need to make debug on hosted instance.
|
||||
NEW: Add list of billed
|
||||
NEW: Add minimum stock and desired stock into import/export profiles.
|
||||
NEW: Add state into thirdparty export fields
|
||||
NEW: Add state into thirdparty export fields.
|
||||
NEW: Add more trackable events (create, submit and receive supplier order).
|
||||
NEW: Add option MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN
|
||||
NEW: Add hidden option MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN
|
||||
NEW: Add picto on module list to show warning and if module is an external module.
|
||||
NEW: add product type filter on turnover report
|
||||
NEW: Add product type filter on turnover report
|
||||
NEW: Add state into list of fields available for personalized fields of thirdparties
|
||||
NEW: Add statistics for interventions module
|
||||
NEW: Add statistics on number of projets on home page
|
||||
NEW: Add stats and late records into dashboard for supplier proposals.
|
||||
NEW: Add statistics and late records into dashboard for supplier proposals.
|
||||
NEW: Add the admin info on combo of type of contact
|
||||
NEW: Add the event BILL_PAYED to list of supported events for module notification.
|
||||
NEW: Add total weight and volume on PDF
|
||||
NEW: Add the event BILL_PAYED to the list of supported events for module notification.
|
||||
NEW: Add total weight and volume on PDF.
|
||||
NEW: Add hidden option to hide column qty ordered on shipments.
|
||||
NEW: Add view of virtual stock into product list (when appropriate)
|
||||
NEW: Add warning on tasks when they are late (add also the warning tolerance parameter)
|
||||
NEW: Add weight/volume for one product into shipment export
|
||||
NEW: Add view of virtual stock into product list (when appropriate).
|
||||
NEW: Add warning on tasks when they are late (add also the warning tolerance parameter).
|
||||
NEW: Add weight/volume for one product into shipment export.
|
||||
NEW: Add width and height on product card
|
||||
NEW: allow a document to be linked to project from another customer on config
|
||||
NEW: allow project to be shared across entities (for multicompany module)
|
||||
NEW: allow a document to be linked to project of another customer by config setup.
|
||||
NEW: allow project to be shared across entities (for multicompany module).
|
||||
NEW: All variant of ckeditor config can be tested into the setup page of module.
|
||||
NEW: Can change dynamically number of records visible into lists.
|
||||
NEW: Can change type of extrafields for some combinations.
|
||||
NEW: Can define number of first and last line into import wizard.
|
||||
NEW: Can change type of extrafields (for some combinations only).
|
||||
NEW: Can define number of first and last line to import into import wizard.
|
||||
NEW: Can edit next execution date of a cron job.
|
||||
NEW: Can edit value date of a vat payment after recording it.
|
||||
NEW: Can filter modules on publisher
|
||||
NEW: Can filter on employee status when building emailing from users
|
||||
NEW: Can reopen an closed shipment
|
||||
NEW: Can search on shipments into the quick search box
|
||||
NEW: Can select dynamicaly number of lines to show on page on product, shipment, contact, orders, thirdparties
|
||||
NEW: Can select fields to show on supplier orders list.
|
||||
NEW: Can select fields to show on list also for list of customer orders, shipments and invoices.
|
||||
NEW: Can select fields to show on proposal lists.
|
||||
NEW: Can select language from combo list on page to overwrite a translation
|
||||
NEW: Can filter modules on publisher.
|
||||
NEW: Can filter on employee status when building emailing from users.
|
||||
NEW: Can reopen an closed shipment.
|
||||
NEW: Can search on shipments into the quick search box.
|
||||
NEW: Can select language from a combo list on page to overwrite a translation.
|
||||
NEW: Can select number of lines on page list for projects and tasks.
|
||||
NEW: Can use ^ and $ (to say start with or end with like regex syntax) into search fields when search field is text. Bonus: ^$ can filter all lines with field not defined.
|
||||
NEW: Clean and enhance code for cron engine
|
||||
@ -108,32 +135,35 @@ NEW: Into GED module, filename is truncated only if there is not enough space in
|
||||
NEW: Introduce a predefined job to run database backup
|
||||
NEW: Introduce option MAIN_WEIGHT_DEFAULT_UNIT and MAIN_VOLUME_DEFAULT_UNIT to force output unit for weight and volume.
|
||||
NEW: Introduce position of records into dictionnary of type of contacts
|
||||
NEW: Link on user in leave context reach to leave tab.
|
||||
NEW: List of user in agenda view per user show photo thumb
|
||||
NEW: Link on a user in leave page reach to leave tab of user.
|
||||
NEW: List of user in agenda view per user show photo thumb.
|
||||
NEW: Margins module - Check/update buying price on invoice lines
|
||||
NEW: Merge all admin tools (system and module admin tools) into same entry "Admin tools", so now things are clear: All features restricted to an admin user is inside "setup" (for setup) or "admin tools" (for action tools) instead of 3 different entries.
|
||||
NEW: Merge all boxes "related objects" into one. This save a lot of room on most card and avoid often horizontal scoll.
|
||||
NEW: Moved code that deals with bank categories to BankCateg. Created BankCateg::fetchAll function
|
||||
NEW: Move Expense report menu from module to menu files
|
||||
NEW: Move HRM dictionary from module to core dictionaries
|
||||
NEW: Move HRM dictionary from module to core dictionaries.
|
||||
NEW: Mutualize code to manage email substitution variables. Show available variables into page to edit email templates.
|
||||
NEW: Mutualize code: Use one call of function "addThumbs", when possible, to generate thumbs files instead of several call of "vignette" function.
|
||||
NEW: On translation admin page, admin can overwrite a translation value.
|
||||
NEW: Option MAIN_LIST_FILTER_ON_DAY is supported on proposal list
|
||||
NEW: Add reputation field for price supplier
|
||||
NEW: Rest API token is no more reset at each call. We can reset it with param reset=1 on login call.
|
||||
NEW: Option MAIN_LIST_FILTER_ON_DAY is supported on proposal list.
|
||||
NEW: Add reputation field for price supplier.
|
||||
NEW: Selection of fields is available on member list.
|
||||
NEW: Show a badge with number of withdraw requests done on the withdraw tab of invoice.
|
||||
NEW: Add option to show detail per warehouse into reassort
|
||||
NEW: Show total number of modules into the module list
|
||||
NEW: Add option to show detail per warehouse into reassort.
|
||||
NEW: Show total number of modules into the module list.
|
||||
NEW: Survey system has now a status like other objects. You can close or reopen a survey.
|
||||
NEW: The note on time spent can be entered when using the view per day.
|
||||
NEW: Use ellipsis truncation on too large left menu text
|
||||
NEW: The note on time spent can be entered when using the "view per day".
|
||||
NEW: Use ellipsis truncation on too large left menu text.
|
||||
NEW: When a new field to show into lists is selected, the form is automatically submited and field added.
|
||||
NEW: When creating a template invoice from a draft invoice, if there is link to contract on draft invoice, link is kept on template invoice.
|
||||
NEW: When emailing is not sent completely, show progression.
|
||||
NEW: Experimental module Accountancy Expert.
|
||||
NEW: Experimental module Multicurency
|
||||
|
||||
For developers:
|
||||
NEW: Add entity field in llx_societe_remise_except and llx_societe_remise.
|
||||
NEW: Rest API token is no more reset at each call. We can reset it with param reset=1 on login call.
|
||||
NEW: Add html id/class to locate value in the DOM html
|
||||
NEW: Add a css class style called 'reposition', so when clicking on a link with this class will move scrollbarr to be placed at same page location.
|
||||
NEW: TimeZone can be supplied to mktime
|
||||
NEW: hook in shipment card
|
||||
@ -153,8 +183,9 @@ NEW: Removed deprecated CommonObject::client property. Please use CommonObject::
|
||||
NEW: Removed unused FormOrder::selectSourcesCommande function
|
||||
NEW: Renamed ActionComm::add function to ActionComm::create
|
||||
NEW: Rename Form::select_date to Form::selectDate and Form::form_date to Form::formDate
|
||||
NEW: Rename path for generiN
|
||||
NEW: Rename path for generic media files
|
||||
NEW: More phpunit tests. Include some REST API into automatic tests.
|
||||
NEW: Move Expense report menu from module to menu files.
|
||||
|
||||
|
||||
WARNING:
|
||||
|
||||
@ -25,7 +25,7 @@ OpenSuse, Mandriva ou Mageia).
|
||||
Vous pouvez les télécharger depuis la rubrique *download* du portail officiel:
|
||||
https://www.dolibarr.org/
|
||||
|
||||
Si vous avez déjà installé un serveur Web avec PHP et une base de donnée (Mysql),
|
||||
Si vous avez déjà installé un serveur Web avec PHP et une base de donnée (MariaDb/MySql/PostgreSql),
|
||||
vous pouvez installer Dolibarr avec cette version de la manière suivante:
|
||||
|
||||
- Copier le répertoire "dolibarr" et son contenu dans la racine de votre serveur
|
||||
@ -117,8 +117,8 @@ Voir fichier ChangeLog.
|
||||
- Application simple à utiliser.
|
||||
- Plusieurs thèmes visuels.
|
||||
- Code simple et facilement personnalisable.
|
||||
- Requiert PHP et Mysql ou Postgresql (Voir versions exactes sur http://wiki.dolibarr.org/index.php/Prérequis).
|
||||
- Compatible avec toutes les offres Cloud du marché respectant les prérequis MySQL et PHP ou Postgresql.
|
||||
- Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur http://wiki.dolibarr.org/index.php/Prérequis).
|
||||
- Compatible avec toutes les offres Cloud du marché respectant les prérequis de base de données et PHP.
|
||||
- Export PDF de tous les éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
|
||||
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ If you have low technical skills and you're looking to install Dolibarr ERP/CRM
|
||||
|
||||
### Advanced setup
|
||||
|
||||
You can use a Web server and a supported database (MySQL recommended) to install the standard version.
|
||||
You can use a Web server and a supported database (MariaDb, MySql or Postgresql) to install the standard version.
|
||||
|
||||
- Uncompress the downloaded archive
|
||||
- Copy directory "dolibarr" and all its files inside your web server root, or copy directory anywhere and set up your web server to use "dolibarr/htdocs" as root for a new web server virtual host (second choice need to be server administrator)
|
||||
@ -119,7 +119,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
||||
- Can manage several currencies by adding external module multi-currency.
|
||||
- Very user friendly and easy to use
|
||||
- Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several menu managers (can be used by internal users as a back-office with a particular menu, or by external users as a front-office with another one)
|
||||
- Works with PHP 5.3+ and MySQL 4.1+ or PostgreSQL 8.1. (See requirements on the [Wiki](http://wiki.dolibarr.org/index.php/Prerequisite))
|
||||
- Works with PHP 5.3+ and MariaDB 5.0.3+, MySQL 5.0.3+ or PostgreSQL 8.1.4+ (See requirements on the [Wiki](http://wiki.dolibarr.org/index.php/Prerequisite))
|
||||
- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
|
||||
- An easy to understand, maintain and code interfaces with your own information system (PHP with no heavy framework; trigger and hook architecture)
|
||||
- Support for country specific features:
|
||||
|
||||
@ -1,78 +0,0 @@
|
||||
README (French)
|
||||
################################
|
||||
Building packages
|
||||
################################
|
||||
|
||||
Les sous repertoires du repertoire "build" contiennent tous les fichiers
|
||||
requis pour packager Dolibarr de maniere automatisee.
|
||||
On trouve plusieurs outils:
|
||||
|
||||
- Pour construire un package Dolibarr complet, il suffit de
|
||||
> Editer la version dans le fichier makepack-dolibarr.pl
|
||||
> Lancer la commande perl makepack-dolibarr.pl
|
||||
|
||||
- Pour construire un package d'une traduction, il suffit de lancer le script
|
||||
> perl makepack-dolibarrlang.pl
|
||||
|
||||
- Pour construire un package d'un theme, il suffit de lancer le script
|
||||
> perl makepack-dolibarrtheme.pl
|
||||
|
||||
- Pour construire un package d'un module, il suffit de lancer le script
|
||||
> perl makepack-dolibarrmodule.pl
|
||||
|
||||
- Pour construire un package DoliWamp autoexe:
|
||||
> Installer InnoSetup (http://www.jrsoftware.org)
|
||||
> Installer WampServer dans "C:\Program Files\Wamp" (http://www.wampserver.com)
|
||||
> Installer les addon WampServer afin d'y mettre les versions:
|
||||
Apache2.2.6, Mysql5.0.45, Php5.2.5
|
||||
> Modifier dans le fichier build/exe/doliwamp.iss la variable SourceDir
|
||||
afin d'y mettre le repository Dolibarr.
|
||||
> Modifier AppVerName et OutputBaseFilename.
|
||||
> Lancer innosetup, ouvrir le fichier build/exe/doliwamp.iss et cliquer sur
|
||||
le bouton "Compile". Le fichier .exe sera fabrique dans le repertoire build.
|
||||
|
||||
- Pour generer la documentation developpeur, lancer le script
|
||||
> perl dolybarr-doxygen-build.pl
|
||||
|
||||
|
||||
Note:
|
||||
|
||||
Le repertoire build et tout ce qu'il contient n'est absolument pas requis
|
||||
pour faire fonctionner Dolibarr. Ils ne servent qu'a la generation des
|
||||
packages. Certains packages, une fois construit, n'incluent par le repertoire
|
||||
"build".
|
||||
|
||||
On trouve dans le repertoire "build", les sous-repertoires utilises par
|
||||
l'outil makepack-dolibarr.pl:
|
||||
|
||||
* deb:
|
||||
Fichier de config pour construire un package Debian.
|
||||
|
||||
* rpm:
|
||||
Fichier de config pour construire un package Redhat ou Mandrake.
|
||||
|
||||
* tgz:
|
||||
Fichier de config pour construire un package tgz.
|
||||
|
||||
* exe:
|
||||
Fichier de config pour construire un package exe pour Windows des sources
|
||||
ou pour construire l'assistant d'installation complet DoliWamp.
|
||||
|
||||
* zip:
|
||||
Fichier de config pour construire un package zip.
|
||||
|
||||
* live:
|
||||
Fichier pour fabriquer un live CD de demo de Dolibarr.
|
||||
|
||||
* patch:
|
||||
Fichier exemple de generation de fichier patch pour diffusion d'une
|
||||
modification de Dolibarr.
|
||||
|
||||
* doap:
|
||||
Fichier descriptif DOAP pour promouvoir/decrire la version de Dolibarr.
|
||||
|
||||
* pad:
|
||||
Fichier descriptif PAD pour promouvoir/decrire la version de Dolibarr.
|
||||
|
||||
* dmg:
|
||||
Fichier de config pour construire un package dmg DoliMamp pour Mac OS X
|
||||
@ -26,11 +26,11 @@ Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm |
|
||||
# Misc dependencies
|
||||
# fonts-dejavu-core | ttf-dejavu-core,
|
||||
xdg-utils,
|
||||
mysql-server,
|
||||
mysql-client,
|
||||
virtual-mysql-client,
|
||||
${misc:Depends},
|
||||
${perl:Depends}
|
||||
Recommends: apache2 | lighttpd | httpd
|
||||
Recommends: apache2 | lighttpd | httpd,
|
||||
virtual-mysql-server
|
||||
Suggests: www-browser, php5-geoip
|
||||
Description: Web based software to manage a company or foundation
|
||||
Dolibarr ERP & CRM is an easy to use open source/free software package for
|
||||
|
||||
@ -32,11 +32,33 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once($path."../htdocs/master.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||
|
||||
// Main
|
||||
|
||||
/*
|
||||
* Main
|
||||
*/
|
||||
|
||||
if (empty($argv[1]))
|
||||
{
|
||||
print "Usage: ".$script_file." release=x.y.z\n";
|
||||
exit -1;
|
||||
}
|
||||
parse_str($argv[1]);
|
||||
|
||||
if ($release != DOL_VERSION)
|
||||
{
|
||||
print 'Error: release is not version declared into filefunc.in.php.'."\n";
|
||||
exit -1;
|
||||
}
|
||||
|
||||
//$outputfile=dirname(__FILE__).'/../htdocs/install/filelist-'.$release.'.xml';
|
||||
$outputfile=dirname(__FILE__).'/../htdocs/install/filelist.xml';
|
||||
$outputdir=dirname(__FILE__).'/../htdocs/install';
|
||||
print 'Delete current files '.$outputdir.'/filelist*.xml'."\n";
|
||||
dol_delete_file($outputdir.'/filelist*.xml',0,1,1);
|
||||
|
||||
$outputfile=$outputdir.'/filelist-'.$release.'.xml';
|
||||
$fp = fopen($outputfile,'w');
|
||||
fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
|
||||
fputs($fp, '<checksum_list version="'.$release.'">'."\n");
|
||||
@ -317,8 +317,13 @@ print "\n";
|
||||
if ($CHOOSEDTARGET{'-CHKSUM'})
|
||||
{
|
||||
print 'Create xml check file with md5 checksum with command php '.$SOURCE.'/build/generate_filecheck_xml.php release='.$MAJOR.'.'.$MINOR.'.'.$BUILD."\n";
|
||||
$ret=`php $SOURCE/build/generate_filecheck_xml.php release=$MAJOR.$MINOR.$BUILD`;
|
||||
$ret=`php $SOURCE/build/generate_filelist_xml.php release=$MAJOR.$MINOR.$BUILD`;
|
||||
print $ret."\n";
|
||||
# Copy to final dir
|
||||
$NEWDESTI=$DESTI;
|
||||
print "Copy \"$SOURCE/htdocs/install/filelist-$MAJOR.$MINOR.$BUILD.xml\" to $NEWDESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml\n";
|
||||
use File::Copy qw(copy);
|
||||
copy "$SOURCE/htdocs/install/filelist-$MAJOR.$MINOR.$BUILD.xml", "$NEWDESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml";
|
||||
}
|
||||
|
||||
|
||||
@ -603,7 +608,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'TGZ')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/standard');
|
||||
if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; }
|
||||
@ -635,7 +640,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'XZ')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/standard');
|
||||
if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; }
|
||||
@ -672,7 +677,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'ZIP')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/standard');
|
||||
if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; }
|
||||
@ -713,7 +718,7 @@ if ($nboftargetok) {
|
||||
if ($target =~ /FEDO/i) { $subdir="package_rpm_redhat-fedora"; }
|
||||
if ($target =~ /MAND/i) { $subdir="package_rpm_mandriva"; }
|
||||
if ($target =~ /OPEN/i) { $subdir="package_rpm_opensuse"; }
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/'.$subdir);
|
||||
if (-d $DESTI.'/'.$subdir) { $NEWDESTI=$DESTI.'/'.$subdir; }
|
||||
@ -799,7 +804,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'DEB')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/package_debian-ubuntu');
|
||||
if (-d $DESTI.'/package_debian-ubuntu') { $NEWDESTI=$DESTI.'/package_debian-ubuntu'; }
|
||||
@ -1002,7 +1007,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'APS')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/package_aps');
|
||||
if (-d $DESTI.'/package_aps') { $NEWDESTI=$DESTI.'/package_aps'; }
|
||||
@ -1088,7 +1093,7 @@ if ($nboftargetok) {
|
||||
if ($target eq 'EXEDOLIWAMP')
|
||||
{
|
||||
$NEWDESTI=$DESTI;
|
||||
if ($NEWPUBLISH =~ /stable/)
|
||||
if ($NEWDESTI =~ /stable/)
|
||||
{
|
||||
mkdir($DESTI.'/package_windows');
|
||||
if (-d $DESTI.'/package_windows') { $NEWDESTI=$DESTI.'/package_windows'; }
|
||||
@ -1132,6 +1137,7 @@ if ($nboftargetok) {
|
||||
|
||||
print "\nList of files to publish (BUILD=$BUILD)\n";
|
||||
%filestoscansf=(
|
||||
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
|
||||
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'Dolibarr installer for Fedora-Redhat-Mandriva-Opensuse (DoliRpm)',
|
||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'Dolibarr installer for Debian-Ubuntu (DoliDeb)',
|
||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'none',
|
||||
@ -1140,6 +1146,7 @@ if ($nboftargetok) {
|
||||
"$DESTI/standard/$FILENAMETGZ.zip"=>'Dolibarr ERP-CRM'
|
||||
);
|
||||
%filestoscanstableasso=(
|
||||
"$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'signatures',
|
||||
"$DESTI/package_rpm_generic/$FILENAMERPM"=>'package_rpm_generic',
|
||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEB}_all.deb"=>'package_debian-ubuntu',
|
||||
"$DESTI/package_debian-ubuntu/${FILENAMEDEBSHORT}.orig.tar.gz"=>'package_debian-ubuntu',
|
||||
|
||||
@ -2,14 +2,22 @@
|
||||
"name": "dolibarr/dolibarr",
|
||||
"type": "project",
|
||||
"description": "Dolibarr ERP & CRM is a modern and easy to use web software to manage your business",
|
||||
"keywords": ["erp","crm","invoice","sme","proposal","order","stock"],
|
||||
"homepage": "http://www.dolibarr.org",
|
||||
"keywords": [
|
||||
"erp",
|
||||
"crm",
|
||||
"invoice",
|
||||
"sme",
|
||||
"proposal",
|
||||
"order",
|
||||
"stock",
|
||||
"agenda"
|
||||
],
|
||||
"homepage": "https://www.dolibarr.org",
|
||||
"license": "GPL-3.0+",
|
||||
"support": {
|
||||
"issues": "https://github.com/Dolibarr/dolibarr/issues",
|
||||
"forum": "http://www.dolibarr.org/forum",
|
||||
"wiki": "http://wiki.dolibarr.org",
|
||||
"irc": "irc://chat.freenode.net/dolibarr",
|
||||
"forum": "https://www.dolibarr.org/forum",
|
||||
"wiki": "https://wiki.dolibarr.org",
|
||||
"source": "https://github.com/Dolibarr/dolibarr"
|
||||
},
|
||||
"config": {
|
||||
@ -47,7 +55,6 @@
|
||||
"ext-soap": "Native SOAP",
|
||||
"ext-zip": "ODT and Excel support",
|
||||
"ext-xml": "Excel support",
|
||||
"firephp/firephp-core": "Logging to Firebug console support",
|
||||
"raven/raven": "Sentry logging server support"
|
||||
"firephp/firephp-core": "Logging to Firebug console support"
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ provided with a standard release.
|
||||
|
||||
|
||||
There is also some documentation on Dolibarr Wiki:
|
||||
http://wiki.dolibarr.org/
|
||||
https://wiki.dolibarr.org/
|
||||
and
|
||||
http://www.dolibarr.org/html_doxygen/index.html
|
||||
https://doxygen.dolibarr.org/
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
@ -2,24 +2,32 @@ README (English)
|
||||
--------------------------------
|
||||
This directory contains PHP script samples that can be used to start a development on Dolibarr.
|
||||
|
||||
build_class_from_table.php:
|
||||
|
||||
*** build_class_from_table.php:
|
||||
|
||||
This is the script to use to generate PHP code of a PHP POJO class
|
||||
object, a PHP script that use this POJO. This script use the files
|
||||
skeleton_*.php to build its generated code.
|
||||
|
||||
|
||||
modMyModule.class.php:
|
||||
*** modMyModule.class.php:
|
||||
|
||||
Is a sample of module descriptor that you can use if you want to build a new module/plugin for
|
||||
Dolibarr.
|
||||
|
||||
|
||||
skeleton_script.php:
|
||||
*** skeleton_script.php:
|
||||
|
||||
Is a sample you can use as an example if you need to build a script to run on command line
|
||||
|
||||
skeleton_page.php:
|
||||
|
||||
*** skeleton_page.php:
|
||||
|
||||
Is a sample you can use as an example if you need to build an HTML page to include in Dolibarr GUI.
|
||||
|
||||
skeleton_class.class.php:
|
||||
|
||||
*** skeleton_class.class.php:
|
||||
|
||||
Is a sample you can use as an example if you need to build a class file to access a new table required by a Dolibarr development.
|
||||
However it is better to run the build_class_from_table.php script that accepts a table name as a parameter and will uses the description table within database and the skeleton_class.class.php file to generate full code for your class file.
|
||||
After running this script, the class to access your table (insert a record, update, delete and select) is directly finished and can be used by your module's code.
|
||||
|
||||
@ -62,7 +62,7 @@ class modMyModule extends DolibarrModules
|
||||
$this->name = preg_replace('/^mod/i','',get_class($this));
|
||||
// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
|
||||
$this->description = "Description of module MyModule";
|
||||
$this->descriptionlong = "A very lon description. Can be a full HTML content";
|
||||
$this->descriptionlong = "A very long description. Can be a full HTML content";
|
||||
$this->editor_name = 'Editor name';
|
||||
$this->editor_url = 'http://www.dolibarr.org';
|
||||
|
||||
@ -105,9 +105,9 @@ class modMyModule extends DolibarrModules
|
||||
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of modules id this module is in conflict with
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,0); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("mylangfile@mymodule");
|
||||
|
||||
@ -59,25 +59,27 @@ $myparam = GETPOST('myparam','alpha');
|
||||
$search_field1=GETPOST("search_field1");
|
||||
$search_field2=GETPOST("search_field2");
|
||||
|
||||
if (empty($action) && empty($id) && empty($ref)) $action='view';
|
||||
|
||||
// Protection if external user
|
||||
if ($user->societe_id > 0)
|
||||
{
|
||||
//accessforbidden();
|
||||
}
|
||||
//$result = restrictedArea($user, 'mymodule', $id);
|
||||
|
||||
if (empty($action) && empty($id) && empty($ref)) $action='list';
|
||||
|
||||
// Load object if id or ref is provided as parameter
|
||||
$object=new Skeleton_Class($db);
|
||||
if (($id > 0 || ! empty($ref)) && $action != 'add')
|
||||
{
|
||||
$result=$object->fetch($id,$ref);
|
||||
if ($result < 0) dol_print_error($db);
|
||||
}
|
||||
$object = new Skeleton_Class($db);
|
||||
$extrafields = new ExtraFields($db);
|
||||
|
||||
// fetch optionals attributes and labels
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||
|
||||
// Load object
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
|
||||
|
||||
// Initialize technical object to manage hooks of modules. Note that conf->hooks_modules contains array array
|
||||
$hookmanager->initHooks(array('skeleton'));
|
||||
$extrafields = new ExtraFields($db);
|
||||
|
||||
|
||||
|
||||
@ -281,8 +283,13 @@ if (($id || $ref) && $action == 'edit')
|
||||
|
||||
|
||||
// Part to show record
|
||||
if ($id && (empty($action) || $action == 'view' || $action == 'delete'))
|
||||
if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create')))
|
||||
{
|
||||
$res = $object->fetch_optionals($object->id, $extralabels);
|
||||
|
||||
$head = commande_prepare_head($object);
|
||||
dol_fiche_head($head, 'order', $langs->trans("CustomerOrder"), 0, 'order');
|
||||
|
||||
print load_fiche_titre($langs->trans("MyModule"));
|
||||
|
||||
dol_fiche_head();
|
||||
@ -293,7 +300,7 @@ if ($id && (empty($action) || $action == 'view' || $action == 'delete'))
|
||||
}
|
||||
|
||||
print '<table class="border centpercent">'."\n";
|
||||
// print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input class="flat" type="text" size="36" name="label" value="'.$label.'"></td></tr>';
|
||||
// print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td>'.$object->label.'</td></tr>';
|
||||
// LIST_OF_TD_LABEL_FIELDS_VIEW
|
||||
print '</table>';
|
||||
|
||||
|
||||
@ -181,6 +181,16 @@ class Skeleton_Class extends CommonObject
|
||||
$this->prop2 = $obj->field2;
|
||||
//...
|
||||
}
|
||||
|
||||
// Retrieve all extrafields for invoice
|
||||
// fetch optionals attributes and labels
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
||||
$extrafields=new ExtraFields($this->db);
|
||||
$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
|
||||
$this->fetch_optionals($this->id,$extralabels);
|
||||
|
||||
// $this->fetch_lines();
|
||||
|
||||
$this->db->free($resql);
|
||||
|
||||
if ($numrows) {
|
||||
@ -355,6 +365,8 @@ class Skeleton_Class extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
// If you need to delete child tables to, you can insert them here
|
||||
|
||||
if (!$error) {
|
||||
$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
|
||||
$sql .= ' WHERE rowid=' . $this->id;
|
||||
@ -427,8 +439,7 @@ class Skeleton_Class extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a link to the user card (with optionaly the picto)
|
||||
* Use this->id,this->lastname, this->firstname
|
||||
* Return a link to the object card (with optionaly the picto)
|
||||
*
|
||||
* @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto)
|
||||
* @param string $option On what the link point to
|
||||
@ -451,7 +462,7 @@ class Skeleton_Class extends CommonObject
|
||||
$label.= '<div width="100%">';
|
||||
$label.= '<b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
|
||||
|
||||
$link = '<a href="'.DOL_URL_ROOT.'/mymodule/card.php?id='.$this->id.'"';
|
||||
$link = '<a href="'.DOL_URL_ROOT.'/mymodule/'.$this->table_name.'_card.php?id='.$this->id.'"';
|
||||
$link.= ($notooltip?'':' title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip'.($morecss?' '.$morecss:'').'"');
|
||||
$link.= '>';
|
||||
$linkend='</a>';
|
||||
@ -477,13 +488,13 @@ class Skeleton_Class extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoi le libelle d'un status donne
|
||||
* Return the status
|
||||
*
|
||||
* @param int $status Id status
|
||||
* @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
|
||||
* @param int $mode 0=long label, 1=short label, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
|
||||
* @return string Label of status
|
||||
*/
|
||||
function LibStatut($status,$mode=0)
|
||||
static function LibStatut($status,$mode=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
|
||||
@ -256,11 +256,11 @@ if ($resql)
|
||||
|
||||
$arrayofselected=is_array($toselect)?$toselect:array();
|
||||
|
||||
$params='';
|
||||
$param='';
|
||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||
if ($search_field1 != '') $params.= '&search_field1='.urlencode($search_field1);
|
||||
if ($search_field2 != '') $params.= '&search_field2='.urlencode($search_field2);
|
||||
if ($search_field1 != '') $param.= '&search_field1='.urlencode($search_field1);
|
||||
if ($search_field2 != '') $param.= '&search_field2='.urlencode($search_field2);
|
||||
if ($optioncss != '') $param.='&optioncss='.$optioncss;
|
||||
// Add $param from extra fields
|
||||
foreach ($search_array_options as $key => $val)
|
||||
@ -286,7 +286,7 @@ if ($resql)
|
||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||
|
||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies', 0, '', '', $limit);
|
||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies', 0, '', '', $limit);
|
||||
|
||||
if ($sall)
|
||||
{
|
||||
@ -319,8 +319,8 @@ if ($resql)
|
||||
// Fields title
|
||||
print '<tr class="liste_titre">';
|
||||
// LIST_OF_TD_TITLE_FIELDS
|
||||
//if (! empty($arrayfields['t.field1']['checked'])) print_liste_field_titre($arrayfields['t.field1']['label'],$_SERVER['PHP_SELF'],'t.field1','',$params,'',$sortfield,$sortorder);
|
||||
//if (! empty($arrayfields['t.field2']['checked'])) print_liste_field_titre($arrayfields['t.field2']['label'],$_SERVER['PHP_SELF'],'t.field2','',$params,'',$sortfield,$sortorder);
|
||||
//if (! empty($arrayfields['t.field1']['checked'])) print_liste_field_titre($arrayfields['t.field1']['label'],$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder);
|
||||
//if (! empty($arrayfields['t.field2']['checked'])) print_liste_field_titre($arrayfields['t.field2']['label'],$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder);
|
||||
// Extra fields
|
||||
if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
|
||||
{
|
||||
|
||||
BIN
doc/images/dolibarr_screenshot1_1280x800.jpg
Normal file
|
After Width: | Height: | Size: 234 KiB |
@ -19,7 +19,7 @@
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/admin/account.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief List accounting account
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/admin/card.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief Card of accounting account
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
@ -43,13 +43,13 @@ $rowid = GETPOST('rowid', 'int');
|
||||
$cancel = GETPOST('cancel');
|
||||
|
||||
// Security check
|
||||
if (! $user->admin)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
$object = new AccountingAccount($db);
|
||||
|
||||
// Action
|
||||
if ($action == 'add') {
|
||||
if ($action == 'add' && $user->rights->accounting->chartofaccount)
|
||||
{
|
||||
if (! $cancel) {
|
||||
$sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
|
||||
|
||||
@ -69,10 +69,10 @@ if ($action == 'add') {
|
||||
$account_number = clean_account(GETPOST('account_number'));
|
||||
}
|
||||
|
||||
if (GETPOST('account_category') <= 0) {
|
||||
$account_parent = '';
|
||||
if (GETPOST('account_parent') <= 0) {
|
||||
$account_parent = 0;
|
||||
} else {
|
||||
$account_parent = GETPOST('account_category','int');
|
||||
$account_parent = GETPOST('account_parent','int');
|
||||
}
|
||||
|
||||
$object->fk_pcg_version = $obj->pcg_version;
|
||||
@ -97,8 +97,8 @@ if ($action == 'add') {
|
||||
}
|
||||
header("Location: account.php");
|
||||
exit;
|
||||
} else if ($action == 'edit') {
|
||||
if (! GETPOST('cancel', 'alpha')) {
|
||||
} else if ($action == 'edit' && $user->rights->accounting->chartofaccount) {
|
||||
if (! $cancel) {
|
||||
$result = $object->fetch($id);
|
||||
|
||||
$sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid=' . $conf->global->CHARTOFACCOUNTS;
|
||||
@ -119,10 +119,10 @@ if ($action == 'add') {
|
||||
$account_number = clean_account(GETPOST('account_number'));
|
||||
}
|
||||
|
||||
if (GETPOST('account_category') <= 0) {
|
||||
$account_parent = '';
|
||||
if (GETPOST('account_parent') <= 0) {
|
||||
$account_parent = 0;
|
||||
} else {
|
||||
$account_parent = GETPOST('account_category','int');
|
||||
$account_parent = GETPOST('account_parent','int');
|
||||
}
|
||||
|
||||
$object->fk_pcg_version = $obj->pcg_version;
|
||||
@ -145,7 +145,7 @@ if ($action == 'add') {
|
||||
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||
exit();
|
||||
}
|
||||
} else if ($action == 'delete') {
|
||||
} else if ($action == 'delete' && $user->rights->accounting->chartofaccount) {
|
||||
$result = $object->fetch($id);
|
||||
|
||||
if (! empty($object->id)) {
|
||||
@ -165,7 +165,9 @@ if ($action == 'add') {
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
llxheader('', $langs->trans('AccountAccounting'));
|
||||
$title = $langs->trans('AccountAccounting') ." - ". $langs->trans('Card');
|
||||
$helpurl = '';
|
||||
llxheader('', $title, $helpurl);
|
||||
|
||||
$form = new Form($db);
|
||||
$htmlacc = new FormVentilation($db);
|
||||
@ -184,7 +186,7 @@ if ($action == 'create') {
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Account number
|
||||
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<tr><td class="titlefieldcreate"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<td><input name="account_number" size="30" value="' . $object->account_number . '"</td></tr>';
|
||||
|
||||
// Label
|
||||
@ -247,7 +249,7 @@ if ($action == 'create') {
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Account number
|
||||
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<tr><td class="titlefieldcreate"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
|
||||
print '<td><input name="account_number" size="30" value="' . $object->account_number . '"</td></tr>';
|
||||
|
||||
// Label
|
||||
@ -299,7 +301,7 @@ if ($action == 'create') {
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Account number
|
||||
print '<tr><td width="25%">' . $langs->trans("AccountNumber") . '</td>';
|
||||
print '<tr><td class="titlefield">' . $langs->trans("AccountNumber") . '</td>';
|
||||
print '<td>' . $object->account_number . '</td>';
|
||||
print '<td align="right" width="25%">' . $linkback . '</td></tr>';
|
||||
|
||||
@ -327,14 +329,14 @@ if ($action == 'create') {
|
||||
print '<td colspan="2">' . $object->pcg_subtype . '</td></tr>';
|
||||
|
||||
// Active
|
||||
print '<tr><td>' . $langs->trans("Activated") . '</td>';
|
||||
print '<tr><td>' . $langs->trans("Status") . '</td>';
|
||||
print '<td colspan="2">';
|
||||
|
||||
if (empty($object->active)) {
|
||||
print $object->getLibStatut(4);
|
||||
/*if (empty($object->active)) {
|
||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||
} else {
|
||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||
}
|
||||
}*/
|
||||
|
||||
print '</td></tr>';
|
||||
|
||||
@ -348,13 +350,13 @@ if ($action == 'create') {
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
if ($user->admin) {
|
||||
if (! empty($user->rights->accounting->chartofaccount)) {
|
||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=update&id=' . $id . '">' . $langs->trans('Modify') . '</a>';
|
||||
} else {
|
||||
print '<a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('Modify') . '</a>';
|
||||
}
|
||||
|
||||
if ($user->admin) {
|
||||
if (! empty($user->rights->accounting->chartofaccount)) {
|
||||
print '<a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?action=delete&id=' . $id . '">' . $langs->trans('Delete') . '</a>';
|
||||
} else {
|
||||
print '<a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('Delete') . '</a>';
|
||||
|
||||
@ -81,6 +81,9 @@ if ($action == 'update') {
|
||||
if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) {
|
||||
$error ++;
|
||||
}
|
||||
if ($modelcsv==AccountancyExport::$EXPORT_TYPE_QUADRATUS || $modelcsv==AccountancyExport::$EXPORT_TYPE_CIEL) {
|
||||
dolibarr_set_const($db, 'ACCOUNTING_EXPORT_FORMAT', 'txt', 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
} else {
|
||||
$error ++;
|
||||
}
|
||||
|
||||
@ -16,12 +16,12 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/admin/fiscalyear.php
|
||||
* \ingroup fiscal year
|
||||
* \brief Setup page to configure fiscal year
|
||||
* \file htdocs/accountancy/admin/fiscalyear.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief Setup page to configure fiscal year
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/fiscalyear.class.php';
|
||||
|
||||
@ -45,9 +45,9 @@ $langs->load("compta");
|
||||
// Security check
|
||||
if ($user->societe_id > 0)
|
||||
accessforbidden();
|
||||
if (! $user->rights->accounting->fiscalyear)
|
||||
accessforbidden();
|
||||
|
||||
if (! $user->rights->mouvements->lire) // If we can read accounting records, we shoul be able to see fiscal year.
|
||||
accessforbidden();
|
||||
|
||||
$error = 0;
|
||||
|
||||
// List of status
|
||||
@ -65,6 +65,7 @@ $errors = array ();
|
||||
|
||||
$object = new Fiscalyear($db);
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
@ -80,8 +81,8 @@ $max = 100;
|
||||
$form = new Form($db);
|
||||
|
||||
$title = $langs->trans('FiscalYears');
|
||||
|
||||
llxHeader('', $title, LOG_ERR);
|
||||
$helpurl = "";
|
||||
llxHeader('', $title, $helpurl);
|
||||
|
||||
$sql = "SELECT f.rowid, f.label, f.date_start, f.date_end, f.statut, f.entity";
|
||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_fiscalyear as f";
|
||||
@ -94,7 +95,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||
{
|
||||
$result = $db->query($sql);
|
||||
$nbtotalofrecords = $db->num_rows($result);
|
||||
}
|
||||
}
|
||||
|
||||
$sql.= $db->plimit($limit+1, $offset);
|
||||
|
||||
@ -102,12 +103,12 @@ $result = $db->query($sql);
|
||||
if ($result) {
|
||||
$var = false;
|
||||
$num = $db->num_rows($result);
|
||||
|
||||
|
||||
$i = 0;
|
||||
|
||||
$title = $langs->trans('FiscalYears');
|
||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $params, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_generic', 0, '', '', $limit, 1);
|
||||
|
||||
|
||||
// Load attribute_label
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
@ -117,10 +118,10 @@ if ($result) {
|
||||
print '<td>' . $langs->trans("DateEnd") . '</td>';
|
||||
print '<td align="right">' . $langs->trans("Statut") . '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
if ($num) {
|
||||
$fiscalyearstatic = new Fiscalyear($db);
|
||||
|
||||
|
||||
while ( $i < $num && $i < $max ) {
|
||||
$obj = $db->fetch_object($result);
|
||||
$fiscalyearstatic->id = $obj->rowid;
|
||||
@ -137,7 +138,6 @@ if ($result) {
|
||||
} else {
|
||||
print '<tr ' . $bc[$var] . '><td colspan="5" class="opacitymedium">' . $langs->trans("None") . '</td></tr>';
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
@ -147,7 +147,14 @@ dol_fiche_end();
|
||||
|
||||
// Buttons
|
||||
print '<div class="tabsAction">';
|
||||
print '<a class="butAction" href="fiscalyear_card.php?action=create">' . $langs->trans("NewFiscalYear") . '</a>';
|
||||
if (! empty($user->rights->accounting->fiscalyear))
|
||||
{
|
||||
print '<a class="butAction" href="fiscalyear_card.php?action=create">' . $langs->trans("NewFiscalYear") . '</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<a class="butActionRefused" href="#">' . $langs->trans("NewFiscalYear") . '</a>';
|
||||
}
|
||||
print '</div>';
|
||||
|
||||
llxFooter();
|
||||
|
||||
@ -16,8 +16,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/admin/fiscalyear_card.php
|
||||
* \brief Page to show a fiscal year
|
||||
* \file htdocs/accountancy/admin/fiscalyear_card.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief Page to show a fiscal year
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
|
||||
@ -28,7 +29,9 @@ $langs->load("admin");
|
||||
$langs->load("compta");
|
||||
|
||||
// Security check
|
||||
if (! $user->admin)
|
||||
if ($user->societe_id > 0)
|
||||
accessforbidden();
|
||||
if (empty($user->rights->accounting->fiscalyear))
|
||||
accessforbidden();
|
||||
|
||||
$error = 0;
|
||||
@ -71,13 +74,13 @@ if ($action == 'confirm_delete' && $confirm == "yes") {
|
||||
else if ($action == 'add') {
|
||||
if (! GETPOST('cancel', 'alpha')) {
|
||||
$error = 0;
|
||||
|
||||
|
||||
$object->date_start = $date_start;
|
||||
$object->date_end = $date_end;
|
||||
$object->label = GETPOST('label', 'alpha');
|
||||
$object->statut = GETPOST('statut', 'int');
|
||||
$object->datec = dol_now();
|
||||
|
||||
|
||||
if (empty($object->date_start) && empty($object->date_end)) {
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors');
|
||||
$error ++;
|
||||
@ -86,20 +89,20 @@ else if ($action == 'add') {
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label")), null, 'errors');
|
||||
$error ++;
|
||||
}
|
||||
|
||||
|
||||
if (! $error) {
|
||||
$db->begin();
|
||||
|
||||
|
||||
$id = $object->create($user);
|
||||
|
||||
|
||||
if ($id > 0) {
|
||||
$db->commit();
|
||||
|
||||
|
||||
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
|
||||
exit();
|
||||
} else {
|
||||
$db->rollback();
|
||||
|
||||
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
@ -116,12 +119,12 @@ else if ($action == 'add') {
|
||||
else if ($action == 'update') {
|
||||
if (! GETPOST('cancel', 'alpha')) {
|
||||
$result = $object->fetch($id);
|
||||
|
||||
|
||||
$object->date_start = empty($_POST["fiscalyear"]) ? '' : $date_start;
|
||||
$object->date_end = empty($_POST["fiscalyearend"]) ? '' : $date_end;
|
||||
$object->label = GETPOST('label', 'alpha');
|
||||
$object->statut = GETPOST('statut', 'int');
|
||||
|
||||
|
||||
$result = $object->update($user);
|
||||
|
||||
if ($result > 0) {
|
||||
@ -136,108 +139,112 @@ else if ($action == 'update') {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
llxHeader();
|
||||
$title = $langs->trans("Fiscalyear") . " - " . $langs->trans("Card");
|
||||
$helpurl = "";
|
||||
llxHeader("",$title,$helpurl);
|
||||
|
||||
$form = new Form($db);
|
||||
|
||||
if ($action == 'create')
|
||||
{
|
||||
print load_fiche_titre($langs->trans("NewFiscalYear"));
|
||||
|
||||
|
||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="add">';
|
||||
|
||||
|
||||
dol_fiche_head();
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
// Label
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("Label") . '</td><td><input name="label" size="32" value="' . GETPOST("label") . '"></td></tr>';
|
||||
|
||||
print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans("Label") . '</td><td><input name="label" size="32" value="' . GETPOST("label") . '"></td></tr>';
|
||||
|
||||
// Date start
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("DateStart") . '</td><td>';
|
||||
print $form->select_date(($date_start ? $date_start : ''), 'fiscalyear');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Date end
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("DateEnd") . '</td><td>';
|
||||
print $form->select_date(($date_end ? $date_end : - 1), 'fiscalyearend');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr>';
|
||||
print '<td class="fieldrequired">' . $langs->trans("Status") . '</td>';
|
||||
print '<td class="valeur">';
|
||||
print $form->selectarray('statut', $statut2label, GETPOST('statut'));
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
|
||||
print '<div class="center">';
|
||||
print '<input class="button" type="submit" value="' . $langs->trans("Save") . '">';
|
||||
print ' ';
|
||||
print '<input class="button" type="submit" name="cancel" value="' . $langs->trans("Cancel") . '">';
|
||||
print '</div>';
|
||||
|
||||
|
||||
print '</form>';
|
||||
} else if ($id) {
|
||||
$result = $object->fetch($id);
|
||||
if ($result > 0) {
|
||||
$head = fiscalyear_prepare_head($object);
|
||||
|
||||
|
||||
if ($action == 'edit') {
|
||||
dol_fiche_head($head, 'card', $langs->trans("FiscalYearCard"), 0, 'cron');
|
||||
|
||||
dol_fiche_head($head, 'card', $langs->trans("Fiscalyear"), 0, 'cron');
|
||||
|
||||
print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
|
||||
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
print '<input type="hidden" name="id" value="' . $id . '">';
|
||||
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
// Ref
|
||||
print "<tr>";
|
||||
print '<td class="titlefield">' . $langs->trans("Ref") . '</td><td>';
|
||||
print '<td class="titlefieldcreate titlefield">' . $langs->trans("Ref") . '</td><td>';
|
||||
print $object->ref;
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Label
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("Label") . '</td><td>';
|
||||
print '<input name="label" class="flat" size="32" value="' . $object->label . '">';
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Date start
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("DateStart") . '</td><td>';
|
||||
print $form->select_date($object->date_start ? $object->date_start : - 1, 'fiscalyear');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Date end
|
||||
print '<tr><td class="fieldrequired">' . $langs->trans("DateEnd") . '</td><td>';
|
||||
print $form->select_date($object->date_end ? $object->date_end : - 1, 'fiscalyearend');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>' . $langs->trans("Statut") . '</td><td>';
|
||||
print $form->selectarray('statut', $statut2label, $object->statut);
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
print '</table>';
|
||||
|
||||
|
||||
print '<br><div class="center">';
|
||||
print '<input type="submit" class="button" value="' . $langs->trans("Save") . '">';
|
||||
print ' ';
|
||||
print '<input type="submit" name="cancel" class="button" value="' . $langs->trans("Cancel") . '">';
|
||||
print '</div>';
|
||||
|
||||
|
||||
print '</form>';
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
} else {
|
||||
/*
|
||||
@ -246,59 +253,61 @@ if ($action == 'create')
|
||||
if ($action == 'delete') {
|
||||
print $form->formconfirm($_SERVER["PHP_SELF"] . "?id=" . $id, $langs->trans("DeleteFiscalYear"), $langs->trans("ConfirmDeleteFiscalYear"), "confirm_delete");
|
||||
}
|
||||
|
||||
dol_fiche_head($head, 'card', $langs->trans("FiscalYearCard"), 0, 'cron');
|
||||
|
||||
|
||||
dol_fiche_head($head, 'card', $langs->trans("Fiscalyear"), 0, 'cron');
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
|
||||
$linkback = '<a href="' . DOL_URL_ROOT . '/accountancy/admin/fiscalyear.php">' . $langs->trans("BackToList") . '</a>';
|
||||
|
||||
|
||||
// Ref
|
||||
print '<tr><td width="25%">' . $langs->trans("Ref") . '</td><td width="50%">';
|
||||
print '<tr><td class="titlefield">' . $langs->trans("Ref") . '</td><td width="50%">';
|
||||
print $object->ref;
|
||||
print '</td><td width="25%">';
|
||||
print '</td><td>';
|
||||
print $linkback;
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Label
|
||||
print '<tr><td valign="top">';
|
||||
print $form->editfieldkey("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32');
|
||||
print '</td><td colspan="2">';
|
||||
print $form->editfieldval("Label", 'label', $object->label, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'alpha:32');
|
||||
print "</td></tr>";
|
||||
|
||||
|
||||
// Date start
|
||||
print '<tr><td>';
|
||||
print $form->editfieldkey("DateStart", 'date_start', $object->date_start, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker');
|
||||
print '</td><td colspan="2">';
|
||||
print $form->editfieldval("DateStart", 'date_start', $object->date_start, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Date end
|
||||
print '<tr><td>';
|
||||
print $form->editfieldkey("DateEnd", 'date_end', $object->date_end, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker');
|
||||
print '</td><td colspan="2">';
|
||||
print $form->editfieldval("DateEnd", 'date_end', $object->date_end, $object, $conf->global->MAIN_EDIT_ALSO_INLINE, 'datepicker');
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// Statut
|
||||
print '<tr><td>' . $langs->trans("Status") . '</td><td colspan="2">' . $object->getLibStatut(4) . '</td></tr>';
|
||||
|
||||
|
||||
print "</table>";
|
||||
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
if (! empty($user->rights->accounting->fiscalyear))
|
||||
{
|
||||
/*
|
||||
* Barre d'actions
|
||||
*/
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=edit&id=' . $id . '">' . $langs->trans('Modify') . '</a>';
|
||||
|
||||
print '<a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?action=delete&id=' . $id . '">' . $langs->trans('Delete') . '</a>';
|
||||
|
||||
/*
|
||||
* Barre d'actions
|
||||
*/
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=edit&id=' . $id . '">' . $langs->trans('Modify') . '</a>';
|
||||
|
||||
print '<a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?action=delete&id=' . $id . '">' . $langs->trans('Delete') . '</a>';
|
||||
|
||||
print '</div>';
|
||||
print '</div>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
/* Copyright (C) 2014-2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -16,11 +16,12 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/admin/fiscalyear_card.php
|
||||
* \brief Page to show info of a fiscal year
|
||||
* \file htdocs/accountancy/admin/fiscalyear_info.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief Page to show info of a fiscal year
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/fiscalyear.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/fiscalyear.class.php';
|
||||
@ -29,27 +30,31 @@ $langs->load("admin");
|
||||
$langs->load("compta");
|
||||
|
||||
// Security check
|
||||
if (! $user->admin)
|
||||
if ($user->societe_id > 0)
|
||||
accessforbidden();
|
||||
if (! $user->rights->accounting->fiscalyear)
|
||||
accessforbidden();
|
||||
|
||||
$id = GETPOST('id', 'int');
|
||||
|
||||
// View
|
||||
llxHeader();
|
||||
$title = $langs->trans("Fiscalyear") . " - " . $langs->trans("Info");
|
||||
$helpurl = "";
|
||||
llxHeader("",$title,$helpurl);
|
||||
|
||||
if ($id) {
|
||||
$object = new Fiscalyear($db);
|
||||
$object->fetch($id);
|
||||
$object->info($id);
|
||||
|
||||
|
||||
$head = fiscalyear_prepare_head($object);
|
||||
|
||||
dol_fiche_head($head, 'info', $langs->trans("FiscalYearCard"), 0, 'cron');
|
||||
|
||||
|
||||
dol_fiche_head($head, 'info', $langs->trans("Fiscalyear"), 0, 'cron');
|
||||
|
||||
print '<table width="100%"><tr><td>';
|
||||
dol_print_object_info($object);
|
||||
print '</td></tr></table>';
|
||||
|
||||
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
|
||||
@ -168,6 +168,18 @@ if ($action == 'setmanagezero') {
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'setdisabledirectinput') {
|
||||
$setdisabledirectinput = GETPOST('value', 'int');
|
||||
$res = dolibarr_set_const($db, "BANK_DISABLE_DIRECT_INPUT", $setdisabledirectinput, 'yesno', 0, '', $conf->entity);
|
||||
if (! $res > 0)
|
||||
$error ++;
|
||||
if (! $error) {
|
||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||
} else {
|
||||
setEventMessages($langs->trans("Error"), null, 'mesgs');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
@ -342,6 +354,20 @@ if (! empty($conf->global->ACCOUNTING_MANAGE_ZERO)) {
|
||||
}
|
||||
print '</tr>';
|
||||
|
||||
$var = ! $var;
|
||||
print "<tr " . $bc[$var] . ">";
|
||||
print '<td width="80%">' . $langs->trans("BANK_DISABLE_DIRECT_INPUT") . '</td>';
|
||||
if (! empty($conf->global->BANK_DISABLE_DIRECT_INPUT)) {
|
||||
print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setdisabledirectinput&value=0">';
|
||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||
print '</a></td>';
|
||||
} else {
|
||||
print '<td align="center" colspan="2"><a href="' . $_SERVER['PHP_SELF'] . '?action=setdisabledirectinput&value=1">';
|
||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
||||
print '</a></td>';
|
||||
}
|
||||
print '</tr>';
|
||||
|
||||
print "</table>\n";
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
@ -65,7 +65,7 @@ $formventilation = new FormVentilation($db);
|
||||
$formother = new FormOther($db);
|
||||
$form = new Form($db);
|
||||
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||
{
|
||||
$search_accountancy_code_start = '';
|
||||
$search_accountancy_code_end = '';
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013-2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
|
||||
* Copyright (C) 2013-2016 Florian Henry <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2013-2016 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||
*
|
||||
* 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
|
||||
@ -19,8 +19,8 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/accountancy/bookkeeping/list.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \file htdocs/accountancy/bookkeeping/list.php
|
||||
* \ingroup Advanced accountancy
|
||||
* \brief List operation of book keeping
|
||||
*/
|
||||
require '../../main.inc.php';
|
||||
@ -276,7 +276,7 @@ if ($result < 0) {
|
||||
}
|
||||
|
||||
if ($action == 'delmouv') {
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?mvt_num=' . GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'delmouvconfirm', '', 0, 1);
|
||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?mvt_num=' . GETPOST('mvt_num'), $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvtPartial'), 'delmouvconfirm', '', 0, 1);
|
||||
print $formconfirm;
|
||||
}
|
||||
if ($action == 'delbookkeepingyear') {
|
||||
|
||||