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); } }