#!/usr/bin/perl use strict; my $origen = shift; my $destino = shift; open web020, "< ".$origen."/web020"; open web020_corregido, "> ".$destino."/web020"; my $registro = ; print web020_corregido $registro; $registro = ; while ($registro) { my @campos = split(",",$registro); my %agente = (); my %nov = (); $agente{'nrodoc'} = $campos[3]; while ($agente{'nrodoc'} == $campos[3] and $registro) { my $anio = $campos[0]; my $mes = $campos[1]; my $novedad = $campos[2]; if (!defined($nov{$novedad}->{$anio}->{$mes})) { foreach my $dia (1..31) { $dia = "0".$dia if($dia < 10); $nov{$novedad}->{$anio}->{$mes}->{$dia} = $campos[$dia+3]; } }else { foreach my $nov_dia (1..31) { $nov_dia = "0".$nov_dia if($nov_dia < 10); if($campos[$nov_dia+3] ne "00") {$nov{$novedad}->{$anio}->{$mes}->{$nov_dia}="01"}; } } $registro = ; if($registro) {@campos = split(",",$registro);} } foreach my $novedad (sort(keys(%nov))) { foreach my $anio (sort(keys(%{$nov{$novedad}}))) { foreach my $mes (sort(keys(%{$nov{$novedad}->{$anio}}))) { print web020_corregido $anio.",".$mes.",".$novedad.",".$agente{'nrodoc'}.","; my $total = 0; my $chequeo = 0; foreach my $dia (sort(keys(%{$nov{$novedad}->{$anio}->{$mes}}))) { print web020_corregido $nov{$novedad}->{$anio}->{$mes}->{$dia}.","; $total++ if($nov{$novedad}->{$anio}->{$mes}->{$dia} > 0); } print web020_corregido $total."\n"; } } } }