6 Commits

Author SHA1 Message Date
674514ed06 resolv merge + pdo 2023-12-21 10:52:21 +01:00
7fcee1a7bf modification pdo 2023-12-21 10:43:53 +01:00
30ccc68f7a affichage lstVisiteur dans gestionFiches 2023-12-21 10:16:37 +01:00
ce94d71198 finission page Nouvelle Fiche 2023-12-19 22:54:21 +01:00
280f10fc0b Design brut de la page nouvelle fiche de frais 2023-12-19 21:41:28 +01:00
c226069923 modification de l'index 2023-12-19 13:12:26 +01:00
13 changed files with 273 additions and 100 deletions

37
Class/class.newFiche.php Normal file
View File

@ -0,0 +1,37 @@
<?php
class Class_newFiche
{
private $pdo = null;
public function __construct(PdoGsb $pDO)
{
$this->pdo = $pDO->getPdoGsb();
}
public function listFraisForfaitaires(): array
{
$req = 'SELECT "fLibelle", "fMontant" FROM forfait';
$result = $this->pdo->prepare($req);
$result->execute();
return $result->fetchAll();
}
public function endInter(string $id)
{
$req = "UPDATE intervention
SET iHeureFin = NOW()
WHERE iCis = :cis AND iId = :idInter AND iHeureFin IS NULL";
$cis = explode('-', $id)[0];
$idInter = explode('-', $id)[1];
$result = PdoBD::$monPdo->prepare($req);
$result->bindParam(':cis', $cis);
$result->bindParam(':idInter', $idInter);
$result->execute();
}
}

34
Class/class.pdo.php Normal file
View File

@ -0,0 +1,34 @@
<?php
class PdoGsb
{
private static $serveur = 'pgsql:host=localhost';
private static $bdd = 'dbname=gsb2024';
private static $user = 'postgres';
private static $mdp = 'postgres';
private static $pdo;
private static $monPdoGsb = null;
/**
* Constructeur prive, cree l'instance de PDO qui sera sollicitee
* pour toutes les methodes de la classe
*/
public function __construct()
{
PdoGsb::$pdo = new PDO(PdoGsb::$serveur . ';' . PdoGsb::$bdd, PdoGsb::$user, PdoGsb::$mdp);
//PdoGsb::$monPdo->query("SET CHARACTER SET utf8");SET client_encoding = 'UTF8';
}
public function _destruct()
{
PdoGsb::$monPdo = null;
}
/**
* Fonction statique qui cree l'unique instance de la classe
* Appel : $instancePdoGsb = PdoGsb::getPdoGsb();
* @return pdo
*/
public function getPdoGsb()
{
return PdoGsb::$pdo;
}
}

View File

@ -7,6 +7,8 @@
// Date : 03/05/2023 à 11H01 '
// Auteur : pascal-blain@wanadoo.fr '
//****************************************'
header('location: index.php?direction=home');
if (!isset($_REQUEST['action'])) {
$_REQUEST['action'] = 'demandeConnexion';
}

View File

@ -0,0 +1,15 @@
<?php
session_start();
$_SESSION['typeU'] = 'comptable';
include("../vues/v_gestionFiches.php");
?>

View File

@ -0,0 +1,3 @@
<?php
include(__DIR__ . '/../vues/v_homePage.php');

View File

@ -0,0 +1,9 @@
<?php
require_once(__DIR__ . '/../Class/class.newFiche.php');
$newFiche = new Class_newFiche($pdo);
$liste = $newFiche->listFraisForfaitaires();
var_dump($liste);
include(__DIR__ . '/../vues/v_newFiche.php');

View File

