| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | 
							- <?php 
 
- User::check_access('import','read');
 
- require_once(__DIR__.SLASH.'Import.class.php');
 
- require_once(__DIR__.SLASH.'ImportMapping.class.php');
 
- global $myUser;
 
- $import = Import::provide();
 
- if($import->id==0){
 
- 	$import->label = 'Sans titre';
 
- 	$import->startLine = 2;
 
- 	$import->headerLine = 1;
 
- 	$import->hasheader = 1;
 
- }
 
- $allowedExtensions = array();
 
- foreach(Import::templates() as $template)
 
- 	$allowedExtensions[] = $template->extension;
 
- ?>
 
- <div class="plugin-import" data-mode="<?php echo $myUser->can('import','configure') ? 'configure':'execute' ?>">
 
- 	<div id="import-form" class="row justify-content-md-center import-form" data-action="import_save" data-id="<?php echo $import->id; ?>">
 
- 		<div class="col-md-8">
 
- 			
 
- 			<div class="row">
 
- 				<div class="col-md-12 shadow-sm bg-white p-3">
 
- 					<h3>Import 
 
- 						
 
- 						<a href="index.php" class="btn btn-small btn-dark right  mr-2">Retour</a>
 
- 						<div class="btn btn-small btn-info mb-2 btn-dark mx-2 right" data-scope="import" data-uid="<?php echo $import->id; ?>" data-show-important="true" data-type="history" data-tooltip title="Ouvrir l'historique"> <i class="far fa-comment-dots"></i></div>
 
- 					</h3>
 
- 					<label for="label">Libellé</label>
 
- 					<input  value="<?php echo $import->label; ?>" <?php echo $myUser->can('import','configure') ? '':'readonly' ?> class="form-control"  type="text" onchange="import_save()"  id="label" >
 
- 					
 
- 						<div class="configure-only mt-2">
 
- 							<label for="entity">Donnée ERP à renseigner</label>
 
- 							<input  value="<?php echo $import->entity; ?>" onchange="import_save()" data-type="entitypicker" class="form-control"  type="text"  id="entity" >
 
- 						</div>
 
- 						<div class="update-only my-2 file-container">
 
- 							<label for="file">Fichier Excel</label>
 
- 							<small class="text-muted configure-only">Fichier excel d'exemple  à importer (au moins une ligne de données (fichiers autorisés: <?php echo implode(',',$allowedExtensions); ?>))</small>
 
- 							<small class="text-muted execute-only">Fichier excel à importer (fichiers autorisés: <?php echo implode(',',$allowedExtensions); ?>)</small>
 
- 							<input  class="component-file-default bg-white shadow-sm rounded-sm"  type="text" data-label="Faites glisser votre fichier excel ici" data-type="file"  data-extension="xlsx,xls"  data-action="import_file" data-limit="1"  data-id="file"  data-data='{"scope":"import","slug":"import"}'  id="file" >
 
- 						</div>
 
- 						<div class="configure-only">
 
- 							<label for="hasheader"><input <?php echo $import->hasheader == 1 ? 'checked="checked"' : '' ?> onchange="import_save()"  data-type="checkbox" type="checkbox" id="hasheader"> Mon fichier comporte une en-tête</label>
 
- 							
 
- 							<div id="template-settings"></div>
 
- 						
 
- 						
 
- 						
 
- 							<label for="headerLine">N° de ligne d'en-tête (si existante)</label>
 
- 							<small class="text-muted">Optionnel (defaut: 1)</small>
 
- 							<input onchange="import_save()" value="<?php echo $import->headerLine; ?>" class="form-control"  type="number"  id="headerLine" >
 
- 							<label for="startLine">N° de ligne de départ de données</label>
 
- 							<small class="text-muted">Optionnel (defaut: 2)</small>
 
- 							<input onchange="import_save()" value="<?php echo $import->startLine; ?>" class="form-control"  type="number"  id="startLine" >
 
- 							<hr/>
 
- 						</div>
 
- 						
 
- 					</div>
 
- 				</div>
 
- 				<div class="row mt-3 hasfile-only configure-only">
 
- 					<div class="col-md-12 shadow-sm bg-white">
 
- 						<h4 class="my-3"><i class="far fa-file-excel text-success"></i> EXCEL <i class="fas fa-long-arrow-alt-right"></i> <i class="fas fa-database text-warning"></i> BASE </h4>
 
- 						<div class="btn btn-dark w-100 btn-import-deduction my-2" onclick="import_mapping_deduction()"><i class="fas fa-search-plus"></i> Déduire les champs</div>
 
- 						 <!-- présentation tableau -->
 
- 			            <table id="import-mappings" class="table table-striped " data-entity-search="import_mapping_search">
 
- 			                <thead>
 
- 			                    <tr>
 
- 			                        <th data-sortable="excelColumn">Colonne Excel</th>
 
- 			                        <th data-sortable="modifier">Macro de modification</th>
 
- 			                        <th data-sortable="entityField">Colonne ERP</th>
 
- 			                        <th data-sortable="uniticy">Si valeur non unique</th>
 
- 			                        <th><div class="btn btn-sm text-danger right" data-tooltip title="Supprimer toutes les lignes" onclick="import_mapping_delete('all');"><i class="far fa-trash-alt"></i></div></th>
 
- 			                    </tr>
 
- 			                </thead>
 
- 			               
 
- 			                <tbody>
 
- 			                    <tr data-id="{{id}}" class="hidden item-line">
 
