示例#1
0
        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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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));
        }
示例#4
0
        /// <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);
        }
示例#5
0
        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"));
        }