rates=./tmpT/rates

regio=./tmpT/regio
./appl/sh/regio > $regio

# |  1 H00 regist 02 15   0 | 2 H01 region 02 01   2 | 3 H02 identi 30 00   4 |

comun=./tmpT/comun
./appl/sh/comun > $comun

# |  1 H00 regist 05 15   0 | 2 H01 codigo 05 00   5 | 3 H02 identi 25 00  10 |

zonas=./tmpT/zonas

# |  1 H00 correl 03 15   0 | 2 H01 codigo 03 00   3 | 3 H02 identi 30 00   6 |
# |  4 H03 observ 512 12  36 |

#  5 D00 comuna  5   51 |  6 D01 comuna  5   51 | 
./appl/sh/zonas | awk -F^ '
FILENAME == ARGV[1] { comu[$1]=$2 ; next }
FILENAME == ARGV[2] { regio[$1]=$2 ; next }
{
if($5+0) printf "%s^%s^%s^%s\n",$1,$2,regio[substr(comu[$5],1,2)],$5
if($6+0) printf "%s^%s^%s^%s\n",$1,$2,regio[substr(comu[$6],1,2)],$6
} ' $comun $regio - > $zonas

rate=./tmpT/rate
./appl/sh/rates > $rates

# |  1 H00 regist 05 15   0 | 2 H01 client 02 51   5 | 3 H02 fechac 10 08   7 |
# |  4 H03 observ 500 11  17 |

#  5 D00 presta  2   53 |  6 D01 modal   2   54 |  7 D02 zonas   3   55 | 
#  8 D03 region  2   56 |  9 D04 comun   5   57 | 10 D05 inicio  10  08 | 
# 11 D06 termin  10  08 | 12 D07 valor   10  01 | 

appl/sh/rates | 
awk -F^ ' 
FILENAME==ARGV[1] { com[$1]=$2;reg[$1]=substr($2,1,2);next }
FILENAME==ARGV[2] { zon[$4]=$1;next }
{
cc=1
zz=1
rg=1
tt=1
# POR COMUNA
if($9>0 && cc)
{
printf "%s^%s^%s^",$1,$5,$6
printf "%s^%d\n",$9,$12 
}
# POR ZONA

if($7>0 && zz) for(i in zon) if(zon[i]==$7)
{

printf "%s^%s^%s^",$1,$5,$6
printf "%s^%d\n",i,$12 
}
#POR REGION
if($8>0 && rg) for(i in reg) if(reg[i]==$8)
{
printf "%s^%s^%s^",$1,$5,$6
printf "%s^%d\n",i,$12 
}
if($7+$8+$9==0 &&tt) 
{
printf "%s^%s^%s^%d\n",$1,$5,$6,$12
}

} ' $comun $zonas $rates >$rate

