paci1=./tmp/paci1
pc=./tmp/pc
pc1=./tmp/pc1
PG1=./tmp/PG1
F1=./tmp/F1
PG=./tmp/PG
NM=./tmp/NOMATCH
RRT=./IMP/RRT
./fact 00/00/0000 99/99/9999 1 >/dev/null
./pac1 00/00/0000 99/99/9999 1 >/dev/null
./appl/sh/paci1 > $paci1
#Prestaciones por paciente 
awk -F"^" ' $1!=ant { reg=0 }
{ print $1""sprintf("%.2d",reg)"^"trail($22)trail($23) }
function trail(txt) { while (substr(txt,length(txt),1)==" ") txt=substr(txt,1,length(txt)-1); return (txt) } ' $paci1 >$pc1
#Datos de paciente
awk -F"^" ' { print $1"^"trail($2)"^"trail($3) }
function trail(txt) { while (substr(txt,length(txt),1)==" ") txt=substr(txt,1,length(txt)-1); return (txt) } ' $paci1 |
sort -u > $pc
# |  7 H06 comuna 20 00 188 | 8 H07 ciudad 20 00 208 | 9 H08 sexoss 09 50 228 |
# | 10 H09 nacimt 10 00 237 |11 H10 contac 40 00 247 |12 H11 telefo 40 00 287 |
# | 13 H12 tcelul 40 00 327 |14 H13 correo 50 00 367 |15 H14 actges 10 00 417 |
# | 16 H15 renova 10 00 427 |17 H16 diagno 80 00 437 |18 H17 observ 512 13 517 |
# | 19 H18 isapre 02 51 1029 |20 H19 fechat 10 00 1031 |21 H20 status 02 53 1041 |

# 22 D00 presta  2   54 | 23 D01 modali  2   52 | 24 D02 topes   2   01 | 
# 25 D03 di      2   00 | 26 D04 di      2   00 | 27 D05 di      2   00 | 
# 28 D06 di      2   00 | 29 D07 di      2   00 | 30 D08 di      2   00 | 
# 31 D09 di      2   00 | 32 D10 di      2   00 | 33 D11 di      2   00 | 
# 34 D12 di      2   00 | 35 D13 di      2   00 | 36 D14 di      2   00 | 
# 37 D15 di      2   00 | 38 D16 di      2   00 | 39 D17 di      2   00 | 
# 40 D18 di      2   00 | 41 D19 di      2   00 | 42 D20 di      2   00 | 
# 43 D21 di      2   00 | 44 D22 di      2   00 | 45 D23 di      2   00 | 
# 46 D24 di      2   00 | 47 D25 di      2   00 | 48 D26 di      2   00 | 
# 49 D27 di      2   00 | 50 D28 di      2   00 | 51 D29 di      2   00 | 
# 52 D30 di      2   00 | 53 D31 di      2   00 | 54 D32 di      2   00 | 
# 55 D33 total   1   01 | 
#Planilla de pagos del Cliente Oncovida
pagos=./tmp/pagos
./appl/sh/pagos |
awk -F"^" ' { for (i=1;i<NF;i++) printf "%s^",trail($i) ; printf "%s\n",trail($i)  } 
function trail(txt) { while (substr(txt,length(txt),1)==" ") txt=substr(txt,1,length(txt)-1); return (txt) } ' > $pagos
# |  1 H00 regist 06 15   0 | 2 H01 idplan 10 00   6 | 3 H02 pacien 12 00  16 |
# |  4 H03 nombre 35 00  28 | 5 H04 previs 35 00  63 | 6 H05 nomite 120 00  98 |
# |  7 H06 idprog 10 00 218 | 8 H07 fefpre 10 00 228 | 9 H08 vigdes 10 00 238 |
# | 10 H09 vighas 10 00 248 |11 H10 valort 07 01 258 |12 H11 presta 35 00 265 |
# | 13 H12 rutpre 12 00 300 |14 H13 empres 60 00 312 |15 H14 rutemp 12 00 372 |
# | 16 H15 linref 04 01 384 |17 H16 match  06 00 388 |

awk -F"^" '
function f1(f) { return substr(f,9)"/"substr(f,6,2)"/"substr(f,1,4) }
function rut(rt)
{
	if (index(rt,".")) return rt
	if(length(rt)==9) return substr(rt,1,1)"."substr(rt,2,3)"."substr(rt,5)
else return substr(rt,1,2)"."substr(rt,3,3)"."substr(rt,6)
} 
FILENAME == ARGV[1] { pac[$2]=$1"^"$3 ;next  } 
FILENAME == ARGV[2] { rrt[$2]=$1"^"$3 ;next  } 
{
tr=rut($3)
 if(pac[tr]=="")
{
	pac[tr]="XXXXX^XXXXXXXXXX"
	 print tr,$4  >"'"$NM"'"
}
printf "%s^",pac[tr]
printf "%s^",tr
if(rrt[$6]!="") printf "%s^",rrt[$6]
#printf "%s^",$6
#printf "%s^",$4
printf "%s^",f1($8)
printf "%s^",f1($9)
printf "%s^",f1($10)
printf "%s^",$11
printf "%s^",$12
if(substr($13,1,1)==9)
printf "%s^",rut($13)
else printf "%s^",rut("1"$13)
printf "%s^",FNR
print "" 
} ' $pc $RRT $pagos > $PG1
sort -u $NM -o $NM
awk -F"^" '
FILENAME == ARGV[1] { pg[$3$9$14]=$3"^"$4"^"$6"^"$9"^"$12"^"$14"^"$15; ppg++ }
FILENAME == ARGV[2] { fc[$2$5$6]=$1"^"$2"^"$4"^"$5"^"$6"^"$7"^"$8 ; ffc++ }
END { 
 print ppg,ffc
for (i in fc) if (pg[i]!="") { ppg--;ffc--;  printf "%s^|%s\n",pg[i],fc[i] >"tmp/CR0" ; pg[i]="" ; fc[i]="" }
for (i in pg) if (pg[i]!="" && fc[i]!="") { ppg--;ffc--; printf "%s^|%s\n",pg[i],fc[i] >"tmp/CR1"; pg[i]="" ; fc[i]="" }
 print ppg,ffc
for (i in fc) if(fc[i]!="") print fc[i] >"tmp/CR1"
print "---------"
for (i in pg) if(pg[i]!="") print pg[i] >"tmp/CR2"
}