- 			    	                <td class="align-middle import-label-column">
 
- 			    	                	<input type="text" data-id="excelColumn" onchange="import_mapping_save(this)" class="border-0 d-inline-block bg-transparent excelColumn"  value="{{excelColumn}}">
 
- 			    	                	{{#excelColumnName}} <small class="text-muted">- {{excelColumnName}}</small>{{/excelColumnName}}
 
- 			    	                	<label><input type="checkbox" class="fixedValueCheckbox" data-type="checkbox" onclick="import_mapping_fixed_change(this);"> Valeur fixe</label>
 
- 			    	                	<input type="text" data-id="excelColumnFixedValue"  onchange="import_mapping_save(this)" class="form-control hidden excelColumnFixedValue">
 
- 			    	                </td>
 
- 			    	                <td class="align-middle"><select class="form-control" onchange="import_mapping_save(this)" data-id="modifier">
 
- 			                        	<option value="">-</option>
 
- 			                        	<?php foreach(Import::macros() as $key=>$macro): ?>
 
- 			                        		<option value="<?php echo $key; ?>"><?php echo $macro['label']; ?></option>
 
- 			                        	<?php endforeach; ?>
 
- 			                        </select></td>
 
- 			    	                <td class="align-middle">
 
- 			    	                	<select class="form-control entityField" onchange="import_entity_field_change(this)" data-id="entityField"></select>
 
- 			    	                	<select class="form-control entitySubField mt-1 hidden" onchange="import_mapping_save(this)" data-id="entitySubField"></select>
 
- 			    	                	<input type="text" data-tpl-type="entitypicker" data-id="entityRelated" onchange="import_mapping_save(this)" class="entityRelated hidden form-control input-small mt-1">
 
- 			    	                	<input type="text" data-tpl-type="checkbox-list" data-depth="2" onchange="import_mapping_save(this)" data-multi-level-select="true" data-id="entityRelatedField" class="entityRelatedField hidden form-control input-small mt-1">
 
- 			    	                	
 
- 			    	                </td>
 
- 			    	                <td>
 
- 			    	                	<select class="form-control unique mt-1 " onchange="import_mapping_save(this)" data-id="unique">
 
- 			    	                		<?php foreach(ImportMapping::uniqueness() as $key=>$unique): ?>
 
- 			    	                			<option value="<?php echo $key; ?>"><?php echo $unique['label']; ?></option>
 
- 			    	                		<?php endforeach; ?>
 
- 			    	                	</select>
 
- 			    	                </td>
 
- 			    	                <td class="align-middle text-right">
 
- 			                            <div class="btn-group btn-group-sm" role="group">
 
- 			                                <div class="btn text-danger" data-tooltip title="Supprimer cette ligne" onclick="import_mapping_delete(this);"><i class="far fa-trash-alt"></i></div>
 
- 			                            </div>
 
- 			    	                </td>
 
- 			                    </tr>
 
- 			               </tbody>
 
- 			                
 
- 			                <thead>
 
- 			                    <tr id="import-mapping-form" data-action="import_mapping_save" data-id="">
 
- 			                      <th colspan="5" class="text-center"><div onclick="import_mapping_add();" class="btn btn-success"><i class="fas fa-plus"></i></div></th>
 
- 			                    </tr>
 
- 			                </thead>
 
- 			              
 
- 			                
 
- 			            </table>
 
- 					</div>
 
- 					
 
- 					<br/>
 
- 			
 
- 				</div>
 
- 				<div class="row mt-3 update-only">
 
- 					<div class="col-md-12 shadow-sm bg-white p-3">
 
- 						<div class="btn btn-primary btn-import w-100" onclick="import_execute()"><i class="fas fa-file-import"></i> Importer</div>
 
- 					</div>
 
- 				</div>
 
- 				<div class="row mt-3 update-only import-excel-table-container hidden">
 
- 					<div class="col-md-12 p-3">
 
- 						<h3>Résultat d'import</h3>
 
- 						
 
- 						<ul class="import-stats-list">
 
- 							<template>
 
- 								<li class="shadow-sm" data-slug="{{slug}}"><i class="fas fa-times"></i> <span>{{value}}</span> {{label}}</li>
 
- 							</template>
 
- 						</ul>
 
- 						<table class="import-excel-table hidden shadow-sm bg-white mt-2">
 
- 							<thead class="title-head">
 
- 								<tr>
 
- 									<th colspan="4">Fichier.xlsx</th>
 
- 								</tr>
 
- 							</thead>
 
- 							<thead class="column-head">
 
- 								<tr>
 
- 									<th><img src="plugin/import/img/triangle.png"></th>
 
- 									<template>
 
- 									<th>{{.}}</th>
 
- 									</template>
 
- 								</tr>
 
- 							</thead>
 
- 							<tbody>
 
- 								<template>
 
- 									<tr class="state-{{state}}">
 
- 										<th>{{lineNumber}}</th>
 
- 									</tr>
 
- 								</template>
 
- 								<template>
 
- 								
 
- 									<td class="state-{{state}}">{{value}} {{#state}}<br><strong>{{stateLabel}}</strong>{{/state}}{{#message}}: {{message}}{{/message}}</td>
 
- 										
 
- 								</template>
 
- 							</tbody>
 
- 						</table>
 
- 					</div>
 
- 				</div>
 
- 			</div>
 
- 		</div>
 
- 	</div>
 
- </div>
 
 
  |