#!/perl/bin/perl.exe
$|=1;
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# Author:Rodolfo Machon
# Company:WebSoft, SA de CV 
# Nombre del archivo: user.data.pl
# Created: 2022-09-25
# Updates: 2022-09-25
# Copyright - All Rights Reserved
#------------------------------------------------------------------------- 
#-------------------------------------------------------------------------
#PERL MODULES
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use JSON;
use XML::Simple;
use Data::Dumper;
use Encode;
use Encode qw/is_utf8 decode/;
#--------------------------------------------------------------------------
# HTML PRINTING ACTIVATION
print "Content-type: text/html; charset=utf-8\n\n";
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# GET PARAMETERS
%params = get_params();
$mid	= $params{'mid'};
#-------------------------------------------------------------------------
#-------------------------------------------------------------------------
# CHECK PARAMETERS
get_app_data();
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# OPEN DATABASE CONNECTIONS - ODBCs
$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;
$dbh->{LongTruncOk} = 1;
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# MAIN-PROGRAM
%data = get_data();
if (!%data) {
	$data{'i8_mandamiento_id_id'}=0;
}
$json	= encode_json \%data;
$json	=~ s/\=>/:/g;	
print $json;
exit;
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# LEVEL 1
sub get_data {
	my %hash	= ();
	my @fields	= split(/\,/,"i8_mandamiento_id,i8_contribuyente_id,i8_expediente_id,i2_tipo_pago_id,i2_tipo_departamento_id,c3_tipo_generador_id,c2_tipo_mandamiento_id,c14_nit_id,c11_dui_id,c14_iva_id,v128_contribuyente,v16_fax,v16_telefono,dt_emision,dt_vencimiento,txt_direccion,txt_email,txt_concepto,txt_expediente_direccion,txt_expediente_propietarios,i2_cajero_id,c4_status_mandamiento_id,ts_update,ts_in,c8_cuenta_id,i8_emisor_id,i8_financiamiento_id,dt_cuota,d82_pago,v64_tipo_departamento,v64_tipo_pago,v64_tipo_generador,v16_login_emisor");
	my $sql	 = "SELECT   m.i8_mandamiento_id
						,m.i8_contribuyente_id
						,m.i8_expediente_id
						,m.i2_tipo_pago_id
						,m.i2_tipo_departamento_id
						,m.c3_tipo_generador_id
						,m.c2_tipo_mandamiento_id
						,m.c14_nit_id
						,m.c11_dui_id
						,m.c14_iva_id
						,m.v128_contribuyente
						,m.v16_fax
						,m.v16_telefono
						,m.dt_emision
						,m.dt_vencimiento
						,m.txt_direccion
						,m.txt_email
						,m.txt_concepto
						,m.txt_expediente_direccion
						,m.txt_expediente_propietarios
						,m.i2_cajero_id
						,m.c4_status_mandamiento_id
						,m.ts_update
						,m.ts_in
						,m.c8_cuenta_id
						,m.i8_emisor_id
						,m.i8_financiamiento_id
						,m.dt_cuota
						,m.d82_pago
						,d.v64_tipo_departamento
						,p.v64_tipo_pago
						,g.v64_tipo_generador
						,u.v16_login
				FROM sdm_mandamientos m
				LEFT JOIN sdm_tipo_departamentos d ON d.i2_tipo_departamento_id=m.i2_tipo_departamento_id
				LEFT JOIN sdm_tipo_pagos p ON p.i2_tipo_pago_id=m.i2_tipo_pago_id
				LEFT JOIN sdm_tipo_generadores g ON g.c3_tipo_generador_id=m.c3_tipo_generador_id
				LEFT JOIN sdm_users u ON u.i8_user_id=m.i8_user_id
				WHERE m.i8_mandamiento_id='$mid'
			  ";
	#print "$sql";
    my $sth = $dbh->prepare($sql);
    $sth->execute or die 'sub get_user';
    if (@row = $sth->fetchrow_array) {
		for(my $i;$i<=$#row;$i++){
			$hash{$fields[$i]} = $row[$i];
		}
	}
    return %hash;
}
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# AUXILIAR
sub get_app_data {
    my $schema  = "app.data.xml";
    my $xml     = new XML::Simple;
    my $data    = $xml->XMLin("../xml/".$schema);
    $appid      = $data->{portal}->{app};
}
sub get_params {
	my $buffer;
	my %hash = ();
	if ($ENV{'REQUEST_METHOD'} eq "POST") {
		read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
	} else {
		$buffer = $ENV{'QUERY_STRING'};
	}
	$buffer	=~ s/\{//g;
	$buffer	=~ s/\}//g;
	$buffer	=~ s/\"//g;
	@pairs = split(/\,/, $buffer);
	for($i=0;$i<@pairs;$i++){
		@arr = split(":", $pairs[$i]);
		$hash{$arr[0]}=$arr[1];
	}
	return %hash;
}