#!/perl/bin/perl.exe
$|=1;
#------------------------------------------------------
#Perl Modules
use CGI;
use Win32::ODBC;
#------------------------------------------------------
#------------------------------------------------------
#HTML printing activation
print "Content-type: text/html\n\n";
#------------------------------------------------------
#------------------------------------------------------
#Get parameters
$form	 		= new CGI;
$lan	 		= $form->param('lan');
$appid	 		= $form->param('appid');
$dt_desde               = $form->param('dt_desde');
$dt_hasta               = $form->param('dt_hasta');

$PATH 		= "../".$lan."/";
$file       	= $lan."_get_recuperacion_mora".".html";


if ( !( $db = new Win32::ODBC($appid) ) ) { print "errorDB"; exit; }
if ( !( $db1 = new Win32::ODBC($appid) ) ) { print "errorDB"; exit; }
if ( !( $db2 = new Win32::ODBC($appid) ) ) { print "errorDB"; exit; }
$d82_interes_dispensado = 0;

$cuentas_afectadas      = 0;
$valores[0]             = 0;##allumbrado
$valores[1]             = 0;##Aseo
$valores[2]             = 0;##Barrido
$valores[3]             = 0;##Calles
$valores[4]             = 0;##desechos
$valores[5]             = 0;##fiestas
$valores[6]             = 0;##impuestos
get_mora_dispensada_mandamientos();
get_mora_dispensada_recibos();
mostrar_datos();