' $PG1 $F1

exit

exit
==> tmp/PG1 <==
00004^AGUIRREZABAL^11.736.508-5^0101^58800^58800^03/12/2018^30/11/2018^29/12/2018^58800^Elizabeth Correa Daz^16.203.285-2^7^
00004^AGUIRREZABAL^11.736.508-5^0101^58800^58800^06/12/2018^30/11/2018^29/12/2018^58800^Elizabeth Correa Daz^16.203.285-2^8^
00004^AGUIRREZABAL^11.736.508-5^0101^58800^58800^11/12/2018^30/11/2018^29/12/2018^58800^Elizabeth Correa Daz^16.203.285-2^9^
00004^AGUIRREZABAL^11.736.508-5^0101^58800^58800^14/12/2018^30/11/2018^29/12/2018^58800^Elizabeth Correa Daz^16.203.285-2^10^
00004^AGUIRREZABAL^11.736.508-5^0101^58800^58800^17/12/2018^30/11/2018^29/12/2018^58800^Elizabeth Correa Daz^16.203.285-2^11^
00004^AGUIRREZABAL^11.736.508-5^0201^28171^28171^03/12/2018^30/11/2018^29/12/2018^28171^Sandra MaulUn Angel^16.621.429-7^12^
00004^AGUIRREZABAL^11.736.508-5^0201^28171^28171^06/12/2018^30/11/2018^29/12/2018^28171^Sandra MaulUn Angel^16.621.429-7^13^
00004^AGUIRREZABAL^11.736.508-5^0201^28171^28171^11/12/2018^30/11/2018^29/12/2018^28171^Sandra MaulUn Angel^16.621.429-7^14^
00004^AGUIRREZABAL^11.736.508-5^0201^28171^28171^14/12/2018^30/11/2018^29/12/2018^28171^Sandra MaulUn Angel^16.621.429-7^15^
00004^AGUIRREZABAL^11.736.508-5^0201^28171^28171^17/12/2018^30/11/2018^29/12/2018^28171^Sandra MaulUn Angel^16.621.429-7^16^
==> tmp/F1 <==
000047^00004^29/12/2018^0006^03/12/2018^16.203.285-2^Mdico^Domicilio^58800^
000062^00004^29/12/2018^0106^03/12/2018^16.621.429-7^Enfermera^Domicilio^28171^
000029^00003^26/12/2018^0010^04/12/2018^16.203.285-2^Mdico^Domicilio^58800^
000038^00003^26/12/2018^0110^04/12/2018^16.621.429-7^Enfermera^Domicilio^28171^
000065^00004^29/12/2018^0107^04/12/2018^16.621.429-7^Enfermera^Domicilio^28171^
000011^00002^25/12/2018^0013^06/12/2018^16.203.285-2^Mdico^Ambulatoria^24673^
000020^00002^25/12/2018^0113^06/12/2018^16.621.429-7^Enfermera^Ambulatoria^14649^
000050^00004^29/12/2018^0009^06/12/2018^16.203.285-2^Mdico^Domicilio^58800^
000068^00004^29/12/2018^0109^06/12/2018^16.621.429-7^Enfermera^Domicilio^28171^
000053^00004^29/12/2018^0014^11/12/2018^16.203.285-2^Mdico^Domicilio^58800^
IDPACIENTE;NOMBRE PACIENTE;PREVISION;NOMBRE ǍTEM;ID PROGRAMA;FECHA PRESTACION;VIGENCIA DESDE;VIGENCIA HASTA;VALOR;PRESTADOR;RUT PRESTADOR;EMPRESA;RUT EMPRESA
4179099-7;JOSE LAGOS MERINO;DIPRECA;Visita a domicilio por enfermera, matrona o nutricionista;153934;2018-12-11;2018-12-10;2019-01-09;$ 28.171;Sandra Nicole MaulUn Angel;6621429-7;SERVICIOS MEDICOS DE TELEMEDICINA Y TELERADIOLOGIA SPA;76.713.857-1
4179099-7;JOSE LAGOS MERINO;DIPRECA;Visita a domicilio por enfermera, matrona o nutricionista;153934;2018-12-14;2018-12-10;2019-01-09;$ 28.171;Sandra Nicole MaulUn Angel;6621429-7;SERVICIOS MEDICOS DE TELEMEDICINA Y TELERADIOLOGIA SPA;76.713.857-1
4179099-7;JOSE LAGOS MERINO;DIPRECA;Visita a domicilio por enfermera, matrona o nutricionista;153934;2018-12-20;2018-12-10;2019-01-09;$ 28.171;Sandra Nicole MaulUn Angel;6621429-7;SERVICIOS MEDICOS DE TELEMEDICINA Y TELERADIOLOGIA SPA;76.713.857-1
4179099-7;JOSE LAGOS MERINO;DIPRECA;Visita a domicilio por enfermera, matrona o nutricionista;153934;2018-12-27;2018-12-10;2019-01-09;$ 28.171;Sandra Nicole MaulUn Angel;6621429-7;SERVICIOS MEDICOS DE TELEMEDICINA Y TELERADIOLOGIA SPA;76.713.857-1
