コード例 #1
0
        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);
        }
コード例 #2
0
        public Boolean dmlSelectRespExiste(SIT_RED_NODORESP nodoResp)
        {
            String sSQL = " SELECT * FROM SIT_RED_NODORESP WHERE repClave = :P0 AND nodclave = :P1 AND sdoclave = :P2 ";
            List <SIT_RED_NODORESP> lstNodoResp = CrearListaMDL <SIT_RED_NODORESP>(
                ConsultaDML(sSQL, nodoResp.repclave, nodoResp.nodclave, nodoResp.sdoclave) as DataTable);

            if (lstNodoResp.Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
        protected int ResponderSol()
        {
            SIT_RED_NODORESP oNodoResp = _redNodoRespDao.dmlSelectRespUnica(_afdEdoDataMdl.AFDnodoActMdl.nodclave);

            _afdEdoDataMdl.ID_Hito        = Constantes.RespuestaHito.NO;
            _afdEdoDataMdl.ID_AreaDestino = _afdEdoDataMdl.ID_AreaInai;
            AccionBase(true);

            //RespMoverSigNodo(Int64 iNodoOrigen, Int64 iNodoDestino, int iRespEdoAct, int iRespEdoNvo)

            // ACTUALIZAMOS LOS DATOS DEL SEGUIMIENTO
            _afdEdoDataMdl.AFDseguimientoMdl.segfecfin     = _afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion;
            _afdEdoDataMdl.AFDseguimientoMdl.segultimonodo = _afdEdoDataMdl.AFDnodoActMdl.nodclave;
            _afdEdoDataMdl.AFDseguimientoMdl.segedoproceso = AfdConstantes.PROCESO_ESTADO.TERMINADO;
            _afdEdoDataMdl.AFDseguimientoMdl.usrclave      = _afdEdoDataMdl.usrClaveOrigen;

            // SE ACTUALZIA LA ARISTA DE RESPUESTA...
            _afdEdoDataMdl.AFDseguimientoMdl.repclave = oNodoResp.repclave;
            _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl);

            // FINALIZAMOS EL NODOD CREADO CON LA RESPUESTA
            _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.FINALIZADO;
            return(_nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoActMdl));
        }
コード例 #4
0
        protected Boolean RespMoverSigNodo(Int64 iNodoOrigen, Int64 iNodoDestino, int iRespEdoAct, int iRespEdoNvo)
        {
            try
            {
                List <SIT_RED_NODORESP> lstResp = new List <SIT_RED_NODORESP>();
                lstResp = _redNodoRespDao.dmlSelectObtenerRespNodo(iNodoOrigen, Constantes.RespuestaEstado.PROPUESTA);
                foreach (SIT_RED_NODORESP nodoRedAnt in lstResp)
                {
                    SIT_RED_NODORESP nodoRespAct = new SIT_RED_NODORESP
                    {
                        nodclave = iNodoDestino, repclave = nodoRedAnt.repclave, sdoclave = iRespEdoNvo
                    };
                    _redNodoRespDao.dmlAgregar(nodoRespAct);
                    nodoRedAnt.sdoclave = iRespEdoAct;
                    _redNodoRespDao.dmlEditar(nodoRedAnt);
                }
            }

            catch (Exception exp)
            {
                throw new Exception("Error al mover las respuestas " + exp.Message);
            }
            return(true);
        }
コード例 #5
0
        public SIT_RED_NODORESP dmlSelectID(SIT_RED_NODORESP oDatos)
        {
            String sSQL = " SELECT * FROM SIT_RED_NODORESP WHERE  nodclave = :P0 AND repclave = :P1 ";

            return(CrearListaMDL <SIT_RED_NODORESP>(ConsultaDML(sSQL, oDatos.nodclave, oDatos.repclave) as DataTable)[0]);
        }
コード例 #6
0
        public int dmlBorrar(SIT_RED_NODORESP oDatos)
        {
            String sSQL = " DELETE FROM SIT_RED_NODORESP WHERE  nodclave = :P0 AND repclave = :P1 ";

            return((int)EjecutaDML(sSQL, oDatos.nodclave, oDatos.repclave));
        }
コード例 #7
0
        public int dmlEditar(SIT_RED_NODORESP oDatos)
        {
            String sSQL = " UPDATE SIT_RED_NODORESP SET  sdoclave = :P0 WHERE  nodclave = :P1 AND repclave = :P2 ";

            return((int)EjecutaDML(sSQL, oDatos.sdoclave, oDatos.nodclave, oDatos.repclave));
        }
コード例 #8
0
        public Object dmlAgregar(SIT_RED_NODORESP oDatos)
        {
            String sSQL = " INSERT INTO SIT_RED_NODORESP( sdoclave, repclave, nodclave) VALUES (  :P0, :P1, :P2) ";

            return(EjecutaDML(sSQL, oDatos.sdoclave, oDatos.repclave, oDatos.nodclave));
        }
コード例 #9
0
        /*
         * CONSULTAS PARAS LAS RESPUESTAS
         */

        public List <SIT_RESP_RESPUESTA> dmlSelectRespEdo(SIT_RED_NODORESP nodoResp)
        {
            String sSQL = " select * from SIT_RESP_RESPUESTA WHERE repclave in ( select repclave from SIT_RED_NODORESP where nodclave = :P0 and sdoclave = :P1)	 ";

            return(CrearListaMDL <SIT_RESP_RESPUESTA>(ConsultaDML(sSQL, nodoResp.nodclave, nodoResp.sdoclave)));
        }
