#!/perl/bin/perl.exe
$|=1;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Information Software SA
# Date In: 2010-11-21
# Updates: 2010-11-21
# Author:Rodolfo Machon
# File Name: guardar_plan_financimiento.pl
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#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');
$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 ($lan eq ""){print "Your are not passing LAN parameter<br>";}
if ($appid eq ""){print "Your are not passing APPID parameter<br>";}
if ($d82_cuota eq ""){$d82_cuota=0}
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# GET CLASE SCHEMA AND VARIABLES
if (!($dbh = new Win32::ODBC($appid))){print "Error connecting to $appid <br>";print "Error: " . Win32::ODBC::Error() . "<br>";exit;}
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# 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'";
      if ( $dbh->Sql($sql) ) {SQL_fail($sql,$dbh,'actualizar_financiamientos_pasados')}      
}
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())";
      if ( $dbh->Sql($sql) ) {SQL_fail($sql,$dbh,'insert_financiamiento')}
}
sub insertar_financiamiento_detalle {
      my $sql = "SELECT i8_financiamiento_id FROM sdd_".$clase."_financiamientos WHERE i8_".$clase."_id='$id' and c8_estado='ACTIVO'";
      if ( $dbh->Sql($sql) ){SQL_fail($sql,$dbh,'sub insert_financiamiento_detalles');}
      if($dbh->FetchRow()){
	    undef my @row;
	    @row = $dbh->Data();
	    $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          = $CuotaMembers[4];
            my $mensual       = $CuotaMembers[5];
            my $cuota         = $CuotaMembers[6];      

            if ($periodos_mora eq ""){$periodos_mora=0}
            if ($desde eq ""){$desde=0}
            if ($hasta eq ""){$hasta=0}
            
            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,d82_cargo_corriente,d82_cuota)
                       VALUES('$id','$id_financiamiento','$dt_vencimiento','$periodos_mora','$desde','$hasta',$mora,$mensual,$cuota)";
            if ( $dbh->Sql($sql1) ) {SQL_fail($sql1,$dbh,'insert_financiamiento_detalles')}
      }
}
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
#AUXILIAR-SUBROUTINES
sub SQL_fail {
    my ($query,$db,$section)= @_;
    print "SQL failed in Section $section<br>";
    print "Error: ".$db->Error()."\n<br>";
    print "Query: ".$query."<br>";
    $db->Close();
    exit;
}
sub connect_fail {
    my ($DSN)=@_;
    print "Error connecting to $DSN<br>";
    print "Error:".Win32::ODBC::Error()."<br>";
    exit;
}
#-------------------------------------------------------------------------