public async Task <ApiResponse <Wsmy647> > ActivarWORKFLOW(string cotizacion, int renglon, int propuesta, string usuarioConectado, AppDetailQuotes appDetailQuotes)
        {
            Wsmy647 resultDto = new Wsmy647();

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <Wsmy647> response = new ApiResponse <Wsmy647>(resultDto);

            try
            {
                // HdId.Value IdSoicitud wsmy515,



                // HdRuta.Value
                // HdRuta.Value = Wsmy649.BuscarRuta(HdSubCategoria.Value, HdIdOficina.Value)

                //HdIdNextEst.Value
                //Wsmy649.BuscarAprobador(HdRuta.Value, HdSubCategoria.Value, HdIdOficina.Value, PuntosPorcDebajo, PuntosPorcArriba)
                //IdEstacion

                var cotizacionObject = await _unitOfWork.CotizacionRepository.GetByCotizacion(cotizacion);

                var renglonObject = await _unitOfWork.RenglonRepository.GetByCotizacionRenglon(cotizacion, renglon);

                var propuestaObject = await _unitOfWork.PropuestaRepository.GetByCotizacionRenglonPropuesta(cotizacion, renglon, propuesta);

                var cliente = _unitOfWork.MtrClienteRepository.GetById(cotizacionObject.CodCliente);

                var producto = await _unitOfWork.Csmy036Repository.GetByCode(renglonObject.CodProducto);

                var ruta = await _unitOfWork.Wsmy649Repository.BuscarRuta((short)producto.Idsubcategoria, short.Parse(cliente.OficinaVenta));

                var idEstacion = await _unitOfWork.Wsmy649Repository.BuscarAprobador((short)producto.Idsubcategoria, short.Parse(cliente.OficinaVenta), ruta.IdRuta);

                var aprobacion = await GetByCotizacionRenglonPrpopuesta(cotizacion, renglon, propuesta);

                //Flujo Aprobación CYPJ = 1
                var IdTipoFlujo = 1;


                var wsmy647 = await _unitOfWork.Wsmy647Repository.Get(aprobacion.Id, ruta.IdRuta, idEstacion);

                if (wsmy647 == null)
                {
                    //AGREGAMOS LAS OBSERVACIONES
                    Wsmy655 wsmy655New = new Wsmy655();

                    wsmy655New.IdCalculo = aprobacion.Id;

                    wsmy655New.IdEstacion = short.Parse(idEstacion.ToString());

                    wsmy655New.IdUsuario = usuarioConectado;

                    wsmy655New.Observaciones = appDetailQuotes.ObsSolicitud;

                    wsmy655New.Fecha = DateTime.Now;

                    await _unitOfWork.Wsmy655Repository.Add(wsmy655New);

                    await _unitOfWork.SaveChangesAsync();



                    Wsmy647 wsmy647New = new Wsmy647();

                    wsmy647New.IdCalculo = aprobacion.Id;

                    wsmy647New.IdRuta = ruta.IdRuta;

                    wsmy647New.IdEstacion = short.Parse(idEstacion.ToString());

                    wsmy647New.IdUsuario = usuarioConectado;

                    var wsmy645 = await _unitOfWork.Wsmy645Repository.EstatusPendiente();

                    wsmy647New.IdEstatus = wsmy645.IdEstatus;

                    wsmy647New.FechaEntrada = DateTime.Now;

                    await _unitOfWork.Wsmy647Repository.Add(wsmy647New);

                    await _unitOfWork.SaveChangesAsync();


                    //ACTUALIZAMOS SOLICITUD

                    var solicitud = await _unitOfWork.AprobacionesRepository.GetByCotizacionRenglonPropuesta(cotizacion, renglon, propuesta);

                    solicitud.FlagEnviado = true;
                    _unitOfWork.AprobacionesRepository.Update(solicitud);
                    await _unitOfWork.SaveChangesAsync();



                    metadata.IsValid = true;
                    metadata.Message = "Solicitud enviada con éxito!!";
                    response.Data    = null;
                    response.Meta    = metadata;

                    return(response);
                }
                else
                {
                    wsmy647.IdCalculo = aprobacion.Id;

                    //AGREGAMOS LAS OBSERVACIONES
                    Wsmy655 wsmy655New = new Wsmy655();

                    wsmy655New.IdCalculo = aprobacion.Id;

                    wsmy655New.IdEstacion = short.Parse(idEstacion.ToString());

                    wsmy655New.IdUsuario = usuarioConectado;

                    wsmy655New.Observaciones = appDetailQuotes.ObsSolicitud;

                    wsmy655New.Fecha = DateTime.Now;

                    await _unitOfWork.Wsmy655Repository.Add(wsmy655New);

                    await _unitOfWork.SaveChangesAsync();



                    metadata.IsValid = true;
                    metadata.Message = "Solicitud enviada con éxito!!";
                    response.Data    = null;
                    response.Meta    = metadata;

                    return(response);
                }
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;
                metadata.Message = ex.InnerException.Message;
                response.Data    = null;
                response.Meta    = metadata;
                return(response);
            }
        }
 public void Update(Wsmy655 entity)
 {
     _context.Wsmy655.Update(entity);
 }
        public async Task Delete(decimal id)
        {
            Wsmy655 entity = await GetById(id);

            _context.Wsmy655.Remove(entity);
        }
 public async Task Add(Wsmy655 entity)
 {
     await _context.Wsmy655.AddAsync(entity);
 }