AnonSec Team
Server IP : 10.128.40.6  /  Your IP : 216.73.216.233
Web Server : Apache
System : Linux webd006.cluster128.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : logmcpe ( 111175)
PHP Version : 7.3.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/logmcpe/www/TMCPRO/pages/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/logmcpe/www/TMCPRO/pages/fcfacturation2.php
<?php
include 'includes/config_tmcpro.php' ;
include 'includes/stable_functions_tmcpro.php' ;

$now   = time();

 
function dateDiff($date1, $date2){
    $diff = abs($date1 - $date2); // abs pour avoir la valeur absolute, ainsi éviter d'avoir une différence négative
    $retour = array();
 
    $tmp = $diff;
    $retour['second'] = $tmp % 60;
 
    $tmp = floor( ($tmp - $retour['second']) /60 );
    $retour['minute'] = $tmp % 60;
 
    $tmp = floor( ($tmp - $retour['minute'])/60 );
    $retour['hour'] = $tmp % 24;
 
    $tmp = floor( ($tmp - $retour['hour'])  /24 );
    $retour['day'] = $tmp;
 
    return $retour;
}
// echo '<pre>';
// print_r($_POST);
// echo '</pre>';
ini_set('display_errors','on');
error_reporting(E_ALL);

///////////variable session de client ///////////////////////////////

						if(!empty($_GET['client_id']))
						{
						$_SESSION["client_id"]=$_GET['client_id'];

						}
						 $client_id =$_SESSION["client_id"] ; 
						 
						 
