Ejemplo n.º 1
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 SIT_SOL_PROCESOPLAZOS dmlSelectID(SIT_SOL_PROCESOPLAZOS oDatos)
        {
            String sSQL = " SELECT * FROM SIT_SOL_PROCESOPLAZOS WHERE  pczclave = :P0 AND prcclave = :P1 AND sotclave = :P2 ";

            return(CrearListaMDL <SIT_SOL_PROCESOPLAZOS>(ConsultaDML(sSQL, oDatos.pczclave, oDatos.prcclave, oDatos.sotclave) as DataTable)[0]);
        }
        public int dmlEditar(SIT_SOL_PROCESOPLAZOS oDatos)
        {
            String sSQL = " UPDATE SIT_SOL_PROCESOPLAZOS SET  pczamarillo = :P0, pczverde = :P1, pczplazo = :P2 WHERE  pczclave = :P3 AND prcclave = :P4 AND sotclave = :P5 ";

            return((int)EjecutaDML(sSQL, oDatos.pczamarillo, oDatos.pczverde, oDatos.pczplazo, oDatos.pczclave, oDatos.prcclave, oDatos.sotclave));
        }
        public int dmlBorrar(SIT_SOL_PROCESOPLAZOS oDatos)
        {
            String sSQL = " DELETE FROM SIT_SOL_PROCESOPLAZOS WHERE  pczclave = :P0 AND prcclave = :P1 AND sotclave = :P2 ";

            return((int)EjecutaDML(sSQL, oDatos.pczclave, oDatos.prcclave, oDatos.sotclave));
        }
        public Object dmlAgregar(SIT_SOL_PROCESOPLAZOS oDatos)
        {
            String sSQL = " INSERT INTO SIT_SOL_PROCESOPLAZOS( pczclave, sotclave, pczamarillo, pczverde, pczplazo, prcclave) VALUES (  :P0, :P1, :P2, :P3, :P4, :P5) ";

            return(EjecutaDML(sSQL, oDatos.pczclave, oDatos.sotclave, oDatos.pczamarillo, oDatos.pczverde, oDatos.pczplazo, oDatos.prcclave));
        }