public DocumentoResponse Save(DocumentoRequest request)
        {
            var errors = _documentoValidacion.ValidarNuevoDocumentoInterno(request);

            if (errors.Any())
            {
                xHelper.AbortWithValidationErrors(errors);
            }

            Modelo.documento documento = null;
            try
            {
                _uow.BeginTransaction();

                request.indicativo_oficio = _contadorProceso.EjecutarRegistrarInterno(
                    request.year,
                    request.id_clase_documento_interno,
                    request.username);
                StatusResponse resultDoc = _documentoInternoProceso.EjecutaRegistrar(request);
                documento = (Modelo.documento)resultDoc.Value;

                _uow.Commit();
            }
            catch (Exception e)
            {
                _uow.Rollback();
                xHelper.AbortWithInternalError();
            }
            return(new DocumentoResponse
            {
                indicativo_oficio = documento.INDICATIVO_OFICIO,
                id_documento = documento.ID_DOCUMENTO
            });
        }
Beispiel #2
0
        public DocumentoResponse Save(DocumentoRequest request)
        {
            var errors = _documentoValidacion.ValidarNuevoDocumentoTupa(request);

            if (errors.Any())
            {
                xHelper.AbortWithValidationErrors(errors);
            }

            Modelo.documento documento = null;

            try
            {
                _uow.BeginTransaction();
                request.num_tram_documentario = _contadorProceso.EjecutarRegistrarExterno(
                    request.year,
                    request.username,
                    request.hostname);
                StatusResponse resultDoc = _documentoTupaProceso.EjecutaRegistrar(request);
                documento = (Modelo.documento)resultDoc.Value;
                documento.Fecha_Max_Plazo = _uow.EstablecerFechaMaxPlazo(documento.ID_DOCUMENTO);
                documento.clave           = _uow.FN_GENERA_CLAVE_DOCUMENTO_TRAMITE(documento.NUM_TRAM_DOCUMENTARIO);
                _context.Update(documento);
                _uow.Save();
                _uow.Commit();
            }
            catch (Exception e)
            {
                _uow.Rollback();
                xHelper.AbortWithInternalError();
            }

            return(new DocumentoResponse
            {
                num_tram_documentario = documento.NUM_TRAM_DOCUMENTARIO,
                id_documento = documento.ID_DOCUMENTO
            });
        }
Beispiel #3
0
        protected override StatusResponse Registrar(DocumentoRequest request)
        {
            var sr = new StatusResponse {
                Value = 0
            };

            Modelo.documento documento = null;

            int estado_documento = ESTADO_DOCUMENTO.REGISTRADO;

            if (!CumpleTotalRequisitos(request.requisitos))
            {
                estado_documento = ESTADO_DOCUMENTO.OBSERVADO;
            }

            var tupa = GetTupa(request.id_tup);

            documento = new Modelo.documento
            {
                ASUNTO = tupa.descripcion_format,
                ID_ESTADO_DOCUMENTO = estado_documento,
                ID_TIPO_DOCUMENTO   = TIPO_DOCUMENTO.TUPA,
                ID_TUP     = request.id_tup,
                ID_PERSONA = request.id_persona,
                ID_CLASE_DOCUMENTO_INTERNO = request.id_clase_documento_interno,
                FOLIOS                = request.folios,
                referencia            = request.referencia,
                INDICATIVO_OFICIO     = request.indicativo_oficio,
                OBSERVACIONES         = request.observaciones,
                NUM_TRAM_DOCUMENTARIO = request.num_tram_documentario,
                AUDITMOD              = DateTime.Now,
                FECHA_RECEPCION       = DateTime.Now.ToString("MMM dd yyyy hh:mmtt", CultureInfo.CreateSpecificCulture("en-EN")),
                USUARIO               = request.username
            };

            documento.movimiento_documento.Add(new Modelo.movimiento_documento
            {
                AUDIT_MOD              = DateTime.Now,
                ID_DEPENDENCIA_ORIGEN  = (int)DEPENDENCIA_PRODUCE.OGDA,
                ID_DEPENDENCIA_DESTINO = tupa.codigo_dependencia.Value,
                ID_OFICIO              = null,
                enviado    = 1,
                derivado   = 0,
                finalizado = 0
            });

            _context.Add(documento);
            _uow.Save();
            request.requisitos.Where(x => x.estado_observacion == false).ToList().ForEach(req =>
            {
                AddObservacionRequisito(documento.ID_DOCUMENTO, req);
            });

            //============================================================================
            // INSERTANDO EN TABLA DOCUMENTO_CONT
            //============================================================================

            _uow.InsertarDocumentoCont(documento.ID_DOCUMENTO);

            sr.Value = documento;
            return(sr);
        }