@ -7,7 +7,7 @@ create table "affectation"("uId" VARCHAR(4) not null,"aDate" TIMESTAMP not null,
--
create table "automobile"("aId" SMALLINT not null,"aPuissance" VARCHAR(15),"aMotorisation" VARCHAR(7),"aMontant" NUMERIC(19,4),"aDate" TIMESTAMP,primary key("aId"));
--
create table "echantillonOffert"("uId" VARCHAR(4) not null,"vNum" SMALLINT not null,"mDepotLegal" VARCHAR(10) not null,"OFF_QTE" SMALLINT,primary key("uId","vNum","mDepotLegal"));
create table "echantillon_offert"("uId" VARCHAR(4) not null,"vNum" SMALLINT not null,"mDepotLegal" VARCHAR(10) not null,"OFF_QTE" SMALLINT,primary key("uId","vNum","mDepotLegal"));
--
create table "etat"("eId" VARCHAR(2) not null,"eLibelle" VARCHAR(30),"eOrdre" SMALLINT,primary key("eId"));
--
@ -15,9 +15,9 @@ create table "famille"("fCode" VARCHAR(3) not null,"fLibelle" VARCHAR(83),primar
--
create table "forfait"("fId" VARCHAR(3) not null,"fLibelle" VARCHAR(20),"fMontant" NUMERIC(19,4),primary key("fId"));
--
create table "ligneForfait"("lfVisiteur" VARCHAR(4) not null,"lfMois" VARCHAR(6) not null,"lfForfait" VARCHAR(3) not null,"lfQuantite" SMALLINT,"lfMontant" NUMERIC(19,4),primary key("lfVisiteur","lfMois","lfForfait"));
create table "ligne_forfait"("lfVisiteur" VARCHAR(4) not null,"lfMois" VARCHAR(6) not null,"lfForfait" VARCHAR(3) not null,"lfQuantite" SMALLINT,"lfMontant" NUMERIC(19,4),primary key("lfVisiteur","lfMois","lfForfait"));
--
create table "ligneHorsForfait"("lhId" INTEGER not null,"lhVisiteur" VARCHAR(4) not null,"lhMois" VARCHAR(6) not null,"lhLibelle" VARCHAR(80),"lhDate" TIMESTAMP,"lhMontant" NUMERIC(19,4),"lhJustificatif" BOOLEAN,"lhRefus" BOOLEAN,primary key("lhId"));
create table "ligne_hors_forfait"("lhId" INTEGER not null,"lhVisiteur" VARCHAR(4) not null,"lhMois" VARCHAR(6) not null,"lhLibelle" VARCHAR(80),"lhDate" TIMESTAMP,"lhMontant" NUMERIC(19,4),"lhJustificatif" BOOLEAN,"lhRefus" BOOLEAN,primary key("lhId"));
--
create table "medicament"("mDepotLegal" VARCHAR(10) not null,"mNomCommercial" VARCHAR(25),"mComposition" VARCHAR(255),"mEffets" VARCHAR(255),"mContreIndications" VARCHAR(255),"mPrix" REAL,"mFamille" VARCHAR(3) not null,primary key("mDepotLegal"));
--
@ -29,9 +29,9 @@ create table "praticien"("pNum" INTEGER not null,"pNom" VARCHAR(25),"pPrenom" VA
--
create table "remboursement"("rVisiteur" VARCHAR(4) not null,"rMois" VARCHAR(6) not null,"rNbJustificatifs" SMALLINT,"rMontantValide" NUMERIC(19,4),"rDateModif" TIMESTAMP,"rEtat" VARCHAR(2),primary key("rVisiteur","rMois"));
--
create table "typeParametre"("tpId" VARCHAR(7) not null,"tpLibelle" VARCHAR(70),"tpBooleen" BOOLEAN,"tpChoixMultiple" BOOLEAN,"tpCumul" BOOLEAN,primary key("tpId"));
create table "type_parametre"("tpId" VARCHAR(7) not null,"tpLibelle" VARCHAR(70),"tpBooleen" BOOLEAN,"tpChoixMultiple" BOOLEAN,"tpCumul" BOOLEAN,primary key("tpId"));
--
create table "typePraticien"("tCode" VARCHAR(2) not null,"tLibelle" VARCHAR(31),"tLieu" VARCHAR(31),primary key("tCode"));
create table "type_praticien"("tCode" VARCHAR(2) not null,"tLibelle" VARCHAR(31),"tLieu" VARCHAR(31),primary key("tCode"));
--
create table "utilisateur"("uId" VARCHAR(4) not null,"uNom" VARCHAR(30),"uPrenom" VARCHAR(30),"uLogin" VARCHAR(20) not null,"uMdp" VARCHAR(20),"uAdresse" VARCHAR(32),"uCp" VARCHAR(5),"uVille" VARCHAR(30),"uDateEmbauche" TIMESTAMP,"uSecteur" SMALLINT,"uLabo" VARCHAR(2),"uStatut" SMALLINT,"uRegion" SMALLINT,"uDateEnreg" TIMESTAMP,"uDateModif" TIMESTAMP,"uPuissance" VARCHAR(20),"uMotorisation" VARCHAR(20),primary key("uId"));
--
@ -140,7 +140,7 @@ insert into "automobile"("aId","aPuissance","aMotorisation","aMontant","aDate")
(20233,'jusqu''à 4CV','essence',0.68,'2023-9-1'),
(20234,'5 CV et au-delà','essence',0.71,'2023-9-1');
-- ----------------------------------------------------------------------------------------------
insert into "echantillonOffert"("uId","vNum","mDepotLegal","OFF_QTE") values
insert into "echantillon_offert"("uId","vNum","mDepotLegal","OFF_QTE") values
('a131',1,'PHYSOI8',3),
('a131',2,'LIDOXY23',1),
('a131',3,'JOVAI8',1),
@ -340,7 +340,7 @@ insert into "forfait"("fId","fLibelle","fMontant") values
('NUI','Nuitée Hôtel',80),
('REP','Repas Restaurant',25);
-- ----------------------------------------------------------------------------------------------
insert into "ligneForfait"("lfVisiteur","lfMois","lfForfait","lfQuantite","lfMontant") values
insert into "ligne_forfait"("lfVisiteur","lfMois","lfForfait","lfQuantite","lfMontant") values
('a131','202011','ETP',11,110),
('a131','202011','KM',777,0.62),
('a131','202011','NUI',16,80),
@ -4374,7 +4374,7 @@ insert into "ligneForfait"("lfVisiteur","lfMois","lfForfait","lfQuantite","lfMon
('f4','202312','NUI',4,80),
('f4','202312','REP',18,25);
-- ----------------------------------------------------------------------------------------------
insert into "ligneHorsForfait"("lhId","lhVisiteur","lhMois","lhLibelle","lhDate","lhMontant","lhJustificatif","lhRefus") values
insert into "ligne_hors_forfait"("lhId","lhVisiteur","lhMois","lhLibelle","lhDate","lhMontant","lhJustificatif","lhRefus") values
(16166,'b34','202011','repas avec praticien','2020-11-15',50,true,false),
(16167,'bp','202011','repas avec praticien','2020-11-25',44,true,false),
(16168,'e24','202011','Voyage SNCF','2020-11-3',36,true,false),
@ -9290,7 +9290,7 @@ insert into "remboursement"("rVisiteur","rMois","rNbJustificatifs","rMontantVali
('f4','202310',2,3536.64,'2023-11-19','CL'),
('f4','202312',2,1681.7,'2024-1-28','RB');
-- ----------------------------------------------------------------------------------------------
insert into "typeParametre"("tpId","tpLibelle","tpBooleen","tpChoixMultiple","tpCumul") values
insert into "type_parametre"("tpId","tpLibelle","tpBooleen","tpChoixMultiple","tpCumul") values
('adresse','Coordonnées de l''entreprise',true,true,true),
('catProf','Catégorie Socioprofessionnelle',true,true,true),
('emploi','emploi',false,true,true),
@ -9305,7 +9305,7 @@ insert into "typeParametre"("tpId","tpLibelle","tpBooleen","tpChoixMultiple","tp
('statJur','statut juridique',false,true,true),
('statUti','Statut de l''utilisateur',true,true,true);
-- ----------------------------------------------------------------------------------------------
insert into "typePraticien"("tCode","tLibelle","tLieu") values
insert into "type_praticien"("tCode","tLibelle","tLieu") values
('MH','Médecin Hospitalier','Hopital ou clinique'),
('MV','Médecine de Ville','Cabinet'),
('PH','Pharmacien Hospitalier','Hopital ou clinique'),
@ -9596,16 +9596,16 @@ insert into "visite"("uId","vNum","pNum","vDate","vRapport","vMotif") values
-- contraintes d'intégrité référentielles
alter table "remboursement" add foreign key ("rEtat") references "etat"("eId");
alter table "medicament" add foreign key ("mFamille") references "famille"("fCode");
alter table "ligneForfait" add foreign key ("lfForfait") references "forfait"("fId");
alter table "echantillonOffert" add foreign key ("mDepotLegal") references "medicament"("mDepotLegal");
alter table "ligne_forfait" add foreign key ("lfForfait") references "forfait"("fId");
alter table "echantillon_offert" add foreign key ("mDepotLegal") references "medicament"("mDepotLegal");
alter table "observation" add foreign key ("mDepotLegal") references "medicament"("mDepotLegal");
alter table "observation" add foreign key ("pNum") references "praticien"("pNum");
alter table "visite" add foreign key ("pNum") references "praticien"("pNum");
alter table "ligneForfait" add foreign key ("lfVisiteur","lfMois") references "remboursement"("rVisiteur","rMois") on delete cascade on update cascade;
alter table "ligneHorsForfait" add foreign key ("lhVisiteur","lhMois") references "remboursement"("rVisiteur","rMois") on delete cascade on update cascade;
alter table "parametre" add foreign key ("pType") references "typeParametre"("tpId");
alter table "praticien" add foreign key ("pType") references "typePraticien"("tCode");
alter table "ligne_forfait" add foreign key ("lfVisiteur","lfMois") references "remboursement"("rVisiteur","rMois") on delete cascade on update cascade;
alter table "ligne_hors_forfait" add foreign key ("lhVisiteur","lhMois") references "remboursement"("rVisiteur","rMois") on delete cascade on update cascade;
alter table "parametre" add foreign key ("pType") references "type_parametre"("tpId");
alter table "praticien" add foreign key ("pType") references "type_praticien"("tCode");
alter table "affectation" add foreign key ("uId") references "utilisateur"("uId");
alter table "remboursement" add foreign key ("rVisiteur") references "utilisateur"("uId");
alter table "visite" add foreign key ("uId") references "utilisateur"("uId");
alter table "echantillonOffert" add foreign key ("uId","vNum") references "visite"("uId","vNum");
alter table "echantillon_offert" add foreign key ("uId","vNum") references "visite"("uId","vNum");

View File

@ -5,24 +5,27 @@
</a>
<ul class="nav nav-pills flex-column mb-sm-auto mb-0 align-items-center align-items-sm-start" id="menu">
<li class="nav-item">
<a href="../index.php" class="nav-link align-middle px-0">
<a href="index.php" class="nav-link align-middle px-0">
<i class="fs-4 bi-house"></i> <span class="ms-1 d-none d-sm-inline">Home</span>
</a>
</li>
<!--
Partie visiteur
-->
Partie visiteur
-->
<?php
if($_SESSION['typeU'] == 'visiteur'):
?>
<li>
<a href="#submenu1" data-bs-toggle="collapse" class="nav-link px-0 align-middle">
<i class="fs-4 bi-speedometer2"></i> <span class="ms-1 d-none d-sm-inline">Fiche de frais</span>
</a>
<ul class="collapse show nav flex-column ms-1" id="submenu1" data-bs-parent="#menu">
<li class="w-100">
<a href="vues/v_gestionFiches.php" class="nav-link px-0"> <span class="d-none d-sm-inline">Gérer ses fiches</span>
<a href="../controleurs/c_gestionFiche.php" class="nav-link px-0"> <span class="d-none d-sm-inline">Gérer ses fiches</span>
</a>
</li>
<li>
<a href="#" class="nav-link px-0"> <span class="d-none d-sm-inline">Nouvelle Fiche</span>
<a href="../index.php?direction=nouvelleFiche" class="nav-link px-0"> <span class="d-none d-sm-inline">Nouvelle Fiche</span>
</a>
</li>
</ul>
@ -31,7 +34,7 @@
<a href="#" class="nav-link px-0 align-middle">
<i class="fs-4 bi-table"></i> <span class="ms-1 d-none d-sm-inline">Visites</span></a>
</li>
<?php endif; if ($_SESSION['typeU'] == 'comptable'): ?>
<!--
Partie comptable
-->
@ -41,7 +44,7 @@
</a>
<ul class="collapse show nav flex-column ms-1" id="submenu2" data-bs-parent="#menu">
<li class="w-100">
<a href="#" class="nav-link px-0"> <span class="d-none d-sm-inline">A valider</span>
<a href="../controleurs/c_gestionFiche.php" class="nav-link px-0"> <span class="d-none d-sm-inline">A valider</span>
</a>
</li>
<li>
@ -50,6 +53,7 @@
</li>
</ul>
</li>
<?php endif; ?>
</ul>
<hr>
<div class="dropdown pb-4">

View File

@ -1,44 +0,0 @@
<?php
session_start();
// ***************************************'
// Le CASTEL-BTS SIO/ PROJET PPE4 GSB '
// Programme: index.php '
// Objet : Gestion des frais '
// Client : laboratoires GSB '
// Version : 3.0 '
// Date : 03/05/2023 à 11H01 '
// Auteur v1: pascal-blain@wanadoo.fr '
//****************************************'
require_once("include/fct.inc.php");
require_once("include/class.pdogsb.php");
$pdo = PdoGsb::getPdoGsb();
$estConnecte = estConnecte();
// on vrifie que l'utilisateur est authentifi
if (!isset($_REQUEST['uc']) || !$estConnecte) {
$_REQUEST['uc'] = 'connexion';
}
// on analyse le cas d'utilisation en cours ...
$uc = $_REQUEST['uc'];
switch ($uc) {
case 'connexion': {
include("controleurs/c_connexion.php");
break;
}
case 'etatFrais': {
include("controleurs/c_etatFrais.php");
break;
}
case 'gererFraisForfaitaire': {
include("controleurs/c_gererFraisForfaitaire.php");
break;
}
case 'gererFraisHorsForfait': {
include("controleurs/c_gererFraisHorsForfait.php");
break;
}
}
include("vues/v_pied.php");
?>

View File

@ -1,37 +1,77 @@
<?php
session_start();
// ***************************************'
// Le CASTEL-BTS SIO/ PROJET PPE4 GSB '
// Programme: index.php '
// Objet : Gestion des frais '
// Client : laboratoires GSB '
// Version : 3.0 '
// Date : 03/05/2023 à 11H01 '
// Auteur v1: pascal-blain@wanadoo.fr '
//****************************************'
//require_once("include/fct.inc.php");
require_once("Class/class.pdo.php");
$pdo = new PdoGsb();
//$estConnecte = estConnecte();
$_SESSION['typeU'] = 'visiteur';
/*
if (!isset($_SESSION['userId'])) {
$_REQUEST['direction'] = 'connexion';
}
*/
if (!isset($_REQUEST['direction'])) {
$_REQUEST['direction'] = 'connexion';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page accueil</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
crossorigin="anonymous"></script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page accueil</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
crossorigin="anonymous"></script>
</head>
<body>
<div class="container-fluid">
<div class="row flex-nowrap">
<?php include('include/menu.php') ?>
<div class="col py-3">
<h3>Left Sidebar with Submenus</h3>
<p class="lead">
An example 2-level sidebar with collasible menu items. The menu functions like an "accordion" where
only a single
menu is be open at a time. While the sidebar itself is not toggle-able, it does responsively shrink
in width on smaller screens.</p>
<ul class="list-unstyled">
<li>
<h5>Responsive</h5> shrinks in width, hides text labels and collapses to icons only on mobile
</li>
</ul>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row flex-nowrap">
<?php
include('include/menu.php');
?>
<div class="col py-3">
<?php
switch ($_REQUEST['direction']) {
case 'connexion':
include("controleurs/c_connexion.php");
break;
case 'gestionFiche':
include("controleurs/c_gestionFiche.php");
break;
case 'home':
include("controleurs/c_homePage.php");
break;
case 'nouvelleFiche':
include(__DIR__ . "/controleurs/c_nouvelleFiche.php");
break;
default:
include("controleurs/c_homePage.php");
break;
}
?>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,3 +1,6 @@
<?php
var_dump($_SESSION['test']);
?>
<!DOCTYPE html>
<html lang="en">
@ -22,17 +25,17 @@
<div class="col-3 mb-4">
<h3>Gerer mes fiches de frais</h3>
<br>
<select class="form-select" name="selVisiteur" id="">
<option value="visiteur1">Visiteur 1</option>
</select>
<?php
if ($_SESSION['typeU'] == 'comptable') {
echo '<select class="form-select" name="selVisiteur" id="">
<option value="visiteur1">Visiteur 1</option></select>';
}
?>
</div>
</center>
<div class="col-11 d-flex mx-auto">
<table class="table table-striped">
<thead>
<tr>

1
vues/v_homePage.php Normal file
View File

@ -0,0 +1 @@
<h4>BONJOUR VOUS ETES COMPTABLE</h4>

69
vues/v_newFiche.php Normal file
View File

@ -0,0 +1,69 @@
<center>
<h1>Nouvelle Fiche de frais</h1>
<br>
<p>Mois de Novembre 2023</p>
</center>
<br>
<h3 class="fw-bold offset-1">Frais forfaitaires</h3>
<div class="col-11 d-flex mx-auto my-3">
<table class="table table-striped-columns align-middle">
<thead class="table-dark">
<tr>
<th scope="col">Intitulé</th>
<th scope="col">Quantité</th>
<th scope="col">Montant</th>
<th scope="col">Total</th>
</tr>
</thead>
<tbody class="table-group-divider border-secondary-subtle">
<tr>
<th scope="row">Hotel</th>
<td><input type="text" class="form-control"></td>
<td>20 </td>
<td>400</td>
</tr>
</tbody>
</table>
</div>
<span class="border-3 border-bottom border-black col-10 mx-auto my-5 d-flex"></span>
<h3 class="fw-bold offset-1">Hors forfait</h3>
<div class="col-11 d-flex mx-auto my-3">
<table class="table table-striped-columns align-middle">
<thead class="table-dark">
<tr>
<th>Date</th>
<th>Libelle</th>
<th>Montant</th>
<th>Justificatif</th>
<th>Valider</th>
</tr>
</thead>
<tbody class="table-group-divider border-secondary-subtle">
<tr>
<td scope="row">23/12/2023</td>
<td>Salle de réunion</td>
<td>130 </td>
<td>facture.pdf</td>
<td><button type="button" class="btn btn-outline-primary">Supprimer</button></td>
</tr>
<tr>
<td scope="row"><input class="form-control" type="date"></td>
<td><input type="text" class="form-control" placeholder="saisir un titre"></td>
<td><input type="text" class="form-control" placeholder="Saisir un Montant"></td>
<td><input type="file" class="form-control"></td>
<td><button type="button" class="btn btn-outline-primary">Valider</button></td>
</tr>
</tbody>
</table>
</div>
<span class="border-3 border-bottom border-black col-10 mx-auto my-5 d-flex"></span>
<h3 class="fw-bold offset-1">Commentaire (facultatif)</h3>
<div class="col-8 d-flex mx-auto">
<textarea name="commentaireFiche" id="commentaireFiche" class="form-control border-black"></textarea>
</div>
<div class="col-3 d-flex mx-auto my-5 justify-content-center">
<button type="button" class="btn btn-outline-primary">Envoyer la Fiche</button>
</div>