SOCKET ServerSocket = 0;
SOCKET ClientSocket = 0;
struct sockaddr_in ServerInetAddress = { 0,0,0,0};
struct linger linger = { 0 , 0 };
long InetAddressLen = sizeof(ServerInetAddress);
int port = 1919,
nLen = 0,
i = 0;
int bNoDelay = 1;
int nRetVal = 0;
int nSysProcd = 0;
char ccRegLog[LMAX_MSGE] = {0x00};
char scCadena[LMAX_MSGE] = {0x00};
char cCadena [LMAX_MSGE] = {0x00};
char *pCadena = cCadena;
char cJclLoganet[LMAX_MSGE] = {0x00};
char cJclNEWERAC[LMAX_CMND] = {0x00};
char cJclNSA[LMAX_CMND] = {0x00};
char cJclMIRESIN[LMAX_CMND] = {0x00};
char cLoganetLog[LMAX_RESP] = {0x00} ;
char cNEWERACLog[LMAX_RESP] = {0x00} ;
char cNSALog[LMAX_RESP] = {0x00} ;
char cMIRESINLog[LMAX_RESP] = {0x00} ;
char cLoganetRta[LMAX_RESP] = {0x00} ;
char cNEWERACRta[LMAX_RESP] = {0x00} ;
char cNSARta[LMAX_RESP] = {0x00} ;
char cMIRESINRta[LMAX_RESP] = {0x00} ;
char ccResp[LMAX_RESP] = {0x00};
char cAsunto[LMAX_TITU] = {0x00} ;
int iConLoganet = 0;
int iConNEWERAC = 0;
int iConNSA = 0;
int iConMIRESIN = 0;
int iCblo = 0;
int idErroneos = 0;
int ioErroneos = 0;
int EstoyActivo = 1;
char ccVeinte[10];
pthread_t thread_id;
time_t RawTime;
char ccRawTime[25] = {0x00} ;
char cDreamTeam[LDES_MAIL] = "micaela.varela@ar.galicia.com,jorge.luis.gallo@ar.galicia.com";
char cCapitMarket[LDES_MAIL] = "ga.grupo11.market@ar.galicia.com,bernard.carnesa@ar.galicia.com";
char cARBOTrade[LDES_MAIL] = "ga.grupo13.office@ar.galicia.com,comessta.gorello@ar.galicia.com";
/*--------------------------------------------*\
* Programa de Escucha de Transacciones ONLINE *
\*--------------------------------------------*/
Presentacion() ;
/* Verify program's argument count */
if( argc < 1 )
{
printf("Error de argumentos\r\n");
printf("Sintaxis: o_proyama2 \r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
/*--------------------------------------------------*\
* Allocate the server's socket descriptor *
\*--------------------------------------------------*/
if ((ServerSocket = socket(AF_INET,SOCK_STREAM, 0)) == FAILURE)
{
printf("Error de creacion del socket\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
printf("Socket creado\r\n");
/*--------------------------------------------------*\
* Set the linger option to force immediate closing*
\*--------------------------------------------------*/
linger.l_onoff = 1; /* turn on timer */
linger.l_linger = 0; /* close immediately */
if ((setsockopt(ServerSocket, SOL_SOCKET, SO_LINGER,
(char *)(&linger), sizeof(linger))) == FAILURE)
{
printf("Error de opcion sobre el socket - linger\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
/*--------------------------------------------------*\
* Don't buffer up requests - send them immediately*
\*--------------------------------------------------*/
if ((setsockopt(ServerSocket, IPPROTO_TCP, TCP_NODELAY, (char *)(&bNoDelay), sizeof(bNoDelay))) == FAILURE)
{
printf("Error de creacion del socket - delay\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
GetNameLoganetLog(cLoganetLog);
GetNameNEWERACLog(cNEWERACLog);
GetNameNSALog(cNSALog);
GetNameMIRESINLog(cMIRESINLog);
printf("LOG Loganet \t %s \n", cLoganetLog) ;
printf("LOG NEWERAC \t %s \n", cNEWERACLog) ;
printf("LOG NSA \t %s \n", cNSALog) ;
printf("LOG MIRESIN \t %s \n", cMIRESINLog) ;
/*---------------------------------------------------*\
printf("Elimina LOGs de NEWERAC y Loganet\n");
EliminaLogs(cLoganetLog);
EliminaLogs(cNEWERACLog);
\*---------------------------------------------------*/
printf("***************************************************************************\r\n");
printf("Programa de Escucha de Transacciones ONLINE\r\n");
GetNameLoganetResp(cLoganetRta);
GetNameNEWERACResp(cNEWERACRta);
GetNameNSAResp(cNSARta);
GetNameMIRESINResp(cMIRESINRta);
/*--------------------------------------------------*\
* Initialize the socket address so we can bind it *
\*--------------------------------------------------*/
/*
|
| port = atoi(argv[1]);
| ---------------------
*/
memset(&ServerInetAddress, 0x00, sizeof(ServerInetAddress));
ServerInetAddress.sin_family = AF_INET;
ServerInetAddress.sin_addr.s_addr = INADDR_ANY; /* Let anyone connect */
ServerInetAddress.sin_port = htons(port);
/*------------------------------------------*\
* Bind socket to the well-known port number *
\*------------------------------------------*/
if (bind(ServerSocket, (struct sockaddr*)&ServerInetAddress, sizeof(ServerInetAddress)) == FAILURE)
{
printf("Error de enlace al socket\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
/*--------------------------------------------------*\
* Show we are willing to listen *
\*--------------------------------------------------*/
if (listen(ServerSocket, 1) == FAILURE) {
printf("Error de escucha sobre el socket\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
EstoyActivo=1;
while ( EstoyActivo ) {
printf("Escuchando...\r\n");
if ((ClientSocket = accept(ServerSocket , (struct sockaddr*)&ServerInetAddress,(socklen_t *)&InetAddressLen)) == FAILURE) {
printf("Error de aceptacion sobre el socket\r\n");
nRetVal = system( "proyam82 MAIL" );
exit(FAILURE);
}
printf("Conexion cliente aceptada:(%i)\r\n",ClientSocket);
nRetVal = pthread_create(&thread_id, NULL, NewProcess, (void *) ClientSocket);
if (result != 0) {
printf("No Puedo crear Thread.\n");
}
pthread_detach(thread_id);
sched_yield();
}
/*---------------------------------------------------*\
* CLOSE THE SERVER CONNECTION - ONLY WHEN NO MORE *
* CONNECTION REQUESTS WILL BE ACCEPTED *
\*---------------------------------------------------*/
close(ServerSocket);
ServerSocket = 0;
printf("Fin de programa\r\n");
return 0;
}
/*
printf("Conexion cliente aceptada:(%i)\r\n",ClientSocket);
*/
/*---------------------------------*\
* Recibe data from the client *
\*---------------------------------*/
memset( scCadena, '\0', sizeof(scCadena));
memset( cCadena, '\0', sizeof( cCadena));
if ((nLen=Recibe(ClientSocket, scCadena, sizeof(scCadena)-1)) < 0) {
close(ClientSocket);
ClientSocket = 0;
printf("Conexion cliente cerrada\r\n");
nRetVal = system( "proyam82 ERROR" );
continue ;
} else {
/*
| printf("acabo de recibir:(%s)\r\n", scCadena);
|
| printf("time:%d\n", RawTime );
| printf("%s", ctime(&RawTime));
|
*/
memset(ccRawTime, '\0', sizeof(ccRawTime));
time(&RawTime);
sprintf(ccRawTime,"%s", ctime( &RawTime ) );
/* printf("Recv of Time: %s\n", ccRawTime); */
memset(ccRegLog, '\0', sizeof(ccRegLog));
rtrim( cCadena, scCadena );
pCadena = cCadena ;
/* printf("%s \r\n", cCadena); */
memcpy(scCadena, cCadena, LMAX_MSGE );
sprintf(ccRegLog, "%s : %s\n", cCadena , ccRawTime );
printf("%s \r\n", ccRegLog);
memcpy(scCadena, cCadena, LMAX_MSGE );
nSysProcd=GetProcedencia( cCadena );
switch (nSysProcd)
{
case IS_Loganet:
memset(cJclLoganet, '\0', sizeof(cJclLoganet));
strncpy(cJclLoganet,"proyam82 ",7) ;
/*-------------------------------------------------*\
* PONE DELIMTADOR DE DOBLES COMILLAS *
\*-------------------------------------------------*/
strcat( cJclLoganet, "\"") ;
strcat( cJclLoganet, cCadena) ;
/* strncat( cJclLoganet, "\"", 157) ; */
strncat( cJclLoganet, "\"", 213) ;
/*-------------------------------------------------*\
* EJECUTA EL JCL SELECCIONADO *
\*-------------------------------------------------*/
nRetVal = system( cJclLoganet ) ;
memset( ccResp, '\0', sizeof(ccResp));
GetRespuestaLoganet(ccResp, cLoganetRta);
if (send(ClientSocket, ccResp, strlen(ccResp), 0) == FAILURE)
{
close(ClientSocket);
ClientSocket = 0;
nRetVal = system( "proyam82 ERROR" );
}
iConLoganet=iConLoganet+1;
/*
| Se cambia el grabado del log
| anulado GrabaLogs(cLoganetLog, cCadena, ccResp) ;
*/
GrabaLogs(cLoganetLog, ccRegLog, ccResp) ;
iCblo=0;
iCblo=GetCodigoRespuesta(ccResp);
if(iCblo Equ 002 Or iCblo Equ 110 Or iCblo Equ 104 Or iCblo Equ 105 Or \
iCblo Equ 106 Or iCblo Equ 107 Or iCblo Equ 108 Or iCblo Equ 113 Or \
iCblo Equ 114 Or iCblo Equ 120 Or iCblo Equ 999)
{
/* printf("Retorno Cblo ...: %i \n", iCblo); */
idErroneos = idErroneos + 1 ;
/* */
GetAsuntoMail( cAsunto, ccResp);
SaveBodyLoganet(cCadena, ccResp, cAsunto);
SendMailLoganet(cAsunto, cDreamTeam) ;
if(iCblo Equ 120)
{
strncpy(ccVeinte, ccResp, 3);
ccVeinte[3] = '\0';
nRetVal = pthread_create(&thread_id, NULL, ProcesoHijitus, (void *) ccVeinte);
if (nRetVal != 0)
printf("No Puedo crear Thread para enviar el mail\n");
/*------------------------------------------------------------------------------------------*\
* La función pthread_detach() marca el hilo identificado por hilo como individual.
* Cuando un hilo individual termina, sus recursos se liberan automáticamente
* al sistema sin la necesidad de otro hilo para unirse con el hilo terminado.
\*------------------------------------------------------------------------------------------*/
nRetVal = pthread_detach(thread_id) ;
if ( nRetVal != 0 )
{
printf("Auch!! resultado no esperado! rc=%d\n", nRetVal );
}
}
}
break;
case IS_NEWERAC:
memset(cJclNEWERAC, '\0', sizeof(cJclNEWERAC));
strncpy(cJclNEWERAC,"proyam84 ",7) ;
/*--------------------------------------------*\
* PONE DELIMTADOR DE DOBLES COMILLAS *
\*--------------------------------------------*/
strcat( cJclNEWERAC, "\"") ;
strcat( cJclNEWERAC, cCadena) ;
/* strncat( cJclNEWERAC, "\"", 157 ) ;
strncat( cJclNEWERAC, "\"", 213 ) ;
/* printf("Shell: %s \r\n", cJclNEWERAC) ; */
/*--------------------------------------------*\
* EJECUTA EL JCL SELECCIONADO *
\*--------------------------------------------*/
nRetVal = system( cJclNEWERAC ) ;
memset( ccResp, '\0', sizeof(ccResp));
GetRespuestaNEWERAC(ccResp, cNEWERACRta);
if (send(ClientSocket, ccResp, strlen(ccResp), 0) == FAILURE)
{
close(ClientSocket) ;
ClientSocket = 0 ;
nRetVal = system( "proyam84 ERROR" ) ;
}
iConNEWERAC=iConNEWERAC+1;
/*
| Se cambia el grabado del log
| anulado GrabaLogs(cNEWERACLog, cCadena, ccResp) ;
*/
GrabaLogs(cNEWERACLog, ccRegLog, ccResp) ;
iCblo=0;
iCblo=GetCodigoRespuesta(ccResp);
if(iCblo Equ 002 Or iCblo Equ 110 Or iCblo Equ 104 Or iCblo Equ 105 Or iCblo Equ 106 Or iCblo Equ 107 Or iCblo Equ 108 Or iCblo Equ 113 Or iCblo Equ 114 Or iCblo Equ 120 Or iCblo Equ 999)
{
ioErroneos = ioErroneos + 1 ;
/* */
GetAsuntoMail( cAsunto, ccResp);
SaveBodyNEWERAC(cCadena, ccResp, cAsunto) ;
SendMailNEWERAC(cAsunto, cDreamTeam) ;
}
break;
case IS_NSA:
memset(cJclNSA, '\0', sizeof(cJclNSA));
strncpy(cJclNSA,"proyam86 ",7) ;
/*--------------------------------------------*\
* PONE DELIMTADOR DE DOBLES COMILLAS *
\*--------------------------------------------*/
strcat( cJclNSA, "\"") ;
strcat( cJclNSA, cCadena) ;
/* strncat( cJclNSA, "\"", 157 ) ; */
strncat( cJclNSA, "\"", 213 ) ;
/*--------------------------------------------*\
* EJECUTA EL JCL SELECCIONADO *
\*--------------------------------------------*/
nRetVal = system( cJclNSA ) ;
memset( ccResp, '\0', sizeof(ccResp));
/* printf("Respuesta.....: %s", ccResp ); */
GetRespuestaNSA(ccResp, cNSARta);
if (send(ClientSocket, ccResp, strlen(ccResp), 0) == FAILURE)
{
close(ClientSocket) ;
ClientSocket = 0 ;
nRetVal = system( "proyam86 ERROR" ) ;
}
iConNSA=iConNSA+1;
/*
| Se cambia el grabado del log
| anulado GrabaLogs(cNSALog, cCadena, ccResp) ;
*/
GrabaLogs(cNSALog, ccRegLog, ccResp) ;
iCblo=0;
/* printf("Respuesta.....: %s", ccResp ); */
iCblo=GetCodigoRespuesta(ccResp);
/* printf("Respuesta.....: %s", ccResp ); */
/* printf("Respuesta..int...: %i", iCblo ); */
if(iCblo Equ 002 Or iCblo Equ 110 Or iCblo Equ 104 Or iCblo Equ 105 Or iCblo Equ 106 Or iCblo Equ 107 Or iCblo Equ 108 Or iCblo Equ 113 Or iCblo Equ 114 Or iCblo Equ 120 Or iCblo Equ 999)
{
ioErroneos = ioErroneos + 1 ;
/* */
GetAsuntoMail( cAsunto, ccResp);
SaveBodyNSA(cCadena, ccResp, cAsunto) ;
/*---------------------------------------*
* SendMailNSA(cAsunto, cDreamTeam) ;
*---------------------------------------*/
SendMailNSA(cAsunto, cCapitMarket) ;
}
break;
case IS_MIRESIN:
memset(cJclMIRESIN, '\0', sizeof(cJclMIRESIN));
strncpy(cJclMIRESIN,"proyam88 ",7) ;
/*--------------------------------------------*\
* PONE DELIMTADOR DE DOBLES COMILLAS *
\*--------------------------------------------*/
strcat( cJclMIRESIN, "\"") ;
strcat( cJclMIRESIN, cCadena) ;
/* strncat( cJclMIRESIN, "\"", 157 ) ;*/
strncat( cJclMIRESIN, "\"", 213 ) ;
/* printf("Shell: %s \r\n", cJclMIRESIN) ; */
/*--------------------------------------------*\
* EJECUTA EL JCL SELECCIONADO *
\*--------------------------------------------*/
nRetVal = system( cJclMIRESIN ) ;
memset( ccResp, '\0', sizeof(ccResp));
GetRespuestaMIRESIN(ccResp, cMIRESINRta);
if (send(ClientSocket, ccResp, strlen(ccResp), 0) == FAILURE)
{
close(ClientSocket) ;
ClientSocket = 0 ;
nRetVal = system( "proyam88 ERROR" ) ;
}
iConMIRESIN=iConMIRESIN+1;
/*
| Se cambia el grabado del log
| anulado GrabaLogs(cMIRESINLog, cCadena, ccResp) ;
*/
GrabaLogs(cMIRESINLog, ccRegLog, ccResp) ;
iCblo=0;
iCblo=GetCodigoRespuesta(ccResp);
if(iCblo Equ 002 Or iCblo Equ 110 Or iCblo Equ 104 Or iCblo Equ 105 Or iCblo Equ 106 Or iCblo Equ 107 Or iCblo Equ 108 Or iCblo Equ 113 Or iCblo Equ 114 Or iCblo Equ 120 Or iCblo Equ 999)
{
ioErroneos = ioErroneos + 1 ;
/* */
GetAsuntoMail( cAsunto, ccResp);
SaveBodyMIRESIN(cCadena, ccResp, cAsunto) ;
/*---------------------------------------*
* SendMailMIRESIN(cAsunto, cDreamTeam) ;
*---------------------------------------*/
SendMailMIRESIN(cAsunto, cCapitMarket) ;
}
break;
case IS_CERRAR:
EstoyActivo = TENGO_Q_SALIR;
break;
default:
printf("resultado en nSysProcd: %i \r\n", nSysProcd);
printf("Procedencia ERRONEA \n");
}
}
/*----------------------------------------------------*\
* INICIALIZA VARIABLE PUNTERO AL CLIENT-SOCKET*
\*----------------------------------------------------*/
close(ClientSocket) ;
ClientSocket = 0 ;
}
/*------------ Recibe funtion ---------------------*/
int Recibe(SOCKET Socket, char * cCadena, int nBuffLen)
{
int nBytesRx = 0,
nLen = 0,
nBlocklen = nBuffLen;
char *p = cCadena;
while( true )
{
if ((nBytesRx = recv(Socket, p, nBlocklen - nLen, 0)) == FAILURE)
return FAILURE;
else if ( 0 == nBytesRx )
break;
if( nBlocklen - nLen == 0)
break;
if( strchr(p, 0x03) )
break;
if( strchr(p, 0x0d) )
break;
if( strchr(p, 0x0a) )
break;
if( strchr(p, 0x0D) )
break;
if( strchr(p, 0x0A) )
break;
nLen += nBytesRx;
p += nBytesRx;
}
nLen = nBlocklen;
return nLen;
}
int Presentacion()
{
char cA2_Type_Env[LMAX_RESP]={0x00} ;
char cA2_LibEnv[LMAX_RESP]={0x00} ;
char cA2_Base[LMAX_RESP]={0x00} ;
char cA2_OraVer[LMAX_RESP]={0x00} ;
char cA2_NivPatch[LMAX_RESP]={0x00} ;
char cA2_Niv_Info[LMAX_RESP]={0x00} ;
printf("***************************************************************************\r\n");
printf("AR GALICIA \t\t\t Buenos Aires\n") ;
printf("OSERVER \t\t\t Desarrollo\n") ;
printf("***************************************************************************\r\n");
memcpy(cA2_Type_Env, getenv("GA2_TYPE_ENV"), LMAX_RESP );
memcpy(cA2_LibEnv , getenv("GA2_LIBENV"), LMAX_RESP );
memcpy(cA2_Base , getenv("GA2_BASE"), LMAX_RESP );
memcpy(cA2_OraVer , getenv("GA2_ORAVER"), LMAX_RESP );
memcpy(cA2_NivPatch, getenv("GA2_NIVPATCH"), LMAX_RESP );
memcpy(cA2_Niv_Info, getenv("GA2_NIV_INFO"), LMAX_RESP );
printf("Tipo Ambiente \t %s \n", cA2_Type_Env ) ;
printf("Ambiente \t %s \n", cA2_LibEnv ) ;
printf("Nombre de la Base \t %s \n", cA2_Base ) ;
printf("Version Oracle \t %s \n", cA2_OraVer ) ;
printf("Nivel de Gestab \t %s \n", cA2_NivPatch ) ;
printf("Nivel de DIN \t %s \n", cA2_Niv_Info ) ;
return 0;
}
/*--------------------------------------------------------------------*\
| SELECCION DEL SHELL A EJECUTAR DE ACUERDO A PROCEDENCIA DEL |
| MENSAJE QUE PUEDE SER: "Loganet", "NEWERAC ", "NSA " |
\*--------------------------------------------------------------------*/
int GetProcedencia( char * cMensaje )
{
char cProcen[8] = "" ;
int iComp1 = 0 ;
int iComp2 = 0 ;
int iComp3 = 0 ;
int iComp4 = 0 ;
int iComp5 = 0 ;
char *pMensaje = cMensaje ;
int nResul = -1 ;
strncpy(cProcen, &pMensaje[51], 7) ;
iComp1 = strncmp(cProcen,"Loganet",7) ;
iComp2 = strncmp(cProcen,"NEWERAC ",7) ;
iComp3 = strncmp(cProcen,"NSA ",7) ;
iComp4 = strncmp(cProcen,"TSN ",7) ;
iComp5 = strncmp(cProcen,"CERRAR ",7) ;
if (iComp1!=0 && iComp2!=0 && iComp3!=0 && iComp4!=0 && iComp5!=0)
nResul = -1 ;
if (iComp1==0)
nResul = 1 ;
if (iComp2==0)
nResul = 2 ;
if (iComp3==0)
nResul = 3 ;
if (iComp4==0)
nResul = 4 ;
if (iComp5==0)
nResul = 5 ;
return nResul ;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameLoganetLog() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo LOG donde grabara|
| el Mensaje que llega por Socket |
\*-------------------------------------------------------------*/
void GetNameLoganetLog(char * ccDataLog)
{
memset(ccDataLog, '\0', sizeof(ccDataLog));
memcpy(ccDataLog, getenv("GA2_IMP"), LMAX_RESP );
/* printf("ccDataLog es : %s\n ", ccDataLog ); */
strcat(ccDataLog, "/PROYAM82.Loganet.log" );
/* printf("ccDataLog es : %s\n ", ccDataLog ); */
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameLoganetResp() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo donde Leera la |
| PRESPUESTA del Programa Cobol que Ejecuta el |
| Mensaje para Loganet |
\*-------------------------------------------------------------*/
void GetNameLoganetResp(char * ccDataResp)
{
memset(ccDataResp, '\0', sizeof(ccDataResp));
memcpy(ccDataResp, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccDataResp, "/PROYAM82.XM001.sysout" );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameNEWERACLog |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo LOG donde grabara|
| el Mensaje que llega por Socket |
\*-------------------------------------------------------------*/
void GetNameNEWERACLog(char * ccNEWERACLog)
{
memset(ccNEWERACLog, '\0', sizeof(ccNEWERACLog));
memcpy(ccNEWERACLog, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccNEWERACLog, "/PROYAM84.NEWERAC.log" );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameNEWERACResp |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo donde Leera la |
| PRESPUESTA del Programa Cobol que Ejecuta el |
| Mensaje para NEWERAC |
\*-------------------------------------------------------------*/
void GetNameNEWERACResp(char * ccNEWERACResp)
{
memset(ccNEWERACResp,'\0', sizeof(ccNEWERACResp));
memcpy(ccNEWERACResp, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccNEWERACResp, "/PROYAM84.XM001.sysout");
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameNSALog |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo LOG donde grabara|
| el Mensaje que llega por Socket |
\*-------------------------------------------------------------*/
void GetNameNSALog(char * ccNSALog)
{
memset(ccNSALog, '\0', sizeof(ccNSALog));
memcpy(ccNSALog, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccNSALog, "/PROYAM86.NSA.log" );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameMIRESINLog |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo LOG donde grabara|
| el Mensaje que llega por Socket |
\*-------------------------------------------------------------*/
void GetNameMIRESINLog(char * ccMIRESINLog)
{
memset(ccMIRESINLog, '\0', sizeof(ccMIRESINLog));
memcpy(ccMIRESINLog, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccMIRESINLog, "/PROYAM88.MIRESIN.log" );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameNSAResp |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo donde Leera la |
| PRESPUESTA del Programa Cobol que Ejecuta el |
| Mensaje para NSA |
\*-------------------------------------------------------------*/
void GetNameNSAResp(char * ccNSAResp)
{
memset(ccNSAResp,'\0', sizeof(ccNSAResp));
memcpy(ccNSAResp, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccNSAResp, "/PROYAM86.XM001.sysout");
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetNameMIRESINResp |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Genera el Nombre del Archivo donde Leera la |
| PRESPUESTA del Programa Cobol que Ejecuta el |
| Mensaje para NSA |
\*-------------------------------------------------------------*/
void GetNameMIRESINResp(char * ccMIRESINResp)
{
memset(ccMIRESINResp,'\0', sizeof(ccMIRESINResp));
memcpy(ccMIRESINResp, getenv("GA2_IMP"), LMAX_RESP );
strcat(ccMIRESINResp, "/PROYAM88.XM001.sysout");
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetRespuestaLoganet() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Lee la Respuesta de Loganet |
\*-------------------------------------------------------------*/
void GetRespuestaLoganet(char * ccRipo, char * cNameFile)
{
char cResp[LMAX_RESP] = {0x00};
FILE *HandLoganet = NULL ;
int nLen = 0;
HandLoganet = fopen(cNameFile, "r") ;
nLen = fread( cResp, 1, sizeof(cResp), HandLoganet );
fclose( HandLoganet ) ;
HandLoganet = NULL;
memcpy(ccRipo, cResp, LMAX_RESP );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetRespuestaNEWERAC() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Lee la Respuesta de NEWERAC |
\*-------------------------------------------------------------*/
void GetRespuestaNEWERAC(char * ccRipo, char * cNameFile)
{
char cResp[LMAX_RESP] = {0x00};
FILE *HandNEWERAC = NULL ;
int nLen = 0;
HandNEWERAC = fopen(cNameFile, "r") ;
nLen = fread( cResp, 1, sizeof(cResp), HandNEWERAC );
fclose( HandNEWERAC ) ;
HandNEWERAC = NULL;
memcpy(ccRipo, cResp, LMAX_RESP );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetRespuestaNSA() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Lee la Respuesta de NEWERAC |
\*-------------------------------------------------------------*/
void GetRespuestaNSA(char * ccRipo, char * cNameFile)
{
char cResp[LMAX_RESP] = {0x00};
FILE *HandNSA = NULL ;
int nLen = 0;
HandNSA = fopen(cNameFile, "r") ;
nLen = fread( cResp, 1, sizeof(cResp), HandNSA );
fclose( HandNSA ) ;
HandNSA = NULL;
memcpy(ccRipo, cResp, LMAX_RESP );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetRespuestaMIRESIN() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 05-05-2009 |
| ............: |
| Descripcion.: Lee la Respuesta de MIRESIN |
\*-------------------------------------------------------------*/
void GetRespuestaMIRESIN(char * ccRipo, char * cNameFile)
{
char cResp[LMAX_RESP] = {0x00};
FILE *HandMIRESIN = NULL ;
int nLen = 0;
HandMIRESIN = fopen(cNameFile, "r") ;
nLen = fread( cResp, 1, sizeof(cResp), HandMIRESIN );
fclose( HandMIRESIN ) ;
HandMIRESIN = NULL;
memcpy(ccRipo, cResp, LMAX_RESP );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GrabaLogs() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Graba Logs de Loganet RESIN y NSA |
| ............: Mensaje y Respuesta |
| MODIFICACION: ISMAEL FARFAN ( 24-08-2016 ) |
| ............: SE EXTIENDE EL LARGO DEL REGISTRO DE LOGS A |
| ............: 240 CARACTERES. |
\*-------------------------------------------------------------*/
void GrabaLogs(char * ccFileLog, char * cMessage, char * cRpta) {
time_t RawDatetime;
char ccRawDatetime[26] = {0x00};
char strAnsw[120] = {0x00};
FILE *HandFileLog = NULL ;
char cRegistro[LMAX_MSGE]={0x00} ;
memset(ccRawDatetime, '\0', sizeof(ccRawDatetime)-1);
time(&RawDatetime);
sprintf(ccRawDatetime,"%s", ctime( &RawDatetime ) );
HandFileLog = fopen(ccFileLog, "a") ;
memset( cRegistro, '\0', sizeof(cRegistro)-1) ;
strncpy(cRegistro,cMessage, sizeof(cRegistro)-1) ;
fprintf (HandFileLog, "%s \n", cRegistro) ;
Rta_RTrim( strAnsw, cRpta );
memset( cRegistro, '\0', sizeof(cRegistro)-1) ;
strcat( cRegistro, strAnsw );
strcat( cRegistro, " Envio " );
strcat( cRegistro, ccRawDatetime );
printf("Respuesta......: %s \n", cRegistro ) ;
fprintf (HandFileLog, "%s \n", cRegistro) ;
fclose(HandFileLog ) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SendMailLoganet() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Envia Mails con Errores de Loganet |
\*-------------------------------------------------------------*/
void SendMailLoganet(char * cSubject, char * cGrupete)
{
char *pAsunto = cSubject;
char cRmMail[]= "rm -f $A2_IMP/PROYAM82.XMAIL.sysout";
char cDestino[LDES_MAIL] = {0x00};
char cComando[LMAX_CMND] = "mail -s \"Loganet ONLINE: " ;
FILE *HandFileErr = NULL ;
char cRegError[LMAX_TITU] = {0x00} ;
int nReturn = 0;
char cFileErrName[LMAX_RESP]={0x00};
char *pGrupete= cGrupete;
memset(cDestino,'\0',sizeof(cDestino)-1) ;
strncpy(cDestino,&pGrupete[0], LDES_MAIL );
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM82.XMAIL.sysout");
strcat(cComando,cSubject);
strcat(cComando,"\" ");
strcat(cComando,cDestino);
strcat(cComando," < ");
strcat(cComando,cFileErrName);
system(cRmMail);
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SendMailNEWERAC() |
| Tipo........: Int |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Envia Mails con Errores de NEWERAC |
\*-------------------------------------------------------------*/
void SendMailNEWERAC(char * cSubject, char * cGrupete)
{
char *pAsunto = cSubject;
char cRmMail[]= "rm -f $A2_IMP/PROYAM84.XMAIL.sysout";
char cDestino[LDES_MAIL] = {0x00};
char cComando[LMAX_CMND] = "mail -s \"NEWERAC ONLINE: " ;
FILE *HandFileErr = NULL ;
char cRegError[LMAX_TITU] = {0x00} ;
int nReturn = 0;
char cFileErrName[LMAX_RESP]={0x00};
char *pGrupete= cGrupete;
memset(cDestino,'\0',sizeof(cDestino)-1) ;
strncpy(cDestino,&pGrupete[0], LDES_MAIL );
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM84.XMAIL.sysout");
strcat(cComando,cSubject);
strcat(cComando,"\" ");
strcat(cComando,cDestino);
strcat(cComando," < ");
strcat(cComando,cFileErrName);
/*
|--------------------------------------------------------
| DEBIDO A LA SOLICITUD NRO Pa00305 SE ANULA EL MAIL
| QUE GENERA EL PROGRAMA
|--------------------------------------------------------
|
| nReturn = system(cComando);
|
|
*/
system(cRmMail) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SendMailNSA() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Envia Mails con Errores de NSA |
\*-------------------------------------------------------------*/
void SendMailNSA(char * cSubject, char * cGrupete)
{
char *pAsunto = cSubject;
char cRmMail[]= "rm -f $A2_IMP/PROYAM86.XMAIL.sysout";
char cDestino[LDES_MAIL] = {0x00};
char cComando[LMAX_CMND] = "mail -s \"NSA ONLINE: " ;
FILE *HandFileErr = NULL ;
char cRegError[LMAX_TITU] = {0x00} ;
int nReturn = 0;
char cFileErrName[LMAX_RESP]={0x00};
char *pGrupete= cGrupete;
memset(cDestino,'\0',sizeof(cDestino)-1) ;
strncpy(cDestino,&pGrupete[0], LDES_MAIL );
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM86.XMAIL.sysout");
strcat(cComando,cSubject);
strcat(cComando,"\" ");
strcat(cComando,cDestino);
strcat(cComando," < ");
strcat(cComando,cFileErrName);
nReturn = system(cComando);
system(cRmMail) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SendMailMIRESIN() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Envia Mails con Errores de MIRESIN |
\*-------------------------------------------------------------*/
void SendMailMIRESIN(char * cSubject, char * cGrupete)
{
char *pAsunto = cSubject;
char cRmMail[]= "rm -f $A2_IMP/PROYAM88.XMAIL.sysout";
char cDestino[LDES_MAIL] = {0x00};
char cComando[LMAX_CMND] = "mail -s \"MIRESIN ONLINE: " ;
FILE *HandFileErr = NULL ;
char cRegError[LMAX_TITU] = {0x00} ;
int nReturn = 0;
char cFileErrName[LMAX_RESP]={0x00};
char *pGrupete= cGrupete;
memset(cDestino,'\0',sizeof(cDestino)-1) ;
strncpy(cDestino,&pGrupete[0], LDES_MAIL );
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM88.XMAIL.sysout");
strcat(cComando,cSubject);
strcat(cComando,"\" ");
strcat(cComando,cDestino);
strcat(cComando," < ");
strcat(cComando,cFileErrName);
nReturn = system(cComando);
system(cRmMail) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SaveBodyLoganet() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Graba el Cuerpo del Mail para Loganet |
\*-------------------------------------------------------------*/
void SaveBodyLoganet(char * cStrLine, char * ccResp, char * ccAsunto)
{
FILE *HandAttach = NULL ;
char cFileErrName[LMAX_RESP]={0x00};
char cTituMailMail[LMAX_TITU]={0x00} ;
char *pcStrLine = cStrLine ;
char cSucusal[6] = {0x00} ;
char cRaiz[7] = {0x00} ;
char cOrdinal[4] = {0x00} ;
char cDivisa[4] = {0x00} ;
char cImporte[16] = {0x00} ;
char cTipoOpe[1] = {0x00} ;
char cReferen[9] = {0x00} ;
char sTipoOpe[16] = {0x00} ;
int nComp = 0;
memset(cSucusal,'\0',sizeof(cSucusal));
memset(cRaiz,'\0',sizeof(cRaiz));
memset(cOrdinal,'\0',sizeof(cOrdinal));
memset(cDivisa,'\0',sizeof(cDivisa));
memset(cImporte,'\0',sizeof(cImporte));
memset(sTipoOpe,'\0',sizeof(sTipoOpe));
memset(cReferen,'\0',sizeof(cReferen));
memset(cTipoOpe,'\0',sizeof(cTipoOpe));
strncpy(cSucusal, &pcStrLine[2], 5);
strncpy(cRaiz, &pcStrLine[7], 6);
strncpy(cOrdinal, &pcStrLine[13], 3);
strncpy(cDivisa, &pcStrLine[16], 3);
strncpy(cImporte, &pcStrLine[19], 15);
strncpy(cTipoOpe, &pcStrLine[1], 1);
strncpy(cReferen, &pcStrLine[37], 8);
nComp=strncmp(cTipoOpe,"1",1) ;
if(nComp>0)
strncpy(sTipoOpe,"Credito",8);
else
strncpy(sTipoOpe,"Debito",8);
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM82.XMAIL.sysout");
HandAttach = fopen(cFileErrName, "a") ;
if(HandAttach!=NULL)
{
fprintf(HandAttach, " \n") ;
fprintf(HandAttach, "*****************************************************************: \n") ;
fprintf(HandAttach, "Error Loganet ONLINE: %s \n", ccAsunto) ;
fprintf(HandAttach, "*****************************************************************: \n") ;
fprintf(HandAttach, "Sucusal...........: %s \n", cSucusal) ;
fprintf(HandAttach, "Raiz..............: %s \n", cRaiz) ;
fprintf(HandAttach, "Ordinal...........: %s \n", cOrdinal) ;
fprintf(HandAttach, "Divisa............: %s \n", cDivisa) ;
fprintf(HandAttach, "Importe...........: %s \n", cImporte) ;
fprintf(HandAttach, "Tipo NEWERACion....: %s \n", sTipoOpe) ;
fprintf(HandAttach, "Referencia........: %s \n\n\n", cReferen) ;
}
fclose(HandAttach) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SaveBodyNEWERAC() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Graba el Cuerpo del Mail para NEWERAC |
\*-------------------------------------------------------------*/
void SaveBodyNEWERAC(char * cStrLine, char * ccResp, char * ccAsunto)
{
FILE *HandAttach = NULL ;
char cFileErrName[LMAX_RESP]={0x00};
char cTituMailMail[LMAX_TITU]={0x00} ;
char *pcStrLine = cStrLine ;
char cSucusal[6] = {0x00} ;
char cRaiz[7] = {0x00} ;
char cOrdinal[4] = {0x00} ;
char cDivisa[4] = {0x00} ;
char cImporte[16] = {0x00} ;
char cTipoOpe[1] = {0x00} ;
char cReferen[9] = {0x00} ;
char sTipoOpe[16] = {0x00} ;
int nComp = 0;
memset(cSucusal,'\0',sizeof(cSucusal));
memset(cRaiz,'\0',sizeof(cRaiz));
memset(cOrdinal,'\0',sizeof(cOrdinal));
memset(cDivisa,'\0',sizeof(cDivisa));
memset(cImporte,'\0',sizeof(cImporte));
memset(sTipoOpe,'\0',sizeof(sTipoOpe));
memset(cReferen,'\0',sizeof(cReferen));
memset(cTipoOpe,'\0',sizeof(cTipoOpe));
strncpy(cSucusal, &pcStrLine[2], 5);
strncpy(cRaiz, &pcStrLine[7], 6);
strncpy(cOrdinal, &pcStrLine[13], 3);
strncpy(cDivisa, &pcStrLine[16], 3);
strncpy(cImporte, &pcStrLine[19], 15);
strncpy(cTipoOpe, &pcStrLine[1], 1);
strncpy(cReferen, &pcStrLine[37], 8);
nComp=strncmp(cTipoOpe,"1",1) ;
if(nComp>0)
strncpy(sTipoOpe,"Credito",8);
else
strncpy(sTipoOpe,"Debito",8);
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM84.XMAIL.sysout");
HandAttach = fopen(cFileErrName, "w") ;
if(HandAttach!=NULL)
{
fprintf(HandAttach, " \n") ;
fprintf(HandAttach, "*****************************************************************: \n") ;
fprintf(HandAttach, "Error NEWERAC ONLINE: %s \n", ccAsunto) ;
fprintf(HandAttach, "*****************************************************************: \n") ;
fprintf(HandAttach, "Sucusal...........: %s \n", cSucusal) ;
fprintf(HandAttach, "Raiz..............: %s \n", cRaiz) ;
fprintf(HandAttach, "Ordinal...........: %s \n", cOrdinal) ;
fprintf(HandAttach, "Divisa............: %s \n", cDivisa) ;
fprintf(HandAttach, "Importe...........: %s \n", cImporte) ;
fprintf(HandAttach, "Tipo NEWERACion....: %s \n", sTipoOpe) ;
fprintf(HandAttach, "Referencia........: %s \n\n\n", cReferen) ;
}
fclose(HandAttach) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SaveBodyNSA() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Graba el Cuerpo del Mail para NSA |
\*-------------------------------------------------------------*/
void SaveBodyNSA(char * cStrLine, char * ccResp, char * ccAsunto)
{
FILE *HandAttach = NULL ;
char cFileErrName[LMAX_RESP]={0x00};
char cTituMailMail[LMAX_TITU]={0x00} ;
char *pcStrLine = cStrLine ;
char cSucusal[6] = {0x00} ;
char cRaiz[7] = {0x00} ;
char cOrdinal[4] = {0x00} ;
char cDivisa[4] = {0x00} ;
char cImporte[16] = {0x00} ;
char cTipoOpe[1] = {0x00} ;
char cReferen[9] = {0x00} ;
char sTipoOpe[16] = {0x00} ;
int nComp = 0;
memset(cSucusal,'\0',sizeof(cSucusal));
memset(cRaiz,'\0',sizeof(cRaiz));
memset(cOrdinal,'\0',sizeof(cOrdinal));
memset(cDivisa,'\0',sizeof(cDivisa));
memset(cImporte,'\0',sizeof(cImporte));
memset(sTipoOpe,'\0',sizeof(sTipoOpe));
memset(cReferen,'\0',sizeof(cReferen));
memset(cTipoOpe,'\0',sizeof(cTipoOpe));
strncpy(cSucusal, &pcStrLine[2], 5);
strncpy(cRaiz, &pcStrLine[7], 6);
strncpy(cOrdinal, &pcStrLine[13], 3);
strncpy(cDivisa, &pcStrLine[16], 3);
strncpy(cImporte, &pcStrLine[19], 15);
strncpy(cTipoOpe, &pcStrLine[1], 1);
strncpy(cReferen, &pcStrLine[37], 8);
nComp=strncmp(cTipoOpe,"1",1) ;
if(nComp>0)
strncpy(sTipoOpe,"Credito",8);
else
strncpy(sTipoOpe,"Debito",8);
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM86.XMAIL.sysout");
HandAttach = fopen(cFileErrName, "w") ;
if(HandAttach!=NULL)
{
fprintf(HandAttach, " \n") ;
fprintf(HandAttach, "*****************************************************************\n") ;
fprintf(HandAttach, "Error NSA ONLINE: %s \n", ccAsunto) ;
fprintf(HandAttach, "Deberá efectuar Bloqueo manual con transacción \"TRXBLO\" \n") ;
fprintf(HandAttach, "*****************************************************************\n") ;
fprintf(HandAttach, "Sucusal...........: %s \n", cSucusal) ;
fprintf(HandAttach, "Raiz..............: %s \n", cRaiz) ;
fprintf(HandAttach, "Ordinal...........: %s \n", cOrdinal) ;
fprintf(HandAttach, "Divisa............: %s \n", cDivisa) ;
fprintf(HandAttach, "Importe...........: %s \n", cImporte) ;
fprintf(HandAttach, "Tipo NEWERACion....: %s \n", sTipoOpe) ;
fprintf(HandAttach, "Referencia........: %s \n\n\n", cReferen) ;
}
fclose(HandAttach) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: SaveBodyMIRESIN() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Graba el Cuerpo del Mail para MIRESIN |
\*-------------------------------------------------------------*/
void SaveBodyMIRESIN(char * cStrLine, char * ccResp, char * ccAsunto)
{
FILE *HandAttach = NULL ;
char cFileErrName[LMAX_RESP]={0x00};
char cTituMailMail[LMAX_TITU]={0x00} ;
char *pcStrLine = cStrLine ;
char cSucusal[6] = {0x00} ;
char cRaiz[7] = {0x00} ;
char cOrdinal[4] = {0x00} ;
char cDivisa[4] = {0x00} ;
char cImporte[16] = {0x00} ;
char cTipoOpe[1] = {0x00} ;
char cReferen[9] = {0x00} ;
char sTipoOpe[16] = {0x00} ;
int nComp = 0;
memset(cSucusal,'\0',sizeof(cSucusal));
memset(cRaiz,'\0',sizeof(cRaiz));
memset(cOrdinal,'\0',sizeof(cOrdinal));
memset(cDivisa,'\0',sizeof(cDivisa));
memset(cImporte,'\0',sizeof(cImporte));
memset(sTipoOpe,'\0',sizeof(sTipoOpe));
memset(cReferen,'\0',sizeof(cReferen));
memset(cTipoOpe,'\0',sizeof(cTipoOpe));
strncpy(cSucusal, &pcStrLine[2], 5);
strncpy(cRaiz, &pcStrLine[7], 6);
strncpy(cOrdinal, &pcStrLine[13], 3);
strncpy(cDivisa, &pcStrLine[16], 3);
strncpy(cImporte, &pcStrLine[19], 15);
strncpy(cTipoOpe, &pcStrLine[1], 1);
strncpy(cReferen, &pcStrLine[37], 8);
nComp=strncmp(cTipoOpe,"1",1) ;
if(nComp>0)
strncpy(sTipoOpe,"Credito",8);
else
strncpy(sTipoOpe,"Debito",8);
memcpy(cFileErrName, getenv("GA2_IMP"), LMAX_RESP );
strcat(cFileErrName, "/PROYAM88.XMAIL.sysout");
HandAttach = fopen(cFileErrName, "w") ;
if(HandAttach!=NULL)
{
fprintf(HandAttach, " \n") ;
fprintf(HandAttach, "*****************************************************************\n") ;
fprintf(HandAttach, "Error MIRESIN ONLINE: %s \n", ccAsunto) ;
fprintf(HandAttach, "Deberá efectuar Bloqueo manual con transacción \"TRXBLO\" \n") ;
fprintf(HandAttach, "*****************************************************************\n") ;
fprintf(HandAttach, "Sucusal...........: %s \n", cSucusal) ;
fprintf(HandAttach, "Raiz..............: %s \n", cRaiz) ;
fprintf(HandAttach, "Ordinal...........: %s \n", cOrdinal) ;
fprintf(HandAttach, "Divisa............: %s \n", cDivisa) ;
fprintf(HandAttach, "Importe...........: %s \n", cImporte) ;
fprintf(HandAttach, "Tipo NEWERACion....: %s \n", sTipoOpe) ;
fprintf(HandAttach, "Referencia........: %s \n\n\n", cReferen) ;
}
fclose(HandAttach) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetAsuntoMail() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Busca el Asunto del Mail |
\*-------------------------------------------------------------*/
void GetAsuntoMail(char * ccSubject, char * ccResp )
{
char *pccResp = ccResp;
char cTituloMail[LMAX_TITU]={0x00};
int iCodigo = 0;
char cCodeRpta[4] = {0x00};
char cCodigo[100] = {0x00} ;
memset(ccSubject,'\0', sizeof(ccSubject));
memset(cCodeRpta,'\0', sizeof(ccResp));
strncpy(cCodeRpta, &pccResp[0], 3);
iCodigo = atoi(cCodeRpta);
strncpy(cCodigo, &pccResp[0], 3);
strcat(cCodigo, " - ") ;
if (iCodigo Equ 110)
strncpy(cTituloMail,Error110,sizeof(Error110));
else if (iCodigo Equ 002)
strncpy(cTituloMail,"Error Interno de Ejecucion de BLOQUEO",38);
else if (iCodigo Equ 104)
strncpy(cTituloMail,Error104,sizeof(Error104));
else if (iCodigo Equ 105)
strncpy(cTituloMail,Error105,sizeof(Error105));
else if (iCodigo Equ 106)
strncpy(cTituloMail,Error106,sizeof(Error106));
else if (iCodigo Equ 107)
strncpy(cTituloMail,Error107,sizeof(Error107));
else if (iCodigo Equ 108)
strncpy(cTituloMail,Error108,sizeof(Error108));
else if (iCodigo Equ 113)
strncpy(cTituloMail,Error113,sizeof(Error113));
else if (iCodigo Equ 114)
strncpy(cTituloMail,Error114,sizeof(Error114));
else if (iCodigo Equ 120)
strncpy(cTituloMail,Error999,sizeof(Error999));
else if (iCodigo Equ 999)
strncpy(cTituloMail,ErrorDef,sizeof(ErrorDef));
else
strncpy(cTituloMail,"Error desconocido oo no esperado",40);
strcat(cCodigo, cTituloMail) ;
strcat(ccSubject, cCodigo) ;
return;
}
/*-------------------------------------------------------------*\
| Nombre......: GetCodigoRespuesta() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-05-2009 |
| ............: |
| Descripcion.: Tipifica el Numero de Error para poder elegir |
| ............: cual de ellos se debe o no comunicar |
\*-------------------------------------------------------------*/
int GetCodigoRespuesta(char * cRespuesta)
{
char cCodeRpta[4] = {0x00};
char *pRespuesta= cRespuesta;
int nResult = 0;
memset(cCodeRpta,'\0', sizeof(cCodeRpta));
strncpy(cCodeRpta, &pRespuesta[0], 3);
nResult = atoi(cCodeRpta) ;
return nResult ;
}
/*-------------------------------------------------------------*\
| Nombre......: EliminaLogs() |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-07-2009 |
| ............: |
| Descripcion.: Elimina el archivo pasado por parametro |
| ............: |
\*-------------------------------------------------------------*/
void EliminaLogs(char * cArchivo)
{
char cComan[LMAX_TITU] = "rm -f ";
int nSys = 0;
strcat( cComan, cArchivo );
nSys=system( cComan );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: ProcesoHijitus(void *arg) |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 15-07-2018 |
| ............: |
| Descripcion.: Rutina que lanza por MultiHilo un job |
| ............: que genera un .csv y lo envia por mail |
\*-------------------------------------------------------------*/
void* ProcesoHijitus(void *arg)
{
int nRetuVal = 0;
char CmdShell[25] = "proyam11 > /dev/null " ;
nRetuVal = system( CmdShell ) ;
pthread_exit(0) ;
}
/*-------------------------------------------------------------*\
| Nombre......: Rta_RTrim( char * ccDestino,char a[LMAX_RESP])|
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 23-02-2022 |
| ............: |
| Descripcion.: Rutina para quitar los espacios finales de |
| ............: un string de tipo respuesta |
\*-------------------------------------------------------------*/
void Rta_RTrim( char * ccDestino, char a[LMAX_RESP]) {
char rtrim[LMAX_RESP]= {0x00};
int i=strlen(a)-1;
while (i>=0) {
/*
| Se quitan espacion TAB y finesde linea enviados por TCP/IP '\n'
*/
if (a[i]==' '|| a[i]=='\t' || a[i]==0x0d || a[i]==0x0a ) {
rtrim[i]='\0';
i = i - 1;
}
if (a[i]!=' ' && a[i]!='\t') {
break;
}
}
while (i>=0) { rtrim[i]=a[i]; i= i - 1; }
memcpy(ccDestino, rtrim, LMAX_RESP );
return;
}
/*-------------------------------------------------------------*\
| Nombre......: rtrim( char * ccDestino, char A[lmax_msge]) |
| Tipo........: void |
| Autor.......: Yuri Orlov |
| Fecha.......: 31-01-2022 |
| ............: |
| Descripcion.: Rutina para quitar los espacios finales de |
| ............: un string de tipo MENSAJE |
\*-------------------------------------------------------------*/
void rtrim( char * ccDestino, char a[LMAX_MSGE]) {
char rtrim[LMAX_MSGE]= {0x00};
int i=strlen(a)-1;
while (i>=0) {
/*
| Se quitan espacion TAB y finesde linea enviados por TCP/IP '\n'
*/
if (a[i]==' '|| a[i]=='\t' || a[i]==0x0d || a[i]==0x0a ) {
rtrim[i]='\0';
i = i - 1;
}
if (a[i]!=' ' && a[i]!='\t') {
break;
}
}
while (i>=0) { rtrim[i]=a[i]; i= i - 1; }
memcpy(ccDestino, rtrim, LMAX_MSGE );
return;
}
void ltrim( char * ccDestino, char b[LMAX_MSGE]) {
char ltrim[LMAX_MSGE]= {0x00};
int i=0,j=0;
while (b[i]!='\0') {
if (b[i]!=' ' && b[i]!='\t') {
break;
}
i++;
}
while (b[i]!='\0') {
ltrim[j]=b[i];
i++;
j++;
}
memcpy(ccDestino, ltrim, LMAX_MSGE );
return;
}
void trim( char * ccDestino, char c[LMAX_MSGE]) {
char rtrim[LMAX_MSGE]= {0x00};
int i=strlen(c)-1;
while (i>=0) {
if (c[i]==' '|| c[i]=='\t') {
rtrim[i]='\0';
}
if (c[i]!=' ' && c[i]!='\t') {
break;
}
i = i - 1;
}
while (i>=0) {
rtrim[i]=c[i];
i = i - 1;
}
char ltrim[LMAX_MSGE]= {0x00};
int j=0,k=0;
while (rtrim[j]!='\0') {
if (rtrim[j]!=' ' && rtrim[j]!='\t') {
break;
}
j++;
}
while (rtrim[j]!='\0') {
ltrim[k]=rtrim[j];
j++;
k++;
}
char trim[LMAX_MSGE];
strcpy (trim, ltrim);
memcpy(ccDestino, trim, LMAX_MSGE );
return;
}