Beispiel #4
0
        protected override StatusResponse Registrar(DocumentoRequest request)
        {
            var sr = new StatusResponse {
                Value = 0
            };

            Modelo.documento documento = null;
            //============================================================================
            // CREANDO NUEVO DOCUMENTO
            //============================================================================
            documento = new Modelo.documento
            {
                ID_ESTADO_DOCUMENTO        = ESTADO_DOCUMENTO.REGISTRADO,
                ID_TIPO_DOCUMENTO          = TIPO_DOCUMENTO.INTERNO,
                ID_CLASE_DOCUMENTO_INTERNO = request.id_clase_documento_interno,
                ASUNTO            = request.asunto,
                FECHA_RECEPCION   = DateTime.Now.ToString("MMM dd yyyy hh:mmtt", CultureInfo.CreateSpecificCulture("en-EN")),
                FOLIOS            = request.folios,
                INDICATIVO_OFICIO = request.indicativo_oficio,
                OBSERVACIONES     = request.observaciones,
                AUDITMOD          = DateTime.Now,
                coddep            = request.codigo_dependencia,
                USUARIO           = request.username
            };
            //============================================================================
            // REGISTRANDO DEPENDENCIAS DESTINOS
            //============================================================================
            //documento.documento_depdestino = new List<Modelo.documento_depdestino>();
            //request.coddeps_destino.ToList().ForEach(x =>
            //{
            //    documento.documento_depdestino.Add(new Modelo.documento_depdestino
            //    {
            //        CODDEP_DESTINO = x.codigo_dependencia,
            //        FLAG = true
            //    });
            //});
            //============================================================================
            // REGISTRANDO LAS ACCIONES
            //============================================================================
            documento.doc_tipo_documento = new List <Modelo.doc_tipo_tratamiento>();
            request.acciones.ForEach(x =>
            {
                documento.doc_tipo_documento.Add(new Modelo.doc_tipo_tratamiento
                {
                    id_tipo_tratamiento = x.id_tipo_tratamiento,
                    dependencia         = null,
                    id = 0
                });
            });
            //============================================================================
            // REGISTRANDO LAS REFERENCIAS
            //============================================================================
            //documento.documento_referencia = new List<Modelo.documento_referencia>();
            //request.referencias.ForEach(x =>
            //{
            //    documento.documento_referencia.Add(new Modelo.documento_referencia
            //    {
            //        TIPO_HOJA_TRAMITE = x.tipo_hoja_tramite,
            //        NUMERO_HOJA_TRAMITE = x.numero_hoja_tramite,
            //        ID_HOJA_TRAMITE = x.id_hoja_tramite,
            //        FLAG = true
            //    });
            //});
            //============================================================================
            // REGISTRANDO LOS ADJUNTOS (ARCHIVOS)
            //============================================================================
            //documento.documento_adjunto = new List<Modelo.documento_adjunto>();
            //request.adjuntos.ForEach(x =>
            //{
            //    documento.documento_adjunto.Add(new Modelo.documento_adjunto
            //    {
            //        NOMBRE_ADJUNTO = x.nombre_adjunto,
            //        MIMETYPE = x.mimetype,
            //        SIZE= x.size,
            //        CODIGO = x.codigo,
            //        FLAG = true
            //    });
            //});
            _context.Add(documento);
            _uow.Save();

            sr.Value = documento;
            return(sr);
        }
