consumirws = new ConsumirWS();
$this->rutaSession = Session::get('conexion');
//$ruta=\Request::route()->getPath();
//$var=explode('/',$ruta);
//PREFIJO EN LA POSICION 0
//$prefijoActual=$var[0];
$this->LoginController = new LoginController();
//DOMINIO CORREOS
$this->dominioCorreo = config('customs.domain_email');
}
/**
* POST Show Formulario para subir archivo a Credicard
*
* @return Response
*/
public function getPagotarjetaCredicard()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/pagotarjetaCredicard', compact('bancos', 'token'));
}
/**
* POST sent Formulario para subir archivo a Credicard
*
* @return Response
*/
public function postPagotarjetaCredicard(Request $request)
{
//dd($request);
//VALIDAMOS LA DATA QUE SE RECIBE
$reglas = Validator::make($request->all(),
[
//'codbanco' => 'array',
//'codbanco.*' => 'required|max:25',
//'archivo' => 'mimes:csv,xlsx,xls|max:2048',
'archivo' => 'max:2048',
],
[
//'archivo.mimes'=>'El archivo debe ser en formato .xls, .xlsx, .csv',
'archivo.max' => 'El tamaño del archivo sobrepasa los 2048 kilobytes'
]);
if ($reglas->fails()) {
return Redirect::back()
->with('autofocus', true)
->withInput()
->withErrors($reglas->errors()->first());
} else {
try {
//capturo el archivo de VPOS
$file = Input::file('archivo');
$usuario_codusuario = $request->get('usuario_codusuario');
$codcuentabanco = $request->get('cmbcuenta');
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
// Verificar los Archivos permitidos
if ((($extension == "xls") || ($extension == "xlsx"))) {
//Guardo el primer archivoBancoVpos app/public/imports
$destination = storage_path('app/public/imports/');
$file_upload = Input::file('archivo')->move($destination, $filename);
//dd($file_upload);
/*De subirse al servidor lo empiezo a leer*/
if ($file_upload) {
if (!empty($codcuentabanco)) {
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if (empty($consultarCuentabanco)) {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicard')->with('alert-danger', 'EL NUMERO DE CUENTA NO SE ENCUENTRA REGISTRADO');
}
}
//SE VERIFICA EL ARCHIVO DE NO EXISTIR SE INSERTA CON LA SIGUIENTE FUNCION archivoBancoVpos
$archivoBancoVpos = PagotarjetaController::archivoBancoVpos($destination, $filename, $usuario_codusuario, $codcuentabanco);
//dd($archivoBancoVpos);
if ($archivoBancoVpos[0] == 'COD_001') {
$data = $archivoBancoVpos;
//SE ELIMINA EL ARCHIVO DE LA CARPETA TEMPORAL app/public/imports
if (File::exists($destination, $filename)) {
unlink($destination . $filename);
}
return View::make('Wscanguroazul/Conciliacion/pagotarjetaCredicardList', compact('data', 'consultarCuentabanco'));
} else if ($archivoBancoVpos[0] == 'CODE_004') {
//YA ESTE ARCHIVO SE ENCUENTRA REGISTRADO
$data = $archivoBancoVpos;
if (File::exists($destination, $filename)) {
unlink($destination . $filename);
}
return View::make('Wscanguroazul/Conciliacion/pagotarjetaCredicardList', compact('data', 'consultarCuentabanco'));
} else if ($archivoBancoVpos[0] == 'CODE_00') {
return Redirect::back()->with('autofocus', true)->withInput()->withErrors($archivoBancoVpos[1]);
} else {
return Redirect::back()->with('autofocus', true)->withInput()->withErrors('VERIFICAR QUE HAYA SELECCIONADO EL ARCHIVO Y LA OPCIÓN CORRECTA. NO SE ENCONTRO NÚMERO DE AFILIADO');
}
} else {
return Redirect::back()->with('autofocus', true)->withInput()->withErrors('OCURRIÓ ALGÚN ERROR AL PROCESAR EL ARCHIVO. DEBE HACER PRINT DE LA PANTALLA Y COMUNICARSE CON LA GERENCIA DE SISTEMAS');
}
} else {
return Redirect::back()->with('autofocus', true)->withInput()->withErrors('LA EXTENSIÓN DEL ARCHIVO NO ES CORRECTA. SOLO SE PERMITEN ARCHIVOS CON EXTENSIÓN .xls Y/O .xlsx');
//return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicard')->withErrors('alert-danger', 'LA EXTENSIÓN DEL ARCHIVO NO ES CORRECTA. SOLO SE PERMITEN ARCHIVOS CON EXTENSIÓN .xls Y/O .xlsx');
}
} catch (\Exception $e) {
//return $e;
return Redirect::back()->with('autofocus', true)->withInput()->withErrors('Ocurrio un error al intentar procesar su solicitud. Por favor hacer print de esta interfaz y enviar a personal de soporte. Error:' . $e);
}
}
}
/**
* GET Show Formulario para Buscar archivos cargados
*
* @return Response
*/
public function getbuscarArchivos()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/buscarArchivos', compact('bancos', 'token'));
}//END OF getbuscarArchivos
/**
* POST SENT Formulario para Buscar archivos cargados
*
* @return Response
*/
public function postBuscarArchivos(Request $request)
{
//Variables para realizar la busqueda del archivo
$tipo_archivo = $request->get('tipo_archivo');
$porfecha = date('Y-m-d', strtotime($request->get('porfecha')));
if ($tipo_archivo == 'credicard') {
$afiliado = $request->get('afiliado');
$conciliado = $request->get('conciliado');
if ($porfecha == 'porfecha') {
$desde = date('Y-m-d', strtotime($request->get('desde')));
$hasta = date('Y-m-d', strtotime($request->get('hasta')));
$param_credicard = array('conciliado' => $conciliado, 'afiliado' => $afiliado, 'desde' => $desde, 'hasta' => $hasta);
} else {
$param_credicard = array('conciliado' => $conciliado, 'afiliado' => $afiliado);
}
$credicard_webservice = 'getInfoPagotarjeta';
$data = $this->consumirws->consumirPorGet($credicard_webservice, $param_credicard, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//dd($data);
} else if ($tipo_archivo == 'extracto') {
$referencia = $request->get('referencia');
$porbancoCuenta = $request->get('porbancoCuenta');
if ($porbancoCuenta == 'porbancoCuenta') {
$cuentabanco_codcuentabanco = $request->get('cuentabanco_codcuentabanco');
}
if ($porfecha == 'porfecha') {
$desde = date('Y-m-d', strtotime($request->get('desde')));
$hasta = date('Y-m-d', strtotime($request->get('hasta')));
}
$param_extracto = array('referencia' => $referencia, 'cuentabanco_codcuentabanco' => $cuentabanco_codcuentabanco, 'desde' => $desde, 'hasta' => $hasta);
$extracto_webservice = 'getInfoPagotarjeta';
$data = $this->consumirws->consumirPorGet($extracto_webservice, $param_extracto, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
}
//return View::make('Wscanguroazul/Conciliacion/pagotarjetaCredicardList')->with('data',$archivoBancoVpos);
}//END OF postBuscarArchivos
/*CARGA DE ARCHIVOS*/
/********************
* BANCO EXTERIOR
********************/
public function archivoBancoVpos($destination, $filename, $usuario_codusuario, $codcuentabanco)
{
//capturo el archivo
$filename = $filename;
$destination = $destination;
$usuario_codusuario = $usuario_codusuario;
$codcuentabanco = $codcuentabanco;
//INICIO DE TRANSACION DE LECTURA DEL ARCHIVO .XLS .CSV
$results = Excel::load($destination . $filename, function ($reader) {
})->get();
if (!empty($results[0])) //El archivo no está vacio
{
if (!empty($results[0]['afiliado']))//pregunto si existe afiliado en el archivo sino no es el correcto
{
$cont = count($results);
$co = 0;
foreach ($results->toArray() as $row) {
//capturo las variables a consultar
$numafiliado = str_replace(' ', '', $row['afiliado']);
$fecha = str_replace(' ', '', $row['fecha']);
$numlote = str_replace(' ', '', $row['lote']);
$numterminal = str_replace(' ', '', $row['pos']);
$producto = str_replace(' ', '', $row['producto']);
$tarjeta = str_replace(' ', '', $row['tarjeta']);
$autorizacion = str_replace(' ', '', $row['autorizacion']);
$monto = str_replace(' ', '', $row['monto_bruto']);
$tasacomision = str_replace(' ', '', $row['tasa_com']);
$tasaislr = str_replace(' ', '', $row['tasa_imp']);
$conciliado = 0;
//SE CONSUME EL WEB SERVICES PARA VERIFICAR SI ESTE YA ESTA REGISTRADO
$var = explode('/', $fecha);
$fecha_nueva = $var[2] . '-' . $var[1] . '-' . $var[0];
$parametros[$co] = array(
'numafiliado' => $numafiliado,
'fecha' => date('Y-m-d', strtotime($fecha_nueva)),
'numlote' => $numlote,
'numterminal' => $numterminal,
'producto' => $producto,
'tarjeta' => $tarjeta,
'autorizacion' => $autorizacion,
'monto' => $monto,
'tasacomision' => $tasacomision,
'tasaislr' => $tasaislr,
'conciliado' => $conciliado,
'usuario_codusuario' => $usuario_codusuario,
'codcuentabanco' => $codcuentabanco,
);
$co++;
}
//dd($parametros);
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$webservice = 'getInfoPagotarjetaWs';
$consultarPagotarjeta = $this->consumirws->consumirPorPost($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/', 180);
//dd($consultarPagotarjeta);
if ($consultarPagotarjeta['codrespuesta'] == 'COD_000') {
//COMIENZO DE LA TRANSACION
DB::beginTransaction();
try {
$parametros_Add = $consultarPagotarjeta['entidadRespuesta'];
$webservice_Add = 'addPagotarjetaWs';
$addPagotarjeta = $this->consumirws->consumirPorPost($webservice_Add, $parametros_Add, $url = 'customs.url_baaszoom', $this->rutaSession . "/", 180);
if ($addPagotarjeta['codrespuesta'] == 'COD_001') {
$mensaje = [$addPagotarjeta['codrespuesta'], $addPagotarjeta['mensaje'], $addPagotarjeta['entidadRespuesta']];
}
} catch (\Exception $e) {
DB::rollback();
$mensaje = ['codrespuesta' => 'CODE_00', 'mensaje' => 'OCURRIO UN PROBLEMA AL SUBIR EL ARCHIVO'];
}
} else if ($consultarPagotarjeta['codrespuesta'] == 'CODE_004') {
$mensaje = [$consultarPagotarjeta['codrespuesta'], $consultarPagotarjeta['mensaje'], $consultarPagotarjeta['entidadRespuesta']];
} else {
$mensaje = "Accion no realizada. Verificar Web Services";
$mensaje = [$consultarPagotarjeta['codrespuesta'], $consultarPagotarjeta['mensaje']];
}
} else {
$mensaje = ['codrespuesta' => 'CODE_00', 'mensaje' => 'NO EXISTE NUMERO DE AFILIADO EN EL ARCHIVO. VERIFIQUE'];
}
} else {
$mensaje = ['codrespuesta' => 'CODE_00', 'mensaje' => 'EL ARCHIVO ESTA VACIO. VERIFIQUE'];
}
return $mensaje;
}//END OF archivoBancoVpos
/*******************************
* REVERTIR PROCESO DE CARGA DE ARCHIVO Credicard
* getPagotarjetaCredicardRevertir muestra el formulario
* postRevertirPagotarjetaCredicard Realiza la operacion de eliminar los registros cargados
********************************/
public function getPagotarjetaCredicardRevertir()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/revertirPagotarjetaCredicard', compact('bancos', 'token'));
}//END OF getPagotarjetaCredicardRevertir
/*******************
* POST Luego de enviar el formulario para revertir el archivo cargado de credicard
********************/
public function postRevertirPagotarjetaCredicard(Request $request)
{
//capturo el archivo de VPOS
$file = Input::file('archivo');
$usuario_codusuario = $request->get('usuario_codusuario');
$codcuentabanco = $request->get('cmbcuenta');
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
// Verificar los Archivos permitidos
if ((($extension == "xls") OR ($extension == "xlsx"))) {
//Guardo el primer archivoBancoVpos temporal
$destination = storage_path('app/public/imports/');
$file_upload = Input::file('archivo')->move($destination, $filename);
/*De subirse al servidor lo empiezo a leer*/
if ($file_upload) {
$archivoBancoVpos = PagotarjetaController::revertirArchivoBancoVpos($destination, $filename, $usuario_codusuario, $codcuentabanco);
if (!empty($codcuentabanco)) {
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
}
if ($archivoBancoVpos[0] == 'COD_003') {
if (File::exists($destination, $filename)) {
unlink($destination . $filename);
}
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-success', $archivoBancoVpos[0] . ' - ' . $archivoBancoVpos[1] . '. CANTIDAD DE REGISTROS ELIMINADOS: ' . $archivoBancoVpos[2] . '');
} else if ($archivoBancoVpos[0] == 'COD_000') {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', $archivoBancoVpos[0] . ' - ' . $archivoBancoVpos[1]);
} else if ($archivoBancoVpos[0] == 'CODE_0') {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', 'EL ARCHIVO QUE INTENTA IMPORTAR NO TIENE NÚMERO DE AFILIADO.');
} else if ($archivoBancoVpos[0] == 'CODE_1') {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', 'EL ARCHIVO QUE INTENTA IMPORTAR ESTÁ VACÍO.');
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', 'VERIFICAR QUE HAYA SELECCIONADO EL ARCHIVO Y LA OPCIÓN CORRECTA. NO SE ENCONTRO NÚMERO DE AFILIADO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', 'OCURRIÓ ALGÚN ERROR AL PROCESAR EL ARCHIVO. DEBE HACER PRINT DE LA PANTALLA Y COMUNICARSE CON LA GERENCIA DE SISTEMAS');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaCredicardRevertir')->with('alert-danger', 'LA EXTENSIÓN DEL ARCHIVO NO ES CORRECTA. SOLO SE PERMITEN ARCHIVOS CON EXTENSIÓN .xls Y/O .xlsx');
}
}//END OF postRevertirPagotarjetaCredicard
/*******************
* Funcion para Revertir el archivo
********************/
public function revertirArchivoBancoVpos($destination, $filename, $usuario_codusuario, $codcuentabanco)
{
//capturo el archivo
$filename = $filename;
$destination = $destination;
$usuario_codusuario = $usuario_codusuario;
$codcuentabanco = $codcuentabanco;
//INICIO DE TRANSACION DE LECTURA DEL ARCHIVO .XLS .CSV
$results = Excel::load($destination . $filename, function ($reader) {
})->get();
//dd($results);
if (!empty($results[0])) //El archivo no está vacio
{
//if(!empty($results[0]['afiliado']))//pregunto si existe afiliado en el archivo sino no es el correcto
if (!empty($results[0]['afiliado']))//pregunto si existe afiliado en el archivo sino no es el correcto
{
$cont = count($results);
$co = 0;
foreach ($results->toArray() as $row) {
//capturo las variables a consultar
$numafiliado = str_replace(' ', '', $row['afiliado']);
$fecha = str_replace(' ', '', $row['fecha']);
$numlote = str_replace(' ', '', $row['lote']);
$numterminal = str_replace(' ', '', $row['pos']);
$producto = str_replace(' ', '', $row['producto']);
$tarjeta = str_replace(' ', '', $row['tarjeta']);
$autorizacion = str_replace(' ', '', $row['autorizacion']);
$monto = str_replace(' ', '', $row['monto_bruto']);
$tasacomision = str_replace(' ', '', $row['tasa_com']);
$tasaislr = str_replace(' ', '', $row['tasa_imp']);
$conciliado = 3;
//SE CONSUME EL WEB SERVICES PARA VERIFICAR SI ESTE YA ESTA REGISTRADO
$var = explode('/', $fecha);
$fecha_nueva = $var[2] . '-' . $var[1] . '-' . $var[0];
$parametros[$co] = array(
'numafiliado' => $numafiliado,
'fecha' => date('Y-m-d', strtotime($fecha_nueva)),
'numlote' => $numlote,
'numterminal' => $numterminal,
'producto' => $producto,
'tarjeta' => $tarjeta,
'autorizacion' => $autorizacion,
'monto' => $monto,
'tasacomision' => $tasacomision,
'tasaislr' => $tasaislr,
'conciliado' => $conciliado,
'usuario_codusuario' => $usuario_codusuario,
'codcuentabanco' => $codcuentabanco,
);
$co++;
}
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$webservice = 'getInfoPagotarjetaWs';
$consultarPagotarjeta = $this->consumirws->consumirPorPost($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dump($consultarPagotarjeta);
if ($consultarPagotarjeta['codrespuesta'] == 'CODE_004') {
//COMIENZO DE LA TRANSACION
DB::beginTransaction();
try {
$parametros_Del = $consultarPagotarjeta['filasNoAfectadas'];
$webservice_Del = 'deletePagotarjetaWs';
$deletePagotarjeta = $this->consumirws->consumirPorPost($webservice_Del, $parametros_Del, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//dump($deletePagotarjeta);
if ($deletePagotarjeta['codrespuesta'] == 'COD_003') {
$mensaje = [$deletePagotarjeta['codrespuesta'], $deletePagotarjeta['mensaje'], $deletePagotarjeta['entidadRespuesta']];
}
} catch (\Exception $e) {
DB::rollback();
// something went wrong
$mensaje = ['CODE_1'];
}
} else if ($consultarPagotarjeta['codrespuesta'] == 'COD_000') {
$consultarPagotarjeta['mensaje'] = 'NO EXISTE REGISTROS EN ESE RANGO DE FECHAS A REVERTIR. VERIFIQUE';
$mensaje = [$consultarPagotarjeta['codrespuesta'], $consultarPagotarjeta['mensaje']];
} else {
$mensaje = "Accion no realizada. Verificar Web Services";
$mensaje = [$consultarPagotarjeta['codrespuesta'], $consultarPagotarjeta['mensaje']];
}
} else {
$mensaje = ['CODE_0'];
}
} else {
$mensaje = ['CODE_1'];
}
return $mensaje;
}//END OF archivoBancoVpos
/**
* GET Show Formulario para subir archivo a Credicard
*
* @return Response
*/
public function getPagotarjetaConciliar()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Tipotransbancaria
/*$parametros_tipotrans = array('conciliar' =>"1");
$tipotransbancaria_webservice='getInfoTipotransbancariaWs';
$tipotransbancarias=$this->consumirws->consumirPorGet($tipotransbancaria_webservice,$parametros_tipotrans,$url='customs.url_baaszoom',$this->rutaSession."/");
*/
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//Se obtienen el array para el select de tipoconciliacion
$parametros_tipoconciliacion = array('id_tipoconciliacion' => "");
$tipoconciliacion_webservice = 'getInfoTipoconciliacionWs';
$tipoconciliacion = $this->consumirws->consumirPorGet($tipoconciliacion_webservice, $parametros_tipoconciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/pagotarjetaConciliar', compact('bancos', 'token', 'tipoconciliacion'));
}
public function postPagotarjetaConciliar(Request $request)
{
//capturo el archivo de VPOS
//dd($request);
$porfecha = $request->get('porfecha');
if ($porfecha == 1) {
$desde = date('Y-m-d', strtotime($request->get('desde')));
$hasta = date('Y-m-d', strtotime($request->get('hasta')));
} else {
$to = date('Y-m-d');
$nuevafecha = strtotime('-1 year', strtotime($to));
$from = date('Y-m-d', $nuevafecha);
$desde = $from;
$hasta = $to;
}
//dd($desde);
$id_tipoconciliacion = $request->get('id_tipoconciliacion');
$codbanco = $request->get('codbanco');
$codcuentabanco = $request->get('codcuentabanco');
$usuario_codusuario = $request->get('usuario_codusuario');
$conciliado = $request->get('conciliado');
$tipotransbancaria_id_tipotransbancaria = $request->get('tipotransbancaria_id_tipotransbancaria');
$tipoconMegaSoft = $request->get('tipoconMegaSoft');
//dd($tipoconMegaSoft);
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarCuentabanco);
//SE CONSUME WEB SERVICES QUE MOSTRARA EL LIMITE DE RANGO PARA CONCILIACION MANUAL
$rangoConcManual = $this->consumirws->consumirPorGet("getRangoajuwuWS", "", $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//SE VERIFICA QUE EL TIPO DE CONCILIACION SEA credicard
if ($id_tipoconciliacion == 1)
{
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado' => $conciliado
);
$webservice = 'getConsultaInfoConciliarWs';
$consultarPagotarjeta = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($consultarPagotarjeta['codrespuesta'] == "COD_000") {
$webservice = 'getConsultaInfoConciliarLibroWs';
$consultarPagotarjetataq = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($consultarPagotarjetataq['codrespuesta'] == "COD_000") {
$numberPagTarTAQ = sizeof($consultarPagotarjetataq['entidadRespuesta']);
$numberPagTar = sizeof($consultarPagotarjeta['entidadRespuesta']);
//SE RECCORRE AMBOS RESULTADOS PARA COMPARAR Y CREAR UN ARREGLO A CONCILIAR
for ($i = 0; $i < $numberPagTar; $i++) //Para la tabla de los datos de libro Pagotarjetataq
{
//La partida no debe estar en el arreglo de bando donde se encuentran todas las partidas de banco que ya han sido conciliadas
if (in_array($consultarPagotarjeta['entidadRespuesta'], $consultarPagotarjetataq['entidadRespuesta']) == false) {
for ($j = 0; $j < $numberPagTarTAQ; $j++) //Para la tabla de los datos de pagotarjeta
{
$numafiliadoPT = trim($consultarPagotarjeta['entidadRespuesta'][$i]['numafiliado']);
//COMPARACION de los numeros de afiliados
if ($numafiliadoPT == trim($consultarPagotarjetataq['entidadRespuesta'][$j]['numafiliado'])) {
//LOTE
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['numlote'] == $consultarPagotarjeta['entidadRespuesta'][$i]['numlote']) {
//TERMINAL
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['numterminal'] == $consultarPagotarjeta['entidadRespuesta'][$i]['numterminal']) {
//FECHA
if (date('Y-m-d', strtotime($consultarPagotarjetataq['entidadRespuesta'][$j]['fecha'])) == date('Y-m-d', strtotime($consultarPagotarjeta['entidadRespuesta'][$i]['fecha']))) {
//PRODUCTO
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['producto'] == $consultarPagotarjeta['entidadRespuesta'][$i]['producto']) {
//TARJETA
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['tarjeta'] == $consultarPagotarjeta['entidadRespuesta'][$i]['tarjeta']) {
//AUTORIZACION
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['autorizacion'] == $consultarPagotarjeta['entidadRespuesta'][$i]['autorizacion']) {
//CONCILIADO
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['conciliado'] == $consultarPagotarjeta['entidadRespuesta'][$i]['conciliado']) {
//TASA COMISION
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['tasacomision'] == $consultarPagotarjeta['entidadRespuesta'][$i]['tasacomision']) {
//TASA ISLR
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['tasaislr'] == $consultarPagotarjeta['entidadRespuesta'][$i]['tasaislr']) {
//CONCILIACION ID CONCILIACION
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['conciliacion_id_conciliacion'] == $consultarPagotarjeta['entidadRespuesta'][$i]['conciliacion_id_conciliacion']) {
//CODIGO CUENTA
if ($consultarPagotarjetataq['entidadRespuesta'][$j]['codcuentabanco'] == $consultarPagotarjeta['entidadRespuesta'][$i]['codcuentabanco']) {
$monto_conciliado = abs($consultarPagotarjeta['entidadRespuesta'][$i]['monto']) - abs($consultarPagotarjetataq['entidadRespuesta'][$j]['monto']);
//MONTOS IGUALES Y CONCILIADO
if ($monto_conciliado == 0 && (abs($consultarPagotarjetataq['entidadRespuesta'][$j]['monto']) == abs($consultarPagotarjeta['entidadRespuesta'][$i]['monto']))) {
//SE GENERAN LOS ARRECGLOS PARA LAS ACTUALIZACIONES MASIVAS DE pagotarjeta y pagotarjetataq
//Se colsulta de que id_pagotarjeta este en la BD para poder ser actualizado para agregarlo al arreglo a actualizar
$array_id_pagotarjeta = explode(",", $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta']);
$pagotarjetaID [$i] = $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta'];
$array_id_pagotarjetataq = explode(",", $consultarPagotarjetataq['entidadRespuesta'][$j]['id_pagotarjetataq']);
$pagotarjetaTAQ [$i] = $consultarPagotarjetataq['entidadRespuesta'][$j]['id_pagotarjetataq'];
} else {
$no_concilio[] = array(
'pagotarjeta' => $consultarPagotarjeta['entidadRespuesta'][$i],
'pagotarjetataq' => $consultarPagotarjetataq['entidadRespuesta'][$j]
);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
//SE VERIFICA SI EXISTE DATA A CONCILIAR
if ((!empty($pagotarjetaID)) and (!empty($pagotarjetaTAQ))) {
//Se separa el array por comas
$array_pagotarjetaID = implode(",", $pagotarjetaID);
$array_pagotarjetaTAQ = implode(",", $pagotarjetaTAQ);
$param = array(
'id_pagotarjeta' => $array_pagotarjetaID,
'id_pagotarjetataq' => $array_pagotarjetaTAQ,
'conciliado' => 0,
'id_tipoconciliacion' => $id_tipoconciliacion,
'usuario_codusuario' => $usuario_codusuario,
);
$webservice = 'editPagotarjetaWs';
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE";
$data = $this->consumirws->consumirPorPost($webservice, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
return view('Wscanguroazul/Conciliacion/ListConciliacionCredicardLibro', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
}
//EN CASO DE EXISTIR DATA NO CONCILIADA AUTOMATICAMENTE
if ((!empty($consultarPagotarjeta)) and ($consultarPagotarjetataq['codrespuesta'] = "COD_000") and (!empty($no_concilio))) {
$data = 0;
return view('Wscanguroazul/Conciliacion/ListConciliacionCredicardLibro', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD - LIBRO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: LIBRO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD :: VERIFICAR FECHA - CUENTA - TIPO CONCILIACION');
}
//END OF CREDICARD FUNCTIONS
//BEGIN OF BANCO FUNCTIONS
} //SE VERIFICA QUE EL TIPO DE CONCILIACION SEA EXTRACTO BANCARIO CREDICARD - BANCO
else if ($id_tipoconciliacion == 2 || ($id_tipoconciliacion == 4 && $tipoconMegaSoft == 2))
{
//SE VERIFICA SI ES POR BOTON DE PAGO QUE CONCILIADO SEA TRUE para SABER EL TIPO DE TRANSACCION BANCARIA
$idtipotransbancaria = !empty($tipoconMegaSoft) && $tipoconMegaSoft == 2 ? 25 : $tipotransbancaria_id_tipotransbancaria;
// dd($conciliado);
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR LOS WEBS SERVICES
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado_banco' => $conciliado,
'tipotransbancaria_id_tipotransbancaria' => $idtipotransbancaria,
'tipoconMegaSoft' => $tipoconMegaSoft
);
//dd($parametros);
$webservice = 'getConsultaInfoConciliarWs';
$consultarPagotarjeta = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/', 180);
//dd($consultarPagotarjeta);
//SE VERIFICA QUE EL RESULTADO DEL WEB SERVICES QUE CONSULTA PAGOTARJETA SEA POSITIVO
if ($consultarPagotarjeta['codrespuesta'] == "COD_000") {
$webservice = 'getInfoPagobancoConciliarWs';
$consultarPagobanco = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/', 180);
//dd($consultarPagobanco);
//SE VERIFICA QUE EL RESULTADO DEL WEB SERVICES QUE CONSULTA PAGOBANCO SEA POSITIVO
if ($consultarPagobanco['codrespuesta'] == "COD_000") {
/*//SI EL CASO ES MEGA SOFT SE BUSCAR EN LA TABLA DE IMPUESTOS
if(!empty($tipoconMegaSoft) && $tipoconMegaSoft == 2){
$paramImp = ['codimpuestocon[0]'=>1,'codimpuestocon[1]'=>2,'codimpuestocon[2]'=>3];
$impuestosConciliar = $this->consumirws->consumirPorGet('getInfoImpuestoConciliacionWs', $paramImp, $url = 'customs.url_baaszoom', $this->rutaSession . '/',180);
}
//dd($impuestosConciliar);*/
$numberBanco = sizeof($consultarPagobanco['entidadRespuesta']);
$numberPagTarjeta = sizeof($consultarPagotarjeta['entidadRespuesta']);
$contConciliado = 0;
$contNoConciliado = 0;
$idNo = 0;
//dump($consultarPagotarjeta);
for ($j = 0; $j < $numberBanco; $j++) //Para la tabla de los datos de pagobanco
{
$idbanco_array = array();
$idtarjeta_array = array();
$idbanco_array_no = Array();
$idtarjeta_array_no = Array();
$monto_acumulado = 0;
$sumar_monto = 0;
//CICLO PARA RECORRER A PAGOTARJETA
for ($i = 0; $i < $numberPagTarjeta; $i++) //Para la tabla de los datos de pagotarjeta
{
//MONTOS ACUMUADOS
$montoCredicard = number_format($consultarPagotarjeta['entidadRespuesta'][$i]['acum_monto'], 2, '.', '');
//SACO LAS VARIABLES A COMPARAR DE LOTES, TERMINALES, AFILIADOS
$tipoTarjetaCredicard = (int)(substr($consultarPagotarjeta['entidadRespuesta'][$i]['numterminal'], 0, 1));
//dd($tipoTarjetaCredicard);
//DETERMINO EL TIPO DE TARJETA BOTON DE PAGO Y VPOS
$condicionTipoTarjeta = $idtipotransbancaria == 25 && ($consultarPagotarjeta['entidadRespuesta'][$i]['producto'] == 'CREDITO') ? 1 : $tipoTarjetaCredicard;
//dd($acum_monto);
$acum_monto = $montoCredicard;
$montobanco = $consultarPagobanco['entidadRespuesta'][$j]['monto'];
$tipoTarjetaBanco = (int)(substr($consultarPagobanco['entidadRespuesta'][$j]['referencia'], 0, 1));
$terminalBank = substr($consultarPagobanco['entidadRespuesta'][$j]['referencia'], -3);
$loteBanco = (int)$terminalBank;
$loteCredicard = (int)$consultarPagotarjeta['entidadRespuesta'][$i]['numlote'];
$lotePrevio = ($i == 0) ? $loteCredicard : (int)$consultarPagotarjeta['entidadRespuesta'][$i - 1]['numlote'];
$afiliadoCredicard = (int)$consultarPagotarjeta['entidadRespuesta'][$i]['numafiliado'];
$afiliadoPrevio = ($i == 0) ? $afiliadoCredicard : (int)$consultarPagotarjeta['entidadRespuesta'][$i - 1]['numafiliado'];
//FECHA PAGO TARJETA
$fechaCredicard = $consultarPagotarjeta['entidadRespuesta'][$i]['fecha'];
$fechaPrevio = ($i == 0) ? $fechaCredicard : $consultarPagotarjeta['entidadRespuesta'][$i - 1]['fecha'];
//VERIFICO MONTO ACUMULADO CON MONTOBANCO Y LOTE BANCO CON LOTE CREDICARD
if ($loteBanco == $loteCredicard) {
//VERIFICO LOS 3 TIPOS DE TARJETAS (1.CREDITO, 2.DEBITO 3.ELECTRON)
if (($condicionTipoTarjeta == 1) || ($condicionTipoTarjeta == 2) || ($condicionTipoTarjeta == 3)) {
//SE COMPARAR QUE EL TIPO DE TARJETA DE CREDICARD SEA IGUAL AL DE BANCO
if ($condicionTipoTarjeta == $tipoTarjetaBanco) { //dump(number_format(round($acum_monto), 2, ',', '.').'==>'.number_format(round($montobanco), 2, ',', '.'));
if (number_format(round($acum_monto), 2, ',', '.') == number_format(round($montobanco), 2, ',', '.')) {
$monto_acumulado = $monto_acumulado + $consultarPagotarjeta['entidadRespuesta'][$i]['monto_detallado'];
$idtarjeta_array[$i] = $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta'];
$idbanco_array[$j] = $consultarPagobanco['entidadRespuesta'][$j]['id_pagobanco'];
$array_id_pagotarjeta = implode(",", array_unique($idtarjeta_array));
$array_idpagobanco = implode(",", array_unique($idbanco_array));
//dump(number_format(round($montobanco), 2, ',', '.').'==>'.number_format(round($monto_acumulado), 2, ',', '.'));
$banco_conciliado = (number_format(round($montobanco, 3), 2, ',', '.') - number_format(round($monto_acumulado, 3), 2, ',', '.'));
//dump($banco_conciliado);
if (number_format($banco_conciliado, 2, ',', '.') == 0) {
$conciliar[$j] = array(
'id_pagotarjeta' => $array_id_pagotarjeta,
'id_pagobanco' => $array_idpagobanco,
'numlote' => $loteCredicard,
'monto_acum_tarjeta' => $acum_monto,
'monto_banco' => $consultarPagobanco['entidadRespuesta'][$j]['monto'],
'banco_conciliado' => (round($montobanco) - round($acum_monto)),
'diferencia' => number_format(abs($montobanco - $acum_monto), 2, ',', '.'),
'usuario_codusuario' => $usuario_codusuario,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'idtipotransbancaria' => $idtipotransbancaria
);
}
$idtarjeta_array_no = Array();
$array_idpagobanco_no = Array();
$idbanco_array_no = Array();
$array_idpagobanco_no = Array();
$noconciliar[$j] = Array();
} else {
//dump($fechaCredicard.'=='.$fechaPrevio);
//dump($fechaCredicard.'=='.$fechaPrevio.'==>'.$loteBanco.'=='.$loteCredicard.'=====>'.$condicionTipoTarjeta.'=='.$tipoTarjetaBanco);
if ($loteBanco == $loteCredicard && ($condicionTipoTarjeta == $tipoTarjetaBanco)) {
if ($fechaCredicard == $fechaPrevio) {
$sumar_monto = $sumar_monto + $consultarPagotarjeta['entidadRespuesta'][$i]['monto_detallado'];
//GENERO LOS NO CONCILIADOS
$idtarjeta_array_no[$idNo] = $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta'];
$array_id_pagotarjeta_no = implode(",", array_unique($idtarjeta_array_no));
$idbanco_array_no[$j] = $consultarPagobanco['entidadRespuesta'][$j]['id_pagobanco'];
$array_idpagobanco_no = implode(",", array_unique($idbanco_array_no));
//dump($montobanco.'==>'.$sumar_monto.' RESTA::'.($montobanco-$sumar_monto));
//$banco_conciliado = (number_format($montobanco, 2, ',', '.') - number_format($sumar_monto, 2, ',', '.'));
$banco_conciliado = ($montobanco - $sumar_monto);
//MONTO MINIMO Y MAXIMO PARA PARA LA CONCILIACION MANUAL
$minimo = $rangoConcManual['entidadRespuesta'][0]['montoini'];
$maximo = $rangoConcManual['entidadRespuesta'][0]['montofin'];
if ((abs($banco_conciliado) >= $minimo) && (abs($banco_conciliado) <= $maximo)) {
$noconciliar[$idNo] = array(
'id_pagotarjeta' => $array_id_pagotarjeta_no,
'id_pagobanco' => $array_idpagobanco_no,
'conciliado' => 1,
'conciliado_banco' => 0,
'monto_acum_tarjeta' => $sumar_monto,
'numlote' => $loteCredicard,
'monto_banco' => $consultarPagobanco['entidadRespuesta'][$j]['monto'],
'banco_conciliado' => $banco_conciliado,
'monto' => $consultarPagotarjeta['entidadRespuesta'][$i]['acum_monto'],
'idtipotransbancaria' => $idtipotransbancaria
);
}
} else {
$sumar_monto = 0;
$idtarjeta_array_no = Array();
$array_id_pagotarjeta_no = Array();
$idbanco_array_no = Array();
$array_idpagobanco_no = Array();
//$noconciliar[$idNo] = Array();
}
$idNo++;
}
}
}
}
}
}//End FOR
}//END FOR
//dd($conciliar);
if (!empty($noconciliar)) {
$webservice_PTM = 'getPagotarjetaMasivoWs';
$no_conciliar1 = $this->consumirws->consumirPorGet($webservice_PTM, $noconciliar, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
} //dd($no_conciliar1);//dd($no_conciliar1);
if (!empty($conciliar)) {
//dd($conciliar);
$webservice = 'editConciliarBancoWs';
$data = $this->consumirws->consumirPorPost($webservice, $conciliar, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE";
}
//dd($no_conciliar1);
//SE VERIFICA SI NO CONCILIADO TRAE DATA PARA MOSTRAR SOLO LOS QUE ESTEN DENTRO DEL RANGO
if (!empty($no_conciliar1) and $no_conciliar1['codrespuesta'] != 'CODE_000') {
//LLAMADO A LA FUNCION unirArreglosConciliar EN EL CUAL SE UNEN LA DATA IGUAL
$no_conciliar1 = PagotarjetaController::unirArreglosConciliarMegaSoft($no_conciliar1);
//dd($no_conciliar1);
//MONTO MINIMO Y MAXIMO PARA PARA LA CONCILIACION MANUAL
$minimo = $rangoConcManual['entidadRespuesta'][0]['montoini'];
$maximo = $rangoConcManual['entidadRespuesta'][0]['montofin'];
for ($j = 0; $j < count($no_conciliar1['entidadRespuesta']); $j++) {
$montoPagotarjeta = (float)$no_conciliar1['entidadRespuesta'][$j]['monto_total'];
$montoBanco = (float)$no_conciliar1['entidadRespuesta'][$j][0]['banco'][0]['monto'];
$total_monto = $montoBanco - $montoPagotarjeta;
if ((abs($total_monto) >= $minimo) && (abs($total_monto) <= $maximo)) {
$no_conciliar = $no_conciliar1;
}
}
}
//dd($no_conciliar);
//SE VERIFICA QUE EXISTA DATA CONCILIADA O NO CONCILIADA
if ((!empty($data)) || (!empty($no_conciliar))) {
if ($idtipotransbancaria == 25) {
return view('Wscanguroazul/Conciliacion/MegaSoft/ListConciliacionBancoBotonPago', compact('data', 'desde', 'hasta', 'no_conciliar', 'consultarCuentabanco', 'rangoConcManual'));
} else {
return view('Wscanguroazul/Conciliacion/ListConciliacionBanco', compact('data', 'desde', 'hasta', 'no_conciliar', 'consultarCuentabanco', 'rangoConcManual'));
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR ENTRE :: CREDICARD - BANCO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: BANCO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD');
}
}//END CONCILIACION DE BANCO
//SE VERIFICA QUE EL TIPO DE CONCILIACION SEA EXTRACTO BANCARIO PAGOS ELECTRONICOS - BANCO
else if ($id_tipoconciliacion == 3)
{
//SE VERIFICA QUE EL TOKEN ESTE ACTIVO EN CASO DE HABER EXPIRADO SE ACTUALIZA, EL EL CASO DE HABER VENCIDO SE CIERRA LA SESSION
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR EL WEB SERVICE de PAGOS
$parametros = array(
'fechapagoDesde' => $desde,
'fechapagoHasta' => $hasta,
'idcuentabanco[]' => $codcuentabanco,
'conciliado' => $conciliado,
'idtipotransbanc[]' => $tipotransbancaria_id_tipotransbancaria,
'idestatuspago[]' => 1, //Estatus de pago en Verificado para consumir,
'token' => $token
);
//dump($parametros);
$webservice = 'getInfoPagoWs';
$consultarPagos = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPagos);
if ($consultarPagos['codrespuesta'] == "COD_000") {
//SE CONSUME A EL WEB SERVICES PARA pagobanco
$parametros_banco = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado_banco' => $conciliado,
'tipotransbancaria_id_tipotransbancaria' => $tipotransbancaria_id_tipotransbancaria
);
$webservice = 'getInfoPagobancoConciliarWs';
$consultarPagobanco = $this->consumirws->consumirPorGet($webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dump($parametros_banco);
//dd($consultarPagobanco);
if ($consultarPagobanco['codrespuesta'] == "COD_000") {
$numberBanco = sizeof($consultarPagobanco['entidadRespuesta']);
$numberPagos = sizeof($consultarPagos['entidadRespuesta']);
$monto_acum_credi = 0;
//CICLO PARA RECORRER BANCO
for ($i = 0; $i < $numberPagos; $i++) //Para la tabla de los datos de pagobanco
{
//La partida no debe estar en el arreglo de bando donde se encuentran todas las partidas de banco que ya han sido conciliadas
if (in_array($consultarPagobanco['entidadRespuesta'], $consultarPagos['entidadRespuesta']) == false) {
for ($j = 0; $j < $numberBanco; $j++) //Para la tabla de los datos de pagotarjeta
{
//TIPO TRANSACION BANCARIA
if ($consultarPagobanco['entidadRespuesta'][$j]['tipotransbancaria_id_tipotransbancaria'] == $consultarPagos['entidadRespuesta'][$i]['idtipotransbanc']) {
//CONCILIADO
if ($consultarPagobanco['entidadRespuesta'][$j]['conciliado'] == $consultarPagos['entidadRespuesta'][$i]['conciliado']) {
//CODCUENTABANCO
if ($consultarPagobanco['entidadRespuesta'][$j]['cuentabanco_codcuentabanco'] == $consultarPagos['entidadRespuesta'][$i]['idcuentabanco']) {
//SE VALIDA EL TIPO DE IDENTIFICADO SEA IGUAL AL REGISTRADO POR EL EXTRACTO BANCARIO
$cedularif = str_replace('-', '', $consultarPagos['entidadRespuesta'][$i]['rifcipagador']);
$sigla = substr($cedularif, 0, 1);
if ($sigla == 'V') {
$var_ced = str_replace('V', '', $cedularif);
$var_cedula = (int)$var_ced;
}else if ($sigla == 'J') {
$var_ced = str_replace('J', '', $cedularif);
$var_cedula = $var_ced;
} else {
//Se mantiene el Rif normal
$var_cedula = $cedularif;
}
$referenciaPago = trim($var_cedula);
//dump($referenciaPago);
//REFERENCIA
if ($consultarPagobanco['entidadRespuesta'][$j]['referencia'] == $referenciaPago) {
//MONTO
if ($consultarPagobanco['entidadRespuesta'][$j]['monto'] == $consultarPagos['entidadRespuesta'][$i]['montototal']) {
$monto_conciliado = $consultarPagobanco['entidadRespuesta'][$j]['monto'] - $consultarPagos['entidadRespuesta'][$i]['montototal'];
//SE VERIFICA QUE MONTO CONCILIADO SEA IGUAL A CERO
if ($monto_conciliado == 0) {
$pagosID [$i] = $consultarPagos['entidadRespuesta'][$i]['idpago'];
$pagoBancoID[$i] = $consultarPagobanco['entidadRespuesta'][$j]['id_pagobanco'];
$fechahora = date('Y-m-d H:i:s');
$inactivo = 0;
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$param_conciliacion = array(
'fechahora' => $fechahora,
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => $inactivo,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 0,
'restante' => 0
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [$i] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
}
}
}
}
}
}
}//END OF FOR
}
}//END OF FOR
//SE VALIDA QUE EXISTA DATA EN Pago, Banco Y Conciliacion
if ((!empty($pagosID)) and (!empty($pagoBancoID)) and (!empty($conciliacionID))) {
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
$idtipotransbanc = 24;
$param = array(
'idpago' => array_values($pagosID),
'idconciliacion' => array_values($conciliacionID),
'id_pagobanco' => array_values($pagoBancoID),
'token' => $token,
'conciliacion_manual' => 0,
'monto_banco' => [],
'tipotransbanc' => $idtipotransbanc,
'codusuario' => $usuario_codusuario
);
//dd($param);
$webservice_conci = 'conciliarPagosWs';
$data = $this->consumirws->consumirPorPost($webservice_conci, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($data);
$dataCorreo = array();
if (!empty($data['entidadRespuesta'])) {
for ($j = 0; $j < count($data['entidadRespuesta']); $j++) {
$dataCorreo[$j] = array(
'codusuario' => $data['entidadRespuesta'][$j]['codusuario'],
'correo' => $data['entidadRespuesta'][$j]['emailpagador'],
'nombrepagadores' => $data['entidadRespuesta'][$j]['nombrepagador'],
'nropagos' => $data['entidadRespuesta'][$j]['idpago'],
'rifcipagador' => $data['entidadRespuesta'][$j]['rifcipagador'],
'fechahora' => date('Y-m-d H:i:s', strtotime($data['entidadRespuesta'][$j]['listpagobanco']['listconciliacion']['fechahora'])),
'id_conciliacion' => $data['entidadRespuesta'][$j]['listpagobanco']['listconciliacion']['id_conciliacion'],
'montototal' => $data['entidadRespuesta'][$j]['montototal']
);
}
$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
$cuerpoMsg = $dataCorreo[$i];
$nropagos = $dataCorreo[$i]['nropagos'];
$emailEnviado = $this->sendEmail($dataCorreo[$i]['nropagos'], $dataCorreo[$i]['correo'], $dataCorreo[$i]['nombrepagadores'], null, $cuerpoMsg, null, $nropagos);
$contEmail += $emailEnviado;
}
} else {
$contEmail = 0;
}
}
//CONSULTO NUEVAMENTE A INFOPAGOS Y PAGOBANCO LUEGO DE HABER CONCILIADO PARA GENERAR LOS NO CONCILIADOS
$webservicePago = 'getInfoPagoWs';
$consultarPagos = $this->consumirws->consumirPorGet($webservicePago, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$webservicePagobanco = 'getInfoPagobancoConciliarWs';
$consultarPagobanco = $this->consumirws->consumirPorGet($webservicePagobanco, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($consultarPagobanco['codrespuesta'] == "COD_000") {
$numberBanco = sizeof($consultarPagobanco['entidadRespuesta']);
$numberPagos = sizeof($consultarPagos['entidadRespuesta']);
$monto_acum_credi = 0;
//CICLO PARA RECORRER PAGOS
for ($i = 0; $i < $numberPagos; $i++) //Para la tabla de los datos de pagobanco
{
//La partida no debe estar en el arreglo de bando donde se encuentran todas las partidas de banco que ya han sido conciliadas
if (in_array($consultarPagobanco['entidadRespuesta'], $consultarPagos['entidadRespuesta']) == false) {
//CICLO PARA RECCORRER BANCO
for ($j = 0; $j < $numberBanco; $j++) //Para la tabla de los datos de pagotarjeta
{
//TIPO TRANSACION BANCARIA
if ($consultarPagobanco['entidadRespuesta'][$j]['tipotransbancaria_id_tipotransbancaria'] == $consultarPagos['entidadRespuesta'][$i]['idtipotransbanc']) {
//CONCILIADO
if ($consultarPagobanco['entidadRespuesta'][$j]['conciliado'] == $consultarPagos['entidadRespuesta'][$i]['conciliado']) {
//CODCUENTABANCO
if ($consultarPagobanco['entidadRespuesta'][$j]['cuentabanco_codcuentabanco'] == $consultarPagos['entidadRespuesta'][$i]['idcuentabanco']) {
//SE VALIDA EL TIPO DE IDENTIFICADO SEA IGUAL AL REGISTRADO POR EL EXTRACTO BANCARIO
$cedularif = str_replace('-', '', $consultarPagos['entidadRespuesta'][$i]['rifcipagador']);
$sigla = substr($cedularif, 0, 1);
if ($sigla == 'V') {
$var_ced = str_replace('V', '', $cedularif);
$var_cedula = (int)$var_ced;
} else {
//Se mantiene el Rif normal
$var_cedula = $cedularif;
}
$referenciaPago = trim($var_cedula);
//REFERENCIA
if ($consultarPagobanco['entidadRespuesta'][$j]['referencia'] == $referenciaPago) {
//MONTO
if ($consultarPagobanco['entidadRespuesta'][$j]['monto'] != $consultarPagos['entidadRespuesta'][$i]['montototal']) {
//SI EL MONTO ES DISTINTO SE CREA EL ARREGLO A MOSTRAR DE NO CONCILIADOS
$no_concilio1[] = array(
'pagos' => $consultarPagos['entidadRespuesta'][$i],
'pagobanco' => $consultarPagobanco['entidadRespuesta'][$j]
);
}
}
}
}
}
}//END OF FOR
}
}//END OF FOR
}
//VERIFICO QUE LOS NO CONCILIADOS ESTEN DENTRO DEL RANGO A MOSTRAR
if (!empty($no_concilio1)) {
$minimo = $rangoConcManual['entidadRespuesta'][0]['montoini'];
$maximo = $rangoConcManual['entidadRespuesta'][0]['montofin'];
for ($j = 0; $j < count($no_concilio1); $j++) {
$montoPago = (float)$no_concilio1[$j]['pagos']['montototal'];
$montoBanco = (float)$no_concilio1[$j]['pagobanco']['monto'];
if ($montoPago > $montoBanco) {
$restante = $montoPago - $montoBanco;
} else {
$restante = $montoBanco - $montoPago;
}
if ((abs($restante) >= $minimo) && (abs($restante) <= $maximo)) {
$no_concilio[] = $no_concilio1[$j];
}
}
}
if (!empty($data) and (!empty($contEmail))) {
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE. SE ENVIARON " . $contEmail . " CORREOS DE NOTIFICACION";
return view('Wscanguroazul/Conciliacion/ListConciliacionPagosBanco', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else if (!empty($no_concilio)) {
$data = 0;
return view('Wscanguroazul/Conciliacion/ListConciliacionPagosBanco', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR ENTRE PAGOS ELECTRONICOS ==> BANCO, DENTRO DEL RANGO. DEBE REVISAR CEDULA, MONTO, BANCO.');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: BANCO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: PAGOS ELECTRONICOS');
}
} //SE VERIFICA QUE EL TIPO DE CONCILIACION SEA BOTON DE PAGO
elseif ($id_tipoconciliacion == 4 && $tipoconMegaSoft == 1) {
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado' => $conciliado,
'tipoconMegaSoft' => $tipoconMegaSoft,
'idtipotransbanc[]'=>25
);
//dump($parametros);
$webservice = 'getConsultaInfoConciliarWs';
$consultarPagotarjeta = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/', 180);
//dd($consultarPagotarjeta);
if ($consultarPagotarjeta['codrespuesta'] == "COD_000") {
//SE VERIFICA QUE EL TOKEN ESTE ACTIVO EN CASO DE HABER EXPIRADO SE ACTUALIZA, EL EL CASO DE HABER VENCIDO SE CIERRA LA SESSION
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR EL WEB SERVICE de PAGOS
$param = array(
'fechapagoDesde' => $desde,
'fechapagoHasta' => $hasta,
'conciliado' => $conciliado,
'idtipotransbanc[]' => $tipotransbancaria_id_tipotransbancaria,
'idestatuspago[]' => 1, //Estatus de pago en Verificado para consumir,
'token' => $token
);
//dump($param);
$webservice = 'getInfoPagoWs';
$consultarPago = $this->consumirws->consumirPorGet($webservice, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPago);
if ($consultarPago['codrespuesta'] == "COD_000") {
$numberPagMSoft = sizeof($consultarPago['entidadRespuesta']);
$numberPagTar = sizeof($consultarPagotarjeta['entidadRespuesta']);
$k = 0;
//SE RECCORRE AMBOS RESULTADOS PARA COMPARAR Y CREAR UN ARREGLO A CONCILIAR
for ($i = 0; $i < $numberPagTar; $i++) //Para la tabla de los datos de libro Pagotarjetataq
{
//La partida no debe estar en el arreglo de bando donde se encuentran todas las partidas de banco que ya han sido conciliadas
if (in_array($consultarPagotarjeta['entidadRespuesta'], $consultarPago['entidadRespuesta']) == false) {
for ($j = 0; $j < $numberPagMSoft; $j++) //Para la tabla de los datos de pagotarjeta
{
//COMPARACION de los numeros de afiliados
//if ($consultarPagotarjeta['entidadRespuesta'][$i]['numafiliado'] == trim($consultarPago['entidadRespuesta'][$j]['codafiliacion'])) {
//LOTE
//dump($consultarPago['entidadRespuesta'][$j]['nro_lote'].'=='.$consultarPagotarjeta['entidadRespuesta'][$i]['numlote']);
if ($consultarPago['entidadRespuesta'][$j]['nro_lote'] == $consultarPagotarjeta['entidadRespuesta'][$i]['numlote']) {
//TERMINAL
if ($consultarPago['entidadRespuesta'][$j]['nro_terminal'] == $consultarPagotarjeta['entidadRespuesta'][$i]['numterminal']) {
//FECHA
/*if(date('Y-m-d', strtotime($consultarPago['entidadRespuesta'][$j]['fecha']))== date('Y-m-d', strtotime($consultarPagotarjeta['entidadRespuesta'][$i]['fecha'])))
{*/
//AUTORIZACION
if ($consultarPago['entidadRespuesta'][$j]['nro_aprobacion'] == $consultarPagotarjeta['entidadRespuesta'][$i]['autorizacion']) {
//CONCILIADO
if ($consultarPago['entidadRespuesta'][$j]['conciliado'] == $consultarPagotarjeta['entidadRespuesta'][$i]['conciliado']) {
//CONCILIACION ID CONCILIACION
if ($consultarPago['entidadRespuesta'][$j]['idconciliado'] == $consultarPagotarjeta['entidadRespuesta'][$i]['conciliacion_id_conciliacion']) {
$monto_conciliado = abs($consultarPagotarjeta['entidadRespuesta'][$i]['monto']) - abs($consultarPago['entidadRespuesta'][$j]['montototal']);
//MONTOS IGUALES Y CONCILIADO
if ($monto_conciliado == 0 && (abs($consultarPago['entidadRespuesta'][$j]['montototal']) == abs($consultarPagotarjeta['entidadRespuesta'][$i]['monto']))) {
//SE GENERAN LOS ARRECGLOS PARA LAS ACTUALIZACIONES MASIVAS DE pagotarjeta y pago
//Se colsulta de que id_pagotarjeta este en la BD para poder ser actualizado para agregarlo al arreglo a actualizar
$array_id_pagotarjeta = explode(",", $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta']);
$pagotarjetaID[] = $consultarPagotarjeta['entidadRespuesta'][$i]['id_pagotarjeta'];
$array_id_pagomegaSotf = explode(",", $consultarPago['entidadRespuesta'][$j]['idpago']);
$pagoMegaSoft[] = $consultarPago['entidadRespuesta'][$j]['idpago'];
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$param_conciliacion = array(
'fechahora' => date('Y-m-d H:i:s'),
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => 0,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 0,
'restante' => 0
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
} else {
$no_concilio[] = array(
'pagotarjeta' => $consultarPagotarjeta['entidadRespuesta'][$i],
'pagos' => $consultarPago['entidadRespuesta'][$j]
);
}
}
}
}
//}
}
}
//}
}
}
}
//dump($pagoMegaSoft);
//dd($no_concilio);
//SE VERIFICA SI EXISTE DATA A CONCILIAR
if ((!empty($pagotarjetaID)) && (!empty($pagoMegaSoft)) && !empty($conciliacionID)) {
//Se separa el array por comas
$array_pagotarjetaID = implode(",", $pagotarjetaID);
$array_id_pagomegaSotf = implode(",", $pagoMegaSoft);
$param = array(
'idpago' => $pagoMegaSoft,
'idconciliacion' => array_values($conciliacionID),
'id_pagotarjeta' => array_values($pagotarjetaID),
'conciliacion_manual' => 0,
'idtipotransbanc' => $id_tipoconciliacion,
'usuario_codusuario' => $usuario_codusuario,
'idestatuspago' => 2
);
//dd($param);
$webservice = 'conciliarPagoTarjetaWs';
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE";
$data = $this->consumirws->consumirPorPost($webservice, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/', 180);
//dd($data);
if(!empty($data) && $data['codrespuesta']=='COD_002') {
//SE REALIZA EL ENVIO DE CORREOS MASIVOS PARA INFORMAR AL CLIENTE QUE SE HA CONCILIADO SU BOTON DE PAGO
$k = 0;
foreach ($data['entidadRespuesta'] as $value) {
$dataCorreo[$k] = array(
'codusuario' => $value['usuario_codusuario'],
'correo' => $value['listpagos']['emailpagador'],
'nombrepagadores' => $value['listpagos']['nombrepagador'],
'nropagos' => $value['listpagos']['idpago'],
'rifcipagador' => $value['listpagos']['rifcipagador'],
'fechahora' => date('Y-m-d H:i:s', strtotime($value['listconciliacion']['fechahora'])),
'id_conciliacion' => $value['listconciliacion']['id_conciliacion'],
'montototal' => $value['listpagos']['montototal'],
'tipopago' => '25'
);
$k++;
}
//dd($dataCorreo);
/*$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
$cuerpoMsg = $dataCorreo[$i];
$nropagos = $dataCorreo[$i]['nropagos'];
$asunto = "ZOOM: Notificacion de Pago por Boton de Pago";
$emailEnviado = $this->sendEmail($dataCorreo[$i]['nropagos'], $dataCorreo[$i]['correo'], $dataCorreo[$i]['nombrepagadores'], $asunto, $cuerpoMsg, null, $nropagos);
$contEmail += $emailEnviado;
}
//dd($contEmail);
if (!empty($contEmail)) {*/
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'))->with(Session::flash('alert-success','EL REGISTRO HA SIDO INGRESADO EXITOSAMENTE.'));
/*}else{
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'))->with(Session::flash('alert-success','EL REGISTRO HA SIDO INGRESADO EXITOSAMENTE. SE HAN ENVIADO '.$contEmail.' CORREOS ELECTRONICOS'));
}*/
}else{
//ALGO PASO
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', $data['codrespuesta'].' '.$data['mensaje']);
}
}
//EN CASO DE EXISTIR DATA NO CONCILIADA AUTOMATICAMENTE
if ((!empty($consultarPagotarjeta)) and ($consultarPagotarjetataq['codrespuesta'] = "COD_000") and (!empty($no_concilio))) {
$data = 0;
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
//return view('Wscanguroazul/Conciliacion/ListConciliacionCredicardLibro', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD - BOTON DE PAGO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: BOTON DE PAGO');
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD :: VERIFICAR FECHA - CUENTA - TIPO CONCILIACION');
}
//END OF CREDICARD FUNCTIONS
//BEGIN OF BANCO FUNCTIONS
}
}//END OF postPagotarjetaConciliar
/*************************
* FUNCION PARA EL ENVIO DE EMAILS
************************/
private function sendEmail($nropagos, $email, $nomPagador, $asunto = null, $cuerpo = null)
{
try {
if (empty($asunto)) {
$asunto = 'ZOOM: Notificacion de Pago por Transferencia EXITOSA - ' . $nropagos;
} else {
$asunto = $asunto . ' - ' . $nropagos;
}
//SE CONSUME EL WEB SERVICES getInfoAtencionClienteWs PARA EL CASO DE RECLAMOS DE ZOOM CON codtipocli=7
$parametros_AtencionCli = array('codpais[]' => 124, 'codtipocli[]' => 7);
$webservice_AtencionCli = 'getInfoAtencionClienteWs';
$dataAtencionCliente = $this->consumirws->consumirPorGet($webservice_AtencionCli, $parametros_AtencionCli, $url = 'customs.url_baaszoom', "canguroazul/");
$data = ['email' => $email, 'pagador' => $nomPagador, 'asunto' => $asunto, 'cuerpo' => $cuerpo, 'nropagos' => $nropagos, 'atencion' => $dataAtencionCliente['entidadRespuesta'][0]];
//dd($data);
$EmailEnviado = \Mail::send('emails.notificacionPago', ['data' => $data], function ($msg) use ($data) {
if (!empty($data['cuerpo']['tipopago']) && ($data['cuerpo']['tipopago'] == 25)) {
$msg->from($this->dominioCorreo, "ZOOM - Pago por Mega Soft");
} else {
$msg->from($this->dominioCorreo, "ZOOM - Pago por Transferencia");
}
$msg->to($data['email'], $data['pagador'])->subject($data['asunto']);
// $msg->setBody($data['cuerpo'], 'text/html');
});
if (is_object($EmailEnviado)) {
return 1;
} elseif (is_string($EmailEnviado)) {
if ($EmailEnviado == '1') {
return 1;
} else {
return 0;
}
} else {
return $EmailEnviado;
}
} catch (\Exception $e) {
//return $e->getMessage();
return "0";
}
}
/***********************
* Metodo para realizar conciliacion manual de credicard
* Creada por Diony Reveron
* Fecha 12-09-2016
***********************/
public function postPagotarjetaCredicardManual(Request $request)
{
$data = $request->all();
$cont = count($data) - 1;
$usuario_codusuario = Session::get('entidadRespuesta.codusuario');
$id_tipoconciliacion = 1;
$contCheckbox = $request->get('numeroban');
if ($cont > 0) {
$idtarjeta_array = array();
$idtarjeta_arraytaq = array();
$k = 1;
for ($i = 0; $i < $contCheckbox; $i++) {
if (!empty($data['id_pagotarjeta' . $k])) {
$idtarjeta = explode('/', $data['id_pagotarjeta' . $k]);
$idtarjeta_array[$i] = $idtarjeta[0];
$idtarjeta_arraytaq[$i] = $idtarjeta[1];
$array_id_pagotarjeta = implode(",", array_unique($idtarjeta_array));
$array_id_pagotarjetataq = implode(",", array_unique($idtarjeta_arraytaq));
$param = array(
'id_pagotarjeta' => $array_id_pagotarjeta,
'id_pagotarjetataq' => $array_id_pagotarjetataq,
'conciliado' => 0,
'usuario_codusuario' => $usuario_codusuario,
'id_tipoconciliacion' => $id_tipoconciliacion
);
}
$k++;
}
}
$webservice = 'editPagotarjetaConciliacionManualWs';
//Consulta y obtencion de conciliacion CredicardLibro (Pagotarjeta y Pagotarjetataq)
$data = $this->consumirws->consumirPorPost($webservice, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($data['codrespuesta'] == 'COD_002') {
$codcuentabanco = $data['entidadRespuesta'][0]['codcuentabanco'];
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$data['mensaje'] = "CONCILIACION MANUAL REALIZADA EXITOSAMENTE";
return view('Wscanguroazul/Conciliacion/ListConciliacionCredicardLibro', compact('data', 'consultarCuentabanco'));
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD - LIBRO');
}
}//CONCILIACION MANUAL
/***********************
* Metodo para realizar conciliacion manual de credicard
* Creada por Diony Reveron
* Fecha 12-09-2016
***********************/
public function postPagobancoConciliarManual(Request $request)
{
$data = $request->all();
$cont = count($data);
$usuario_codusuario = Session::get('entidadRespuesta.codusuario');
$id_tipoconciliacion = 2;
$contCheckbox = $request->get('numeroban');
$idtipotransbanc = $request->get('idtipotransbanc');
if ($cont > 0) {
$idtarjeta_array = array();
$idbanco_array = array();
$k = 1;
for ($i = 0; $i < $contCheckbox; $i++) {
if (!empty($data['id_pagotarjeta' . $k])) {
$idtarjeta = explode('/', $data['id_pagotarjeta' . $k]);
$idtarjeta_array[$i] = $idtarjeta[0];
$idbanco_array[$i] = $idtarjeta[1];
$montoBanco_array[$i] = $idtarjeta[2];
$array_id_pagotarjeta = implode(",", array_unique($idtarjeta_array));
$array_id_pagobanco = implode(",", array_unique($idbanco_array));
$array_montoBanco = implode(",", $montoBanco_array);
$param[$i] = array(
'id_pagotarjeta' => $array_id_pagotarjeta,
'id_pagobanco' => $array_id_pagobanco,
'conciliado' => 1,
'banco_conciliado' => 0,
'usuario_codusuario' => $usuario_codusuario,
'id_tipoconciliacion' => $id_tipoconciliacion,
'monto_acumulado' => $array_montoBanco,
'idtipotransbanc' => $idtipotransbanc
);
}
$k++;
$idtarjeta_array = array();
$idbanco_array = array();
}
}
//dump($param);
$webservice = 'editConciliarBancoManualWs';
//Consulta y obtencion de conciliacion CredicardLibro (Pagotarjeta y Pagotarjetataq)
$data_distint = $this->consumirws->consumirPorPost($webservice, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dump($data_distint);
if ($data_distint['codrespuesta'] == 'COD_001') {
//SE REVSIA EL ARREGLO PARA FORMAR UNO SOLO
//$data_distint = $idtipotransbanc == 25 ? PagotarjetaController::unirArreglosConciliarMegaSoft($data_distint) : PagotarjetaController::unirArreglosConciliar($data_distint);
$data_distint = PagotarjetaController::unirArreglosConciliar($data_distint);
$codcuentabanco = $data_distint['entidadRespuesta'][0][0]['codcuentabanco'];
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$data_distint['mensaje'] = "CONCILIACION MANUAL REALIZADA EXITOSAMENTE";
if ($idtipotransbanc == 25) {
return view('Wscanguroazul/Conciliacion/MegaSoft/ListConciliacionBancoBotonPago', compact('data_distint', 'consultarCuentabanco'));
} else {
return view('Wscanguroazul/Conciliacion/ListConciliacionBanco', compact('data_distint', 'consultarCuentabanco'));
}
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTEN DATA A CONCILIAR :: CREDICARD - BANCO');
}
}//CONCILIACION MANUAL
/**************************
* METODO PARA UNIR ARREGLOS A LA CONCILIACION MANUAL
**************************/
public function unirArreglosConciliar($arreglo)
{
if (!empty($arreglo)) {
//SE DECLARAN LOS ARREGLOS A GENERARSE
$result = array();
$resultado1 = array();
// ESTE CICLO SERA PARA RECORRER EL ARRAY Y VER LOS DATOS REPETIDOS EN EL MISMO SEGUN EL NUMERO DE LOTE
foreach ($arreglo['entidadRespuesta'] as $data1) {
//SE OBTIENE EL LOTE DE LA POSICION 0
if (!empty($data1[0]['credicard'])) {
$numlote = $data1[0]['credicard']['numlote'];
} else {
$numlote = $data1[0]['numlote'];
}
//EN CASO DE EL LOTE SER VACIO NO MANDA DATA
if (isset($result[$numlote])) {
$result[$numlote][] = $data1;
} else {
// EN CASO DE VENIR DATA POR EL LOTE SE GENERA $result
$result[$numlote] = array($data1);
$h = 0;
$sumarr = 0;
$id_pagotarjeta = Array();
//SE RECORRE EL ARREGLO PARA GENERAR LA SUMA DEL monto Y LOS IDS DE id_pagobanco, id_pagotarjeta
foreach ($result[$numlote] as $valor) {
for ($h = 0; $h < count($valor); $h++) {
if (!empty($valor[$h]['credicard'])) {
$sumarr = $sumarr + $valor[$h]['credicard']['acumul_monto'];
$id_pagotarjeta[$h] = $valor[$h]['credicard']['id_pagotarjeta'];
$array_id_pagotarjeta = implode(",", array_unique($id_pagotarjeta));
$id_pagobanco = $valor[$h]['banco'][0]['id_pagobanco'];
} else {
if ($valor[$h]['idtipotransbanc'] == 25) {
//$sumarr = $sumarr + $valor[$h]['credicard']['monto'];
$sumarr = $sumarr + $valor[$h]['acumul_monto'];
} else {
$sumarr = $sumarr + $valor[$h]['monto'];
}
$id_pagotarjeta[$h] = $valor[$h]['id_pagotarjeta'];
$array_id_pagotarjeta = implode(",", array_unique($id_pagotarjeta));
$id_pagobanco = $valor[$h]['listconciliacion_banco']['id_pagobanco'];
}
}
}
$i = 0;
// SE RECORRE EL ARREGLO PARA GENERAR EL RESULTADO DONDE INDICARA SOLO UN LOTE CON SUS ids A actualizar
foreach ($result[$numlote] as $row) {
if (!empty($row)) {
$resultado1[] = array_merge
(
array($row[$i]),
array('monto_total' => $sumarr),
array('id_pagotarjeta' => $array_id_pagotarjeta),
array('id_pagobanco' => $id_pagobanco)
);
}
$i++;
}
}
}
//SE LE CONCATENA AL ARREGLO LA DATA NECESARIA A MOSTRAR
$resultado = array_merge(array('codrespuesta' => $arreglo['codrespuesta']), array('entidadRespuesta' => $resultado1));
}
return $resultado;
}
/**************************
* METODO PARA UNIR ARREGLOS A LA CONCILIACION MANUAL BOTON DE PAGO
**************************/
public function unirArreglosConciliarMegaSoft($arreglo)
{//dump($arreglo);
if (!empty($arreglo)) {
//SE DECLARAN LOS ARREGLOS A GENERARSE
$result = array();
$resultado1 = array();
// ESTE CICLO SERA PARA RECORRER EL ARRAY Y VER LOS DATOS REPETIDOS EN EL MISMO SEGUN EL NUMERO DE LOTE
foreach ($arreglo['entidadRespuesta'] as $data1) {
//SE OBTIENE EL LOTE DE LA POSICION 0
if (!empty($data1[0]['credicard'])) {
$numlote = $data1[0]['credicard']['numlote'];
} else {
$numlote = $data1[0]['numlote'];
}
//EN CASO DE EL LOTE SER VACIO NO MANDA DATA
if (isset($result[$numlote])) {
$result[$numlote][] = $data1;
} else {
// EN CASO DE VENIR DATA POR EL LOTE SE GENERA $result
$result[$numlote] = array($data1);
$h = 0;
$sumarr = 0;
$id_pagotarjeta = Array();
//SE RECORRE EL ARREGLO PARA GENERAR LA SUMA DEL monto Y LOS IDS DE id_pagobanco, id_pagotarjeta
foreach ($result[$numlote] as $valor) {
for ($h = 0; $h < count($valor); $h++) {
// dump($valor);
$fechaCredicard = $valor[$h]['credicard']['fecha'];
$fechaPrevio = ($h == 0) ? $fechaCredicard : $valor[$h - 1]['credicard']['fecha'];
if ($fechaCredicard == $fechaPrevio) {
if (!empty($valor[$h]['credicard'])) {
//$sumarr = $sumarr + $valor[$h]['credicard']['monto'];
$sumarr = $sumarr + $valor[$h]['credicard']['acumul_monto'];//monto_detallado
$id_pagotarjeta[$h] = $valor[$h]['credicard']['id_pagotarjeta'];
$array_id_pagotarjeta = implode(",", array_unique($id_pagotarjeta));
$id_pagobanco = $valor[$h]['banco'][0]['id_pagobanco'];
} else {
$sumarr = $sumarr + $valor[$h]['monto'];
$id_pagotarjeta[$h] = $valor[$h]['id_pagotarjeta'];
$array_id_pagotarjeta = implode(",", array_unique($id_pagotarjeta));
$id_pagobanco = $valor[$h]['listconciliacion_banco']['id_pagobanco'];
}
}
}
}
$i = 0;
// SE RECORRE EL ARREGLO PARA GENERAR EL RESULTADO DONDE INDICARA SOLO UN LOTE CON SUS ids A actualizar
foreach ($result[$numlote] as $row) {
if (!empty($row)) {
$resultado1[] = array_merge
(
array($row[$i]),
array('monto_total' => $sumarr),
array('id_pagotarjeta' => $array_id_pagotarjeta),
array('id_pagobanco' => $id_pagobanco)
);
}
$i++;
}
}
}
//SE LE CONCATENA AL ARREGLO LA DATA NECESARIA A MOSTRAR
$resultado = array_merge(array('codrespuesta' => $arreglo['codrespuesta']), array('entidadRespuesta' => $resultado1));
}
return $resultado;
}
/******************
* METODO DE GET PARA BUSCAR LOS REGISTROS CONCILIADOS Y NO CONCILIADOS
*******************/
public function getbuscarConciliar()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//Se obtienen el array para el select de tipoconciliacion
$parametros_tipoconciliacion = array('id_tipoconciliacion' => "");
$tipoconciliacion_webservice = 'getInfoTipoconciliacionWs';
$tipoconciliacion = $this->consumirws->consumirPorGet($tipoconciliacion_webservice, $parametros_tipoconciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/getbuscarConciliar', compact('bancos', 'token', 'tipoconciliacion'));
}//END OF getbuscarConciliar
/******************
* METODO DE POST PARA BUSCAR LOS REGISTROS CONCILIADOS Y NO CONCILIADOS
*******************/
public function postBusquedaConciliar(Request $request)
{
//dd($request);
//capturo el archivo de VPOS
$porfecha = date('Y-m-d', strtotime($request->get('porfecha')));
if ($porfecha == 1) {
$desde = date('Y-m-d', strtotime($request->get('desde')));
$hasta = date('Y-m-d', strtotime($request->get('hasta')));
} else {
$to = date('Y-m-d');
$nuevafecha = strtotime('-1 year', strtotime($to));
$from = date('Y-m-d', $nuevafecha);
$desde = $from;
$hasta = $to;
}
$id_tipoconciliacion = $request->get('id_tipoconciliacion');
$codbanco = $request->get('codbanco');
$codcuentabanco = $request->get('codcuentabanco');
$usuario_codusuario = $request->get('usuario_codusuario');
$conciliado = $request->get('conciliado');
$tipotransbancaria_id_tipotransbancaria = $id_tipoconciliacion == 4 ? 25 : $request->get('tipotransbancaria_id_tipotransbancaria');
$tipoconMegaSoft = $request->get('tipoconMegaSoft');
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//SE VERIFICA QUE EL TIPO DE CONCILIACION SEA credicard
if ($id_tipoconciliacion == 1)
{
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado' => $conciliado
);
$webservice = 'getConsultaInfoBusquedadConciliarWs';
$consultarPagotarjeta = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if (($consultarPagotarjeta['codrespuesta'] == "COD_000") and $conciliado == 1) {
$data = $consultarPagotarjeta;
return view('Wscanguroazul/Conciliacion/busquedaListConciliacionCredicardLibro', compact('data', 'desde', 'hasta', 'consultarCuentabanco'));
} else if (($consultarPagotarjeta['codrespuesta'] == "COD_000") and $conciliado == 0) {
$data = $consultarPagotarjeta;
return view('Wscanguroazul/Conciliacion/busquedaListConciliacionCredicardLibroNoConciliado', compact('data', 'desde', 'hasta', 'consultarCuentabanco'));
} else {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTE DATA. VERIFIQUE');
}
}//END OF CREDICARD FUNCTIONS
//BEGIN OF EXTRACTO BANCO CREDICARD FUNCTIONS
else if ($id_tipoconciliacion == 2)
{
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR EL WEB SERVICE
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado_banco' => $conciliado
);
$webservice = 'getConsultaInfoBusquedadConciliarWs';
$consultarPagotarjeta = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if (($consultarPagotarjeta['codrespuesta'] == "COD_000") and $conciliado == 1) {
$data = $consultarPagotarjeta;
//SE CONSUME WEB SERVICES QUE MOSTRARA EL LIMITE DE RANGO PARA CONCILIACION MANUAL
$rangoConcManual = $this->consumirws->consumirPorGet("getRangoajuwuWS", "", $url = 'customs.url_baaszoom', $this->rutaSession . '/');
return view('Wscanguroazul/Conciliacion/busquedaListConciliacionBanco', compact('data', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else if (($consultarPagotarjeta['codrespuesta'] == "COD_000") and $conciliado == 0) {
$data = $consultarPagotarjeta;
//SE CONSUME WEB SERVICES QUE MOSTRARA EL LIMITE DE RANGO PARA CONCILIACION MANUAL
$rangoConcManual = $this->consumirws->consumirPorGet("getRangoajuwuWS", "", $url = 'customs.url_baaszoom', $this->rutaSession . '/');
return view('Wscanguroazul/Conciliacion/busquedaListNoConciliacionBanco', compact('data', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
} else {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTE DATA. VERIFIQUE');
}
}//END CONCILIACION DE BANCO
//COMIENZO DE BUSQUEDAD DE CONCILIACION DE BANCO Y PAGOS
else if ($id_tipoconciliacion == 3)
{
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR EL WEB SERVICE
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
$param = array(
'fechapagoDesde' => $desde,
'fechapagoHasta' => $hasta,
'idcuentabanco[]' => (int)$codcuentabanco,
'idtipotransbanc[]' => (int)$tipotransbancaria_id_tipotransbancaria,
'conciliado' => $conciliado,
'token' => $token
);
$opcionPagos = $request->get('opcionPagos');
//dump($opcionPagos);
//dump($param);
if ($opcionPagos == 0) {
$webservicePago = 'getInfoPagoWs';
$consultarPagos = $this->consumirws->consumirPorGet($webservicePago, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPagos);
} else if ($opcionPagos == 1) {
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'id_tipoconciliacion' => $id_tipoconciliacion,
'codcuentabanco' => $codcuentabanco,
'conciliado' => $conciliado,
'tipotransbancaria_id_tipotransbancaria' => 24
);
$webservice = 'getConsultaInfoBusquedadConciliarWs';
$consultarBanco = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarBanco);
$data = $consultarBanco;
return view('Wscanguroazul/Conciliacion/busquedaListNoPagoBanco', compact('data', 'desde', 'hasta', 'consultarCuentabanco'));
} else if ($opcionPagos == '') {
$webservicePago = 'getInfoPagoWs';
$consultarPagos = $this->consumirws->consumirPorGet($webservicePago, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
}
if (!empty($consultarPagos['codrespuesta']) and ($consultarPagos['codrespuesta'] == "COD_000") and $conciliado == 1) {
$data = $consultarPagos;
return view('Wscanguroazul/Conciliacion/busquedaListConciliacionPagosBanco', compact('data', 'desde', 'hasta', 'consultarCuentabanco'));
} else if (!empty($consultarPagos['codrespuesta']) and ($consultarPagos['codrespuesta'] == "COD_000") and $conciliado == 0) {
$data = $consultarPagos;
return view('Wscanguroazul/Conciliacion/busquedaListNOConciliacionPagosBanco', compact('data', 'desde', 'hasta', 'consultarCuentabanco'));
} else if (!empty($consultarPagos['codrespuesta']) and $consultarPagos['codrespuesta'] == "CODE_000") {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', $consultarPagos['mensaje']);
} else {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', 'EN ESTE RANGO DE FECHAS NO EXISTE DATA. VERIFIQUE');
}
}//END CONCILIACION DE BANCO
else if ($id_tipoconciliacion == 4) {
// dump($request);
$idtipotransbanc = 25;
$parametros_banco = array('codbanco' => $codbanco[0]);
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', "canguroazul/");
//dd($tipoconMegaSoft);
//BUSQUEDA DETALLADA
if ($tipoconMegaSoft == 1) {
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONCUMIDOS POR EL WEB SERVICE
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'idtipotransbanc' => $idtipotransbanc,
'conciliado' => $conciliado,
'codbanco' => $request->get('codbanco'),
'id_tipoconciliacion' => $id_tipoconciliacion,
'tipoconciliacion' => $tipoconMegaSoft,
//'tipoconMegaSoft' => $tipoconMegaSoft,
'codcuentabanco' => $request->get('codcuentabanco')
);
// dump($parametros);
//$webservice = 'getInfoPagotarjetaDetalleConciliarWs';
$webservice = 'getInfoPagotarjetaDetalleConciliarWs';
$response = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($response);
if (($conciliado == 0) && ($response['codrespuesta'] == 'COD_000')) {
return view('Wscanguroazul/Conciliacion/MegaSoft/busquedaListNoConciliadoDetalleMegaSoft', compact('response', 'desde', 'hasta', 'bancos'));
} //CONCILIADO EN TRUE
else if (($conciliado == 1) && ($response['codrespuesta'] == 'COD_000')) {
return view('Wscanguroazul/Conciliacion/MegaSoft/busquedaListConciliadoDetalleMegaSoft', compact('response', 'desde', 'hasta', 'bancos'));
} else {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', $response['mensaje']);
}
} //BUSQUEDA POR LOTE
else if ($tipoconMegaSoft == 2) {
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONSUMIDOS POR LOS WEBS SERVICES. id_tipoconciliacion==1 Para BUSCAR NO CONCILIADOS PAGOTARJETA
$search = $conciliado == 0 ? 0 : 1;
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'codcuentabanco' => $request->get('codcuentabanco'),
'conciliado_banco' => $conciliado,
'tipotransbancaria_id_tipotransbancaria' => $idtipotransbanc,
'id_tipoconciliacion' => 1,
'search' => $search
);
$param_CB = array('codcuentabanco[]' => $request->get('codcuentabanco'));
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dump($parametros);
if ($conciliado == 0) {
//SE CONSULTA DE PAGO TARJETA LOS NO CONCILIADOS getConsultaInfoConciliarWs
$response = $this->consumirws->consumirPorGet("getInfoPagobancoConciliarWs", $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
} elseif ($conciliado == 1) {
//getConsultaInfoBusquedadConciliarWs
$response = $this->consumirws->consumirPorGet("getInfoPagobancoConciliarWs", $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dump($response);
}
//dump($response);
if ($conciliado == 0 && $response['codrespuesta'] == 'COD_000') {
return view('Wscanguroazul/Conciliacion/MegaSoft/busquedaListNoConciliadoLoteMegaSoft', compact('response', 'desde', 'hasta', 'bancos', 'consultarCuentabanco'));
} else if ($conciliado == 1 && $response['codrespuesta'] == 'COD_000') {
return view('Wscanguroazul/Conciliacion/MegaSoft/busquedaListConciliadoLoteMegaSoft', compact('response', 'desde', 'hasta', 'bancos', 'consultarCuentabanco'));
} else {
//return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', $response['mensaje']);
}
}
}
}//END OF postBusquedaConciliar
/***********************
* Metodo para realizar conciliacion manual de Pagos electronicos - Banco
* Creada por Diony Reveron
* Fecha 10-10-2016
***********************/
public function postPagosBancoTransManual(Request $request)
{
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
$data = $request->all();
$cont = count($data) - 1;
$usuario_codusuario = Session::get('entidadRespuesta.codusuario');
$id_tipoconciliacion = 3;
$contCheckbox = $request->get('numeroban');
if ($cont > 0) {
$idpago_array = array();
$idtarjeta_arraytaq = array();
$k = 1;
for ($i = 0; $i < $contCheckbox; $i++) {
if (!empty($data['idpago' . $k])) {
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$fechahora = date('Y-m-d H:i:s');
$inactivo = 0;
//SE ACPTURAN LOS DATOS QUE VIENEN DE CHECKBOX
$idpagos = explode('/', $data['idpago' . $k]);
$idpago_array[$i] = $idpagos[0];
$idbanco_array[$i] = $idpagos[1];
$montobanco_array[$i] = $idpagos[2];
$montoPagos_array[$i] = $idpagos[3];
$montobanco = (double)$montobanco_array[$i];
$montoPagos = (double)$montoPagos_array[$i];
$restante = ($montobanco - $montoPagos);
$restante = abs($restante);
$restante = number_format($restante, 2);
$param_conciliacion = array(
'fechahora' => $fechahora,
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => $inactivo,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 1,
'restante' => $restante
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [$i] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
$param = array(
'idpago' => $idpago_array,
'idconciliacion' => $conciliacionID,
'id_pagobanco' => $idbanco_array,
'token' => $token,
'conciliacion_manual' => 1,
'monto_banco' => $montobanco_array
);
}
$k++;
}
}
//Se realizar la conciliacion manual
$webservice_conci = 'conciliarPagosWs';
$data = $this->consumirws->consumirPorPost($webservice_conci, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($data['codrespuesta'] == 'COD_002') {
//PARA ENVIAR CORREO
for ($j = 0; $j < count($data['entidadRespuesta']); $j++) {
$dataCorreo[$j] = array(
'codusuario' => $data['entidadRespuesta'][$j]['codusuario'],
'correo' => $data['entidadRespuesta'][$j]['emailpagador'],
'nombrepagadores' => $data['entidadRespuesta'][$j]['nombrepagador'],
'nropagos' => $data['entidadRespuesta'][$j]['idpago'],
'rifcipagador' => $data['entidadRespuesta'][$j]['rifcipagador'],
'fechahora' => date('Y-m-d H:i:s', strtotime($data['entidadRespuesta'][$j]['listpagobanco']['listconciliacion']['fechahora'])),
'id_conciliacion' => $data['entidadRespuesta'][$j]['listpagobanco']['listconciliacion']['id_conciliacion'],
'montototal' => $data['entidadRespuesta'][$j]['montototal']
);
}
$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
$cuerpoMsg = $dataCorreo[$i];
$nropagos = $dataCorreo[$i]['nropagos'];
$emailEnviado = $this->sendEmail($dataCorreo[$i]['nropagos'], $dataCorreo[$i]['correo'], $dataCorreo[$i]['nombrepagadores'], null, $cuerpoMsg, null, $nropagos);
$contEmail += $emailEnviado;
}
if (!empty($contEmail)) {
$codcuentabanco = $data['entidadRespuesta'][0]['idcuentabanco'];
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE. SE ENVIARON " . $contEmail . " CORREOS DE NOTIFICACION";
return view('Wscanguroazul/Conciliacion/ListConciliacionPagosBanco', compact('data', 'no_concilio', 'desde', 'hasta', 'consultarCuentabanco', 'rangoConcManual'));
}
} else if ($data['codrespuesta'] == 'CODE_005') {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', $data['codrespuesta'] . ' - ' . $data['mensaje']);
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR :: PAGOS ELECTRONICOS - EXTRACTO BANCARIO');
}
}//CONCILIACION MANUAL
/*****************
* FUNCION PARA ENVIOS DE CORREOS DE FORMA MANUAL
*****************/
public function postSendCorreoManual(Request $request)
{
$data = $request->all();
$contCheckbox = $request->get('numeroban');
$tipo = $request->get('tipo');
$usuario_codusuario = Session::get('entidadRespuesta.codusuario');
if ($contCheckbox > 0) {
$k = 1;
$h = 0;
$dataCorreo = Array();
for ($i = 0; $i < $contCheckbox; $i++) {
if (!empty($data["id_banco" . $k])) {
$var = explode('/', $data["id_banco" . $k]);
$cedula = $var[0];
$correo = $var[1];
$id_pago = $var[2];
$nombre = $var[3];
$fechaBanco = $var[4];
$monto = $var[5];
$dataCorreo[$h] = array(
'codusuario' => $usuario_codusuario,
'correo' => $correo,
'nombre' => $nombre,
'cedula' => $cedula,
'fechaBanco' => date('Y-m-d', strtotime($fechaBanco)),
'monto' => $monto,
'id_pago' => $id_pago
);
$h++;
}
$k++;
}
}
$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
if ($tipo == 1) {
$asunto = "ZOOM: Notificacion de Pago Recibido por Pagos Electronicos";
} else {
$asunto = "ZOOM: Notificacion de Pago Recibido por Banco";
}
$emailEnviado = $this->sendEmailNotificacion($dataCorreo[$i]['correo'], $dataCorreo[$i]['nombre'], $asunto, $dataCorreo[$i]['cedula'], date('Y-m-d', strtotime($dataCorreo[$i]['fechaBanco'])), $dataCorreo[$i]['monto'], $tipo, $dataCorreo[$i]['id_pago'], null);
$contEmail += $emailEnviado;
}
//dd($emailEnviado);
if (!empty($contEmail)) {
$datos['mensaje'] = "SE ENVIARON " . $contEmail . " CORREOS DE NOTIFICACION";
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-success', $datos['mensaje']);
} else {
return redirect($this->rutaSession . '/' . 'getbuscarConciliar')->with('alert-danger', 'Error al momento de enviar los correos. Intente mas tarde');
}
}//END OF postSendCorreoManual
/************************
* ENVIO DE NOTIFICACION DE PAGO RECIBIDO POR BANCO
***********************/
private function sendEmailNotificacion($email, $nombreCliente, $asunto, $cedula, $fechaBanco, $monto, $tipo, $id_pago)
{
try {
//SE CONSUME EL WEB SERVICES getInfoAtencionClienteWs PARA EL CASO DE RECLAMOS DE ZOOM CON codtipocli=7
$parametros_AtencionCli = array('codpais[]' => 124, 'codtipocli[]' => 7);
$webservice_AtencionCli = 'getInfoAtencionClienteWs';
$dataAtencionCliente = $this->consumirws->consumirPorGet($webservice_AtencionCli, $parametros_AtencionCli, $url = 'customs.url_baaszoom', "canguroazul/");
$data = ['email' => $email, 'pagador' => $nombreCliente, 'asunto' => $asunto, 'cedula' => $cedula, 'fechaBanco' => $fechaBanco, 'monto' => $monto, 'tipo' => $tipo, 'id_pago' => $id_pago, 'atencion' => $dataAtencionCliente['entidadRespuesta'][0]];
$EmailEnviado = \Mail::send('emails.notificacionPagoRecibido', ['data' => $data], function ($msg) use ($data) {
$msg->from($this->dominioCorreo, 'ZOOM - Pago por Transferencia');
$msg->to($data['email'], $data['pagador'])->subject($data['asunto']);
});
if (is_object($EmailEnviado)) {
return 1;
} elseif (is_string($EmailEnviado)) {
if ($EmailEnviado == '1') {
return 1;
} else {
return 0;
}
} else {
return $EmailEnviado;
}
} catch (\Exception $e) {
//return $e->getMessage();
return "0";
}
}//END OF sendEmailNotificacion
/*************************************
* CARGAR ARCHIVOS DE CARGA DE ARCHIVOS DE
* MEGA SOFT
* 16 DE JUNIO 2017
*/
public function getCargaArchivoDetalladoMegaSoft()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', "canguroazul/");
return view('Wscanguroazul/Conciliacion/MegaSoft/cargaArchivoDetallado', compact('bancos', 'token'));
}
public function postArchivoDetalladoMegaSoft(Request $request)
{
//SE CAPTURA DATOS DE ARCHIVO MEGASOFT
$archivo_extracto = Input::file('archivo_extracto');
$usuario_codusuario = $request->get('usuario_codusuario');
$filename_extracto = $archivo_extracto->getClientOriginalName();
$extension_extracto = $archivo_extracto->getClientOriginalExtension();
//SE GUARDA EL ARCHIVO TEMPORALMENTE
$destination = storage_path('app/public/imports/');
$file_upload = Input::file('archivo_extracto')->move($destination, $filename_extracto);
$codbanco = $request->get('codbanco');
$conciliado = trim($request->get('conciliado'));
$idtipotransbanc = trim($request->get('idtipotransbanc'));
$parametros_banco = array('codbanco' => $codbanco);
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', "canguroazul/");
$tipocarga = $request->get('form');//1. DETALLADO 2. LOTE
if (!empty($tipocarga) && ($tipocarga == 2)) {
$linkRedirect = "getCargaArchivoLote";
} else {
$linkRedirect = "getCargaArchivoDetalladoMegaSoft";
}
//CARGA DEL ARCHIVO TXT DEL BANCO
if ($file_upload) {
if (($extension_extracto == "txt")) {
/**************************
* BANCO EXTERIOR 7 DETALLADO
**************************/
//dump($codbanco);
//dump($tipocarga);
if ($codbanco == 7 && ($tipocarga == 1)) {
$archivoDetalladoBanco = PagotarjetaController::extractoBancarioExterior($destination, $filename_extracto, $usuario_codusuario, $conciliado, $idtipotransbanc, $codbanco);
//dd($archivoDetalladoBanco);
if (empty($archivoDetalladoBanco)) {
return redirect($this->rutaSession . '/' . 'getCargaArchivoDetalladoMegaSoft')->with('alert-danger', 'ERROR. EL ARCHIVO SE ENCUENTRA DAÑADO');
} else {
if ($archivoDetalladoBanco['codrespuesta'] == 'COD_001') {
//ARCHIVO GUARDADO CON EXITO
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
$data = $archivoDetalladoBanco;
return View::make('Wscanguroazul/Conciliacion/MegaSoft/pagotarjetaDetalleList', compact('data', 'bancos'));
} else if ($archivoDetalladoBanco['codrespuesta'] == 'CODE_004') {
$data = $archivoDetalladoBanco;
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
return View::make('Wscanguroazul/Conciliacion/MegaSoft/pagotarjetaDetalleList', compact('data', 'bancos'));
} else if ($archivoDetalladoBanco['codrespuesta'] == 'CODE_1') {
return redirect($this->rutaSession . '/' . 'getCargaArchivoDetalladoMegaSoft')->with('alert-danger', 'EL ARCHIVO QUE INTENTA IMPORTAR ESTÁ VACÍO.');
} else if ($archivoDetalladoBanco['codrespuesta'] == 'CODE_003') {
return redirect($this->rutaSession . '/' . 'getCargaArchivoDetalladoMegaSoft')->with('alert-danger', 'EL ARCHIVO ESTA DAÑADO. VERIFIQUE EL CONTENIDO DEL MISMO.');
}
}
} else //END OF Exterior
/**************************
* BANCO EXTERIOR 7 LOTE
**************************/
if ($codbanco == 7 && ($tipocarga == 2)) {
$cargaarchivoLote = PagotarjetaController::extractoBancarioLote($destination, $filename_extracto, $usuario_codusuario, $conciliado, $idtipotransbanc);
//dd($cargaarchivoLote);
if (empty($cargaarchivoLote)) {
return redirect($this->rutaSession . '/' . 'getCargaArchivoLote')->with('alert-danger', 'ERROR. EL ARCHIVO SE ENCUENTRA DAÑADO');
} else {
//SE VERIFICA SI EL ARCHIVO EXISTIA O SE AGREGO ALGUN NUEVO REGISTRO
if ($cargaarchivoLote['codrespuesta'] == 'COD_001') {
//ARCHIVO GUARDADO CON EXITO
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
$data = $cargaarchivoLote;
return View::make('Wscanguroazul/Conciliacion/MegaSoft/pagotarjetaLoteList', compact('data', 'bancos'));
} else if ($cargaarchivoLote['codrespuesta'] == 'CODE_004') {
$data = $cargaarchivoLote;
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
return View::make('Wscanguroazul/Conciliacion/MegaSoft/pagotarjetaLoteList', compact('data', 'bancos'));
}
}
} else {
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
return redirect($this->rutaSession . '/' . $linkRedirect)->with('alert-danger', 'EL BANCO SELECCIONADO NO PUEDE SER PROCESADO. VERIFIQUE');
}
} else {
if (File::exists($destination, $filename_extracto)) {
unlink($destination . $filename_extracto);
}
return redirect($this->rutaSession . '/' . $linkRedirect)->with('alert-danger', 'LA EXTENSIÓN DEL ARCHIVO NO ES CORRECTA. SOLO SE PERMITEN ARCHIVOS CON EXTENSIÓN .txt');
}
} else {
return redirect($this->rutaSession . '/' . $linkRedirect)->with('alert-danger', 'OCURRIÓ ALGÚN ERROR AL PROCESAR EL ARCHIVO. NO PUDO GUARDARSE. INTENTELO MAS TARDE. DEBE HACER UN PRINT DE LA PANTALLA Y COMUNICARSE CON LA GERENCIA DE SISTEMAS');
}
}//END OF postArchivoDetalladoMegaSoft
/***************************
* LECTURA DE EXTRACTO BANCO Exterior
****************************/
public function extractoBancarioExterior($destination, $filename_extracto, $usuario_codusuario, $conciliado, $idtipotransbanc, $codbanco)
{
$contents = array();
$resultado = array();
try {
foreach (file($destination . $filename_extracto) as $line) {
$contents[] = $line;
}
//se verifica el tama�o del archivo sea mayor que cero
$probar = filesize($destination . $filename_extracto);
if ((strpos($probar, "0000") != '0')) {
//EL ARCHIVO ESTA VACIO O NO CUMPLE CON LOS PARAMETROS
$resultado = [
'CODE_1',
"EL ARCHIVO ESTA VACIO"
];
//return redirect($this->rutaSession.'/'.'getCargaArchivoDetalladoMegaSoft')->with('alert-danger', 'EL ARCHIVO QUE INTENTA IMPORTAR ESTÁ VACÍO.');
} else {
$co = 0;
$limpiar = array('"');
$parametros = Array();
//RECORRO EL ARCHIVO
for ($i = 0; $i < count($contents); $i++) {
$data = trim($contents[$i]);
$var = explode(",", $data);
if (!empty(str_replace($limpiar, '', $var[0]))) {
//SE CAPTURA LA FECHA DE TRANSACCION
$fecha_trans = str_replace('"', '', $var[2]);
$dia_t = substr($fecha_trans, 0, 2);
$mes_t = substr($fecha_trans, 2, 2);
$anio_t = substr($fecha_trans, 4);
//SE CAPTURA LA FECHA DE CIERRE
$fecha_cierre = str_replace('"', '', $var[4]);
$dia_c = substr($fecha_cierre, 0, 2);
$mes_c = substr($fecha_cierre, 2, 2);
$anio_c = substr($fecha_cierre, 4);
$fechahoracarga = date('Y-m-d H:i:s');
$terminal = str_replace($limpiar, '', $var[10]);
$explo = explode('_', $terminal);
$numterminal = (int)$explo[1];
$parametros[$co] = array(
'numafiliado' => str_replace($limpiar, '', $var[0]),
'tarjeta' => str_replace($limpiar, '', $var[1]),
'fecha_trans' => $anio_t . '-' . $mes_t . '-' . $dia_t,
'hora_trans' => str_replace($limpiar, '', $var[3]),
'fecha_cierre' => $anio_c . '-' . $mes_c . '-' . $dia_c,
'hora_cierre' => str_replace($limpiar, '', $var[5]),
'autorizacion' => str_replace($limpiar, '', $var[6]),
'descrip_banco' => str_replace($limpiar, '', $var[7]),
'tipopago' => str_replace($limpiar, '', $var[8]),
'numlote' => str_replace($limpiar, '', $var[9]),
'numterminal' => $numterminal,
'terminallote' => str_replace($limpiar, '', $var[11]),
'monto_bruto' => str_replace($limpiar, '', $var[12]),
'monto_comision' => str_replace($limpiar, '', $var[13]),
'monto_retencion' => str_replace($limpiar, '', $var[14]),
'monto_neto' => str_replace($limpiar, '', $var[15]),
'filler' => str_replace($limpiar, '', $var[16]),
'fechahoracarga' => $fechahoracarga,
'codusuario' => $usuario_codusuario,
'conciliado' => $conciliado,
'idtipotransbanc' => $idtipotransbanc,
'codbanco' => $codbanco
);
$co++;
}
}//END OF ciclo for
//dd($parametros);
if (!empty($parametros)) {
//CONSULTO SI LOS DATOS DEL ARCHIVO NO EXISTEN EN BASE DE DATOS PARA PROCEDER A INSERTARLOS
$consultarPagodetalle = $this->consumirws->consumirPorPost('getInfoPagotarjetaDetalleWs', $parametros, $url = 'customs.url_baaszoom', 'canguroazul/');
//dd($consultarPagodetalle);
if ($consultarPagodetalle['codrespuesta'] == 'COD_000') {
$parametros_Add = $consultarPagodetalle['filasAfectadas'];
$webservice_Add = 'addPagotarjetaDetalleWs';
$addPagoTarjetaDetalle = $this->consumirws->consumirPorPost($webservice_Add, $parametros_Add, $url = 'customs.url_baaszoom', "canguroazul/");
//dd($addPagoTarjetaDetalle);
if ($addPagoTarjetaDetalle['codrespuesta'] == 'COD_001') {
$resultado = [
'codrespuesta' => $addPagoTarjetaDetalle['codrespuesta'],
'mensaje' => $addPagoTarjetaDetalle['mensaje'],
'entidadRespuesta' => $addPagoTarjetaDetalle['entidadRespuesta']
];
}
} else if ($consultarPagodetalle['codrespuesta'] == 'CODE_004') {
//MENSAJE CODE_004 REGISTRO YA EN BD
$resultado = [
'codrespuesta' => $consultarPagodetalle['codrespuesta'],
'mensaje' => $consultarPagodetalle['mensaje'],
'entidadRespuesta' => $consultarPagodetalle['entidadRespuesta']
];
}
} else {
$resultado = ['codrespuesta' => 'CODE_003'];
}
return $resultado;
}
} catch (\Exception $e) {
return false;
}
}
/***************************
* LECTURA DE EXTRACTO BANCO POR LOTE
****************************/
public function extractoBancarioLote($destination, $filename_extracto, $usuario_codusuario, $conciliado, $idtipotransbanc)
{
$contents = array();
$resultado = array();
try {
foreach (file($destination . $filename_extracto) as $line) {
$contents[] = $line;
}
//se verifica el tama�o del archivo sea mayor que cero
$probar = filesize($destination . $filename_extracto);
if ((strpos($probar, "0000") != '0')) {
//EL ARCHIVO ESTA VACIO O NO CUMPLE CON LOS PARAMETROS
$resultado = [
'CODE_1',
"EL ARCHIVO ESTA VACIO"
];
} else {
$co = 0;
$limpiar = array('"');
$parametros = Array();
//RECORRO EL ARCHIVO
//dump($contents);
for ($i = 0; $i < count($contents); $i++) {
$data = trim($contents[$i]);
//dd($data);
$var = explode(",", $data);
if (!empty(str_replace($limpiar, '', $var[0]))) {
//SE CAPTURA LA FECHA DE TRANSACCION
$fecha_cierre = str_replace('"', '', $var[3]);
$dia_c = substr($fecha_cierre, 0, 2);
$mes_c = substr($fecha_cierre, 2, 2);
$anio_c = substr($fecha_cierre, 4);
$fechahoracarga = date('Y-m-d H:i:s');
$terminal = str_replace($limpiar, '', $var[1]);
$explo = explode('_', $terminal);
//dd($explo);
$numterminal = (int)$explo[1];
$parametros[$co] = array(
'numafiliado' => str_replace($limpiar, '', $var[0]),
'numterminal' => $numterminal,
'numlote' => str_replace($limpiar, '', $var[2]),
'fecha' => $anio_c . '-' . $mes_c . '-' . $dia_c,
'hora_cierre' => str_replace($limpiar, '', $var[4]),
'producto' => str_replace($limpiar, '', $var[5]),
'monto' => str_replace($limpiar, '', $var[6]),
'tasacomision' => str_replace($limpiar, '', $var[7]),
'tasaislr' => str_replace($limpiar, '', $var[8]),
'total_neto' => str_replace($limpiar, '', $var[9]),
'filler' => str_replace($limpiar, '', $var[10]),
'fechahoracarga' => $fechahoracarga,
'usuario_codusuario' => $usuario_codusuario,
'conciliado' => $conciliado,
'idtipotransbanc' => $idtipotransbanc
);
$co++;
}
}//END OF ciclo for
//dd($parametros);
if (!empty($parametros)) {
//CONSULTO SI LOS DATOS DEL ARCHIVO NO EXISTEN EN BASE DE DATOS PARA PROCEDER A INSERTARLOS
$consultarPagoLote = $this->consumirws->consumirPorPost('getInfoPagotarjetaWs', $parametros, $url = 'customs.url_baaszoom', 'canguroazul/');
//dd($consultarPagoLote);
if ($consultarPagoLote['codrespuesta'] == 'COD_000') {
$parametros_Add = $consultarPagoLote['entidadRespuesta'];
//dd($parametros_Add);
$webservice_Add = 'addPagotarjetaWs';
$addPagoTarjetaDetalle = $this->consumirws->consumirPorPost($webservice_Add, $parametros_Add, $url = 'customs.url_baaszoom', "canguroazul/");
//dd($addPagoTarjetaDetalle);
if ($addPagoTarjetaDetalle['codrespuesta'] == 'COD_001') {
$resultado = [
'codrespuesta' => $addPagoTarjetaDetalle['codrespuesta'],
'mensaje' => $addPagoTarjetaDetalle['mensaje'],
'entidadRespuesta' => $addPagoTarjetaDetalle['entidadRespuesta']
];
}
} else if ($consultarPagoLote['codrespuesta'] == 'CODE_004') {
//MENSAJE CODE_004 REGISTRO YA EN BD
$resultado = [
'codrespuesta' => $consultarPagoLote['codrespuesta'],
'mensaje' => $consultarPagoLote['mensaje'],
'entidadRespuesta' => $consultarPagoLote['entidadRespuesta']
];
}
} else {
$resultado = ['codrespuesta' => 'CODE_003'];
}
return $resultado;
}
} catch (\Exception $e) {
return false;
}
}//END OF extractoBancarioLote
/********************
* CARGA DE ARCHIVO POR LOTE
* MEGA SOTF
* DESARROLLADO POR DIONY REVERON
* 20 DE JUNIO 2017
*/
public function getCargaArchivoLote()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//Se obtienen el array para el select de Tipotransbancaria
$parametros_tipotrans = array('conciliar' => "1");
$tipotransbancaria_webservice = 'getInfoTipotransbancariaWs';
$tipotransbancarias = $this->consumirws->consumirPorGet($tipotransbancaria_webservice, $parametros_tipotrans, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
return view('Wscanguroazul/Conciliacion/MegaSoft/cargaArchivoLote', compact('bancos', 'token', 'tipotransbancarias'));
}//END OF getCargaArchivoLote
/***********************
* CONCILIAR ARCHIVOS
* MEGASOFT
* DESARROLLADO POR DIONY REVERON
* 21 DE JUNIO 2017
*/
public function getConciliarMegaSoft()
{
$token = Session::get('entidadRespuesta.token');
//Se obtienen el array para el select de Bancos
$parametros_banco = array('codbanco' => "");
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//dump($bancos);
return view('Wscanguroazul/Conciliacion/MegaSoft/conciliacionArchivoMegaSoft', compact('bancos', 'token'));
}
public function postMegaSoftConciliar(Request $request)
{
//dd($request);
$porfecha = date('Y-m-d', strtotime($request->get('porfecha')));
if ($porfecha == 1) {
$desde = date('Y-m-d', strtotime($request->get('desde')));
$hasta = date('Y-m-d', strtotime($request->get('hasta')));
} else {
$to = date('Y-m-d');
$nuevafecha = strtotime('-1 year', strtotime($to));
$from = date('Y-m-d', $nuevafecha);
$desde = $from;
$hasta = $to;
}
$tipoconciliacion = $request->get('tipoconciliacion');
$codbanco = $request->get('codbanco');
$usuario_codusuario = $request->get('usuario_codusuario');
$conciliado = $request->get('conciliado');
$idtipotransbanc = $request->get('idtipotransbanc');
//SE CONSULTA EL BANCO CONCILIADO
$parametros_banco = array('codbanco' => $codbanco);
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
//SE CONSUME WEB SERVICES QUE MOSTRARA EL LIMITE DE RANGO PARA CONCILIACION MANUAL
$rangoConcManual = $this->consumirws->consumirPorGet("getRangoajuwuWS", "", $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//SE VERIFICA QUE EL TIPO DE CONCILIACION SEA DETALLADA MEGASOFT
//dd($tipoconciliacion);
if ($tipoconciliacion == 1) {
//CONSUMIR WEB SERVICES getInfoPagotarjetaWs PARA VERIFICAR QUE NO EXISTA NINGUN REGISTRO DE ESE ARCHIVO
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'idtipotransbanc' => $idtipotransbanc,
'conciliado' => $conciliado,
'codbanco' => $codbanco,
'tipoconciliacion' => $tipoconciliacion
);
//dump($parametros);
$webservice = 'getInfoPagotarjetaDetalleConciliarWs';
$consultarPagotarjetaDetalle = $this->consumirws->consumirPorGet($webservice, $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPagotarjetaDetalle);
if ($consultarPagotarjetaDetalle['codrespuesta'] == "COD_000") {
//SE VERIFICA QUE EL TOKEN NO HAYA EXPIRADO, SINO SE ACTUALIZA
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
$param = array(
'fechapagoDesde' => $desde,
'fechapagoHasta' => $hasta,
'idtipotransbanc[]' => (int)$idtipotransbanc,
'conciliado' => $conciliado,
'token' => $token
);
//SE CONSUME getInfoPagoWs PARA SABER SI EXISTE DATA SIN CONCILIAR EN LA TABLA PAGOS
$consultarPagos = $this->consumirws->consumirPorGet("getInfoPagoWs", $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPagos);
if ($consultarPagos['codrespuesta'] == "COD_000") {
$consultarConciliar = PagotarjetaController::conciliacionDetallada($consultarPagos, $consultarPagotarjetaDetalle, $usuario_codusuario);
dd($consultarConciliar);
//SE VERIFICA SI EXISTE DATA A CONCILIAR
if ((!empty($consultarConciliar['conciliar']['pago'])) && (!empty($consultarConciliar['conciliar']['pagotarjetaDetalle'])) && (!empty($consultarConciliar['conciliar']['conciliacionID']))) {
$param = array(
'idpago' => array_values($consultarConciliar['conciliar']['pago']),
'idconciliacion' => array_values($consultarConciliar['conciliar']['conciliacionID']),
//'id_pagotarjetadetalle'=>array_values($pagotarjetaDetalle),
'id_pagobanco' => array_values($consultarConciliar['conciliar']['pagotarjetaDetalle']),
'token' => $token,
'conciliacion_manual' => 0,
'monto_banco' => [],
'tipotransbanc' => $idtipotransbanc,
'codusuario' => $usuario_codusuario
);
//dd($param);
$webservice_conci = 'conciliarPagosWs';
$data = $this->consumirws->consumirPorPost($webservice_conci, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($data);
$dataCorreo = array();
if (!empty($data['entidadRespuesta'])) {
for ($j = 0; $j < count($data['entidadRespuesta']); $j++) {
$dataCorreo[$j] = array(
'codusuario' => $data['entidadRespuesta'][$j]['codusuario'],
'correo' => $data['entidadRespuesta'][$j]['emailpagador'],
'nombrepagadores' => $data['entidadRespuesta'][$j]['nombrepagador'],
'nropagos' => $data['entidadRespuesta'][$j]['idpago'],
'rifcipagador' => $data['entidadRespuesta'][$j]['rifcipagador'],
'fechahora' => date('Y-m-d H:i:s', strtotime($data['entidadRespuesta'][$j]['listpagotarjetadetalle']['listconciliacion']['fechahora'])),
'id_conciliacion' => $data['entidadRespuesta'][$j]['listpagotarjetadetalle']['listconciliacion']['id_conciliacion'],
'montototal' => $data['entidadRespuesta'][$j]['montototal'],
'tipopago' => "25"
);
}
$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
$cuerpoMsg = $dataCorreo[$i];
$nropagos = $dataCorreo[$i]['nropagos'];
$asunto = "ZOOM: Notificacion de Pago por Mega Soft EXITOSA";
$emailEnviado = $this->sendEmail($dataCorreo[$i]['nropagos'], $dataCorreo[$i]['correo'], $dataCorreo[$i]['nombrepagadores'], $asunto, $cuerpoMsg, null, $nropagos);
// dd($emailEnviado);
$contEmail += $emailEnviado;
}
} else {
$contEmail = 0;
}
}
//SE CONSULTA NUEVAMENTE SI EXISTE DATA A NO CONCILIAR
$consultarNoConciliar = PagotarjetaController::conciliacionDetallada($consultarPagos, $consultarPagotarjetaDetalle, $usuario_codusuario);
//dd($consultarNoConciliar);
//VERIFICO QUE LOS NO CONCILIADOS ESTEN DENTRO DEL RANGO A MOSTRAR
if (!empty($consultarNoConciliar['no_concilio'])) {
$minimo = $rangoConcManual['entidadRespuesta'][0]['montoini'];
$maximo = $rangoConcManual['entidadRespuesta'][0]['montofin'];
for ($j = 0; $j < count($consultarNoConciliar['no_concilio']); $j++) {
$montoPago = (float)$consultarNoConciliar['no_concilio'][$j]['pagos']['montototal'];
$montoBanco = (float)$consultarNoConciliar['no_concilio'][$j]['pagotarjetadetalle']['monto_bruto'];
if ($montoPago > $montoBanco) {
$restante = $montoPago - $montoBanco;
} else {
$restante = $montoBanco - $montoPago;
}
if ((abs($restante) >= $minimo) && (abs($restante) <= $maximo)) {
$no_concilio[] = $consultarNoConciliar['no_concilio'][$j];
}
}
}
//dd($data);
if (!empty($data)) {
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE. SE ENVIARON " . $contEmail . " CORREOS DE NOTIFICACION";
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual'));
} else if (!empty($no_concilio)) { //dump($no_concilio);
$data = 0;
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual'));
} else {
return redirect($this->rutaSession . '/' . 'getConciliarMegaSoft')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR ENTRE BOTON DE PAGO ==> EXTRACTO DETALLE, DENTRO DEL RANGO.');
}
} else {
return redirect($this->rutaSession . '/' . 'getConciliarMegaSoft')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR BOTON DE PAGO.');
}
} else {
return redirect($this->rutaSession . '/' . 'getConciliarMegaSoft')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR EXTRACTO DETALLE.');
}
}
//SE VERIFICA QUE EL TIPO DE CONCILIACION SEA POR LOTE MEGASOFT
if ($tipoconciliacion == 2) {
//SE GENERA UN ARRAY CON LOS PARAMETROS A SER CONSUMIDOS POR LOS WEBS SERVICES. id_tipoconciliacion==1 Para BUSCAR NO CONCILIADOS PAGOTARJETA
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'codcuentabanco' => 0,
'conciliado' => $conciliado,
'tipotransbancaria_id_tipotransbancaria' => $idtipotransbanc,
'id_tipoconciliacion' => 1
);
//dd($parametros);
//SE CONSULTA DE PAGO TARJETA LOS NO CONCILIADOS
$consultarPagotarjeta = $this->consumirws->consumirPorGet("getConsultaInfoConciliarWs", $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
if ($consultarPagotarjeta['codrespuesta'] == 'COD_000') {
//SE BUSCAN LOS REGISTROS YA CONCILIADOS DE pagotarjetadetalles
$parametros = array(
'desde' => $desde,
'hasta' => $hasta,
'idtipotransbanc' => $idtipotransbanc,
'conciliado' => "1",
'codbanco' => $codbanco,
'tipoconciliacion' => $tipoconciliacion
);
$consultarPagotarjetaDetalle = $this->consumirws->consumirPorGet("getInfoPagotarjetaDetalleConciliarWs", $parametros, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($consultarPagotarjetaDetalle);
if ($consultarPagotarjetaDetalle['codrespuesta'] == 'COD_000') {
$consultarConciliar = PagotarjetaController::conciliacionLote($consultarPagotarjeta, $consultarPagotarjetaDetalle, $usuario_codusuario);
//SE VERIFICA SI EXISTE DATA A CONCILIAR
if ((!empty($consultarConciliar['conciliar']['pagotarjeta'])) && (!empty($consultarConciliar['conciliar']['pagotarjetaDetalle'])) && (!empty($consultarConciliar['conciliar']['conciliacionID']))) {
$param = array(
'id_pagotarjeta' => array_values($consultarConciliar['conciliar']['pagotarjeta']),
'idconciliacion' => array_values($consultarConciliar['conciliar']['conciliacionID']),
'codpagotarjetadetalles' => array_values($consultarConciliar['conciliar']['pagotarjetaDetalle']),
'conciliacion_manual' => 0,
'conciliacion' => 0,
'usuario_codusuario' => $usuario_codusuario,
'idtipotransbanc' => $idtipotransbanc
);
//dd($param);
$webservice_conci = 'conciliarPagoTarjetaWs';
$data = $this->consumirws->consumirPorPost($webservice_conci, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
}
//SE CONSULTA NUEVAMENTE SI EXISTE DATA A NO CONCILIAR
$consultarNoConciliar = PagotarjetaController::conciliacionLote($consultarPagotarjeta, $consultarPagotarjetaDetalle, $usuario_codusuario);
//dd($consultarNoConciliar);
//VERIFICO QUE LOS NO CONCILIADOS ESTEN DENTRO DEL RANGO A MOSTRAR
if (!empty($consultarNoConciliar['no_concilio'])) {
$minimo = $rangoConcManual['entidadRespuesta'][0]['montoini'];
$maximo = $rangoConcManual['entidadRespuesta'][0]['montofin'];
for ($j = 0; $j < count($consultarNoConciliar['no_concilio']); $j++) {
$montoPago = (float)$consultarNoConciliar['no_concilio'][$j]['pagotarjeta']['monto'];
$montoBanco = (float)$consultarNoConciliar['no_concilio'][$j]['pagotarjetadetalle']['monto_bruto'];
if ($montoPago > $montoBanco) {
$restante = $montoPago - $montoBanco;
} else {
$restante = $montoBanco - $montoPago;
}
if ((abs($restante) >= $minimo) && (abs($restante) <= $maximo)) {
$no_concilio[] = $consultarNoConciliar['no_concilio'][$j];
}
}
}
//dd($no_concilio);
if (!empty($data)) {
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE.";
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoftLote', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual'));
} else if (!empty($no_concilio)) { //dump($no_concilio);
$data = 0;
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoftLote', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual'));
}
// dump($consultarPagotarjetaDetalle);
//dd($consultarPagotarjeta);
} else {
return redirect($this->rutaSession . '/' . 'getConciliarMegaSoft')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR (BOTON DE PAGO) EXTRACTO DETALLADO, DENTRO DEL RANGO.');
}
} else {
return redirect($this->rutaSession . '/' . 'getConciliarMegaSoft')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR (BOTON DE PAGO) EXTRACTO LOTE, DENTRO DEL RANGO.');
}
}
}
public function conciliacionDetallada($consultarPagos, $consultarPagotarjetaDetalle, $usuario_codusuario)
{
$pago = Array();
$pagotarjetaDetalle = Array();
$noconcilio = Array();
foreach ($consultarPagos['entidadRespuesta'] as $dataPago) {
foreach ($consultarPagotarjetaDetalle['entidadRespuesta'] as $dataPagoDetalle) {
//SE COMPARAN LAS FECHAS
if (trim($dataPago['fechapago']) == trim($dataPagoDetalle['fecha_trans'])) {
//SE VERIFICA QUE NO ESTEN CONCILIADAS
if (($dataPago['conciliado'] == false) && ($dataPagoDetalle['conciliado'] == false)) {
//SE VERIFCA QUE EL ESTATUS DEL PAGO SEA PENDIENTE Y EL TIPO DE PAGO SEA TC
if (trim($dataPago['idestatuspago']) == 1 && (trim($dataPagoDetalle['tipopago']) == 'TC')) {
//SE VERIFICA QUE SEA MEGA SOFT
if (trim($dataPago['idtipotransbanc']) == trim($dataPagoDetalle['idtipotransbanc'])) {
//SE VERIFICA QUE SEA EL MISMO NUMERO DE AFILIADO
//dd($dataPago['codafiliacion'].'==>'.$dataPagoDetalle['numafiliado']);
if (trim($dataPago['codafiliacion']) == trim($dataPagoDetalle['numafiliado'])) {
//SE VERIFICA QUE SEA LA MISMA TARJETA
//dump(trim($dataPago['nro_tarjeta']), trim($dataPagoDetalle['tarjeta']));
if (trim($dataPago['nro_tarjeta']) == trim($dataPagoDetalle['tarjeta'])) {
//SE VERIFICA EL NUMERO DEL TERMINAL
if (trim($dataPago['nro_terminal']) == trim($dataPagoDetalle['numterminal'])) {
//SE VERIFICA SEA EL MISMO LOTE
if (trim($dataPago['nro_lote']) == trim($dataPagoDetalle['numlote'])) {
//SE VERIFICA SEA EL MISMO MONTO
if (trim($dataPago['montototal']) == trim($dataPagoDetalle['monto_neto'])) {
//SE RESTAN AMBOS MONTOS Y SI DAN 0 esta conciliados
if (($dataPago['montototal'] - $dataPagoDetalle['monto_neto']) == 0) {
//SE GENERAN LOS ARRECGLOS PARA LAS ACTUALIZACIONES MASIVAS DE pago y pagotarjetadetalle
$pago [] = $dataPago['idpago'];
$pagotarjetaDetalle [] = $dataPagoDetalle['codpagotarjetadetalles'];
$fechahora = date('Y-m-d H:i:s');
$inactivo = 0;
$id_tipoconciliacion = 4;//CONCILIACION MEGA SOFT
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$param_conciliacion = array(
'fechahora' => $fechahora,
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => $inactivo,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 0,
'restante' => 0
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
}
} else {
$noconcilio[] = array(
'pagos' => $dataPago,
'pagotarjetadetalle' => $dataPagoDetalle
);
}
}
}
}
}
}
}
}
}
}//END OF FOREACH
}//END OF FOREACH
if (!empty($pago) && !empty($pagotarjetaDetalle) && !empty($conciliacionID)) {
$dataConciliar = array(
'pago' => $pago,
'pagotarjetaDetalle' => $pagotarjetaDetalle,
'conciliacionID' => $conciliacionID
);
} else {
$dataConciliar = 0;
}
$no_concilio = !empty($noconcilio) ? $noconcilio : 0;
$resultado = array(
'conciliar' => $dataConciliar,
'no_concilio' => $no_concilio
);
return $resultado;
}//END OF conciliacionDetallada
public function conciliacionLote($consultarPagotarjeta, $consultarPagotarjetaDetalle, $usuario_codusuario)
{
//return $consultarPagotarjeta;
$pagotarjeta = Array();
$pagotarjetaDetalle = Array();
$noconcilio = Array();
foreach ($consultarPagotarjeta['entidadRespuesta'] as $dataPt) {
foreach ($consultarPagotarjetaDetalle['entidadRespuesta'] as $dataPagoDetalle) {
//SE VERIFICA QUE NO ESTEN CONCILIADAS
if (($dataPt['conciliado'] == false) && ($dataPagoDetalle['conciliado'] == true)) {
//SE VERIFCA QUE EL TIPO DE PAGO SEA TC
if (trim($dataPt['producto']) == 'TC' && (trim($dataPagoDetalle['tipopago']) == 'TC')) {
//SE VERIFICA QUE SEA MEGA SOFT
if (trim($dataPt['idtipotransbanc']) == trim($dataPagoDetalle['idtipotransbanc'])) {
//SE VERIFICA QUE SEA EL MISMO NUMERO DE AFILIADO
if (trim($dataPt['numafiliado']) == trim($dataPagoDetalle['numafiliado'])) {
//SE VERIFICA EL NUMERO DEL TERMINAL
if (trim($dataPt['numterminal']) == trim($dataPagoDetalle['numterminal'])) {
//SE VERIFICA SEA EL MISMO LOTE
if (trim($dataPt['numlote']) == trim($dataPagoDetalle['numlote'])) {
//SE VERIFICA SEA EL MISMO MONTO
if ((trim($dataPt['monto']) == trim($dataPagoDetalle['monto_bruto'])) && (trim($dataPt['monto']) == trim($dataPagoDetalle['monto_acum']))) {
//SE RESTAN AMBOS MONTOS Y SI DAN 0 esta conciliados
if (($dataPt['monto'] - $dataPagoDetalle['monto_bruto']) == 0) {
//SE GENERAN LOS ARRECGLOS PARA LAS ACTUALIZACIONES MASIVAS DE pago y pagotarjetadetalle
$pagotarjeta [] = $dataPt['id_pagotarjeta'];
$pagotarjetaDetalle [] = $dataPagoDetalle['codpagotarjetadetalles'];
$fechahora = date('Y-m-d H:i:s');
$inactivo = 0;
$id_tipoconciliacion = 4;//CONCILIACION MEGA SOFT
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$param_conciliacion = array(
'fechahora' => $fechahora,
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => $inactivo,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 0,
'restante' => 0
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
}
} else {
$noconcilio[] = array(
'pagotarjeta' => $dataPt,
'pagotarjetadetalle' => $dataPagoDetalle
);
}
}
}
}
}
}
}
}//END OF FOREACH
}//END OF FOREACH
if (!empty($pagotarjeta) && !empty($pagotarjetaDetalle) && !empty($conciliacionID)) {
$dataConciliar = array(
'pagotarjeta' => $pagotarjeta,
'pagotarjetaDetalle' => $pagotarjetaDetalle,
'conciliacionID' => $conciliacionID
);
} else {
$dataConciliar = 0;
}
$no_concilio = !empty($noconcilio) ? $noconcilio : 0;
$resultado = array(
'conciliar' => $dataConciliar,
'no_concilio' => $no_concilio
);
return $resultado;
}//END OF conciliacionLote
/***********************
* Metodo para realizar conciliacion manual de Pagos electronicos - Banco
* Creada por Diony Reveron
* Fecha 10-10-2016
***********************/
public function postConciMegaSofTransManual(Request $request)
{
//dd($request);
$ActualizarToken = $this->LoginController->verificarToken(Session::get('entidadRespuesta.token'));
if ($ActualizarToken == 'error_jwt') {
Session::forget('entidadRespuesta');
return redirect($this->rutaSession . '/' . 'login')->with('alert-success', 'OPERACION NO PERMITIDA, TOKEN HA SIDO INVALIDADO. SE HA CERRADO LA SESION');
}
$token = Session::get('entidadRespuesta.token');
$data = $request->all();
$cont = count($data) - 1;
$usuario_codusuario = Session::get('entidadRespuesta.codusuario');
$id_tipoconciliacion = 4;//CONCILIACION MEGA SOFT
$contCheckbox = $request->get('numeroban');
$codbanco = $request->get('codbanco');
if ($cont > 0) {
$idpago_array = array();
$idtarjeta_arraytaq = array();
$k = 1;
for ($i = 0; $i < $contCheckbox; $i++) {
if (!empty($data['idpago' . $k])) {
//INSERT DE CONCILIACION PARA EL REGISTRO A ACTUALIZAR UNO POR UNO SEGUN EL CICLO
$fechahora = date('Y-m-d H:i:s');
$inactivo = 0;
//SE ACPTURAN LOS DATOS QUE VIENEN DE CHECKBOX
$idpagos = explode('/', $data['idpago' . $k]);
$idpago_array[$i] = $idpagos[0];
$id_pagotarjeta_array[$i] = $idpagos[1];
$monto_bruto_array[$i] = $idpagos[2];
$montoPagos_array[$i] = $idpagos[3];
$monto_bruto = (double)$monto_bruto_array[$i];
$montoPagos = (double)$montoPagos_array[$i];
$restante = ($monto_bruto - $montoPagos);
$restante = abs($restante);
$restante = number_format($restante, 2);
$param_conciliacion = array(
'fechahora' => $fechahora,
'usuario_codusuario' => $usuario_codusuario,
'inactivo' => $inactivo,
'tipoconciliacion_id_tipoconciliacion' => $id_tipoconciliacion,
'forma_conciliacion' => 1,
'restante' => $restante
);
$webservice = 'addConciliacionWs';
$aggConciliacion = $this->consumirws->consumirPorPost($webservice, $param_conciliacion, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
$conciliacionID [$i] = $aggConciliacion['entidadRespuesta'][0]['id_conciliacion'];
/*$param = array(
'idpago' => $idpago_array,
'idconciliacion' => $conciliacionID,
//'codpagotarjetadetalles'=>$codpagotarjetadetalles_array,
'id_pagotarjeta' => $id_pagotarjeta_array,
'token' => $token,
'conciliacion_manual' => 1,
'monto_banco' => $monto_bruto_array,
'tipotransbanc'=>25,
'codusuario'=>$request->get('codusuario')
);*/
$param = array(
'idpago' => $idpago_array,
'idconciliacion' => array_values($conciliacionID),
'id_pagotarjeta' => array_values($id_pagotarjeta_array),
'conciliacion_manual' => 1,
'idtipotransbanc' => $id_tipoconciliacion,
'usuario_codusuario' => $usuario_codusuario,
'idestatuspago' => 2
);
}
$k++;
}
}
/*$param = array(
'idpago' => $pagoMegaSoft,
'idconciliacion' => array_values($conciliacionID),
'id_pagotarjeta' => array_values($pagotarjetaID),
'conciliacion_manual' => 0,
'idtipotransbanc' => $id_tipoconciliacion,
'usuario_codusuario' => $usuario_codusuario
);
//dd($param);
$webservice = 'conciliarPagoTarjetaWs';*/
// dd($param);
//Se realizar la conciliacion manual
//$webservice_conci = 'conciliarPagosWs';
$webservice_conci = 'conciliarPagoTarjetaWs';
$data = $this->consumirws->consumirPorPost($webservice_conci, $param, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//dd($data);
if ($data['codrespuesta'] == 'COD_002') {
$codcuentabanco = $data['entidadRespuesta'][0]['codcuentabanco'];
//SE EVALUA LA CUENTA BANCARIA
$param_CB = array('codcuentabanco[]' => $codcuentabanco);
$webservice_CB = 'getInfoCuentaBancoWs';
$consultarCuentabanco = $this->consumirws->consumirPorGet($webservice_CB, $param_CB, $url = 'customs.url_baaszoom', $this->rutaSession . '/');
//PARA ENVIAR CORREO
for ($j = 0; $j < count($data['entidadRespuesta']); $j++) {
$dataCorreo[$j] = array(
'codusuario' => $data['entidadRespuesta'][$j]['usuario_codusuario'],
'correo' => $data['entidadRespuesta'][$j]['listpagos']['emailpagador'],
'nombrepagadores' => $data['entidadRespuesta'][$j]['listpagos']['nombrepagador'],
'nropagos' => $data['entidadRespuesta'][$j]['listpagos']['idpago'],
'rifcipagador' => $data['entidadRespuesta'][$j]['listpagos']['rifcipagador'],
'fechahora' => date('Y-m-d H:i:s', strtotime($data['entidadRespuesta'][$j]['listconciliacion']['fechahora'])),
'id_conciliacion' => $data['entidadRespuesta'][$j]['listconciliacion']['id_conciliacion'],
'montototal' => $data['entidadRespuesta'][$j]['listpagos']['montototal'],
'tipopago' => '25'
);
}
$contEmail = 0;
for ($i = 0; $i < count($dataCorreo); $i++) {
$cuerpoMsg = $dataCorreo[$i];
$nropagos = $dataCorreo[$i]['nropagos'];
$asunto = "ZOOM: Notificacion de Pago por Boton de Pago";
$emailEnviado = $this->sendEmail($dataCorreo[$i]['nropagos'], $dataCorreo[$i]['correo'], $dataCorreo[$i]['nombrepagadores'], $asunto, $cuerpoMsg, null, $nropagos);
$contEmail += $emailEnviado;
}
if (!empty($contEmail)) {
//SE CONSULTA EL BANCO CONCILIADO
$parametros_banco = array('codbanco' => $codbanco);
$banco_webservice = 'getInfoBancoWs';
$bancos = $this->consumirws->consumirPorGet($banco_webservice, $parametros_banco, $url = 'customs.url_baaszoom', $this->rutaSession . "/");
$data['mensaje'] = "CONCILIACION REALIZADA EXITOSAMENTE. SE ENVIARON " . $contEmail . " CORREOS DE NOTIFICACION";
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual', 'consultarCuentabanco'))->with(Session::flash('alert-success','EL REGISTRO HA SIDO INGRESADO EXITOSAMENTE. SE HAN ENVIADO '.$contEmail.' CORREOS ELECTRONICOS'));
}else{
return view('Wscanguroazul/Conciliacion/MegaSoft/listConciliacionMegaSoft', compact('data', 'no_concilio', 'desde', 'hasta', 'bancos', 'rangoConcManual', 'consultarCuentabanco'))->with(Session::flash('alert-success','EL REGISTRO HA SIDO INGRESADO EXITOSAMENTE. SE HAN ENVIADO '.$contEmail.' CORREOS ELECTRONICOS'));
}
} else if ($data['codrespuesta'] == 'CODE_005') {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', $data['codrespuesta'] . ' - ' . $data['mensaje']);
} else {
return redirect($this->rutaSession . '/' . 'getPagotarjetaConciliar')->with('alert-danger', 'NO EXISTE DATA A CONCILIAR :: BOTON DE PAGO - EXTRACTO BANCARIO');
}
}//CONCILIACION MANUAL postConciMegaSofTransManual
public function actualizar()
{
$actualizar = $this->consumirws->consumirPorGet('updateConciliar', '', $url = 'customs.url_baaszoom', $this->rutaSession . '/');
print_r($actualizar);
}
}