177 lines
4.9 KiB
PHP
Executable File
177 lines
4.9 KiB
PHP
Executable File
<?php
|
|
require_once 'vendor/autoload.php';
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
|
require_once 'Framework/Controleurrequete.php'; // OK
|
|
require_once 'Modele/Detailtarifmedicament.php';
|
|
|
|
class ControleurAjaximportertarifmedicament extends Controleurrequete
|
|
{
|
|
private $tarif;
|
|
|
|
public function __construct() {
|
|
$this->tarif = new Detailtarifmedicament();
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
}
|
|
|
|
public function exportermodele()
|
|
{
|
|
$codeTarifMedicament = $_SESSION['codeTarifMedicament'];
|
|
|
|
$modeles = $this->tarif->getModeleTarif($codeTarifMedicament);
|
|
|
|
// Excel
|
|
$headerXLS = array(
|
|
"codeTarifMedicament",
|
|
"codeMedicament",
|
|
"libelle",
|
|
"prix");
|
|
|
|
$dataXLS = array();
|
|
|
|
foreach ($modeles as $modele)
|
|
{
|
|
$dataXLS[]=$modele;
|
|
}
|
|
|
|
$classeur = new Spreadsheet();
|
|
$classeur->getProperties()->setCreator("INTER-SANTE");
|
|
$classeur->setActiveSheetIndex(0);
|
|
$feuille=$classeur->getActiveSheet();
|
|
$feuille->setTitle(_('MODELE TARIF MEDICAMENT'));
|
|
$feuille->fromArray($headerXLS, NULL, 'A1', true);
|
|
$feuille->fromArray($dataXLS, NULL, 'A2', true);
|
|
|
|
$fichier = 'Temp/TEMPLATE_MEDICAMENTS'."_".uniqid().".xlsx";
|
|
|
|
$writer = new Xlsx($classeur);
|
|
$writer->save($fichier);
|
|
|
|
$t_html =' <div class="alert alert-success"> ';
|
|
$t_html .=' <a style="font-size:15pt;" href="'.$fichier.'" target="_blank" > '._("TELECHARGER").' </a> ';
|
|
$t_html .=' </div ';
|
|
|
|
echo $t_html;
|
|
|
|
exit();
|
|
}
|
|
|
|
public function importermodele()
|
|
{
|
|
$idTarif = $this->requete->getParametreFormulaire("idTarif");
|
|
$codeTarifMedicament = $this->requete->getParametreFormulaire("codeTarifMedicament");
|
|
$cheminFichier = $this->requete->getParametreFormulaire("cheminFichier");
|
|
|
|
$erreurImport="0";
|
|
|
|
$this->tarif->initIinsererLigneModeleTarif($codeTarifMedicament);
|
|
|
|
$dataXLS = array();
|
|
|
|
$fichier = "Temp/import/".$cheminFichier;
|
|
|
|
if (!file_exists($fichier))
|
|
{
|
|
$erreurImport="1";
|
|
$this->genererVueAjax(array('message_erreur_excel' => "Fichier introubable sur le serveur !", 'succes_impot_execl' => "0"));
|
|
exit();
|
|
}
|
|
|
|
$docXLS = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
|
$Excel = $docXLS->load($fichier);
|
|
$feuille = $Excel->getSheet($Excel->getFirstSheetIndex());
|
|
|
|
$derniereLigne = $feuille->getHighestRow();
|
|
$derniereColonne = $feuille->getHighestColumn();
|
|
|
|
$tableauExcel = $feuille->toArray(null, true, true, true);
|
|
|
|
for ($i = 2; $i <= $derniereLigne; $i++)
|
|
{
|
|
$codeMedicament = trim($tableauExcel[$i]['B']);
|
|
|
|
$prix = trim($tableauExcel[$i]['D']);
|
|
if ($prix<="0")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if ($codeMedicament<=" ")
|
|
{
|
|
$erreurImport="1";
|
|
$this->genererVueAjax(array('message_erreur_excel' => "Ligne " . $i ." => codeMedicament ne peut être vide !", 'succes_impot_execl' => "0"));
|
|
break;
|
|
exit();
|
|
}
|
|
|
|
// codeMedicament inexistant dans p_medicamentmodel et donc p_medicament
|
|
$codeMedicamentManquant = $this->tarif->getcodemedicamentmanquant($codeMedicament);
|
|
|
|
if ($codeMedicamentManquant=="0")
|
|
{
|
|
$erreurImport="1";
|
|
$this->genererVueAjax(array('message_erreur_excel' => "$codeMedicament inconnu! => ligne $i", 'succes_impot_execl' => "0"));
|
|
break;
|
|
exit();
|
|
}
|
|
|
|
$nbDoublon = $this->tarif->getdoubloncodemedicament($codeTarifMedicament, $codeMedicament);
|
|
if ($nbDoublon>"0")
|
|
{
|
|
$erreurImport="1";
|
|
$this->genererVueAjax(array('message_erreur_excel' => "$codeMedicament en doublon! => ligne $i", 'succes_impot_execl' => "0"));
|
|
break;
|
|
exit();
|
|
}
|
|
|
|
|
|
$this->tarif->insererLigneModeleTarif($codeTarifMedicament, $codeMedicament, $prix);
|
|
}
|
|
|
|
// s'il y a une quelquonque => Pas la peine de continuer
|
|
if ($erreurImport=="1")
|
|
{
|
|
$this->genererVueAjax(array('message_erreur_excel' => "Veuillez revoir votre fichier!", 'succes_impot_execl' => "0"));
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
// Si le nombre total de médicaments importé = 0 => Pas la peine de continuer
|
|
$nbMedocImportes = $this->tarif->nombremedocsimportes();
|
|
if ($nbMedocImportes==0)
|
|
{
|
|
$erreurImport="1";
|
|
$this->genererVueAjax(array('message_erreur_excel' => "Liste vide. Veuillez revoir votre fichier!", 'succes_impot_execl' => "0"));
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
$this->genererVueAjax(array('message_erreur_excel' => "Fichier temporaire extrait du serveur avec succes!", 'succes_impot_execl' => "1"));
|
|
|
|
exit();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
//
|
|
|
|
|
|
public function incorporermedicamentsimportes()
|
|
{
|
|
$this->tarif->incorporermedicamentsimportes();
|
|
|
|
// $this->genererVueAjax();
|
|
}
|
|
|
|
public function majetape()
|
|
{
|
|
$codeTarifMedicament = $this->requete->getParametreFormulaire("codeTarifMedicament");
|
|
$this->tarif->majetape($codeTarifMedicament);
|
|
}
|
|
} |