Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        public int dmlUpdConcluirSeg(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " UPDATE SIT_SOL_SEGUIMIENTO "
                          + " SET  repclave = :P0, segultimonodo = :P1, segfecfin = :P2, segedoproceso = :P3 "
                          + " WHERE  prcclave = :P4 AND solclave = :P5 ";

            return((int)EjecutaDML(sSQL, oDatos.repclave, oDatos.segultimonodo, oDatos.segfecfin, oDatos.segedoproceso, oDatos.prcclave, oDatos.solclave));
        }
Esempio n. 3
0
        public int dmlUpdAmpliacionSeg(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " UPDATE SIT_SOL_SEGUIMIENTO "
                          + " SET  segfecamp = :P0 "
                          + " WHERE  prcclave = :P1 AND solclave = :P2 ";

            return((int)EjecutaDML(sSQL, oDatos.segfecamp, oDatos.prcclave, oDatos.solclave));
        }
Esempio n. 4
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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        public SIT_SOL_SEGUIMIENTO CalcularSeguimiento(int iTipoSolicitud, DateTime dtFechaFin, List <SIT_SOL_PROCESOPLAZOS> lstProcesoPlazo, SIT_SOL_SEGUIMIENTO seguimientoMdl)
        {
            SIT_SOL_PROCESOPLAZOS prcPlzActual = null;
            DateTime FecInicio  = new DateTime(seguimientoMdl.segfecini.Ticks);
            Int32    iVerde     = 0;
            Int32    iAmarillo  = 0;
            Int32    iTipoPlazo = 0;

            if (seguimientoMdl.segfecamp == DateTime.MinValue)
            {
                iTipoPlazo = Constantes.ProcesoTiempo.NO_AMPLIACION;
            }
            else
            {
                iTipoPlazo = Constantes.ProcesoTiempo.AMPLIACION;
            }

            foreach (SIT_SOL_PROCESOPLAZOS procesoPlazo in lstProcesoPlazo)
            {
                if (procesoPlazo.prcclave == seguimientoMdl.prcclave &&
                    procesoPlazo.sotclave == iTipoSolicitud &&
                    procesoPlazo.pczclave == iTipoPlazo)
                {
                    prcPlzActual = procesoPlazo;
                    break;
                }
            }

            // CALCULAR EL TIEMPO POR LEY
            int[] iDiasNatLab = obtenerDiasNaturalesLaborales(seguimientoMdl.segfecini, dtFechaFin);
            seguimientoMdl.segdiasnolab    = iDiasNatLab[DIAS_NATURALES] - iDiasNatLab[DIAS_LABORALES];
            seguimientoMdl.segdiassemaforo = iDiasNatLab[DIAS_LABORALES];

            iVerde    = prcPlzActual.pczverde;
            iAmarillo = prcPlzActual.pczamarillo;

            if (seguimientoMdl.segdiassemaforo <= iVerde)
            {
                seguimientoMdl.segsemaforocolor = Constantes.Semaforo.SOLICITUD_SEMAFORO_IVERDE;
            }

            else if (seguimientoMdl.segdiassemaforo > iVerde && seguimientoMdl.segdiassemaforo <= iAmarillo)
            {
                seguimientoMdl.segsemaforocolor = Constantes.Semaforo.SOLICITUD_SEMAFORO_IAMARILLO;
            }

            else
            {
                seguimientoMdl.segsemaforocolor = Constantes.Semaforo.SOLICITUD_SEMAFORO_IROJO;
            }


            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            // Mover este calculo cuando se crea la solicitud. (+1 cuando comienza la soliciutd)
            seguimientoMdl.segfecestimada = ObtenerFechaFinal(seguimientoMdl.segfecini, prcPlzActual.pczplazo);

            seguimientoMdl.segfeccalculo = DateTime.Now;


            // AQUI DEBO DE ENVAIR EL CORREO A TODOS LOS INVOLUCRADOS...
            // AQUI DEBO DE ENVAIR EL CORREO A TODOS LOS INVOLUCRADOS...
            // AQUI DEBO DE ENVAIR EL CORREO A TODOS LOS INVOLUCRADOS...


            return(seguimientoMdl);
        }
        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);
        }
Esempio n. 9
0
        public SIT_SOL_SEGUIMIENTO dmlSelectID(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " SELECT * FROM SIT_SOL_SEGUIMIENTO WHERE  prcclave = :P0 AND solclave = :P1 ";

            return(CrearListaMDL <SIT_SOL_SEGUIMIENTO>(ConsultaDML(sSQL, oDatos.prcclave, oDatos.solclave) as DataTable)[0]);
        }
Esempio n. 10
0
        public int dmlBorrar(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " DELETE FROM SIT_SOL_SEGUIMIENTO WHERE  prcclave = :P0 AND solclave = :P1 ";

            return((int)EjecutaDML(sSQL, oDatos.prcclave, oDatos.solclave));
        }
Esempio n. 11
0
        public int dmlEditar(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " UPDATE SIT_SOL_SEGUIMIENTO SET  repclave = :P0, usrclave = :P1, segfecestimada = :P2, segultimonodo = :P3, afdclave = :P4, segedoproceso = :P5, segfeccalculo = :P6, segdiasnolab = :P7, segmultiple = :P8, segfecfin = :P9, segfecamp = :P10, segsemaforocolor = :P11, segdiassemaforo = :P12, segfecini = :P13 WHERE  prcclave = :P14 AND solclave = :P15 ";

            return((int)EjecutaDML(sSQL, oDatos.repclave, oDatos.usrclave, oDatos.segfecestimada, oDatos.segultimonodo, oDatos.afdclave, oDatos.segedoproceso, oDatos.segfeccalculo, oDatos.segdiasnolab, oDatos.segmultiple, oDatos.segfecfin, oDatos.segfecamp, oDatos.segsemaforocolor, oDatos.segdiassemaforo, oDatos.segfecini, oDatos.prcclave, oDatos.solclave));
        }
Esempio n. 12
0
        public Object dmlAgregar(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sSQL = " INSERT INTO SIT_SOL_SEGUIMIENTO( repclave, usrclave, segfecestimada, segultimonodo, afdclave, segedoproceso, prcclave, segfeccalculo, segdiasnolab, segmultiple, segfecfin, segfecamp, segsemaforocolor, segdiassemaforo, segfecini, solclave) VALUES (  :P0, :P1, :P2, :P3, :P4, :P5, :P6, :P7, :P8, :P9, :P10, :P11, :P12, :P13, :P14, :P15) ";

            return(EjecutaDML(sSQL, oDatos.repclave, oDatos.usrclave, oDatos.segfecestimada, oDatos.segultimonodo, oDatos.afdclave, oDatos.segedoproceso, oDatos.prcclave, oDatos.segfeccalculo, oDatos.segdiasnolab, oDatos.segmultiple, oDatos.segfecfin, oDatos.segfecamp, oDatos.segsemaforocolor, oDatos.segdiassemaforo, oDatos.segfecini, oDatos.solclave));
        }
Esempio n. 13
0
        public object dmlUpdMultiple(SIT_SOL_SEGUIMIENTO oDatos)
        {
            String sqlQuery = " UPDATE SIT_SOL_SEGUIMIENTO SET segmultiple = 1 WHERE  prcclave = :P0 AND solclave = :P1 ";

            return(EjecutaDML(sqlQuery, oDatos.prcclave, oDatos.solclave));
        }