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