sub get_mora_dispensada_mandamientos
{
    
    
    ###gettin datos de dispensa de mora por mandamiento
    $sql="select a.i8_mandamiento_id,b.d82_interes_dispensado 
    from sdm_recibos a inner join sdm_mandamientos b on a.i8_mandamiento_id=b.i8_mandamiento_id
    where (a.dt_emision between '$dt_desde' and '$dt_hasta') and b.d82_interes_dispensado>0";
    #print "$sql<br>";
    if ( $db->Sql($sql) ) {print "errorSQL-->$db->Error();$sql"; $db->Close(); exit;}
    while ( $db->FetchRow() )
    {
	undef @row1;
     	@row1                   = $db->Data();
	$i8_mandamiento_id      = $row1[0];
        $d82_interes_dispensado += $row1[1];
        $cuentas_afectadas++;
        ### para cada uno se obtendran los datos del SMEA:propietario, direccion de inmueble,,,,
        $sql="select substring(c16_tarifa_id,0,8),sum(d82_cantidad*d82_tarifa) from sdd_mandamientos
        where i8_mandamiento_id='$i8_mandamiento_id' group by substring(c16_tarifa_id,0,8)";
        if ( $db1->Sql($sql) ) {print "errorSQL-->$db1->Error();$sql"; $db->Close(); exit;}
        while ( $db1->FetchRow() )
        {
            undef @row2;
            @row2           = $db1->Data();
            $c8_tributo_id  = $row2[0];
            $valor          = $row2[1];
            if($c8_tributo_id eq "TSINMALU"){$valores[0]+=$valor}
            elsif($c8_tributo_id eq "TSINMASE"){$valores[1]+=$valor}
            elsif($c8_tributo_id eq "TSINMBAR"){$valores[2]+=$valor}
            elsif($c8_tributo_id eq "TSINMCAL"){$valores[3]+=$valor}
            elsif($c8_tributo_id eq "TSINMDES"){$valores[4]+=$valor}
            elsif($c8_tributo_id eq "ACINMFIE"){$valores[5]+=$valor}
            else{$valores[6]+=$valor}
           
        }
    }
    
    
    #$table.="</table>";q
    #print "$table";
    
}
sub get_mora_dispensada_recibos
{
      $sql="select a.i8_expediente_id,b.txt_periodos,a.c3_tipo_generador_id
      from sdm_recibos a inner join sdd_recibos b on a.c16_recibo_id=b.c16_recibo_id
      where a.dt_emision between '$dt_desde' and '$dt_hasta' and (a.c3_tipo_generador_id='INM' or a.c3_tipo_generador_id='EMP')
      and a.i8_expediente_id>0 order by a.i8_expediente_id";
      if ( $db->Sql($sql) ) {$db->Error();print $sql;}
      #print "<br>$sql";
      while($db->FetchRow())
      {
                  undef @row2;
                  #print @row2."<br>";
                  @row2=$db->Data();
                  $i8_expediente_id     =$row2[0];
                  $txt_periodos         =$row2[1];
                  $c3_tipo_generador_id =$row2[2];
                  #primero vamos a verificar si ya existe el abono
                  if($c3_tipo_generador_id eq "EMP"){$is_industria=get_type_empresa($i8_expediente_id)}
                  else{$is_industria="NO"}
                  undef @pagos;
                  @pagos=split("~",$txt_periodos);
                  for($i=0;$i<=$#pagos;$i++)
                  {                        
                        @pago=split(",",$pagos[$i]);
                        $i8_periodo=$pago[0];
                        $dias_mora=$pago[1];
                        $c16_tarifa_id=$pago[2];
                        $c8_tributo_id=substr($c16_tarifa_id,0,8);
                        #tarifa VAL
                        $d82_abono_tasa=$pago[3];
                        #valor fiesta
                        $d82_abono_fiesta=$pago[4];
                        $d82_abono_interes=$pago[5];
                        $d82_abono_multa=$pago[6];                        
                        if($dias_mora>0 and $is_industria eq "NO")
                        {
                            if($c8_tributo_id eq "TSINMALU"){$valores[0]+=$d82_abono_tasa}
                            elsif($c8_tributo_id eq "TSINMASE"){$valores[1]+=$d82_abono_tasa}
                            elsif($c8_tributo_id eq "TSINMBAR"){$valores[2]+=$d82_abono_tasa}
                            elsif($c8_tributo_id eq "TSINMCAL"){$valores[3]+=$d82_abono_tasa}
                            elsif($c8_tributo_id eq "TSINMDES"){$valores[4]+=$d82_abono_tasa}                            
                            else{$valores[6]+=$d82_abono_tasa}
                            $d82_interes_dispensado+=$d82_abono_interes;
                            $valores[5]+=$d82_abono_fiesta;
                            if($i8_expediente_id==$ex_last){}
                            else{$cuentas_afectadas++;}
			    $ex_last=$i8_expediente_id;
                        }  
                  }
      } 
}
sub get_type_empresa
{
    my($i8_empresa_id)=@_;
    $sql="select c2_codigo_id from sdd_empresa_servicios where i8_empresa_id='$i8_empresa_id'
    and c8_tributo_id='IMEMPAEM' limit 1";
    if ( $db1->Sql($sql) ) {$db1->Error()}
    while($db1->FetchRow())
    {
        undef @row3;
        #print @row2."<br>";
        @row3                 = $db1->Data();
        $c2_codigo_id         = $row3[0];
    }
    if($c2_codigo_id eq "FI" or $c2_codigo_id eq "IN" or $c2_codigo_id eq "SE")
    {return "SI"}
    else
    {return "NO"}
    
}

sub mostrar_datos
{
    
    $subtotal=$valores[0]+$valores[1]+$valores[2]+$valores[3]+$valores[4]+$valores[5]+$valores[6];
    $total=$subtotal+$d82_interes_dispensado;
    $subtotal=sprintf("%.2f",$subtotal);
    $total=sprintf("%.2f",$total);
    $valores[0]=sprintf("%.2f",$valores[0]);
    $valores[1]=sprintf("%.2f",$valores[1]);
    $valores[2]=sprintf("%.2f",$valores[2]);
    $valores[3]=sprintf("%.2f",$valores[3]);
    $valores[4]=sprintf("%.2f",$valores[4]);
    $valores[5]=sprintf("%.2f",$valores[5]);
    $valores[6]=sprintf("%.2f",$valores[6]);
    $d82_interes_dispensado=sprintf("%.2f",$d82_interes_dispensado);
    $table="<tr><td>$cuentas_afectadas</td><td>\$$valores[0]</td><td>\$$valores[1]</td><td>\$$valores[2]</td> <td>\$$valores[3]</td>
    <td>\$$valores[4]</td><td>\$$valores[6]</td><td>\$$valores[5]</td><td>\$$subtotal</td><td>\$$d82_interes_dispensado</td><td>\$$total</td></tr>";
    
    open (DATA, "$PATH$file");
    #print "$PATH$file";
      while ($line = <DATA>){
	    $line =~ s/{lan}/$lan/g;
	    $line =~ s/{appid}/$appid/g;
            $line =~ s/{dt_desde}/$dt_desde/g;
            $line =~ s/{dt_hasta}/$dt_hasta/g;
            $line =~ s/{table}/$table/g;
	    print "$line";
      }
    
}