Beispiel #5
0
        protected override StatusResponse Registrar(AnexoRequest request)
        {
            var sr = new StatusResponse {
                Value = 0
            };

            //============================================================================
            // OBTENCION DE CORRELATIVO Y DATOS DEL DOCUMENTO
            //============================================================================
            var documento      = _context.Query <Modelo.documento>().Where(x => x.ID_DOCUMENTO == request.id_documento).FirstOrDefault();
            var documento_cont = _context.Query <Modelo.documento_cont>().FirstOrDefault(x => x.ID_DOCUMENTO == request.id_documento);
            var correlativo    = _context.Query <Modelo.anexo>().Where(x => x.ID_DOCUMENTO == request.id_documento && x.ESTADO_ADJUNTO != ESTADO_ADJUNTO.ANULADO).Select(x => x.CORRELATIVO).DefaultIfEmpty(0).Max() + 1;

            //============================================================================
            // OBTENCION DE DEPENDENCIA DESTINO: ULTIMA DEPENDENCIA PENDIENTE
            //============================================================================
            var dependencia_pendiente = _context.Query <Modelo.movimiento_documento>().Include(x => x.dependencia_destino)
                                        .Where(x => x.ID_DOCUMENTO == request.id_documento && x.derivado == 0 && x.finalizado == 0)
                                        .OrderByDescending(x => x.AUDIT_MOD).Select(x => x.dependencia_destino).FirstOrDefault();

            //============================================================================
            // OBTENCION DE PERSONA DESTINO
            //============================================================================
            var trabajador_destino = _context.Query <Modelo.vw_dat_trabajador>()
                                     .Where(x => x.CODIGO_DEPENDENCIA == dependencia_pendiente.CODIGO_DEPENDENCIA && x.ESTADO == "ACTIVO" && x.DIRECTOR == 1).FirstOrDefault();

            //============================================================================
            // INSERCION EN LA TABLA ANEXO
            //============================================================================
            var anexo = new Modelo.anexo
            {
                ID_ANEXO            = _context.Query <Modelo.anexo>().Max(x => x.ID_ANEXO) + 1,
                ID_DOCUMENTO        = request.id_documento.Value,
                ID_TIPO_ANEXO       = request.id_tipo_anexo.Value,
                NUM_DOCUMENTO_ANEXO = $"{documento.NUM_TRAM_DOCUMENTARIO}-{correlativo}",
                ID_PERSONA_DESTINO  = trabajador_destino.CODIGO_TRABAJADOR,
                FOLIOS         = request.folios.Value,
                CONTENIDO      = request.contenido,
                OBSERVACIONES  = string.IsNullOrEmpty(request.observaciones) ? "" : request.observaciones,
                USUARIO        = request.usuario,
                AUDIT_MOD      = DateTime.Now,
                coddep         = request.coddep,
                ID_PERSONA     = request.id_persona,
                CORRELATIVO    = correlativo,
                ESTADO_ADJUNTO = ESTADO_ADJUNTO.ACTIVO
            };

            _context.Add(anexo);
            _uow.Save();

            //======================================================================================================
            // INSERCION EN LA TABLA DOCUMENTO
            //======================================================================================================
            var documento_adjunto = new Modelo.documento
            {
                INDICATIVO_OFICIO          = "ADJUNTO",
                ID_ESTADO_DOCUMENTO        = ESTADO_DOCUMENTO.REGISTRADO,
                ID_TIPO_DOCUMENTO          = TIPO_DOCUMENTO.INTERNO,
                FECHA_RECEPCION            = " ",
                ID_CLASE_DOCUMENTO_INTERNO = CLASE_DOCUMENTO_INTERNO.SIN_DOCUMENTO,
                ASUNTO        = "SE ENVÍA ADJUNTO " + anexo.NUM_DOCUMENTO_ANEXO,
                OBSERVACIONES = "SIN OBSERVACIONES",
                AUDITMOD      = DateTime.Now,
                USUARIO       = request.usuario,
                coddep        = request.coddep
            };

            _context.Add(documento_adjunto);
            _uow.Save();

            //======================================================================================================
            // ACTUALIZACION DEL ID EN LA TABLA ANEXO
            //======================================================================================================
            anexo.ID_DOCUMENTO_ADJUNTO = documento_adjunto.ID_DOCUMENTO;
            _context.Update(anexo);

            //======================================================================================================
            // ACTUALIZACION DEL MOVIMIENTO DOCUMENTO REFERENTE A LA DEPENDENCIA DESTINO
            //======================================================================================================
            _context.Query <Modelo.movimiento_documento>()
            .Where(x =>
                   x.ID_DOCUMENTO == request.id_documento &&
                   x.ID_DEPENDENCIA_DESTINO == dependencia_pendiente.CODIGO_DEPENDENCIA).ToList().ForEach(mov =>
            {
                mov.derivado   = 1;
                mov.finalizado = 0;
                mov.AUDIT_REC  = DateTime.Now;
                _context.Update(mov);
            });

            //======================================================================================================
            // INSERCION DE NUEVO MOVIMIENTO PARA EL DOCUMENTO ADJUNTO
            //======================================================================================================
            var nuevo_movimiento = new Modelo.movimiento_documento
            {
                enviado                = 1,
                ID_DOCUMENTO           = request.id_documento.Value,
                ID_DEPENDENCIA_ORIGEN  = DEPENDENCIA_PRODUCE.OGDA,
                ID_DEPENDENCIA_DESTINO = dependencia_pendiente.CODIGO_DEPENDENCIA,
                ID_OFICIO              = documento_adjunto.ID_DOCUMENTO,
                AUDIT_MOD              = DateTime.Now
            };

            _context.Add(nuevo_movimiento);
            _uow.Save();

            //=====================================================================================================
            // ACTUALIZANDO TABLA DOCUMENTO_CONT
            //=====================================================================================================

            if (documento_cont != null)
            {
                documento_cont.CANT_ADJUNTOS = _context.Query <Modelo.anexo>().Where(x => x.ID_DOCUMENTO == documento.ID_DOCUMENTO && x.ESTADO_ADJUNTO == ESTADO_ADJUNTO.ACTIVO).Count();
                _context.Update(documento_cont);
                _uow.Save();
            }
            else
            {
                _uow.InsertarDocumentoCont(documento.ID_DOCUMENTO);
            }

            sr.Value = anexo;
            return(sr);
        }