コード例 #10
0
        public Object Accion(Object oDatos)
        {
            _afdEdoDataMdl = (AfdEdoDataMdl)oDatos;
            int iClaveProceso = (int)_afdEdoDataMdl.solicitud.prcclave;


            if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.CORREGIR)
            {
                SIT_RED_NODORESP nodoResp = _afdEdoDataMdl.dicAuxRespuesta[ProcesoGralDao.PARAM_RED_NODORESP] as SIT_RED_NODORESP;
                _redNodoRespDao.dmlEditar(nodoResp);

                //revisar el usuario y el area a donde se dirije el nuevo--.-.
                AccionBase(false);

                _respRespDao = new SIT_RESP_RESPUESTADao(_cn, _transaction, _sDataAdapter);

                Dictionary <SIT_RESP_RESPUESTA, SIT_RESP_DETALLE> dicRespDet = _afdEdoDataMdl.dicAuxRespuesta[ProcesoGralDao.PARAM_DIC_RESP_DETALLE] as Dictionary <SIT_RESP_RESPUESTA, SIT_RESP_DETALLE>;
                foreach (KeyValuePair <SIT_RESP_RESPUESTA, SIT_RESP_DETALLE> entry in dicRespDet)
                {
                    Int64 irespClave = (long)_respRespDao.dmlAgregar(entry.Key);
                    SIT_RESP_DETALLEDao oRespDetalle = new SIT_RESP_DETALLEDao(_cn, _transaction, _sDataAdapter);
                    entry.Value.repclave = irespClave;
                    oRespDetalle.dmlAgregar(entry.Value);

                    // al nuevo nodo le agregamos el esado..
                    SIT_RED_NODORESP oNodoRespCorregir = new SIT_RED_NODORESP
                    {
                        repclave = irespClave,
                        nodclave = _afdEdoDataMdl.AFDnodoActMdl.nodclave,
                        sdoclave = Constantes.RespuestaEstado.PROPUESTA
                    };
                    _redNodoRespDao.dmlAgregar(oNodoRespCorregir);
                }
            }


            ////    long repClave = (long)prcGralDao.InsertarRegistro(_afdEdoDataMdl.dicAuxRespuesta);

            ////    _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.NO;
            ////    _afdEdoDataMdl.ID_AreaDestino = _afdEdoDataMdl.ID_AreaInai;
            ////    AccionBase(true);

            ////    // ACTUALIZAMOS LOS DATOS DEL SEGUIMIENTO
            ////    _afdEdoDataMdl.AFDseguimientoMdl.segfecfin = _afdEdoDataMdl.AFDnodoActMdl.nodfeccreacion;
            ////    _afdEdoDataMdl.AFDseguimientoMdl.segultimonodo = _afdEdoDataMdl.AFDnodoActMdl.nodclave;
            ////    _afdEdoDataMdl.AFDseguimientoMdl.segedoproceso = AfdConstantes.PROCESO_ESTADO.TERMINADO;
            ////    _afdEdoDataMdl.AFDseguimientoMdl.usrclave = _afdEdoDataMdl.usrClaveOrigen;

            ////    // SE ACTUALZIA LA ARISTA DE RESPUESTA...
            ////    _afdEdoDataMdl.AFDseguimientoMdl.repclave = repClave;
            ////    _segDao.dmlEditar(_afdEdoDataMdl.AFDseguimientoMdl);

            ////    // FINALIZAMOS EL NODOD CREADO CON LA RESPUESTA
            ////    _afdEdoDataMdl.AFDnodoActMdl.nodatendido = AfdConstantes.NODO.FINALIZADO;
            ////    return _nodoDao.dmlEditar(_afdEdoDataMdl.AFDnodoActMdl);
            ////}
            ////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 nodoNvoUTanalizar = ExisteNodo(_afdEdoDataMdl.solClave, Constantes.NodoEstado.UT_SOLICITUD_RECIBIR, (int)segAux.usrclave, _afdEdoDataMdl.ID_Capa + 1);

            ////    // BUSCAR QUIEN ATIENDE LA SOLICUTD.... PARA BUSCAR LE NODO...
            ////    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,
            ////            nedclave = Constantes.NodoEstado.UT_SOLICITUD_RECIBIR,
            ////            nodfeccreacion = _afdEdoDataMdl.FechaRecepcion,
            ////            nodclave = Constantes.General.ID_PENDIENTE,
            ////            usrclave = segAux.usrclave,
            ////            perclave = Constantes.Perfil.UT
            ////        };
            ////        _nodoDao.dmlAgregar(nodoNvoUTanalizar);
            ////    }

            ////    // Aqui me falta agregar el proceso Gral Dao..
            ////    long iRespClave = prcGralDao.AdmRegistro(_afdEdoDataMdl.dicAuxRespuesta);
            ////    _afdEdoDataMdl.repClave = iRespClave;

            ////    return Turnar(_afdEdoDataMdl);
            ////}
            ////else if (_afdEdoDataMdl.rtpclave == Constantes.Respuesta.ASIGNAR)
            ////{
            ////    _afdEdoDataMdl.ID_EstadoSiguiente = _afdEdoDataMdl.dicAfdFlujo[_afdEdoDataMdl.ID_EstadoActual].dicAccionEstado[_afdEdoDataMdl.rtpclave];
            ////    _afdEdoDataMdl.ID_Hito = Constantes.RespuestaHito.NO;


            ////    long repClave = (long)prcGralDao.AdmRegistro(_afdEdoDataMdl.dicAuxRespuesta);

            ////    // ACTUALIZAMOS QUE PERSONA LE VA A DAR SEGUIMIENTO
            ////    _afdEdoDataMdl.AFDseguimientoMdl.usrclave = _afdEdoDataMdl.usrClaveDestino;
            ////    _afdEdoDataMdl.ID_AreaDestino = _afdEdoDataMdl.ID_AreaUT;
            ////    AccionBase(true);
            ////}

            return(0);
        }