public async Task <ActionResult <List <ContratoResponse> > > Put([FromBody] List <ContratosDTO> contratos) { bool hayError = false; if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Error de formato"); } List <ContratoResponse> responseList = new List <ContratoResponse>(); foreach (ContratosDTO contrato in contratos) { Logger.Information($"Se recibio actualizacion de datos del contrato{contrato.TipoContrato} - " + $"'{contrato.CodigoContrato} - Id de operacion: {contrato.IdOperacion}"); int idOperacion = contrato.IdOperacion; if (Env.IsProduction()) { if (int.TryParse(contrato.Cliente, out _)) { contrato.Cliente = string.Format("{0:00000000}", int.Parse(contrato.Cliente)); } ; if (int.TryParse(contrato.CodigoDeSubcuenta, out _)) { contrato.CodigoDeSubcuenta = string.Format("{0:00000000}", int.Parse(contrato.CodigoDeSubcuenta)); } } Cvmcth contratoFormat = Mapper.Map <ContratosDTO, Cvmcth>(contrato); //ClienteResponse response = Repository.GraboCliente(clienteFormat, "OPEN"); ContratoResponse response = await Repository.ActualizoContrato(contratoFormat); response.IdOperacion = idOperacion; if (response.Estado != 200) { hayError = true; } responseList.Add(response); } if (hayError) { return(BadRequest(responseList)); } return(Ok(responseList)); }
/// <summary> /// Obtiene la entidad response ContratoResponse de la Entidad ContratoEntity /// </summary> /// <param name="objEnt"></param> /// <param name="objProv"></param> /// <returns>Entidad Contrato</returns> public static ContratoResponse ObtenerContratoResponseDeEntity(ContratoEntity objEnt, ProveedorEntity objProv = null) { ContratoResponse rpta = new ContratoResponse(); rpta.CodigoContrato = objEnt.CodigoContrato; rpta.CodigoUnidadOperativa = objEnt.CodigoUnidadOperativa; rpta.CodigoProveedor = objEnt.CodigoProveedor; if (objProv != null) { rpta.NombreProveedor = objProv.Nombre; } rpta.NumeroContrato = (objEnt.NumeroContrato != null) ? objEnt.NumeroContrato : ""; rpta.Descripcion = objEnt.Descripcion; rpta.CodigoTipoServicio = objEnt.CodigoTipoServicio; rpta.CodigoTipoRequerimiento = objEnt.CodigoTipoRequerimiento; rpta.CodigoTipoDocumento = objEnt.CodigoTipoDocumento; rpta.IndicadorVersionOficial = objEnt.IndicadorVersionOficial; rpta.FechaInicioVigencia = objEnt.FechaInicioVigencia; rpta.FechaFinVigencia = objEnt.FechaFinVigencia; rpta.FechaInicioVigenciaString = objEnt.FechaInicioVigencia.ToString(DatosConstantes.Formato.FormatoFecha); rpta.FechaFinVigenciaString = objEnt.FechaFinVigencia.ToString(DatosConstantes.Formato.FormatoFecha); rpta.CodigoMoneda = objEnt.CodigoMoneda; rpta.MontoContrato = objEnt.MontoContrato; rpta.MontoContratoString = rpta.MontoContrato.ToString(DatosConstantes.Formato.FormatoNumeroDecimal); rpta.MontoAcumulado = objEnt.MontoAcumulado; rpta.MontoAcumuladoString = rpta.MontoAcumulado.ToString(DatosConstantes.Formato.FormatoNumeroDecimal); rpta.CodigoEstado = objEnt.CodigoEstado; rpta.CodigoPlantilla = objEnt.CodigoPlantilla; rpta.CodigoContratoPrincipal = objEnt.CodigoContratoPrincipal; rpta.CodigoEstadoEdicion = objEnt.CodigoEstadoEdicion; rpta.ComentarioModificacion = objEnt.ComentarioModificacion; rpta.RespuestaModificacion = objEnt.RespuestaModificacion; rpta.CodigoFlujoAprobacion = objEnt.CodigoFlujoAprobacion; rpta.CodigoEstadioActual = objEnt.CodigoEstadioActual; rpta.EstadoRegistro = objEnt.EstadoRegistro; rpta.CodigoEstado = objEnt.CodigoEstado; rpta.NumeroAdendaConcatenado = objEnt.NumeroAdendaConcatenado; rpta.CodigoContratoOriginal = objEnt.CodigoContratoOriginal; rpta.EsFlexible = objEnt.EsFlexible == null ? false : (bool)objEnt.EsFlexible; rpta.EsCorporativo = objEnt.EsCorporativo == null ? false : (bool)objEnt.EsCorporativo; rpta.CodigoRequerido = objEnt.CodigoRequerido.ToString(); return(rpta); }
public async Task <ActionResult <ClienteResponse> > Post([FromBody] ContratosDTO contrato) { Logger.Information($"Se recibio posteo de nuevo contrato{contrato.TipoContrato} - {contrato.CodigoContrato} - " + $"Id de operacion: {contrato.IdOperacion}"); int idOperacion = contrato.IdOperacion; if (Env.IsProduction()) { if (int.TryParse(contrato.Cliente, out _)) { contrato.Cliente = string.Format("{0:00000000}", int.Parse(contrato.Cliente)); } ; if (int.TryParse(contrato.CodigoDeSubcuenta, out _)) { contrato.CodigoDeSubcuenta = string.Format("{0:00000000}", int.Parse(contrato.CodigoDeSubcuenta)); } } Cvmcth contratoFormat = Mapper.Map <ContratosDTO, Cvmcth>(contrato); if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Error de formato"); } ContratoResponse response = await Repository.GraboContrato(contratoFormat, "NEW"); response.IdOperacion = idOperacion; if (response.Estado != 200) { return(BadRequest(response)); } return(Ok(response)); }
/// <summary> /// Obtiene la entidad ContratoResponse de la Entidad Logica ContratoLogic /// </summary> /// <param name="contrato">Entidad Logic</param> /// <param name="listaUnidadOperativa">Lista de Unidades Operativas</param> /// <param name="lstTipoRequerimiento">Lista de Tipo de Contrato</param> /// <param name="lstTipoServicio">Lista de Tipos de Servicio</param> /// <param name="lstEstadoEdicion"></param> /// <param name="lstTipoDocumento"></param> /// <returns>Entidad logica contratologic</returns> public static ContratoResponse ObtenerContratoResponseDeLogic(ContratoLogic contrato, List <UnidadOperativaResponse> listaUnidadOperativa = null, List <CodigoValorResponse> lstTipoRequerimiento = null, List <CodigoValorResponse> lstTipoServicio = null, List <CodigoValorResponse> lstEstadoEdicion = null, List <CodigoValorResponse> lstTipoDocumento = null) { ContratoResponse response = new ContratoResponse(); response.CodigoContrato = contrato.CodigoContrato; response.CodigoUnidadOperativa = contrato.CodigoUnidadOperativa; response.CodigoProveedor = contrato.CodigoProveedor; response.NombreProveedor = contrato.NombreProveedor; response.NumeroContrato = contrato.NumeroContrato; response.Descripcion = contrato.Descripcion; response.CodigoTipoServicio = contrato.CodigoTipoServicio; response.CodigoFlujoAprobacion = contrato.CodigoFlujoAprobacion; response.CodigoTipoDocumento = contrato.CodigoTipoDocumento; response.FechaInicioVigencia = contrato.FechaInicioVigencia; response.FechaFinVigencia = contrato.FechaFinVigencia; response.CodigoMoneda = contrato.CodigoMoneda; response.MontoContrato = contrato.MontoContrato; response.MontoAcumulado = contrato.MontoAcumulado; response.CodigoEstado = contrato.CodigoEstado; response.CodigoPlantilla = contrato.CodigoPlantilla; response.CodigoContratoPrincipal = contrato.CodigoContratoPrincipal; response.CodigoEstadoEdicion = contrato.CodigoEstadoEdicion; response.ComentarioModificacion = contrato.ComentarioModificacion; response.RespuestaModificacion = contrato.RespuestaModificacion; response.IndicadorPermiteCarga = contrato.IndicadorPermiteCarga; response.CodigoEstadioActual = contrato.CodigoEstadioActual; response.NombreEstadioActual = contrato.DescripcionEstadioActual; response.DiasPendiente = contrato.DiasPendiente; response.CodigoContratoEstadio = contrato.CodigoContratoEstadio; response.EstadioPropioConsulta = contrato.EstadioPropioConsulta; response.DescripcionContrato = contrato.DescripcionContrato; response.CodigoFlujoAprobacionEstadio = contrato.CodigoFlujoAprobacionEstadio; response.FechaIngreso = contrato.FechaIngreso == null ? "" : ((DateTime?)contrato.FechaIngreso).Value.ToString(DatosConstantes.Formato.FormatoFecha); response.FechaUltimaNotificacion = contrato.FechaUltimaNotificacion == null ? "" : ((DateTime?)contrato.FechaUltimaNotificacion).Value.ToString(DatosConstantes.Formato.FormatoFecha); listaUnidadOperativa = listaUnidadOperativa ?? new List <UnidadOperativaResponse>(); var unidadOperativa = listaUnidadOperativa.Where(item => item.CodigoUnidadOperativa == contrato.CodigoUnidadOperativa).FirstOrDefault(); if (unidadOperativa != null) { response.NombreUnidadOperativa = unidadOperativa.Nombre; } lstTipoRequerimiento = lstTipoRequerimiento ?? new List <CodigoValorResponse>(); var tipoRequerimiento = lstTipoRequerimiento.Where(item => Convert.ToString(item.Codigo) == contrato.CodigoTipoServicio).FirstOrDefault(); if (tipoRequerimiento != null) { response.NombreTipoServicio = Convert.ToString(tipoRequerimiento.Valor); } lstTipoServicio = lstTipoServicio ?? new List <CodigoValorResponse>(); var tipoServicio = lstTipoServicio.Where(item => Convert.ToString(item.Codigo) == contrato.CodigoTipoRequerimiento).FirstOrDefault(); if (tipoServicio != null) { response.NombreTipoRequerimiento = Convert.ToString(tipoServicio.Valor); } lstEstadoEdicion = lstEstadoEdicion ?? new List <CodigoValorResponse>(); var estadoEdicion = lstEstadoEdicion.Where(item => Convert.ToString(item.Codigo) == contrato.CodigoEstadoEdicion).FirstOrDefault(); if (estadoEdicion != null) { response.NombreEstadoEdicion = Convert.ToString(estadoEdicion.Valor); } lstTipoDocumento = lstTipoDocumento ?? new List <CodigoValorResponse>(); var tipoDocumento = lstTipoDocumento.Where(item => Convert.ToString(item.Codigo) == contrato.CodigoTipoDocumento).FirstOrDefault(); if (tipoDocumento != null) { response.NombreTipoDocumento = Convert.ToString(tipoDocumento.Valor); } response.FechaModificacion = contrato.FechaModificacion == null ? string.Empty : contrato.FechaModificacion.Value.ToString(DatosConstantes.Formato.FormatoFecha); response.UsuarioCreacion = contrato.UsuarioCreacion; response.FilasTotal = contrato.TotalRegistro; response.NumeroFila = contrato.NumeroRegistro; return(response); }
public async Task <ContratoResponse> ActualizoContrato(Cvmcth contrato) { Cvmcth contratoAActualizar = await Context.Cvmcth .FindAsync(new object[] { contrato.Cvmcth_Codcon, contrato.Cvmcth_Nrocon, contrato.Cvmcth_Nroext }); if (contratoAActualizar == null) { return(new ContratoResponse("Not Found", 0, $"El contrato no existe")); } Type typeContrato = contrato.GetType(); System.Reflection.PropertyInfo[] listaPropiedades = typeContrato.GetProperties(); foreach (System.Reflection.PropertyInfo propiedad in listaPropiedades) { var value = propiedad.GetValue(contrato, null); if (propiedad.PropertyType == typeof(string)) { if ((string)value != "null" && (string)value != "NULL" && value != null && propiedad.Name != "Cvmcth_Codcon" && propiedad.Name != "Cvmcth_Nrocon" && propiedad.Name != "Cvmcth_Nroext" && propiedad.Name != "Items") { switch (propiedad.Name) { case "Cvmcth_Desfre": short valorAAsignar = 0; switch (value) { case "A": valorAAsignar = 360; break; case "M": valorAAsignar = 30; break; case "B": valorAAsignar = 60; break; case "T": valorAAsignar = 40; break; case "C": valorAAsignar = 30; break; case "S": valorAAsignar = 180; break; default: break; } contratoAActualizar.Cvmcth_Frefac = valorAAsignar; break; case "Cvmcth_Nrocta": case "Cvmcth_Nrosub": string codigoCliente = propiedad.Name == "Cvmcth_Nrocta" ? contrato.Cvmcth_Nrocta : contrato.Cvmcth_Nrosub; bool ExisteCliente = await ValidoVTMCLH(codigoCliente); if (ExisteCliente == false) { return(new ContratoResponse("Bad Request", 0, $"El codigo {codigoCliente} no se encuentra creado como cliente.")); } typeContrato.InvokeMember(propiedad.Name, BindingFlags.SetProperty, null, contratoAActualizar, new object[] { value }); break; case "Cvmcth_Codcvt": bool ExisteComprobante = await ValidoGRCCBH(contrato); if (ExisteComprobante == false) { return(new ContratoResponse("Bad Request", 0, $"El comprobante de ventas {contrato.Cvmcth_Codcvt} no existe.")); } typeContrato.InvokeMember(propiedad.Name, BindingFlags.SetProperty, null, contratoAActualizar, new object[] { value }); break; default: typeContrato.InvokeMember(propiedad.Name, BindingFlags.SetProperty, null, contratoAActualizar, new object[] { value }); break; } } } } contratoAActualizar.Cvmcth_Fecmod = DateTime.Now; contratoAActualizar.Cvmcth_Ultopr = "M"; contratoAActualizar.Cvmcth_Userid = "API"; try { await Context.SaveChangesAsync(); } catch (Exception e) { return(new ContratoResponse("Bad Request", 0, e.InnerException.Message)); } foreach (Cvmcti items in contrato.Items) { items.Cvmcti_Codcon = contrato.Cvmcth_Codcon; items.Cvmcti_Nrocon = contrato.Cvmcth_Nrocon; items.Cvmcti_Nroext = contrato.Cvmcth_Nroext; ContratoResponse response = await this.actualizoItem(items, contrato); if (response.Estado != 200) { return(response); } } return(new ContratoResponse("OK", 0, null, "Contrato actualizado")); }