public Object Accion(Object oDatos) { Object oResultado = null; _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = Constantes.ProcesoTipo.SOLICITUD; oResultado = new SIT_SNT_SOLICITANTEDao(_cn, _transaction, _sDataAdapter).dmlAgregar(_afdEdoDataMdl.solicitante); oResultado = new SIT_SOL_SOLICITUDDao(_cn, _transaction, _sDataAdapter).dmlAgregar(_afdEdoDataMdl.solicitud); _afdEdoDataMdl.solClave = _afdEdoDataMdl.solicitud.solclave; /* CREAMOS EL SEGUIMIENTO DE LA SOLICITUD */ SIT_SOL_SEGUIMIENTO solSegMdl = new SIT_SOL_SEGUIMIENTO( solclave: _afdEdoDataMdl.solClave, prcclave: Constantes.ProcesoTipo.SOLICITUD, segmultiple: AfdConstantes.MULTIPLE.NO, segfecini: new DateTime(_afdEdoDataMdl.solicitud.solfecsol.Ticks), segfecfin: new DateTime(), segfecestimada: _afdEdoDataMdl.ID_FecEstimada, segfeccalculo: new DateTime(), segfecamp: new DateTime(), segdiassemaforo: 0, segdiasnolab: 0, segsemaforocolor: 0, segultimonodo: 0, segedoproceso: AfdConstantes.PROCESO_ESTADO.EN_EJECUCION, afdclave: _afdEdoDataMdl.ID_ClaAfd, repclave: null, usrclave: _afdEdoDataMdl.usrClaveOrigen); oResultado = new SIT_SOL_SEGUIMIENTODao(_cn, _transaction, _sDataAdapter).dmlAgregar(solSegMdl); _afdEdoDataMdl.AFDseguimientoMdl = solSegMdl; /* CREAR NODO INAI CREAR SOLICITUD CERO*/ SIT_RED_NODO nodoINAI = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaInai, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.FINALIZADO, nodclave = _afdEdoDataMdl.ID_EstadoActual, nodfeccreacion = _afdEdoDataMdl.solicitud.solfecsol, nedclave = Constantes.NodoEstado.INAI_SOLICITUD, usrclave = _afdEdoDataMdl.usrClaveDestino }; oResultado = _nodoDao.dmlAgregar(nodoINAI); nodoINAI.nodclave = _nodoDao.iSecuencia; _afdEdoDataMdl.AFDnodoActMdl = nodoINAI; //////////////////////////////////////////// _afdEdoDataMdl.ID_EstadoActual = Constantes.NodoEstado.UT_RECIBIR_SOL; // Aqui voy a crear el Nodo de la UT _afdEdoDataMdl.ID_Capa = _afdEdoDataMdl.ID_Capa + 1; //GRABAMOS los archivos que vienen en la solicitud GrabarDocSol(_afdEdoDataMdl.solicitud.solclave); return(AccionBase(true)); }
public Object dmlUpdateNodoRegresar(SIT_RED_NODO dtoDatos) { String sqlQuery = " update SIT_RED_NODO" + " SET nodregresar = :P0 " + " where nodclave = :P1 "; return(EjecutaDML(sqlQuery, dtoDatos.nodregresar, dtoDatos.nodclave)); }
public Object dmlUpdateNodoAtendido(SIT_RED_NODO dtoDatos) { String sqlQuery = " update SIT_RED_NODO" + " SET nodatendido = :P0 " + " where nodclave = :P1 "; return(EjecutaDML(sqlQuery, dtoDatos.nodatendido, dtoDatos.nodclave)); }
public Object dmlAgregar(SIT_RED_NODO oDatos) { iSecuencia = SecuenciaDML("SEC_SIT_RED_NODO"); String sSQL = " INSERT INTO SIT_RED_NODO( perclave, nodfeclectura, nodusrausencia, usrclave, prcclave, solclave, araclave, nodcapa, nodatendido, nedclave, nodfeccreacion, nodclave, nodregresar) VALUES ( :P0, :P1, :P2, :P3, :P4, :P5, :P6, :P7, :P8, :P9, :P10, :P11, :P12) "; EjecutaDML(sSQL, oDatos.perclave, oDatos.nodfeclectura, oDatos.nodusrausencia, oDatos.usrclave, oDatos.prcclave, oDatos.solclave, oDatos.araclave, oDatos.nodcapa, oDatos.nodatendido, oDatos.nedclave, oDatos.nodfeccreacion, iSecuencia, oDatos.nodregresar); return(iSecuencia); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.RESPONDER) { return(ResponderSol()); } else if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.SI; //BUSCAMOS QUIEN ES EL QUE ESTA ATENIDNEDO LA SOLICITUD.. PARA CREAR LA BARRERA SIT_SOL_SEGUIMIENTO solSegBuscar = new SIT_SOL_SEGUIMIENTO(); solSegBuscar.solclave = _afdEdoDataMdl.solClave; solSegBuscar.prcclave = iClaveProceso; SIT_SOL_SEGUIMIENTO segAux = _segDao.dmlSelectID(solSegBuscar); _afdEdoDataMdl.AFDseguimientoMdl.usrclave = segAux.usrclave; SIT_RED_NODO nodoNvoPRUDanalizar = ExisteNodo(_afdEdoDataMdl.solClave, Constantes.NodoEstado.PRUD_REVISARRESP_SOLICITUD, (int)segAux.usrclave, _afdEdoDataMdl.ID_Capa + 1); // BUSCAR QUIEN ATIENDE LA SOLICUTD.... PARA BUSCAR LE NODO... if (nodoNvoPRUDanalizar == null) { // CREAR NODO ACTUAL SIGUIENTE DE LA PRUFanalizar que es la barrera nodoNvoPRUDanalizar = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUT, nodcapa = _afdEdoDataMdl.ID_Capa + 1, nodatendido = AfdConstantes.NODO.INDETERMINADO, nedclave = Constantes.NodoEstado.PRUD_REVISARRESP_SOLICITUD, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nodclave = Constantes.General.ID_PENDIENTE, usrclave = segAux.usrclave, perclave = Constantes.Perfil.PRUT }; _nodoDao.dmlAgregar(nodoNvoPRUDanalizar); } SIT_RED_NODORESP oNodoResp = _redNodoRespDao.dmlSelectRespUnica(_afdEdoDataMdl.AFDnodoActMdl.nodclave); _afdEdoDataMdl.repClave = oNodoResp.repclave; return(Turnar(_afdEdoDataMdl, _nodoDao.iSecuencia)); } else if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.ASIGNAR) { Asignar(); } return(0); }
protected SIT_RED_NODO ExisteNodo(long lFolio, int iNodoEstado, int iUsuario, int iCapa) { SIT_RED_NODO oNodoBuscar = new SIT_RED_NODO(); oNodoBuscar.solclave = lFolio; oNodoBuscar.nodclave = iNodoEstado; oNodoBuscar.usrclave = iUsuario; oNodoBuscar.nodcapa = iCapa; // verificar si bien en nulo return(_nodoDao.dmlSelectNodoExiste(oNodoBuscar)); }
protected Object Turnar(AfdEdoDataMdl afdDataMdl, long nodRegresar) { object oResultado = null; Int32 iTipoAristaIni = afdDataMdl.rtpclave; SIT_RED_NODO nodoInicial = _nodoDao.dmlSelectNodoID(afdDataMdl.AFDnodoActMdl.nodclave); SIT_RESP_TURNARDao turnarDao = new SIT_RESP_TURNARDao(_cn, _transaction, _sDataAdapter); List <SIT_RESP_TURNAR> lstTurnar = turnarDao.dmlSelectTurnarResp(afdDataMdl.repClave); foreach (SIT_RESP_TURNAR usrTurnar in lstTurnar) { afdDataMdl.ID_EstadoActual = (int)nodoInicial.nedclave; afdDataMdl.AFDnodoActMdl = nodoInicial; afdDataMdl.rtpclave = iTipoAristaIni; afdDataMdl.usrClaveDestino = usrTurnar.usrclave; afdDataMdl.Observacion = usrTurnar.turinstruccion; afdDataMdl.ID_AreaDestino = usrTurnar.araclave; afdDataMdl.ID_Capa = nodoInicial.nodcapa; oResultado = AccionBase(true); afdDataMdl.AFDnodoActMdl.nodregresar = nodRegresar; _nodoDao.dmlUpdateNodoRegresar(afdDataMdl.AFDnodoActMdl); // sera uno especial para el aerea que estos turnando RespMoverSigNodo(nodoInicial.nodclave, _afdEdoDataMdl.AFDnodoActMdl.nodclave, Constantes.RespuestaEstado.TURNADO, Constantes.RespuestaEstado.ANALIZAR); } if (lstTurnar.Count > 1) { _segDao.dmlUpdMultiple(afdDataMdl.AFDseguimientoMdl); } //List<Tuple<int, string, int>> lstPersonasTurnar = _afdEdoDataMdl.dicAuxRespuesta[ProcesoGralDao.PARAM_LISTA_TURNAR] as List<Tuple<int, string, int>>; //foreach (Tuple<int, string, int> areaTurnar in lstPersonasTurnar ) //{ // afdDataMdl.ID_EstadoActual = (int)nodoInicial.nedclave; // afdDataMdl.AFDnodoActMdl = nodoInicial; // afdDataMdl.rtpclave = iTipoAristaIni; // afdDataMdl.usrClaveDestino = areaTurnar.Item1; // afdDataMdl.Observacion = areaTurnar.Item2; // afdDataMdl.ID_AreaDestino = areaTurnar.Item3; // afdDataMdl.ID_Capa = nodoInicial.nodcapa; // oResultado = AccionBase(true); // afdDataMdl.AFDnodoActMdl.nodregresar = nodRegresar; // _nodoDao.dmlUpdateNodoRegresar(afdDataMdl.AFDnodoActMdl); // RespMoverSigNodo(nodoInicial.nodclave, _afdEdoDataMdl.AFDnodoActMdl.nodclave, Constantes.RespuestaEstado.TURNADO, Constantes.RespuestaEstado.ANALIZAR); //} return(oResultado); }
public SIT_RED_NODO dmlSelectNodoExiste(SIT_RED_NODO oNodo) { String sqlQuery = " Select nodo.solclave, nodclave, ARACLAVE, nodfeccreacion, nedclave, prcclave, nodatendido, nodcapa " + " FROM SIT_red_nodo nodo " + " WHERE solclave = :P0 and nedclave = :P1 and usrClave = :P2 and nodcapa = :P3 "; List <SIT_RED_NODO> lstDatos = CrearListaMDL <SIT_RED_NODO>(ConsultaDML(sqlQuery, oNodo.solclave, oNodo.nedclave, oNodo.usrclave, oNodo.nodcapa)); if (lstDatos.Count > 0) { return(lstDatos[0]); } else { return(null); } }
public SIT_RED_NODO dmlSelectNodoReturnar(SIT_RED_NODO oNodo) { String sqlQuery = " Select * " + " FROM SIT_RED_NODO " + " WHERE solclave = :P0 and nedclave = :P1 AND nodclave < :P2 "; List <SIT_RED_NODO> lstDatos = CrearListaMDL <SIT_RED_NODO>(ConsultaDML(sqlQuery, oNodo.solclave, oNodo.nedclave, oNodo.nodclave)); if (lstDatos.Count > 0) { return(lstDatos[0]); } else { return(null); } }
public Object Accion(Object oDatos) { int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; //ACTUALIZAR LA TABLA ACLARACION PARA SABER EN QUE PROCESO ESTA _afdEdoDataMdl.solicitud.prcclave = Constantes.ProcesoTipo.ACLARACION; _afdEdoDataMdl.solicitud.solfecacl = _afdEdoDataMdl.FechaRecepcion; new SIT_SOL_SOLICITUDDao(_cn, _transaction, _sDataAdapter).dmlEditar(_afdEdoDataMdl.solicitud); //MODIFICAR SE DEBE DE REGRESAR LA SOLICITUD AL ÁREA ORIGINAL Object bResultado = AccionBase(true); // CREAR DE FORMA ANTICIPADA EL NODO DE UT ANALIZAR if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { SIT_RED_NODO nodoNvoUTanalizar = ExisteNodo(_afdEdoDataMdl.solClave, Constantes.NodoEstado.UT_RECIBIR_SOLICITUD, _afdEdoDataMdl.ID_AreaUT, _afdEdoDataMdl.ID_Capa + 1); if (nodoNvoUTanalizar == null) { // CREAR NODO ACTUAL SIGUIENTE DE LA UTanalizar que es la barrera nodoNvoUTanalizar = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUT, nodcapa = _afdEdoDataMdl.ID_Capa + 1, nodatendido = AfdConstantes.NODO.INDETERMINADO, nodclave = Constantes.NodoEstado.UT_RECIBIR_SOLICITUD, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoNvoUTanalizar); } } //hubo una respuesta if (_afdEdoDataMdl.rtpclave != Constantes.Respuesta.TURNAR) { bResultado = _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); } return(bResultado); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; //AL NODO ACTGUAL LO ACTUALIZAMOS _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoActMdl); // BUSCAR EL NODO ANTERIOR DE CT por FOLIO - CAPA - AREA SIT_RED_NODO nodoCT = ExisteNodo(_afdEdoDataMdl.solClave, Constantes.NodoEstado.INDEFINIDO, _afdEdoDataMdl.ID_AreaCT, _afdEdoDataMdl.ID_Capa); /* CREAR ARISTA NODO_ACTUAL UA --> CT */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(_afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion, _afdEdoDataMdl.FechaRecepcion); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.SI, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = _afdEdoDataMdl.FechaRecepcion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoCT.nodclave, nodorigen = _afdEdoDataMdl.AFDnodoActMdl.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, _afdEdoDataMdl.FechaRecepcion, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); //////GrabarDocumentos(aristaMdl.ariclave); return(true); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_calcularPlazoNeg == null) { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); } Dictionary <string, object> dicParam = new Dictionary <string, object>(); dicParam.Add(DButil.SIT_SOL_SEGUIMIENTO_COL.SOLCLAVE, _afdEdoDataMdl.solClave); dicParam.Add(DButil.SIT_SOL_SEGUIMIENTO_COL.PRCCLAVE, Constantes.ProcesoTipo.SOLICITUD); _afdEdoDataMdl.AFDseguimientoMdl = _segDao.dmlSelectSeguimientoPorID(dicParam) as SIT_SOL_SEGUIMIENTO; _afdEdoDataMdl.AFDnodoActMdl = (SIT_RED_NODO)_nodoDao.dmlSelectNodoID(_afdEdoDataMdl.AFDseguimientoMdl.segultimonodo); _afdEdoDataMdl.ID_Capa = _afdEdoDataMdl.AFDnodoActMdl.nodcapa + 1; _afdEdoDataMdl.rtpclave = Constantes.Respuesta.RECEPCION_INFO_ADICIONAL; /* CREAR UN NUEVO SEGUIMIENTO */ SIT_SOL_SEGUIMIENTO solSegMdl = new SIT_SOL_SEGUIMIENTO { repclave = Constantes.Respuesta.SIN_RESPUESTA, segfecestimada = _afdEdoDataMdl.ID_FecEstimada, segultimonodo = 0, segfecini = _afdEdoDataMdl.FechaRecepcion, afdclave = _afdEdoDataMdl.ID_ClaAfd, segedoproceso = AfdConstantes.PROCESO_ESTADO.EN_EJECUCION, prcclave = Constantes.ProcesoTipo.ACLARACION, segfeccalculo = new DateTime(), segdiasnolab = 0, segmultiple = AfdConstantes.MULTIPLE.NO, segfecfin = new DateTime(), segfecamp = new DateTime(), segsemaforocolor = 0, segdiassemaforo = 0, solclave = _afdEdoDataMdl.solClave, usrclave = _afdEdoDataMdl.usrClaveOrigen }; _segDao.dmlAgregar(solSegMdl); // CREAR NODO UT-RECIBIR_SOLICITUD SIT_RED_NODO nodoUT = new SIT_RED_NODO { prcclave = Constantes.ProcesoTipo.ACLARACION, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUT, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = Constantes.NodoEstado.INDEFINIDO, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoUT); nodoUT.nodclave = _nodoDao.iSecuencia; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(_afdEdoDataMdl.FechaRecepcion, DateTime.Now); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.NO, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = _afdEdoDataMdl.FechaRecepcion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoUT.nodclave, nodorigen = _afdEdoDataMdl.AFDnodoActMdl.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; // NODO ACTUAL EL NUEVO CREADO PARA PROCESAR EL SIGUIENTE _afdEdoDataMdl.AFDnodoActMdl = nodoUT; // ACTUALIZAR EL REGISTRO DE LA SOLICICTUD CON UNA ACLARACION _afdEdoDataMdl.solicitud.solfecacl = _afdEdoDataMdl.FechaRecepcion; _afdEdoDataMdl.solicitud.prcclave = Constantes.ProcesoTipo.ACLARACION; SIT_SOL_SOLICITUDDao solDao = new SIT_SOL_SOLICITUDDao(_cn, _transaction, _sDataAdapter); solDao.dmlEditar(_afdEdoDataMdl.solicitud); return(_afdEdoDataMdl); }
public Object Accion(Object oDatos) { Object oResultado = null; _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; // ESTE ESTADO TIENE DOS ETAPAS 1) CREAR SU PROPIO ESTADO 2) TURNAR LA ACLARACION int iTipoProceso = 0; int?iClaveProceso = _afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.solicitud != null) { if (_afdEdoDataMdl.solicitud.solfecacl == DateTime.MinValue) { iTipoProceso = Constantes.ProcesoTipo.SOLICITUD; } else { iTipoProceso = Constantes.ProcesoTipo.ACLARACION; } _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.NO; // CREAR MI PROPIO ESTADO // BUSCAR DATOS PARA PROCESAR LA ACCION Dictionary <string, object> dicParam = new Dictionary <string, object>(); dicParam.Add(DButil.SIT_SOL_SOLICITUD_COL.SOLCLAVE, _afdEdoDataMdl.solicitud.solclave); dicParam.Add(DButil.SIT_SOL_SOLICITUD_COL.PRCCLAVE, iTipoProceso); _afdEdoDataMdl.AFDseguimientoMdl = _segDao.dmlSelectSeguimientoPorID(dicParam) as SIT_SOL_SEGUIMIENTO; if (_afdEdoDataMdl.AFDseguimientoMdl.segultimonodo > 0) { _afdEdoDataMdl.AFDnodoActMdl = _nodoDao.dmlSelectNodoID(_afdEdoDataMdl.AFDseguimientoMdl.segultimonodo) as SIT_RED_NODO; _afdEdoDataMdl.ID_Capa = _afdEdoDataMdl.AFDnodoActMdl.nodcapa + 1; _afdEdoDataMdl.rtpclave = Constantes.Respuesta.RECURSO_REVISION; //////_afdEdoDataMdl.dicAuxRespuesta[ProcesoGralDao.PARAM_LISTA_TURNAR] //////if (_afdEdoDataMdl.lstPersonasTurnar.Count > 1) ////// iMultiple = 1; /* CREAR UN NUEVO SEGUIMIENTO */ SIT_SOL_SEGUIMIENTO solSegMdl = new SIT_SOL_SEGUIMIENTO(repclave: Constantes.Respuesta.SIN_RESPUESTA, segfecestimada: _afdEdoDataMdl.ID_FecEstimada, segultimonodo: 0, segfecini: new DateTime(), afdclave: _afdEdoDataMdl.ID_ClaAfd, segedoproceso: AfdConstantes.PROCESO_ESTADO.EN_EJECUCION, prcclave: Constantes.ProcesoTipo.RECURSO_REVISION, segfeccalculo: new DateTime(), segdiasnolab: 0, segmultiple: _afdEdoDataMdl.AFDseguimientoMdl.segmultiple, segfecfin: new DateTime(), segfecamp: new DateTime(), segsemaforocolor: 0, segdiassemaforo: 0, solclave: _afdEdoDataMdl.solClave, usrclave: _afdEdoDataMdl.usrClaveOrigen); ////DEBEMSO DE CALCULAR EL SEGUIMINETO.. ////afdEdoDataMdl = afdDatos; ////CalcularSeguimiento(afdEdoDataMdl.solicitud.sotclave, afdDatos.FechaRecepcion); _segDao.dmlAgregar(solSegMdl); //Actualziamos el seguimiento _afdEdoDataMdl.AFDseguimientoMdl = solSegMdl; // CREAR NODO UT-RECIBIR_SOLICITUD SIT_RED_NODO nodoUT = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUT, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = Constantes.NodoEstado.UT_RECIBIR_SOLICITUD, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoUT); nodoUT.nodclave = _nodoDao.iSecuencia; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ if (_calcularPlazoNeg == null) { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); } int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(_afdEdoDataMdl.FechaRecepcion, DateTime.Now); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = DateTime.Now, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoUT.nodclave, nodorigen = _afdEdoDataMdl.AFDnodoActMdl.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; // Guardamos los datos del recurso de revision _afdEdoDataMdl.recRevisionMdl.repclave = aristaMdl.ariclave; new SIT_RESP_RREVISIONDao(_cn, _transaction, _sDataAdapter).dmlAgregar(_afdEdoDataMdl.recRevisionMdl); ////////////Grabamos los documentso en al nueva arista ////////////GrabarDocumentos(aristaMdl.ariclave); ////////////Borramos los docuemntso apra que no se graben nuevamente... ////////////if (_afdEdoDataMdl.lstDocContenidoMdl != null) //////////// _afdEdoDataMdl.lstDocContenidoMdl.Clear(); // ACTUALIZAR EL REGISTRO DE LA SOLICICTUD CON UNA ACLARACION _afdEdoDataMdl.solicitud.solfecrecrev = _afdEdoDataMdl.FechaRecepcion; _afdEdoDataMdl.solicitud.prcclave = Constantes.ProcesoTipo.RECURSO_REVISION; new SIT_SOL_SOLICITUDDao(_cn, _transaction, _sDataAdapter).dmlEditar(_afdEdoDataMdl.solicitud); // AHORA QUE SE HA CREADO EL NODO NUEVO ES NECESARIO CREAR LOS TURNOS.. // Y SE EJECUTA LA FUNCION BASE List <Tuple <int, string, int> > lstPersonasTurnar = _afdEdoDataMdl.dicAuxRespuesta[ProcesoGralDao.PARAM_LISTA_TURNAR] as List <Tuple <int, string, int> >; foreach (Tuple <int, string, int> areaTurnar in lstPersonasTurnar) { _afdEdoDataMdl.AFDnodoActMdl = nodoUT; _afdEdoDataMdl.ID_AreaDestino = Convert.ToInt32(areaTurnar.Item1); _afdEdoDataMdl.Observacion = areaTurnar.Item2; _afdEdoDataMdl.ID_PerfilDestino = areaTurnar.Item3; _afdEdoDataMdl.rtpclave = Constantes.Respuesta.TURNAR; _afdEdoDataMdl.ID_EstadoSiguiente = Constantes.NodoEstado.INAI_RECURSO_REVISION; oResultado = AccionBase(true); } } else { return(false); } } return(true); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.CORREGIR) { // CREAR NODO UT y MARCARLO COMO FINALIZADO SIT_RED_NODO nodoUT = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUT, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.FINALIZADO, nodclave = Constantes.NodoEstado.INDEFINIDO, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoUT); nodoUT.nodclave = _nodoDao.iSecuencia; // CREAR ARISTA CT ( Sesionar) --(18)--> UT (requerimiento) int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(_afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion, _afdEdoDataMdl.FechaRecepcion); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.NO, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = _afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoUT.nodclave, nodorigen = _afdEdoDataMdl.AFDnodoActMdl.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; // CREAR NODO UA PARA REQUERIMIENTO SIT_RED_NODO nodoUA = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaDestino, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = Constantes.NodoEstado.INDEFINIDO, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoUA); nodoUA.nodclave = _nodoDao.iSecuencia; // CREAR ARISTA UT ( requerimiento) --(18)--> UA (requerimiento) aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoUA.nodfeccreacion, _afdEdoDataMdl.FechaRecepcion); SIT_RED_ARISTA aristaNvoMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.NO, aridiasnat = 0, aridiaslab = 0, arifecenvio = _afdEdoDataMdl.FechaRecepcion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoUA.nodclave, nodorigen = nodoUT.nodclave }; _redAristaDao.dmlEditar(aristaNvoMdl); /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, nodoUA.nodfeccreacion, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); } else { // Creamos una capa nueva para contestar _afdEdoDataMdl.ID_Capa = _afdEdoDataMdl.ID_Capa + 1; AccionBase(true); /* GUARDAMOS EN EL SEGUIMIENTO LA RESPUESTA INTERNA Y EXTERNA*/ ////////_afdEdoDataMdl.AFDseguimientoMdl.ariclave = _afdEdoDataMdl.ID_ClaAristaActual; ////////_segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); ////////_afdEdoDataMdl.AFDrescomiteMdl.ariclave = _afdEdoDataMdl.ID_ClaAristaActual; //////new SIT_ARISTA_COMITEDao(_cn, _transaction, _sDataAdapter).dmlAgregar(_afdEdoDataMdl.AFDrescomiteMdl); // ACUTALIZAMOS EL HITO SIT_RED_ARISTA aristaHito = new SIT_RED_ARISTA(); aristaHito.ariclave = _afdEdoDataMdl.ID_ClaAristaActual; aristaHito.arihito = Constantes.RespuestaHito.SI; _redAristaDao.dmlUpdateAristaHito(aristaHito); } return(true); }
public Object Accion(Object oDatos) { // MODIFICAR SE DEBE DE REGRESAR LA SOLICITUD AL ÁREA ORIGINAL SIT_RED_NODO nodoActual = null; SIT_RED_ARISTA aristaMdl = null; Boolean bResultado; _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; SIT_RED_NODO nodoAnterior = _afdEdoDataMdl.AFDnodoActMdl; // Finalizamos el proceso int?iClaveProceso = _afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.AFDseguimientoMdl.repclave != Constantes.Respuesta.NOTIFICACION_PRORROGA) { _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.SI; } bResultado = AccionBase(true); // obtenemos el ultimo nodo de la respuesta if (_afdEdoDataMdl.AFDseguimientoMdl.repclave == Constantes.Respuesta.NOTIFICACION_PRORROGA) { //actualizar el seguimiento para la fecha de notificaion _afdEdoDataMdl.AFDseguimientoMdl.segfecamp = _afdEdoDataMdl.FechaRecepcion; } else { _afdEdoDataMdl.AFDseguimientoMdl.segedoproceso = AfdConstantes.PROCESO_ESTADO.TERMINADO; _afdEdoDataMdl.AFDseguimientoMdl.segultimonodo = _afdEdoDataMdl.AFDnodoActMdl.nodclave; List <Int32> lstOmitir = new List <Int32>(); lstOmitir.Add(_afdEdoDataMdl.ID_AreaCT); lstOmitir.Add(_afdEdoDataMdl.ID_AreaUT); lstOmitir.Add(_afdEdoDataMdl.ID_AreaUTN); lstOmitir.Add(_afdEdoDataMdl.ID_AreaInai); // El perfil y el area tienen el mismo valor.. Dictionary <string, object> dicParam = new Dictionary <string, object>(); dicParam.Add(DButil.SIT_RED_NODO_COL.SOLCLAVE, _afdEdoDataMdl.solClave); dicParam.Add(DButil.SIT_RED_NODO_COL.PRCCLAVE, _afdEdoDataMdl.solicitud.prcclave); dicParam.Add(SIT_RED_NODODao.COL_AREAS_EXCLUIR, lstOmitir); DataTable dtAreasTurnar = _nodoDao.dmlSelectNodosGrafo(dicParam) as DataTable; int[] aiDias; foreach (DataRow drArea in dtAreasTurnar.Rows) { nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = Convert.ToInt32(drArea["ka_claarea"]), nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = _afdEdoDataMdl.ID_EstadoMensaje, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnterior.nodfeccreacion, nodoActual.nodfeccreacion); aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.NO, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnterior.nodclave }; _redAristaDao.dmlEditar(aristaMdl); } } _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); // dejamos al nodo de sistema terminado.. _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoActMdl); return(bResultado); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); SIT_RED_NODO nodoActual = null; SIT_RED_ARISTA aristaMdl = null; SIT_RED_NODO nodoAnterior = _afdEdoDataMdl.AFDnodoActMdl; int iEdoSig = _afdEdoDataMdl.ID_EstadoSiguiente; // SiguienteEstado(afdEdoDataMdl.rptclave); _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoActMdl); _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.NO; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.AMPLIACION_PLAZO) { // CREAR NUEVO NODO ACTUAL nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaUTN, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nedclave = iEdoSig, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nodclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlEditar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnterior.nodfeccreacion, nodoActual.nodfeccreacion); aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnterior.nodclave }; _redAristaDao.Agregar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; ////////////GrabarDocumentos(aristaMdl.ariclave); // BUSCAR SI EXISTEN OTRAS SOLICITUDES DE AMPLIACION Y CERRARLAS DEBIDO QUE SE AUTORIZO LA AMPLIACION Dictionary <string, object> dicParam = new Dictionary <string, object>(); dicParam.Add(DButil.SIT_RED_NODO_COL.SOLCLAVE, _afdEdoDataMdl.solClave); dicParam.Add(DButil.SIT_RESP_TIPO_COL.RTPCLAVE, Constantes.Respuesta.AMPLIACION_PLAZO); dicParam.Add(DButil.SIT_RED_ARISTA_COL.NODDESTINO, _afdEdoDataMdl.AFDnodoActMdl.nodclave); List <SIT_RED_NODO> lstSIT_RED_NODO = _nodoDao.dmlSelectMdlAmpPendiente(dicParam) as List <SIT_RED_NODO>; foreach (SIT_RED_NODO nodoPendienteMdl in lstSIT_RED_NODO) { nodoPendienteMdl.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(nodoPendienteMdl); aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoPendienteMdl.nodfeccreacion, nodoActual.nodfeccreacion); aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoPendienteMdl.nodclave }; _redAristaDao.dmlAgregar(aristaMdl); ////////GrabarDocumentos(aristaMdl.ariclave); } // GENERAMOS UN MENSAJE A TODAS LAS DEMAS ÁREAS PENDIENTES iEdoSig = dicAccionEstado[Constantes.Respuesta.CREAR_MENSAJE]; List <Int32> lstOmitir = new List <Int32>(); lstOmitir.Add(_afdEdoDataMdl.ID_AreaCT); lstOmitir.Add(_afdEdoDataMdl.ID_AreaUTN); lstOmitir.Add(_afdEdoDataMdl.ID_AreaInai); // El perfil y el area tienen el mismo valor.. dicParam.Add(DButil.SIT_RED_NODO_COL.PRCCLAVE, _afdEdoDataMdl.solicitud.prcclave); dicParam.Add(SIT_RED_NODODao.COL_AREAS_EXCLUIR, lstOmitir); DataTable dtAreasTurnar = _nodoDao.dmlSelectNodosGrafo(dicParam) as DataTable; foreach (DataRow drArea in dtAreasTurnar.Rows) { nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = Convert.ToInt32(drArea["ka_claarea"]), nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = iEdoSig, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnterior.nodfeccreacion, nodoActual.nodfeccreacion); aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnterior.nodclave }; _redAristaDao.dmlAgregar(aristaMdl); } } else { // MANDAMOS UN MENSAJE AL AREA ANTERIOR NOTIFICANDO LA CAUSA iEdoSig = dicAccionEstado[Constantes.RespuestaEstado.NEGAR]; // CREAR NODO ACTUAL nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaDestino, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = iEdoSig, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnterior.nodfeccreacion, nodoActual.nodfeccreacion); aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnterior.nodclave }; _redAristaDao.dmlAgregar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; } return(true); }
protected Boolean AccionBase(bool bAvanzar) { try { SIT_RED_NODO nodoActual = null; _afdEdoDataMdl.AFDnodoOrigen = _afdEdoDataMdl.AFDnodoActMdl; if (bAvanzar == true) { _afdEdoDataMdl.AFDnodoOrigen.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoOrigen); _afdEdoDataMdl.ID_EstadoSiguiente = _afdEdoDataMdl.dicAfdFlujo[_afdEdoDataMdl.ID_EstadoActual].dicAccionEstado[_afdEdoDataMdl.rtpclave]; _afdEdoDataMdl.ID_EstadoActual = _afdEdoDataMdl.ID_EstadoSiguiente; } if (_calcularPlazoNeg == null) { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); } if (_afdEdoDataMdl.AFDnodoOrigen.nodregresar > 0) { nodoActual = _nodoDao.dmlSelectNodoID(_afdEdoDataMdl.AFDnodoOrigen.nodregresar); nodoActual.nodatendido = AfdConstantes.NODO.EN_PROCESO; _nodoDao.dmlUpdateNodoAtendido(nodoActual); } else { nodoActual = new SIT_RED_NODO { prcclave = _afdEdoDataMdl.AFDseguimientoMdl.prcclave, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaDestino, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.EN_PROCESO, nedclave = _afdEdoDataMdl.ID_EstadoActual, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nodclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino, perclave = _afdEdoDataMdl.ID_PerfilDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; } // CREAR NODO ACTUAL // NODO ACTUAL EL NUEVO CREADO _afdEdoDataMdl.AFDnodoActMdl = nodoActual; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(_afdEdoDataMdl.AFDnodoOrigen.nodfeccreacion, nodoActual.nodfeccreacion); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { ariclave = Constantes.General.ID_PENDIENTE, nodorigen = _afdEdoDataMdl.AFDnodoOrigen.nodclave, noddestino = nodoActual.nodclave, arifecenvio = _afdEdoDataMdl.AFDnodoOrigen.nodfeccreacion, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arihito = _afdEdoDataMdl.ID_Hito, rtpclave = _afdEdoDataMdl.rtpclave, solclave = _afdEdoDataMdl.solClave }; _redAristaDao.dmlAgregar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, nodoActual.nodfeccreacion, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); _afdEdoDataMdl.ID_ClaAristaActual = aristaMdl.ariclave; ////////RespMoverSigNodo(_afdEdoDataMdl.AFDnodoOrigen.nodclave, _afdEdoDataMdl.AFDnodoActMdl.nodclave); } catch (Exception ex) { _sMsjError = ex.ToString(); throw new Exception("Error en el método AccionBase " + ex.ToString()); } return(true); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; /// FALTA GRABAR LA RESOLUCION DE LA UA... if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { return(base.AccionBase(true)); } else if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.AMPLIACION_PLAZO) { // SE CREA UN NUEVO FLUJO DE TRABAJO EN PARALELO _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); return(base.AccionBase(false)); } else // DEFINO UNA RESPUESTA { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); // como es una respueta verficamos si existe el nodo siguiente que es la UT. SIT_RED_NODO nodoAnt = _afdEdoDataMdl.AFDnodoActMdl; nodoAnt.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(nodoAnt); SIT_SOL_SEGUIMIENTO solSegBuscar = new SIT_SOL_SEGUIMIENTO(); solSegBuscar.solclave = _afdEdoDataMdl.solClave; solSegBuscar.prcclave = iClaveProceso; SIT_SOL_SEGUIMIENTO segAux = _segDao.dmlSelectID(solSegBuscar); _afdEdoDataMdl.AFDseguimientoMdl.usrclave = segAux.usrclave; _afdEdoDataMdl.ID_EstadoSiguiente = _afdEdoDataMdl.dicAfdFlujo[_afdEdoDataMdl.ID_EstadoActual].dicAccionEstado[_afdEdoDataMdl.rtpclave]; //////// VERIFICAR SI EXISTE EL NODO SIGUIENTE UT, ya que solo puede existir uno... y actualizar su estado.. ya que no lo veo... _afdEdoDataMdl.AFDnodoActMdl = ExisteNodo((int)nodoAnt.solclave, _afdEdoDataMdl.ID_EstadoSiguiente, (int)segAux.usrclave, nodoAnt.nodcapa + 1); if (_afdEdoDataMdl.AFDnodoActMdl == null) { throw new System.ArgumentException("NO EXISTE NODO DE BARRERA", "original"); } _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.EN_PROCESO; _nodoDao.dmlUpdateNodoAtendido(_afdEdoDataMdl.AFDnodoActMdl); /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnt.nodfeccreacion, DateTime.Now); /* EN LA ARISTA SE GUARDA LA RESOLUCION DEL AREA */ SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.SI, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoAnt.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = _afdEdoDataMdl.AFDnodoActMdl.nodclave, nodorigen = nodoAnt.nodclave }; _redAristaDao.dmlAgregar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, DateTime.Now, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); //////GrabarDocumentos(aristaMdl.ariclave); } return(true); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; SIT_RED_NODO nodoAnterior = _afdEdoDataMdl.AFDnodoActMdl; nodoAnterior.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(nodoAnterior); int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; try { if (_calcularPlazoNeg == null) { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); } _afdEdoDataMdl.ID_EstadoActual = _afdEdoDataMdl.ID_EstadoSiguiente; // CREAR NODO ACTUAL SIT_RED_NODO nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaDestino, nodcapa = _afdEdoDataMdl.ID_Capa, nodatendido = AfdConstantes.NODO.FINALIZADO, nodclave = _afdEdoDataMdl.ID_EstadoActual, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; // NODO ACTUAL EL NUEVO CREADO _afdEdoDataMdl.AFDnodoActMdl = nodoActual; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnterior.nodfeccreacion, nodoActual.nodfeccreacion); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = _afdEdoDataMdl.ID_Hito, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnterior.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, nodoActual.nodfeccreacion, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); //////GrabarDocumentos(aristaMdl.ariclave); _afdEdoDataMdl.ID_ClaAristaActual = aristaMdl.ariclave; } catch (Exception ex) { _sMsjError = ex.ToString(); throw new Exception("Error en el método AccionCrearNodoAristaSeg " + ex.ToString()); } return(true); }
public SIT_RED_NODO dmlSelectID(SIT_RED_NODO oDatos) { String sSQL = " SELECT * FROM SIT_RED_NODO WHERE nodclave = :P0 "; return(CrearListaMDL <SIT_RED_NODO>(ConsultaDML(sSQL, oDatos.nodclave) as DataTable)[0]); }
public int dmlBorrar(SIT_RED_NODO oDatos) { String sSQL = " DELETE FROM SIT_RED_NODO WHERE nodclave = :P0 "; return((int)EjecutaDML(sSQL, oDatos.nodclave)); }
public int dmlEditar(SIT_RED_NODO oDatos) { String sSQL = " UPDATE SIT_RED_NODO SET perclave = :P0, nodfeclectura = :P1, nodusrausencia = :P2, usrclave = :P3, prcclave = :P4, solclave = :P5, araclave = :P6, nodcapa = :P7, nodatendido = :P8, nedclave = :P9, nodfeccreacion = :P10, nodregresar = :P11 WHERE nodclave = :P12 "; return((int)EjecutaDML(sSQL, oDatos.perclave, oDatos.nodfeclectura, oDatos.nodusrausencia, oDatos.usrclave, oDatos.prcclave, oDatos.solclave, oDatos.araclave, oDatos.nodcapa, oDatos.nodatendido, oDatos.nedclave, oDatos.nodfeccreacion, oDatos.nodregresar, oDatos.nodclave)); }
public Object Accion(Object oDatos) { // MODIFICAR SE DEBE DE REGRESAR LA SOLICITUD AL ÁREA ORIGINAL Boolean bResultado = false; _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.CORREGIR) { // CREAR NODO UT y MARCARLO COMO FINALIZADO SIT_RED_NODO nodoUTnuevo = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.AFDnodoActMdl.araclave, nodcapa = _afdEdoDataMdl.AFDnodoOrigen.nodcapa, nodatendido = AfdConstantes.NODO.FINALIZADO, nodclave = _afdEdoDataMdl.AFDnodoActMdl.nodclave, nodfeccreacion = _afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoUTnuevo); nodoUTnuevo.nodclave = _nodoDao.iSecuencia; // ACTUALIZAR LA ARISTA CON BASE AL NUEVO NODO UT Dictionary <string, object> dicParam = new Dictionary <string, object>(); SIT_RED_ARISTA aristaMdl = (SIT_RED_ARISTA)_redAristaDao.dmlSelectAristaID(dicParam); aristaMdl.noddestino = nodoUTnuevo.nodclave; aristaMdl.arifecenvio = _afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion; aristaMdl.arihito = Constantes.RespuestaHito.NO; _redAristaDao.dmlEditar(aristaMdl); // ACTUALIZAMOS EL NODO Y CONTINUAMOS.. _afdEdoDataMdl.AFDnodoActMdl = nodoUTnuevo; _afdEdoDataMdl.ID_Capa = nodoUTnuevo.nodcapa; } else if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { // BUSCAR EL NODO Dictionary <string, object> dicParam = new Dictionary <string, object>(); dicParam.Add(DButil.SIT_RED_NODO_COL.SOLCLAVE, _afdEdoDataMdl.solClave); if (_afdEdoDataMdl.solicitud.prcclave == Constantes.ProcesoTipo.SOLICITUD) { dicParam.Add(DButil.SIT_RED_NODOESTADO_COL.NEDCLAVE, Constantes.NodoEstado.UT_RECIBIR_SOLICITUD); } else if (_afdEdoDataMdl.solicitud.prcclave == Constantes.ProcesoTipo.ACLARACION) { // VERIFICAR EL PROCESO dicParam.Add(DButil.SIT_RED_NODOESTADO_COL.NEDCLAVE, Constantes.NodoEstado.UT_RECIBIR_SOLICITUD); } else { // VERIFICAR EL PROCESO dicParam.Add(DButil.SIT_RED_NODOESTADO_COL.NEDCLAVE, Constantes.NodoEstado.UT_RECIBIR_SOLICITUD); // MAS ADELANTE REVISAR EL SEGUNDO RECURSO DE REVISION } dicParam.Add(DButil.SIT_SOL_SEGUIMIENTO_COL.PRCCLAVE, _afdEdoDataMdl.solicitud.prcclave); _afdEdoDataMdl.AFDnodoActMdl = _nodoDao.dmlSelectNodoFolioEstadoPrc(dicParam) as SIT_RED_NODO; _afdEdoDataMdl.ID_Capa = _afdEdoDataMdl.AFDnodoActMdl.nodcapa; } if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.CORREGIR || _afdEdoDataMdl.rtpclave == Constantes.Respuesta.PARA_COMITE || _afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.NO; } else { _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.SI; } base.AccionBase(true); if (_afdEdoDataMdl.rtpclave != Constantes.Respuesta.TURNAR && _afdEdoDataMdl.rtpclave != Constantes.Respuesta.CORREGIR ) { /////////////////&& _afdEdoDataMdl.rtpclave != Constantes.Respuesta.RETURNAR _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); } return(bResultado); }
public Object Accion(Object oDatos) { _afdEdoDataMdl = (AfdEdoDataMdl)oDatos; int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave; if (_calcularPlazoNeg == null) { _calcularPlazoNeg = new CalcularPlazoNeg(_afdEdoDataMdl.dicDiaNoLaboral); } /// FALTA GRABAR LA RESOLUCION DE LA UA... if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.TURNAR) { AccionBase(true); } else { // como es una respueta verficamos si existe el nodo siguiente que es la UT. SIT_RED_NODO nodoAnt = _afdEdoDataMdl.AFDnodoActMdl; nodoAnt.nodatendido = AfdConstantes.NODO.FINALIZADO; _nodoDao.dmlEditar(nodoAnt); // VERIFICAR SI EXISTE EL NODO SIGUIENTE CT, ya que solo puede existir uno... // el nodo siemrpe existe.... SIT_RED_NODO nodoActual = ExisteNodo((long)nodoAnt.solclave, _afdEdoDataMdl.ID_EstadoSiguiente, _afdEdoDataMdl.ID_AreaDestino, nodoAnt.nodcapa + 1); if (nodoActual == null) { // CREAR NODO ACTUAL nodoActual = new SIT_RED_NODO { prcclave = iClaveProceso, solclave = _afdEdoDataMdl.solClave, araclave = _afdEdoDataMdl.ID_AreaDestino, nodcapa = _afdEdoDataMdl.ID_Capa + 1, nodatendido = AfdConstantes.NODO.EN_PROCESO, nodclave = _afdEdoDataMdl.ID_EstadoSiguiente, nodfeccreacion = _afdEdoDataMdl.FechaRecepcion, nedclave = Constantes.General.ID_PENDIENTE, usrclave = _afdEdoDataMdl.usrClaveDestino }; _nodoDao.dmlAgregar(nodoActual); nodoActual.nodclave = _nodoDao.iSecuencia; } // NODO ACTUAL EL NUEVO CREADO _afdEdoDataMdl.AFDnodoActMdl = nodoActual; /* CREAR ARISTA NODO_ANTERIOR --> NODO_NUEVO */ int[] aiDias = _calcularPlazoNeg.obtenerDiasNaturalesLaborales(nodoAnt.nodfeccreacion, nodoActual.nodfeccreacion); SIT_RED_ARISTA aristaMdl = new SIT_RED_ARISTA { arihito = Constantes.RespuestaHito.SI, aridiasnat = aiDias[CalcularPlazoNeg.DIAS_NATURALES], aridiaslab = aiDias[CalcularPlazoNeg.DIAS_LABORALES], arifecenvio = nodoActual.nodfeccreacion, ariclave = Constantes.General.ID_PENDIENTE, noddestino = nodoActual.nodclave, nodorigen = nodoAnt.nodclave }; _redAristaDao.dmlEditar(aristaMdl); aristaMdl.ariclave = _redAristaDao.iSecuencia; /* ACTUALIZAR EL SEGUIMIENTO */ _afdEdoDataMdl.AFDseguimientoMdl = _calcularPlazoNeg.CalcularSeguimiento((int)_afdEdoDataMdl.solicitud.sotclave, nodoActual.nodfeccreacion, _afdEdoDataMdl.lstProcesoPlazos, _afdEdoDataMdl.AFDseguimientoMdl); _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl); ////////GrabarDocumentos(aristaMdl.ariclave); } return(true); }