#!/perl/bin/perl.exe
$|=1;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Information Software SA
# Date In: 2010-11-21
# Updates: 2010-11-21,2018-06-19,2022-08-18
# Author:Rodolfo Machon
# File Name: guardar_plan_financimiento.pl
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#PERL MODULES
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use XML::Simple;
use Data::Dumper;
use Encode;
use Encode qw/is_utf8 decode/;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#HTML printing activation
print "Content-type: text/html\n\n";
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#GET PARAMETERS
$form		        = new CGI;

$clase  	        = $form->param('clase');
$id	                = $form->param('id');
$plan	            = $form->param('plan');
$periodos_vencidos  = $form->param('periodos_vencidos');
$dt_desde           = $form->param('dt_desde');
$dt_hasta           = $form->param('dt_hasta');
$monto_vencido      = $form->param('monto_vencido');
$fiestas            = $form->param('fiestas');
$intereses          = $form->param('intereses');
$multas             = $form->param('multas');
$cargo_corriente    = $form->param('cargo_corriente');
$cuotas             = $form->param('cuotas');
$incluir_cc         = $form->param('incluir_cc');
$tipo_cuota         = $form->param('tipo_cuota');
$d82_cuota          = $form->param('d82_cuota');
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# CHECK PARAMETERS
if ($d82_cuota eq ""){$d82_cuota=0}
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# GET VARIABLES
get_app_data();
open_database_connections();
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# GET CLASE SCHEMA AND VARIABLES
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# MAIN-PROGRAM
$dt_desde =~ s/\-//g;
$dt_hasta =~ s/\-//g;
actualizar_financiamientos_pasados();
insertar_financiamiento();
insertar_financiamiento_detalle();
print "<script language=javascript>alert('Los Datos se Guardaron Correctamente.');this.close();</script>";
exit;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
sub actualizar_financiamientos_pasados {
    my $sql = "UPDATE sdd_".$clase."_financiamientos SET c8_estado='INACTIVO' WHERE i8_".$clase."_id='$id'";
 	$dbh->do($sql);
}
sub insertar_financiamiento {
    my $sql = "INSERT INTO sdd_".$clase."_financiamientos (
                             i8_".$clase."_id,i4_periodos_mora,i6_desde,i6_hasta,c2_fiesta,c2_interes,c2_multa,
                             c2_icc,i2_cuotas,d82_mora,d82_cargo_corriente,c8_estado,c8_tipo_cuota,d82_cuota,ts_in)
                  VALUES('$id','$periodos_vencidos','$dt_desde','$dt_hasta','$fiestas','$intereses','$multas','$incluir_cc','$cuotas',$monto_vencido,$cargo_corriente,'ACTIVO','$tipo_cuota',$d82_cuota,now())";
 	$dbh->do($sql);
}
sub insertar_financiamiento_detalle {
    my $sql = "SELECT i8_financiamiento_id FROM sdd_".$clase."_financiamientos WHERE i8_".$clase."_id='$id' and c8_estado='ACTIVO'";
    my $sth = $dbh->prepare($sql);
    $sth->execute or die SQL_fail($sql,$dbh,'sub insertar_financiamiento_detalle');
    if (my @row = $sth->fetchrow_array) {
        $id_financiamiento = $row[0];
    }
    my @cuotas_a = split(/\~~/,$plan);
    for(my $a=0;$a<=$#cuotas_a;$a++ ){
        my @CuotaMembers  = split(/\|/,$cuotas_a[$a]);     
        my $dt_vencimiento= $CuotaMembers[0];
        my $periodos_mora = $CuotaMembers[1];
        my $desde         = $CuotaMembers[2];
        my $hasta         = $CuotaMembers[3];
		my $mora_tasas    = $CuotaMembers[4];
		my $mora_fiestas  = $CuotaMembers[5];
		my $mora_intereses= $CuotaMembers[6];
		my $mora_multas   = $CuotaMembers[7];
        my $mora_multa_minima    = $CuotaMembers[8];
        my $mora_total    = $CuotaMembers[9];
		my $cor_tasas     = $CuotaMembers[10];
		my $cor_fiestas   = $CuotaMembers[11];
        my $cor_total     = $CuotaMembers[12];
        my $cuota         = $CuotaMembers[13];      

        if ($periodos_mora eq ""){$periodos_mora=0}
        if ($desde eq ""){$desde=0}
        if ($hasta eq ""){$hasta=0}
        if ($mora_tasas eq ""){$mora_tasas='NULL'}
        if ($mora_fiestas eq ""){$mora_fiestas='NULL'}
        if ($mora_intereses eq ""){$mora_intereses='NULL'}
        if ($mora_multas eq ""){$mora_multas='NULL'}
        if ($mora_multa_minima eq ""){$mora_multa_minima='NULL'}
        if ($mora_total eq ""){$mora_total='NULL'}
        if ($cor_tasas eq ""){$cor_tasas='NULL'}		
        if ($cor_fiestas eq ""){$cor_fiestas='NULL'}		
        if ($cor_total eq ""){$cor_total='NULL'}		
	
        my $sql1 = "INSERT INTO sdd_".$clase."_financiamientos_detalle (
								i8_".$clase."_id,i8_financiamiento_id,dt_vencimiento,i4_periodos_mora,i6_desde,i6_hasta
								,d82_mora_tasas,d82_mora_fiestas,d82_mora_interes,d82_mora_multas,d82_mora_multa_minima,d82_mora_total
								,d82_corriente_tasas,d82_corriente_fiestas,d82_corriente_total
								,d82_cuota)
							VALUES('$id','$id_financiamiento','$dt_vencimiento','$periodos_mora','$desde','$hasta'
								,$mora_tasas,$mora_fiestas,$mora_intereses,$mora_multas,$mora_multa_minima,$mora_total
								,$cor_tasas,$cor_fiestas,$cor_total
								,$cuota)";
		#print "$sql1 <br>";
        $dbh->do($sql1);
    }
}
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#AUXILIAR-SUBROUTINES
sub get_app_data {
    my $schema   = "app.data.xml";
    my $xml      = new XML::Simple;
    my $data 	  = $xml->XMLin("../xml/".$schema);
    $appid	  = $data->{portal}->{app};
    $lan	  = $data->{portal}->{lang};
	$city	  = $data->{portal}->{city};
	$state    = $data->{portal}->{state};
}
sub SQL_fail {
    my ($query,$dbh,$section)= @_;
    print "SQL failed in Section $section<br>";
    print "Query: ".$query."<br>";    
    exit;
}
sub open_database_connections {
	$dbh 	= DBI->connect("dbi:ODBC:$appid",'','',{PrintError => 1, RaiseError => 1});
	if (!$dbh) {print "error: connection: $DBI::err\n$DBI::errstr\n$DBI::state\n";}
	$dbh->{LongReadLen} = 512 * 1024;	
}
sub connect_fail {
    my ($DSN)=@_;
    print "Error connecting to $DSN<br>";
    print "Error:".Win32::ODBC::Error()."<br>";
    exit;
}
#-------------------------------------------------------------------------