Page 1 sur 2

weekend et jours feriés

Posté : 28 août 2012, 10:19
par piotrowski-s
Bonjour à tous, j'ai un script qui marche sous la forme de scenario avec ^plusieurs dates.

En fait tout est cherché dans la base de donnée.

Le soucis c'est que la date enregistrée ne peut être égale ni à un jours ferié ni à un weekend.

J'ai déjà la liste des jours fériés concernés dans la base de donnée.

Le soucis c'est que je ne sais pas comment procéder pour le changement en fait.

voici le code que j'utilise lors de l'enregistrement sur ma base de donnée.
<?php
//var_dump($_POST['data']) ;

if (isset($_POST['liasse']))  {
$value = $_POST['data'] ; 

foreach($value as $key => $array)
{
 
        $sql = 'INSERT INTO agenda SET
		liasse = "'.mysql_real_escape_string($_POST['liasse']).'",
        code_s = "'.mysql_real_escape_string($array['code_s']).'",
        date_action = "'.date('Y-m-d',strtotime($array['date'])).'", 
        libelle = "'.mysql_real_escape_string($array['titre']).'",
        action = "'.mysql_real_escape_string($array['action']).'",
		description = "'.mysql_real_escape_string($array['libelle']).'",
		n_doss = "'.mysql_real_escape_string($_POST['n_doss']).'",
		qualite = "'.mysql_real_escape_string($_POST['qualite']).'"
		';
mysql_query($sql) or die(__LINE__.mysql_error().$sql);

}

}
echo "<script language='javascript'>window.close()</script>";
?>
Je pensais passer par un strreplace mais la fonction me semble peut adapter.

Je pensais aussi passer par javascript mais le soucis c'est que si la personne le désactive même si
c'est plutôt rare dans la base de donnée j'aurais des traitements agendés à des weekends et qui ne seront
pas fait.

Du coup je ne sais pas comment procéder.


Par avance merci pour votre aide.

Re: weekend et jours feriés

