Merge branch '6.0' of https://github.com/Dolibarr/dolibarr into 6.0-api
This commit is contained in:
commit
949eef82f0
@ -3,6 +3,7 @@
|
|||||||
# \file build/makepack-dolibarrmodule.pl
|
# \file build/makepack-dolibarrmodule.pl
|
||||||
# \brief Package builder (tgz, zip, rpm, deb, exe)
|
# \brief Package builder (tgz, zip, rpm, deb, exe)
|
||||||
# \author (c)2005-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
# \author (c)2005-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
# \contributor (c)2017 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
use Cwd;
|
use Cwd;
|
||||||
@ -134,7 +135,15 @@ foreach my $PROJECT (@PROJECTLIST) {
|
|||||||
# Get version $MAJOR, $MINOR and $BUILD
|
# Get version $MAJOR, $MINOR and $BUILD
|
||||||
print "Version detected for module ".$PROJECT.": ";
|
print "Version detected for module ".$PROJECT.": ";
|
||||||
$result=open(IN,"<".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php");
|
$result=open(IN,"<".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php");
|
||||||
if (! $result) { die "Error: Can't open descriptor file ".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php for reading.\n"; }
|
$custom=false;
|
||||||
|
if (! $result) {
|
||||||
|
$result=open(IN,"<".$SOURCE."/htdocs/custom/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php");
|
||||||
|
if (! $result) {
|
||||||
|
die "Error: Can't open descriptor file ".$SOURCE."/htdocs/(or /htdocs/custom/)".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php for reading.\n";
|
||||||
|
}else{
|
||||||
|
$custom = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
while(<IN>)
|
while(<IN>)
|
||||||
{
|
{
|
||||||
if ($_ =~ /this->version\s*=\s*'([\d\.]+)'/) { $PROJVERSION=$1; break; }
|
if ($_ =~ /this->version\s*=\s*'([\d\.]+)'/) { $PROJVERSION=$1; break; }
|
||||||
@ -294,8 +303,11 @@ foreach my $PROJECT (@PROJECTLIST) {
|
|||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.old`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.old`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.postgres`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.postgres`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf*sav*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf*sav*`;
|
||||||
|
if($custom){
|
||||||
|
$ret=`cp -r $BUILDROOT/$PROJECTLC/htdocs/custom/* $BUILDROOT/$PROJECTLC/htdocs/.`;
|
||||||
|
}
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom2`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/custom2`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/test`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/test`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/Thumbs.db $BUILDROOT/$PROJECTLC/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/*/Thumbs.db`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/Thumbs.db $BUILDROOT/$PROJECTLC/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/*/Thumbs.db`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECTLC/CVS* $BUILDROOT/$PROJECTLC/*/CVS* $BUILDROOT/$PROJECTLC/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/*/CVS*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECTLC/CVS* $BUILDROOT/$PROJECTLC/*/CVS* $BUILDROOT/$PROJECTLC/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/*/CVS*`;
|
||||||
|
|||||||
@ -68,6 +68,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
|
|||||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d";
|
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.country = c.rowid";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON d.country = c.rowid";
|
||||||
$sql.= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
|
$sql.= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
|
||||||
|
$sql.= " AND d.entity IN (".getEntity('adherent').")";
|
||||||
if (is_numeric($foruserid)) $sql.=" AND d.rowid=".$foruserid;
|
if (is_numeric($foruserid)) $sql.=" AND d.rowid=".$foruserid;
|
||||||
if ($foruserlogin) $sql.=" AND d.login='".$db->escape($foruserlogin)."'";
|
if ($foruserlogin) $sql.=" AND d.login='".$db->escape($foruserlogin)."'";
|
||||||
$sql.= " ORDER BY d.rowid ASC";
|
$sql.= " ORDER BY d.rowid ASC";
|
||||||
|
|||||||
@ -373,11 +373,12 @@ $formactions->select_type_actions($conf->global->AGENDA_DEFAULT_FILTER_TYPE, "AG
|
|||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// AGENDA_DEFAULT_FILTER_STATUS
|
// AGENDA_DEFAULT_FILTER_STATUS
|
||||||
|
// TODO Remove to use the default generic feature
|
||||||
print '<tr class="oddeven">'."\n";
|
print '<tr class="oddeven">'."\n";
|
||||||
print '<td>'.$langs->trans("AGENDA_DEFAULT_FILTER_STATUS").'</td>'."\n";
|
print '<td>'.$langs->trans("AGENDA_DEFAULT_FILTER_STATUS").'</td>'."\n";
|
||||||
print '<td align="center"> </td>'."\n";
|
print '<td align="center"> </td>'."\n";
|
||||||
print '<td align="right">'."\n";
|
print '<td align="right">'."\n";
|
||||||
$formactions->form_select_status_action('agenda', $conf->global->AGENDA_DEFAULT_FILTER_STATUS, 1, 'AGENDA_DEFAULT_FILTER_STATUS', 1, 2);
|
$formactions->form_select_status_action('agenda', $conf->global->AGENDA_DEFAULT_FILTER_STATUS, 1, 'AGENDA_DEFAULT_FILTER_STATUS', 1, 2, 'minwidth100');
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// AGENDA_DEFAULT_VIEW
|
// AGENDA_DEFAULT_VIEW
|
||||||
|
|||||||
@ -128,7 +128,7 @@ $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain
|
|||||||
|
|
||||||
// Show message
|
// Show message
|
||||||
$message='';
|
$message='';
|
||||||
$url=$urlwithroot.'/api/index.php/login?login=<strong>auserlogin</strong>&userpassword=<strong>thepassword</strong>[&reset=1]';
|
$url=$urlwithroot.'/api/index.php/login?login=<strong>auserlogin</strong>&password=<strong>thepassword</strong>[&reset=1]';
|
||||||
$message.=$langs->trans("UrlToGetKeyToUseAPIs").':<br>';
|
$message.=$langs->trans("UrlToGetKeyToUseAPIs").':<br>';
|
||||||
$message.=img_picto('','object_globe.png').' '.$url;
|
$message.=img_picto('','object_globe.png').' '.$url;
|
||||||
print $message;
|
print $message;
|
||||||
|
|||||||
@ -1542,7 +1542,8 @@ class Categorie extends CommonObject
|
|||||||
|
|
||||||
if (file_exists($dir)) {
|
if (file_exists($dir)) {
|
||||||
if (is_array($file['name']) && count($file['name']) > 0) {
|
if (is_array($file['name']) && count($file['name']) > 0) {
|
||||||
for($i = 0; $i <= count($file['name']); $i ++) {
|
$nbfile = count($file['name']);
|
||||||
|
for ($i = 0; $i <= $nbfile; $i ++) {
|
||||||
|
|
||||||
$originImage = $dir . $file['name'][$i];
|
$originImage = $dir . $file['name'][$i];
|
||||||
|
|
||||||
|
|||||||
@ -658,7 +658,7 @@ class AdvanceTargetingMailing extends CommonObject
|
|||||||
$sqlwhere[]= " (t.datec >= '".$this->db->idate($arrayquery['contact_create_st_dt'])."' AND t.datec <= '".$this->db->idate($arrayquery['contact_create_end_dt'])."')";
|
$sqlwhere[]= " (t.datec >= '".$this->db->idate($arrayquery['contact_create_st_dt'])."' AND t.datec <= '".$this->db->idate($arrayquery['contact_create_end_dt'])."')";
|
||||||
}
|
}
|
||||||
if (!empty($arrayquery['contact_categ']) && count($arrayquery['contact_categ'])>0) {
|
if (!empty($arrayquery['contact_categ']) && count($arrayquery['contact_categ'])>0) {
|
||||||
$sqlwhere[]= " (contactcateg.fk_categorie IN (".$db->escape(implode(",",$arrayquery['contact_categ']))."))";
|
$sqlwhere[]= " (contactcateg.fk_categorie IN (".$this->db->escape(implode(",",$arrayquery['contact_categ']))."))";
|
||||||
}
|
}
|
||||||
|
|
||||||
//Standard Extrafield feature
|
//Standard Extrafield feature
|
||||||
|
|||||||
@ -125,7 +125,7 @@ if ($action == 'confirm_split' && GETPOST("confirm") == 'yes')
|
|||||||
if ($res > 0 && $newid1 > 0 && $newid2 > 0)
|
if ($res > 0 && $newid1 > 0 && $newid2 > 0)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id); // To avoid pb whith back
|
header("Location: ".$_SERVER["PHP_SELF"].'?id='.$id.($backtopage?'&backtopage='.urlencode($backtopage):'')); // To avoid pb whith back
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -408,9 +408,9 @@ if ($socid > 0)
|
|||||||
if ($user->rights->societe->creer || $user->rights->facture->creer)
|
if ($user->rights->societe->creer || $user->rights->facture->creer)
|
||||||
{
|
{
|
||||||
print '<td class="nowrap">';
|
print '<td class="nowrap">';
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=split&remid='.$obj->rowid.'">'.img_split($langs->trans("SplitDiscount")).'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=split&remid='.$obj->rowid.($backtopage?'&backtopage='.urlencode($backtopage):'').'">'.img_split($langs->trans("SplitDiscount")).'</a>';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=remove&remid='.$obj->rowid.'">'.img_delete($langs->trans("RemoveDiscount")).'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=remove&remid='.$obj->rowid.($backtopage?'&backtopage='.urlencode($backtopage):'').'">'.img_delete($langs->trans("RemoveDiscount")).'</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else print '<td> </td>';
|
else print '<td> </td>';
|
||||||
@ -441,7 +441,7 @@ if ($socid > 0)
|
|||||||
array('type' => 'text', 'name' => 'amount_ttc_2', 'label' => $langs->trans("AmountTTC").' 2', 'value' => $amount2, 'size' => '5')
|
array('type' => 'text', 'name' => 'amount_ttc_2', 'label' => $langs->trans("AmountTTC").' 2', 'value' => $amount2, 'size' => '5')
|
||||||
);
|
);
|
||||||
$langs->load("dict");
|
$langs->load("dict");
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&remid='.$showconfirminfo['rowid'], $langs->trans('SplitDiscount'), $langs->trans('ConfirmSplitDiscount',price($showconfirminfo['amount_ttc']),$langs->transnoentities("Currency".$conf->currency)), 'confirm_split', $formquestion, 0, 0);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&remid='.$showconfirminfo['rowid'].($backtopage?'&backtopage='.urlencode($backtopage):''), $langs->trans('SplitDiscount'), $langs->trans('ConfirmSplitDiscount',price($showconfirminfo['amount_ttc']),$langs->transnoentities("Currency".$conf->currency)), 'confirm_split', $formquestion, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1478,7 +1478,7 @@ if ($action == 'create' && $user->rights->commande->creer)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->select_company('', 'socid', 's.client = 1 OR s.client = 3', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300');
|
print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 3)', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300');
|
||||||
// reload page to retrieve customer informations
|
// reload page to retrieve customer informations
|
||||||
if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE))
|
if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -378,7 +378,9 @@ if (empty($reshook))
|
|||||||
|
|
||||||
else if ($action == "setabsolutediscount" && $user->rights->facture->creer)
|
else if ($action == "setabsolutediscount" && $user->rights->facture->creer)
|
||||||
{
|
{
|
||||||
// POST[remise_id] ou POST[remise_id_for_payment]
|
// POST[remise_id] or POST[remise_id_for_payment]
|
||||||
|
|
||||||
|
// We use the credit to reduce amount of invoice
|
||||||
if (! empty($_POST["remise_id"])) {
|
if (! empty($_POST["remise_id"])) {
|
||||||
$ret = $object->fetch($id);
|
$ret = $object->fetch($id);
|
||||||
if ($ret > 0) {
|
if ($ret > 0) {
|
||||||
@ -390,14 +392,28 @@ if (empty($reshook))
|
|||||||
dol_print_error($db, $object->error);
|
dol_print_error($db, $object->error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! empty($_POST["remise_id_for_payment"])) {
|
// We use the credit to reduce remain to pay
|
||||||
|
if (! empty($_POST["remise_id_for_payment"]))
|
||||||
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/class/discount.class.php';
|
require_once DOL_DOCUMENT_ROOT . '/core/class/discount.class.php';
|
||||||
$discount = new DiscountAbsolute($db);
|
$discount = new DiscountAbsolute($db);
|
||||||
$discount->fetch($_POST["remise_id_for_payment"]);
|
$discount->fetch($_POST["remise_id_for_payment"]);
|
||||||
|
|
||||||
$result = $discount->link_to_invoice(0, $id);
|
//var_dump($object->getRemainToPay(0));
|
||||||
if ($result < 0) {
|
//var_dump($discount->amount_ttc);exit;
|
||||||
setEventMessages($discount->error, $discount->errors, 'errors');
|
if ($discount->amount_ttc > $object->getRemainToPay(0))
|
||||||
|
{
|
||||||
|
// TODO Split the discount in 2 automatically
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans("ErrorDiscountLargerThanRemainToPaySplitItBefore"), null, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$result = $discount->link_to_invoice(0, $id);
|
||||||
|
if ($result < 0) {
|
||||||
|
setEventMessages($discount->error, $discount->errors, 'errors');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -841,13 +857,18 @@ if (empty($reshook))
|
|||||||
$line->fk_facture = $object->id;
|
$line->fk_facture = $object->id;
|
||||||
$line->fk_parent_line = $fk_parent_line;
|
$line->fk_parent_line = $fk_parent_line;
|
||||||
|
|
||||||
$line->subprice =-$line->subprice; // invert price for object
|
$line->subprice = -$line->subprice; // invert price for object
|
||||||
$line->pa_ht = $line->pa_ht; // we choosed to have buy/cost price always positive, so no revert of sign here
|
$line->pa_ht = $line->pa_ht; // we choosed to have buy/cost price always positive, so no revert of sign here
|
||||||
$line->total_ht=-$line->total_ht;
|
$line->total_ht = -$line->total_ht;
|
||||||
$line->total_tva=-$line->total_tva;
|
$line->total_tva = -$line->total_tva;
|
||||||
$line->total_ttc=-$line->total_ttc;
|
$line->total_ttc = -$line->total_ttc;
|
||||||
$line->total_localtax1=-$line->total_localtax1;
|
$line->total_localtax1 = -$line->total_localtax1;
|
||||||
$line->total_localtax2=-$line->total_localtax2;
|
$line->total_localtax2 = -$line->total_localtax2;
|
||||||
|
|
||||||
|
$line->multicurrency_subprice = -$line->multicurrency_subprice;
|
||||||
|
$line->multicurrency_total_ht = -$line->multicurrency_total_ht;
|
||||||
|
$line->multicurrency_total_tva = -$line->multicurrency_total_tva;
|
||||||
|
$line->multicurrency_total_ttc = -$line->multicurrency_total_ttc;
|
||||||
|
|
||||||
$result = $line->insert(0, 1); // When creating credit note with same lines than source, we must ignore error if discount alreayd linked
|
$result = $line->insert(0, 1); // When creating credit note with same lines than source, we must ignore error if discount alreayd linked
|
||||||
|
|
||||||
@ -3170,6 +3191,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
$addrelativediscount = '<a href="' . DOL_URL_ROOT . '/comm/remise.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditRelativeDiscounts") . '</a>';
|
||||||
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
$addabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("EditGlobalDiscounts") . '</a>';
|
||||||
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture/card.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
$addcreditnote = '<a href="' . DOL_URL_ROOT . '/compta/facture/card.php?action=create&socid=' . $soc->id . '&type=2&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("AddCreditNote") . '</a>';
|
||||||
|
$viewabsolutediscount = '<a href="' . DOL_URL_ROOT . '/comm/remx.php?id=' . $soc->id . '&backtopage=' . urlencode($_SERVER["PHP_SELF"]) . '?facid=' . $object->id . '">' . $langs->trans("ViewAvailableGlobalDiscounts") . '</a>';
|
||||||
|
|
||||||
print '<!-- Discounts --><tr><td>' . $langs->trans('Discounts');
|
print '<!-- Discounts --><tr><td>' . $langs->trans('Discounts');
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@ -3179,7 +3201,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
print $langs->trans("CompanyHasNoRelativeDiscount");
|
print $langs->trans("CompanyHasNoRelativeDiscount");
|
||||||
// print ' ('.$addrelativediscount.')';
|
// print ' ('.$addrelativediscount.')';
|
||||||
|
|
||||||
// Is there commercial discount or down payment available ?
|
// Is there is commercial discount or down payment available ?
|
||||||
if ($absolute_discount > 0) {
|
if ($absolute_discount > 0) {
|
||||||
print '. ';
|
print '. ';
|
||||||
if ($object->statut > 0 || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) {
|
if ($object->statut > 0 || $object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT) {
|
||||||
@ -3204,7 +3226,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
} else {
|
} else {
|
||||||
if ($absolute_creditnote > 0) // If not, link will be added later
|
if ($absolute_creditnote > 0) // If not, link will be added later
|
||||||
{
|
{
|
||||||
if ($object->statut == 0 && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
|
if ($object->statut == Facture::STATUS_DRAFT && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
|
||||||
print ' (' . $addabsolutediscount . ')<br>';
|
print ' (' . $addabsolutediscount . ')<br>';
|
||||||
else
|
else
|
||||||
print '. ';
|
print '. ';
|
||||||
@ -3215,7 +3237,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
if ($absolute_creditnote > 0)
|
if ($absolute_creditnote > 0)
|
||||||
{
|
{
|
||||||
// If validated, we show link "add credit note to payment"
|
// If validated, we show link "add credit note to payment"
|
||||||
if ($object->statut != 1 || $object->type == Facture::TYPE_CREDIT_NOTE) {
|
if ($object->statut != Facture::STATUS_VALIDATED || $object->type == Facture::TYPE_CREDIT_NOTE) {
|
||||||
if ($object->statut == 0 && $object->type != Facture::TYPE_DEPOSIT) {
|
if ($object->statut == 0 && $object->type != Facture::TYPE_DEPOSIT) {
|
||||||
$text = $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency));
|
$text = $langs->trans("CompanyHasCreditNote", price($absolute_creditnote), $langs->transnoentities("Currency" . $conf->currency));
|
||||||
print $form->textwithpicto($text, $langs->trans("CreditNoteDepositUse"));
|
print $form->textwithpicto($text, $langs->trans("CreditNoteDepositUse"));
|
||||||
@ -3226,13 +3248,13 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
// There is credit notes discounts available
|
// There is credit notes discounts available
|
||||||
if (! $absolute_discount) print '<br>';
|
if (! $absolute_discount) print '<br>';
|
||||||
// $form->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, $resteapayer);
|
// $form->form_remise_dispo($_SERVER["PHP_SELF"].'?facid='.$object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, $resteapayer);
|
||||||
$more=' ('.$addcreditnote.')';
|
$more=' ('.$addcreditnote. (($addcreditnote && $viewabsolutediscount) ? ' - ' : '') . $viewabsolutediscount . ')';
|
||||||
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, 0, $more); // We allow credit note even if amount is higher
|
$form->form_remise_dispo($_SERVER["PHP_SELF"] . '?facid=' . $object->id, 0, 'remise_id_for_payment', $soc->id, $absolute_creditnote, $filtercreditnote, 0, $more); // We allow credit note even if amount is higher
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $absolute_discount && ! $absolute_creditnote) {
|
if (! $absolute_discount && ! $absolute_creditnote) {
|
||||||
print $langs->trans("CompanyHasNoAbsoluteDiscount");
|
print $langs->trans("CompanyHasNoAbsoluteDiscount");
|
||||||
if ($object->statut == 0 && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
|
if ($object->statut == Facture::STATUS_DRAFT && $object->type != Facture::TYPE_CREDIT_NOTE && $object->type != Facture::TYPE_DEPOSIT)
|
||||||
print ' (' . $addabsolutediscount . ')<br>';
|
print ' (' . $addabsolutediscount . ')<br>';
|
||||||
else
|
else
|
||||||
print '. ';
|
print '. ';
|
||||||
|
|||||||
@ -1568,7 +1568,7 @@ class Facture extends CommonInvoice
|
|||||||
$facligne->desc=$remise->description; // Description ligne
|
$facligne->desc=$remise->description; // Description ligne
|
||||||
$facligne->vat_src_code=$remise->vat_src_code;
|
$facligne->vat_src_code=$remise->vat_src_code;
|
||||||
$facligne->tva_tx=$remise->tva_tx;
|
$facligne->tva_tx=$remise->tva_tx;
|
||||||
$facligne->subprice=-$remise->amount_ht;
|
$facligne->subprice = -$remise->amount_ht;
|
||||||
$facligne->fk_product=0; // Id produit predefini
|
$facligne->fk_product=0; // Id produit predefini
|
||||||
$facligne->qty=1;
|
$facligne->qty=1;
|
||||||
$facligne->remise_percent=0;
|
$facligne->remise_percent=0;
|
||||||
@ -1591,6 +1591,11 @@ class Facture extends CommonInvoice
|
|||||||
$facligne->total_tva = -$remise->amount_tva;
|
$facligne->total_tva = -$remise->amount_tva;
|
||||||
$facligne->total_ttc = -$remise->amount_ttc;
|
$facligne->total_ttc = -$remise->amount_ttc;
|
||||||
|
|
||||||
|
$facligne->multicurrency_subprice = -$remise->multicurrency_subprice;
|
||||||
|
$facligne->multicurrency_total_ht = -$remise->multicurrency_total_ht;
|
||||||
|
$facligne->multicurrency_total_tva = -$remise->multicurrency_total_tva;
|
||||||
|
$facligne->multicurrency_total_ttc = -$remise->multicurrency_total_ttc;
|
||||||
|
|
||||||
$lineid=$facligne->insert();
|
$lineid=$facligne->insert();
|
||||||
if ($lineid > 0)
|
if ($lineid > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1082,7 +1082,7 @@ if ($action == 'create')
|
|||||||
$disableedit=1;
|
$disableedit=1;
|
||||||
$disablemove=1;
|
$disablemove=1;
|
||||||
$disableremove=1;
|
$disableremove=1;
|
||||||
$ret = $object->printObjectLines('', $mysoc, $soc, $lineid, 0); // No date selector for template invoice
|
$ret = $object->printObjectLines('', $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
@ -1493,7 +1493,7 @@ else
|
|||||||
{
|
{
|
||||||
//$disableedit=1;
|
//$disableedit=1;
|
||||||
//$disablemove=1;
|
//$disablemove=1;
|
||||||
$ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 0); // No date selector for template invoice
|
$ret = $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice
|
||||||
}
|
}
|
||||||
|
|
||||||
// Form to add new line
|
// Form to add new line
|
||||||
@ -1504,7 +1504,7 @@ else
|
|||||||
$var = true;
|
$var = true;
|
||||||
|
|
||||||
// Add free products/services
|
// Add free products/services
|
||||||
$object->formAddObjectLine(0, $mysoc, $soc); // No date selector for template invoice
|
$object->formAddObjectLine(0, $mysoc, $object->thirdparty); // No date selector for template invoice
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('formAddObjectLine', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
|
|||||||
@ -488,12 +488,12 @@ class Paiement extends CommonObject
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a record into bank for payment with links between this bank record and invoices of payment.
|
* Add a record into bank for payment + links between this bank record and sources of payment.
|
||||||
* All payment properties (this->amount, this->amounts, ...) must have been set first like after a call to create().
|
* All payment properties (this->amount, this->amounts, ...) must have been set first like after a call to create().
|
||||||
*
|
*
|
||||||
* @param User $user Object of user making payment
|
* @param User $user Object of user making payment
|
||||||
* @param string $mode 'payment', 'payment_supplier'
|
* @param string $mode 'payment', 'payment_supplier'
|
||||||
* @param string $label Label to use in bank record
|
* @param string $label Label to use in bank record. Note: If label is '(WithdrawalPayment)', a third entry 'widthdraw' is added into bank_url.
|
||||||
* @param int $accountid Id of bank account to do link with
|
* @param int $accountid Id of bank account to do link with
|
||||||
* @param string $emetteur_nom Name of transmitter
|
* @param string $emetteur_nom Name of transmitter
|
||||||
* @param string $emetteur_banque Name of bank
|
* @param string $emetteur_banque Name of bank
|
||||||
@ -577,10 +577,11 @@ class Paiement extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
|
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
|
||||||
if (! $error && $label != '(WithdrawalPayment)')
|
//if (! $error && $label != '(WithdrawalPayment)')
|
||||||
|
if (! $error)
|
||||||
{
|
{
|
||||||
$linkaddedforthirdparty=array();
|
$linkaddedforthirdparty=array();
|
||||||
foreach ($this->amounts as $key => $value) // We should have always same third party but we loop in case of.
|
foreach ($this->amounts as $key => $value) // We should have invoices always for same third party but we loop in case of.
|
||||||
{
|
{
|
||||||
if ($mode == 'payment')
|
if ($mode == 'payment')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -51,6 +51,9 @@ if (! $sortfield) $sortfield="p.datec";
|
|||||||
// Get supervariables
|
// Get supervariables
|
||||||
$statut = GETPOST('statut','int');
|
$statut = GETPOST('statut','int');
|
||||||
$search_ref = GETPOST('search_ref','alpha');
|
$search_ref = GETPOST('search_ref','alpha');
|
||||||
|
$search_amount = GETPOST('search_amount','alpha');
|
||||||
|
|
||||||
|
$bon=new BonPrelevement($db,"");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -60,6 +63,7 @@ $search_ref = GETPOST('search_ref','alpha');
|
|||||||
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
$search_ref="";
|
$search_ref="";
|
||||||
|
$search_amount="";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -69,13 +73,12 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x',
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
||||||
|
|
||||||
$bon=new BonPrelevement($db,"");
|
|
||||||
|
|
||||||
$sql = "SELECT p.rowid, p.ref, p.amount, p.statut";
|
$sql = "SELECT p.rowid, p.ref, p.amount, p.statut";
|
||||||
$sql.= ", p.datec";
|
$sql.= ", p.datec";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||||
$sql.= " WHERE p.entity = ".$conf->entity;
|
$sql.= " WHERE p.entity = ".$conf->entity;
|
||||||
if ($search_ref) $sql.=natural_search("p.ref", $search_ref);
|
if ($search_ref) $sql.=natural_search("p.ref", $search_ref);
|
||||||
|
if ($search_amount) $sql.=natural_search("p.amount", $search_amount, 1);
|
||||||
|
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
|
|
||||||
@ -97,6 +100,8 @@ if ($result)
|
|||||||
|
|
||||||
$urladd= "&statut=".$statut;
|
$urladd= "&statut=".$statut;
|
||||||
|
|
||||||
|
$selectedfields='';
|
||||||
|
|
||||||
// Lines of title fields
|
// Lines of title fields
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
@ -116,7 +121,9 @@ if ($result)
|
|||||||
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_ref" value="'. $db->escape($search_ref).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_ref" value="'. dol_escape_htmltag($search_ref).'"></td>';
|
||||||
|
print '<td class="liste_titre"> </td>';
|
||||||
|
print '<td class="liste_titre right"><input type="text" class="flat maxwidth100" name="search_amount" value="'. dol_escape_htmltag($search_amount).'"></td>';
|
||||||
print '<td class="liste_titre"> </td>';
|
print '<td class="liste_titre"> </td>';
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="right">';
|
||||||
$searchpicto=$form->showFilterButtons();
|
$searchpicto=$form->showFilterButtons();
|
||||||
@ -125,9 +132,11 @@ if ($result)
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"');
|
print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"');
|
print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"","","",'align="center"');
|
print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"p.amount","","",'align="right"',$sortfield,$sortorder);
|
||||||
|
print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"","","",'align="right"',$sortfield,$sortorder);
|
||||||
|
print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n";
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
while ($i < min($num,$limit))
|
while ($i < min($num,$limit))
|
||||||
@ -136,15 +145,18 @@ if ($result)
|
|||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
|
|
||||||
print $bon->LibStatut($obj->statut,2);
|
|
||||||
print " ";
|
|
||||||
|
|
||||||
print '<a href="card.php?id='.$obj->rowid.'">'.$obj->ref."</a></td>\n";
|
print '<a href="card.php?id='.$obj->rowid.'">'.$obj->ref."</a></td>\n";
|
||||||
|
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($obj->datec),'day')."</td>\n";
|
print '<td align="center">'.dol_print_date($db->jdate($obj->datec),'day')."</td>\n";
|
||||||
|
|
||||||
print '<td align="right">'.price($obj->amount)."</td>\n";
|
print '<td align="right">'.price($obj->amount)."</td>\n";
|
||||||
|
|
||||||
|
print '<td align="right">';
|
||||||
|
print $bon->LibStatut($obj->statut, 3);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '<td align="right"></td>'."\n";
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/compta/prelevement/card.php
|
* \file htdocs/compta/prelevement/card.php
|
||||||
* \ingroup prelevement
|
* \ingroup prelevement
|
||||||
* \brief Fiche prelevement
|
* \brief Card of a direct debit
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require('../../main.inc.php');
|
require('../../main.inc.php');
|
||||||
@ -45,20 +45,24 @@ if ($user->societe_id > 0) accessforbidden();
|
|||||||
// Get supervariables
|
// Get supervariables
|
||||||
$action = GETPOST('action','alpha');
|
$action = GETPOST('action','alpha');
|
||||||
$id = GETPOST('id','int');
|
$id = GETPOST('id','int');
|
||||||
|
$ref = GETPOST('ref', 'alpha');
|
||||||
$socid = GETPOST('socid','int');
|
$socid = GETPOST('socid','int');
|
||||||
|
|
||||||
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST('sortfield','alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST('sortorder','alpha');
|
||||||
$page = GETPOST("page",'int');
|
$page = GETPOST('page','int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
|
|
||||||
if (! $sortfield) $sortfield='pl.fk_soc';
|
if (! $sortfield) $sortfield='pl.fk_soc';
|
||||||
if (! $sortorder) $sortorder='DESC';
|
if (! $sortorder) $sortorder='DESC';
|
||||||
|
|
||||||
|
$object = new BonPrelevement($db,"");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -66,10 +70,9 @@ if (! $sortorder) $sortorder='DESC';
|
|||||||
|
|
||||||
if ( $action == 'confirm_delete' )
|
if ( $action == 'confirm_delete' )
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
$object->fetch($id, $ref);
|
||||||
$bon->fetch($id);
|
|
||||||
|
|
||||||
$res=$bon->delete();
|
$res=$object->delete();
|
||||||
if ($res > 0)
|
if ($res > 0)
|
||||||
{
|
{
|
||||||
header("Location: index.php");
|
header("Location: index.php");
|
||||||
@ -77,16 +80,16 @@ if ( $action == 'confirm_delete' )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Seems to no be used and replaced with $action == 'infocredit
|
||||||
if ( $action == 'confirm_credite' && GETPOST('confirm','alpha') == 'yes')
|
if ( $action == 'confirm_credite' && GETPOST('confirm','alpha') == 'yes')
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
$object->fetch($id, $ref);
|
||||||
$bon->fetch($id);
|
|
||||||
|
|
||||||
$res=$bon->set_credite();
|
$res=$object->set_credite();
|
||||||
if ($res >= 0)
|
if ($res >= 0)
|
||||||
{
|
{
|
||||||
header("Location: card.php?id=".$id);
|
header("Location: card.php?id=".$id);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,19 +97,18 @@ if ($action == 'infotrans' && $user->rights->prelevement->bons->send)
|
|||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
$bon = new BonPrelevement($db,"");
|
$object->fetch($id, $ref);
|
||||||
$bon->fetch($id);
|
|
||||||
|
|
||||||
$dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int'));
|
$dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int'));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ($_FILES['userfile']['name'] && basename($_FILES['userfile']['name'],".ps") == $bon->ref)
|
if ($_FILES['userfile']['name'] && basename($_FILES['userfile']['name'],".ps") == $object->ref)
|
||||||
{
|
{
|
||||||
$dir = $conf->prelevement->dir_output.'/receipts';
|
$dir = $conf->prelevement->dir_output.'/receipts';
|
||||||
|
|
||||||
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $dir . "/" . dol_unescapefile($_FILES['userfile']['name']),1) > 0)
|
if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $dir . "/" . dol_unescapefile($_FILES['userfile']['name']),1) > 0)
|
||||||
{
|
{
|
||||||
$bon->set_infotrans($user, $dt, GETPOST('methode','alpha'));
|
$object->set_infotrans($user, $dt, GETPOST('methode','alpha'));
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Location: card.php?id=".$id);
|
header("Location: card.php?id=".$id);
|
||||||
@ -118,7 +120,7 @@ if ($action == 'infotrans' && $user->rights->prelevement->bons->send)
|
|||||||
$mesg='BadFile';
|
$mesg='BadFile';
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
$error = $bon->set_infotrans($user, $dt, GETPOST('methode','alpha'));
|
$error = $object->set_infotrans($user, $dt, GETPOST('methode','alpha'));
|
||||||
|
|
||||||
if ($error)
|
if ($error)
|
||||||
{
|
{
|
||||||
@ -127,13 +129,13 @@ if ($action == 'infotrans' && $user->rights->prelevement->bons->send)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set direct debit order to credited, create payment and close invoices
|
||||||
if ($action == 'infocredit' && $user->rights->prelevement->bons->credit)
|
if ($action == 'infocredit' && $user->rights->prelevement->bons->credit)
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
$object->fetch($id, $ref);
|
||||||
$bon->fetch($id);
|
|
||||||
$dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int'));
|
$dt = dol_mktime(12,0,0,GETPOST('remonth','int'),GETPOST('reday','int'),GETPOST('reyear','int'));
|
||||||
|
|
||||||
$error = $bon->set_infocredit($user, $dt);
|
$error = $object->set_infocredit($user, $dt);
|
||||||
|
|
||||||
if ($error)
|
if ($error)
|
||||||
{
|
{
|
||||||
@ -143,61 +145,66 @@ if ($action == 'infocredit' && $user->rights->prelevement->bons->credit)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$bon = new BonPrelevement($db,"");
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
||||||
|
|
||||||
|
if ($id > 0 || $ref)
|
||||||
if ($id > 0)
|
|
||||||
{
|
{
|
||||||
$bon->fetch($id);
|
$object->fetch($id, $ref);
|
||||||
|
|
||||||
$head = prelevement_prepare_head($bon);
|
$head = prelevement_prepare_head($object);
|
||||||
dol_fiche_head($head, 'prelevement', $langs->trans("WithdrawalsReceipts"), '', 'payment');
|
dol_fiche_head($head, 'prelevement', $langs->trans("WithdrawalsReceipts"), -1, 'payment');
|
||||||
|
|
||||||
if (GETPOST('error','alpha')!='')
|
if (GETPOST('error','alpha')!='')
|
||||||
{
|
{
|
||||||
print '<div class="error">'.$bon->getErrorString(GETPOST('error','alpha')).'</div>';
|
print '<div class="error">'.$object->getErrorString(GETPOST('error','alpha')).'</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if ($action == 'credite')
|
/*if ($action == 'credite')
|
||||||
{
|
{
|
||||||
print $form->formconfirm("card.php?id=".$bon->id,$langs->trans("ClassCredited"),$langs->trans("ClassCreditedConfirm"),"confirm_credite",'',1,1);
|
print $form->formconfirm("card.php?id=".$object->id,$langs->trans("ClassCredited"),$langs->trans("ClassCreditedConfirm"),"confirm_credite",'',1,1);
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
dol_banner_tab($object, 'ref', '', 1, 'ref', 'ref');
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$bon->getNomUrl(1).'</td></tr>';
|
//print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$object->getNomUrl(1).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>'.dol_print_date($object->datec,'day').'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($bon->amount).'</td></tr>';
|
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>';
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
|
/*
|
||||||
print '<tr><td>'.$langs->trans('Status').'</td>';
|
print '<tr><td>'.$langs->trans('Status').'</td>';
|
||||||
print '<td>'.$bon->getLibStatut(1).'</td>';
|
print '<td>'.$object->getLibStatut(1).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
if($bon->date_trans <> 0)
|
if($object->date_trans <> 0)
|
||||||
{
|
{
|
||||||
$muser = new User($db);
|
$muser = new User($db);
|
||||||
$muser->fetch($bon->user_trans);
|
$muser->fetch($object->user_trans);
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
||||||
print dol_print_date($bon->date_trans,'day');
|
print dol_print_date($object->date_trans,'day');
|
||||||
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
||||||
print $bon->methodes_trans[$bon->method_trans];
|
print $object->methodes_trans[$object->method_trans];
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
if($bon->date_credit <> 0)
|
if($object->date_credit <> 0)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
||||||
print dol_print_date($bon->date_credit,'day');
|
print dol_print_date($object->date_credit,'day');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,19 +212,36 @@ if ($id > 0)
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="border" width="100%"><tr><td class="titlefield">';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$acc = new Account($db);
|
||||||
|
$result=$acc->fetch($conf->global->PRELEVEMENT_ID_BANKACCOUNT);
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
|
print $langs->trans("BankToReceiveWithdraw");
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
if ($acc->id > 0)
|
||||||
|
print $acc->getNomUrl(1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
print $langs->trans("WithdrawalFile").'</td><td>';
|
print $langs->trans("WithdrawalFile").'</td><td>';
|
||||||
$relativepath = 'receipts/'.$bon->ref.'.xml';
|
$relativepath = 'receipts/'.$object->ref.'.xml';
|
||||||
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (empty($bon->date_trans) && $user->rights->prelevement->bons->send && $action=='settransmitted')
|
if (empty($object->date_trans) && $user->rights->prelevement->bons->send && $action=='settransmitted')
|
||||||
{
|
{
|
||||||
print '<form method="post" name="userfile" action="card.php?id='.$bon->id.'" enctype="multipart/form-data">';
|
print '<form method="post" name="userfile" action="card.php?id='.$object->id.'" enctype="multipart/form-data">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="infotrans">';
|
print '<input type="hidden" name="action" value="infotrans">';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
@ -227,7 +251,7 @@ if ($id > 0)
|
|||||||
print $form->select_date('','','','','',"userfile",1,1);
|
print $form->select_date('','','','','',"userfile",1,1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr '.$bc[false].'><td width="20%">'.$langs->trans("TransMetod").'</td><td>';
|
print '<tr '.$bc[false].'><td width="20%">'.$langs->trans("TransMetod").'</td><td>';
|
||||||
print $form->selectarray("methode",$bon->methodes_trans);
|
print $form->selectarray("methode",$object->methodes_trans);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
/* print '<tr><td width="20%">'.$langs->trans("File").'</td><td>';
|
/* print '<tr><td width="20%">'.$langs->trans("File").'</td><td>';
|
||||||
print '<input type="hidden" name="max_file_size" value="'.$conf->maxfilesize.'">';
|
print '<input type="hidden" name="max_file_size" value="'.$conf->maxfilesize.'">';
|
||||||
@ -238,9 +262,9 @@ if ($id > 0)
|
|||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($bon->date_trans) && $bon->date_credit == 0 && $user->rights->prelevement->bons->credit && $action=='setcredited')
|
if (! empty($object->date_trans) && $object->date_credit == 0 && $user->rights->prelevement->bons->credit && $action=='setcredited')
|
||||||
{
|
{
|
||||||
print '<form name="infocredit" method="post" action="card.php?id='.$bon->id.'">';
|
print '<form name="infocredit" method="post" action="card.php?id='.$object->id.'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="infocredit">';
|
print '<input type="hidden" name="action" value="infocredit">';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
@ -261,17 +285,17 @@ if ($id > 0)
|
|||||||
{
|
{
|
||||||
print "\n<div class=\"tabsAction\">\n";
|
print "\n<div class=\"tabsAction\">\n";
|
||||||
|
|
||||||
if (empty($bon->date_trans) && $user->rights->prelevement->bons->send)
|
if (empty($object->date_trans) && $user->rights->prelevement->bons->send)
|
||||||
{
|
{
|
||||||
print "<a class=\"butAction\" href=\"card.php?action=settransmitted&id=".$bon->id."\">".$langs->trans("SetToStatusSent")."</a>";
|
print "<a class=\"butAction\" href=\"card.php?action=settransmitted&id=".$object->id."\">".$langs->trans("SetToStatusSent")."</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($bon->date_trans) && $bon->date_credit == 0)
|
if (! empty($object->date_trans) && $object->date_credit == 0)
|
||||||
{
|
{
|
||||||
print "<a class=\"butAction\" href=\"card.php?action=setcredited&id=".$bon->id."\">".$langs->trans("ClassCredited")."</a>";
|
print "<a class=\"butAction\" href=\"card.php?action=setcredited&id=".$object->id."\">".$langs->trans("ClassCredited")."</a>";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "<a class=\"butActionDelete\" href=\"card.php?action=confirm_delete&id=".$bon->id."\">".$langs->trans("Delete")."</a>";
|
print "<a class=\"butActionDelete\" href=\"card.php?action=confirm_delete&id=".$object->id."\">".$langs->trans("Delete")."</a>";
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
}
|
}
|
||||||
@ -293,7 +317,16 @@ if ($id > 0)
|
|||||||
$sql.= " AND pl.fk_soc = s.rowid";
|
$sql.= " AND pl.fk_soc = s.rowid";
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
$sql.= $db->order($sortfield, $sortorder);
|
$sql.= $db->order($sortfield, $sortorder);
|
||||||
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
|
||||||
|
// Count total nb of records
|
||||||
|
$nbtotalofrecords = '';
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
|
{
|
||||||
|
$result = $db->query($sql);
|
||||||
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
@ -304,8 +337,9 @@ if ($id > 0)
|
|||||||
|
|
||||||
$urladd = "&id=".$id;
|
$urladd = "&id=".$id;
|
||||||
|
|
||||||
print_barre_liste("", $page, $_SERVER["PHP_SELF"], $urladd, $sortfield, $sortorder, '', $num);
|
print_barre_liste($langs->trans("Lines"), $page, $_SERVER["PHP_SELF"], $urladd, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '');
|
||||||
print"\n<!-- debut table -->\n";
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
|
||||||
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
|
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre("Lines",$_SERVER["PHP_SELF"],"pl.rowid",'',$urladd);
|
print_liste_field_titre("Lines",$_SERVER["PHP_SELF"],"pl.rowid",'',$urladd);
|
||||||
@ -363,12 +397,17 @@ if ($id > 0)
|
|||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td>'.$langs->trans("Total").'</td>';
|
print '<td>'.$langs->trans("Total").'</td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td align="right">'.price($total)."</td>\n";
|
print '<td align="right">';
|
||||||
|
if ($total != $object->amount) print img_warning("AmountOfFileDiffersFromSumOfInvoices");
|
||||||
|
print price($total);
|
||||||
|
print "</td>\n";
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
$db->free($result);
|
$db->free($result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -38,6 +38,10 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
|||||||
*/
|
*/
|
||||||
class BonPrelevement extends CommonObject
|
class BonPrelevement extends CommonObject
|
||||||
{
|
{
|
||||||
|
public $element='widthdraw';
|
||||||
|
public $table_element='prelevement_bons';
|
||||||
|
public $picto = 'payment';
|
||||||
|
|
||||||
var $date_echeance;
|
var $date_echeance;
|
||||||
var $raison_sociale;
|
var $raison_sociale;
|
||||||
var $reference_remise;
|
var $reference_remise;
|
||||||
@ -263,10 +267,11 @@ class BonPrelevement extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Get object and lines from database
|
* Get object and lines from database
|
||||||
*
|
*
|
||||||
* @param int $rowid id of object to load
|
* @param int $rowid Id of object to load
|
||||||
|
* @param string $ref Ref of direct debit
|
||||||
* @return int >0 if OK, <0 if KO
|
* @return int >0 if OK, <0 if KO
|
||||||
*/
|
*/
|
||||||
function fetch($rowid)
|
function fetch($rowid, $ref='')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
@ -278,8 +283,9 @@ class BonPrelevement extends CommonObject
|
|||||||
$sql.= ", p.fk_user_credit";
|
$sql.= ", p.fk_user_credit";
|
||||||
$sql.= ", p.statut";
|
$sql.= ", p.statut";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||||
$sql.= " WHERE p.rowid = ".$rowid;
|
$sql.= " WHERE p.entity = ".$conf->entity;
|
||||||
$sql.= " AND p.entity = ".$conf->entity;
|
if ($rowid > 0) $sql.= " AND p.rowid = ".$rowid;
|
||||||
|
else $sql.= " AND p.ref = '".$this->db->escape($ref)."'";
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
$result=$this->db->query($sql);
|
$result=$this->db->query($sql);
|
||||||
@ -321,7 +327,7 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set credite and set status of linked invoices
|
* Set credite and set status of linked invoices. Still used ??
|
||||||
*
|
*
|
||||||
* @return int <0 if KO, >=0 if OK
|
* @return int <0 if KO, >=0 if OK
|
||||||
*/
|
*/
|
||||||
@ -345,7 +351,7 @@ class BonPrelevement extends CommonObject
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error == 0)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$facs = array();
|
$facs = array();
|
||||||
$facs = $this->getListInvoices();
|
$facs = $this->getListInvoices();
|
||||||
@ -361,9 +367,8 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error == 0)
|
if (! $error)
|
||||||
{
|
{
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes";
|
||||||
$sql.= " SET statut = 2";
|
$sql.= " SET statut = 2";
|
||||||
$sql.= " WHERE fk_prelevement_bons = ".$this->id;
|
$sql.= " WHERE fk_prelevement_bons = ".$this->id;
|
||||||
@ -378,7 +383,7 @@ class BonPrelevement extends CommonObject
|
|||||||
/*
|
/*
|
||||||
* End of procedure
|
* End of procedure
|
||||||
*/
|
*/
|
||||||
if ($error == 0)
|
if (! $error)
|
||||||
{
|
{
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 0;
|
return 0;
|
||||||
@ -399,10 +404,10 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set withdrawal to credited status
|
* Set direct debit order to "credited" status.
|
||||||
*
|
*
|
||||||
* @param User $user id of user
|
* @param User $user Id of user
|
||||||
* @param int $date date of action
|
* @param int $date date of action
|
||||||
* @return int >0 if OK, <0 if KO
|
* @return int >0 if OK, <0 if KO
|
||||||
*/
|
*/
|
||||||
function set_infocredit($user, $date)
|
function set_infocredit($user, $date)
|
||||||
@ -436,49 +441,60 @@ class BonPrelevement extends CommonObject
|
|||||||
$bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT;
|
$bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT;
|
||||||
$facs = array();
|
$facs = array();
|
||||||
$amounts = array();
|
$amounts = array();
|
||||||
|
$amountsperthirdparty = array();
|
||||||
|
|
||||||
$facs = $this->getListInvoices(1);
|
$facs = $this->getListInvoices(1);
|
||||||
|
|
||||||
|
// Loop on each invoice. $facs=array(0=>id, 1=>amount requested)
|
||||||
$num=count($facs);
|
$num=count($facs);
|
||||||
for ($i = 0; $i < $num; $i++)
|
for ($i = 0; $i < $num; $i++)
|
||||||
{
|
{
|
||||||
$fac = new Facture($this->db);
|
$fac = new Facture($this->db);
|
||||||
$fac->fetch($facs[$i][0]);
|
$fac->fetch($facs[$i][0]);
|
||||||
$amounts[$fac->id] = $facs[$i][1];
|
$amounts[$fac->id] = $facs[$i][1];
|
||||||
|
$amountsperthirdparty[$fac->socid][$fac->id] = $facs[$i][1];
|
||||||
|
|
||||||
$totalpaye = $fac->getSommePaiement();
|
$totalpaye = $fac->getSommePaiement();
|
||||||
$totalcreditnotes = $fac->getSumCreditNotesUsed();
|
$totalcreditnotes = $fac->getSumCreditNotesUsed();
|
||||||
$totaldeposits = $fac->getSumDepositsUsed();
|
$totaldeposits = $fac->getSumDepositsUsed();
|
||||||
$alreadypayed = $totalpaye + $totalcreditnotes + $totaldeposits;
|
$alreadypayed = $totalpaye + $totalcreditnotes + $totaldeposits;
|
||||||
|
|
||||||
if ($alreadypayed + $facs[$i][1] >= $fac->total_ttc) {
|
if (price2num($alreadypayed + $facs[$i][1], 'MT') == $fac->total_ttc) {
|
||||||
$result = $fac->set_paid($user);
|
$result = $fac->set_paid($user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$paiement = new Paiement($this->db);
|
// Make one payment per customer
|
||||||
$paiement->datepaye = $date ;
|
foreach ($amountsperthirdparty as $thirdpartyid => $cursoramounts)
|
||||||
$paiement->amounts = $amounts;
|
{
|
||||||
$paiement->paiementid = 3; //
|
$paiement = new Paiement($this->db);
|
||||||
$paiement->num_paiement = $this->ref ;
|
$paiement->datepaye = $date;
|
||||||
$paiement->id_prelevement = $this->id ;
|
$paiement->amounts = $cursoramounts; // Array with detail of dispatching of payments for each invoice
|
||||||
|
$paiement->paiementid = 3; //
|
||||||
|
$paiement->num_paiement = $this->ref; // Set ref of direct debit note
|
||||||
|
$paiement->id_prelevement = $this->id;
|
||||||
|
|
||||||
$paiement_id = $paiement->create($user);
|
$paiement_id = $paiement->create($user);
|
||||||
if ($paiement_id < 0)
|
if ($paiement_id < 0)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::set_credite AddPayment Error");
|
dol_syslog(get_class($this)."::set_infocredit AddPayment Error");
|
||||||
$error++;
|
$error++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$result=$paiement->addPaymentToBank($user,'payment','(WithdrawalPayment)',$bankaccount,'','');
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this)."::set_infocredit AddPaymentToBank Error");
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//var_dump($paiement->amounts);
|
||||||
|
//var_dump($thirdpartyid);
|
||||||
|
//var_dump($cursoramounts);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
// Update withdrawal line
|
||||||
$result=$paiement->addPaymentToBank($user,'payment','(WithdrawalPayment)',$bankaccount,'','');
|
|
||||||
if ($result < 0)
|
|
||||||
{
|
|
||||||
dol_syslog(get_class($this)."::set_credite AddPaymentToBank Error");
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Update withdrawal line
|
|
||||||
// TODO: Translate to ligneprelevement.class.php
|
// TODO: Translate to ligneprelevement.class.php
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes";
|
||||||
$sql.= " SET statut = 2";
|
$sql.= " SET statut = 2";
|
||||||
@ -486,7 +502,7 @@ class BonPrelevement extends CommonObject
|
|||||||
|
|
||||||
if (! $this->db->query($sql))
|
if (! $this->db->query($sql))
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::set_credite Update lines Error");
|
dol_syslog(get_class($this)."::set_infocredit Update lines Error");
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -951,14 +967,14 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Create withdrawal receipt
|
|
||||||
*/
|
|
||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
if (count($factures_prev) > 0)
|
/*
|
||||||
|
* Create withdrawal receipt in database
|
||||||
|
*/
|
||||||
|
if (count($factures_prev) > 0)
|
||||||
{
|
{
|
||||||
foreach ($factures_prev as $fac)
|
foreach ($factures_prev as $fac) // Add a link in database for each invoice
|
||||||
{
|
{
|
||||||
// Fetch invoice
|
// Fetch invoice
|
||||||
$fact = new Facture($this->db);
|
$fact = new Facture($this->db);
|
||||||
@ -998,7 +1014,6 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1006,11 +1021,12 @@ class BonPrelevement extends CommonObject
|
|||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Withdraw receipt
|
* Create direct debit order in a XML file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dol_syslog(__METHOD__."::Init withdraw receipt for ".count($factures_prev)." invoices", LOG_DEBUG);
|
dol_syslog(__METHOD__."::Init withdraw receipt for ".count($factures_prev)." invoices", LOG_DEBUG);
|
||||||
|
|
||||||
|
|
||||||
if (count($factures_prev) > 0)
|
if (count($factures_prev) > 0)
|
||||||
{
|
{
|
||||||
$this->date_echeance = $datetimeprev;
|
$this->date_echeance = $datetimeprev;
|
||||||
@ -1034,11 +1050,12 @@ class BonPrelevement extends CommonObject
|
|||||||
|
|
||||||
$this->factures = $factures_prev_id;
|
$this->factures = $factures_prev_id;
|
||||||
|
|
||||||
// Generation of SEPA file
|
// Generation of SEPA file $this->filename
|
||||||
$this->generate();
|
$this->generate();
|
||||||
}
|
}
|
||||||
dol_syslog(__METHOD__."::End withdraw receipt, file ".$this->filename, LOG_DEBUG);
|
dol_syslog(__METHOD__."::End withdraw receipt, file ".$this->filename, LOG_DEBUG);
|
||||||
}
|
}
|
||||||
|
//var_dump($factures_prev);exit;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update total
|
* Update total
|
||||||
@ -1289,8 +1306,9 @@ class BonPrelevement extends CommonObject
|
|||||||
$sql.= " AND soc.rowid = f.fk_soc";
|
$sql.= " AND soc.rowid = f.fk_soc";
|
||||||
$sql.= " AND rib.fk_soc = f.fk_soc";
|
$sql.= " AND rib.fk_soc = f.fk_soc";
|
||||||
$sql.= " AND rib.default_rib = 1";
|
$sql.= " AND rib.default_rib = 1";
|
||||||
|
//print $sql;
|
||||||
|
|
||||||
//echo $sql;
|
// Define $fileDebiteurSection. One section DrctDbtTxInf per invoice.
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
@ -1302,27 +1320,26 @@ class BonPrelevement extends CommonObject
|
|||||||
$this->total = $this->total + $obj->somme;
|
$this->total = $this->total + $obj->somme;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
$nbtotalDrctDbtTxInf = $i;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fputs($this->file, 'ERREUR DEBITEUR '.$sql.$CrLf);
|
fputs($this->file, 'ERROR DEBITOR '.$sql.$CrLf); // DEBITOR = Customers
|
||||||
$result = -2;
|
$result = -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Define $fileEmetteurSection. Start of bloc PmtInf. Will contains all DrctDbtTxInf
|
||||||
* section Emetteur(sepa Emetteur bloc lines)
|
|
||||||
*/
|
|
||||||
if ($result != -2)
|
if ($result != -2)
|
||||||
{
|
{
|
||||||
$fileEmetteurSection .= $this->EnregEmetteurSEPA($conf, $date_actu, $i, $this->total, $CrLf);
|
$fileEmetteurSection .= $this->EnregEmetteurSEPA($conf, $date_actu, $nbtotalDrctDbtTxInf, $this->total, $CrLf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fputs($this->file, 'ERREUR EMETTEUR'.$CrLf);
|
fputs($this->file, 'ERROR CREDITOR'.$CrLf); // CREDITOR = My company
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION CREATION FICHIER SEPA
|
* SECTION CREATION SEPA FILE
|
||||||
*/
|
*/
|
||||||
// SEPA File Header
|
// SEPA File Header
|
||||||
fputs($this->file, '<'.'?xml version="1.0" encoding="UTF-8" standalone="yes"?'.'>'.$CrLf);
|
fputs($this->file, '<'.'?xml version="1.0" encoding="UTF-8" standalone="yes"?'.'>'.$CrLf);
|
||||||
@ -1819,11 +1836,11 @@ class BonPrelevement extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return status label for a status
|
* Return status label for a status
|
||||||
*
|
*
|
||||||
* @param int $statut id statut
|
* @param int $statut id statut
|
||||||
* @param int $mode 0=Label, 1=Picto + label, 2=Picto, 3=Label + Picto
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto
|
||||||
* @return string Label
|
* @return string Label
|
||||||
*/
|
*/
|
||||||
function LibStatut($statut,$mode=0)
|
function LibStatut($statut,$mode=0)
|
||||||
{
|
{
|
||||||
@ -1846,8 +1863,25 @@ class BonPrelevement extends CommonObject
|
|||||||
if ($statut==1) return img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
if ($statut==1) return img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
||||||
if ($statut==2) return img_picto($langs->trans($this->labelstatut[$statut]),'statut6');
|
if ($statut==2) return img_picto($langs->trans($this->labelstatut[$statut]),'statut6');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode == 3)
|
if ($mode == 3)
|
||||||
|
{
|
||||||
|
if ($statut==0) return img_picto($langs->trans($this->labelstatut[$statut]),'statut1');
|
||||||
|
if ($statut==1) return img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
||||||
|
if ($statut==2) return img_picto($langs->trans($this->labelstatut[$statut]),'statut6');
|
||||||
|
}
|
||||||
|
if ($mode == 4)
|
||||||
|
{
|
||||||
|
if ($statut==0) return img_picto($langs->trans($this->labelstatut[$statut]),'statut1').' '.$langs->trans($this->labelstatut[$statut]);
|
||||||
|
if ($statut==1) return img_picto($langs->trans($this->labelstatut[$statut]),'statut3').' '.$langs->trans($this->labelstatut[$statut]);
|
||||||
|
if ($statut==2) return img_picto($langs->trans($this->labelstatut[$statut]),'statut6').' '.$langs->trans($this->labelstatut[$statut]);
|
||||||
|
}
|
||||||
|
if ($mode == 5)
|
||||||
|
{
|
||||||
|
if ($statut==0) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut1');
|
||||||
|
if ($statut==1) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
||||||
|
if ($statut==2) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut6');
|
||||||
|
}
|
||||||
|
if ($mode == 6)
|
||||||
{
|
{
|
||||||
if ($statut==0) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut1');
|
if ($statut==0) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut1');
|
||||||
if ($statut==1) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
if ($statut==1) return $langs->trans($this->labelstatut[$statut]).' '.img_picto($langs->trans($this->labelstatut[$statut]),'statut3');
|
||||||
|
|||||||
@ -67,7 +67,7 @@ if ($action == 'create')
|
|||||||
{
|
{
|
||||||
setEventMessages($bprev->error, $bprev->errors, 'errors');
|
setEventMessages($bprev->error, $bprev->errors, 'errors');
|
||||||
}
|
}
|
||||||
if ($result == 0)
|
elseif ($result == 0)
|
||||||
{
|
{
|
||||||
$mesg='';
|
$mesg='';
|
||||||
$mesg=$langs->trans("NoInvoiceCouldBeWithdrawed");
|
$mesg=$langs->trans("NoInvoiceCouldBeWithdrawed");
|
||||||
@ -78,6 +78,10 @@ if ($action == 'create')
|
|||||||
$mesg.=$val."<br>\n";
|
$mesg.=$val."<br>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setEventMessages($langs->trans("DirectDebitOrderCreated"), null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,7 @@ if ($user->societe_id > 0) accessforbidden();
|
|||||||
// Get supervariables
|
// Get supervariables
|
||||||
$prev_id = GETPOST('id','int');
|
$prev_id = GETPOST('id','int');
|
||||||
$socid = GETPOST('socid','int');
|
$socid = GETPOST('socid','int');
|
||||||
|
$ref = GETPOST('ref', 'alpha');
|
||||||
|
|
||||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
@ -55,6 +56,9 @@ $pagenext = $page + 1;
|
|||||||
if (! $sortfield) $sortfield='p.ref';
|
if (! $sortfield) $sortfield='p.ref';
|
||||||
if (! $sortorder) $sortorder='DESC';
|
if (! $sortorder) $sortorder='DESC';
|
||||||
|
|
||||||
|
$object = new BonPrelevement($db,"");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -65,39 +69,41 @@ $thirdpartytmp = new Societe($db);
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
||||||
|
|
||||||
if ($prev_id)
|
if ($prev_id > 0 || $ref)
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
if ($object->fetch($prev_id, $ref) == 0)
|
||||||
|
|
||||||
if ($bon->fetch($prev_id) == 0)
|
|
||||||
{
|
{
|
||||||
$head = prelevement_prepare_head($bon);
|
$head = prelevement_prepare_head($object);
|
||||||
dol_fiche_head($head, 'invoices', $langs->trans("WithdrawalsReceipts"), '', 'payment');
|
dol_fiche_head($head, 'invoices', $langs->trans("WithdrawalsReceipts"), -1, 'payment');
|
||||||
|
|
||||||
|
dol_banner_tab($object, 'ref', '', 1, 'ref', 'ref');
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$bon->getNomUrl(1).'</td></tr>';
|
//print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$object->getNomUrl(1).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>';
|
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>'.dol_print_date($object->datec,'day').'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($bon->amount).'</td></tr>';
|
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>';
|
||||||
// Status
|
// Status
|
||||||
print '<tr><td>'.$langs->trans('Status').'</td><td>'.$bon->getLibStatut(1).'</td></tr>';
|
//print '<tr><td>'.$langs->trans('Status').'</td><td>'.$object->getLibStatut(1).'</td></tr>';
|
||||||
|
|
||||||
if($bon->date_trans <> 0)
|
if($object->date_trans <> 0)
|
||||||
{
|
{
|
||||||
$muser = new User($db);
|
$muser = new User($db);
|
||||||
$muser->fetch($bon->user_trans);
|
$muser->fetch($object->user_trans);
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
||||||
print dol_print_date($bon->date_trans,'day');
|
print dol_print_date($object->date_trans,'day');
|
||||||
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
||||||
print $bon->methodes_trans[$bon->method_trans];
|
print $object->methodes_trans[$object->method_trans];
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
if($bon->date_credit <> 0)
|
if($object->date_credit <> 0)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
||||||
print dol_print_date($bon->date_credit,'day');
|
print dol_print_date($object->date_credit,'day');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,12 +111,29 @@ if ($prev_id)
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="border" width="100%"><tr><td class="titlefield">';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$acc = new Account($db);
|
||||||
|
$result=$acc->fetch($conf->global->PRELEVEMENT_ID_BANKACCOUNT);
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
|
print $langs->trans("BankToReceiveWithdraw");
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
if ($acc->id > 0)
|
||||||
|
print $acc->getNomUrl(1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
print $langs->trans("WithdrawalFile").'</td><td>';
|
print $langs->trans("WithdrawalFile").'</td><td>';
|
||||||
$relativepath = 'receipts/'.$bon->ref.'.xml';
|
$relativepath = 'receipts/'.$object->ref.'.xml';
|
||||||
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -137,7 +160,6 @@ $sql.= " AND pf.fk_facture = f.rowid";
|
|||||||
$sql.= " AND f.entity = ".$conf->entity;
|
$sql.= " AND f.entity = ".$conf->entity;
|
||||||
if ($prev_id) $sql.= " AND p.rowid=".$prev_id;
|
if ($prev_id) $sql.= " AND p.rowid=".$prev_id;
|
||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
|
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
@ -172,9 +194,10 @@ if ($result)
|
|||||||
|
|
||||||
$massactionbutton='';
|
$massactionbutton='';
|
||||||
|
|
||||||
print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, '', 0, '', '', $limit);
|
print_barre_liste($langs->trans("Invoices"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, '', 0, '', '', $limit);
|
||||||
|
|
||||||
print"\n<!-- debut table -->\n";
|
print"\n<!-- debut table -->\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
|
||||||
print '<table class="liste" width="100%">';
|
print '<table class="liste" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder);
|
print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder);
|
||||||
@ -243,13 +266,18 @@ if ($result)
|
|||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td>'.$langs->trans("Total").'</td>';
|
print '<td>'.$langs->trans("Total").'</td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td align="right">'.price($total)."</td>\n";
|
print '<td align="right">';
|
||||||
|
if ($total != $object->amount) print img_warning("AmountOfFileDiffersFromSumOfInvoices");
|
||||||
|
print price($total);
|
||||||
|
print "</td>\n";
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
$db->free($result);
|
$db->free($result);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -41,49 +41,69 @@ if ($user->societe_id > 0) accessforbidden();
|
|||||||
|
|
||||||
// Get supervariables
|
// Get supervariables
|
||||||
$prev_id = GETPOST('id','int');
|
$prev_id = GETPOST('id','int');
|
||||||
|
$ref = GETPOST('ref', 'alpha');
|
||||||
|
|
||||||
|
// Load variable for pagination
|
||||||
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
|
$sortfield = GETPOST('sortfield','alpha');
|
||||||
|
$sortorder = GETPOST('sortorder','alpha');
|
||||||
$page = GETPOST('page','int');
|
$page = GETPOST('page','int');
|
||||||
|
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
||||||
|
$offset = $limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
|
||||||
|
$object = new BonPrelevement($db,"");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
||||||
|
|
||||||
if ($prev_id)
|
if ($prev_id > 0 || $ref)
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
if ($object->fetch($prev_id, $ref) == 0)
|
||||||
|
|
||||||
if ($bon->fetch($prev_id) == 0)
|
|
||||||
{
|
{
|
||||||
$head = prelevement_prepare_head($bon);
|
$head = prelevement_prepare_head($object);
|
||||||
dol_fiche_head($head, 'rejects', $langs->trans("WithdrawalsReceipts"), '', 'payment');
|
dol_fiche_head($head, 'rejects', $langs->trans("WithdrawalsReceipts"), -1, 'payment');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
dol_banner_tab($object, 'ref', '', 1, 'ref', 'ref');
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$bon->getNomUrl(1).'</td></tr>';
|
print '<div class="fichecenter">';
|
||||||
print '<tr><td>'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($bon->amount).'</td></tr>';
|
print '<table class="border centpercent">'."\n";
|
||||||
|
|
||||||
|
//print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$object->getNomUrl(1).'</td></tr>';
|
||||||
|
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>'.dol_print_date($object->datec,'day').'</td></tr>';
|
||||||
|
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>';
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
|
/*
|
||||||
print '<tr><td>'.$langs->trans('Status').'</td>';
|
print '<tr><td>'.$langs->trans('Status').'</td>';
|
||||||
print '<td>'.$bon->getLibStatut(1).'</td>';
|
print '<td>'.$object->getLibStatut(1).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
if($bon->date_trans <> 0)
|
if($object->date_trans <> 0)
|
||||||
{
|
{
|
||||||
$muser = new User($db);
|
$muser = new User($db);
|
||||||
$muser->fetch($bon->user_trans);
|
$muser->fetch($object->user_trans);
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
||||||
print dol_print_date($bon->date_trans,'day');
|
print dol_print_date($object->date_trans,'day');
|
||||||
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
||||||
print $bon->methodes_trans[$bon->method_trans];
|
print $object->methodes_trans[$object->method_trans];
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
if($bon->date_credit <> 0)
|
if($object->date_credit <> 0)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
||||||
print dol_print_date($bon->date_credit,'day');
|
print dol_print_date($object->date_credit,'day');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,12 +111,29 @@ if ($prev_id)
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="border" width="100%"><tr><td class="titlefield">';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$acc = new Account($db);
|
||||||
|
$result=$acc->fetch($conf->global->PRELEVEMENT_ID_BANKACCOUNT);
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
|
print $langs->trans("BankToReceiveWithdraw");
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
if ($acc->id > 0)
|
||||||
|
print $acc->getNomUrl(1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
print $langs->trans("WithdrawalFile").'</td><td>';
|
print $langs->trans("WithdrawalFile").'</td><td>';
|
||||||
$relativepath = 'receipts/'.$bon->ref.'.xml';
|
$relativepath = 'receipts/'.$object->ref.'.xml';
|
||||||
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -109,7 +146,7 @@ if ($prev_id)
|
|||||||
$rej = new RejetPrelevement($db, $user);
|
$rej = new RejetPrelevement($db, $user);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Liste des factures
|
* List errors
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT pl.rowid, pl.amount, pl.statut";
|
$sql = "SELECT pl.rowid, pl.amount, pl.statut";
|
||||||
$sql.= " , s.rowid as socid, s.nom as name";
|
$sql.= " , s.rowid as socid, s.nom as name";
|
||||||
@ -127,12 +164,25 @@ $sql.= " AND pr.fk_prelevement_lignes = pl.rowid";
|
|||||||
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
if ($socid) $sql.= " AND s.rowid = ".$socid;
|
||||||
$sql.= " ORDER BY pl.amount DESC";
|
$sql.= " ORDER BY pl.amount DESC";
|
||||||
|
|
||||||
|
// Count total nb of records
|
||||||
|
$nbtotalofrecords = '';
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
|
{
|
||||||
|
$result = $db->query($sql);
|
||||||
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
|
print_barre_liste($langs->trans("Rejects"), $page, $_SERVER["PHP_SELF"], $urladd, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '');
|
||||||
|
|
||||||
print"\n<!-- debut table -->\n";
|
print"\n<!-- debut table -->\n";
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table
|
||||||
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
|
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="4">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Line").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td>';
|
print '<td>'.$langs->trans("Line").'</td><td>'.$langs->trans("ThirdParty").'</td><td align="right">'.$langs->trans("Amount").'</td>';
|
||||||
@ -181,6 +231,8 @@ if ($resql)
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -38,7 +38,21 @@ if ($user->societe_id > 0) accessforbidden();
|
|||||||
|
|
||||||
// Get supervariables
|
// Get supervariables
|
||||||
$prev_id = GETPOST('id','int');
|
$prev_id = GETPOST('id','int');
|
||||||
|
$ref = GETPOST('ref', 'alpha');
|
||||||
|
|
||||||
|
// Load variable for pagination
|
||||||
|
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||||
|
$sortfield = GETPOST('sortfield','alpha');
|
||||||
|
$sortorder = GETPOST('sortorder','alpha');
|
||||||
$page = GETPOST('page','int');
|
$page = GETPOST('page','int');
|
||||||
|
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
||||||
|
$offset = $limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
|
||||||
|
|
||||||
|
$object = new BonPrelevement($db,"");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -48,40 +62,44 @@ llxHeader('',$langs->trans("WithdrawalsReceipts"));
|
|||||||
|
|
||||||
if ($prev_id)
|
if ($prev_id)
|
||||||
{
|
{
|
||||||
$bon = new BonPrelevement($db,"");
|
if ($object->fetch($prev_id) == 0)
|
||||||
|
|
||||||
if ($bon->fetch($prev_id) == 0)
|
|
||||||
{
|
{
|
||||||
$head = prelevement_prepare_head($bon);
|
$head = prelevement_prepare_head($object);
|
||||||
dol_fiche_head($head, 'statistics', $langs->trans("WithdrawalsReceipts"), '', 'payment');
|
dol_fiche_head($head, 'statistics', $langs->trans("WithdrawalsReceipts"), -1, 'payment');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
dol_banner_tab($object, 'ref', '', 1, 'ref', 'ref');
|
||||||
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$bon->getNomUrl(1).'</td></tr>';
|
print '<div class="fichecenter">';
|
||||||
print '<tr><td>'.$langs->trans("Date").'</td><td>'.dol_print_date($bon->datec,'day').'</td></tr>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($bon->amount).'</td></tr>';
|
print '<table class="border centpercent">'."\n";
|
||||||
|
|
||||||
|
//print '<tr><td class="titlefield">'.$langs->trans("Ref").'</td><td>'.$object->getNomUrl(1).'</td></tr>';
|
||||||
|
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>'.dol_print_date($object->datec,'day').'</td></tr>';
|
||||||
|
print '<tr><td>'.$langs->trans("Amount").'</td><td>'.price($object->amount).'</td></tr>';
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
|
/*
|
||||||
print '<tr><td>'.$langs->trans('Status').'</td>';
|
print '<tr><td>'.$langs->trans('Status').'</td>';
|
||||||
print '<td>'.$bon->getLibStatut(1).'</td>';
|
print '<td>'.$object->getLibStatut(1).'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
if($bon->date_trans <> 0)
|
if($object->date_trans <> 0)
|
||||||
{
|
{
|
||||||
$muser = new User($db);
|
$muser = new User($db);
|
||||||
$muser->fetch($bon->user_trans);
|
$muser->fetch($object->user_trans);
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransData").'</td><td>';
|
||||||
print dol_print_date($bon->date_trans,'day');
|
print dol_print_date($object->date_trans,'day');
|
||||||
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
print ' '.$langs->trans("By").' '.$muser->getFullName($langs).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
print '<tr><td>'.$langs->trans("TransMetod").'</td><td>';
|
||||||
print $bon->methodes_trans[$bon->method_trans];
|
print $object->methodes_trans[$object->method_trans];
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
if($bon->date_credit <> 0)
|
if($object->date_credit <> 0)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
print '<tr><td>'.$langs->trans('CreditDate').'</td><td>';
|
||||||
print dol_print_date($bon->date_credit,'day');
|
print dol_print_date($object->date_credit,'day');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,12 +107,29 @@ if ($prev_id)
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<table class="border" width="100%"><tr><td class="titlefield">';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
$acc = new Account($db);
|
||||||
|
$result=$acc->fetch($conf->global->PRELEVEMENT_ID_BANKACCOUNT);
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
|
print $langs->trans("BankToReceiveWithdraw");
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
if ($acc->id > 0)
|
||||||
|
print $acc->getNomUrl(1);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr><td class="titlefield">';
|
||||||
print $langs->trans("WithdrawalFile").'</td><td>';
|
print $langs->trans("WithdrawalFile").'</td><td>';
|
||||||
$relativepath = 'receipts/'.$bon->ref.'.xml';
|
$relativepath = 'receipts/'.$object->ref.'.xml';
|
||||||
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>';
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -139,7 +174,7 @@ if ($prev_id)
|
|||||||
print price($row[0]);
|
print price($row[0]);
|
||||||
|
|
||||||
print '</td><td align="right">';
|
print '</td><td align="right">';
|
||||||
if ($bon->amount) print round($row[0]/$bon->amount*100,2)." %";
|
if ($object->amount) print round($row[0]/$object->amount*100,2)." %";
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
@ -271,11 +271,8 @@ $sql.= " GROUP BY c.rowid, c.ref, c.datec, c.tms, c.date_contrat, c.statut, c.re
|
|||||||
$sql.= ' s.rowid, s.nom, s.town, s.zip, s.fk_pays, s.client, s.code_client,';
|
$sql.= ' s.rowid, s.nom, s.town, s.zip, s.fk_pays, s.client, s.code_client,';
|
||||||
$sql.= " typent.code,";
|
$sql.= " typent.code,";
|
||||||
$sql.= " state.code_departement, state.nom";
|
$sql.= " state.code_departement, state.nom";
|
||||||
// Add where from extra fields
|
// Add fields from extrafields
|
||||||
foreach ($extrafields->attribute_label as $key => $val)
|
foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : '');
|
||||||
{
|
|
||||||
$sql .= ', ef.'.$key;
|
|
||||||
}
|
|
||||||
// Add where from hooks
|
// Add where from hooks
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
|||||||
@ -51,7 +51,7 @@ if (! $error && count($toselect) > $maxformassaction)
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error && $massaction == 'confirm_presend' && GETPOST('modelselected')) // If we change the template, we must not send email, but keep on send email form
|
if (! $error && $massaction == 'confirm_presend' && ! GETPOST('sendmail')) // If we do not choose button send (for example when we change template or limit), we must not send email, but keep on send email form
|
||||||
{
|
{
|
||||||
$massaction='presend';
|
$massaction='presend';
|
||||||
}
|
}
|
||||||
@ -407,6 +407,12 @@ if (! $error && $massaction == 'confirm_presend')
|
|||||||
|
|
||||||
if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_search'))
|
if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_search'))
|
||||||
{
|
{
|
||||||
|
if (empty($diroutputmassaction))
|
||||||
|
{
|
||||||
|
dol_print_error(null, 'include of actions_massactions.inc.php is done but var $diroutputmassaction was not defined');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
@ -502,7 +508,13 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Create empty PDF
|
// Create empty PDF
|
||||||
$pdf=pdf_getInstance();
|
$formatarray=pdf_getFormat();
|
||||||
|
$page_largeur = $formatarray['width'];
|
||||||
|
$page_hauteur = $formatarray['height'];
|
||||||
|
$format = array($page_largeur,$page_hauteur);
|
||||||
|
|
||||||
|
$pdf=pdf_getInstance($format);
|
||||||
|
|
||||||
if (class_exists('TCPDF'))
|
if (class_exists('TCPDF'))
|
||||||
{
|
{
|
||||||
$pdf->setPrintHeader(false);
|
$pdf->setPrintHeader(false);
|
||||||
|
|||||||
@ -351,7 +351,7 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
'__EMAIL__' => $sendto,
|
'__EMAIL__' => $sendto,
|
||||||
'__CHECK_READ__' => (is_object($object) && is_object($object->thirdparty))?'<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$object->thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>':'',
|
'__CHECK_READ__' => (is_object($object) && is_object($object->thirdparty))?'<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$object->thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>':'',
|
||||||
'__REF__' => (is_object($object)?$object->ref:''),
|
'__REF__' => (is_object($object)?$object->ref:''),
|
||||||
'__SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))?dol_string_nohtmltag($user->signature):'')
|
'__SIGNATURE__' => (($user->signature && empty($conf->global->MAIN_MAIL_DO_NOT_USE_SIGN))?$user->signature:'')
|
||||||
/* not available on all object
|
/* not available on all object
|
||||||
/'__FIRSTNAME__'=>(is_object($object)?$object->firstname:''),
|
/'__FIRSTNAME__'=>(is_object($object)?$object->firstname:''),
|
||||||
'__LASTNAME__'=>(is_object($object)?$object->lastname:''),
|
'__LASTNAME__'=>(is_object($object)?$object->lastname:''),
|
||||||
|
|||||||
@ -77,7 +77,6 @@ class box_activity extends ModeleBoxes
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
$totalMnt = 0;
|
|
||||||
$totalnb = 0;
|
$totalnb = 0;
|
||||||
$line = 0;
|
$line = 0;
|
||||||
$cachetime = 3600;
|
$cachetime = 3600;
|
||||||
@ -95,8 +94,6 @@ class box_activity extends ModeleBoxes
|
|||||||
// compute the year limit to show
|
// compute the year limit to show
|
||||||
$tmpdate= dol_time_plus_duree(dol_now(), -1*$nbofperiod, "m");
|
$tmpdate= dol_time_plus_duree(dol_now(), -1*$nbofperiod, "m");
|
||||||
|
|
||||||
$cumuldata = array();
|
|
||||||
|
|
||||||
|
|
||||||
// list the summary of the propals
|
// list the summary of the propals
|
||||||
if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
|
if (! empty($conf->propal->enabled) && $user->rights->propale->lire)
|
||||||
@ -146,11 +143,10 @@ class box_activity extends ModeleBoxes
|
|||||||
$data = dol_readcachefile($cachedir, $filename);
|
$data = dol_readcachefile($cachedir, $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cumuldata=array_merge($cumuldata, $data);
|
|
||||||
if (! empty($data))
|
if (! empty($data))
|
||||||
{
|
{
|
||||||
$j=0;
|
$j=0;
|
||||||
while ($line < count($cumuldata))
|
while ($j < count($data))
|
||||||
{
|
{
|
||||||
$this->info_box_contents[$line][0] = array(
|
$this->info_box_contents[$line][0] = array(
|
||||||
'td' => 'align="left" width="16"',
|
'td' => 'align="left" width="16"',
|
||||||
@ -176,7 +172,6 @@ class box_activity extends ModeleBoxes
|
|||||||
'td' => 'class="right"',
|
'td' => 'class="right"',
|
||||||
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
||||||
);
|
);
|
||||||
$totalMnt += $data[$j]->Mnttot;
|
|
||||||
$this->info_box_contents[$line][4] = array(
|
$this->info_box_contents[$line][4] = array(
|
||||||
'td' => 'align="right" width="18"',
|
'td' => 'align="right" width="18"',
|
||||||
'text' => $propalstatic->LibStatut($data[$j]->fk_statut,3),
|
'text' => $propalstatic->LibStatut($data[$j]->fk_statut,3),
|
||||||
@ -231,10 +226,9 @@ class box_activity extends ModeleBoxes
|
|||||||
$data = dol_readcachefile($cachedir, $filename);
|
$data = dol_readcachefile($cachedir, $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cumuldata=array_merge($cumuldata, $data);
|
|
||||||
if (! empty($data)) {
|
if (! empty($data)) {
|
||||||
$j=0;
|
$j=0;
|
||||||
while ($line < count($cumuldata)) {
|
while ($j < count($data)) {
|
||||||
$this->info_box_contents[$line][0] = array(
|
$this->info_box_contents[$line][0] = array(
|
||||||
'td' => 'align="left" width="16"',
|
'td' => 'align="left" width="16"',
|
||||||
'url' => DOL_URL_ROOT."/commande/list.php?mainmenu=commercial&leftmenu=orders&viewstatut=".$data[$j]->fk_statut,
|
'url' => DOL_URL_ROOT."/commande/list.php?mainmenu=commercial&leftmenu=orders&viewstatut=".$data[$j]->fk_statut,
|
||||||
@ -259,7 +253,6 @@ class box_activity extends ModeleBoxes
|
|||||||
'td' => 'class="right"',
|
'td' => 'class="right"',
|
||||||
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
||||||
);
|
);
|
||||||
$totalMnt += $data[$j]->Mnttot;
|
|
||||||
$this->info_box_contents[$line][4] = array(
|
$this->info_box_contents[$line][4] = array(
|
||||||
'td' => 'align="right" width="18"',
|
'td' => 'align="right" width="18"',
|
||||||
'text' => $commandestatic->LibStatut($data[$j]->fk_statut,0,3),
|
'text' => $commandestatic->LibStatut($data[$j]->fk_statut,0,3),
|
||||||
@ -290,11 +283,11 @@ class box_activity extends ModeleBoxes
|
|||||||
$sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
|
$sql.= " FROM (".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
|
||||||
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
$sql.= " WHERE f.entity = ".$conf->entity;
|
$sql.= " WHERE f.entity IN (".getEntity('facture').')';
|
||||||
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
|
||||||
if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
|
if($user->societe_id) $sql.= " AND s.rowid = ".$user->societe_id;
|
||||||
$sql.= " AND f.fk_soc = s.rowid";
|
$sql.= " AND f.fk_soc = s.rowid";
|
||||||
$sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND paye=1";
|
$sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND f.paye=1";
|
||||||
$sql.= " GROUP BY f.fk_statut";
|
$sql.= " GROUP BY f.fk_statut";
|
||||||
$sql.= " ORDER BY f.fk_statut DESC";
|
$sql.= " ORDER BY f.fk_statut DESC";
|
||||||
|
|
||||||
@ -317,10 +310,9 @@ class box_activity extends ModeleBoxes
|
|||||||
$data = dol_readcachefile($cachedir, $filename);
|
$data = dol_readcachefile($cachedir, $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cumuldata=array_merge($cumuldata, $data);
|
|
||||||
if (! empty($data)) {
|
if (! empty($data)) {
|
||||||
$j=0;
|
$j=0;
|
||||||
while ($line < count($cumuldata)) {
|
while ($j < count($data)) {
|
||||||
$billurl="search_status=2&paye=1&year=".$data[$j]->annee;
|
$billurl="search_status=2&paye=1&year=".$data[$j]->annee;
|
||||||
$this->info_box_contents[$line][0] = array(
|
$this->info_box_contents[$line][0] = array(
|
||||||
'td' => 'align="left" width="16"',
|
'td' => 'align="left" width="16"',
|
||||||
@ -347,10 +339,8 @@ class box_activity extends ModeleBoxes
|
|||||||
);
|
);
|
||||||
|
|
||||||
// We add only for the current year
|
// We add only for the current year
|
||||||
if ($data[$j]->annee == date("Y")) {
|
$totalnb += $data[$j]->nb;
|
||||||
$totalnb += $data[$j]->nb;
|
|
||||||
$totalMnt += $data[$j]->Mnttot;
|
|
||||||
}
|
|
||||||
$this->info_box_contents[$line][4] = array(
|
$this->info_box_contents[$line][4] = array(
|
||||||
'td' => 'align="right" width="18"',
|
'td' => 'align="right" width="18"',
|
||||||
'text' => $facturestatic->LibStatut(1,$data[$j]->fk_statut,3),
|
'text' => $facturestatic->LibStatut(1,$data[$j]->fk_statut,3),
|
||||||
@ -371,12 +361,13 @@ class box_activity extends ModeleBoxes
|
|||||||
|
|
||||||
$refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
|
$refresh = dol_cache_refresh($cachedir, $filename, $cachetime);
|
||||||
|
|
||||||
|
$data = array();
|
||||||
if ($refresh) {
|
if ($refresh) {
|
||||||
$sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
|
$sql = "SELECT f.fk_statut, SUM(f.total_ttc) as Mnttot, COUNT(*) as nb";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
|
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f";
|
||||||
$sql.= " WHERE f.entity = ".$conf->entity;
|
$sql.= " WHERE f.entity IN (".getEntity('facture').')';
|
||||||
$sql.= " AND f.fk_soc = s.rowid";
|
$sql.= " AND f.fk_soc = s.rowid";
|
||||||
$sql.= " AND paye=0";
|
$sql.= " AND f.datef >= '".$db->idate($tmpdate)."' AND f.paye=0";
|
||||||
$sql.= " GROUP BY f.fk_statut";
|
$sql.= " GROUP BY f.fk_statut";
|
||||||
$sql.= " ORDER BY f.fk_statut DESC";
|
$sql.= " ORDER BY f.fk_statut DESC";
|
||||||
|
|
||||||
@ -399,11 +390,11 @@ class box_activity extends ModeleBoxes
|
|||||||
$data = dol_readcachefile($cachedir, $filename);
|
$data = dol_readcachefile($cachedir, $filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cumuldata=array_merge($cumuldata, $data);
|
|
||||||
if (! empty($data)) {
|
if (! empty($data)) {
|
||||||
$j=0;
|
$alreadypaid=-1;
|
||||||
|
|
||||||
while ($line < count($cumuldata)) {
|
$j=0;
|
||||||
|
while ($j < count($data)) {
|
||||||
$billurl="search_status=".$data[$j]->fk_statut."&paye=0";
|
$billurl="search_status=".$data[$j]->fk_statut."&paye=0";
|
||||||
$this->info_box_contents[$line][0] = array(
|
$this->info_box_contents[$line][0] = array(
|
||||||
'td' => 'align="left" width="16"',
|
'td' => 'align="left" width="16"',
|
||||||
@ -428,10 +419,9 @@ class box_activity extends ModeleBoxes
|
|||||||
'td' => 'class="right"',
|
'td' => 'class="right"',
|
||||||
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
'text' => price($data[$j]->Mnttot,1,$langs,0,0,-1,$conf->currency),
|
||||||
);
|
);
|
||||||
$totalMnt += $objp->Mnttot;
|
|
||||||
$this->info_box_contents[$line][4] = array(
|
$this->info_box_contents[$line][4] = array(
|
||||||
'td' => 'align="right" width="18"',
|
'td' => 'align="right" width="18"',
|
||||||
'text' => $facturestatic->LibStatut(0,$data[$j]->fk_statut,3),
|
'text' => $facturestatic->LibStatut(0,$data[$j]->fk_statut,3, $alreadypaid),
|
||||||
);
|
);
|
||||||
$line++;
|
$line++;
|
||||||
$j++;
|
$j++;
|
||||||
@ -441,11 +431,6 @@ class box_activity extends ModeleBoxes
|
|||||||
'td' => 'align="center"',
|
'td' => 'align="center"',
|
||||||
'text'=>$langs->trans("NoRecordedInvoices"),
|
'text'=>$langs->trans("NoRecordedInvoices"),
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
$this->info_box_contents[0][0] = array(
|
|
||||||
'td' => '',
|
|
||||||
'maxlength'=>500, 'text' => ($db->error().' sql='.$sql),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -309,7 +309,7 @@ abstract class CommonInvoice extends CommonObject
|
|||||||
* @param int $paye Status field paye
|
* @param int $paye Status field paye
|
||||||
* @param int $status Id status
|
* @param int $status Id status
|
||||||
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=short label + picto, 6=long label + picto
|
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=short label + picto, 6=long label + picto
|
||||||
* @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, 1 otherwise)
|
* @param integer $alreadypaid 0=No payment already done, >0=Some payments were already done (we recommand to put here amount payed if you have it, -1 otherwise)
|
||||||
* @param int $type Type invoice
|
* @param int $type Type invoice
|
||||||
* @return string Libelle du statut
|
* @return string Libelle du statut
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -78,6 +78,7 @@ class DiscountAbsolute
|
|||||||
$sql = "SELECT sr.rowid, sr.fk_soc,";
|
$sql = "SELECT sr.rowid, sr.fk_soc,";
|
||||||
$sql.= " sr.fk_user,";
|
$sql.= " sr.fk_user,";
|
||||||
$sql.= " sr.amount_ht, sr.amount_tva, sr.amount_ttc, sr.tva_tx,";
|
$sql.= " sr.amount_ht, sr.amount_tva, sr.amount_ttc, sr.tva_tx,";
|
||||||
|
$sql.= " sr.multicurrency_amount_ht, sr.multicurrency_amount_tva, sr.multicurrency_amount_ttc,";
|
||||||
$sql.= " sr.fk_facture_line, sr.fk_facture, sr.fk_facture_source, sr.description,";
|
$sql.= " sr.fk_facture_line, sr.fk_facture, sr.fk_facture_source, sr.description,";
|
||||||
$sql.= " sr.datec,";
|
$sql.= " sr.datec,";
|
||||||
$sql.= " f.facnumber as ref_facture_source";
|
$sql.= " f.facnumber as ref_facture_source";
|
||||||
@ -97,9 +98,15 @@ class DiscountAbsolute
|
|||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->fk_soc = $obj->fk_soc;
|
$this->fk_soc = $obj->fk_soc;
|
||||||
|
|
||||||
$this->amount_ht = $obj->amount_ht;
|
$this->amount_ht = $obj->amount_ht;
|
||||||
$this->amount_tva = $obj->amount_tva;
|
$this->amount_tva = $obj->amount_tva;
|
||||||
$this->amount_ttc = $obj->amount_ttc;
|
$this->amount_ttc = $obj->amount_ttc;
|
||||||
|
|
||||||
|
$this->multicurrency_amount_ht = $obj->multicurrency_amount_ht;
|
||||||
|
$this->multicurrency_amount_tva = $obj->multicurrency_amount_tva;
|
||||||
|
$this->multicurrency_amount_ttc = $obj->multicurrency_amount_ttc;
|
||||||
|
|
||||||
$this->tva_tx = $obj->tva_tx;
|
$this->tva_tx = $obj->tva_tx;
|
||||||
$this->fk_user = $obj->fk_user;
|
$this->fk_user = $obj->fk_user;
|
||||||
$this->fk_facture_line = $obj->fk_facture_line;
|
$this->fk_facture_line = $obj->fk_facture_line;
|
||||||
|
|||||||
@ -1918,7 +1918,7 @@ class Form
|
|||||||
$sql.= ' WHERE p.entity IN ('.getEntity('product').')';
|
$sql.= ' WHERE p.entity IN ('.getEntity('product').')';
|
||||||
if (count($warehouseStatusArray))
|
if (count($warehouseStatusArray))
|
||||||
{
|
{
|
||||||
$sql.= ' AND (p.fk_product_type = 1 OR e.statut IN ('.$db->escape(implode(',',$warehouseStatusArray)).'))';
|
$sql.= ' AND (p.fk_product_type = 1 OR e.statut IN ('.$this->db->escape(implode(',',$warehouseStatusArray)).'))';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) {
|
if (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) {
|
||||||
@ -5500,6 +5500,8 @@ class Form
|
|||||||
print '<br><!-- showLinkedObjectBlock -->';
|
print '<br><!-- showLinkedObjectBlock -->';
|
||||||
print load_fiche_titre($langs->trans('RelatedObjects'), $morehtmlright, '');
|
print load_fiche_titre($langs->trans('RelatedObjects'), $morehtmlright, '');
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder allwidth">';
|
print '<table class="noborder allwidth">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
@ -5593,6 +5595,7 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
return $nbofdifferenttypes;
|
return $nbofdifferenttypes;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,7 +142,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
|
|||||||
print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
|
print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
|
||||||
print $langs->trans("Status");
|
print $langs->trans("Status");
|
||||||
print ' </td><td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
|
print ' </td><td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
|
||||||
$formactions->form_select_status_action('formaction',$status,1,'status',1,2);
|
$formactions->form_select_status_action('formaction', $status, 1, 'status', 1, 2, 'minwidth100');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1446,7 +1446,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon='', $noprint=
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Status
|
// Status
|
||||||
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3,1,$histo[$key]['datestart']).'</td>';
|
$out.='<td class="nowrap" align="center">'.$actionstatic->LibStatut($histo[$key]['percent'],3,0,$histo[$key]['datestart']).'</td>';
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
$out.='<td></td>';
|
$out.='<td></td>';
|
||||||
|
|||||||
@ -1559,7 +1559,7 @@ function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert an image file into anoher format.
|
* Convert an image file into another format.
|
||||||
* This need Imagick php extension.
|
* This need Imagick php extension.
|
||||||
*
|
*
|
||||||
* @param string $fileinput Input file name
|
* @param string $fileinput Input file name
|
||||||
@ -1567,14 +1567,19 @@ function dol_remove_file_process($filenb,$donotupdatesession=0,$donotdeletefile=
|
|||||||
* @param string $fileoutput Output filename
|
* @param string $fileoutput Output filename
|
||||||
* @return int <0 if KO, 0=Nothing done, >0 if OK
|
* @return int <0 if KO, 0=Nothing done, >0 if OK
|
||||||
*/
|
*/
|
||||||
function dol_convert_file($fileinput,$ext='png',$fileoutput='')
|
function dol_convert_file($fileinput, $ext='png', $fileoutput='')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
if (class_exists('Imagick'))
|
if (class_exists('Imagick'))
|
||||||
{
|
{
|
||||||
$image=new Imagick();
|
$image=new Imagick();
|
||||||
$ret = $image->readImage($fileinput);
|
try {
|
||||||
|
$ret = $image->readImage($fileinput);
|
||||||
|
} catch(Exception $e) {
|
||||||
|
dol_syslog("Failed to read image using Imagick. Try to install package 'apt-get install ghostscript'.", LOG_WARNING);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if ($ret)
|
if ($ret)
|
||||||
{
|
{
|
||||||
$ret = $image->setImageFormat($ext);
|
$ret = $image->setImageFormat($ext);
|
||||||
|
|||||||
@ -6261,29 +6261,39 @@ function natural_search($fields, $value, $mode=0, $nofirstand=0)
|
|||||||
$i3 = 0;
|
$i3 = 0;
|
||||||
foreach($tmpcrits as $tmpcrit)
|
foreach($tmpcrits as $tmpcrit)
|
||||||
{
|
{
|
||||||
$newres .= (($i2 > 0 || $i3 > 0) ? ' OR ' : '') . $field . " LIKE '";
|
$newres .= (($i2 > 0 || $i3 > 0) ? ' OR ' : '');
|
||||||
|
|
||||||
|
if (preg_match('/\.(id|rowid)$/', $field)) // Special cas for rowid that is sometimes a ref so used as a search field
|
||||||
|
{
|
||||||
|
$newres .= $field . " = " . (is_numeric(trim($tmpcrit))?trim($tmpcrit):'0');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$newres .= $field . " LIKE '";
|
||||||
|
|
||||||
|
$tmpcrit=trim($tmpcrit);
|
||||||
|
$tmpcrit2=$tmpcrit;
|
||||||
|
$tmpbefore='%'; $tmpafter='%';
|
||||||
|
if (preg_match('/^[\^\$]/', $tmpcrit))
|
||||||
|
{
|
||||||
|
$tmpbefore='';
|
||||||
|
$tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
|
||||||
|
}
|
||||||
|
if (preg_match('/[\^\$]$/', $tmpcrit))
|
||||||
|
{
|
||||||
|
$tmpafter='';
|
||||||
|
$tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
|
||||||
|
}
|
||||||
|
$newres .= $tmpbefore;
|
||||||
|
$newres .= $db->escape($tmpcrit2);
|
||||||
|
$newres .= $tmpafter;
|
||||||
|
$newres .= "'";
|
||||||
|
if ($tmpcrit2 == '')
|
||||||
|
{
|
||||||
|
$newres .= ' OR ' . $field . " IS NULL";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$tmpcrit=trim($tmpcrit);
|
|
||||||
$tmpcrit2=$tmpcrit;
|
|
||||||
$tmpbefore='%'; $tmpafter='%';
|
|
||||||
if (preg_match('/^[\^\$]/', $tmpcrit))
|
|
||||||
{
|
|
||||||
$tmpbefore='';
|
|
||||||
$tmpcrit2 = preg_replace('/^[\^\$]/', '', $tmpcrit2);
|
|
||||||
}
|
|
||||||
if (preg_match('/[\^\$]$/', $tmpcrit))
|
|
||||||
{
|
|
||||||
$tmpafter='';
|
|
||||||
$tmpcrit2 = preg_replace('/[\^\$]$/', '', $tmpcrit2);
|
|
||||||
}
|
|
||||||
$newres .= $tmpbefore;
|
|
||||||
$newres .= $db->escape($tmpcrit2);
|
|
||||||
$newres .= $tmpafter;
|
|
||||||
$newres .= "'";
|
|
||||||
if ($tmpcrit2 == '')
|
|
||||||
{
|
|
||||||
$newres .= ' OR ' . $field . " IS NULL";
|
|
||||||
}
|
|
||||||
$i3++;
|
$i3++;
|
||||||
}
|
}
|
||||||
$i2++; // a criteria was added to string
|
$i2++; // a criteria was added to string
|
||||||
|
|||||||
@ -46,7 +46,7 @@ if (! function_exists('json_encode'))
|
|||||||
*/
|
*/
|
||||||
function dol_json_encode($elements)
|
function dol_json_encode($elements)
|
||||||
{
|
{
|
||||||
dol_syslog("For better permorfance, enable the native json in your PHP", LOG_WARNING);
|
dol_syslog("For better performance, enable the native json in your PHP", LOG_WARNING);
|
||||||
|
|
||||||
$num=0;
|
$num=0;
|
||||||
if (is_object($elements)) // Count number of properties for an object
|
if (is_object($elements)) // Count number of properties for an object
|
||||||
@ -225,12 +225,11 @@ if (! function_exists('json_decode'))
|
|||||||
* @param string $json Json encoded to PHP Object or Array
|
* @param string $json Json encoded to PHP Object or Array
|
||||||
* @param bool $assoc False return an object, true return an array. Try to always use it with true !
|
* @param bool $assoc False return an object, true return an array. Try to always use it with true !
|
||||||
* @return mixed Object or Array or false on error
|
* @return mixed Object or Array or false on error
|
||||||
* @deprecated PHP >= 5.3 supports native json_decode
|
|
||||||
* @see json_decode()
|
* @see json_decode()
|
||||||
*/
|
*/
|
||||||
function dol_json_decode($json, $assoc=false)
|
function dol_json_decode($json, $assoc=false)
|
||||||
{
|
{
|
||||||
dol_syslog('dol_json_decode() is deprecated. Please update your code to use native json_decode().', LOG_WARNING);
|
dol_syslog("For better performance, enable the native json in your PHP", LOG_WARNING);
|
||||||
|
|
||||||
$comment = false;
|
$comment = false;
|
||||||
|
|
||||||
|
|||||||
@ -266,7 +266,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
|
|||||||
{
|
{
|
||||||
// url = url from host, shorturl = relative path into dolibarr sources
|
// url = url from host, shorturl = relative path into dolibarr sources
|
||||||
$url = $shorturl = $newTabMenu[$i]['url'];
|
$url = $shorturl = $newTabMenu[$i]['url'];
|
||||||
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
|
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url'])) // Do not change url content for external links
|
||||||
{
|
{
|
||||||
$tmp=explode('?',$newTabMenu[$i]['url'],2);
|
$tmp=explode('?',$newTabMenu[$i]['url'],2);
|
||||||
$url = $shorturl = $tmp[0];
|
$url = $shorturl = $tmp[0];
|
||||||
@ -301,7 +301,7 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode
|
|||||||
foreach($menu->liste as $menkey => $menuval)
|
foreach($menu->liste as $menkey => $menuval)
|
||||||
{
|
{
|
||||||
if (empty($noout)) print_start_menu_entry($menuval['idsel'],$menuval['classname'],$menuval['enabled']);
|
if (empty($noout)) print_start_menu_entry($menuval['idsel'],$menuval['classname'],$menuval['enabled']);
|
||||||
if (empty($noout)) print_text_menu_entry($menuval['titre'], $menuval['enabled'], ($menuval['url']!='#'?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget));
|
if (empty($noout)) print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url']!='#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target']?$menuval['target']:$atarget));
|
||||||
if (empty($noout)) print_end_menu_entry($menuval['enabled']);
|
if (empty($noout)) print_end_menu_entry($menuval['enabled']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -463,17 +463,20 @@ class pdf_strato extends ModelePDFContract
|
|||||||
|
|
||||||
if (empty($hidebottom))
|
if (empty($hidebottom))
|
||||||
{
|
{
|
||||||
$pdf->SetXY(20,230);
|
$posmiddle = $this->marge_gauche + round(($this->page_largeur - $this->marge_gauche - $this->marge_droite)/2);
|
||||||
$pdf->MultiCell(66,5, $outputlangs->transnoentities("ContactNameAndSignature", $this->emetteur->name),0,'L',0);
|
$posy = $tab_top + $tab_height + 3 + 3;
|
||||||
|
|
||||||
$pdf->SetXY(20,235);
|
$pdf->SetXY($this->marge_gauche, $posy);
|
||||||
$pdf->MultiCell(80,25, '', 1);
|
$pdf->MultiCell($posmiddle - $this->marge_gauche - 5, 5, $outputlangs->transnoentities("ContactNameAndSignature", $this->emetteur->name),0,'L',0);
|
||||||
|
|
||||||
$pdf->SetXY(110,230);
|
$pdf->SetXY($this->marge_gauche, $posy + 5);
|
||||||
$pdf->MultiCell(80,5, $outputlangs->transnoentities("ContactNameAndSignature", $this->recipient->name),0,'L',0);
|
$pdf->MultiCell($posmiddle - $this->marge_gauche - 5, 20, '', 1);
|
||||||
|
|
||||||
$pdf->SetXY(110,235);
|
$pdf->SetXY($posmiddle + 5, $posy);
|
||||||
$pdf->MultiCell(80,25, '', 1);
|
$pdf->MultiCell($this->page_largeur-$this->marge_droite - $posmiddle - 5, 5, $outputlangs->transnoentities("ContactNameAndSignature", $this->recipient->name),0,'L',0);
|
||||||
|
|
||||||
|
$pdf->SetXY($posmiddle + 5, $posy + 5);
|
||||||
|
$pdf->MultiCell($this->page_largeur-$this->marge_droite - $posmiddle - 5, 20, '', 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -302,7 +302,7 @@ class pdf_soleil extends ModelePDFFicheinter
|
|||||||
$pageposafter=$pageposbefore;
|
$pageposafter=$pageposbefore;
|
||||||
//print $pageposafter.'-'.$pageposbefore;exit;
|
//print $pageposafter.'-'.$pageposbefore;exit;
|
||||||
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
||||||
$pdf->writeHTMLCell(0, 0, $curX, $curY, $txt.'<br>'.$desc, LR, 1, 0);
|
$pdf->writeHTMLCell(0, 0, $curX, $curY, dol_concatdesc($txt,$desc), 0, 1, 0);
|
||||||
$pageposafter=$pdf->getPage();
|
$pageposafter=$pdf->getPage();
|
||||||
$posyafter=$pdf->GetY();
|
$posyafter=$pdf->GetY();
|
||||||
//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
|
//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
|
||||||
|
|||||||
@ -162,14 +162,14 @@ class modProduct extends DolibarrModules
|
|||||||
if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR';
|
if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR';
|
||||||
if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue'));
|
if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue'));
|
||||||
if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.barcode'=>'BarCode'));
|
if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.barcode'=>'BarCode'));
|
||||||
if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.unitprice'=>'SuppliersPrices'));
|
if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.unitprice'=>'BuyingPrice','pf.quantity'=>'QtyMin','pf.remise_percent'=>'DiscountQtyMin'));
|
||||||
if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.cost_price'=>'CostPrice'));
|
if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.cost_price'=>'CostPrice'));
|
||||||
if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('group_concat(cat.label)'=>'Categories'));
|
if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('group_concat(cat.label)'=>'Categories'));
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel','l.description'=>'TranslatedDescription','l.note'=>'TranslatedNote'));
|
if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('l.lang'=>'Language', 'l.label'=>'TranslatedLabel','l.description'=>'TranslatedDescription','l.note'=>'TranslatedNote'));
|
||||||
$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date');
|
$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.width'=>"Numeric",'p.height'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date');
|
||||||
if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric'));
|
if (! empty($conf->stock->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.stock'=>'Numeric','p.seuil_stock_alerte'=>'Numeric','p.desiredstock'=>'Numeric','p.pmp'=>'Numeric','p.cost_price'=>'Numeric'));
|
||||||
if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.barcode'=>'Text'));
|
if (! empty($conf->barcode->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('p.barcode'=>'Text'));
|
||||||
if (! empty($conf->fournisseur->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('s.nom'=>'Text','pf.ref_fourn'=>'Text','pf.unitprice'=>'Numeric'));
|
if (! empty($conf->fournisseur->enabled)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('s.nom'=>'Text','pf.ref_fourn'=>'Text','pf.unitprice'=>'Numeric','pf.quantity'=>'Numeric','pf.remise_percent'=>'Numeric'));
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('l.lang'=>'Text', 'l.label'=>'Text','l.description'=>'Text','l.note'=>'Text'));
|
if (! empty($conf->global->MAIN_MULTILANGS)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array('l.lang'=>'Text', 'l.label'=>'Text','l.description'=>'Text','l.note'=>'Text'));
|
||||||
if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array("group_concat(cat.label)"=>'Text'));
|
if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_TypeFields_array[$r]=array_merge($this->export_TypeFields_array[$r],array("group_concat(cat.label)"=>'Text'));
|
||||||
$this->export_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
$this->export_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||||
|
|||||||
@ -187,20 +187,22 @@ class ExpenseReport extends CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if (!$resql) $error++;
|
if (!$resql) $error++;
|
||||||
|
|
||||||
foreach ($this->lines as $i => $val)
|
if (is_array($this->lines) && count($this->lines)>0) {
|
||||||
{
|
foreach ($this->lines as $i => $val)
|
||||||
$newndfline=new ExpenseReportLine($this->db);
|
{
|
||||||
$newndfline=$this->lines[$i];
|
$newndfline=new ExpenseReportLine($this->db);
|
||||||
$newndfline->fk_expensereport=$this->id;
|
$newndfline=$this->lines[$i];
|
||||||
if ($result >= 0)
|
$newndfline->fk_expensereport=$this->id;
|
||||||
{
|
if ($result >= 0)
|
||||||
$result=$newndfline->insert();
|
{
|
||||||
}
|
$result=$newndfline->insert();
|
||||||
if ($result < 0)
|
}
|
||||||
{
|
if ($result < 0)
|
||||||
$error++;
|
{
|
||||||
break;
|
$error++;
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
|
|||||||
@ -707,27 +707,58 @@ if ($object->id > 0)
|
|||||||
print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
|
print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("ThirdPartyIsClosed").'</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer && $object->status==1)
|
if ($conf->supplier_proposal->enabled && $user->rights->supplier_proposal->creer)
|
||||||
{
|
{
|
||||||
$langs->load("supplier_proposal");
|
$langs->load("supplier_proposal");
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddSupplierProposal").'</a>';
|
if ($object->status == 1)
|
||||||
|
{
|
||||||
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/supplier_proposal/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddSupplierProposal").'</a>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddSupplierProposal").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->rights->fournisseur->commande->creer && $object->status==1)
|
if ($user->rights->fournisseur->commande->creer)
|
||||||
{
|
{
|
||||||
$langs->load("orders");
|
$langs->load("orders");
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddOrder").'</a>';
|
if ($object->status == 1)
|
||||||
|
{
|
||||||
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddOrder").'</a>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddOrder").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->rights->fournisseur->facture->creer && $object->status==1)
|
if ($user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
|
if ($object->status == 1)
|
||||||
|
{
|
||||||
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a class="butActionRefused" title="'.dol_escape_js($langs->trans("ThirdPartyIsClosed")).'" href="#">'.$langs->trans("AddBill").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->rights->fournisseur->facture->creer && $object->status==1)
|
if ($user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
if (! empty($orders2invoice) && $orders2invoice > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
if (! empty($orders2invoice) && $orders2invoice > 0)
|
||||||
|
{
|
||||||
|
if ($object->status == 1)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
else print '<div class="inline-block divButAction"><a class="butActionRefused" title="'.dol_escape_js($langs->trans("NoOrdersToInvoice")).'" href="#">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -93,9 +93,12 @@ $day_lim = GETPOST('day_lim','int');
|
|||||||
$month_lim = GETPOST('month_lim','int');
|
$month_lim = GETPOST('month_lim','int');
|
||||||
$year_lim = GETPOST('year_lim','int');
|
$year_lim = GETPOST('year_lim','int');
|
||||||
$toselect = GETPOST('toselect', 'array');
|
$toselect = GETPOST('toselect', 'array');
|
||||||
|
$filter = GETPOST('filtre','alpha');
|
||||||
|
|
||||||
$option = GETPOST('option');
|
$option = GETPOST('option');
|
||||||
if ($option == 'late') $filter = 'paye:0';
|
if ($option == 'late') {
|
||||||
|
$filter = 'paye:0';
|
||||||
|
}
|
||||||
|
|
||||||
$search_all = GETPOST('sall', 'alphanohtml');
|
$search_all = GETPOST('sall', 'alphanohtml');
|
||||||
$search_label = GETPOST("search_label","alpha");
|
$search_label = GETPOST("search_label","alpha");
|
||||||
|
|||||||
@ -143,7 +143,7 @@ class Segment implements IteratorAggregate, Countable
|
|||||||
}
|
}
|
||||||
$reg = "/\[!--\sBEGIN\s$this->name\s--\](.*)\[!--\sEND\s$this->name\s--\]/sm";
|
$reg = "/\[!--\sBEGIN\s$this->name\s--\](.*)\[!--\sEND\s$this->name\s--\]/sm";
|
||||||
$this->xmlParsed = preg_replace($reg, '$1', $this->xmlParsed);
|
$this->xmlParsed = preg_replace($reg, '$1', $this->xmlParsed);
|
||||||
// Miguel Erill 09704/2017 - Add macro replacement to invoice lines
|
// Miguel Erill 09704/2017 - Add macro replacement to invoice lines
|
||||||
$this->xmlParsed = $this->macroReplace($this->xmlParsed);
|
$this->xmlParsed = $this->macroReplace($this->xmlParsed);
|
||||||
$this->file->open($this->odf->getTmpfile());
|
$this->file->open($this->odf->getTmpfile());
|
||||||
foreach ($this->images as $imageKey => $imageValue) {
|
foreach ($this->images as $imageKey => $imageValue) {
|
||||||
@ -175,8 +175,8 @@ class Segment implements IteratorAggregate, Countable
|
|||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
$patterns=array( '__CURRENTDAY__','__CURRENTDAYTEXT__','__CURRENTMONTHSHORT__','__CURRENTMONTH__','__CURRENTYEAR__' );
|
$patterns=array('/__CURRENTDAY__/','/__CURRENTDAYTEXT__/','/__CURRENTMONTHSHORT__/','/__CURRENTMONTH__/','/__CURRENTYEAR__/');
|
||||||
$values=array( date('j'), $langs->trans(date('l')), $langs->trans(date('M')), $langs->trans(date('F')), date('Y') );
|
$values=array(date('j'), $langs->trans(date('l')), $langs->trans(date('M')), $langs->trans(date('F')), date('Y'));
|
||||||
|
|
||||||
$text=preg_replace($patterns, $values, $text);
|
$text=preg_replace($patterns, $values, $text);
|
||||||
|
|
||||||
|
|||||||
@ -306,7 +306,19 @@ else
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
// If password is encoded, we decode it
|
||||||
|
if (preg_match('/crypted:/i',$dolibarr_main_db_pass) || ! empty($dolibarr_main_db_encrypted_pass))
|
||||||
|
{
|
||||||
|
require_once $dolibarr_main_document_root.'/core/lib/security.lib.php';
|
||||||
|
if (preg_match('/crypted:/i',$dolibarr_main_db_pass))
|
||||||
|
{
|
||||||
|
$dolibarr_main_db_encrypted_pass = preg_replace('/crypted:/i', '', $dolibarr_main_db_pass); // We need to set this as it is used to know the password was initially crypted
|
||||||
|
$dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
|
||||||
|
}
|
||||||
|
else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
|
||||||
|
}
|
||||||
|
|
||||||
// $conf is already instancied inside inc.php
|
// $conf is already instancied inside inc.php
|
||||||
$conf->db->type = $dolibarr_main_db_type;
|
$conf->db->type = $dolibarr_main_db_type;
|
||||||
@ -315,12 +327,12 @@ else
|
|||||||
$conf->db->name = $dolibarr_main_db_name;
|
$conf->db->name = $dolibarr_main_db_name;
|
||||||
$conf->db->user = $dolibarr_main_db_user;
|
$conf->db->user = $dolibarr_main_db_user;
|
||||||
$conf->db->pass = $dolibarr_main_db_pass;
|
$conf->db->pass = $dolibarr_main_db_pass;
|
||||||
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
||||||
if ($db->connected && $db->database_selected)
|
if ($db->connected && $db->database_selected)
|
||||||
{
|
{
|
||||||
$ok=true;
|
$ok=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,6 +61,8 @@ ALTER TABLE llx_user DROP COLUMN phenix_login;
|
|||||||
ALTER TABLE llx_user DROP COLUMN phenix_pass;
|
ALTER TABLE llx_user DROP COLUMN phenix_pass;
|
||||||
ALTER TABLE llx_user ADD COLUMN dateemployment datetime;
|
ALTER TABLE llx_user ADD COLUMN dateemployment datetime;
|
||||||
|
|
||||||
|
ALTER TABLE llx_user MODIFY login varchar(50) NOT NULL;
|
||||||
|
|
||||||
ALTER TABLE llx_societe ADD COLUMN fk_account integer;
|
ALTER TABLE llx_societe ADD COLUMN fk_account integer;
|
||||||
|
|
||||||
ALTER TABLE llx_commandedet ADD COLUMN fk_commandefourndet integer DEFAULT NULL after import_key; -- link to detail line of commande fourn (resplenish)
|
ALTER TABLE llx_commandedet ADD COLUMN fk_commandefourndet integer DEFAULT NULL after import_key; -- link to detail line of commande fourn (resplenish)
|
||||||
|
|||||||
@ -510,6 +510,7 @@ ALTER TABLE llx_user_rights DROP FOREIGN KEY fk_user_rights_fk_user_user;
|
|||||||
ALTER TABLE llx_user_rights DROP INDEX uk_user_rights;
|
ALTER TABLE llx_user_rights DROP INDEX uk_user_rights;
|
||||||
ALTER TABLE llx_user_rights DROP INDEX fk_user;
|
ALTER TABLE llx_user_rights DROP INDEX fk_user;
|
||||||
ALTER TABLE llx_user_rights ADD UNIQUE INDEX uk_user_rights (entity, fk_user, fk_id);
|
ALTER TABLE llx_user_rights ADD UNIQUE INDEX uk_user_rights (entity, fk_user, fk_id);
|
||||||
|
DELETE FROM llx_user_rights WHERE fk_user NOT IN (select rowid from llx_user);
|
||||||
ALTER TABLE llx_user_rights ADD CONSTRAINT fk_user_rights_fk_user_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
|
ALTER TABLE llx_user_rights ADD CONSTRAINT fk_user_rights_fk_user_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
|
||||||
|
|
||||||
ALTER TABLE llx_usergroup_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER rowid;
|
ALTER TABLE llx_usergroup_rights ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER rowid;
|
||||||
|
|||||||
@ -89,6 +89,7 @@ delete from llx_livraison where ref = '';
|
|||||||
delete from llx_expeditiondet where fk_expedition in (select rowid from llx_expedition where ref = '');
|
delete from llx_expeditiondet where fk_expedition in (select rowid from llx_expedition where ref = '');
|
||||||
delete from llx_expedition where ref = '';
|
delete from llx_expedition where ref = '';
|
||||||
delete from llx_holiday_logs where fk_user_update not IN (select rowid from llx_user);
|
delete from llx_holiday_logs where fk_user_update not IN (select rowid from llx_user);
|
||||||
|
delete from llx_user_rights where fk_user not IN (select rowid from llx_user);
|
||||||
|
|
||||||
update llx_deplacement set dated='2010-01-01' where dated < '2000-01-01';
|
update llx_deplacement set dated='2010-01-01' where dated < '2000-01-01';
|
||||||
|
|
||||||
|
|||||||
@ -83,6 +83,9 @@ EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated
|
|||||||
EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved
|
EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved
|
||||||
EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted
|
EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted
|
||||||
EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused
|
EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused
|
||||||
|
PROJECT_CREATEInDolibarr=Project %s created
|
||||||
|
PROJECT_MODIFYInDolibarr=Project %s modified
|
||||||
|
PROJECT_DELETEInDolibarr=Project %s deleted
|
||||||
##### End agenda events #####
|
##### End agenda events #####
|
||||||
AgendaModelModule=Document templates for event
|
AgendaModelModule=Document templates for event
|
||||||
DateActionStart=Start date
|
DateActionStart=Start date
|
||||||
|
|||||||
@ -338,6 +338,7 @@ DateIsNotEnough=Date not reached yet
|
|||||||
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
|
InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s
|
||||||
WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
|
WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date
|
||||||
WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
|
WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date
|
||||||
|
ViewAvailableGlobalDiscounts=View available discounts
|
||||||
# PaymentConditions
|
# PaymentConditions
|
||||||
Statut=Status
|
Statut=Status
|
||||||
PaymentConditionShortRECEP=Due Upon Receipt
|
PaymentConditionShortRECEP=Due Upon Receipt
|
||||||
|
|||||||
@ -196,7 +196,7 @@ ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source'
|
|||||||
ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
|
ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped.
|
||||||
ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
|
ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action.
|
||||||
ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
|
ErrorChooseBetweenFreeEntryOrPredefinedProduct=You must choose if article is a predefined product or not
|
||||||
|
ErrorDiscountLargerThanRemainToPaySplitItBefore=The discount you try to apply is larger than remain to pay. Split the discount in 2 smaller discounts before.
|
||||||
# Warnings
|
# Warnings
|
||||||
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
|
WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user.
|
||||||
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
|
WarningMandatorySetupNotComplete=Mandatory setup parameters are not yet defined
|
||||||
|
|||||||
@ -237,6 +237,21 @@ foreach ($search_array_options as $key => $val)
|
|||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
$sql.=$hookmanager->resPrint;
|
$sql.=$hookmanager->resPrint;
|
||||||
|
|
||||||
|
/* If a group by is required
|
||||||
|
$sql.= " GROUP BY "
|
||||||
|
foreach($object->fields as $key => $val)
|
||||||
|
{
|
||||||
|
$sql.='t.'.$key.', ';
|
||||||
|
}
|
||||||
|
// Add fields from extrafields
|
||||||
|
foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key : '');
|
||||||
|
// Add where from hooks
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListGroupBy',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql.=$hookmanager->resPrint;
|
||||||
|
*/
|
||||||
|
|
||||||
$sql.=$db->order($sortfield,$sortorder);
|
$sql.=$db->order($sortfield,$sortorder);
|
||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
|
* Copyright (C) 2005 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
|
||||||
@ -142,7 +142,7 @@ if ($action == 'search')
|
|||||||
{
|
{
|
||||||
$current_lang = $langs->getDefaultLang();
|
$current_lang = $langs->getDefaultLang();
|
||||||
|
|
||||||
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type, p.entity,';
|
$sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.fk_product_type as type, p.barcode, p.price, p.price_ttc, p.price_base_type, p.entity,';
|
||||||
$sql.= ' p.fk_product_type, p.tms as datem';
|
$sql.= ' p.fk_product_type, p.tms as datem';
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= ', pl.label as labelm, pl.description as descriptionm';
|
if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= ', pl.label as labelm, pl.description as descriptionm';
|
||||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'product as p';
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'product as p';
|
||||||
@ -220,7 +220,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
// Nature
|
// Nature
|
||||||
if ($object->type!=Product::TYPE_SERVICE)
|
if ($object->type!=Product::TYPE_SERVICE)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Nature").'</td><td>';
|
print '<tr><td class="titlefield">'.$langs->trans("Nature").'</td><td>';
|
||||||
print $object->getLibFinished();
|
print $object->getLibFinished();
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
if (empty($conf->global->PRODUIT_MULTIPRICES))
|
if (empty($conf->global->PRODUIT_MULTIPRICES))
|
||||||
{
|
{
|
||||||
// Price
|
// Price
|
||||||
print '<tr><td>'.$langs->trans("SellingPrice").'</td><td>';
|
print '<tr><td class="titlefield">'.$langs->trans("SellingPrice").'</td><td>';
|
||||||
if ($object->price_base_type == 'TTC')
|
if ($object->price_base_type == 'TTC')
|
||||||
{
|
{
|
||||||
print price($object->price_ttc).' '.$langs->trans($object->price_base_type);
|
print price($object->price_ttc).' '.$langs->trans($object->price_base_type);
|
||||||
@ -575,7 +575,8 @@ if ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print "\n<tr ".$bc[$var].">";
|
print "\n".'<tr class="oddeven">';
|
||||||
|
|
||||||
$productstatic->id=$objp->rowid;
|
$productstatic->id=$objp->rowid;
|
||||||
$productstatic->ref=$objp->ref;
|
$productstatic->ref=$objp->ref;
|
||||||
$productstatic->label=$objp->label;
|
$productstatic->label=$objp->label;
|
||||||
|
|||||||
@ -187,7 +187,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
// Tabs for project
|
// Tabs for project
|
||||||
$tab='tasks';
|
$tab='tasks';
|
||||||
$head=project_prepare_head($projectstatic);
|
$head=project_prepare_head($projectstatic);
|
||||||
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project'));
|
dol_fiche_head($head, $tab, $langs->trans("Project"), -1, ($projectstatic->public?'projectpub':'project'));
|
||||||
|
|
||||||
$param=($mode=='mine'?'&mode=mine':'');
|
$param=($mode=='mine'?'&mode=mine':'');
|
||||||
|
|
||||||
@ -272,8 +272,11 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '<div class="clearboth"></div>';
|
print '<div class="clearboth"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// To verify role of users
|
// To verify role of users
|
||||||
//$userAccess = $projectstatic->restrictedProjectArea($user); // We allow task affected to user even if a not allowed project
|
//$userAccess = $projectstatic->restrictedProjectArea($user); // We allow task affected to user even if a not allowed project
|
||||||
//$arrayofuseridoftask=$object->getListContactId('internal');
|
//$arrayofuseridoftask=$object->getListContactId('internal');
|
||||||
|
|||||||
@ -130,7 +130,8 @@ if ($object->id > 0)
|
|||||||
// Tabs for project
|
// Tabs for project
|
||||||
$tab='tasks';
|
$tab='tasks';
|
||||||
$head=project_prepare_head($projectstatic);
|
$head=project_prepare_head($projectstatic);
|
||||||
dol_fiche_head($head, $tab, $langs->trans("Project"),0,($projectstatic->public?'projectpub':'project'));
|
|
||||||
|
dol_fiche_head($head, $tab, $langs->trans("Project"), -1, ($projectstatic->public?'projectpub':'project'));
|
||||||
|
|
||||||
$param=($mode=='mine'?'&mode=mine':'');
|
$param=($mode=='mine'?'&mode=mine':'');
|
||||||
|
|
||||||
@ -215,6 +216,8 @@ if ($object->id > 0)
|
|||||||
print '<div class="clearboth"></div>';
|
print '<div class="clearboth"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$head = task_prepare_head($object);
|
$head = task_prepare_head($object);
|
||||||
|
|||||||
@ -110,7 +110,7 @@ if ($object->id > 0)
|
|||||||
// Tabs for project
|
// Tabs for project
|
||||||
$tab='tasks';
|
$tab='tasks';
|
||||||
$head=project_prepare_head($projectstatic);
|
$head=project_prepare_head($projectstatic);
|
||||||
dol_fiche_head($head, $tab, $langs->trans("Project"), 0, ($projectstatic->public?'projectpub':'project'));
|
dol_fiche_head($head, $tab, $langs->trans("Project"), -1, ($projectstatic->public?'projectpub':'project'));
|
||||||
|
|
||||||
$param=($mode=='mine'?'&mode=mine':'');
|
$param=($mode=='mine'?'&mode=mine':'');
|
||||||
// Project card
|
// Project card
|
||||||
@ -194,6 +194,8 @@ if ($object->id > 0)
|
|||||||
print '<div class="clearboth"></div>';
|
print '<div class="clearboth"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$head = task_prepare_head($object);
|
$head = task_prepare_head($object);
|
||||||
|
|||||||
@ -279,6 +279,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '<div class="fichehalfright">';
|
print '<div class="fichehalfright">';
|
||||||
print '<div class="ficheaddleft">';
|
print '<div class="ficheaddleft">';
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
@ -468,6 +469,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, $param);
|
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, $param);
|
||||||
|
|
||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="fichehalfleft">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
@ -490,8 +492,21 @@ if ($id > 0 || ! empty($ref))
|
|||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Description
|
||||||
|
print '<td class="tdtop">'.$langs->trans("Description").'</td><td colspan="3">';
|
||||||
|
print nl2br($object->description);
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Progress declared
|
// Progress declared
|
||||||
print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
|
print '<tr><td class="titlefield">'.$langs->trans("ProgressDeclared").'</td><td colspan="3">';
|
||||||
if ($object->progress != '')
|
if ($object->progress != '')
|
||||||
{
|
{
|
||||||
print $object->progress.' %';
|
print $object->progress.' %';
|
||||||
@ -506,12 +521,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
if ($tmparray['total_duration'] > 0 && ! empty($object->planned_workload)) print round($tmparray['total_duration'] / $object->planned_workload * 100, 2).' %';
|
if ($tmparray['total_duration'] > 0 && ! empty($object->planned_workload)) print round($tmparray['total_duration'] / $object->planned_workload * 100, 2).' %';
|
||||||
else print '0 %';
|
else print '0 %';
|
||||||
}
|
}
|
||||||
else print '';
|
else print '<span class="opacitymedium">'.$langs->trans("WorkloadNotDefined").'</span>';
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
// Description
|
|
||||||
print '<td class="tdtop">'.$langs->trans("Description").'</td><td colspan="3">';
|
|
||||||
print nl2br($object->description);
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
@ -522,6 +532,10 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
print '<div class="clearboth"></div>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -418,6 +418,10 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -464,7 +468,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
print '<div class="fichecenter">';
|
print '<div class="fichecenter">';
|
||||||
print '<div class="fichehalfleft">';
|
print '<div class="fichehalfleft">';
|
||||||
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
print '<div class="underbanner clearboth"></div>';
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Date start - Date end
|
// Date start - Date end
|
||||||
@ -491,7 +495,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Progress declared
|
// Progress declared
|
||||||
print '<tr><td>'.$langs->trans("ProgressDeclared").'</td><td>';
|
print '<tr><td class="titlefield">'.$langs->trans("ProgressDeclared").'</td><td>';
|
||||||
print $object->progress.' %';
|
print $object->progress.' %';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -503,7 +507,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
|
|||||||
if ($tmparray['total_duration'] > 0) print round($tmparray['total_duration']/$object->planned_workload*100, 2).' %';
|
if ($tmparray['total_duration'] > 0) print round($tmparray['total_duration']/$object->planned_workload*100, 2).' %';
|
||||||
else print '0 %';
|
else print '0 %';
|
||||||
}
|
}
|
||||||
else print '';
|
else print '<span class="opacitymedium">'.$langs->trans("WorkloadNotDefined").'</span>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|||||||
@ -518,13 +518,13 @@ if (empty($conf->global->SOCIETE_DISABLE_STATE))
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
// EMail
|
// EMail
|
||||||
print '<tr><td>'.$langs->trans("Email").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="email" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('email')).'"></td></tr>'."\n";
|
print '<tr><td>'.$langs->trans("Email").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="email" maxlength="255" class="minwidth150" value="'.dol_escape_htmltag(GETPOST('email')).'"></td></tr>'."\n";
|
||||||
// Login
|
// Login
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("Login").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="login" class="minwidth100"value="'.dol_escape_htmltag(GETPOST('login')).'"></td></tr>'."\n";
|
print '<tr><td>'.$langs->trans("Login").' <FONT COLOR="red">*</FONT></td><td><input type="text" name="login" maxlength="50" class="minwidth100"value="'.dol_escape_htmltag(GETPOST('login')).'"></td></tr>'."\n";
|
||||||
print '<tr><td>'.$langs->trans("Password").' <FONT COLOR="red">*</FONT></td><td><input type="password" name="pass1" class="minwidth100" value="'.GETPOST("pass1").'"></td></tr>'."\n";
|
print '<tr><td>'.$langs->trans("Password").' <FONT COLOR="red">*</FONT></td><td><input type="password" maxlength="128" name="pass1" class="minwidth100" value="'.GETPOST("pass1").'"></td></tr>'."\n";
|
||||||
print '<tr><td>'.$langs->trans("PasswordAgain").' <FONT COLOR="red">*</FONT></td><td><input type="password" name="pass2" class="minwidth100" value="'.GETPOST("pass2").'"></td></tr>'."\n";
|
print '<tr><td>'.$langs->trans("PasswordAgain").' <FONT COLOR="red">*</FONT></td><td><input type="password" maxlength="128" name="pass2" class="minwidth100" value="'.GETPOST("pass2").'"></td></tr>'."\n";
|
||||||
}
|
}
|
||||||
// Birthday
|
// Birthday
|
||||||
print '<tr id="trbirth" class="trbirth"><td>'.$langs->trans("DateToBirth").'</td><td>';
|
print '<tr id="trbirth" class="trbirth"><td>'.$langs->trans("DateToBirth").'</td><td>';
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user