47 $this->numero = 94160;
49 $this->family =
"srm";
50 $this->module_position =
'40';
52 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
56 $this->version =
'dolibarr';
58 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
59 $this->picto =
"dollyrevert";
64 "/reception/receipt/temp",
65 "/doctemplates/receptions"
69 $this->config_page_url = array(
"reception_setup.php");
72 $this->depends = array(
"modFournisseur");
73 $this->requiredby = array();
74 $this->conflictwith = array();
75 $this->langfiles = array(
'receptions');
80 "RECEPTION_ADDON_PDF",
83 'Nom du gestionnaire de generation des bons receptions en PDF',
87 "RECEPTION_ADDON_NUMBER",
89 "mod_reception_beryl",
90 'Name for numbering manager for receptions',
94 "RECEPTION_ADDON_PDF_ODT_PATH",
96 "DOL_DATA_ROOT".($conf->entity > 1 ?
'/'.$conf->entity :
'').
"/doctemplates/receptions",
101 "MAIN_SUBMODULE_RECEPTION",
110 $this->boxes = array();
113 $this->rights = array();
114 $this->rights_class =
'reception';
118 $this->rights[$r][0] = $this->numero.$r;
119 $this->rights[$r][1] =
'Read receptions';
120 $this->rights[$r][2] =
'r';
121 $this->rights[$r][3] = 0;
122 $this->rights[$r][4] =
'lire';
125 $this->rights[$r][0] = $this->numero.$r;
126 $this->rights[$r][1] =
'Create receptions';
127 $this->rights[$r][2] =
'w';
128 $this->rights[$r][3] = 0;
129 $this->rights[$r][4] =
'creer';
132 $this->rights[$r][0] = $this->numero.$r;
133 $this->rights[$r][1] =
'Validate receptions';
134 $this->rights[$r][2] =
'd';
135 $this->rights[$r][3] = 0;
136 $this->rights[$r][4] =
'reception_advance';
137 $this->rights[$r][5] =
'validate';
140 $this->rights[$r][0] = $this->numero.$r;
141 $this->rights[$r][1] =
'Send receptions to customers';
142 $this->rights[$r][2] =
'd';
143 $this->rights[$r][3] = 0;
144 $this->rights[$r][4] =
'reception_advance';
145 $this->rights[$r][5] =
'send';
148 $this->rights[$r][0] = $this->numero.$r;
149 $this->rights[$r][1] =
'Export receptions';
150 $this->rights[$r][2] =
'r';
151 $this->rights[$r][3] = 0;
152 $this->rights[$r][4] =
'reception';
153 $this->rights[$r][5] =
'export';
156 $this->rights[$r][0] = $this->numero.$r;
157 $this->rights[$r][1] =
'Delete receptions';
158 $this->rights[$r][2] =
'd';
159 $this->rights[$r][3] = 0;
160 $this->rights[$r][4] =
'supprimer';
172 include_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
174 $contact_arrays = $shipment->liste_type_contact(
'external',
'', 0, 0,
'');
175 if (is_array($contact_arrays) && count($contact_arrays) > 0) {
176 $idcontacts = implode(
',', array_keys($shipment->liste_type_contact(
'external',
'', 0, 0,
'')));
183 $this->export_code[$r] = $this->rights_class.
'_'.$r;
184 $this->export_label[$r] =
'Receptions';
185 $this->export_permission[$r] = array(array(
"reception",
"reception",
"export"));
186 $this->export_fields_array[$r] = array(
187 's.rowid' =>
"IdCompany",
's.nom' =>
'ThirdParty',
's.address' =>
'Address',
's.zip' =>
'Zip',
's.town' =>
'Town',
188 'd.nom' =>
'State',
'co.label' =>
'Country',
'co.code' =>
'CountryCode',
's.phone' =>
'Phone',
's.siren' =>
'ProfId1',
's.siret' =>
'ProfId2',
's.ape' =>
'ProfId3',
's.idprof4' =>
'ProfId4',
's.idprof5' =>
'ProfId5',
's.idprof6' =>
'ProfId6',
189 'c.rowid' =>
"Id",
'c.ref' =>
"Ref",
'c.ref_supplier' =>
"RefSupplier",
'c.fk_soc' =>
"IdCompany",
'c.date_creation' =>
"DateCreation",
'c.date_delivery' =>
"DateDeliveryPlanned",
'c.tracking_number' =>
"TrackingNumber",
'c.height' =>
"Height",
'c.width' =>
"Width",
'c.size' =>
"Depth",
'c.size_units' =>
'SizeUnits',
'c.weight' =>
"Weight",
'c.weight_units' =>
"WeightUnits",
'c.fk_statut' =>
'Status',
'c.note_public' =>
"NotePublic",
'ed.rowid' =>
'LineId',
190 'ed.comment' =>
'Description',
'ed.qty' =>
"Qty",
191 'p.rowid' =>
'ProductId',
'p.ref' =>
'ProductRef',
'p.label' =>
'ProductLabel',
'p.weight' =>
'ProductWeight',
'p.weight_units' =>
'WeightUnits',
'p.volume' =>
'ProductVolume',
'p.volume_units' =>
'VolumeUnits'
194 $this->export_fields_array[$r] += array(
'sp.rowid' =>
'IdContact',
'sp.lastname' =>
'Lastname',
'sp.firstname' =>
'Firstname',
'sp.note_public' =>
'NotePublic');
197 $this->export_TypeFields_array[$r] = array(
198 's.nom' =>
'Text',
's.address' =>
'Text',
's.zip' =>
'Text',
's.town' =>
'Text',
199 'co.label' =>
'List:c_country:label:label',
'co.code' =>
'Text',
's.phone' =>
'Text',
's.siren' =>
'Text',
's.siret' =>
'Text',
's.ape' =>
'Text',
's.idprof4' =>
'Text',
200 'c.ref' =>
"Text",
'c.ref_supplier' =>
"Text",
'c.date_creation' =>
"Date",
'c.date_delivery' =>
"Date",
'c.tracking_number' =>
"Numeric",
'c.height' =>
"Numeric",
'c.width' =>
"Numeric",
'c.weight' =>
"Numeric",
'c.fk_statut' =>
'Status',
'c.note_public' =>
"Text",
201 'ed.qty' =>
"Numeric",
'd.nom' =>
'Text'
203 $this->export_entities_array[$r] = array(
204 's.rowid' =>
"company",
's.nom' =>
'company',
's.address' =>
'company',
's.zip' =>
'company',
's.town' =>
'company',
205 'd.nom' =>
'company',
'co.label' =>
'company',
'co.code' =>
'company',
's.fk_pays' =>
'company',
's.phone' =>
'company',
's.siren' =>
'company',
's.ape' =>
'company',
's.siret' =>
'company',
's.idprof4' =>
'company',
's.idprof5' =>
'company',
's.idprof6' =>
'company',
206 'c.rowid' =>
"reception",
'c.ref' =>
"reception",
'c.ref_supplier' =>
"reception",
'c.fk_soc' =>
"reception",
'c.date_creation' =>
"reception",
'c.date_delivery' =>
"reception",
'c.tracking_number' =>
'reception',
'c.height' =>
"reception",
'c.width' =>
"reception",
'c.size' =>
'reception',
'c.size_units' =>
'reception',
'c.weight' =>
"reception",
'c.weight_units' =>
'reception',
'c.fk_statut' =>
"reception",
'c.note_public' =>
"reception",
207 'ed.rowid' =>
'reception_line',
'ed.comment' =>
'reception_line',
'ed.qty' =>
"reception_line",
208 'p.rowid' =>
'product',
'p.ref' =>
'product',
'p.label' =>
'product',
'p.weight' =>
'product',
'p.weight_units' =>
'product',
'p.volume' =>
'product',
'p.volume_units' =>
'product'
211 $this->export_entities_array[$r] += array(
'sp.rowid' =>
'contact',
'sp.lastname' =>
'contact',
'sp.firstname' =>
'contact',
'sp.note_public' =>
'contact');
213 $this->export_dependencies_array[$r] = array(
'reception_line' =>
'ed.rowid',
'product' =>
'ed.rowid');
215 $keyforselect =
'socpeople';
216 $keyforelement =
'contact';
217 $keyforaliasextra =
'extra3';
218 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
220 $keyforselect =
'reception';
221 $keyforelement =
'reception';
222 $keyforaliasextra =
'extra';
223 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
224 $keyforselect =
'receptiondet_batch';
225 $keyforelement =
'reception_line';
226 $keyforaliasextra =
'extra2';
227 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
229 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
230 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'reception as c';
231 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'reception_extrafields as extra ON c.rowid = extra.fk_object,';
232 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'societe as s';
233 if (!empty($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
234 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
236 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_departements as d ON s.fk_departement = d.rowid';
237 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as co ON s.fk_pays = co.rowid,';
238 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'receptiondet_batch as ed';
239 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'receptiondet_batch_extrafields as extra2 ON ed.rowid = extra2.fk_object';
240 $this->export_sql_end[$r] .=
' , '.MAIN_DB_PREFIX.
'commande_fournisseurdet as cd';
241 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'product as p on cd.fk_product = p.rowid';
243 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'element_contact as ee ON ee.element_id = cd.fk_commande AND ee.fk_c_type_contact IN ('.$this->db->sanitize($idcontacts).
')';
244 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'socpeople as sp ON sp.rowid = ee.fk_socpeople';
245 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'socpeople_extrafields as extra3 ON sp.rowid = extra3.fk_object';
247 $this->export_sql_end[$r] .=
' WHERE c.fk_soc = s.rowid AND c.rowid = ed.fk_reception AND ed.fk_elementdet = cd.rowid';
248 $this->export_sql_end[$r] .=
' AND c.entity IN ('.getEntity(
'reception').
')';
249 if (!empty($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
250 $this->export_sql_end[$r] .=
' AND sc.fk_user = '.(empty($user) ? 0 : ((int) $user->id));