Posté : 28 août 2012, 11:36
par schim59
Bonjour,
Pour savoir si c'est le week end tu regarde si je jour est un samedi ou un dimanche.
$datetime = strftime('%A %d %B %Y', strtotime('$ta_date));
%A affiche lundi, mardi etc....

Bon codage.

Re: weekend et jours feriés

Posté : 28 août 2012, 11:56
par moogli
yop plutot $numero = date("w", strtotime($ladate));

et si $numero === 0 ou $numero === 6 tu rejete (plus d'info dans la doc de la fonction date ;)

Attention à la syntaxe :)


@+

Re: weekend et jours feriés

Posté : 28 août 2012, 12:57
par schim59
=== égale en genre et en valeur

Re: weekend et jours feriés

Posté : 28 août 2012, 13:24
par moogli
En type, oui sinon le zéro peux être confondu avec false ou null

Re: weekend et jours feriés

Posté : 28 août 2012, 14:42
par piotrowski-s
en fait j'ai un script que j'ai fais pour changer les dates si elles sont du weekend au jour suivant.

Mais il ne fonctionne pas.

je ne sais pas pourquoi.

J'ai donc bien mis le tout dans la balise du body avec l'action onload.

voila le code en question:[javascript]<script type="text/javascript">
function getdate()
{
var items = new Array();
var itemCount = document.getElementsByClassName("date");

for(var i = 0; i < itemCount.length; i++)
{
items = document.getElementById("date" + (i+1)).value;
}

return items;

for(var i = 0; i < itemCount.length; i++)
{
items = document.getElementById("date" + (i+1)).value;
var itemDtParts = item.split("-");
var itemDt = new Date(itemDtParts[2], itemDtParts[1] - 1, itemDtParts[0]);
if (itemDt.getDay() == 6 || itemDt.getDay() == 0) {
aler('weekend!');
}
}
}
</script>
[/javascript]

je ne sais pas trop comment procéder.

Je n'ai pas de messages d'erreur, du coup rien ne s'affiche dans la console et je reste avec ce code
qui ne fonctionne pas.

Pour tester j'ai mis une alert mais elle n'est même pas renvoyée.

L'idéal c'est que les jours du weekend soient transformés en lundi. que ce soit le samedi ou le dimanche.

Par avance merci pour votre aide.

Re: weekend et jours feriés

Posté : 28 août 2012, 15:50
par Mazarini
A part le fait qu'il manque un t à alert('weekend'), je ne vois pas d'erreur de syntaxe.

Il y a aussi un problème de logique avec le return items avant la dernière boucle.

Re: weekend et jours feriés

Posté : 28 août 2012, 16:04
par piotrowski-s
j'ai essayé comme cela mais les jours ne changent pas je ne comprends pas pourtant tout semble ok non?[javascript]<script type="text/javascript">
function getdate()
{
var items = new Array();
var itemCount = document.getElementsByClassName("date");

for(var i = 0; i < itemCount.length; i++)
{
items = document.getElementById("date" + (i+1)).value;
}



for(var i = 0; i < itemCount.length; i++)
{
items = document.getElementById("date" + (i+1)).value;
var itemDtParts = items.split("-");
var itemDt = new Date(itemDtParts[2], itemDtParts[1] - 1, itemDtParts[0]);
if (itemDt.getDay() == 6) {

itemCount.value = (itemDt.getDate() < 9 ? "0" : "")+ (itemDt.getDate() + 2)+ "-" +(itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();

}
if (itemDt.getDay() == 0)
{

itemCount.value = (itemDt.getDate() < 9 ? "0" : "")+ (itemDt.getDate() + 1)+ "-" +(itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();
}
return items;
}
</script> [/javascript]

Re: weekend et jours feriés

Posté : 28 août 2012, 16:23
par Mazarini
itemCount.value => items.value ? (mais je suis une quiche en javascript)

Re: weekend et jours feriés

Posté : 28 août 2012, 16:47
par piotrowski-s
non, en fait ça ne fonctionne pas de la sorte.

Re: weekend et jours feriés

Posté : 28 août 2012, 22:22
par moogli
C'est quoi le html qui va avec tous ça ?

j'ai pas l'impression que tu fasse des modifications la :s

as tu testé JQuery ou un autre framework JS qui pourrait te simplifier un peu la vie ? :)


@+

Re: weekend et jours feriés

Posté : 29 août 2012, 07:47
par piotrowski-s
Bonjour voici le code utilisé.
<form action="<?php echo (isset($_POST['go'])) ? 'go2.php' : '#'; ?>"
method="post">
    <input type="hidden" name="liasse" value="<?php echo $_GET['liasse']; ?>"
    />
    <input type="hidden" name="n_doss" value="<?php echo $_GET['n_doss']; ?>"
    />
    <table id="box-table-a">
        <tr>
            <th scope="col">
                <input name="data[<?php echo ++$i; ?>][code_s]" type="text" value="CODE S"
                size="10">
            </th>
            <th scope="col">
                <input name="data[<?php echo $i; ?>][libelle]" type="text" value="LIBELLE"
                size="30">
            </th>
            <th scope="col">
                <input name="data[<?php echo $i; ?>][action]" type="text" value="ACTION"
                size="15">
            </th>
            <th scope="col">
                <input name="data[<?php echo $i; ?>][libelle]" type="text" value="DESCRIPTION"
                size="40">
            </th>
            <th scope="col">
                <input type="text" name="data[<?php echo $i; ?>][date]" value="DATE D'ACTION"
                size="12">
            </th>
            <th scope="col">
                <input type="text" name="data[<?php echo $i; ?>][date]" value="VALIDATION"
                size="12">
            </th>
            <th scope="col"><strong>ETAT</strong>
            </th>
        </tr>
        <?php while($row=m ysql_fetch_assoc($qry)): ?>
            <tr>
                <td>
                    <input name="data[<?php echo ++$i; ?>][code_s]" type="text" value="<?php echo $row['code_s'];?>"
                    size="10">
                </td>
                <td>
                    <input name="data[<?php echo $i; ?>][libelle]" type="text" value="<?php echo $row['libelle']; ?>"
                    size="30">
                </td>
                <td>
                    <input name="data[<?php echo $i; ?>][action]" type="text" value="<?php echo $row['action']; ?>"
                    size="15">
                </td>
                <td>
                    <input name="data[<?php echo $i; ?>][libelle]" type="text" value="<?php echo $row['description']; ?>"
                    size="40">
                </td>
                <td>
                    <script type="text/javascript">
                        //<![CDATA[
                        window.addEvent('domready', function () {
                            myCal1 = new Calendar({
                                'data[$i][date]': 'd-m-Y'
                            }, {
                                direction: 0,
                                tweak: {
                                    x: 6,
                                    y: 0
                                }
                            });
                        });
                        //]]>
                    </script>
                    <input type="text" name="data[<?php echo $i; ?>][date]" class="date"
                    id="date<?php echo $i; ?>" value="<?php 


echo date('d-m-Y',strtotime($row['date_action'])) ;

 ?>" size="12">
                </td>
                <td nowrap>
                    <input type="text" name="data[<?php echo $i; ?>][date_validation]" id="data[<?php echo $i; ?>][date_validation]"
                    value="<?php if($row['date_validation']=='0000-00-00') {echo 'Non trait&eacute;' ; }
 else {
echo (date('d-m-Y',strtotime($row['date_validation']))); }
 ?>" size="12">
                </td>
                <td nowrap>
                    <?php if($row[ 'date_validation']=='0000-00-00' AND strtotime($row[
                    'date_action'])>strtotime(date('Y-m-d'))) {?><a href="edit-action.php?id=<?php echo $row['id'] ; ?>&n_doss=<?php echo $row['n_doss'] ; ?>&liasse=<?php echo $_GET['liasse'] ?>&qualite=<?php echo $_GET['qualite'] ?>"><img src="images/gtk-edit.png" width="24" height="24"></a> 
                        <a
                        href="validate-action.php?id=<?php echo $row['id'] ; ?>&n_doss=<?php echo $row['n_doss'] ; ?>&liasse=<?php echo $_GET['liasse'] ?>&qualite=<?php echo $_GET['qualite'] ?>">
                            <img src="images/go.gif" width="24" height="24">
                            </a> <a href="delete-action.php?id=<?php echo $row['id'] ; ?>&n_doss=<?php echo $row['n_doss'] ; ?>&liasse=<?php echo $_GET['liasse'] ?>"
                            onClick="return confirm('voulez vous vraiment supprimer cette action ?')"><img src="images/trash-paper.png" width="24" height="24"></a>
                            <?php
                            } elseif($row[ 'date_validation']=='0000-00-00' AND strtotime($row[
                            'date_action'])<=strtotime(date( 'Y-m-d'))) {?><a href="#" onClick="return confirm('Vous ne pouvez pas &eacute;diter ou changer la date d\'une action appartenant à votre passif !')"><img src="images/gtk-edit.png" width="24" height="24"></a> 
                                <a
                                href="validate-action.php?id=<?php echo $row['id'] ; ?>&n_doss=<?php echo $row['n_doss'] ; ?>&liasse=<?php echo $_GET['liasse'] ?>&qualite=<?php echo $_GET['qualite'] ?>">
                                    <img src="images/go.gif" width="24" height="24">
                                    </a> <a href="#" onClick="return confirm('Vous ne pouvez pas supprimer une action appartenant à votre passif !')"><img src="images/trash-paper.png" width="24" height="24"></a>
                                    <?php
                                    } else { ?>
                                        <img src="images/tick_48.png" width="24" height="24">
                                        <?php } ?>
                </td>
            </tr>
            <?php endwhile; ?>
                </td>
                </tr>
    </table>

Re: weekend et jours feriés

Posté : 29 août 2012, 08:55
par piotrowski-s
en fait le problème est dans ces lignes:

[javascript]if (itemDt.getDay() == 6) {

itemCount.value = itemDt.getDate()+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();


}
if (itemDt.getDay() == 0) {

itemCount.value = itemDt.getDate()+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();

}[/javascript]

elle devrait changer vetrs le sprochain lundi que ce soit samedui ou dimanche mais les jours restent les même

Re: weekend et jours feriés

Posté : 29 août 2012, 09:14
par piotrowski-s
j'ai essayé ainsi [javascript]
document.getElementById('date').value = (itemDt.getDate() < 9 ? "0" : "")+ (itemDt.getDate()+2)+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();[/javascript]

mais ça ne fonctionne pas aussi j'ai fais comme ça [javascript] itemCount.value = (itemDt.getDate() < 9 ? "0" : "")+ (itemDt.getDate()+2)+ "-" + (itemDt.getMonth() < 9 ? "0" : "") + (itemDt.getMonth() + 1) + "-" + itemDt.getFullYear();
[/javascript]

ça fonctionne bien mais que lorsque je clic après au bout d'une microsecondes les dates reprennent leur valeurs originales.

Re: weekend et jours feriés

Posté : 29 août 2012, 09:22
par moogli
je te conseil de tester la chose sur chrome et d'utiliser l'extension developper qui te permettras de debug ton JS et donc de suivre ce qui se passe ;)



@+