#!C:/perl/bin/perl.exe
$|=1;
#------------------------------------------------------
#Perl Modules
use Win32::ODBC;
use CGI;
#------------------------------------------------------
#------------------------------------------------------
#HTML printing activation
print "Content-type: text/html\n\n";
#------------------------------------------------------
#------------------------------------------------------
#Get parameters
$form	 	= new CGI;
$lan	 	= $form->param("lan");
$appid	 	= $form->param("appid");
$i8_nic_id	= $form->param("i8_nic_id");
$i8_inmueble_id	= $form->param("i8_inmueble_id");
$cuenta		= $form->param("cuenta");
$direccion	= $form->param("txt_direccion");
$nombre		= $form->param("v128_nombre");
$periodos	= $form->param("i8_periodos");
$total_desecho	= $form->param("total_d82_valor");
$total_fiesta	= $form->param("total_fiesta");
$total_interes	= $form->param("total_interes");
$concepto	= "PAGO TASAS MUNICIPALES";
$dt_emision	= $form->param("dt_vencimiento");

#------------------------------------------------------
#------------------------------------------------------
#Define subdirectories and general variables
#------------------------------------------------------
#------------------------------------------------------
# ODBC
if (!($db1 = new Win32::ODBC($appid))){print "Error connecting to $appid <br>";print "Error: " . Win32::ODBC::Error() . "<br>";exit;}
if (!($db = new Win32::ODBC($appid))){print "Error connecting to $appid <br>";print "Error: " . Win32::ODBC::Error() . "<br>";exit;}

#------------------------------------------------------
#------------------------------------------------------
#Main Program
$PATH 		= "../".$lan."/";
$file_html	="es_result_recibo_caess.html";
#process_periodos();
crear_mandamiento();
construct_page();
$db->Close();
$db1->Close();
exit;
#------------------------------------------------------
#------------------------------------------------------
# SUB-ROUTINES

$i=0;
sub process_periodos
{
	
	@pers=split(/\~/,$periodos);
	#print @pers;
	
	for($x=0;$x<=$#pers;$x++)
	{
		@per=split(/\|/,$pers[$x]);
		
		$concepto.=$per[0];
		$concepto.=",";
	}
}
sub insert_abonos
{
	
	@pers=split(/\~/,$periodos);
	
	for($x=0;$x<=$#pers;$x++)
	{
		@per=split(/\,/,$pers[$x]);
		
		$sql="update sdd_desecho_tcargos set d82_pagado=d82_pagado+$per[2],v8_tipo='SIM' where i8_nic_id='$i8_nic_id' and i8_periodo='$per[0]' and c8_cuenta_id='$cuenta'" ;
		#print "$sql<br>";
		if ( $db1->Sql($sql) ) {SQLfail($db,$sql,'Error creando el detalle del mandamiento')}
	}
}
sub crear_mandamiento{
	$v128_contribuyente=$nombre;
	$i8_contribuyente_id=99999999;
	$i2_tipo_pago_id=1;
	$i2_tipo_departamento_id=2;
	$c3_tipo_generador_id="INM";
	$c2_tipo_mandamiento_id="RE";
	$txt_concepto="PAGO TASAS MUNICIPALES";
	$c4_status_mandamiento_id="OPEN";
	$i2_cajero=1;
	
	$sql="insert into sdm_mandamientos(i8_contribuyente_id,i2_tipo_pago_id,i2_tipo_departamento_id,
	c3_tipo_generador_id,c2_tipo_mandamiento_id,v128_contribuyente,dt_emision,dt_vencimiento,txt_concepto,
	c4_status_mandamiento_id,i2_cajero_id,ts_in,ts_update,txt_direccion,c8_cuenta_id)
	values($i8_contribuyente_id,$i2_tipo_pago_id,$i2_tipo_departamento_id,'$c3_tipo_generador_id',
	'$c2_tipo_mandamiento_id',\"$v128_contribuyente\",'$dt_emision','$dt_emision','$txt_concepto',
	'$c4_status_mandamiento_id',$i2_cajero,now(),now(),\"$direccion\",'$cuenta')";	
	#print "$sql<br>";
	if ( $db->Sql($sql) ) {SQLfail($db,$sql,'Error al Crear el mandamiento')}
	$sql="select i8_mandamiento_id from sdm_mandamientos where v128_contribuyente='$v128_contribuyente' and dt_emision='$dt_emision' and txt_concepto='$txt_concepto' order by ts_in desc limit 1";
	#print "$sql<br>";
	$i8_mandamiento_id=0;
	if ( $db->Sql($sql) ) {SQLfail($db,$sql,'Error al crear el mandamiento')}
	while($db->FetchRow())
	{
		undef @row;
		@row=$db->Data();
		$i8_mandamiento_id=$row[0];
	}	
	##ahora vamos a meter el detalle del mandamiento
	
	if($total_desecho>0)
	{
		$sql="select c16_tarifa_id,v128_tarifa from sdm_tarifas where c8_tributo_id='TSINMDES'  order by dt_desde desc limit 1";
		#print "$sql<br>";
		if ( $db->Sql($sql) ) {SQLfail($db,$sql,'Error creando el detalle del mandamiento')}
		while($db->FetchRow())
		{
			undef @row;
			@row=$db->Data();
			$c16_tarifa_id=$row[0];
			$v128_tarifa=$row[1];
			#print "<br>$sql";
			$sql="insert into sdd_mandamientos (i8_mandamiento_id,c16_tarifa_id,v128_tarifa,d82_cantidad,d82_tarifa,txt_periodos)
			values($i8_mandamiento_id,'$c16_tarifa_id','MANEJO DE DESECHOS',1,$total_desecho,'$periodos')";
			#print "$sql<br>";
			if ( $db1->Sql($sql) ) {SQLfail($db,$sql,'Error creando el detalle del mandamiento')}
		}
	}
	if($total_fiesta>0)
	{
			$sql="insert into sdd_mandamientos (i8_mandamiento_id,c16_tarifa_id,v128_tarifa,d82_cantidad,d82_tarifa)
			values($i8_mandamiento_id,'ACINMFIENNAMC001','FIESTAS',1,$total_fiesta)";
			#print "<br>$sql";
			if ( $db1->Sql($sql) ) {SQLfail($db,$sql,'Error creando el detalle del mandamiento')}
		
	}
	if($total_interes>0)
	{
			$sql="insert into sdd_mandamientos (i8_mandamiento_id,c16_tarifa_id,v128_tarifa,d82_cantidad,d82_tarifa)
			values($i8_mandamiento_id,'ACINMFIENNAMC001','INTERESES',1,$total_interes)";
			#print "<br>$sql";
			if ( $db1->Sql($sql) ) {SQLfail($db,$sql,'Error creando el detalle del mandamiento')}
		
	}
	##inserting abonos at sdd_desecho_tcargos
	
	insert_abonos();
		
}
sub SQLfail{
	my ($db_conn_name,$query,$section)=@_;
	print "SQL failed<BR>";
	print "$query<br>";
	print "Section=$section<br>";
	print "Error: " . $db_conn_name->Error() . "\n";
	$db_conn_name->Close();	
	exit;
}
sub construct_page {
	open (DATA, "$PATH$file_html");
		while ($line = <DATA>){
			$line =~ s/{lan}/$lan/g;
			$line =~ s/{appid}/$appid/g;
			$line =~ s/{i8_mandamiento_id}/$i8_mandamiento_id/g;
			
			print $line;
		}		
	close (DATA);
}