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

This commit is contained in:
Laurent Destailleur 2015-07-13 10:29:45 +02:00
commit 0c9e984bb1
54 changed files with 2568 additions and 2329 deletions

222
ChangeLog
View File

@ -11,31 +11,209 @@ make a Dolibarr upgrade.
***** ChangeLog for 3.8 compared to 3.7.* *****
For users:
- New: Add Option to not change date on cloning project
- New: Add check list from table for extrafield type
- New: Use new combobox.
- New: Add hidden option MAXTABS_IN_CARD.
- New: A default label is suggested for stock correction and transfer instead of empty string.
- Fix / Improve : [ bug #1747 ] Remove creation of batch 'Undefined'
- Add Weighted average price as default price for buying price for margin calculation. Add option
MARGIN_PMP_AS_DEFAULT_BUY_PRICE to replace with first supplier price.
- Introduce option MAIN_HTML_TITLE to start to control format of html title content.
- Add extrafields on bank account cards.
- Added delay between mails in Newsletter module.
- [ task #1793 ] Create new permission to restrict commercial agent margin to logged user.
- Add experimental module ask supplier price to request supplier quotation.
- Add experimental module batch management.
- Fix: Corrected user timezone detection
FIX: #2519
FIX: #2758 Product::update sets product note to "null" when $prod->note is null
FIX: #2832: Fixed a problem with special characters in expense report PDF model
FIX: #2856 : Wrong table design
FIX: #2901
FIX: #2957 : missing $langs object for trigger
FIX: #2983 Load gravatar avatar images securely over HTTPS
FIX: #2987: removed dead function moneyMeter()
FIX: #3009: Better filtering to prevent SQL injection
FIX: #3009: Better filtering to prevent SQL injection
FIX: #3091 TotalHT amount in supplier order is bold unlike the rest of Dolibarr
FIX: #3138 - Too much visible thing when access is denied on public pages
FIX: #3173 Overlapping of shipment ref
FIX: Adding 5 more choice link into survey module was not working with chrome
FIX: bad calculation for stock value
FIX: Bad link to login page into email for password renewal.
FIX: Bad logo for status "Do not contact" of thirdparty.
FIX: Bad variable usage
FIX: Better management error into the color conversion functions
FIX: [bug #1883] missing field in SQL installation
FIX: Bug on order and supplier invoice numeration mask when use supplier code
FIX: Bug on order and supplier invoice numeration mask when use supplier code
FIX: button create payment hide if tax amount is less than 1
FIX: can receive new batch product on supplier order
FIX: can show print page after product save
FIX: Close #2835 Customer prices of a product shows incorrect history order
FIX: Close #2837 Product list table column header does not match column body
FIX: Close bug #2855 Wrong translation key in localtax report page
FIX: Close bug #2861 Undefined variable $res when migrating from 3.6.2 to 3.7.0
FIX: Close bug #2891 Category hooks do not work
FIX: Close bug #2900 Courtesy title is not stored in create thirdparty form
FIX: Close bug #2976: "Report" tab is the current tab but it is not marked as selected by the UI
FIX: Correct migration script
FIX: create contact with extrafiel is null when it is require
FIX: Description of contract line was not visible.
FIX: Correct path of loan class
FIX: Correct problem field with note - Add note_private & use wysiwyg editor
FIX: Edit in place of "Outstanding Limit"
FIX: Module Expense Report - Correct init
FIX: Update licence to GPLv3
FIX: End log must use same level then start log.
FIX: event for restricted user was restricted if company null
FIX: event not linked to contact on creation
FIX: Export of tags for contact and member
FIX: extrafields required on thirdparty
FIX: Force ref
FIX: Function expects an int, not a boolean
FIX: Function was expecting a boolean not a string
FIX: hide category if it's not enable
FIX: If supplier invoice block linked element is display after other block total HT amount is not reset to 0 and sum other block (like customer orders values)
FIX: jdate returning -62169955200 on x64 machine
FIX: Let ability to use IDPROF verifications even if new entry is "private"
FIX: migration error
FIX: moved built-in bug report system to GitHub Issues
FIX: Moved code to where the variable is defined
FIX: No check warehouse is provided if module stock is not enabled.
FIX: Payed invoices are showed as canceled FIX: Bad date filter on customer order
FIX: Ref/label of product on contract line was not visible, nor into page, nor into PDF.
FIX: Removed concatenation on undeclared variable
FIX: remove deprecated property 'libelle' on product object
FIX: Removed HTML file preventing PHP service
FIX: Removed undeclared variable
FIX: Removed undeclared variables
FIX: Removed unused variable
FIX: Replaced deprecated call
FIX: Replaced deprecated property
FIX: Save of filters into export profiles failed.
FIX: "script" balise with wrong syntax
FIX: send mail, copy sendto don't read the list of contact
FIX: top links menu have target attribute with wrong value
FIX: total amount in tpl linked object are not reset
FIX: Typo
FIX; Unknown field 'sc.fk_soc' in field list
FIX: update usergroup name
FIX: Variable declared boolean
FIX: Variable might not be traversable
FIX: We did a test on a permission to export contract when permission did not exists.
FIX: when mailing is deleted, the targets list was kept in database
FIX: when multicompany was enabled, this function didn't check just on the good entity (problem when both company use same mask)
FIX: When we automatically creta an order from a proposal with workflow module, if some extrafields of propal don't exist in order object, insertExtraFields() function tries to insert extrafields in unexistant column of commande_extrafields table.
FIX: When we clone a propal, if it has a project which is not assigned to a third, it was not on new propal because fk_project was always set to empty string if new propal is for another third.
FIX: when we create an agenda event with "Not applicable" status, it is automatically saved with "To do" status
FIX: width multiselect
FIX: Wrong type hinting
FIX: XSS security using the onerror and missing escapement on type of member page.
FIX: Missing visibility of static property
NEW: Add a button to purge criteria in user list
NEW: add all assigned users and all extrafields data in new event when we createFromClone
NEW: Add a new component to select categories/tags from the main edit page of product. The dedicated tab is also removed.
NEW: add an explorer for REST API consultation & documentation
NEW: Add a search field and report on hrm area
NEW: Add a tab document in donation card
NEW: Add bank account owner in invoice/proposal/orders footer
NEW: Add button to purge search criteria into list
NEW: Add close date and user for projects.
NEW: Add company information into category contact export
NEW: Add current salary on list of payment
NEW: add date value filter on account records list
NEW: Add exemple of setup for multitail to render dolibarr log files
NEW: Add filter on status on invoice list
NEW: Add filter on task ref and task label into list of tasks
NEW: Add filter on user contact or user task into task list
NEW: Add function dolCopyDir to copy directory with recursive content.
NEW: Add gender property managed on user card FIX: Better error messages when uploading photo of user when permission to write are not granted
NEW: Add help tooltips on fields of dictionary edit pages. Fix: visible list of tasks are for opened project only.
NEW: Add hidden option MAIN_MAILFORM_DISABLE_ENTERKEY to disable the key enter into the form to send email.
NEW: add hook in send mail
NEW: Add hooks on list of members to allow an external module to add more fields into list view.
NEW: Add hooks to allow an external module to complete list of events into calendar views.
NEW: Add opportunity amount on project card.
NEW: Add option THEME_ELDY_DISABLE_IMAGE to disable images into menu eldy.
NEW: add PDF icon on linked element into project
NEW: add "productpricecard" hook and uniformize code
NEW: Add ref and label of project into export
NEW: add restler framework First step to build REST API into Dolibarr
NEW: Add search box for supplier order search.
NEW: Add status into filters of graph
NEW: Add tab document on salaries payment
NEW: A link to the bugtracker can be enabled in the GUI
NEW: A module can add its entries into cron module.
NEW: autofocus on product selection dropdown list or search field
NEW: Backup and restore tool is easier to use
NEW: Can add all user of a project as user of a task, in one step.
NEW: Can add project search on left menu search area
NEW: Can assign a task to yourself to have it appear on timesheet
NEW: Can close a project that has draft status with no need to switch it to validate status before.
NEW: Can edit Background color for Top menu and Background color for table title line (works only with theme menu eldy).
NEW: Can edit email template using WYSIWYG editor
NEW: Can edit internal label of invoice even when closed (this is a private information)
NEW: Can edit list of prospect status for customers/prospects. Add a new entry into dictionary table to manage list fo status. Removed deprecated files.
NEW: Can filter on contact status in prospect list. Removed deprecated menu entry.
NEW: Can filter proposal on a tag of a product Enhance also the prototype test_arrays to include select form before table.
NEW: Can filter proposal, orders or invoices with criteria "contain at least one product with following tag"
NEW: Can install an external module from admin pages, if web server has permission for and if setup is ok for.
NEW: Can search on customer order amount into customer order list.
NEW: Can upload files on leave requests. Use more standard permissions.
NEW: Can use a "|" to make a OR search on several different criterias into text filters of tables.
NEW: Clean code into salary module, debug and add indexes NEW: Can filter on user list and salary payments on user with naural search.
NEW: clone action on agenda events
NEW: dev feature : replace conf filename with "conf" parameter on url by GET
NEW: display linked object in edit mode when we create an event from an order, propal...
NEW: Enhancement of module 'Notification by Email'. Show nb of notifications set. Can set several emails. Can set a threshold on amount for notifications. Add notification on supplier order validation.
NEW: Enhance prototype, project list and proposal list with new hook to have an external module able to add more fields.
NEW: Enhance the natural_search function so we can use it to search numeric fields with criteria with operator <>= inside (< 100, >= 1000)
NEW: Enter amount for withdraws requests
NEW: Feature request: A page to merge two thirdparties into one #2613
NEW: Feature to build a merged pdf with all unpaid invoice can work for paid invoices.
NEW: Filter "active" by default on user list. Fix label of permission of project module
NEW: For a contract line, price is no more mandatory.
NEW: Forms are using the tab look, even in creation mode.
NEW: Hidden option THEME_ELDY_USE_HOVER is stable enough to become officialy visible into setup.
NEW: If module salaries is on, you can set a hourly value for tome consumed by users. Each time a user enter its time consumed on a project, a calculation is done to provide the cost for human services. This value appears into the "Transversal view" of project.
NEW: Implement option SUPPLIER_ORDER_USE_DISPATCH_STATUS to add a status into each dispathing line of supplier order to "verify" a reception is ok. Status of order can be set to "total/done" only if line is verified.
NEW: Into the overview of projects, the name of thirdparty appears into combo lists of elements to link to project.
NEW: Introduce function dolGetFirstLineOfText
NEW: Introduce option SUPPLIER_ORDER_DOUBLE_APPROVAL to allow 2 approvals to make a supplier order approved. Activating this option introduce a new permission to the second level approval.
NEW: Introduce TCPDI as replacement of FPDI.
NEW: List of recent modified supplier product prices in Supplier card
NEW: Module notification should details of emails into confirm box, not only number.
NEW: On page to see/edit contact of an ojbect, the status of contact is visible (for both external and internal users).
NEW: Product stock and subproduct stock are independant
NEW: Propal merge product card PDF into azur
NEW: Rename install etape to step
NEW: Replace category edition page on members with new select2 component.
NEW: script to build API class from existing class
NEW: Show difference between timespent by everybody and time spent by user making timesheet into timesheet pages. NEW: Can enter start hours of task when creating timesheet
NEW: Show last official stable version into system - update page.
NEW: Show photo of logged user into login top right block. NEW: If no photo is available for user, we show a generic photo depending on gender
NEW: [T1758] Merge bank card & account card
NEW: [ task 1191 ] AJAX selector for projects
NEW: [ task #851 ] Add a new field: Commercial name
NEW: [ task #977 ] New option to manage product unit Migrated code from GPCSolutions/dolibarr:3.2-units branch and adapted for 3.8 with some improvements
NEW: The line where mouse is over can be highlight with option THEME_ELDY_USE_HOVER (on by default)
NEW: The notification module accept keyword __SUPERVISOR__ to send notification to supervisor of user.
NEW: Thumbs for statistics on main page are fully clicable (not only link inside the thumb)
NEW: Title of page project contains project ref and label
NEW: update skeleton and class builder
NEW: Use new select2 component for juridical status, country and state selection.
NEW: Web service to create or update product can correct stock during creation/update.
NEW: When creating order, proposal or invoice from thirdparty card, the project is asked during creation. A link to create project if it does not exists is also available. NEW: Uniformize form creation of proposal to add public and private notes during creation like done for order and invoice.
NEW: When using transfer or correct stock from warehouse, after recording we go back to the warehouse page.
NEW: Add Option to not change date on cloning project
NEW: Add check list from table for extrafield type
NEW: Use new combobox.
NEW: Add hidden option MAXTABS_IN_CARD.
NEW: A default label is suggested for stock correction and transfer instead of empty string.
NEW: Add Weighted average price as default price for buying price for margin calculation. Add option MARGIN_PMP_AS_DEFAULT_BUY_PRICE to replace with first supplier price.
NEW: Introduce option MAIN_HTML_TITLE to start to control format of html title content.
NEW: Add extrafields on bank account cards.
NEW: Added delay between mails in Newsletter module.
NEW: [ task #1793 ] Create new permission to restrict commercial agent margin to logged user.
NEW: Add experimental module ask supplier price to request supplier quotation.
NEW: Add module batch management.
For translators:
- Update language files.
- New: When a translation is not available we always jump to en_US and only en_US.
NEW: Update language files.
NEW: When a translation is not available we always jump to en_US and only en_US.
For developers:
- New: Function yn can show a visual checkbox.
- New: Introduced select2 jquery plugin.
- New: Possibility to add javascript in main login page with "getLoginPageOptions" hook
- New: possibility to defined a tab for all entities in module descriptor
NEW: Function yn can show a visual checkbox.
NEW: Introduced select2 jquery plugin.
NEW: Possibility to add javascript in main login page with "getLoginPageOptions" hook
NEW: possibility to defined a tab for all entities in module descriptor
WARNING: Following changes may create regression for some external modules, but was necessary to make
Dolibarr better:
@ -48,6 +226,8 @@ Dolibarr better:
- The trigger USER_LOGIN* are deprecated. They are still working but you should prefer use the
hook afterLogin or afterLoginFailed instead.
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
FIX [ bug #2855 ] Wrong translation key in localtax report page
FIX [ bug #1852 ] JS error when editing a customer order line

View File

@ -1,4 +1,4 @@
dolibarr (3.8.0-3) UNRELEASED; urgency=low
dolibarr (__VERSION__) UNRELEASED; urgency=low
[ Laurent Destailleur (eldy) ]
* New upstream release.

View File

@ -64,6 +64,13 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
$SOURCE="$DIR/..";
$DESTI="$SOURCE/build";
if ($SOURCE !~ /^\//)
{
print "Error: Launch the script $PROG.$Extension with its full path from /.\n";
print "$PROG.$Extension aborted.\n";
sleep 2;
exit 1;
}
if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"})
{
print "Error: Missing environment variables.\n";
@ -337,8 +344,8 @@ foreach my $target (sort keys %CHOOSEDPUBLISH) {
if ($nboftargetok) {
# Update CVS if required
#-----------------------
# Update GIT tag if required
#---------------------------
if ($nbofpublishneedtag)
{
print "Go to directory $SOURCE\n";
@ -683,7 +690,7 @@ if ($nboftargetok) {
use Date::Language;
$lang=Date::Language->new('English');
$datestring = $lang->time2str("%a %b %e %Y", time);
$changelogstring="* ".$datestring." Laurent Destailleur $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n- Upstream release\n";
$changelogstring="* ".$datestring." Laurent Destailleur (eldy) $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n- Upstream release\n";
print "Generate file $BUILDROOT/$BUILDFIC from $SOURCE/build/rpm/${BUILDFICSRC}\n";
open (SPECFROM,"<$SOURCE/build/rpm/${BUILDFICSRC}") || die "Error";
@ -715,7 +722,7 @@ if ($nboftargetok) {
$ret=`$cmd`;
print "Move $RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz into $NEWDESTI/".$FILENAMETGZ2.".tgz\n";
$cmd="mv \"$RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz\" \"$NEWDESTI/".$FILENAMETGZ2.".tgz\"";
$ret=`$cmd`;
#$ret=`$cmd`;
next;
}
@ -805,8 +812,17 @@ if ($nboftargetok) {
print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n";
$ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`;
print "Copy $SOURCE/build/debian/xxx to $BUILDROOT/$PROJECT.tmp/debian\n";
# Add files for dpkg-source (changelog)
#$ret=`cp -f "$SOURCE/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`;
open (SPECFROM,"<$SOURCE/build/debian/changelog") || die "Error";
open (SPECTO,">$BUILDROOT/$PROJECT.tmp/debian/changelog") || die "Error";
while (<SPECFROM>) {
$_ =~ s/__VERSION__/$MAJOR.$MINOR.$newbuild/;
print SPECTO $_;
}
close SPECFROM;
close SPECTO;
# Add files for dpkg-source
$ret=`cp -f "$SOURCE/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/compat" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/control" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/copyright" "$BUILDROOT/$PROJECT.tmp/debian"`;

View File

@ -8,11 +8,11 @@ This files describe steps made by Dolibarr packaging team to make a
beta version of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base (x.y)-1 origin/develop`..x.y(.z) --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -i -e '^FIX\|NEW'"
- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base 3.7.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version number with x.y.z-w in htdocs/filefunc.inc.php
- Update version number with x.y.z-w in build/debian/changelog
- Commit all changes.
- Add a Tag (x.y.betaz_YYYYMMDD) and push it: git push --tags
- Add a Tag (x.y.z-beta) and push it: git push --tags
- Create a branch (x.y).
- Run makepack-dolibarr.pl to generate all packages.
@ -29,7 +29,7 @@ This files describe steps made by Dolibarr packaging team to make a
complete release of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base (x.y)-1 origin/develop`..x.y(.z) --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -i -e '^FIX\|NEW'"
- Update version/info in ChangeLog. To generate a changelog, you can do "git log `git merge-base 3.7.0 origin/develop`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version number with x.y.z in htdocs/filefunc.inc.php
- Update version number with x.y.z in build/debian/changelog
- Commit all changes.

View File

@ -159,6 +159,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/accountancy
%_datadir/dolibarr/htdocs/adherents
%_datadir/dolibarr/htdocs/admin
%_datadir/dolibarr/htdocs/api
%_datadir/dolibarr/htdocs/asterisk
%_datadir/dolibarr/htdocs/barcode
%_datadir/dolibarr/htdocs/bookmarks

View File

@ -239,6 +239,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/accountancy
%_datadir/dolibarr/htdocs/adherents
%_datadir/dolibarr/htdocs/admin
%_datadir/dolibarr/htdocs/api
%_datadir/dolibarr/htdocs/asterisk
%_datadir/dolibarr/htdocs/barcode
%_datadir/dolibarr/htdocs/bookmarks

View File

@ -156,6 +156,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/accountancy
%_datadir/dolibarr/htdocs/adherents
%_datadir/dolibarr/htdocs/admin
%_datadir/dolibarr/htdocs/api
%_datadir/dolibarr/htdocs/asterisk
%_datadir/dolibarr/htdocs/barcode
%_datadir/dolibarr/htdocs/bookmarks

View File

@ -167,6 +167,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/accountancy
%_datadir/dolibarr/htdocs/adherents
%_datadir/dolibarr/htdocs/admin
%_datadir/dolibarr/htdocs/api
%_datadir/dolibarr/htdocs/asterisk
%_datadir/dolibarr/htdocs/barcode
%_datadir/dolibarr/htdocs/bookmarks

View File

@ -6,7 +6,7 @@ PROGNAME=${0##*/}
INPUT=''
QUIET='0'
NOSTATS='0'
INPLACE='0'
INPLACE='0' # (1=Images are replaced, 0=New images are stored into $OUTPUT)
max_input_size=0
max_output_size=0

View File

@ -944,7 +944,7 @@ if ($rowid > 0)
$datefrom=$object->datevalid;
}
}
$form->select_date($datefrom,'','','','',"cotisation",1,1);
print $form->select_date($datefrom,'','','','',"cotisation",1,1,1);
print "</td></tr>";
// Date end subscription
@ -957,7 +957,7 @@ if ($rowid > 0)
$dateto=-1; // By default, no date is suggested
}
print '<tr><td>'.$langs->trans("DateEndSubscription").'</td><td>';
$form->select_date($dateto,'end','','','',"cotisation");
print $form->select_date($dateto,'end','','','',"cotisation",1,0,1);
print "</td></tr>";
if ($adht->cotisation)
@ -1058,7 +1058,7 @@ if ($rowid > 0)
// Date of payment
print '<tr class="bankswitchclass"><td class="fieldrequired">'.$langs->trans("DatePayment").'</td><td>';
$form->select_date(isset($paymentdate)?$paymentdate:-1,'payment',0,0,1,'cotisation',1,1);
print $form->select_date(isset($paymentdate)?$paymentdate:-1,'payment',0,0,1,'cotisation',1,1,1);
print "</td></tr>\n";
print '<tr class="bankswitchclass2"><td>'.$langs->trans('Numero');

View File

@ -229,8 +229,9 @@ $sql.= ", note";
$sql.= ", entity";
$sql.= " FROM ".MAIN_DB_PREFIX."const";
$sql.= " WHERE entity IN (".$user->entity.",".$conf->entity.")";
if ((empty($user->entity) || $user->admin) && $debug) {} // to force for superadmin
else $sql.= " AND visible = 1"; // We must always have this. Otherwise, array is too large and submitting data fails due to apache POST or GET limits
if ((empty($user->entity) || $user->admin) && $debug) {} // to force for superadmin to debug
else if (! GETPOST('visible') || GETPOST('visible') != 'all') $sql.= " AND visible = 1"; // We must always have this. Otherwise, array is too large and submitting data fails due to apache POST or GET limits
if (GETPOST('name')) $sql.=natural_search("name", GETPOST('name'));
$sql.= " ORDER BY entity, name ASC";
dol_syslog("Const::listConstant", LOG_DEBUG);

View File

@ -206,8 +206,8 @@ $langs->load("cashdesk");
<td>
<input class="button bouton_mode_reglement" type="submit" name="btnModeReglement" value="<?php echo $langs->trans("Reported"); ?>" onclick="javascript: verifClic('DIF');" />
<?php
echo $langs->trans("DateEcheance").' :';
print $form->select_date(-1,'txtDatePaiement');
print $langs->trans("DateEcheance").' :';
print $form->select_date(-1,'txtDatePaiement',0,0,0,'paymentmode',1,0,1);
?>
</td>
</tr>

View File

@ -1372,7 +1372,6 @@ if ($action == 'create' && $user->rights->commande->creer)
}
// Date
print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td colspan="2">';
//$form->select_date($dateorder, 're', '', '', '', "crea_commande", 1, 1);
$form->select_date('', 're', '', '', '', "crea_commande", 1, 1); // Always autofill date with current date
print '</td></tr>';

View File

@ -262,7 +262,7 @@ if ($action == 'create')
print "<tr>";
print '<td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
print $form->select_date($datec?$datec:-1,'','','','','add',1,1);
print $form->select_date($datec?$datec:-1,'','','','','add',1,1,1);
print '</td></tr>';
// Km
@ -358,7 +358,7 @@ else if ($id)
// Date
print '<tr><td class="fieldrequired">'.$langs->trans("Date").'</td><td>';
print $form->select_date($object->date,'','','','','update');
print $form->select_date($object->date,'',0,0,0,'update',1,0,1);
print '</td></tr>';
// Km
@ -433,7 +433,7 @@ else if ($id)
print '</td></tr>';
$form->load_cache_types_fees();
// Type
print '<tr><td>';
print $form->editfieldkey("Type",'type',$langs->trans($object->type),$object,$conf->global->MAIN_EDIT_ALSO_INLINE && $user->rights->deplacement->creer,'select:types_fees');

View File

@ -2273,7 +2273,7 @@ if ($action == 'create')
// Date invoice
print '<tr><td class="fieldrequired">' . $langs->trans('Date') . '</td><td colspan="2">';
$datefacture = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
$form->select_date($datefacture?$datefacture:$dateinvoice, '', '', '', '', "add", 1, 1);
print $form->select_date($datefacture?$datefacture:$dateinvoice, '', '', '', '', "add", 1, 1, 1);
print '</td></tr>';
// Payment term
@ -2457,12 +2457,12 @@ if ($action == 'create')
print '<td class="nobordernopadding nowrap">';
print $langs->trans('From') . ' ';
print '</td><td class="nobordernopadding nowrap">';
print $form->select_date('', 'date_start' . $i, $usehm, $usehm, 1, "add");
print $form->select_date('', 'date_start' . $i, $usehm, $usehm, 1, "add", 1, 0, 1);
print '</td></tr>';
print '<td class="nobordernopadding nowrap">';
print $langs->trans('to') . ' ';
print '</td><td class="nobordernopadding nowrap">';
print $form->select_date('', 'date_end' . $i, $usehm, $usehm, 1, "add");
print $form->select_date('', 'date_end' . $i, $usehm, $usehm, 1, "add", 1, 0, 1);
print '</td></tr></table>';
print '</td>';
}

View File

@ -386,7 +386,7 @@ if ($action == 'new')
//print '<tr><td width="30%">'.$langs->trans('Date').'</td><td width="70%">'.dol_print_date($now,'day').'</td></tr>';
// Filter
print '<tr><td width="200">'.$langs->trans("DateChequeReceived").'</td><td>';
print $form->select_date($filterdate,'fd',0,0,1,'',1,1);
print $form->select_date($filterdate,'fd',0,0,1,'',1,1,1);
print '</td></tr>';
print '<tr><td>'.$langs->trans("BankAccount").'</td><td>';
$form->select_comptes($filteraccountid,'accountid',0,'courant <> 2',1);

View File

@ -635,11 +635,11 @@ else
$form=new Form($db);
if ($object->birthday)
{
print $form->select_date($object->birthday,'birthday',0,0,0,"perso");
print $form->select_date($object->birthday,'birthday',0,0,0,"perso", 1, 0, 1);
}
else
{
print $form->select_date('','birthday',0,0,1,"perso");
print $form->select_date('','birthday',0,0,1,"perso", 1, 0, 1);
}
print '</td>';
@ -1156,7 +1156,7 @@ else
print $langs->trans("VCard");
print '</a>';
print '</td></tr>';
print "</table>";
print dol_fiche_end();

View File

@ -129,7 +129,7 @@ if ($action == 'edit')
// Date To Birth
print '<tr><td>'.$langs->trans("DateToBirth").'</td><td>';
$form=new Form($db);
print $form->select_date($object->birthday,'birthday',0,0,1,"perso");
print $form->select_date($object->birthday,'birthday',0,0,1,"perso", 1,0,1);
print '</td>';
print '<td colspan="2">'.$langs->trans("Alert").': ';

View File

@ -1687,11 +1687,11 @@ else
}
print '<tr '.$bc[$var].'><td>'.$langs->trans("DateServiceActivate").'</td><td>';
print $form->select_date($dateactstart,'',$usehm,$usehm,'',"active");
print $form->select_date($dateactstart,'',$usehm,$usehm,'',"active",1,0,1);
print '</td>';
print '<td>'.$langs->trans("DateEndPlanned").'</td><td>';
print $form->select_date($dateactend,"end",$usehm,$usehm,'',"active");
print $form->select_date($dateactend,"end",$usehm,$usehm,'',"active",1,0,1);
print '</td>';
print '<td align="center" rowspan="2" valign="middle">';
@ -1744,7 +1744,7 @@ else
if ($objp->statut == 4)
{
print $langs->trans("DateEndReal").' ';
$form->select_date($dateactend,"end",$usehm,$usehm,($objp->date_fin_reelle>0?0:1),"closeline",1,1);
print $form->select_date($dateactend,"end",$usehm,$usehm,($objp->date_fin_reelle>0?0:1),"closeline",1,1,1);
}
}
print '</td>';

View File

@ -191,14 +191,14 @@ if ($resql)
print $form->selectarray('filter_op1',$arrayofoperators,$filter_op1,1);
print ' ';
$filter_date1=dol_mktime(0,0,0,$op1month,$op1day,$op1year);
print $form->select_date($filter_date1,'op1',0,0,1);
print $form->select_date($filter_date1,'op1',0,0,1,'',1,0,1);
print '</td>';
print '<td class="liste_titre" align="center">';
$arrayofoperators=array('<'=>'<','>'=>'>');
print $form->selectarray('filter_op2',$arrayofoperators,$filter_op2,1);
print ' ';
$filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year);
print $form->select_date($filter_date2,'op2',0,0,1);
print $form->select_date($filter_date2,'op2',0,0,1,'',1,0,1);
print '</td>';
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';

View File

@ -366,7 +366,7 @@ class CMailFile
*/
function sendfile()
{
global $conf;
global $conf,$db;
$errorlevel=error_reporting();
error_reporting($errorlevel ^ E_WARNING); // Desactive warnings
@ -375,6 +375,20 @@ class CMailFile
if (empty($conf->global->MAIN_DISABLE_ALL_MAILS))
{
dol_include_once('/core/class/hookmanager.class.php');
$hookmanager=new HookManager($db);
$hookmanager->initHooks(array('maildao'));
$reshook=$hookmanager->executeHooks('doactions',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
if (!empty($reshook))
{
$this->error="Error in hook maildao doactions ".$reshook;
dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR);
return $reshook;
}
// Action according to choosed sending method
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail')
{

View File

@ -3537,7 +3537,7 @@ class Form
$ret.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$ret.='<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
$ret.='<tr><td>';
$ret.=$this->select_date($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname);
$ret.=$this->select_date($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname,1,0,1);
$ret.='</td>';
$ret.='<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
$ret.='</tr></table></form>';

View File

@ -34,7 +34,7 @@ class DoliDBMysqli extends DoliDB
//! Database type
public $type='mysqli';
//! Database label
const LABEL='MySQL';
const LABEL='MySQL or MariaDB';
//! Version min database
const VERSIONMIN='4.1.3';
/** @var mysqli_result Resultset of last query */

View File

@ -643,12 +643,12 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default
$pdf->SetXY($curx, $cury);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("BankAccountNumber").': ' . $outputlangs->convToOutputCharset($account->number), 0, 'L', 0);
$cury+=3;
if ($diffsizecontent <= 2) $cury+=1;
}
$pdf->SetFont('','',$default_font_size - $diffsizecontent);
if (empty($onlynumber) && ! empty($account->domiciliation))
{
$pdf->SetXY($curx, $cury);
@ -659,7 +659,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default
$tmpy=$pdf->getStringHeight(100, $val);
$cury+=$tmpy;
}
if (! empty($account->proprio))
{
$pdf->SetXY($curx, $cury);
@ -668,9 +668,9 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default
$tmpy=$pdf->getStringHeight(100, $val);
$cury+=$tmpy;
}
else if (! $usedetailedbban) $cury+=1;
// Use correct name of bank id according to country
$ibankey="IBANNumber";
if ($account->getCountryCode() == 'IN') $ibankey="IFSC";
@ -1735,12 +1735,22 @@ function pdf_getLinkedObjects($object,$outputlangs)
$objects[$i]->fetchObjectLinked();
$order = $objects[$i]->linkedObjects['commande'][0];
$linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending");
$linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : '');
$linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($objects[$i]->ref);
$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ' / ' . $outputlangs->transnoentities("DateSending");
$linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs);
$linkedobjects[$objecttype]['date_value'].= ' / ' . dol_print_date($objects[$i]->date_delivery,'day','',$outputlangs);
if (! empty($object->linkedObjects['commande'])) // There is already a link to order so we show only info of shipment
{
$linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefSending");
$linkedobjects[$objecttype]['ref_value'].= $outputlangs->transnoentities($objects[$i]->ref);
$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DateSending");
$linkedobjects[$objecttype]['date_value'].= dol_print_date($objects[$i]->date_delivery,'day','',$outputlangs);
}
else // We show both info of order and shipment
{
$linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending");
$linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : '');
$linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($objects[$i]->ref);
$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ' / ' . $outputlangs->transnoentities("DateSending");
$linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs);
$linkedobjects[$objecttype]['date_value'].= ' / ' . dol_print_date($objects[$i]->date_delivery,'day','',$outputlangs);
}
}
}
}

View File

@ -257,6 +257,8 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
global $conf,$langs,$db;
global $bc;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
$formother = new FormOther($db);
//$dirthemes=array(empty($conf->global->MAIN_FORCETHEMEDIR)?'/theme':$conf->global->MAIN_FORCETHEMEDIR.'/theme');

View File

@ -1423,8 +1423,10 @@ class pdf_crabe extends ModelePDFFactures
$pdf->SetTextColor(0,0,60);
$pdf->SetFont('','B', $default_font_size + 3);
$w = 110;
$posy=$this->marge_haute;
$posx=$this->page_largeur-$this->marge_droite-100;
$posx=$this->page_largeur-$this->marge_droite-$w;
$pdf->SetXY($this->marge_gauche,$posy);
@ -1441,14 +1443,14 @@ class pdf_crabe extends ModelePDFFactures
{
$pdf->SetTextColor(200,0,0);
$pdf->SetFont('','B',$default_font_size - 2);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ErrorGoToGlobalSetup"), 0, 'L');
}
}
else
{
$text=$this->emetteur->name;
$pdf->MultiCell(100, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
$pdf->MultiCell($w, 4, $outputlangs->convToOutputCharset($text), 0, 'L');
}
$pdf->SetFont('','B', $default_font_size + 3);
@ -1459,14 +1461,14 @@ class pdf_crabe extends ModelePDFFactures
if ($object->type == 2) $title=$outputlangs->transnoentities("InvoiceAvoir");
if ($object->type == 3) $title=$outputlangs->transnoentities("InvoiceDeposit");
if ($object->type == 4) $title=$outputlangs->transnoentities("InvoiceProFormat");
$pdf->MultiCell(100, 3, $title, '', 'R');
$pdf->MultiCell($w, 3, $title, '', 'R');
$pdf->SetFont('','B',$default_font_size);
$posy+=5;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
$pdf->MultiCell($w, 4, $outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref), '', 'R');
$posy+=1;
$pdf->SetFont('','', $default_font_size - 2);
@ -1476,7 +1478,7 @@ class pdf_crabe extends ModelePDFFactures
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("RefCustomer")." : " . $outputlangs->convToOutputCharset($object->ref_client), '', 'R');
}
$objectidnext=$object->getIdReplacingInvoice('validated');
@ -1488,7 +1490,7 @@ class pdf_crabe extends ModelePDFFactures
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ReplacementByInvoice").' : '.$outputlangs->convToOutputCharset($objectreplacing->ref), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ReplacementByInvoice").' : '.$outputlangs->convToOutputCharset($objectreplacing->ref), '', 'R');
}
if ($object->type == 1)
{
@ -1498,7 +1500,7 @@ class pdf_crabe extends ModelePDFFactures
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("ReplacementInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("ReplacementInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
}
if ($object->type == 2)
{
@ -1508,20 +1510,20 @@ class pdf_crabe extends ModelePDFFactures
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("CorrectionInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("CorrectionInvoice").' : '.$outputlangs->convToOutputCharset($objectreplaced->ref), '', 'R');
}
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("DateInvoice")." : " . dol_print_date($object->date,"day",false,$outputlangs), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("DateInvoice")." : " . dol_print_date($object->date,"day",false,$outputlangs), '', 'R');
if ($object->type != 2)
{
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("DateEcheance")." : " . dol_print_date($object->date_lim_reglement,"day",false,$outputlangs,true), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("DateEcheance")." : " . dol_print_date($object->date_lim_reglement,"day",false,$outputlangs,true), '', 'R');
}
if ($object->thirdparty->code_client)
@ -1529,13 +1531,13 @@ class pdf_crabe extends ModelePDFFactures
$posy+=3;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R');
$pdf->MultiCell($w, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R');
}
$posy+=1;
// Show list of linked objects
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size);
$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, $w, 3, 'R', $default_font_size);
if ($showaddress)
{

View File

@ -347,9 +347,9 @@ if ((! empty($conf->service->enabled) || ($object->element == 'contrat')) && $da
else
{
echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' ';
echo $form->select_date($date_start,'date_start',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct");
echo $form->select_date($date_start,'date_start',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct",1,0,1);
echo ' '.$langs->trans('to').' ';
echo $form->select_date($date_end,'date_end',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct");
echo $form->select_date($date_end,'date_end',empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?0:1,1,"addproduct",1,0,1);
}
?>
</td>

View File

@ -222,9 +222,9 @@ $coldisplay=-1; // We remove first td
<td colspan="11"><?php echo $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' '; ?>
<?php
$hourmin=(isset($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE:'');
echo $form->select_date($line->date_start,'date_start',$hourmin,$hourmin,$line->date_start?0:1,"updateligne");
echo $form->select_date($line->date_start,'date_start',$hourmin,$hourmin,$line->date_start?0:1,"updateligne",1,0,1);
echo ' '.$langs->trans('to').' ';
echo $form->select_date($line->date_end,'date_end',$hourmin,$hourmin,$line->date_end?0:1,"updateligne");
echo $form->select_date($line->date_end,'date_end',$hourmin,$hourmin,$line->date_end?0:1,"updateligne",1,0,1);
?>
</td>
</tr>

View File

@ -542,7 +542,7 @@ if ($action == 'create')
print '<td colspan="3">';
//print dol_print_date($object->date_livraison,"day"); // date_livraison come from order and will be stored into date_delivery planed.
$date_delivery = ($date_delivery?$date_delivery:$object->date_livraison); // $date_delivery comes from GETPOST
print $form->select_date($date_delivery?$date_delivery:-1,'date_delivery',1,1);
print $form->select_date($date_delivery?$date_delivery:-1,'date_delivery',1,1,1);
print "</td>\n";
print '</tr>';
@ -1059,7 +1059,7 @@ else if ($id || $ref)
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="setdate_livraison">';
$form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison");
print $form->select_date($object->date_delivery?$object->date_delivery:-1,'liv_',1,1,'',"setdate_livraison",1,0,1);
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
print '</form>';
}

View File

@ -1380,6 +1380,7 @@ else if ($id > 0 || ! empty($ref))
include DOL_DOCUMENT_ROOT.'/core/tpl/bloc_showhide.tpl.php';
}
// Line of interventions
if (empty($conf->global->FICHINTER_DISABLE_DETAILS))
{
print '<form action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" name="addinter" method="post">';
@ -1556,9 +1557,9 @@ else if ($id > 0 || ! empty($ref))
print '<td colspan="4">&nbsp;</td>';
print "</tr>\n";
$var=false;
$var=true;
print '<tr '.$bc[$var].">\n";
print '<tr '.$bcnd[$var].">\n";
print '<td>';
// editeur wysiwyg
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';

View File

@ -30,7 +30,7 @@
* \brief File that include conf.php file and commons lib like functions.lib.php
*/
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.8.0-alpha');
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.8.0-beta');
if (! defined('EURO')) define('EURO',chr(128));
@ -57,12 +57,16 @@ if (defined('DOL_INC_FOR_VERSION_ERROR')) return;
// Define vars
$conffiletoshowshort = "conf.php";
// Define localization of conf file
// --- Start of part replaced by Dolibarr packager makepack-dolibarr
$conffile = "conf/conf.php";
$conffiletoshow = "htdocs/conf/conf.php";
// For debian/redhat like systems
//$conffile = "/etc/dolibarr/conf.php";
//$conffiletoshow = "/etc/dolibarr/conf.php";
// Include configuration
// --- End of part replaced by Dolibarr packager makepack-dolibarr
// Replace conf filename with "conf" parameter on url by GET
if (! empty($_GET['conf']))
{

View File

@ -2216,9 +2216,9 @@ elseif (! empty($object->id))
print '<br>';
print $langs->trans('ServiceLimitedDuration').' '.$langs->trans('From').' ';
print $form->select_date($date_start,'date_start'.$date_pf,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,1,'');
print $form->select_date($date_start,'date_start'.$date_pf,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,1,'',1,0,1);
print ' '.$langs->trans('to').' ';
print $form->select_date($date_end,'date_end'.$date_pf,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,1,'');
print $form->select_date($date_end,'date_end'.$date_pf,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE,1,'',1,0,1);
print '</td>';
print '<td>';
@ -2790,7 +2790,7 @@ elseif (! empty($object->id))
//print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("ToOrder").'</td></tr>';
print '<tr><td>'.$langs->trans("OrderDate").'</td><td>';
$date_com = dol_mktime(0, 0, 0, GETPOST('remonth'), GETPOST('reday'), GETPOST('reyear'));
print $form->select_date($date_com,'',1,1,'',"commande");
print $form->select_date($date_com,'',1,1,'',"commande",1,0,1);
print '</td></tr>';
print '<tr><td>'.$langs->trans("OrderMode").'</td><td>';
@ -2817,7 +2817,7 @@ elseif (! empty($object->id))
print '<table class="border" width="100%">';
//print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Receive").'</td></tr>';
print '<tr><td>'.$langs->trans("DeliveryDate").'</td><td>';
print $form->select_date('','',1,1,'',"commande");
print $form->select_date('','',1,1,'',"commande",1,0,1);
print "</td></tr>\n";
print "<tr><td>".$langs->trans("Delivery")."</td><td>\n";

View File

@ -308,7 +308,8 @@ if (! empty($force_install_message))
$class='DoliDB'.ucfirst($type);
include_once $dir."/".$file;
if ($type == 'sqlite') continue; // We hide sqlite because support can't be complete until sqlite does not manage foreign key creation after table creation
if ($type == 'sqlite') continue; // We hide sqlite because support can't be complete until sqlite does not manage foreign key creation after table creation (ALTER TABLE child ADD CONSTRAINT not supported)
if ($type == 'sqlite3') continue; // We hide sqlite3 because support can't be complete until sqlite does not manage foreign key creation after table creation (ALTER TABLE child ADD CONSTRAINT not supported)
// Version min of database
$versionbasemin=explode('.',$class::VERSIONMIN);

File diff suppressed because it is too large Load Diff

View File

@ -1397,7 +1397,7 @@ UseSearchToSelectProduct=Use a search form to choose a product (rather than a dr
UseEcoTaxeAbility=Support Eco-Taxe (WEEE)
SetDefaultBarcodeTypeProducts=Default barcode type to use for products
SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties
UseUnits=Support units
UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition
ProductCodeChecker= Module for product code generation and checking (product or service)
ProductOtherConf= Product / Service configuration
##### Syslog #####
@ -1454,7 +1454,7 @@ FixedEmailTarget=Fixed email target
SendingsSetup=Sending module setup
SendingsReceiptModel=Sending receipt model
SendingsNumberingModules=Sendings numbering modules
SendingsAbility=Support shipment sheets for customer deliveries
SendingsAbility=Support shipping sheets for customer deliveries
NoNeedForDeliveryReceipts=In most cases, sendings receipts are used both as sheets for customer deliveries (list of products to send) and sheets that is recevied and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated.
FreeLegalTextOnShippings=Free text on shipments
##### Deliveries #####
@ -1658,7 +1658,7 @@ UnicodeCurrency=Enter here between braces, list of byte number that represent th
PositionIntoComboList=Position of line into combo lists
SellTaxRate=Sale tax rate
RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases.
UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipment, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card.
OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100).
TemplateForElement=This template record is dedicated to which element
TypeOfTemplate=Type of template

View File

@ -264,7 +264,7 @@ PriceCatalogue=Unique price per product/service
PricingRule=Rules for customer prices
AddCustomerPrice=Add price by customer
ForceUpdateChildPriceSoc=Set same price on customer subsidiaries
PriceByCustomerLog=Price by customer log
PriceByCustomerLog=Log of previous customer prices
MinimumPriceLimit=Minimum price can't be lower then %s
MinimumRecommendedPrice=Minimum recommended price is : %s
PriceExpressionEditor=Price expression editor

View File

@ -5,7 +5,7 @@ Sendings=Shipments
AllSendings=All Shipments
Shipment=Shipment
Shipments=Shipments
ShowSending=Show Sending
ShowSending=Show Shipments
Receivings=Receipts
SendingsArea=Shipments area
ListOfSendings=List of shipments
@ -26,8 +26,8 @@ QtyToShip=Qty to ship
QtyReceived=Qty received
KeepToShip=Remain to ship
OtherSendingsForSameOrder=Other shipments for this order
DateSending=Date sending order
DateSendingShort=Date sending order
DateSending=Shipping date
DateSendingShort=Shipping date
SendingsForSameOrder=Shipments for this order
SendingsAndReceivingForSameOrder=Shipments and receivings for this order
SendingsToValidate=Shipments to validate

View File

@ -57,7 +57,7 @@ RuleForStockManagementDecrease=Rule for stock management decrease
RuleForStockManagementIncrease=Rule for stock management increase
DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation
DeStockOnValidateOrder=Decrease real stocks on customers orders validation
DeStockOnShipment=Decrease real stocks on shipment validation
DeStockOnShipment=Decrease real stocks on shipping validation
ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation
ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation
ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving

View File

@ -296,3 +296,4 @@ PropalMergePdfProductActualFile=Files use to add into PDF Azur are/is
PropalMergePdfProductChooseFile=Select PDF files
IncludingProductWithTag=Including product with tag
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
DefaultUnitToShow=Default unit to show

View File

@ -46,7 +46,7 @@ $object = new Loan($db);
/*
* Actions
*/
// Classify paid
if ($action == 'confirm_paid' && $confirm == 'yes')
{
@ -86,7 +86,7 @@ if ($action == 'add' && $user->rights->loan->write)
{
$datestart=@dol_mktime(12,0,0, $_POST["startmonth"], $_POST["startday"], $_POST["startyear"]);
$dateend=@dol_mktime(12,0,0, $_POST["endmonth"], $_POST["endday"], $_POST["endyear"]);
if (! $datestart)
{
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("DateStart")), 'errors');
@ -218,13 +218,13 @@ if ($action == 'create')
// Date Start
print "<tr>";
print '<td class="fieldrequired">'.$langs->trans("DateStart").'</td><td>';
print $form->select_date($datestart?$datestart:-1,'start','','','','add',1,1);
print $form->select_date($datestart?$datestart:-1,'start','','','','add',1,1,1);
print '</td></tr>';
// Date End
print "<tr>";
print '<td class="fieldrequired">'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date($dateend?$dateend:-1,'end','','','','add',1,1);
print $form->select_date($dateend?$dateend:-1,'end','','','','add',1,1,1);
print '</td></tr>';
// Number of terms
@ -356,7 +356,7 @@ if ($id > 0)
print "<td>";
if ($action == 'edit')
{
print $form->select_date($object->datestart, 'start', 0, 0, 0, 'update', 1);
print $form->select_date($object->datestart, 'start', 0, 0, 0, 'update', 1, 0, 1);
}
else
{
@ -369,7 +369,7 @@ if ($id > 0)
print "<td>";
if ($action == 'edit')
{
print $form->select_date($object->dateend, 'end', 0, 0, 0, 'update', 1);
print $form->select_date($object->dateend, 'end', 0, 0, 0, 'update', 1, 0, 1);
}
else
{
@ -402,7 +402,7 @@ if ($id > 0)
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
print '</div>';
print '</form>';
}
}
dol_fiche_end();

View File

@ -123,7 +123,7 @@ if ($object->id)
print "<td>";
if ($action == 'edit')
{
print $form->select_date($object->datestart, 'start', 0, 0, 0, 'loan', 1);
print $form->select_date($object->datestart, 'start', 0, 0, 0, 'loan', 1, 0, 1);
}
else
{
@ -137,7 +137,7 @@ if ($object->id)
print "<td>";
if ($action == 'edit')
{
print $form->select_date($object->dateend, 'end', 0, 0, 0, 'loan', 1);
print $form->select_date($object->dateend, 'end', 0, 0, 0, 'loan', 1, 0, 1);
}
else
{

View File

@ -287,7 +287,7 @@ print '</td></tr>';
// Expire date
print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">';
if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire');
if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire',0,0,0,'',1,0,1);
else print dol_print_date($object->date_fin,'day');
print '</td></tr>';

View File

@ -458,7 +458,7 @@ print '</td></tr>';
// Expire date
print '<tr><td>'.$langs->trans('ExpireDate').'</td><td colspan="2">';
if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire');
if ($action == 'edit') print $form->select_date($expiredate?$expiredate:$object->date_fin,'expire',0,0,0,'',1,0,1);
else print dol_print_date($object->date_fin,'day');
print '</td></tr>';

View File

@ -101,7 +101,7 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre"))
if (! $testdate) {
setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("ExpireDate")), 'errors');
}
if ($titre && $testdate)
{
if (! empty($creation_sondage_date))
@ -156,7 +156,7 @@ print '</tr>'."\n";
print '<tr><td class="fieldrequired">'. $langs->trans("ExpireDate") .'</td><td>';
print $form->select_date($champdatefin?$champdatefin:-1,'champdatefin','','','',"add",1,0);
print $form->select_date($champdatefin?$champdatefin:-1,'champdatefin','','','',"add",1,0,1);
print '</tr>'."\n";
print '</table>'."\n";

View File

@ -952,6 +952,15 @@ else
print '</td></tr>';
}
// Units
if($conf->global->PRODUCT_USE_UNITS)
{
print '<tr><td>'.$langs->trans('DefaultUnitToShow').'</td>';
print '<td colspan="3">';
print $form->selectUnits('','units');
print '</td></tr>';
}
// Custom code
if (empty($conf->global->PRODUCT_DISABLE_CUSTOM_INFO))
{
@ -988,15 +997,6 @@ else
print "</td></tr>";
}
// Units
if($conf->global->PRODUCT_USE_UNITS)
{
print '<tr><td>'.$langs->trans('Unit').'</td>';
print '<td colspan="3">';
print $form->selectUnits("units");
print '</td></tr>';
}
print '</table>';
print '<br>';
@ -1223,7 +1223,7 @@ else
print '</td></tr>';
}
else
{
{
// Weight
print '<tr><td>'.$langs->trans("Weight").'</td><td colspan="3">';
print '<input name="weight" size="5" value="'.$object->weight.'"> ';
@ -1245,6 +1245,14 @@ else
print $formproduct->select_measuring_units("volume_units", "volume", $object->volume_units);
print '</td></tr>';
}
// Units
if($conf->global->PRODUCT_USE_UNITS)
{
print '<tr><td>'.$langs->trans('DefaultUnitToShow').'</td>';
print '<td colspan="3">';
print $form->selectUnits($object->fk_unit, 'units');
print '</td></tr>';
}
// Custom code
if (empty($conf->global->PRODUCT_DISABLE_CUSTOM_INFO))
@ -1286,15 +1294,6 @@ else
print "</td></tr>";
}
// Units
if($conf->global->PRODUCT_USE_UNITS)
{
print '<tr><td>'.$langs->trans('Unit').'</td>';
print '<td colspan="3">';
print $form->selectUnits($object->fk_unit);
print '</td></tr>';
}
print '</table>';
print '<br>';
@ -1567,7 +1566,7 @@ else
{
$unit = $object->getLabelOfUnit();
print '<tr><td>'.$langs->trans('Unit').'</td><td>';
print '<tr><td>'.$langs->trans('DefaultUnitToShow').'</td><td>';
if ($unit !== '') {
print $langs->trans($unit);
}

View File

@ -232,9 +232,10 @@ class Productcustomerprice extends CommonObject
* @param int $id object
* @return int <0 if KO, >0 if OK
*/
function fetch($id) {
function fetch($id)
{
global $langs;
$sql = "SELECT";
$sql .= " t.rowid,";
@ -293,18 +294,22 @@ class Productcustomerprice extends CommonObject
}
/**
* Load all objects in memory from database
* Load all customer prices in memory from database
*
* @param string $sortorder order
* @param string $sortfield field
* @param int $limit page
* @param int $offset offset
* @param array $filter output
* @return int <0 if KO, >0 if OK
* @param string $sortorder order
* @param string $sortfield field
* @param int $limit page
* @param int $offset offset
* @param array $filter Filter for select
* @return int <0 if KO, >0 if OK
*/
function fetch_all($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, $filter = array()) {
function fetch_all($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, $filter = array())
{
global $langs;
if (! empty($sortfield)) $sortfield = "t.rowid";
if (! empty($sortorder)) $sortorder = "DESC";
$sql = "SELECT";
$sql .= " t.rowid,";
@ -347,12 +352,8 @@ class Productcustomerprice extends CommonObject
}
}
if (! empty($sortfield)) {
$sql .= " ORDER BY " . $sortfield . ' ' . $sortorder;
}
if (! empty($limit)) {
$sql .= ' ' . $this->db->plimit($limit + 1, $offset);
}
$sql.= $this->db->order($sortfield, $sortorder);
if (! empty($limit)) $sql .= ' ' . $this->db->plimit($limit + 1, $offset);
dol_syslog(get_class($this) . "::fetch_all", LOG_DEBUG);
$resql = $this->db->query($sql);
@ -400,16 +401,20 @@ class Productcustomerprice extends CommonObject
/**
* Load all objects in memory from database
*
* @param string $sortorder order
* @param string $sortfield field
* @param int $limit page
* @param int $offset offset
* @param array $filter output
* @return int <0 if KO, >0 if OK
* @param string $sortorder order
* @param string $sortfield field
* @param int $limit page
* @param int $offset offset
* @param array $filter Filter for sql request
* @return int <0 if KO, >0 if OK
*/
function fetch_all_log($sortorder, $sortfield, $limit, $offset, $filter = array()) {
function fetch_all_log($sortorder, $sortfield, $limit, $offset, $filter = array())
{
global $langs;
if (! empty($sortfield)) $sortfield = "t.rowid";
if (! empty($sortorder)) $sortorder = "DESC";
$sql = "SELECT";
$sql .= " t.rowid,";
@ -451,12 +456,8 @@ class Productcustomerprice extends CommonObject
}
}
if (! empty($sortfield)) {
$sql .= " ORDER BY " . $sortfield . ' ' . $sortorder;
}
if (! empty($limit)) {
$sql .= ' ' . $this->db->plimit($limit + 1, $offset);
}
$sql.= $this->db->order($sortfield, $sortorder);
if (! empty($limit)) $sql .= ' ' . $this->db->plimit($limit + 1, $offset);
dol_syslog(get_class($this) . "::fetch_all_log", LOG_DEBUG);
$resql = $this->db->query($sql);

View File

@ -829,7 +829,7 @@ if ($action == 'edit_price' && ($user->rights->produit->creer || $user->rights->
}
}
// Liste des evolutions du prix
// List of price changes (ordered by descending date)
$sql = "SELECT p.rowid, p.price, p.price_ttc, p.price_base_type, p.tva_tx, p.recuperableonly,";
$sql .= " p.price_level, p.price_min, p.price_min_ttc,p.price_by_qty,";
$sql .= " p.date_price as dp, p.fk_price_expression, u.rowid as user_id, u.login";
@ -1156,7 +1156,6 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
}
elseif ($action == 'showlog_customer_price')
{
$filter = array('t.fk_product' => $object->id,'t.fk_soc' => GETPOST('socid', 'int'));
// Count total nb of records
@ -1199,6 +1198,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
foreach ($prodcustprice->lines as $line)
{
$var = ! $var;
print "<tr ".$bc[$var].">";
// Date
$staticsoc = new Societe($db);
@ -1237,7 +1237,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
// Count total nb of records
$nbtotalofrecords = 0;
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
$nbtotalofrecords = $prodcustprice->fetch_all('', '', 0, 0, $filter);
$nbtotalofrecords = $prodcustprice->fetch_all($sortfield, $sortorder, 0, 0, $filter);
}
$result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);

View File

@ -747,10 +747,10 @@ if ($resql)
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST"><input type="hidden" name="pdluoid" value="'.$pdluo->id.'"><input type="hidden" name="action" value="updateline"><input type="hidden" name="id" value="'.$id.'"><table class="noborder" width="100%"><tr><td width="10%"></td>';
print '<td align="right" width="10%"><input type="text" name="batch_number" value="'.$pdluo->batch.'"></td>';
print '<td align="center" width="10%">';
$form->select_date($pdluo->eatby,'eatby','','',1,"");
$form->select_date($pdluo->eatby,'eatby','','',1,'',1,0,1);
print '</td>';
print '<td align="center" width="10%">';
$form->select_date($pdluo->sellby,'sellby','','',1,"");
$form->select_date($pdluo->sellby,'sellby','','',1,'',1,0,1);
print '</td>';
print '<td align="right" width="10%">'.$pdluo->qty.($pdluo->qty<0?' '.img_warning():'').'</td>';
print '<td colspan="4"><input type="submit" class="button" id="savelinebutton" name="save" value="'.$langs->trans("Save").'">';

View File

@ -484,12 +484,12 @@ if ($action == 'create' && $user->rights->projet->creer)
// Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date(($date_start?$date_start:''),'projectstart');
print $form->select_date(($date_start?$date_start:''),'projectstart',0,0,0,'',1,0,1);
print '</td></tr>';
// Date end
print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date(($date_end?$date_end:-1),'projectend');
print $form->select_date(($date_end?$date_end:-1),'projectend',0,0,0,'',1,0,1);
print '</td></tr>';
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
@ -642,7 +642,7 @@ else
// Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date($object->date_start?$object->date_start:-1,'projectstart');
print $form->select_date($object->date_start?$object->date_start:-1,'projectstart',0,0,0,'',1,0,1);
print ' &nbsp; &nbsp; <input type="checkbox" name="reportdate" value="yes" ';
if ($comefromclone){print ' checked ';}
print '/> '. $langs->trans("ProjectReportDate");
@ -650,7 +650,7 @@ else
// Date end
print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date($object->date_end?$object->date_end:-1,'projectend');
print $form->select_date($object->date_end?$object->date_end:-1,'projectend',0,0,0,'',1,0,1);
print '</td></tr>';
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))

View File

@ -320,10 +320,10 @@ if (! $showdatefilter)
print '<input type="hidden" name="action" value="view">';
print '<table><tr>';
print '<td>'.$langs->trans("From").' ';
print $form->select_date($dates,'dates',0,0,1);
print $form->select_date($dates,'dates',0,0,1,'',1,0,1);
print '</td>';
print '<td>'.$langs->trans("to").' ';
print $form->select_date($datee,'datee',0,0,1);
print $form->select_date($datee,'datee',0,0,1,'',1,0,1);
print '</td>';
print '<td>';
print '<input type="submit" name="refresh" value="'.$langs->trans("Refresh").'" class="button">';

View File

@ -310,12 +310,12 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
// Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date(($date_start?$date_start:''),'dateo',1,1,0,'',1,1);
print $form->select_date(($date_start?$date_start:''),'dateo',1,1,0,'',1,1,1);
print '</td></tr>';
// Date end
print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date(($date_end?$date_end:-1),'datee',1,1,0,'',1,1);
print $form->select_date(($date_end?$date_end:-1),'datee',1,1,0,'',1,1,1);
print '</td></tr>';
// planned workload

View File

@ -336,12 +336,12 @@ if ($id > 0 || ! empty($ref))
// Date start
print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
print $form->select_date($object->date_start,'dateo',1,1);
print $form->select_date($object->date_start,'dateo',1,1,0,'',1,0,1);
print '</td></tr>';
// Date end
print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
print $form->select_date($object->date_end?$object->date_end:-1,'datee',1,1);
print $form->select_date($object->date_end?$object->date_end:-1,'datee',1,1,0,'',1,0,1);
print '</td></tr>';
// Planned workload

View File

@ -385,7 +385,7 @@ if ($id > 0 || ! empty($ref))
print '<td class="nowrap">';
//$newdate=dol_mktime(12,0,0,$_POST["timemonth"],$_POST["timeday"],$_POST["timeyear"]);
$newdate='';
print $form->select_date($newdate,'time',1,1,2,"timespent_date");
print $form->select_date($newdate,'time',1,1,2,"timespent_date",1,0,1);
print '</td>';
// Contributor
@ -486,7 +486,7 @@ if ($id > 0 || ! empty($ref))
print '<td class="nowrap">';
if ($_GET['action'] == 'editline' && $_GET['lineid'] == $task_time->rowid)
{
print $form->select_date($db->jdate($date2?$date2:$date1),'timeline',1,1,2,"timespent_date");
print $form->select_date($db->jdate($date2?$date2:$date1),'timeline',1,1,2,"timespent_date",1,0,1);
}
else
{

View File

@ -504,7 +504,7 @@ if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
}
// Birthday
print '<tr id="trbirth" class="trbirth"><td>'.$langs->trans("DateToBirth").'</td><td>';
print $form->select_date($birthday,'birth',0,0,1,"newmember");
print $form->select_date($birthday,'birth',0,0,1,"newmember",1,0,1);
print '</td></tr>'."\n";
// Photo
print '<tr><td>'.$langs->trans("URLPhoto").'</td><td><input type="text" name="photo" size="40" value="'.dol_escape_htmltag(GETPOST('photo')).'"></td></tr>'."\n";