<?php
if(!isset($_SESSION)) {
    session_start();
}

$correcto = false;
$sesion   = false;
$mensaje  = 'No se puedo guardar la información';

require_once($_SERVER['DOCUMENT_ROOT'].'/varios/varios.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Varios.Class.php');

function verificarCamposObligatorios() {
    return isset($_POST['txt_rut']) && $_POST['txt_rut'] != ''
	&& isset($_POST['txt_razonSocial']) && $_POST['txt_razonSocial'] != ''
	&& isset($_POST['cmb_comuna']) && $_POST['cmb_comuna'] != ''
	&& isset($_POST['txt_direccion']) && $_POST['txt_direccion'] != ''
	&& isset($_POST['txt_telefonoCelular']) && $_POST['txt_telefonoCelular'] != ''
	&& isset($_POST['txt_email']) && $_POST['txt_email'] != ''
	&& isset($_POST['txt_razonSocial']) && $_POST['txt_razonSocial'] != ''
	&& isset($_POST['txt_razonSocial']) && $_POST['txt_razonSocial'] != ''
	&& isset($_POST['txt_razonSocial']) && $_POST['txt_razonSocial'] != '';
}

function verificarCamposObligatoriosProveedor( $p_tipoProveedor, $p_formaPago, $p_catalogo ) {
    if(
        $p_tipoProveedor == 1
        && (
            strlen($p_formaPago) == 0
            || strlen($p_catalogo) == 0
        )
    ) {
        return false;
    }
    return true;
}