//////////////////////////function////////////////////////////////////
					function get_drop_down_reglement2 ($name='', $param = '', $value='')
					{
						$q = dbi_query("SELECT * FROM ".TABLE_REGLEMENT."") ;
						$res = "<select  class='form-control' name=\"$name\" $param>" ;
						while($r = dbi_fetch_row($q))
							$res .= "<option value=\"{$r['reglement_id']}\"".($r['reglement_id'] == $value ? ' selected' : (($value==''&&$r['reglement_id'] == 2) ? ' selected' : '')).">".utf8_encode($r['reglement_desc'])."</option>" ;
						return "$res</select>" ;
					}

 
 // /////////////////////saisir infos de facturations  ///////////////////////////////////

					if(  isset($_POST['reglement_delai'])  && isset($_POST['client_id'])   )
					{
						$Client_ID=$_POST['client_id'];
						  $client_nom=$_POST['client_nom'];

						$client_facture_mail='';
						$client_env_mail = $_POST['client_env_mail'];
						$litige='';
						$client_facture_mail = $_POST['client_facture_mail'];
						$litige = 1;
						$reglement_id = $_POST['reglement_id'];
						$reglement_delai = $_POST['reglement_delai'] ;
						$sqlupdate1 = "UPDATE ".TABLE_CLIENT." SET reglement_id="."'$reglement_id'"." , reglement_delai="."'$reglement_delai'"." ,client_env_mail="."'$client_env_mail'".", client_facture_mail="."'$client_facture_mail'".", litige="."'$litige'"." WHERE  client_id = $Client_ID" ;
						dbi_query ( $sqlupdate1 );
						header('Location:fcfacturation.php?msg=bien Modifié&color=success'); 
					}
					
					
	// /////////////////////saisir infos de facturations  ///////////////////////////////////
					
					if (isset($_POST['avoir'], $_POST['fact']))
				{
				// print_r($_POST);
					$montant = (real)str_replace(',', '.', $_POST['avoir']);
					$desc = NULL ;
					$desc = $_POST['desc'];
					
					$fId = $_POST['fact'];
					$erreur = array() ;
					
					// echo "-->".$_POST['fact']."<br/>"; 
				$info_fact = dbi_fetch_row(dbi_query(" SELECT *  FROM  `facture`  WHERE  fact_id = ".$_POST['fact'] )) ; 
				// echo "--- date facte-->".$info_fact['date_fact']."<br/>" ; 
				 // echo "--- montant avans -->".$montant."<br/>" ; 
				if ($info_fact['date_fact']>20140101 )
				{
				$montant = $montant * 1.2  ; 
				}
				else 
				{
				$montant = $montant * 1.196  ; 
				}
				 // echo "--- montant apres -->".$montant."<br/>" ;
				// exit() ; 


					
					if  ($montant <= 0) {
						$erreur[] = "Le montant d'un avoire doit être strictement positif" ;
					}

									 
					list($max) = dbi_fetch_row(dbi_query("SELECT MAX(f.total) - if(sum(a.montant) is null, 0, sum(a.montant)) FROM ".TABLE_FACT." f LEFT JOIN ".TABLE_AVOIR." a using (fact_id) WHERE f.fact_id = $fId")) ;
					if($montant > $max)
						$erreur[] = "Le montant d'un avoir pour cette facture ne doit pas dépasser ".number_format($max, 2, ',', ' ').' €' ;
					// print_r($max);
					$i = 0 ; 
					if(empty($erreur) or $i == 0 )
					{
					
						// list($num) = dbi_fetch_row(dbi_query("SELECT value FROM ".TABLE_CONFIG." WHERE agence_id = $agence AND `key` = 'auto'")) ;
						// dbi_query("UPDATE ".TABLE_CONFIG." set value = value+1 WHERE agence_id=$agence AND `key` = 'auto'");
						list($num) = dbi_fetch_row(dbi_query("SELECT max(`num_avoir`) FROM `avoir`")) ;
						$num = $num + 1 ;
						
						// dbi_query("INSERT INTO ".TABLE_AVOIR." (montant, fact_id, agence_id, num_avoir, date,desc) VALUES('$montant', '$fId', '$agence', '$num', CURDATE()+0,'$desc')") ;
						// mysqli_query("SET NAMES 'utf8'");
					dbi_query("INSERT INTO ".TABLE_AVOIR." (des,montant, fact_id, agence_id, num_avoir, date) VALUES('$desc','$montant', '$fId', '$agence', '$num', CURDATE()+0)") ;
						list($total) = dbi_fetch_row(dbi_query("SELECT -total+sum(if(p.montant is null, 0, p.montant))+sum(if(a.montant is null, 0, a.montant)) AS paye,
				sum(if(a.montant is null, 0, a.montant)) avoir,
				f.date_fact, if(sum(if(p.montant is null, 0, p.montant))+sum(if(a.montant is null, 0, a.montant)) >= total, 'Réglé', if(sum(if(p.montant is null, 0, p.montant))+sum(if(a.montant is null, 0, a.montant)) = 0, 'Pas de r&egrave;glement', 'R&egrave;glement partiel')) statut,
				f.relance
				FROM ".TABLE_FACT." f
				LEFT JOIN ".TABLE_PAIEMENT." p ON f.fact_id=p.fact_id AND f.client_id=p.client_id
				LEFT JOIN ".TABLE_AVOIR." a ON f.fact_id = a.fact_id
				WHERE f.fact_id = $fId
				GROUP BY f.fact_id, total")) ;
						if($total > 0)
						{
							$q = dbi_query("SELECT * FROM ".TABLE_PAIEMENT." p WHERE fact_id = $fId ORDER BY paiement_id DESC") ;
							while($total > 0 && $p = dbi_fetch_row($q))
							{
								dbi_query("DELETE FROM ".TABLE_PAIEMENT." WHERE paiement_id = ".$p['paiement_id']) ;
								// echo "test <br/>" ; 
								payerFacture($fId, $p['montant'], $p['reglement_id'],$_POST['client_id'],$p['num_cheque'],$p['banque']) ;
								$total -= $p['montant'] ;
							}
						}
					}
					else
					{
					}
					$client_id = $_POST['client_id'] ;
				}
			

	?>





<!DOCTYPE html>
<html>

			<head>

			<?php include('header.php'); ?>
			<link rel="stylesheet" href="../../plugins/summernote/summernote-bs4.css">

			</head> 

<body class="hold-transition sidebar-mini">
												<!-- Site wrapper -->
<div class="wrapper">

<!-- TOP MENU -->
  <nav class="main-header navbar navbar-expand navbar-white navbar-light">
 <!-- Menu extensible -->
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
      </li>
	  
<!-- liens TOP MENU GAUCHE-->
     
	  <li>

	  </li>
	  
	  
	  
    </ul>

 <!-- liens TOP MENU DROITE -->
    <ul class="navbar-nav ml-auto">
     <!-- Placer ici l'élément à positionner à droite du TOP MENU -->
    </ul>
  
  </nav>  <!-- fin du TOP MENU -->
  
  
  
<!-- BARRE DE NAVIGATION -->

 <!-- Couleur et caracteristiques de la barre de navigation-->

 
 
 <?php include('menu.php'); ?>

 <!-- Ne pas toucher au dessus / fin de la BARRE DE NAVIGATION-->	

 <!-- DEMARRAGE DE LA PAGE PRINCIPALE -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <div class="content-header">
      <div class="container-fluid">
        <div class="row mb-2">
          <div class="col-sm-6">
            <h1 class="m-0 text-dark"></h1>
          </div><!-- /.col -->
          <div class="col-sm-6">
            
          </div><!-- /.col -->
        </div><!-- /.row -->
      </div><!-- /.container-fluid -->
    </div>
    <!-- /.content-header -->

    <!-- PAGE PRINCIPALE -->
    <div class="content">
      <div class="container-fluid">
        <div class="row">
	  <!-- DEFINITION DES COLONNES -->	
          <div class="col-lg-3">
		  
	 <!-- WIDGET AVEC LE NOM DU CLIENT -->		  
		   
			
		<?php include('widget_client.php'); ?>	
			  
			  
			  
			  
		 <!-- BARRE DE NAVIGATION DU CLIENT -->		  
            
			<?php include('menu_client.php'); ?>
			</div>
          
          <!-- PASSAGE A LA COLONNE DE DROITE-->
          <div class="col-lg-9">
		  
		  
		  
		  
		  	<div class="row">
				<!-- /.col -->
				<div class="col-md-12">
					<div class="card bg-light">
						<div class="card-header"><h3 class="card-title">INFOS FACTURATION</h3></div>
						<!-- form start -->
						<form role="form" method='POST' action=''>	  
							<!-- /.card-header -->
							<div class="card-body" >
								<div class="row">
									<?php 	$client = $client_id ? dbi_fetch_row(dbi_query("SELECT * FROM ".TABLE_CLIENT." WHERE client_id = $client_id")) : array() ; 
									if(isset($_GET["msg"])){  			?>
										<div class="alert alert-<?php echo $_GET["color"]; ?>  alert-dismissible col-12" role="alert">
										  <strong><?php echo $_GET["color"].': '; ?></strong><?php echo $_GET["msg"]; ?>.
										  <button type="button" class="close" data-dismiss="alert" aria-label="Close">
											<span aria-hidden="true">&times;</span>
										  </button>
										</div>
										<?php   }   ?>	  
											<input type="hidden" name="client_id" value="<?=$client_id?>">
											<div class="col-sm-4">	
												<div class="form-row">
													<label>	Mode de règlement :</label>
													 <?=get_drop_down_reglement2('reglement_id', "style='width:100%;'", $client['reglement_id'])?>
												</div>													
											</div> 
											<div class="col-sm-4">	
												<div class="form-row"> 
													<label >Échéance</label>
													<input type="text" class="form-control" name="reglement_delai" id="reglement_delai" value="<?=$client['reglement_delai'];?>" class="field required"   />
												</div> 
											</div> 
											<div class="col-sm-4">	
												<div class="form-row"> 
													<label>  facture par e-mail :</label>  
												  	<select class="form-control"  name="client_env_mail" >
														<option value="1" <?php if($client['client_env_mail']=='1') echo "SELECTED";?> >OUI </option>
														<option value="0" <?php if($client['client_env_mail']=='0') echo "SELECTED";?> >NON </option>
													</select>
												</div> 
											</div>
											<div class="col-sm-8">												
												<div class="form-row">
													<label >Adresse</label>
													<input  type="text" class="form-control" name="client_facture_mail" id="client_facture_mail" value="<?=$client['client_facture_mail'];?>"   />
												</div> 
											</div> 
																						
											
											<div class="form-group col-md-3">
												<label><br/> </label>
												<div class="input-group">
													<button  name="valider" type="submit" value=" Enregistrer " class="btn btn-info">Enregistrer</button>
												</div>
											</div>
												
											
								</div>
							</div>
						</form>
					</div>
				</div> <!-- /.col -->
			</div><!-- /.row -->
			





		  	<div class="row">
				<!-- /.col -->
				<div class="col-md-12">
					<div class="card card-info" style='border:2px solid #17a2b8;'>
						<div class="card-header"><h3 class="card-title">SAISIR UN AVOIR</h3></div>
						<!-- form start -->
						<form role="form" method='POST' action=''>	  
							<!-- /.card-header -->
							<div class="card-body" >
								<div class="row">
									<input type="hidden" name="client_id" value="<?=$client_id?>">
									
										<div class="col-sm-2">												
												<div class="form-row">
													<label >Montant : </label>
												</div> 
										</div>
										<div class="col-sm-4">	
											<div class="form-row">
												<input type="text" class="form-control" name="avoir" size="6"  class="field required"   />
											</div>
										</div>
										<div class="col-sm-2">	
											<div class="form-row">
												<label >facture:</label>
											</div>
										</div>
										<div class="col-sm-4">	
											<div class="form-row">
												<select class="form-control"   name="fact" style="width:100%" class="field required">
												<?php
												$q = dbi_query("SELECT f.num_fact, fact_id FROM ".TABLE_FACT." f WHERE f.client_id=$client_id ORDER BY num_fact DESC") ;
												while($f = dbi_fetch_row($q))
													echo '<option value="'.$f['fact_id'].'">Facture n&ordm;'.$f['num_fact'].'</option>' ;
												?>
												</select>
											</div>
										</div> 	

 
										<div class="form-group col-md-10"><!-- Liste déroulante établissement -->  
												<label>Designation </label>
												<textarea class="textarea" placeholder="Place some text here" style="width: 100%; height: 400px; font-size: 18px; line-height: 18px;  " name="desc"   >  </textarea>
										</div>	
										<div class="form-group col-md-2">
												<label><br/> </label>
												<div class="input-group">
													<button name="valider" type="submit" value=" Enregistrer "  class="btn btn-info">Enregistrer</button>
												</div>
										</div>
								</div> 			
							</div>
						</form>
					</div>	
				</div>
			</div><!-- /.row -->
			
			
			
			<div class="row">	
				<div class="col-md-12">
					<div class="card card-outline  card-info">
						 <div class="card-header">
							<h3 class="card-title"> LISTE DES FACTURES</h3>

							<div class="card-tools">
							  <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fas fa-minus"></i>
							  </button>
							</div>
							<!-- /.card-tools -->
						 </div>
						  <!-- /.card-header -->
						<div class="card-body" >
								
<?php
$query = "SELECT f.num_fact,
f.fact_id, total,date_debut,date_fin,
total-if(p.paye is null, 0, p.paye)-if(a.avoir is null, 0, a.avoir) AS paye,
if(a.avoir is null, 0, a.avoir) avoir,
f.date_fact, if(if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) >= total, 'Réglé', if(if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) = 0, 'Pas de r&egrave;glement', 'R&egrave;glement partiel')) statut,
f.relance
FROM ".TABLE_FACT." f
LEFT JOIN (select if(sum(if(montant is null, 0, montant)) is null, 0, sum(if(montant is null, 0, montant))) paye, fact_id FROM ".TABLE_PAIEMENT." where client_id = $client_id group by fact_id) p ON f.fact_id = p.fact_id
LEFT JOIN (select if(sum(if(montant is null, 0, montant)) is null, 0, sum(if(montant is null, 0, montant))) avoir, fact_id FROM ".TABLE_AVOIR." group by fact_id) a ON f.fact_id = a.fact_id
WHERE f.client_id=$client_id
AND f.agence_id=$agence
AND if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) %s total
GROUP BY date_fact, f.fact_id, total
order by num_fact DESC" ;
$q = dbi_query(sprintf($query, '>=')) ;