Beispiel #6
0
        protected override StatusResponse Registrar(DocumentoRequest request)
        {
            var sr = new StatusResponse {
                Value = 0
            };

            Modelo.documento documento = null;

            //============================================================================
            // CREANDO NUEVO DOCUMENTO
            //============================================================================

            documento = new Modelo.documento
            {
                ID_ESTADO_DOCUMENTO = ESTADO_DOCUMENTO.REGISTRADO,
                ID_TIPO_DOCUMENTO   = TIPO_DOCUMENTO.EXTERNO,
                ID_PERSONA          = request.id_persona,
                ASUNTO = request.asunto,
                ID_CLASE_DOCUMENTO_INTERNO = request.id_clase_documento_interno,
                FOLIOS                = request.folios,
                referencia            = request.referencia,
                INDICATIVO_OFICIO     = request.indicativo_oficio,
                OBSERVACIONES         = request.observaciones,
                NUM_TRAM_DOCUMENTARIO = request.num_tram_documentario,
                AUDITMOD              = DateTime.Now,
                FECHA_RECEPCION       = DateTime.Now.ToString("MMM dd yyyy hh:mmtt", CultureInfo.CreateSpecificCulture("en-EN")),
                USUARIO               = request.username
            };

            //============================================================================
            // CREANDO NUEVO MOVIMIENTO
            //============================================================================

            documento.movimiento_documento.Add(new Modelo.movimiento_documento
            {
                AUDIT_MOD              = DateTime.Now,
                ID_DEPENDENCIA_ORIGEN  = (int)DEPENDENCIA_PRODUCE.OGDA,
                ID_DEPENDENCIA_DESTINO = request.oficina_derivada.Value,
                ID_OFICIO              = null,
                enviado    = 1,
                derivado   = 0,
                finalizado = 0
            });

            //============================================================================
            // REGISTRANDO COPIAS
            //============================================================================

            if (request.copias != null)
            {
                documento.copias = new List <Modelo.dat_documento_copia>();
                request.copias.Where(x => x.coddep != null).ToList().ForEach(x =>
                {
                    documento.copias.Add(new Modelo.dat_documento_copia
                    {
                        LEIDO     = 0,
                        CODDEP    = x.coddep.Value,
                        ESTADO    = ESTADO_DOCUMENTO_COPIA.ACTIVO,
                        AUDITCREA = DateTime.Now
                    });
                });
            }

            _context.Add(documento);
            _uow.Save();

            //============================================================================
            // INSERTANDO EN TABLA DOCUMENTO_CONT
            //============================================================================

            _uow.InsertarDocumentoCont(documento.ID_DOCUMENTO);

            sr.Value = documento;
            return(sr);
        }