Merge pull request #11227 from aspangaro/10.0_intracommreport
NEW module Intracomm report
This commit is contained in:
commit
726fd1b631
@ -164,6 +164,12 @@ source_file = htdocs/langs/en_US/hrm.lang
|
|||||||
source_lang = en_US
|
source_lang = en_US
|
||||||
type = MOZILLAPROPERTIES
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
|
[dolibarr.intracommreport]
|
||||||
|
file_filter = htdocs/langs/<lang>/intracommreport.lang
|
||||||
|
source_file = htdocs/langs/en_US/intracommreport.lang
|
||||||
|
source_lang = en_US
|
||||||
|
type = MOZILLAPROPERTIES
|
||||||
|
|
||||||
[dolibarr.install]
|
[dolibarr.install]
|
||||||
file_filter = htdocs/langs/<lang>/install.lang
|
file_filter = htdocs/langs/<lang>/install.lang
|
||||||
source_file = htdocs/langs/en_US/install.lang
|
source_file = htdocs/langs/en_US/install.lang
|
||||||
|
|||||||
@ -196,6 +196,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/imports
|
%_datadir/dolibarr/htdocs/imports
|
||||||
%_datadir/dolibarr/htdocs/includes
|
%_datadir/dolibarr/htdocs/includes
|
||||||
%_datadir/dolibarr/htdocs/install
|
%_datadir/dolibarr/htdocs/install
|
||||||
|
%_datadir/dolibarr/htdocs/intracommreport
|
||||||
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
||||||
%_datadir/dolibarr/htdocs/livraison
|
%_datadir/dolibarr/htdocs/livraison
|
||||||
%_datadir/dolibarr/htdocs/loan
|
%_datadir/dolibarr/htdocs/loan
|
||||||
|
|||||||
@ -276,6 +276,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/imports
|
%_datadir/dolibarr/htdocs/imports
|
||||||
%_datadir/dolibarr/htdocs/includes
|
%_datadir/dolibarr/htdocs/includes
|
||||||
%_datadir/dolibarr/htdocs/install
|
%_datadir/dolibarr/htdocs/install
|
||||||
|
%_datadir/dolibarr/htdocs/intracommreport
|
||||||
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
||||||
%_datadir/dolibarr/htdocs/livraison
|
%_datadir/dolibarr/htdocs/livraison
|
||||||
%_datadir/dolibarr/htdocs/loan
|
%_datadir/dolibarr/htdocs/loan
|
||||||
|
|||||||
@ -193,6 +193,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/imports
|
%_datadir/dolibarr/htdocs/imports
|
||||||
%_datadir/dolibarr/htdocs/includes
|
%_datadir/dolibarr/htdocs/includes
|
||||||
%_datadir/dolibarr/htdocs/install
|
%_datadir/dolibarr/htdocs/install
|
||||||
|
%_datadir/dolibarr/htdocs/intracommreport
|
||||||
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
||||||
%_datadir/dolibarr/htdocs/livraison
|
%_datadir/dolibarr/htdocs/livraison
|
||||||
%_datadir/dolibarr/htdocs/loan
|
%_datadir/dolibarr/htdocs/loan
|
||||||
|
|||||||
@ -204,6 +204,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/imports
|
%_datadir/dolibarr/htdocs/imports
|
||||||
%_datadir/dolibarr/htdocs/includes
|
%_datadir/dolibarr/htdocs/includes
|
||||||
%_datadir/dolibarr/htdocs/install
|
%_datadir/dolibarr/htdocs/install
|
||||||
|
%_datadir/dolibarr/htdocs/intracommreport
|
||||||
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
%_datadir/dolibarr/htdocs/langs/HOWTO-Translation.txt
|
||||||
%_datadir/dolibarr/htdocs/livraison
|
%_datadir/dolibarr/htdocs/livraison
|
||||||
%_datadir/dolibarr/htdocs/loan
|
%_datadir/dolibarr/htdocs/loan
|
||||||
|
|||||||
BIN
dev/resources/iso-normes/Intracommreport-ManuelDebXml.pdf
Normal file
BIN
dev/resources/iso-normes/Intracommreport-ManuelDebXml.pdf
Normal file
Binary file not shown.
BIN
dev/resources/iso-normes/Intracommreport-ManuelDesXML.pdf
Normal file
BIN
dev/resources/iso-normes/Intracommreport-ManuelDesXML.pdf
Normal file
Binary file not shown.
@ -8,7 +8,7 @@
|
|||||||
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
|
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
|
||||||
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
|
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
|
||||||
* Copyright (C) 2011-2016 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2011-2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2015 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2015 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
|
||||||
@ -91,7 +91,7 @@ $hookmanager->initHooks(array('admin'));
|
|||||||
// Put here declaration of dictionaries properties
|
// Put here declaration of dictionaries properties
|
||||||
|
|
||||||
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
||||||
$taborder = array(9, 0, 4, 3, 2, 0, 1, 8, 19, 16, 39, 27, 40, 38, 0, 5, 11, 0, 32, 33, 34, 0, 6, 0, 29, 0, 7, 24, 28, 17, 35, 36, 0, 10, 23, 12, 13, 0, 14, 0, 22, 20, 18, 21, 0, 15, 30, 0, 37, 0, 25, 0);
|
$taborder = array(9, 0, 4, 3, 2, 0, 1, 8, 19, 16, 39, 27, 40, 38, 0, 5, 11, 0, 32, 33, 34, 0, 6, 0, 29, 0, 7, 24, 28, 17, 35, 36, 0, 10, 23, 12, 13, 0, 14, 0, 22, 20, 18, 21, 41, 0, 15, 30, 0, 37, 0, 25, 0);
|
||||||
|
|
||||||
// Name of SQL tables of dictionaries
|
// Name of SQL tables of dictionaries
|
||||||
$tabname = array();
|
$tabname = array();
|
||||||
@ -135,6 +135,7 @@ $tabname[37] = MAIN_DB_PREFIX."c_units";
|
|||||||
$tabname[38] = MAIN_DB_PREFIX."c_socialnetworks";
|
$tabname[38] = MAIN_DB_PREFIX."c_socialnetworks";
|
||||||
$tabname[39] = MAIN_DB_PREFIX."c_prospectcontactlevel";
|
$tabname[39] = MAIN_DB_PREFIX."c_prospectcontactlevel";
|
||||||
$tabname[40] = MAIN_DB_PREFIX."c_stcommcontact";
|
$tabname[40] = MAIN_DB_PREFIX."c_stcommcontact";
|
||||||
|
$tabname[41] = MAIN_DB_PREFIX."c_transport_mode";
|
||||||
|
|
||||||
// Dictionary labels
|
// Dictionary labels
|
||||||
$tablib = array();
|
$tablib = array();
|
||||||
@ -178,6 +179,7 @@ $tablib[37] = "DictionaryMeasuringUnits";
|
|||||||
$tablib[38] = "DictionarySocialNetworks";
|
$tablib[38] = "DictionarySocialNetworks";
|
||||||
$tablib[39] = "DictionaryProspectContactLevel";
|
$tablib[39] = "DictionaryProspectContactLevel";
|
||||||
$tablib[40] = "DictionaryProspectContactStatus";
|
$tablib[40] = "DictionaryProspectContactStatus";
|
||||||
|
$tablib[41] = "DictionaryTransportMode";
|
||||||
|
|
||||||
// Requests to extract data
|
// Requests to extract data
|
||||||
$tabsql = array();
|
$tabsql = array();
|
||||||
@ -221,6 +223,7 @@ $tabsql[37] = "SELECT r.rowid, r.code, r.label, r.short_label, r.unit_type, r.sc
|
|||||||
$tabsql[38] = "SELECT rowid, entity, code, label, url, icon, active FROM ".MAIN_DB_PREFIX."c_socialnetworks";
|
$tabsql[38] = "SELECT rowid, entity, code, label, url, icon, active FROM ".MAIN_DB_PREFIX."c_socialnetworks";
|
||||||
$tabsql[39] = "SELECT code, label as libelle, sortorder, active FROM ".MAIN_DB_PREFIX."c_prospectcontactlevel";
|
$tabsql[39] = "SELECT code, label as libelle, sortorder, active FROM ".MAIN_DB_PREFIX."c_prospectcontactlevel";
|
||||||
$tabsql[40] = "SELECT id as rowid, code, libelle, picto, active FROM ".MAIN_DB_PREFIX."c_stcommcontact";
|
$tabsql[40] = "SELECT id as rowid, code, libelle, picto, active FROM ".MAIN_DB_PREFIX."c_stcommcontact";
|
||||||
|
$tabsql[41] = "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_transport_mode";
|
||||||
|
|
||||||
// Criteria to sort dictionaries
|
// Criteria to sort dictionaries
|
||||||
$tabsqlsort = array();
|
$tabsqlsort = array();
|
||||||
@ -264,6 +267,7 @@ $tabsqlsort[37] = "r.unit_type ASC, r.scale ASC, r.code ASC";
|
|||||||
$tabsqlsort[38] = "rowid, code ASC";
|
$tabsqlsort[38] = "rowid, code ASC";
|
||||||
$tabsqlsort[39] = "sortorder ASC";
|
$tabsqlsort[39] = "sortorder ASC";
|
||||||
$tabsqlsort[40] = "code ASC";
|
$tabsqlsort[40] = "code ASC";
|
||||||
|
$tabsqlsort[41] = "code ASC";
|
||||||
|
|
||||||
// Field names in select result for dictionary display
|
// Field names in select result for dictionary display
|
||||||
$tabfield = array();
|
$tabfield = array();
|
||||||
@ -307,6 +311,7 @@ $tabfield[37] = "code,label,short_label,unit_type,scale";
|
|||||||
$tabfield[38] = "code,label,url,icon,entity";
|
$tabfield[38] = "code,label,url,icon,entity";
|
||||||
$tabfield[39] = "code,libelle,sortorder";
|
$tabfield[39] = "code,libelle,sortorder";
|
||||||
$tabfield[40] = "code,libelle,picto";
|
$tabfield[40] = "code,libelle,picto";
|
||||||
|
$tabfield[41] = "code,label";
|
||||||
|
|
||||||
// Edit field names for editing a record
|
// Edit field names for editing a record
|
||||||
$tabfieldvalue = array();
|
$tabfieldvalue = array();
|
||||||
@ -350,6 +355,7 @@ $tabfieldvalue[37] = "code,label,short_label,unit_type,scale";
|
|||||||
$tabfieldvalue[38] = "code,label,url,icon";
|
$tabfieldvalue[38] = "code,label,url,icon";
|
||||||
$tabfieldvalue[39] = "code,libelle,sortorder";
|
$tabfieldvalue[39] = "code,libelle,sortorder";
|
||||||
$tabfieldvalue[40] = "code,libelle,picto";
|
$tabfieldvalue[40] = "code,libelle,picto";
|
||||||
|
$tabfieldvalue[41] = "code,label";
|
||||||
|
|
||||||
// Field names in the table for inserting a record
|
// Field names in the table for inserting a record
|
||||||
$tabfieldinsert = array();
|
$tabfieldinsert = array();
|
||||||
@ -394,6 +400,7 @@ $tabfieldinsert[37] = "code,label,short_label,unit_type,scale";
|
|||||||
$tabfieldinsert[38] = "code,label,url,icon,entity";
|
$tabfieldinsert[38] = "code,label,url,icon,entity";
|
||||||
$tabfieldinsert[39] = "code,label,sortorder";
|
$tabfieldinsert[39] = "code,label,sortorder";
|
||||||
$tabfieldinsert[40] = "code,libelle,picto";
|
$tabfieldinsert[40] = "code,libelle,picto";
|
||||||
|
$tabfieldinsert[41] = "code,label";
|
||||||
|
|
||||||
// Rowid name of field depending if field is autoincrement on or off..
|
// Rowid name of field depending if field is autoincrement on or off..
|
||||||
// Use "" if id field is "rowid" and has autoincrement on
|
// Use "" if id field is "rowid" and has autoincrement on
|
||||||
@ -439,6 +446,7 @@ $tabrowid[37] = "";
|
|||||||
$tabrowid[38] = "";
|
$tabrowid[38] = "";
|
||||||
$tabrowid[39] = "code";
|
$tabrowid[39] = "code";
|
||||||
$tabrowid[40] = "id";
|
$tabrowid[40] = "id";
|
||||||
|
$tabrowid[41] = "";
|
||||||
|
|
||||||
// Condition to show dictionary in setup page
|
// Condition to show dictionary in setup page
|
||||||
$tabcond = array();
|
$tabcond = array();
|
||||||
@ -482,6 +490,7 @@ $tabcond[37] = !empty($conf->product->enabled);
|
|||||||
$tabcond[38] = !empty($conf->socialnetworks->enabled);
|
$tabcond[38] = !empty($conf->socialnetworks->enabled);
|
||||||
$tabcond[39] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES));
|
$tabcond[39] = (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES));
|
||||||
$tabcond[40] = (!empty($conf->societe->enabled) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES));
|
$tabcond[40] = (!empty($conf->societe->enabled) && !empty($conf->global->THIRDPARTY_ENABLE_PROSPECTION_ON_ALTERNATIVE_ADRESSES));
|
||||||
|
$tabcond[41] = !empty($conf->intracommreport->enabled);
|
||||||
|
|
||||||
// List of help for fields
|
// List of help for fields
|
||||||
$tabhelp = array();
|
$tabhelp = array();
|
||||||
@ -525,6 +534,7 @@ $tabhelp[37] = array('code'=>$langs->trans("EnterAnyCode"), 'unit_type' => $lang
|
|||||||
$tabhelp[38] = array('code'=>$langs->trans("EnterAnyCode"), 'url' => $langs->trans('UrlSocialNetworksDesc'), 'icon' => $langs->trans('FafaIconSocialNetworksDesc'));
|
$tabhelp[38] = array('code'=>$langs->trans("EnterAnyCode"), 'url' => $langs->trans('UrlSocialNetworksDesc'), 'icon' => $langs->trans('FafaIconSocialNetworksDesc'));
|
||||||
$tabhelp[39] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[39] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[40] = array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp"));
|
$tabhelp[40] = array('code'=>$langs->trans("EnterAnyCode"), 'picto'=>$langs->trans("PictoHelp"));
|
||||||
|
$tabhelp[41] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
|
|
||||||
// List of check for fields (NOT USED YET)
|
// List of check for fields (NOT USED YET)
|
||||||
$tabfieldcheck = array();
|
$tabfieldcheck = array();
|
||||||
@ -568,6 +578,7 @@ $tabfieldcheck[37] = array();
|
|||||||
$tabfieldcheck[38] = array();
|
$tabfieldcheck[38] = array();
|
||||||
$tabfieldcheck[39] = array();
|
$tabfieldcheck[39] = array();
|
||||||
$tabfieldcheck[40] = array();
|
$tabfieldcheck[40] = array();
|
||||||
|
$tabfieldcheck[41] = array();
|
||||||
|
|
||||||
// Complete all arrays with entries found into modules
|
// Complete all arrays with entries found into modules
|
||||||
complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck);
|
complete_dictionary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp, $tabfieldcheck);
|
||||||
|
|||||||
@ -487,6 +487,27 @@ if ($object->id > 0)
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! empty($conf->intracommreport->enabled))
|
||||||
|
{
|
||||||
|
// Transport mode by default
|
||||||
|
print '<tr><td class="nowrap">';
|
||||||
|
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
|
||||||
|
print $langs->trans('IntracommReportTransportMode');
|
||||||
|
print '<td>';
|
||||||
|
if (($action != 'edittransportmode') && $user->rights->societe->creer) print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edittransportmode&socid='.$object->id.'">'.img_edit($langs->trans('SetMode'), 1).'</a></td>';
|
||||||
|
print '</tr></table>';
|
||||||
|
print '</td><td>';
|
||||||
|
if ($action == 'edittransportmode')
|
||||||
|
{
|
||||||
|
$form->formSelectTransportMode($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->fk_transport_mode, 'fk_transport_mode', 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$form->formSelectTransportMode($_SERVER['PHP_SELF'].'?socid='.$object->id, $object->fk_transport_mode, 'none');
|
||||||
|
}
|
||||||
|
print "</td>";
|
||||||
|
print '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// Categories
|
// Categories
|
||||||
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
|
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
|||||||
88
htdocs/core/boxes/intracommreport_box.php
Normal file
88
htdocs/core/boxes/intracommreport_box.php
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?php
|
||||||
|
/* <one line to give the program's name and a brief idea of what it does.>
|
||||||
|
* Copyright (C) <year> <name of author>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file core/boxes/mybox.php
|
||||||
|
* \ingroup intracommreport
|
||||||
|
* \brief This file is a sample box definition file
|
||||||
|
* Put some comments here
|
||||||
|
*/
|
||||||
|
include_once DOL_DOCUMENT_ROOT . "/core/boxes/modules_boxes.php";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to manage the box
|
||||||
|
*/
|
||||||
|
class intracommreportbox extends ModeleBoxes
|
||||||
|
{
|
||||||
|
|
||||||
|
public $boxcode = "mybox";
|
||||||
|
public $boximg = "intracommreport";
|
||||||
|
public $boxlabel;
|
||||||
|
public $depends = array("intracommreport");
|
||||||
|
public $db;
|
||||||
|
public $param;
|
||||||
|
public $info_box_head = array();
|
||||||
|
public $info_box_contents = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
$langs->load("boxes");
|
||||||
|
|
||||||
|
$this->boxlabel = $langs->transnoentitiesnoconv("MyBox");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load data into info_box_contents array to show array later.
|
||||||
|
*
|
||||||
|
* @param int $max Maximum number of records to load
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function loadBox($max = 5)
|
||||||
|
{
|
||||||
|
global $conf, $user, $langs, $db;
|
||||||
|
|
||||||
|
$this->max = $max;
|
||||||
|
|
||||||
|
//include_once DOL_DOCUMENT_ROOT . "/intracommreport/class/intracommreport.class.php";
|
||||||
|
|
||||||
|
$text = $langs->trans("MyBoxDescription", $max);
|
||||||
|
$this->info_box_head = array(
|
||||||
|
'text' => $text,
|
||||||
|
'limit' => dol_strlen($text)
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->info_box_contents[0][0] = array('td' => 'align="left"',
|
||||||
|
'text' => $langs->trans("MyBoxContent"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to show box
|
||||||
|
*
|
||||||
|
* @param array $head Array with properties of box title
|
||||||
|
* @param array $contents Array with properties of box lines
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function showBox($head = null, $contents = null)
|
||||||
|
{
|
||||||
|
parent::showBox($this->info_box_head, $this->info_box_contents);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -296,6 +296,12 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public $cond_reglement_id;
|
public $cond_reglement_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Transport mode ID (For module intracomm report)
|
||||||
|
* @see setTransportMode()
|
||||||
|
*/
|
||||||
|
public $transport_mode_id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int Payment terms ID
|
* @var int Payment terms ID
|
||||||
* @deprecated Kept for compatibility
|
* @deprecated Kept for compatibility
|
||||||
@ -1999,7 +2005,7 @@ abstract class CommonObject
|
|||||||
if (get_class($this) == 'Fournisseur') $this->mode_reglement_supplier_id = $id;
|
if (get_class($this) == 'Fournisseur') $this->mode_reglement_supplier_id = $id;
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::setPaymentMethods Erreur '.$sql.' - '.$this->db->error());
|
dol_syslog(get_class($this).'::setPaymentMethods Error '.$sql.' - '.$this->db->error());
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2036,7 +2042,7 @@ abstract class CommonObject
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::setMulticurrencyCode Erreur '.$sql.' - '.$this->db->error());
|
dol_syslog(get_class($this).'::setMulticurrencyCode Error '.$sql.' - '.$this->db->error());
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2140,7 +2146,7 @@ abstract class CommonObject
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::setMulticurrencyRate Erreur '.$sql.' - '.$this->db->error());
|
dol_syslog(get_class($this).'::setMulticurrencyRate Error '.$sql.' - '.$this->db->error());
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2179,7 +2185,7 @@ abstract class CommonObject
|
|||||||
$this->cond_reglement = $id; // for compatibility
|
$this->cond_reglement = $id; // for compatibility
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::setPaymentTerms Erreur '.$sql.' - '.$this->db->error());
|
dol_syslog(get_class($this).'::setPaymentTerms Error '.$sql.' - '.$this->db->error());
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2190,6 +2196,42 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the transport mode methods
|
||||||
|
*
|
||||||
|
* @param int $id Id of new payment method
|
||||||
|
* @return int >0 if OK, <0 if KO
|
||||||
|
*/
|
||||||
|
public function setTransportMode($id)
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this).'::setTransportMode('.$id.')');
|
||||||
|
if ($this->statut >= 0 || $this->element == 'societe')
|
||||||
|
{
|
||||||
|
$fieldname = 'fk_transport_mode';
|
||||||
|
if ($this->element == 'societe') $fieldname = 'transport_mode';
|
||||||
|
if (get_class($this) == 'Fournisseur') $fieldname = 'transport_mode_supplier';
|
||||||
|
|
||||||
|
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
|
||||||
|
$sql .= ' SET '.$fieldname.' = '.(($id > 0 || $id == '0') ? $id : 'NULL');
|
||||||
|
$sql .= ' WHERE rowid='.$this->id;
|
||||||
|
|
||||||
|
if ($this->db->query($sql))
|
||||||
|
{
|
||||||
|
$this->transport_mode_id = $id;
|
||||||
|
// for supplier
|
||||||
|
if (get_class($this) == 'Fournisseur') $this->transport_mode_supplier_id = $id;
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
dol_syslog(get_class($this).'::setTransportMode Error '.$sql.' - '.$this->db->error());
|
||||||
|
$this->error=$this->db->error();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dol_syslog(get_class($this).'::setTransportMode, status of the object is incompatible');
|
||||||
|
$this->error='Status of the object is incompatible '.$this->statut;
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change the retained warranty payments terms
|
* Change the retained warranty payments terms
|
||||||
@ -2213,7 +2255,7 @@ abstract class CommonObject
|
|||||||
$this->retained_warranty_fk_cond_reglement = $id;
|
$this->retained_warranty_fk_cond_reglement = $id;
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::setRetainedWarrantyPaymentTerms Erreur '.$sql.' - '.$this->db->error());
|
dol_syslog(get_class($this).'::setRetainedWarrantyPaymentTerms Error '.$sql.' - '.$this->db->error());
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2245,7 +2287,7 @@ abstract class CommonObject
|
|||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
$this->error = $this->db->error();
|
$this->error = $this->db->error();
|
||||||
dol_syslog(get_class($this).'::setDeliveryAddress Erreur '.$sql.' - '.$this->error);
|
dol_syslog(get_class($this).'::setDeliveryAddress Error '.$sql.' - '.$this->error);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8286,7 +8328,7 @@ abstract class CommonObject
|
|||||||
* @param int $fromId Id object source
|
* @param int $fromId Id object source
|
||||||
* @param int $toId Id object cible
|
* @param int $toId Id object cible
|
||||||
* @param string $type Type of category ('product', ...)
|
* @param string $type Type of category ('product', ...)
|
||||||
* @return int < 0 si erreur, > 0 si ok
|
* @return int < 0 if error, > 0 if ok
|
||||||
*/
|
*/
|
||||||
public function cloneCategories($fromId, $toId, $type = '')
|
public function cloneCategories($fromId, $toId, $type = '')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -71,6 +71,7 @@ class Form
|
|||||||
// Cache arrays
|
// Cache arrays
|
||||||
public $cache_types_paiements = array();
|
public $cache_types_paiements = array();
|
||||||
public $cache_conditions_paiements = array();
|
public $cache_conditions_paiements = array();
|
||||||
|
public $cache_transport_mode = array();
|
||||||
public $cache_availability = array();
|
public $cache_availability = array();
|
||||||
public $cache_demand_reason = array();
|
public $cache_demand_reason = array();
|
||||||
public $cache_types_fees = array();
|
public $cache_types_fees = array();
|
||||||
@ -3548,6 +3549,107 @@ class Form
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Load in cache list of transport mode
|
||||||
|
*
|
||||||
|
* @return int Nb of lines loaded, <0 if KO
|
||||||
|
*/
|
||||||
|
public function load_cache_transport_mode()
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
$num=count($this->cache_transport_mode);
|
||||||
|
if ($num > 0) return $num; // Cache already loaded
|
||||||
|
|
||||||
|
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||||
|
|
||||||
|
$this->cache_transport_mode = array();
|
||||||
|
|
||||||
|
$sql = "SELECT rowid, code, label, active";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_transport_mode";
|
||||||
|
$sql.= " WHERE entity IN (".getEntity('c_transport_mode').")";
|
||||||
|
//if ($active >= 0) $sql.= " AND active = ".$active;
|
||||||
|
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$num = $this->db->num_rows($resql);
|
||||||
|
$i = 0;
|
||||||
|
while ($i < $num)
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
|
// If traduction exist, we use it else we take the default label
|
||||||
|
$label=($langs->transnoentitiesnoconv("PaymentTypeShort".$obj->code)!=("PaymentTypeShort".$obj->code)?$langs->transnoentitiesnoconv("PaymentTypeShort".$obj->code):($obj->label!='-'?$obj->label:''));
|
||||||
|
$this->cache_transport_mode[$obj->rowid]['rowid'] = $obj->rowid;
|
||||||
|
$this->cache_transport_mode[$obj->rowid]['code'] = $obj->code;
|
||||||
|
$this->cache_transport_mode[$obj->rowid]['label']= $label;
|
||||||
|
$this->cache_transport_mode[$obj->rowid]['active'] = $obj->active;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cache_transport_mode = dol_sort_array($this->cache_transport_mode, 'label', 'asc', 0, 0, 1);
|
||||||
|
|
||||||
|
return $num;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dol_print_error($this->db);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return list of transport mode for intracomm report
|
||||||
|
*
|
||||||
|
* @param string $selected Id of the transport mode pre-selected
|
||||||
|
* @param string $htmlname Name of the select field
|
||||||
|
* @param int $format 0=id+label, 1=code+code, 2=code+label, 3=id+code
|
||||||
|
* @param int $empty 1=can be empty, 0 else
|
||||||
|
* @param int $noadmininfo 0=Add admin info, 1=Disable admin info
|
||||||
|
* @param int $maxlength Max length of label
|
||||||
|
* @param int $active Active or not, -1 = all
|
||||||
|
* @param string $morecss Add more CSS on select tag
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function selectTransportMode($selected = '', $htmlname = 'transportmode', $format = 0, $empty = 1, $noadmininfo = 0, $maxlength = 0, $active = 1, $morecss = '')
|
||||||
|
{
|
||||||
|
global $langs,$user;
|
||||||
|
|
||||||
|
dol_syslog(__METHOD__." ".$selected.", ".$htmlname.", ".$format, LOG_DEBUG);
|
||||||
|
|
||||||
|
$this->load_cache_transport_mode();
|
||||||
|
|
||||||
|
print '<select id="select'.$htmlname.'" class="flat selectmodetransport'.($morecss?' '.$morecss:'').'" name="'.$htmlname.'">';
|
||||||
|
if ($empty) print '<option value=""> </option>';
|
||||||
|
foreach ($this->cache_transport_mode as $id => $arraytypes)
|
||||||
|
{
|
||||||
|
// If not good status
|
||||||
|
if ($active >= 0 && $arraytypes['active'] != $active) continue;
|
||||||
|
|
||||||
|
// We discard empty line if showempty is on because an empty line has already been output.
|
||||||
|
if ($empty && empty($arraytypes['code'])) continue;
|
||||||
|
|
||||||
|
if ($format == 0) print '<option value="'.$id.'"';
|
||||||
|
elseif ($format == 1) print '<option value="'.$arraytypes['code'].'"';
|
||||||
|
elseif ($format == 2) print '<option value="'.$arraytypes['code'].'"';
|
||||||
|
elseif ($format == 3) print '<option value="'.$id.'"';
|
||||||
|
// If text is selected, we compare with code, else with id
|
||||||
|
if (preg_match('/[a-z]/i', $selected) && $selected == $arraytypes['code']) print ' selected';
|
||||||
|
elseif ($selected == $id) print ' selected';
|
||||||
|
print '>';
|
||||||
|
if ($format == 0) $value=($maxlength?dol_trunc($arraytypes['label'], $maxlength):$arraytypes['label']);
|
||||||
|
elseif ($format == 1) $value=$arraytypes['code'];
|
||||||
|
elseif ($format == 2) $value=($maxlength?dol_trunc($arraytypes['label'], $maxlength):$arraytypes['label']);
|
||||||
|
elseif ($format == 3) $value=$arraytypes['code'];
|
||||||
|
print $value?$value:' ';
|
||||||
|
print '</option>';
|
||||||
|
}
|
||||||
|
print '</select>';
|
||||||
|
if ($user->admin && ! $noadmininfo) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a HTML select list of shipping mode
|
* Return a HTML select list of shipping mode
|
||||||
*
|
*
|
||||||
@ -4581,7 +4683,40 @@ class Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
/**
|
||||||
|
* Show form with transport mode
|
||||||
|
*
|
||||||
|
* @param string $page Page
|
||||||
|
* @param int $selected Id mode pre-select
|
||||||
|
* @param string $htmlname Name of select html field
|
||||||
|
* @param int $active Active or not, -1 = all
|
||||||
|
* @param int $addempty 1=Add empty entry
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function formSelectTransportMode($page, $selected = '', $htmlname = 'transport_mode_id', $active = 1, $addempty = 0)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
if ($htmlname != "none")
|
||||||
|
{
|
||||||
|
print '<form method="POST" action="'.$page.'">';
|
||||||
|
print '<input type="hidden" name="action" value="setmode">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
$this->selectTransportMode($selected, $htmlname, 2, $addempty, 0, 0, $active);
|
||||||
|
print '<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">';
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($selected)
|
||||||
|
{
|
||||||
|
$this->load_cache_transport_mode();
|
||||||
|
print $this->cache_transport_mode[$selected]['label'];
|
||||||
|
} else {
|
||||||
|
print " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* Show form with multicurrency code
|
* Show form with multicurrency code
|
||||||
*
|
*
|
||||||
|
|||||||
81
htdocs/core/lib/intracommreport.lib.php
Normal file
81
htdocs/core/lib/intracommreport.lib.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
/* <one line to give the program's name and a brief idea of what it does.>
|
||||||
|
* Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/lib/intracommreport.lib.php
|
||||||
|
* \ingroup Intracomm report
|
||||||
|
* \brief Library of intracomm report functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare array with list of admin tabs
|
||||||
|
*
|
||||||
|
* @return array Array of tabs to show
|
||||||
|
*/
|
||||||
|
function intracommReportAdminPrepareHead()
|
||||||
|
{
|
||||||
|
global $langs, $conf;
|
||||||
|
|
||||||
|
$langs->load("intracommreport");
|
||||||
|
|
||||||
|
$h = 0;
|
||||||
|
$head = array();
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/intracommreport/admin/intracommreport.php';
|
||||||
|
$head[$h][1] = $langs->trans("Parameters");
|
||||||
|
$head[$h][2] = 'general';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
// Show more tabs from modules
|
||||||
|
// Entries must be declared in modules descriptor with line
|
||||||
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'intracommreport_admin');
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'intracommreport_admin', 'remove');
|
||||||
|
return $head;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare array with list of tabs
|
||||||
|
*
|
||||||
|
* @return array Array of tabs to show
|
||||||
|
*/
|
||||||
|
function intracommReportPrepareHead()
|
||||||
|
{
|
||||||
|
global $langs, $conf;
|
||||||
|
|
||||||
|
$langs->load("intracommreport");
|
||||||
|
|
||||||
|
$h = 0;
|
||||||
|
$head = array();
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT.'/intracommreport/card.php?rowid='.$object->id;
|
||||||
|
$head[$h][1] = $langs->trans("Card");
|
||||||
|
$head[$h][2] = 'card';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
// Show more tabs from modules
|
||||||
|
// Entries must be declared in modules descriptor with line
|
||||||
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'intracommreport');
|
||||||
|
|
||||||
|
complete_head_from_modules($conf, $langs, null, $head, $h, 'intracommreport', 'remove');
|
||||||
|
return $head;
|
||||||
|
}
|
||||||
@ -332,9 +332,9 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
|
|||||||
|
|
||||||
// Accounting
|
// Accounting
|
||||||
$tmpentry = array(
|
$tmpentry = array(
|
||||||
'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled)),
|
'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled) || !empty($conf->intracommreport->enabled)),
|
||||||
'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read)),
|
'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read) || !empty($user->rights->intracommreport->read)),
|
||||||
'module'=>'comptabilite|accounting|asset'
|
'module'=>'comptabilite|accounting|asset|intracommreport'
|
||||||
);
|
);
|
||||||
$menu_arr[] = array(
|
$menu_arr[] = array(
|
||||||
'name' => 'Accounting',
|
'name' => 'Accounting',
|
||||||
@ -353,7 +353,7 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
|
|||||||
|
|
||||||
'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") ? 0 : 1),
|
'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") ? 0 : 1),
|
||||||
|
|
||||||
'loadLangs' => array("compta", "accountancy", "assets"),
|
'loadLangs' => array("compta", "accountancy", "assets","intracommreport"),
|
||||||
'submenus' => array(),
|
'submenus' => array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1439,6 +1439,17 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM
|
|||||||
//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journals"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);
|
//if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journals"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Intracomm report
|
||||||
|
if (! empty($conf->intracommreport->enabled))
|
||||||
|
{
|
||||||
|
$newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReport"), 0, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1);
|
||||||
|
if ($usemenuhider || empty($leftmenu) || preg_match('/intracommreport/', $leftmenu)) {
|
||||||
|
// DEB / DES
|
||||||
|
$newmenu->add("/intracommreport/card.php?action=create&leftmenu=intracommreport", $langs->trans("MenuIntracommReportNew"), 1, $user->rights->intracommreport->write, '', $mainmenu, 'intracommreport', 1);
|
||||||
|
$newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReportList"), 1, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Assets
|
// Assets
|
||||||
if (!empty($conf->asset->enabled))
|
if (!empty($conf->asset->enabled))
|
||||||
{
|
{
|
||||||
|
|||||||
129
htdocs/core/modules/modIntracommreport.class.php
Normal file
129
htdocs/core/modules/modIntracommreport.class.php
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2019 Open-DSI <support@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/modIntracommreport.class.php
|
||||||
|
* \ingroup Intracomm report
|
||||||
|
* \brief Module to activate intracomm report module
|
||||||
|
*/
|
||||||
|
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description and activation class for module intracommreport
|
||||||
|
*/
|
||||||
|
class modIntracommreport extends DolibarrModules
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor. Define names, constants, directories, boxes, permissions
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
|
||||||
|
$this->db = $db;
|
||||||
|
$this->numero = 68000;
|
||||||
|
|
||||||
|
$this->family = "financial";
|
||||||
|
$this->module_position = '100';
|
||||||
|
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
|
||||||
|
$this->name = preg_replace('/^mod/i', '', get_class($this));
|
||||||
|
$this->description = "Intracomm report management (Support for French DEB/DES format)";
|
||||||
|
|
||||||
|
// Possible values for version are: 'development', 'experimental', 'dolibarr' or 'dolibarr_deprecated' or version
|
||||||
|
$this->version = 'development';
|
||||||
|
|
||||||
|
$this->const_name = 'MAIN_MODULE_' . strtoupper($this->name);
|
||||||
|
$this->picto = 'intracommreport';
|
||||||
|
|
||||||
|
// Data directories to create when module is enabled
|
||||||
|
$this->dirs = array('/intracommreport/temp');
|
||||||
|
|
||||||
|
// Config pages
|
||||||
|
$this->config_page_url = array("intracommreport.php@intracommreport");
|
||||||
|
|
||||||
|
// Dependencies
|
||||||
|
$this->depends = array("modFacture","modTax"); // List of modules id that must be enabled if this module is enabled
|
||||||
|
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||||
|
$this->conflictwith = array(); // List of modules id this module is in conflict with
|
||||||
|
$this->phpmin = array(5,5); // Minimum version of PHP required by module
|
||||||
|
$this->need_dolibarr_version = array(13,0); // Minimum version of Dolibarr required by module
|
||||||
|
$this->langfiles = array("intracommreport");
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
// List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
|
||||||
|
// Example: $this->const=array(0=>array('MYMODULE_MYNEWCONST1','chaine','myvalue','This is a constant to add',1),
|
||||||
|
// 1=>array('MYMODULE_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1)
|
||||||
|
// );
|
||||||
|
$this->const = array();
|
||||||
|
|
||||||
|
// Tabs
|
||||||
|
$this->tabs = array();
|
||||||
|
|
||||||
|
// Css
|
||||||
|
$this->module_parts = array();
|
||||||
|
|
||||||
|
// Boxes
|
||||||
|
$this->boxes = array();
|
||||||
|
|
||||||
|
// Dictionaries
|
||||||
|
if (! isset($conf->intracommreport->enabled))
|
||||||
|
{
|
||||||
|
$conf->intracommreport=new stdClass();
|
||||||
|
$conf->intracommreport->enabled=0;
|
||||||
|
}
|
||||||
|
$this->dictionaries=array();
|
||||||
|
|
||||||
|
// Permissions
|
||||||
|
$this->rights = array();
|
||||||
|
$this->rights_class = 'intracommreport';
|
||||||
|
$r = 0;
|
||||||
|
|
||||||
|
$r++;
|
||||||
|
$this->rights[$r][0] = 68001;
|
||||||
|
$this->rights[$r][1] = 'Read intracomm report';
|
||||||
|
$this->rights[$r][2] = 'r';
|
||||||
|
$this->rights[$r][3] = 0;
|
||||||
|
$this->rights[$r][4] = 'read';
|
||||||
|
|
||||||
|
$r++;
|
||||||
|
$this->rights[$r][0] = 68002;
|
||||||
|
$this->rights[$r][1] = 'Create/modify intracomm report';
|
||||||
|
$this->rights[$r][2] = 'w';
|
||||||
|
$this->rights[$r][3] = 0;
|
||||||
|
$this->rights[$r][4] = 'write';
|
||||||
|
|
||||||
|
$r++;
|
||||||
|
$this->rights[$r][0] = 68004;
|
||||||
|
$this->rights[$r][1] = 'Delete intracomm report';
|
||||||
|
$this->rights[$r][2] = 'd';
|
||||||
|
$this->rights[$r][3] = 0;
|
||||||
|
$this->rights[$r][4] = 'delete';
|
||||||
|
|
||||||
|
// Main menu entries
|
||||||
|
$this->menu = array(); // List of menus to add
|
||||||
|
$r=0;
|
||||||
|
|
||||||
|
// Exports
|
||||||
|
$r=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,8 +8,8 @@
|
|||||||
* Copyright (C) 2013-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2014-2016 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014-2016 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2016-2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2016-2020 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2019 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2019 Ferran Marcet <fmarcet@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -347,6 +347,12 @@ if (empty($reshook))
|
|||||||
$result = $object->setBankAccount(GETPOST('fk_account', 'int'));
|
$result = $object->setBankAccount(GETPOST('fk_account', 'int'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// transport mode
|
||||||
|
if ($action == 'settransportmode' && $user->rights->fournisseur->facture->creer)
|
||||||
|
{
|
||||||
|
$result=$object->setTransportMode(GETPOST('transport_mode_id', 'int'));
|
||||||
|
}
|
||||||
|
|
||||||
// Set label
|
// Set label
|
||||||
elseif ($action == 'setlabel' && $usercancreate)
|
elseif ($action == 'setlabel' && $usercancreate)
|
||||||
{
|
{
|
||||||
@ -660,7 +666,8 @@ if (empty($reshook))
|
|||||||
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
||||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||||
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
||||||
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
||||||
|
$object->transport_mode_id = GETPOST('transport_mode_id', 'int');
|
||||||
|
|
||||||
// Proprietes particulieres a facture de remplacement
|
// Proprietes particulieres a facture de remplacement
|
||||||
$object->fk_facture_source = GETPOST('fac_replacement');
|
$object->fk_facture_source = GETPOST('fac_replacement');
|
||||||
@ -725,7 +732,8 @@ if (empty($reshook))
|
|||||||
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
||||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||||
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
||||||
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
||||||
|
$object->transport_mode_id = GETPOST('transport_mode_id', 'int');
|
||||||
|
|
||||||
// Proprietes particulieres a facture avoir
|
// Proprietes particulieres a facture avoir
|
||||||
$object->fk_facture_source = $sourceinvoice > 0 ? $sourceinvoice : '';
|
$object->fk_facture_source = $sourceinvoice > 0 ? $sourceinvoice : '';
|
||||||
@ -838,6 +846,7 @@ if (empty($reshook))
|
|||||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||||
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
$object->multicurrency_code = GETPOST('multicurrency_code', 'alpha');
|
||||||
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
$object->multicurrency_tx = GETPOST('originmulticurrency_tx', 'int');
|
||||||
|
$object->transport_mode_id = GETPOST('transport_mode_id');
|
||||||
|
|
||||||
// Auto calculation of date due if not filled by user
|
// Auto calculation of date due if not filled by user
|
||||||
if (empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement();
|
if (empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement();
|
||||||
@ -1687,6 +1696,7 @@ if ($action == 'create')
|
|||||||
$remise_percent = (!empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (!empty($soc->remise_supplier_percent) ? $soc->remise_supplier_percent : 0));
|
$remise_percent = (!empty($objectsrc->remise_percent) ? $objectsrc->remise_percent : (!empty($soc->remise_supplier_percent) ? $soc->remise_supplier_percent : 0));
|
||||||
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '';
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '';
|
||||||
|
$transport_mode_id = (!empty($objectsrc->transport_mode_id) ? $objectsrc->transport_mode_id : (!empty($soc->transport_mode_id) ? $soc->transport_mode_id : 0));
|
||||||
|
|
||||||
if (!empty($conf->multicurrency->enabled))
|
if (!empty($conf->multicurrency->enabled))
|
||||||
{
|
{
|
||||||
@ -1705,6 +1715,7 @@ if ($action == 'create')
|
|||||||
} else {
|
} else {
|
||||||
$cond_reglement_id = $societe->cond_reglement_supplier_id;
|
$cond_reglement_id = $societe->cond_reglement_supplier_id;
|
||||||
$mode_reglement_id = $societe->mode_reglement_supplier_id;
|
$mode_reglement_id = $societe->mode_reglement_supplier_id;
|
||||||
|
$transport_mode_id = $societe->transport_mode_supplier_id;
|
||||||
$fk_account = $societe->fk_account;
|
$fk_account = $societe->fk_account;
|
||||||
$datetmp = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
$datetmp = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
||||||
$dateinvoice = ($datetmp == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '') : $datetmp);
|
$dateinvoice = ($datetmp == '' ? (empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '') : $datetmp);
|
||||||
@ -2053,6 +2064,15 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Intracomm report
|
||||||
|
if (!empty($conf->intracommreport->enabled))
|
||||||
|
{
|
||||||
|
$langs->loadLangs(array("intracommreport"));
|
||||||
|
print '<tr><td>' . $langs->trans('IntracommReportTransportMode') . '</td><td>';
|
||||||
|
$form->selectModeTransport(isset($_POST['transport_mode_id']) ? $_POST['transport_mode_id'] : $transport_mode_id, 'transport_mode_id');
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
// Public note
|
// Public note
|
||||||
print '<tr><td>'.$langs->trans('NotePublic').'</td>';
|
print '<tr><td>'.$langs->trans('NotePublic').'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -2109,7 +2129,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans('AmountHT').'</td><td>'.price($objectsrc->total_ht).'</td></tr>';
|
print '<tr><td>'.$langs->trans('AmountHT').'</td><td>'.price($objectsrc->total_ht).'</td></tr>';
|
||||||
print '<tr><td>'.$langs->trans('AmountVAT').'</td><td>'.price($objectsrc->total_tva)."</td></tr>";
|
print '<tr><td>'.$langs->trans('AmountVAT').'</td><td>'.price($objectsrc->total_tva)."</td></tr>";
|
||||||
if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) //Localtax1
|
if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) //Localtax1
|
||||||
@ -2632,6 +2652,26 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Intracomm report
|
||||||
|
$langs->loadLangs(array("intracommreport"));
|
||||||
|
print '<tr><td class="nowrap">';
|
||||||
|
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
|
||||||
|
print $langs->trans('IntracommReportTransportMode');
|
||||||
|
print '</td>';
|
||||||
|
if ($action != 'editmode' && $user->rights->fournisseur->facture->creer) {
|
||||||
|
print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editmode&id='.$object->id.'">'.img_edit($langs->trans('SetMode'), 1).'</a></td>';
|
||||||
|
}
|
||||||
|
print '</tr></table>';
|
||||||
|
print '</td><td colspan="2">';
|
||||||
|
if ($action == 'editmode')
|
||||||
|
{
|
||||||
|
$form->formTransportMode($_SERVER['PHP_SELF'].'?id='.$object->id, $object->transport_mode_id, 'transport_mode_id', 1, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$form->formTransportMode($_SERVER['PHP_SELF'].'?id='.$object->id, $object->transport_mode_id, 'none');
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
// Other attributes
|
// Other attributes
|
||||||
$cols = 2;
|
$cols = 2;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
|
||||||
|
|||||||
31
htdocs/install/mysql/data/llx_c_transport_mode.sql
Normal file
31
htdocs/install/mysql/data/llx_c_transport_mode.sql
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
-- Copyright (C) 2019-2020 Open-DSI <support@open-dsi.fr>
|
||||||
|
--
|
||||||
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('MAR', 'Transport maritime (y compris camions ou wagons sur bateau)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('TRA', 'Transport par chemin de fer (y compris camions sur wagon)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('ROU', 'Transport par route', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('AIR', 'Transport par air', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('POS', 'Envois postaux', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('OLE', 'Installations de transport fixe (oléoduc)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('NAV', 'Transport par navigation intérieure', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('PRO', 'Propulsion propre', 1);
|
||||||
@ -103,10 +103,47 @@ ALTER TABLE llx_user DROP COLUMN whatsapp;
|
|||||||
ALTER TABLE llx_user ADD COLUMN datestartvalidity datetime;
|
ALTER TABLE llx_user ADD COLUMN datestartvalidity datetime;
|
||||||
ALTER TABLE llx_user ADD COLUMN dateendvalidity datetime;
|
ALTER TABLE llx_user ADD COLUMN dateendvalidity datetime;
|
||||||
|
|
||||||
|
-- Intracomm Report
|
||||||
|
CREATE TABLE llx_c_transport_mode (
|
||||||
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
code varchar(3) NOT NULL,
|
||||||
|
label varchar(255) NOT NULL,
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
) ENGINE=innodb;
|
||||||
|
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('MAR', 'Transport maritime (y compris camions ou wagons sur bateau)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('TRA', 'Transport par chemin de fer (y compris camions sur wagon)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('ROU', 'Transport par route', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('AIR', 'Transport par air', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('POS', 'Envois postaux', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('OLE', 'Installations de transport fixe (oléoduc)', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('NAV', 'Transport par navigation intérieure', 1);
|
||||||
|
INSERT INTO llx_c_transport_mode (code, label, active) VALUES ('PRO', 'Propulsion propre', 1);
|
||||||
|
|
||||||
|
ALTER TABLE llx_facture ADD COLUMN fk_transport_mode integer after location_incoterms;
|
||||||
|
ALTER TABLE llx_facture_fourn ADD COLUMN fk_transport_mode integer after location_incoterms;
|
||||||
|
|
||||||
|
ALTER TABLE llx_societe ADD COLUMN transport_mode tinyint after cond_reglement;
|
||||||
|
ALTER TABLE llx_societe ADD COLUMN transport_mode_supplier tinyint after cond_reglement_supplier;
|
||||||
|
|
||||||
|
CREATE TABLE llx_intracommreport
|
||||||
|
(
|
||||||
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
|
||||||
|
ref varchar(30) NOT NULL, -- report reference number
|
||||||
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
type_declaration varchar(32),
|
||||||
|
period varchar(32),
|
||||||
|
mode varchar(32),
|
||||||
|
content_xml text,
|
||||||
|
type_export varchar(10),
|
||||||
|
datec datetime,
|
||||||
|
tms timestamp
|
||||||
|
)ENGINE=innodb;
|
||||||
|
|
||||||
ALTER TABLE llx_c_incoterms ADD COLUMN label varchar(100) NULL;
|
ALTER TABLE llx_c_incoterms ADD COLUMN label varchar(100) NULL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE llx_recruitment_recruitmentjobposition(
|
CREATE TABLE llx_recruitment_recruitmentjobposition(
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||||
ref varchar(128) DEFAULT '(PROV)' NOT NULL,
|
ref varchar(128) DEFAULT '(PROV)' NOT NULL,
|
||||||
@ -275,6 +312,7 @@ ALTER TABLE llx_recruitment_recruitmentcandidature ADD UNIQUE INDEX uk_recruitme
|
|||||||
|
|
||||||
ALTER TABLE llx_product MODIFY COLUMN seuil_stock_alerte float;
|
ALTER TABLE llx_product MODIFY COLUMN seuil_stock_alerte float;
|
||||||
ALTER TABLE llx_product MODIFY COLUMN desiredstock float;
|
ALTER TABLE llx_product MODIFY COLUMN desiredstock float;
|
||||||
|
|
||||||
ALTER TABLE llx_product_warehouse_properties MODIFY COLUMN seuil_stock_alerte float;
|
ALTER TABLE llx_product_warehouse_properties MODIFY COLUMN seuil_stock_alerte float;
|
||||||
ALTER TABLE llx_product_warehouse_properties MODIFY COLUMN desiredstock float;
|
ALTER TABLE llx_product_warehouse_properties MODIFY COLUMN desiredstock float;
|
||||||
|
|
||||||
|
|||||||
19
htdocs/install/mysql/tables/llx_c_transport_mode.key.sql
Normal file
19
htdocs/install/mysql/tables/llx_c_transport_mode.key.sql
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
-- ===================================================================
|
||||||
|
-- Copyright (C) 2019 Open-DSI <support@open-dsi.fr>
|
||||||
|
--
|
||||||
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ===================================================================
|
||||||
|
|
||||||
|
ALTER TABLE llx_c_transport_mode ADD UNIQUE INDEX uk_c_transport_mode (code, entity);
|
||||||
26
htdocs/install/mysql/tables/llx_c_transport_mode.sql
Normal file
26
htdocs/install/mysql/tables/llx_c_transport_mode.sql
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
-- ========================================================================
|
||||||
|
-- Copyright (C) 2019 Open-DSI <support@open-dsi.fr>
|
||||||
|
--
|
||||||
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ========================================================================
|
||||||
|
|
||||||
|
CREATE TABLE llx_c_transport_mode (
|
||||||
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
code varchar(3) NOT NULL,
|
||||||
|
label varchar(255) NOT NULL,
|
||||||
|
active tinyint DEFAULT 1 NOT NULL
|
||||||
|
) ENGINE=innodb;
|
||||||
|
|
||||||
@ -86,6 +86,8 @@ create table llx_facture
|
|||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
|
|
||||||
|
fk_mode_transport integer, -- for intracomm report
|
||||||
|
|
||||||
situation_cycle_ref smallint, -- situation cycle reference
|
situation_cycle_ref smallint, -- situation cycle reference
|
||||||
situation_counter smallint, -- situation counter
|
situation_counter smallint, -- situation counter
|
||||||
situation_final smallint, -- is the situation final ?
|
situation_final smallint, -- is the situation final ?
|
||||||
|
|||||||
@ -70,6 +70,9 @@ create table llx_facture_fourn
|
|||||||
note_public text,
|
note_public text,
|
||||||
fk_incoterms integer, -- for incoterms
|
fk_incoterms integer, -- for incoterms
|
||||||
location_incoterms varchar(255), -- for incoterms
|
location_incoterms varchar(255), -- for incoterms
|
||||||
|
|
||||||
|
fk_mode_transport integer, -- for intracomm report
|
||||||
|
|
||||||
model_pdf varchar(255),
|
model_pdf varchar(255),
|
||||||
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
last_main_doc varchar(255), -- relative filepath+filename of last main generated document
|
||||||
|
|
||||||
|
|||||||
33
htdocs/install/mysql/tables/llx_intracommreport.sql
Normal file
33
htdocs/install/mysql/tables/llx_intracommreport.sql
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
-- ===================================================================
|
||||||
|
-- Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
-- Copyright (C) 2019 Open-DSI <support@open-dsi.fr>
|
||||||
|
--
|
||||||
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
-- ===================================================================
|
||||||
|
|
||||||
|
create table llx_intracommreport
|
||||||
|
(
|
||||||
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
|
||||||
|
ref varchar(30) NOT NULL, -- report reference number
|
||||||
|
entity integer DEFAULT 1 NOT NULL, -- multi company id
|
||||||
|
type_declaration varchar(32),
|
||||||
|
period varchar(32),
|
||||||
|
mode varchar(32),
|
||||||
|
content_xml text,
|
||||||
|
type_export varchar(10),
|
||||||
|
datec datetime,
|
||||||
|
tms timestamp
|
||||||
|
)ENGINE=innodb;
|
||||||
@ -92,8 +92,10 @@ create table llx_societe
|
|||||||
remise_supplier real DEFAULT 0, -- discount by default granted by this supplier
|
remise_supplier real DEFAULT 0, -- discount by default granted by this supplier
|
||||||
mode_reglement tinyint, -- payment mode customer
|
mode_reglement tinyint, -- payment mode customer
|
||||||
cond_reglement tinyint, -- payment term customer
|
cond_reglement tinyint, -- payment term customer
|
||||||
|
transport_mode tinyint, -- transport mode customer (Intracomm report)
|
||||||
mode_reglement_supplier tinyint, -- payment mode supplier
|
mode_reglement_supplier tinyint, -- payment mode supplier
|
||||||
cond_reglement_supplier tinyint, -- payment term supplier
|
cond_reglement_supplier tinyint, -- payment term supplier
|
||||||
|
transport_mode_supplier tinyint, -- transport mode supplier (Intracomm report)
|
||||||
fk_shipping_method integer, -- preferred shipping method id
|
fk_shipping_method integer, -- preferred shipping method id
|
||||||
tva_assuj tinyint DEFAULT 1, -- assujeti ou non a la TVA
|
tva_assuj tinyint DEFAULT 1, -- assujeti ou non a la TVA
|
||||||
localtax1_assuj tinyint DEFAULT 0, -- assujeti ou non a local tax 1
|
localtax1_assuj tinyint DEFAULT 0, -- assujeti ou non a local tax 1
|
||||||
|
|||||||
0
htdocs/intracommreport/admin/index.html
Normal file
0
htdocs/intracommreport/admin/index.html
Normal file
205
htdocs/intracommreport/admin/intracommreport.php
Normal file
205
htdocs/intracommreport/admin/intracommreport.php
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
* Copyright (C) 2019-2020 Open-DSI <support@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/admin/intracommreport.php
|
||||||
|
* \ingroup intracommreport
|
||||||
|
* \brief Page to setup the module intracomm report
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/intracommreport.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array("admin","intracommreport"));
|
||||||
|
|
||||||
|
if (! $user->admin) accessforbidden();
|
||||||
|
|
||||||
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
|
||||||
|
// Parameters INTRACOMMREPORT_* and others
|
||||||
|
$list_DEB = array (
|
||||||
|
'INTRACOMMREPORT_NUM_AGREMENT',
|
||||||
|
);
|
||||||
|
|
||||||
|
$list_DES = array (
|
||||||
|
'INTRACOMMREPORT_NUM_DECLARATION',
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($action == 'update') {
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
foreach ($list_DEB as $constname)
|
||||||
|
{
|
||||||
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($list_DES as $constname)
|
||||||
|
{
|
||||||
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dolibarr_set_const($db, "INTRACOMMREPORT_TYPE_ACTEUR", GETPOST("INTRACOMMREPORT_TYPE_ACTEUR", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_set_const($db, "INTRACOMMREPORT_ROLE_ACTEUR", GETPOST("INTRACOMMREPORT_ROLE_ACTEUR", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_set_const($db, "INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION", GETPOST("INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_set_const($db, "INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION", GETPOST("INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
dolibarr_set_const($db, "INTRACOMMREPORT_CATEG_FRAISDEPORT", GETPOST("INTRACOMMREPORT_CATEG_FRAISDEPORT", 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
|
if ($error) {
|
||||||
|
setEventMessages($langs->trans("Error"), null, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error) {
|
||||||
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
$form=new Form($db);
|
||||||
|
$formother=new FormOther($db);
|
||||||
|
|
||||||
|
llxHeader('', $langs->trans("IntracommReportSetup"));
|
||||||
|
|
||||||
|
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
|
print load_fiche_titre($langs->trans("IntracommReportSetup"), $linkback, 'title_setup');
|
||||||
|
|
||||||
|
$head = intracommReportAdminPrepareHead();
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'general', $langs->trans("IntracommReport"), 0, "intracommreport");
|
||||||
|
|
||||||
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
||||||
|
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
|
print '<td>'.$langs->trans("Parameters").' (DEB)</td>'."\n";
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Value").'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
foreach ($list_DEB as $key)
|
||||||
|
{
|
||||||
|
print '<tr class="oddeven value">';
|
||||||
|
|
||||||
|
// Param
|
||||||
|
$label = $langs->trans($key);
|
||||||
|
print '<td>'.$label.'</td>';
|
||||||
|
// Value
|
||||||
|
print '<td class="left">';
|
||||||
|
print '<input type="text" class="maxwidth100" id="' . $key . '" name="' . $key . '" value="' . $conf->global->$key . '">';
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("INTRACOMMREPORT_TYPE_ACTEUR").'</td>';
|
||||||
|
$arraychoices=array(''=>$langs->trans("None"), 'PSI'=>'Déclarant pour son compte', 'TDP'=>'Tiers déclarant');
|
||||||
|
print '<td>';
|
||||||
|
print $form->selectarray('INTRACOMMREPORT_TYPE_ACTEUR', $arraychoices, $conf->global->INTRACOMMREPORT_TYPE_ACTEUR, 0);
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("INTRACOMMREPORT_ROLE_ACTEUR").'</td>';
|
||||||
|
$arraychoices=array(''=>$langs->trans("None"), 'sender'=>'Emetteur', 'PSI'=>'Déclarant');
|
||||||
|
print '<td>';
|
||||||
|
print $form->selectarray('INTRACOMMREPORT_ROLE_ACTEUR', $arraychoices, $conf->global->INTRACOMMREPORT_ROLE_ACTEUR, 0);
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION").'</td>';
|
||||||
|
$arraychoices=array(1=>'Seuil de 460 000 €', 2=>'En dessous de 460 000 €');
|
||||||
|
print '<td>';
|
||||||
|
print $form->selectarray('INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION', $arraychoices, $conf->global->INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION, 0);
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION").'</td>';
|
||||||
|
$arraychoices=array(3=>'Seuil de 460 000 €', 4=>'En dessous de 460 000 €');
|
||||||
|
print '<td>';
|
||||||
|
print $form->selectarray('INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION', $arraychoices, $conf->global->INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION, 0);
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>'.$langs->trans("INTRACOMMREPORT_CATEG_FRAISDEPORT").'</td>';
|
||||||
|
$arraychoices=array(3=>'Seuil de 460 000 €', 4=>'En dessous de 460 000 €');
|
||||||
|
print '<td>';
|
||||||
|
print $formother->select_categories(0, $conf->global->INTRACOMMREPORT_CATEG_FRAISDEPORT, 'INTRACOMMREPORT_CATEG_FRAISDEPORT');
|
||||||
|
print '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '<td>'.$langs->trans("Parameters").' (DES)</td>'."\n";
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Value").'</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
foreach ($list_DES as $key)
|
||||||
|
{
|
||||||
|
print '<tr class="oddeven value">';
|
||||||
|
|
||||||
|
// Param
|
||||||
|
$label = $langs->trans($key);
|
||||||
|
print '<td>'.$label.'</td>';
|
||||||
|
// Value
|
||||||
|
print '<td class="left">';
|
||||||
|
print '<input type="text" class="maxwidth100" id="' . $key . '" name="' . $key . '" value="' . $conf->global->$key . '">';
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
print '<div class="inline-block divButAction">';
|
||||||
|
print '<input type="submit" name="bt_save" class="butAction" value="'.$langs->trans('Save').'" />';
|
||||||
|
print '</div>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
// End of page
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
330
htdocs/intracommreport/card.php
Normal file
330
htdocs/intracommreport/card.php
Normal file
@ -0,0 +1,330 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
* Copyright (C) 2019-2020 Open-DSI <support@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/intracommreport/card.php
|
||||||
|
* \ingroup Intracomm report
|
||||||
|
* \brief Page to manage intracomm report export
|
||||||
|
*/
|
||||||
|
require '../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/intracommreport/class/intracommreport.class.php';
|
||||||
|
|
||||||
|
$langs->loadLangs(array("intracommreport"));
|
||||||
|
|
||||||
|
$action = GETPOST('action');
|
||||||
|
$exporttype = GETPOST('exporttype'); // DEB ou DES
|
||||||
|
if (empty($exporttype)) $exporttype = 'deb';
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
$formother = new FormOther($db);
|
||||||
|
$year = GETPOST('year');
|
||||||
|
$month = GETPOST('month');
|
||||||
|
$type_declaration = GETPOST('type');
|
||||||
|
$backtopage=GETPOST('backtopage', 'alpha');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($user->rights->intracommreport->delete && $action == 'confirm_delete' && $confirm == 'yes')
|
||||||
|
{
|
||||||
|
$result=$object->delete($id, $user);
|
||||||
|
if ($result > 0)
|
||||||
|
{
|
||||||
|
if (! empty($backtopage))
|
||||||
|
{
|
||||||
|
header("Location: ".$backtopage);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
header("Location: list.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$errmesg=$object->error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($action == 'add' && $user->rights->intracommreport->write) {
|
||||||
|
$object->label = trim($label);
|
||||||
|
$object->type = trim($type);
|
||||||
|
$object->type_declaration = (int) $statut;
|
||||||
|
$object->subscription = (int) $subscription;
|
||||||
|
|
||||||
|
// Fill array 'array_options' with data from add form
|
||||||
|
$ret = $extrafields->setOptionalsFromPost($extralabels, $object);
|
||||||
|
if ($ret < 0) $error++;
|
||||||
|
|
||||||
|
if (empty($object->label)) {
|
||||||
|
$error++;
|
||||||
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$sql = "SELECT libelle FROM ".MAIN_DB_PREFIX."adherent_type WHERE libelle='".$db->escape($object->label)."'";
|
||||||
|
$result = $db->query($sql);
|
||||||
|
if ($result) {
|
||||||
|
$num = $db->num_rows($result);
|
||||||
|
}
|
||||||
|
if ($num) {
|
||||||
|
$error++;
|
||||||
|
$langs->load("errors");
|
||||||
|
setEventMessages($langs->trans("ErrorLabelAlreadyExists", $login), null, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$id=$object->create($user);
|
||||||
|
if ($id > 0)
|
||||||
|
{
|
||||||
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
|
$action = 'create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$action = 'create';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Creation mode
|
||||||
|
if ($action == 'create')
|
||||||
|
{
|
||||||
|
$title = $langs->trans("IntracommReportTitle");
|
||||||
|
llxHeader("", $title);
|
||||||
|
print load_fiche_titre($langs->trans("IntracommReportTitle"));
|
||||||
|
|
||||||
|
print '<form name="charge" method="post" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="export" />';
|
||||||
|
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
// Label
|
||||||
|
print '<tr><td class="titlefieldcreate">'.$langs->trans("Label").'</td><td><input type="text" class="minwidth200" name="label" autofocus="autofocus"></td></tr>';
|
||||||
|
|
||||||
|
// Declaration
|
||||||
|
$declaration["deb"] = $langs->trans("DEB");
|
||||||
|
$declaration["des"] = $langs->trans("DES");
|
||||||
|
print '<tr><td class="fieldrequired">'.$langs->trans("Declaration")."</td><td>\n";
|
||||||
|
print $form->selectarray("declaration", $declaration, GETPOST('declaration', 'alpha')?GETPOST('declaration', 'alpha'):$object->declaration, 0);
|
||||||
|
print "</td>\n";
|
||||||
|
|
||||||
|
// Analysis period
|
||||||
|
print '<tr>';
|
||||||
|
print '<td class="titlefieldcreate fieldrequired">';
|
||||||
|
print $langs->trans("AnalysisPeriod");
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
print $formother->select_month($month ? date('M') : $month, 'month', 0, 1, 'widthauto valignmiddle ');
|
||||||
|
print $formother->select_year($year ? date('Y') : $year, 'year', 0, 3, 3);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Type of declaration
|
||||||
|
$typeOfDeclaration["introduction"] = $langs->trans("Introduction");
|
||||||
|
$typeOfDeclaration["expedition"] = $langs->trans("Expedition");
|
||||||
|
print '<tr><td class="fieldrequired">'.$langs->trans("TypeOfDeclaration")."</td><td>\n";
|
||||||
|
print $form->selectarray("type_declaration", $typeOfDeclaration, GETPOST('type_declaration', 'alpha')?GETPOST('type_declaration', 'alpha'):$object->type_declaration, 0);
|
||||||
|
print "</td>\n";
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||||
|
print ' <input type="button" class="button" value="' . $langs->trans("Cancel") . '" onClick="javascript:history.go(-1)">';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($id > 0 && $action != 'edit') {
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* View mode */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
$res = $object->fetch($id);
|
||||||
|
if ($res < 0) {
|
||||||
|
dol_print_error($db, $object->error);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Show tabs
|
||||||
|
*/
|
||||||
|
$head = intracommreport_prepare_head($object);
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'general', $langs->trans("IntracommReport"), -1, 'user');
|
||||||
|
|
||||||
|
// Confirm remove report
|
||||||
|
if ($action == 'delete') {
|
||||||
|
$formquestion = array();
|
||||||
|
if ($backtopage) {
|
||||||
|
$formquestion[] = array(
|
||||||
|
'type' => 'hidden',
|
||||||
|
'name' => 'backtopage',
|
||||||
|
'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
print $form->formconfirm("card.php?rowid=" . $id, $langs->trans("DeleteReport"),
|
||||||
|
$langs->trans("ConfirmDeleteReport"), "confirm_delete", $formquestion, 'no', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$linkback = '<a href="' . DOL_URL_ROOT . '/intracommreport/list.php?restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>';
|
||||||
|
|
||||||
|
dol_banner_tab($object, 'rowid', $linkback);
|
||||||
|
|
||||||
|
print '<div class="fichecenter">';
|
||||||
|
print '<div class="fichehalfleft">';
|
||||||
|
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
print '<table class="border tableforfield centpercent">';
|
||||||
|
|
||||||
|
// Type
|
||||||
|
print '<tr><td class="titlefield">' . $langs->trans("Type") . '</td><td class="valeur">' . $object->declaration . "</td></tr>\n";
|
||||||
|
|
||||||
|
// Analysis Period
|
||||||
|
print '<tr><td>' . $langs->trans("AnalysisPeriod") . '</td><td class="valeur">' . $object->period . '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
// Type of Declaration
|
||||||
|
print '<tr><td>' . $langs->trans("TypeOfDeclaration") . '</td><td class="valeur">' . $object->type_declaration . '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print "</table>\n";
|
||||||
|
|
||||||
|
print "</div></div></div>\n";
|
||||||
|
print '<div style="clear:both"></div>';
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
switch($action) {
|
||||||
|
case 'generateXML':
|
||||||
|
$obj = new TDebProdouane($PDOdb);
|
||||||
|
$obj->load($PDOdb, GETPOST('id_declaration'));
|
||||||
|
$obj->generateXMLFile();
|
||||||
|
break;
|
||||||
|
case 'list':
|
||||||
|
_liste($exporttype);
|
||||||
|
break;
|
||||||
|
case 'export':
|
||||||
|
if ($exporttype == 'deb') _export_xml_deb($type_declaration, $year, str_pad($month, 2, 0, STR_PAD_LEFT));
|
||||||
|
else _export_xml_des($type_declaration, $year, str_pad($month, 2, 0, STR_PAD_LEFT));
|
||||||
|
default:
|
||||||
|
if ($exporttype == 'deb') _print_form_deb();
|
||||||
|
else _print_form_des();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _print_form_des()
|
||||||
|
{
|
||||||
|
global $langs, $formother, $year, $month, $type_declaration;
|
||||||
|
|
||||||
|
$title = $langs->trans("IntracommReportDESTitle");
|
||||||
|
llxHeader("", $title);
|
||||||
|
print load_fiche_titre($langs->trans("IntracommReportDESTitle"));
|
||||||
|
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER['PHP_SELF'].'" name="save" method="POST">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="export" />';
|
||||||
|
print '<input type="hidden" name="exporttype" value="des" />';
|
||||||
|
print '<input type="hidden" name="type" value="expedition" />'; // Permet d'utiliser le bon select de la requête sql
|
||||||
|
|
||||||
|
print '<table width="100%" class="noborder">';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre"><td colspan="2">';
|
||||||
|
print 'Paramètres de l\'export';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr>';
|
||||||
|
print '<td>Période d\'analyse</td>';
|
||||||
|
print '<td>';
|
||||||
|
$TabMonth = array();
|
||||||
|
for($i=1;$i<=12;$i++) $TabMonth[$i] = $langs->trans('Month'.str_pad($i, 2, 0, STR_PAD_LEFT));
|
||||||
|
//print $ATMform->combo('','month', $TabMonth, empty($month) ? date('m') : $month);
|
||||||
|
print $formother->selectyear(empty($year) ? date('Y') : $year,'year',0, 20, 5);
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
print '<input class="butAction" type="submit" value="Exporter XML" />';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
|
||||||
|
function _export_xml_deb($type_declaration, $period_year, $period_month) {
|
||||||
|
|
||||||
|
global $db, $conf;
|
||||||
|
|
||||||
|
$obj = new TDebProdouane($db);
|
||||||
|
$obj->entity = $conf->entity;
|
||||||
|
$obj->mode = 'O';
|
||||||
|
$obj->periode = $period_year.'-'.$period_month;
|
||||||
|
$obj->type_declaration = $type_declaration;
|
||||||
|
$obj->numero_declaration = $obj->getNextNumeroDeclaration();
|
||||||
|
$obj->content_xml = $obj->getXML('O', $type_declaration, $period_year.'-'.$period_month);
|
||||||
|
if(empty($obj->errors)) {
|
||||||
|
$obj->save($PDOdb);
|
||||||
|
$obj->generateXMLFile();
|
||||||
|
}
|
||||||
|
else setEventMessage($obj->errors, 'warnings');
|
||||||
|
}
|
||||||
|
|
||||||
|
function _export_xml_des($type_declaration, $period_year, $period_month) {
|
||||||
|
|
||||||
|
global $PDOdb, $conf;
|
||||||
|
|
||||||
|
$obj = new TDebProdouane($PDOdb);
|
||||||
|
$obj->entity = $conf->entity;
|
||||||
|
$obj->periode = $period_year.'-'.$period_month;
|
||||||
|
$obj->type_declaration = $type_declaration;
|
||||||
|
$obj->exporttype = 'des';
|
||||||
|
$obj->numero_declaration = $obj->getNextNumeroDeclaration();
|
||||||
|
$obj->content_xml = $obj->getXMLDes($period_year, $period_month, $type_declaration);
|
||||||
|
if(empty($obj->errors)) {
|
||||||
|
$obj->save($PDOdb);
|
||||||
|
$obj->generateXMLFile();
|
||||||
|
}
|
||||||
|
else setEventMessage($obj->errors, 'warnings');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// End of page
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
0
htdocs/intracommreport/class/index.html
Normal file
0
htdocs/intracommreport/class/index.html
Normal file
423
htdocs/intracommreport/class/intracommreport.class.php
Normal file
423
htdocs/intracommreport/class/intracommreport.class.php
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
* Copyright (C) 2019-2020 Open-DSI <support@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/intracommreport/class/intracommreport.class.php
|
||||||
|
* \ingroup Intracomm report
|
||||||
|
* \brief File of class to manage intracomm report
|
||||||
|
*/
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to manage intracomm report
|
||||||
|
*/
|
||||||
|
class IntracommReport extends CommonObject
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string ID to identify managed object
|
||||||
|
*/
|
||||||
|
public $element='intracommreport';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Name of table without prefix where object is stored
|
||||||
|
*/
|
||||||
|
public $table_element='intracommreport';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int Field with ID of parent key if this field has a parent
|
||||||
|
*/
|
||||||
|
public $fk_element='fk_intracommreport';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
public $ismultientitymanaged = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DEB - Product
|
||||||
|
*/
|
||||||
|
const TYPE_DEB = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DES - Service
|
||||||
|
*/
|
||||||
|
const TYPE_DES = 1;
|
||||||
|
|
||||||
|
static $type = array(
|
||||||
|
'introduction'=>'Introduction'
|
||||||
|
,'expedition'=>'Expédition'
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handle
|
||||||
|
*/
|
||||||
|
public function __construct(DoliDB $db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
$this->exporttype = 'deb';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate XML file
|
||||||
|
*
|
||||||
|
* @param int $mode O for create, R for regenerate (Look always 0 ment toujours 0 within the framework of XML exchanges according to documentation)
|
||||||
|
* @param string $type Declaration type by default - introduction or expedition (always 'expedition' for Des)
|
||||||
|
* @param string $period_reference Period of reference
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function getXML($mode = 'O', $type = 'introduction', $period_reference = '')
|
||||||
|
{
|
||||||
|
|
||||||
|
global $conf, $mysoc;
|
||||||
|
|
||||||
|
/**************Construction de quelques variables********************/
|
||||||
|
$party_id = substr(strtr($mysoc->tva_intra, array(' '=>'')), 0, 4).$mysoc->idprof2;
|
||||||
|
$declarant = substr($mysoc->managers, 0, 14);
|
||||||
|
$id_declaration = self::getNumeroDeclaration($this->numero_declaration);
|
||||||
|
/********************************************************************/
|
||||||
|
|
||||||
|
/**************Construction du fichier XML***************************/
|
||||||
|
$e = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" standalone="yes"?><INSTAT></INSTAT>');
|
||||||
|
|
||||||
|
$enveloppe = $e->addChild('Envelope');
|
||||||
|
$enveloppe->addChild('envelopeId', $conf->global->INTRACOMMREPORT_NUM_AGREMENT);
|
||||||
|
$date_time = $enveloppe->addChild('DateTime');
|
||||||
|
$date_time->addChild('date', date('Y-m-d'));
|
||||||
|
$date_time->addChild('time', date('H:i:s'));
|
||||||
|
$party = $enveloppe->addChild('Party');
|
||||||
|
$party->addAttribute('partType', $conf->global->INTRACOMMREPORT_TYPE_ACTEUR);
|
||||||
|
$party->addAttribute('partyRole', $conf->global->INTRACOMMREPORT_ROLE_ACTEUR);
|
||||||
|
$party->addChild('partyId', $party_id);
|
||||||
|
$party->addChild('partyName', $declarant);
|
||||||
|
$enveloppe->addChild('softwareUsed', 'Dolibarr');
|
||||||
|
$declaration = $enveloppe->addChild('Declaration');
|
||||||
|
$declaration->addChild('declarationId', $id_declaration);
|
||||||
|
$declaration->addChild('referencePeriod', $period_reference);
|
||||||
|
if ($conf->global->INTRACOMMREPORT_TYPE_ACTEUR === 'PSI') $psiId = $party_id;
|
||||||
|
else $psiId = 'NA';
|
||||||
|
$declaration->addChild('PSIId', $psiId);
|
||||||
|
$function = $declaration->addChild('Function');
|
||||||
|
$functionCode = $function->addChild('functionCode', $mode);
|
||||||
|
$declaration->addChild('declarationTypeCode', $conf->global->{'INTRACOMMREPORT_NIV_OBLIGATION_'.strtoupper($type)});
|
||||||
|
$declaration->addChild('flowCode', ($type == 'introduction' ? 'A' : 'D'));
|
||||||
|
$declaration->addChild('currencyCode', $conf->global->MAIN_MONNAIE);
|
||||||
|
/********************************************************************/
|
||||||
|
|
||||||
|
/**************Ajout des lignes de factures**************************/
|
||||||
|
$res = self::addItemsFact($declaration, $type, $period_reference);
|
||||||
|
/********************************************************************/
|
||||||
|
|
||||||
|
$this->errors = array_unique($this->errors);
|
||||||
|
|
||||||
|
if (!empty($res)) return $e->asXML();
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate XMLDes file
|
||||||
|
*
|
||||||
|
* @param int $period_year Year of declaration
|
||||||
|
* @param int $period_month Month of declaration
|
||||||
|
* @param string $type_declaration Declaration type by default - introduction or expedition (always 'expedition' for Des)
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function getXMLDes($period_year, $period_month, $type_declaration = 'expedition')
|
||||||
|
{
|
||||||
|
global $mysoc;
|
||||||
|
|
||||||
|
$e = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?><fichier_des></fichier_des>');
|
||||||
|
|
||||||
|
$declaration_des = $e->addChild('declaration_des');
|
||||||
|
$declaration_des->addChild('num_des', self::getDeclarationNumber($this->numero_declaration));
|
||||||
|
$declaration_des->addChild('num_tvaFr', $mysoc->tva_intra); // /^FR[a-Z0-9]{2}[0-9]{9}$/ // Doit faire 13 caractères
|
||||||
|
$declaration_des->addChild('mois_des', $period_month);
|
||||||
|
$declaration_des->addChild('an_des', $period_year);
|
||||||
|
|
||||||
|
/**************Ajout des lignes de factures**************************/
|
||||||
|
$res = self::addItemsFact($declaration_des, $type_declaration, $period_year.'-'.$period_month, 'des');
|
||||||
|
/********************************************************************/
|
||||||
|
|
||||||
|
$this->errors = array_unique($this->errors);
|
||||||
|
|
||||||
|
if (!empty($res)) return $e->asXML();
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add line from invoice
|
||||||
|
*
|
||||||
|
* @param int $declaration Reference declaration
|
||||||
|
* @param string $type Declaration type by default - introduction or expedition (always 'expedition' for Des)
|
||||||
|
* @param int $period_reference Reference period
|
||||||
|
* @param string $exporttype deb=DEB, des=DES
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function addItemsFact(&$declaration, $type, $period_reference, $exporttype = 'deb')
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php';
|
||||||
|
|
||||||
|
$sql = $this->getSQLFactLines($type, $period_reference, $exporttype);
|
||||||
|
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
|
if ($resql) {
|
||||||
|
$i=1;
|
||||||
|
|
||||||
|
if (empty($resql->num_rows)) {
|
||||||
|
$this->errors[] = 'No data for this period';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exporttype == 'deb' && $conf->global->INTRACOMMREPORT_CATEG_FRAISDEPORT > 0) {
|
||||||
|
$categ_fraisdeport = new Categorie();
|
||||||
|
$categ_fraisdeport->fetch($conf->global->INTRACOMMREPORT_CATEG_FRAISDEPORT);
|
||||||
|
$TLinesFraisDePort = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($res = $this->db->fetch_object($resql)) {
|
||||||
|
if ($exporttype == 'des')
|
||||||
|
{
|
||||||
|
$this->addItemXMlDes($declaration, $res, $i);
|
||||||
|
} else {
|
||||||
|
if (empty($res->fk_pays)) {
|
||||||
|
// We don't stop the loop because we want to know all the third parties who don't have an informed country
|
||||||
|
$this->errors[] = 'Country not filled in for the third party <a href="'.dol_buildpath('/societe/soc.php', 1).'?socid='.$res->id_client.'">'.$res->nom.'</a>';
|
||||||
|
} else {
|
||||||
|
if ($conf->global->INTRACOMMREPORT_CATEG_FRAISDEPORT > 0 && $categ_fraisdeport->containsObject('product', $res->id_prod)) {
|
||||||
|
$TLinesFraisDePort[] = $res;
|
||||||
|
} else $this->addItemXMl($declaration, $res, $i, '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($TLinesFraisDePort)) $this->addItemFraisDePort($declaration, $TLinesFraisDePort, $type, $categ_fraisdeport, $i);
|
||||||
|
|
||||||
|
if (count($this->errors) > 0) return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add invoice line
|
||||||
|
*
|
||||||
|
* @param string $type Declaration type by default - introduction or expedition (always 'expedition' for Des)
|
||||||
|
* @param int $period_reference Reference declaration
|
||||||
|
* @param string $exporttype deb=DEB, des=DES
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
public function getSQLFactLines($type, $period_reference, $exporttype = 'deb')
|
||||||
|
{
|
||||||
|
global $mysoc, $conf;
|
||||||
|
|
||||||
|
if ($type=='expedition' || $exporttype=='des') {
|
||||||
|
$sql = 'SELECT f.facnumber, f.total as total_ht';
|
||||||
|
$table = 'facture';
|
||||||
|
$table_extraf = 'facture_extrafields';
|
||||||
|
$tabledet = 'facturedet';
|
||||||
|
$field_link = 'fk_facture';
|
||||||
|
}
|
||||||
|
else { // Introduction
|
||||||
|
$sql = 'SELECT f.ref_supplier as facnumber, f.total_ht';
|
||||||
|
$table = 'facture_fourn';
|
||||||
|
$table_extraf = 'facture_fourn_extrafields';
|
||||||
|
$tabledet = 'facture_fourn_det';
|
||||||
|
$field_link = 'fk_facture_fourn';
|
||||||
|
}
|
||||||
|
$sql.= ', l.fk_product, l.qty
|
||||||
|
, p.weight, p.rowid as id_prod, p.customcode
|
||||||
|
, s.rowid as id_client, s.nom, s.zip, s.fk_pays, s.tva_intra
|
||||||
|
, c.code
|
||||||
|
, ext.mode_transport
|
||||||
|
FROM '.MAIN_DB_PREFIX.$tabledet.' l
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = l.'.$field_link.')
|
||||||
|
LEFT JOIN '.MAIN_DB_PREFIX.$table_extraf.' ext ON (ext.fk_object = f.rowid)
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = l.fk_product)
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.'societe s ON (s.rowid = f.fk_soc)
|
||||||
|
LEFT JOIN '.MAIN_DB_PREFIX.'c_country c ON (c.rowid = s.fk_pays)
|
||||||
|
WHERE f.fk_statut > 0
|
||||||
|
AND l.product_type = '.($exporttype == 'des' ? 1 : 0).'
|
||||||
|
AND f.entity = '.$conf->entity.'
|
||||||
|
AND (s.fk_pays <> '.$mysoc->country_id.' OR s.fk_pays IS NULL)
|
||||||
|
AND f.datef BETWEEN "'.$period_reference.'-01" AND "'.$period_reference.'-'.date('t').'"';
|
||||||
|
|
||||||
|
return $sql;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add item for DEB
|
||||||
|
*
|
||||||
|
* @param int $declaration Reference declaration
|
||||||
|
* @param int $res Result of request SQL
|
||||||
|
* @param int $i Line Id
|
||||||
|
* @param string $code_douane_spe Specific customs authorities code
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addItemXMl(&$declaration, &$res, $i, $code_douane_spe = '')
|
||||||
|
{
|
||||||
|
$item = $declaration->addChild('Item');
|
||||||
|
$item->addChild('ItemNumber', $i);
|
||||||
|
$cn8 = $item->addChild('CN8');
|
||||||
|
if (empty($code_douane_spe)) $code_douane = $res->customcode;
|
||||||
|
else $code_douane = $code_douane_spe;
|
||||||
|
$cn8->addChild('CN8Code', $code_douane);
|
||||||
|
if (!empty($res->tva_intra)) $item->addChild('partnerId', $res->tva_intra);
|
||||||
|
$item->addChild('MSConsDestCode', $res->code); // code iso pays client
|
||||||
|
$item->addChild('netMass', $res->weight * $res->qty); // Poids du produit
|
||||||
|
$item->addChild('quantityInSU', $res->qty); // Quantité de produit dans la ligne
|
||||||
|
$item->addChild('invoicedAmount', round($res->total_ht)); // Montant total ht de la facture (entier attendu)
|
||||||
|
$item->addChild('invoicedNumber', $res->facnumber); // Numéro facture
|
||||||
|
$item->addChild('statisticalProcedureCode', '11');
|
||||||
|
$nature_of_transaction = $item->addChild('NatureOfTransaction');
|
||||||
|
$nature_of_transaction->addChild('natureOfTransactionACode', 1);
|
||||||
|
$nature_of_transaction->addChild('natureOfTransactionBCode', 1);
|
||||||
|
$item->addChild('modeOfTransportCode', $res->mode_transport);
|
||||||
|
$item->addChild('regionCode', substr($res->zip, 0, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add item for DES
|
||||||
|
*
|
||||||
|
* @param int $declaration Reference declaration
|
||||||
|
* @param int $res Result of request SQL
|
||||||
|
* @param int $i Line Id
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addItemXMlDes($declaration, &$res, $i)
|
||||||
|
{
|
||||||
|
$item = $declaration->addChild('ligne_des');
|
||||||
|
$item->addChild('numlin_des', $i);
|
||||||
|
$item->addChild('valeur', round($res->total_ht)); // Total amount excl. tax of the invoice (whole amount expected)
|
||||||
|
$item->addChild('partner_des', $res->tva_intra); // Represents the foreign customer's VAT number
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function adds an item by retrieving the customs code of the product with the highest amount in the invoice
|
||||||
|
*
|
||||||
|
* @param int $declaration Reference declaration
|
||||||
|
* @param int $TLinesFraisDePort Data of shipping costs line
|
||||||
|
* @param string $type Declaration type by default - introduction or expedition (always 'expedition' for Des)
|
||||||
|
* @param int $categ_fraisdeport Id of category of shipping costs
|
||||||
|
* @param int $i Line Id
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function addItemFraisDePort(&$declaration, &$TLinesFraisDePort, $type, &$categ_fraisdeport, $i)
|
||||||
|
{
|
||||||
|
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
if ($type=='expedition') {
|
||||||
|
$table = 'facture';
|
||||||
|
$tabledet = 'facturedet';
|
||||||
|
$field_link = 'fk_facture';
|
||||||
|
$more_sql = 'f.facnumber';
|
||||||
|
} else { // Introduction
|
||||||
|
$table = 'facture_fourn';
|
||||||
|
$tabledet = 'facture_fourn_det';
|
||||||
|
$field_link = 'fk_facture_fourn';
|
||||||
|
$more_sql = 'f.ref_supplier';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($TLinesFraisDePort as $res) {
|
||||||
|
$sql = 'SELECT p.customcode
|
||||||
|
FROM '.MAIN_DB_PREFIX.$tabledet.' d
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = d.'.$field_link.')
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = d.fk_product)
|
||||||
|
WHERE d.fk_product IS NOT NULL
|
||||||
|
AND f.entity = '.$conf->entity.'
|
||||||
|
AND '.$more_sql.' = "'.$res->facnumber.'"
|
||||||
|
AND d.total_ht =
|
||||||
|
(
|
||||||
|
SELECT MAX(d.total_ht)
|
||||||
|
FROM '.MAIN_DB_PREFIX.$tabledet.' d
|
||||||
|
INNER JOIN '.MAIN_DB_PREFIX.$table.' f ON (f.rowid = d.'.$field_link.')
|
||||||
|
WHERE d.fk_product IS NOT NULL
|
||||||
|
AND '.$more_sql.' = "'.$res->facnumber.'"
|
||||||
|
AND d.fk_product NOT IN
|
||||||
|
(
|
||||||
|
SELECT fk_product
|
||||||
|
FROM '.MAIN_DB_PREFIX.'categorie_product
|
||||||
|
WHERE fk_categorie = '.$categ_fraisdeport->id.'
|
||||||
|
)
|
||||||
|
)';
|
||||||
|
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
$ress = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
|
$this->addItemXMl($declaration, $res, $i, $ress->customcode);
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return next reference of declaration not already used (or last reference)
|
||||||
|
*
|
||||||
|
* @return string free ref or last ref
|
||||||
|
*/
|
||||||
|
public function getNextDeclarationNumber()
|
||||||
|
{
|
||||||
|
$resql = $this->db->query('SELECT MAX(numero_declaration) as max_numero_declaration FROM '.$this->get_table().' WHERE exporttype="'.$this->exporttype.'"');
|
||||||
|
if ($resql) $res = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
|
return ($res->max_numero_declaration + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify declaration number. Positive integer of a maximum of 6 characters recommended by the documentation
|
||||||
|
*
|
||||||
|
* @param int $number Number to verify / convert
|
||||||
|
* @return int Number
|
||||||
|
*/
|
||||||
|
public static function getDeclarationNumber($number)
|
||||||
|
{
|
||||||
|
return str_pad($number, 6, 0, STR_PAD_LEFT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate XML file
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function generateXMLFile()
|
||||||
|
{
|
||||||
|
|
||||||
|
$name = $this->periode.'.xml';
|
||||||
|
$fname = sys_get_temp_dir().'/'.$name;
|
||||||
|
$f = fopen($fname, 'w+');
|
||||||
|
fwrite($f, $this->content_xml);
|
||||||
|
fclose($f);
|
||||||
|
|
||||||
|
header('Content-Description: File Transfer');
|
||||||
|
header('Content-Type: application/xml');
|
||||||
|
header('Content-Disposition: attachment; filename="'.$name.'"');
|
||||||
|
header('Expires: 0');
|
||||||
|
header('Cache-Control: must-revalidate');
|
||||||
|
header('Pragma: public');
|
||||||
|
header('Content-Length: ' . filesize($fname));
|
||||||
|
readfile($fname);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
0
htdocs/intracommreport/index.html
Normal file
0
htdocs/intracommreport/index.html
Normal file
492
htdocs/intracommreport/list.php
Normal file
492
htdocs/intracommreport/list.php
Normal file
@ -0,0 +1,492 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 ATM Consulting <support@atm-consulting.fr>
|
||||||
|
* Copyright (C) 2019-2020 Open-DSI <support@open-dsi.fr>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/intracommreport/list.php
|
||||||
|
* \ingroup Intracomm Report
|
||||||
|
* \brief Page to list intracomm report
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/intracommreport/class/intracommreport.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array('intracommreport'));
|
||||||
|
|
||||||
|
$action=GETPOST('action', 'alpha');
|
||||||
|
$massaction=GETPOST('massaction', 'alpha');
|
||||||
|
$show_files=GETPOST('show_files', 'int');
|
||||||
|
$confirm=GETPOST('confirm', 'alpha');
|
||||||
|
$toselect = GETPOST('toselect', 'array');
|
||||||
|
|
||||||
|
$sall=trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml'));
|
||||||
|
$search_ref=GETPOST("search_ref", 'alpha');
|
||||||
|
$search_type = GETPOST("search_type", 'int');
|
||||||
|
$fourn_id = GETPOST("fourn_id", 'int');
|
||||||
|
$catid = GETPOST('catid', 'int');
|
||||||
|
$optioncss = GETPOST('optioncss', 'alpha');
|
||||||
|
$type=GETPOST("type", "int");
|
||||||
|
|
||||||
|
$diroutputmassaction=$conf->product->dir_output . '/temp/massgeneration/'.$user->id;
|
||||||
|
|
||||||
|
$limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit;
|
||||||
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
|
$page = (GETPOST("page", 'int')?GETPOST("page", 'int'):0);
|
||||||
|
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
||||||
|
$offset = $limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
if (! $sortfield) $sortfield="i.ref";
|
||||||
|
if (! $sortorder) $sortorder="ASC";
|
||||||
|
|
||||||
|
// Initialize context for list
|
||||||
|
$contextpage=GETPOST('contextpage', 'aZ')?GETPOST('contextpage', 'aZ'):'intracommreportlist';
|
||||||
|
if ((string) $type == '1') { $contextpage='DESlist'; if ($search_type=='') $search_type='1'; }
|
||||||
|
if ((string) $type == '0') { $contextpage='DEBlist'; if ($search_type=='') $search_type='0'; }
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array of hooks
|
||||||
|
$object=new IntracommReport($db);
|
||||||
|
$hookmanager->initHooks(array('intracommreportlist'));
|
||||||
|
$extrafields = new ExtraFields($db);
|
||||||
|
$form=new Form($db);
|
||||||
|
|
||||||
|
/*
|
||||||
|
// fetch optionals attributes and labels
|
||||||
|
$extralabels = $extrafields->fetch_name_optionals_label('intracommreport');
|
||||||
|
$search_array_options=$extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (empty($action)) $action='list';
|
||||||
|
|
||||||
|
// Get object canvas (By default, this is not defined, so standard usage of dolibarr)
|
||||||
|
$canvas=GETPOST("canvas");
|
||||||
|
$objcanvas=null;
|
||||||
|
if (! empty($canvas))
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/canvas.class.php';
|
||||||
|
$objcanvas = new Canvas($db, $action);
|
||||||
|
$objcanvas->getCanvas('product', 'list', $canvas);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
/*
|
||||||
|
if ($search_type=='0') $result=restrictedArea($user, 'produit', '', '', '', '', '', $objcanvas);
|
||||||
|
elseif ($search_type=='1') $result=restrictedArea($user, 'service', '', '', '', '', '', $objcanvas);
|
||||||
|
else $result=restrictedArea($user, 'produit|service', '', '', '', '', '', $objcanvas);
|
||||||
|
*/
|
||||||
|
|
||||||
|
// List of fields to search into when doing a "search in all"
|
||||||
|
$fieldstosearchall = array(
|
||||||
|
'i.ref'=>"Ref",
|
||||||
|
'pfi.ref_fourn'=>"RefSupplier",
|
||||||
|
'i.label'=>"ProductLabel",
|
||||||
|
'i.description'=>"Description",
|
||||||
|
"i.note"=>"Note",
|
||||||
|
);
|
||||||
|
|
||||||
|
$isInEEC=isInEEC($mysoc);
|
||||||
|
|
||||||
|
// Definition of fields for lists
|
||||||
|
$arrayfields=array(
|
||||||
|
'i.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
|
||||||
|
'i.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
||||||
|
'i.fk_product_type'=>array('label'=>$langs->trans("Type"), 'checked'=>0, 'enabled'=>(! empty($conf->produit->enabled) && ! empty($conf->service->enabled))),
|
||||||
|
);
|
||||||
|
/*
|
||||||
|
// Extra fields
|
||||||
|
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val)
|
||||||
|
{
|
||||||
|
if (! empty($extrafields->attributes[$object->table_element]['list'][$key]))
|
||||||
|
$arrayfields["ef.".$key]=array('label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
$object->fields = dol_sort_array($object->fields, 'position');
|
||||||
|
$arrayfields = dol_sort_array($arrayfields, 'position');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (GETPOST('cancel', 'alpha')) { $action='list'; $massaction=''; }
|
||||||
|
if (! GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
|
||||||
|
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
|
||||||
|
if (empty($reshook))
|
||||||
|
{
|
||||||
|
// Selection of new fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
|
// Purge search criteria
|
||||||
|
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
|
||||||
|
{
|
||||||
|
$sall="";
|
||||||
|
$search_ref="";
|
||||||
|
$search_label="";
|
||||||
|
//$search_type=''; // There is 2 types of list: a list of product and a list of services. No list with both. So when we clear search criteria, we must keep the filter on type.
|
||||||
|
|
||||||
|
$show_childproducts = '';
|
||||||
|
$search_array_options=array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mass actions
|
||||||
|
$objectclass='Product';
|
||||||
|
if ((string) $search_type == '1') { $objectlabel='Services'; }
|
||||||
|
if ((string) $search_type == '0') { $objectlabel='Products'; }
|
||||||
|
|
||||||
|
$permtoread = $user->rights->produit->lire;
|
||||||
|
$permtodelete = $user->rights->produit->supprimer;
|
||||||
|
$uploaddir = $conf->product->dir_output;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
$formother=new FormOther($db);
|
||||||
|
|
||||||
|
$title=$langs->trans('IntracommReportList'.$type);
|
||||||
|
|
||||||
|
$sql = 'SELECT DISTINCT i.rowid, i.type_declaration, i.type_export, i.period, i.mode, i.entity';
|
||||||
|
/*
|
||||||
|
// Add fields from extrafields
|
||||||
|
if (! empty($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
|
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key.' as options_'.$key : '');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
// Add fields from hooks
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListSelect', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql.=$hookmanager->resPrint;
|
||||||
|
|
||||||
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'intracommreport as i';
|
||||||
|
|
||||||
|
// if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."intracommreport_extrafields as ef on (i.rowid = ef.fk_object)";
|
||||||
|
|
||||||
|
$sql.= ' WHERE i.entity IN ('.getEntity('intracommreport').')';
|
||||||
|
|
||||||
|
if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
|
||||||
|
// if the type is not 1, we show all products (type = 0,2,3)
|
||||||
|
if (dol_strlen($search_type) && $search_type != '-1')
|
||||||
|
{
|
||||||
|
if ($search_type == 1) $sql.= " AND i.type = 1";
|
||||||
|
else $sql.= " AND i.type = 0";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
if ($search_ref) $sql .= natural_search('i.ref', $search_ref);
|
||||||
|
if ($search_label) $sql .= natural_search('i.label', $search_label);
|
||||||
|
if ($search_barcode) $sql .= natural_search('i.barcode', $search_barcode);
|
||||||
|
if (isset($search_tosell) && dol_strlen($search_tosell) > 0 && $search_tosell!=-1) $sql.= " AND i.tosell = ".$db->escape($search_tosell);
|
||||||
|
if (isset($search_tobuy) && dol_strlen($search_tobuy) > 0 && $search_tobuy!=-1) $sql.= " AND i.tobuy = ".$db->escape($search_tobuy);
|
||||||
|
if (dol_strlen($canvas) > 0) $sql.= " AND i.canvas = '".$db->escape($canvas)."'";
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Add where from extra fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php';
|
||||||
|
*/
|
||||||
|
// Add where from hooks
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListWhere', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql.=$hookmanager->resPrint;
|
||||||
|
|
||||||
|
$sql.= " GROUP BY i.rowid";
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Add fields from extrafields
|
||||||
|
if (! empty($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
|
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $val) $sql.=($extrafields->attributes[$object->table_element]['type'][$key] != 'separate' ? ", ef.".$key : '');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Add fields from hooks
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldSelect', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql.=$hookmanager->resPrint;
|
||||||
|
|
||||||
|
$sql.= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
|
$nbtotalofrecords = '';
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
|
{
|
||||||
|
$result = $db->query($sql);
|
||||||
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
|
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
|
{
|
||||||
|
$page = 0;
|
||||||
|
$offset = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql.= $db->plimit($limit + 1, $offset);
|
||||||
|
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
|
$arrayofselected=is_array($toselect)?$toselect:array();
|
||||||
|
|
||||||
|
$helpurl='EN:Module_IntracommReport|FR:Module_ProDouane';
|
||||||
|
llxHeader('', $title, $helpurl, '');
|
||||||
|
|
||||||
|
// Displays product removal confirmation
|
||||||
|
if (GETPOST('delreport')) {
|
||||||
|
setEventMessages($langs->trans("IntracommReportDeleted", GETPOST('delreport')), null, 'mesgs');
|
||||||
|
}
|
||||||
|
|
||||||
|
$param='';
|
||||||
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
|
if ($sall) $param.="&sall=".urlencode($sall);
|
||||||
|
if ($search_ref) $param="&search_ref=".urlencode($search_ref);
|
||||||
|
if ($search_label) $param.="&search_label=".urlencode($search_label);
|
||||||
|
|
||||||
|
// Add $param from extra fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||||
|
|
||||||
|
// List of mass actions available
|
||||||
|
$arrayofmassactions = array(
|
||||||
|
'generate_doc'=>$langs->trans("ReGeneratePDF"),
|
||||||
|
//'builddoc'=>$langs->trans("PDFMerge"),
|
||||||
|
//'presend'=>$langs->trans("SendByMail"),
|
||||||
|
);
|
||||||
|
if ($user->rights->intracommreport->delete) $arrayofmassactions['predelete']="<span class='fa fa-trash paddingrightonly'></span>".$langs->trans("Delete");
|
||||||
|
if (in_array($massaction, array('presend','predelete'))) $arrayofmassactions=array();
|
||||||
|
$massactionbutton=$form->selectMassAction('', $arrayofmassactions);
|
||||||
|
|
||||||
|
$newcardbutton='';
|
||||||
|
if ($user->rights->intracommreport->write)
|
||||||
|
{
|
||||||
|
$newcardbutton.= dolGetButtonTitle($langs->trans("NewDeclaration"), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/intracommreport/card.php?action=create&type='.$type);
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post" name="formulaire">';
|
||||||
|
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
|
print '<input type="hidden" name="action" value="list">';
|
||||||
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
|
print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
if (empty($arrayfields['i.fk_product_type']['checked'])) print '<input type="hidden" name="search_type" value="'.dol_escape_htmltag($search_type).'">';
|
||||||
|
|
||||||
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_products.png', 0, $newcardbutton, '', $limit);
|
||||||
|
|
||||||
|
$topicmail="Information";
|
||||||
|
$modelmail="product";
|
||||||
|
$objecttmp=new IntracommReport($db);
|
||||||
|
$trackid='prod'.$object->id;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
|
||||||
|
|
||||||
|
if ($sall)
|
||||||
|
{
|
||||||
|
foreach ($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
|
||||||
|
print '<div class="divsearchfieldfilter">'.$langs->trans("FilterOnInto", $sall) . join(', ', $fieldstosearchall).'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$parameters=array();
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook)) $moreforfilter.=$hookmanager->resPrint;
|
||||||
|
else $moreforfilter=$hookmanager->resPrint;
|
||||||
|
|
||||||
|
if ($moreforfilter)
|
||||||
|
{
|
||||||
|
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
||||||
|
print $moreforfilter;
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
|
||||||
|
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
|
if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive">';
|
||||||
|
print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
|
||||||
|
|
||||||
|
// Lines with input filters
|
||||||
|
print '<tr class="liste_titre_filter">';
|
||||||
|
if (! empty($arrayfields['i.ref']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre left">';
|
||||||
|
print '<input class="flat" type="text" name="search_ref" size="8" value="'.dol_escape_htmltag($search_ref).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['i.label']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre left">';
|
||||||
|
print '<input class="flat" type="text" name="search_label" size="12" value="'.dol_escape_htmltag($search_label).'">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Type
|
||||||
|
// Type (customer/prospect/supplier)
|
||||||
|
if (!empty($arrayfields['customerorsupplier']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre maxwidthonsmartphone center">';
|
||||||
|
if ($type != '') print '<input type="hidden" name="type" value="'.$type.'">';
|
||||||
|
print $formcompany->selectProspectCustomerType($search_type, 'search_type', 'search_type', 'list');
|
||||||
|
print '</select></td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($arrayfields['i.fk_product_type']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre left">';
|
||||||
|
$array=array('-1'=>' ', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service'));
|
||||||
|
print $form->selectarray('search_type', $array, $search_type);
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Extra fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_input.tpl.php';
|
||||||
|
*/
|
||||||
|
// Fields from hook
|
||||||
|
$parameters=array('arrayfields'=>$arrayfields);
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListOption', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
print $hookmanager->resPrint;
|
||||||
|
// Date creation
|
||||||
|
if (! empty($arrayfields['i.datec']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
// Date modification
|
||||||
|
if (! empty($arrayfields['i.tms']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
print '<td class="liste_titre center maxwidthsearch">';
|
||||||
|
$searchpicto=$form->showFilterButtons();
|
||||||
|
print $searchpicto;
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
if (! empty($arrayfields['i.ref']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['i.ref']['label'], $_SERVER["PHP_SELF"], "i.ref", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['i.label']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['i.label']['label'], $_SERVER["PHP_SELF"], "i.label", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['i.fk_product_type']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['i.fk_product_type']['label'], $_SERVER["PHP_SELF"], "i.fk_product_type", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Extra fields
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
|
||||||
|
*/
|
||||||
|
// Hook fields
|
||||||
|
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
|
||||||
|
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
|
print $hookmanager->resPrint;
|
||||||
|
if (! empty($arrayfields['i.datec']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['i.datec']['label'], $_SERVER["PHP_SELF"], "i.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
|
||||||
|
}
|
||||||
|
if (! empty($arrayfields['i.tms']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['i.tms']['label'], $_SERVER["PHP_SELF"], "i.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
|
||||||
|
}
|
||||||
|
|
||||||
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|
||||||
|
$intracommreport_static = new IntracommReport($db);
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
$totalarray=array();
|
||||||
|
while ($i < min($num, $limit))
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
|
$intracommreport_static->id = $obj->rowid;
|
||||||
|
$intracommreport_static->ref = $obj->ref;
|
||||||
|
$intracommreport_static->ref_fourn = $obj->ref_supplier;
|
||||||
|
$intracommreport_static->label = $obj->label;
|
||||||
|
$intracommreport_static->type = $obj->fk_product_type;
|
||||||
|
$intracommreport_static->status_buy = $obj->tobuy;
|
||||||
|
$intracommreport_static->status = $obj->tosell;
|
||||||
|
$intracommreport_static->status_batch = $obj->tobatch;
|
||||||
|
$intracommreport_static->entity = $obj->entity;
|
||||||
|
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
if (! empty($arrayfields['i.ref']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="tdoverflowmax200">';
|
||||||
|
print $intracommreport_static->getNomUrl(1);
|
||||||
|
print "</td>\n";
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
// Label
|
||||||
|
if (! empty($arrayfields['i.label']['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="tdoverflowmax200">'.dol_trunc($obj->label, 80).'</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
// Type
|
||||||
|
if (! empty($arrayfields['i.fk_product_type']['checked']))
|
||||||
|
{
|
||||||
|
print '<td>'.$obj->fk_product_type.'</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
// Action
|
||||||
|
print '<td class="nowrap center">';
|
||||||
|
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
|
||||||
|
{
|
||||||
|
$selected=0;
|
||||||
|
if (in_array($obj->rowid, $arrayofselected)) $selected=1;
|
||||||
|
print '<input id="cb'.$obj->rowid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.'"'.($selected?' checked="checked"':'').'>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->free($resql);
|
||||||
|
|
||||||
|
print "</table>";
|
||||||
|
print "</div>";
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
// End of page
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
@ -978,6 +978,9 @@ Permission63003=Delete resources
|
|||||||
Permission63004=Link resources to agenda events
|
Permission63004=Link resources to agenda events
|
||||||
Permission64001=Allow direct printing
|
Permission64001=Allow direct printing
|
||||||
Permission67000=Allow printing of receipts
|
Permission67000=Allow printing of receipts
|
||||||
|
Permission68001=Read intracomm report
|
||||||
|
Permission68002=Create/modify intracomm report
|
||||||
|
Permission68004=Delete intracomm report
|
||||||
Permission941601=Read receipts
|
Permission941601=Read receipts
|
||||||
Permission941602=Create and modify receipts
|
Permission941602=Create and modify receipts
|
||||||
Permission941603=Validate receipts
|
Permission941603=Validate receipts
|
||||||
@ -1023,6 +1026,7 @@ DictionaryHolidayTypes=Types of leave
|
|||||||
DictionaryOpportunityStatus=Lead status for project/lead
|
DictionaryOpportunityStatus=Lead status for project/lead
|
||||||
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
||||||
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
||||||
|
DictionaryTransportMode=Intracomm report - Transport mode
|
||||||
SetupSaved=Setup saved
|
SetupSaved=Setup saved
|
||||||
SetupNotSaved=Setup not saved
|
SetupNotSaved=Setup not saved
|
||||||
BackToModuleList=Back to Module list
|
BackToModuleList=Back to Module list
|
||||||
|
|||||||
40
htdocs/langs/en_US/intracommreport.lang
Normal file
40
htdocs/langs/en_US/intracommreport.lang
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Module68000Name = Intracomm report
|
||||||
|
Module68000Desc = Intracomm report management (Support for French DEB/DES format)
|
||||||
|
IntracommReportSetup = Intracommreport module setup
|
||||||
|
IntracommReportAbout = About intracommreport
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement)
|
||||||
|
INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur
|
||||||
|
INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions
|
||||||
|
INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port"
|
||||||
|
|
||||||
|
INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant
|
||||||
|
|
||||||
|
# Menu
|
||||||
|
MenuIntracommReport=Intracomm report
|
||||||
|
MenuIntracommReportNew=New declaration
|
||||||
|
MenuIntracommReportList=List
|
||||||
|
|
||||||
|
# View
|
||||||
|
NewDeclaration=New declaration
|
||||||
|
Declaration=Declaration
|
||||||
|
AnalysisPeriod=Analysis period
|
||||||
|
TypeOfDeclaration=Type of declaration
|
||||||
|
DEB=Goods exchange declaration (DEB)
|
||||||
|
DES=Services exchange declaration (DES)
|
||||||
|
|
||||||
|
# Export page
|
||||||
|
IntracommReportTitle=Preparation of an XML file in ProDouane format
|
||||||
|
|
||||||
|
# List
|
||||||
|
IntracommReportList=List of generated declarations
|
||||||
|
IntracommReportNumber=Numéro déclaration
|
||||||
|
IntracommReportPeriod=Période d'analyse
|
||||||
|
IntracommReportTypeDeclaration=Type de déclaration
|
||||||
|
IntracommReportDownload=Télécharger fichier XML
|
||||||
|
|
||||||
|
# Invoice
|
||||||
|
IntracommReportTransportMode=Transport mode
|
||||||
@ -151,7 +151,7 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
header("Location: index.php");
|
header("Location: list.php");
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -464,6 +464,7 @@ class Societe extends CommonObject
|
|||||||
public $remise_supplier_percent;
|
public $remise_supplier_percent;
|
||||||
public $mode_reglement_supplier_id;
|
public $mode_reglement_supplier_id;
|
||||||
public $cond_reglement_supplier_id;
|
public $cond_reglement_supplier_id;
|
||||||
|
public $transport_mode_supplier_id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int ID
|
* @var int ID
|
||||||
@ -1307,8 +1308,10 @@ class Societe extends CommonObject
|
|||||||
|
|
||||||
$sql .= ",mode_reglement = ".(!empty($this->mode_reglement_id) ? "'".$this->db->escape($this->mode_reglement_id)."'" : "null");
|
$sql .= ",mode_reglement = ".(!empty($this->mode_reglement_id) ? "'".$this->db->escape($this->mode_reglement_id)."'" : "null");
|
||||||
$sql .= ",cond_reglement = ".(!empty($this->cond_reglement_id) ? "'".$this->db->escape($this->cond_reglement_id)."'" : "null");
|
$sql .= ",cond_reglement = ".(!empty($this->cond_reglement_id) ? "'".$this->db->escape($this->cond_reglement_id)."'" : "null");
|
||||||
$sql .= ",mode_reglement_supplier = ".(!empty($this->mode_reglement_supplier_id) ? "'".$this->db->escape($this->mode_reglement_supplier_id)."'" : "null");
|
$sql .= ",transport_mode = ".(! empty($this->transport_mode_id) ? "'".$this->db->escape($this->transport_mode_id)."'" : "null");
|
||||||
|
$sql .= ",mode_reglement_supplier = ".(!empty($this->mode_reglement_supplier_id) ? "'".$this->db->escape($this->mode_reglement_supplier_id)."'" : "null");
|
||||||
$sql .= ",cond_reglement_supplier = ".(!empty($this->cond_reglement_supplier_id) ? "'".$this->db->escape($this->cond_reglement_supplier_id)."'" : "null");
|
$sql .= ",cond_reglement_supplier = ".(!empty($this->cond_reglement_supplier_id) ? "'".$this->db->escape($this->cond_reglement_supplier_id)."'" : "null");
|
||||||
|
$sql .= ",transport_mode_supplier = ".(! empty($this->transport_mode_supplier_id)? "'".$this->db->escape($this->transport_mode_supplier_id)."'" : "null");
|
||||||
$sql .= ",fk_shipping_method = ".(!empty($this->shipping_method_id) ? "'".$this->db->escape($this->shipping_method_id)."'" : "null");
|
$sql .= ",fk_shipping_method = ".(!empty($this->shipping_method_id) ? "'".$this->db->escape($this->shipping_method_id)."'" : "null");
|
||||||
|
|
||||||
$sql .= ",client = ".(!empty($this->client) ? $this->client : 0);
|
$sql .= ",client = ".(!empty($this->client) ? $this->client : 0);
|
||||||
@ -1646,13 +1649,15 @@ class Societe extends CommonObject
|
|||||||
$this->remise_supplier_percent = $obj->remise_supplier;
|
$this->remise_supplier_percent = $obj->remise_supplier;
|
||||||
$this->mode_reglement_id = $obj->mode_reglement;
|
$this->mode_reglement_id = $obj->mode_reglement;
|
||||||
$this->cond_reglement_id = $obj->cond_reglement;
|
$this->cond_reglement_id = $obj->cond_reglement;
|
||||||
|
$this->transport_mode_id = $obj->transport_mode;
|
||||||
$this->mode_reglement_supplier_id = $obj->mode_reglement_supplier;
|
$this->mode_reglement_supplier_id = $obj->mode_reglement_supplier;
|
||||||
$this->cond_reglement_supplier_id = $obj->cond_reglement_supplier;
|
$this->cond_reglement_supplier_id = $obj->cond_reglement_supplier;
|
||||||
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
$this->transport_mode_supplier_id = $obj->transport_mode_supplier;
|
||||||
$this->fk_account = $obj->fk_account;
|
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
||||||
|
$this->fk_account = $obj->fk_account;
|
||||||
|
|
||||||
$this->client = $obj->client;
|
$this->client = $obj->client;
|
||||||
$this->fournisseur = $obj->fournisseur;
|
$this->fournisseur = $obj->fournisseur;
|
||||||
|
|
||||||
$this->note = $obj->note_private; // TODO Deprecated for backward comtability
|
$this->note = $obj->note_private; // TODO Deprecated for backward comtability
|
||||||
$this->note_private = $obj->note_private;
|
$this->note_private = $obj->note_private;
|
||||||
|
|||||||
BIN
htdocs/theme/eldy/img/object_intracommreport.png
Normal file
BIN
htdocs/theme/eldy/img/object_intracommreport.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
htdocs/theme/md/img/object_intracommreport.png
Normal file
BIN
htdocs/theme/md/img/object_intracommreport.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Loading…
Reference in New Issue
Block a user