$query2 = "SELECT f.num_fact,
f.fact_id, total,date_debut,date_fin,
total-if(p.paye is null, 0, p.paye)-if(a.avoir is null, 0, a.avoir) AS paye,
if(a.avoir is null, 0, a.avoir) avoir,
f.date_fact, if(if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) >= total, 'Réglé', if(if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) = 0, 'Pas de r&egrave;glement', 'R&egrave;glement partiel')) statut,
f.relance
FROM ".TABLE_FACT." f
LEFT JOIN (select if(sum(if(montant is null, 0, montant)) is null, 0, sum(if(montant is null, 0, montant))) paye, fact_id FROM ".TABLE_PAIEMENT." where client_id = $client_id group by fact_id) p ON f.fact_id = p.fact_id
LEFT JOIN (select if(sum(if(montant is null, 0, montant)) is null, 0, sum(if(montant is null, 0, montant))) avoir, fact_id FROM ".TABLE_AVOIR." group by fact_id) a ON f.fact_id = a.fact_id
WHERE f.client_id=$client_id
AND f.agence_id=$agence
AND if(p.paye is null, 0, p.paye)+if(a.avoir is null, 0, a.avoir) %s total
GROUP BY date_fact, f.fact_id, total
order by num_fact DESC" ;
//printf($query, '<');
$date = date("Ymd"); 
// echo " $reglementDelai  $date <br/>"; 
$q2 = dbi_query(sprintf($query2, '<')) ;
if(mysqli_num_rows($q2) || mysqli_num_rows($q))
{
	// echo ' *************** ';

?><br clear="all" />

<table class="table table-bordered" >
	<tr>
		<th style="text-align:center;">Numéro</th>
		<th style="text-align:center;">Date facture</th>
		<th style="text-align:center;">Montant</th>
		<th style="text-align:center;">Net &agrave; payer</th>
		<th style="text-align:center;">Règlement</th>
		<th style="text-align:center;">Facture</th>
	</tr>
<?php
	while($f = dbi_fetch_row($q2))
	{
	// echo "---> $f['fact_id']"
$date2 = strtotime($f['date_fact']);
$a =  dateDiff($now, $date2) ;
 // if($a['day']> $reglementDelai )
 // {
 
	
?>
	<tr>
		<td style="text-align:center;"><?=$f['num_fact']?></td>
		<td style="text-align:center;"><?=int2date($f['date_fact'])?></td>
		<td style="text-align:center;"><?=number_format($f['total'], 2, ', ', ' ').' &euro;'?></td>
		<td style="text-align:center;"><?=number_format($f['paye'], 2, ', ', ' ')?> &euro; <?=($f['avoir'] > 0) ? '<br>(avoirrr de '.number_format($f['avoir'], 2, ', ', ' ').' &euro;)' : ''?></td>
		<td style="text-align:center;"><?=$f['statut']?></td>
		<td style="text-align:center;">
		<a href="code/fact.php?fid=<?=$f['fact_id']?>" target="_blank" class="btn btn-info btn-sm"><i class="fas fa-file-pdf"> </i>  Voir la facture  </a>   
		
		
		
		
<?=$f['relance'] ? ' | <a href="factures/'.$client_id.'/'.$f['fact_id'].'-'.$f['relance'].'.pdf" target="_blank">Voir la derni&egrave;re relance</a>' : ''?>
<?php
	if ($f['avoir'])
	{
		$qa = dbi_query("SELECT * FROM ".TABLE_AVOIR." WHERE fact_id = ".$f['fact_id']." AND agence_id = $agence") ;
		while($a = dbi_fetch_row($qa))
			printf('<br><a href="avoir.php?aid=%d" target="_blank">Avoir n&ordm;%d</a>', $a['avoir_id'], $a['num_avoir']);
	}
?></td>
	</tr>
<?php
// }
	}
	while($f = dbi_fetch_row($q))
	{
?>
	<tr>
		<td style="text-align:center;"><?=$f['num_fact']?></td>
		<td style="text-align:center;"><?=int2date($f['date_fact'])?></td>
		<td style="text-align:center;"><?=number_format($f['total'], 2, ', ', ' ').' &euro;'?></td>
		<td style="text-align:center;"><?=number_format($f['paye'], 2, ', ', ' ')?> &euro; <?=($f['avoir'] > 0) ? '<br>(avoir de '.number_format($f['avoir'], 2, ', ', ' ').' &euro;)' : ''?></td>
		<td style="text-align:center;"><?=$f['statut']?></td>
		<td style="text-align:center;"><a href="code/fact.php?fid=<?=$f['fact_id']?>" target="_blank" class="btn btn-info btn-sm"><i class="fas fa-file-pdf"> </i>  Voir la facture  </a>   
<?=$f['relance'] ? ' | <a href="factures/'.$client_id.'/'.$f['fact_id'].'-'.$f['relance'].'.pdf" target="_blank">Voir la derni&egrave;re relance</a>' : ''?>
<?php
	if ($f['avoir'])
	{
		$qa = dbi_query("SELECT * FROM ".TABLE_AVOIR." WHERE fact_id = ".$f['fact_id']." AND agence_id = $agence") ;
		while($a = dbi_fetch_row($qa))
			printf('<br><a href="avoir.php?aid=%d" target="_blank">Avoir n&ordm;%d</a>', $a['avoir_id'], $a['num_avoir']);
	}
?></td>
	</tr>
<?php
	}
	echo '</table><br/>';
}
?>
								
								
								
						</div>
					</div>
				 </div>	
			</div>

            
              </div>
            </div>
          </div>
          <!-- /.col-md-6 -->
        </div>
        <!-- /.row -->
      </div><!-- /.container-fluid -->
    </div>
    <!-- /.content -->
  </div>
  <!-- /.content-wrapper -->

  <!-- Control Sidebar -->
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
    <div class="p-3">
      <h5>Title</h5>
      <p>Sidebar content</p>
    </div>
  </aside>
  <!-- /.control-sidebar -->
  <footer class="main-footer">
    <div class="float-right d-none d-sm-block">
      <b>Version</b> 3.0.1
    </div>
    <strong>Copyright &copy; 2014-2019 <a href="http://adminlte.io">AdminLTE.io</a>.</strong> All rights
    reserved.
  </footer>

  <!-- Control Sidebar -->
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
  </aside>
  <!-- /.control-sidebar -->
</div>
<!-- ./wrapper -->

<!-- jQuery -->
<script src="../../plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="../../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="../../dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="../../dist/js/demo.js"></script>
<script src="../../plugins/summernote/summernote-bs4.min.js"></script>
<script>
  $(function () {
    // Summernote
    $('.textarea').summernote()
  })
</script>
</body>
</html>

AnonSec - 2021