if( Varios::isActiveSession() 
    && Varios::hasModuleActionAccess(9, 6)
) {	
    $mensaje = 'Paso 01';
    if( verificarCamposObligatorios() ) {
        $cadena 	= Varios::codifica('SilsClienteProveedoresGuardar_'._TOKEN);
        $tokenCod 	= filter_var($_POST["txt_token"], FILTER_SANITIZE_STRING);
        $token 		= filter_var( Varios::decodifica($tokenCod), FILTER_SANITIZE_STRING);
        $valida 	= Varios::verificaToken($cadena, $token, 300);
        $mensaje = 'Paso 02';
        if ( $valida ) {
            $chb_tipoCliente            = 0;
            $chb_tipoProveedorSils      = 0;
            $chb_tipoProveedorCliente   = 0;

            $cmb_formaPago     = null;
            $cmb_catalogo      = null;

            
            if( isset($_POST['chb_tipoCliente']) ) {
                $chb_tipoCliente   = 1;
            }
            if( isset($_POST['chb_tipoProveedorSils']) ) {
                $chb_tipoProveedorSils  = 1;
                $cmb_formaPago          = filter_var($_POST['cmb_formaPago'], FILTER_SANITIZE_NUMBER_INT);
                $cmb_catalogo           = filter_var($_POST['cmb_catalogo'], FILTER_SANITIZE_NUMBER_INT);
            }
            
            if( isset($_POST['chb_tipoProveedorCliente']) ) {
                $chb_tipoProveedorCliente  = 1;
            }
            $txt_modificar    	 = filter_var($_POST['txt_modificar'], FILTER_SANITIZE_NUMBER_INT);
            $txt_rut     		 = filter_var($_POST['txt_rut'], FILTER_SANITIZE_STRING);
            $txt_rut     		 = Varios::rutQuitarFormato($txt_rut);
            $txt_razonSocial     = filter_var($_POST['txt_razonSocial'], FILTER_SANITIZE_STRING);
            $txt_nombreFantasia  = filter_var($_POST['txt_nombreFantasia'], FILTER_SANITIZE_STRING);
            $txt_paginaWeb       = filter_var($_POST['txt_paginaWeb'], FILTER_SANITIZE_URL);
            $txt_contacto        = filter_var($_POST['txt_contacto'], FILTER_SANITIZE_STRING);
            $txt_telefonoFijo    = filter_var($_POST['txt_telefonoFijo'], FILTER_SANITIZE_NUMBER_INT);
            $txt_telefonoCelular = filter_var($_POST['txt_telefonoCelular'], FILTER_SANITIZE_NUMBER_INT);
            $txt_email           = filter_var($_POST['txt_email'], FILTER_SANITIZE_EMAIL);
            $cmb_comuna          = filter_var($_POST['cmb_comuna'], FILTER_SANITIZE_NUMBER_INT);
            $txt_direccion       = filter_var($_POST['txt_direccion'], FILTER_SANITIZE_STRING);
            $usuario 	         = varios::decodifica($_SESSION[_SYSTEM_SESIONID.'userId']);
            
            if( verificarCamposObligatoriosProveedor( $chb_tipoProveedorSils, $cmb_formaPago, $cmb_catalogo )
            ) {
                
                require_once($_SERVER['DOCUMENT_ROOT'].'/clases/ClienteProveedor.Class.php');
                $clienteProveedor_obj  = new ClienteProveedor(null);

                if ($txt_modificar == 0){		
                    require_once($_SERVER['DOCUMENT_ROOT'].'/clases/Varios.Class.php');
                    $v_contraseña       = Varios::generar_codigo(12);
                    $v_cod_verificacion = Varios::generar_codigo(10);		

                    $auditoria_accion   = "Insert";
                    $auditoria_tabla    = "persona";
                    $auditoria_sql      = "EXEC agenda.SP_persona_adm_ingresa '".$txt_rut."',".$chb_tipoCliente.",".$chb_tipoProveedorSils.",".$chb_tipoProveedorCliente.",'".
                                                                                $txt_razonSocial."','".$txt_nombreFantasia."','".$txt_paginaWeb."','".
                                                                                $txt_contacto."','".$txt_email."','".$txt_telefonoFijo."','".$txt_telefonoCelular."',".
                                                                                $cmb_comuna.",'".$txt_direccion."',".$cmb_formaPago.",".$cmb_catalogo.", 100004,".
                                                                                $usuario.",'".sha1($v_contraseña)."','".$v_cod_verificacion."'";
    
                    $resultado  = $clienteProveedor_obj->ingresarPersona($txt_rut, $chb_tipoCliente, $chb_tipoProveedorSils, $chb_tipoProveedorCliente,
                                                                                $txt_razonSocial, $txt_nombreFantasia, $txt_paginaWeb,
                                                                                $txt_contacto, $txt_email, $txt_telefonoFijo, $txt_telefonoCelular,
                                                                                $cmb_comuna, $txt_direccion, $cmb_formaPago, $cmb_catalogo, 100004, 
                                                                                $usuario, sha1($v_contraseña), $v_cod_verificacion );
                } else {
                    $cmb_estado   		= filter_var($_POST["cmb_estado"], FILTER_SANITIZE_NUMBER_INT);
                    $auditoria_accion   = "Update";
                    $auditoria_tabla    = "persona";
                    $auditoria_sql      = "EXEC agenda.SP_persona_modifica ".$txt_modificar.", '".$txt_rut."',".$chb_tipoCliente.",".$chb_tipoProveedorSils.",".$chb_tipoProveedorCliente.",'".
                                                                                $txt_razonSocial."','".$txt_nombreFantasia."','".$txt_paginaWeb."','".
                                                                                $txt_contacto."','".$txt_email."','".$txt_telefonoFijo."','".$txt_telefonoCelular."',".
                                                                                $cmb_comuna.",'".$txt_direccion."',".$cmb_formaPago.",".$cmb_catalogo.", ".$cmb_estado;

                    $resultado  = $clienteProveedor_obj->modificarPersona($txt_modificar, $txt_rut, $chb_tipoCliente, $chb_tipoProveedorSils, $chb_tipoProveedorCliente, $txt_razonSocial,
                                                                            $txt_nombreFantasia, $txt_paginaWeb, $txt_contacto, $txt_email, $txt_telefonoFijo, $txt_telefonoCelular,
                                                                            $cmb_comuna, $txt_direccion, $cmb_formaPago, $cmb_catalogo, $cmb_estado);
                }
                
                $mensaje    = $resultado[1];	
                $resultado  = $resultado[0];	
                if($resultado > 0) {		
                    $correcto 	= true;		
                }	
                Varios::auditInsert( $auditoria_accion, $auditoria_tabla, $auditoria_sql, $resultado, $mensaje );	
                $clienteProveedor_obj->Close();
            } else {
                $mensaje = 'Ingrese los campos obligatorios que corresponden a un Proveedor (Forma de pago y Catálogo';
            }
        } else
            $mensaje = 'Error 502: Demoró mucho tiempo en el ingreso de información. Actualice la página e intente nuevamente.';
    } else {
        $mensaje = 'Ingrese todos los campos obligatorios';
    }
} 

$data = array('success' => $correcto, 'mensaje' => $mensaje, 'sesion' => $sesion );
echo json_encode($data);
?>