#!/perl/bin/perl.exe
$|=1;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Date In: 2010-09-21
# Updates: 2010-09-21
# Author:Rodolfo Machon
# File Name: procesar_abonar_tributo_periodo_p.pl
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#Perl Modules
use Win32::ODBC;
use CGI;
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#HTML printing activation
print "Content-type: text/html\n\n";
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#Get parameters
$form	                = new CGI;
$appid	                = $form->param("appid");
$lan                    = $form->param("lan");
$i8_expediente_id       = $form->param("i8_expediente_id");
$c16_recibo_id          = $form->param("c16_recibo_id");
$c2_tipo_recibo_id      = $form->param("c2_tipo_recibo_id");
$i8_periodo             = $form->param("i8_periodo");
$i4_dim			= $form->param("i4_dim");
$c2_tipo_recibo_id      = $form->param("c2_tipo_recibo_id");
$dt_abono               = $form->param("dt_abono");
$v64_abono_agencia      = $form->param("v64_abono_agencia");
$v64_abono_sucursal     = $form->param("v64_abono_sucursal");
$generador              = $form->param("generador");
$abono_periodo		= $form->param("AbonoPeriodo");
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#Define subdirectories and general variables
$PATH 		= "../es/";
$file_html      = "es_procesar_abonar_tributo_periodo_p.html";
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
# ODBC
if (!($db = new Win32::ODBC($appid))){print "Error connecting to $appid <br>";print "Error: " . Win32::ODBC::Error() . "<br>";exit;}
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#Main Program
insertar_abono();
construct_page();
$db->Close();
exit;
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#SUB ROUTINES
sub insertar_abono {
	my $table    = "sdd_".$generador."_abonos";
	my $id_field = "i8_".$generador."_id";
	my @per_tar = split(/\~~/,$abono_periodo);
	for(my $i=1;$i<=$#per_tar;$i++){
		my @tar_d 		= split(/\|/,$per_tar[$i]);
		my $servicio		= $tar_d[0];
		my $c16_tarifa_id	= $tar_d[1];
		my $val			= $tar_d[2];
		my $fie			= $tar_d[3];
		my $int			= $tar_d[4];		
		my $mul			= $tar_d[5];
		my $c8_tributo_id	= substr($c16_tarifa_id,0,8);
		if($val>0){
			$sql="insert into $table ($id_field,c8_tributo_id,c16_tarifa_id,i8_periodo,d82_abono,c3_tipo_abono_id,c16_recibo_id,c2_tipo_recibo_id,dt_abono,v64_abono_agencia,v64_abono_sucursal,c1_balance_type,ts_in,ts_update)
			values('$i8_expediente_id','$c8_tributo_id','$c16_tarifa_id',$i8_periodo,$val,'VAL','$c16_recibo_id','$c2_tipo_recibo_id','$dt_abono','$v64_abono_agencia','$v64_abono_sucursal','$c1_balance_type',now(),now())";
			if($db->Sql($sql)){print "SQL failed. 1<br>";print "$sql<br>";print "Error: " . $db->Error() . "<br>";$db->Close();exit;}
		}	
		if($fie>0){
			$sql="insert into $table ($id_field,c8_tributo_id,c16_tarifa_id,i8_periodo,d82_abono,c3_tipo_abono_id,c16_recibo_id,c2_tipo_recibo_id,dt_abono,v64_abono_agencia,v64_abono_sucursal,c1_balance_type,ts_in,ts_update)
			values('$i8_expediente_id','$c8_tributo_id','$c16_tarifa_id',$i8_periodo,$fie,'FIE','$c16_recibo_id','$c2_tipo_recibo_id','$dt_abono','$v64_abono_agencia','$v64_abono_sucursal','$c1_balance_type',now(),now())";
			if($db->Sql($sql)){print "SQL failed. 2<br>";print "$sql<br>";print "Error: " . $db->Error() . "<br>";$db->Close();exit;}
		}
		if($int>0){
			$sql="insert into $table ($id_field,c8_tributo_id,c16_tarifa_id,i8_periodo,d82_abono,c3_tipo_abono_id,c16_recibo_id,c2_tipo_recibo_id,dt_abono,v64_abono_agencia,v64_abono_sucursal,c1_balance_type,ts_in,ts_update)
			values('$i8_expediente_id','$c8_tributo_id','$c16_tarifa_id',$i8_periodo,$int,'INT','$c16_recibo_id','$c2_tipo_recibo_id','$dt_abono','$v64_abono_agencia','$v64_abono_sucursal','$c1_balance_type',now(),now())";
			if($db->Sql($sql)){print "SQL failed. 1<br>";print "$sql<br>";print "Error: " . $db->Error() . "<br>";$db->Close();exit;}
		}	
		if($mul>0){
			$sql="insert into $table ($id_field,c8_tributo_id,c16_tarifa_id,i8_periodo,d82_abono,c3_tipo_abono_id,c16_recibo_id,c2_tipo_recibo_id,dt_abono,v64_abono_agencia,v64_abono_sucursal,c1_balance_type,ts_in,ts_update)
			values('$i8_expediente_id','$c8_tributo_id','$c16_tarifa_id',$i8_periodo,$mul,'MUL','$c16_recibo_id','$c2_tipo_recibo_id','$dt_abono','$v64_abono_agencia','$v64_abono_sucursal','$c1_balance_type',now(),now())";
			if($db->Sql($sql)){print "SQL failed. 2<br>";print "$sql<br>";print "Error: " . $db->Error() . "<br>";$db->Close();exit;}
		}
		if($i4_dim>0){
			$sql="insert into $table ($id_field,c8_tributo_id,c16_tarifa_id,i8_periodo,d82_abono,c3_tipo_abono_id,c16_recibo_id,c2_tipo_recibo_id,dt_abono,v64_abono_agencia,v64_abono_sucursal,c1_balance_type,ts_in,ts_update)
			values('$i8_expediente_id','$c8_tributo_id','$c16_tarifa_id',$i8_periodo,$i4_dim,'DIM','$c16_recibo_id','$c2_tipo_recibo_id','$dt_abono','$v64_abono_agencia','$v64_abono_sucursal','$c1_balance_type',now(),now())";
			if($db->Sql($sql)){print "SQL failed. 2<br>";print "$sql<br>";print "Error: " . $db->Error() . "<br>";$db->Close();exit;}
		}
	}	
}
sub construct_page {
	open (DATA, "$PATH$file_html");
		while ($line = <DATA>){
			$line =~ s/{lan}/$lan/g;
			$line =~ s/{appid}/$appid/g;		
			print $line;
		}		
	close (DATA);
}