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