1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| use File::DosGlob 'glob'; ## Appel Module File commande Glob...
use File::Basename; ## Appel Module File commande Basename
use File::Copy; ## Appel Module File commande Copy
use File::Path; ## Appel Module File commande Path
# use List::Util qw(reduce);
# use strict;
# use warnings;
# use autodie;
use Cwd;
fileparse_set_fstype("MSWin32"); ## Specification type Files System pour Module File
##################
# VARIABLES PROG #
##################
$zero = 0; ## Variable zero de bourrage
my $pkzip = "C:\\rvs\\jobs\\pkzip25.exe"; ## utilitaire de decompression
my $dir_rvs_arrivee = "C:\\RVS\\ARRIVEE"; ## Rep rvs d'arriver des fichiers
my $dir_rvs_depart = "C:\\RVS\\DEPART"; ## Rep rvs d'archive des KVPS
my $dir_jobs = "C:\\RVS\\JOBS"; ## Rep des fichiers scripts
my $dir_histo = "C:\\RVS\\HISTO"; ## Rep Historique
my $dir_ET2000 = "C:\\RVS\\ARRIVEE\\ET2000"; #repertoire dans lequel on va
my $batch = "C:\\rvs\\jobs\\testlynx1.bat";
my $filetemp= "C:\\RVS\\TEMP";
my $logfile = "$dir_histo\\$id_kvps\\$date\\day.log"; # Log des routines
my $iWidth = 60; ## Largeur affichage pour sub Center
########################
# Sous Prog & Fonction #
########################
sub Center($$) {
local($Temp, $Width) = @_;
local($Len) = ($Width - length($Temp)) / 2;
return " " x int($Len), $Temp, " " x (int($Len) + (($Len != int($Len))? 1:0));
}
sub CALDATE() {
# Commande recuperant l'heure et la date systeme
# ATTENTION VARIABLE DATE & TIME DIFF EN Fr et Us
my ($month,$day) = @_;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); ## Commande recuperant l'heure et la date systeme
$month = $mon + 1;
$month = sprintf ("%02d",$month);
$day = sprintf ("%02d",$mday);
$hour = sprintf ("%02d",$hour);
$min = sprintf ("%02d",$min);
$sec = sprintf ("%02d",$sec);
$time = "$hour$min$sec";
$year += 1900;
$date = "$year.$month.$day";
}
sub CEORDER() {
# Appel du fichier INI donnant la correspondance Id_kvps = N° ordre carbase
open (CEORDER,"$dir_jobs\\CEORDER.INI") || die "\U\n HOULA ouverture ceorder.ini impossible \n $!";
@list_kvps = <CEORDER> ;
close (CEORDER);
}
sub FILESEND() {
# Appel du fichier INI donnant la correspondance Id_kvps = N° ordre carbase
open (FILESEND,"$filetemp\\filesend.txt") || die "\U\n HOULA ouverture FILESEND.TXT impossible \n $!";
@list_send = <FILESEND> ;
print "\n\t - la liste des fichiers a envoyer est : @list_send";
close (FILESEND);
}
# Recuperation des N° de KVPS
CEORDER;
print "\n\n\t", Center("---------- IDENTIFICATION DES KVPS ----------", $iWidth), "\n";
foreach my $line (@list_kvps){
chomp $line;
my @mots = split(/\s+/,$line);
next if $mots[0] eq "#";
next if $mots[0] eq "";
next if substr ($mots[0],0,11) eq "num_atelier";
next if substr ($mots[0],0,11) eq "num_ATELIER";
$id_kvps = substr ($mots[0],9,5); ## recup id_kvps
$nb_order = substr ($mots[1],9); ## recup N° ordre carbase correspondant a L'id_kvps
$traitement_kvps = "NO";
print "\n\t - le numero de kvps est : $id_kvps";
# nous avons le KVPS pour ce positionner dans le repertoire lui appartenant
my $dir_kvps = "$dir_rvs_depart\\$id_kvps\\sauve";
print "\n\t - $dir_kvps";
# identifier les fichier Lynx generer ce jour et inscription de ce dernier dans un fichier
system ("$batch $dir_kvps");
# extraction du nom de fichier a envoyer
FILESEND;
foreach my $namefile (@list_send){
chomp $namefile;
my @name = split(/\s+/,$namefile);
next if $word[0] eq "";
$id_name = substr ($word, 0,17);
print "\n\t - le fichier a envoyer est : $id_name";
}
# envoie du fichier via SFTP
} |