public async Task Add(AppDetailQuotes entity) { var cotizacion = await GetByQuetesProduct(entity.Cotizacion, entity.IdProducto); if (cotizacion == null) { await _context.AppDetailQuotes.AddAsync(entity); } }
public async Task <AppDetailQuotes> CreateDetaiQuotes(AppDetailQuotesConversionUnitCreateDto dto) { var generalQuotes = await _unitOfWork.AppGeneralQuotesRepository.GetById(dto.AppGeneralQuotesId); if (generalQuotes != null) { AppDetailQuotes newDetail = new AppDetailQuotes(); newDetail.AppGeneralQuotesId = dto.AppGeneralQuotesId; newDetail.Cotizacion = generalQuotes.Cotizacion; newDetail.DiasEntrega = 1; newDetail.IdProducto = dto.AppProductId; var producto = await _unitOfWork.AppProductsRepository.GetById(dto.AppProductId); newDetail.NombreComercialProducto = producto.Description1; newDetail.Cantidad = 1; newDetail.DiasEntrega = 1; newDetail.IdEstatus = generalQuotes.IdEstatus; newDetail.IdUnidad = dto.AppUnitIdSince; newDetail.PrecioUsd = 0; newDetail.Precio = 0; newDetail.Total = 0; newDetail.TotalUsd = 0; newDetail.FechaRegistro = DateTime.Now; newDetail.CreatedAt = DateTime.Now; newDetail.UpdatedAt = DateTime.Now; newDetail.Observaciones = ""; newDetail.UserCreate = ""; await _unitOfWork.AppDetailQuotesRepository.Add(newDetail); await _unitOfWork.SaveChangesAsync(); return(await _unitOfWork.AppDetailQuotesRepository.GetById(newDetail.Id)); } else { return(null); } }
public async Task <ApiResponse <AppGeneralQuotesGetDto> > EnviarAlCliente(AppGeneralQuotesChangeStatusDto dto) { AppGeneralQuotesGetDto resultDto = new AppGeneralQuotesGetDto(); Metadata metadata = new Metadata { IsValid = true, Message = "" }; ApiResponse <AppGeneralQuotesGetDto> response = new ApiResponse <AppGeneralQuotesGetDto>(resultDto); try { AppGeneralQuotes appGeneralQuotes = await GetById(dto.Id); if (appGeneralQuotes == null) { metadata.IsValid = false; metadata.Message = "Cotizacion No Existe!!! "; response.Meta = metadata; response.Data = resultDto; return(response); } if (appGeneralQuotes.IdEstatus != 1) { metadata.IsValid = false; metadata.Message = "Cotizacion No esta en grabacion!!! "; response.Meta = metadata; response.Data = resultDto; return(response); } ApiResponse <List <AppDetailQuotesGetDto> > appDatailQuotes = await _appDetailQuotesService.GetListAppDetailQuoteByAppGeneralQuotesId(dto.Id); if (appDatailQuotes.Data.Count > 0) { foreach (AppDetailQuotesGetDto item in appDatailQuotes.Data) { AppDetailQuotes detailQuotes = await _appDetailQuotesService.GetById(item.Id); if (detailQuotes != null) { if (detailQuotes.PrecioUsd < detailQuotes.UnitPriceConverted) { metadata.IsValid = false; metadata.Message = "Precio de Venta es menor a la Lista..Enviar a Aprobacion!!! "; response.Meta = metadata; response.Data = resultDto; return(response); } detailQuotes.IdEstatus = 2; await _appDetailQuotesService.Update(detailQuotes); } } appGeneralQuotes.IdEstatus = 2; AppGeneralQuotes AppGeneralQuotesUpdated = await Update(appGeneralQuotes); await _cotizacionService.IntegrarCotizacion(appGeneralQuotes.Id); AppGeneralQuotesQueryFilter filters = new AppGeneralQuotesQueryFilter { Cotizacion = appGeneralQuotes.Cotizacion }; resultDto = await GetAppGeneralQuotes(filters); metadata.IsValid = true; metadata.Message = "Cotizacion Enviada al cliente!!! "; response.Meta = metadata; response.Data = resultDto; return(response); } else { metadata.IsValid = false; metadata.Message = "Cotizacion No tiene Productos cargados!!! "; response.Meta = metadata; response.Data = resultDto; return(response); } } catch (Exception ex) { metadata.IsValid = false; metadata.Message = ex.InnerException.Message; response.Meta = metadata; response.Data = resultDto; return(response); } }
public async Task Delete(int id) { AppDetailQuotes entity = await GetById(id); _context.AppDetailQuotes.Remove(entity); }
public void Update(AppDetailQuotes entity) { _context.AppDetailQuotes.Update(entity); }
public async Task <ApiResponse <List <AppDetailQuotesConversionUnit> > > CreateAppDetailQuotesConversionUnit(AppDetailQuotesConversionUnitCreateDto appDetailQuotesConversionUnitCreateDto) { Metadata metadata = new Metadata { IsValid = true, Message = "" }; List <AppDetailQuotesConversionUnit> resultDto = new List <AppDetailQuotesConversionUnit>(); ApiResponse <List <AppDetailQuotesConversionUnit> > response = new ApiResponse <List <AppDetailQuotesConversionUnit> >(resultDto); try { AppDetailQuotes newDetail = new AppDetailQuotes(); if (appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId == 0) { newDetail = await CreateDetaiQuotes(appDetailQuotesConversionUnitCreateDto); if (newDetail != null) { appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId = newDetail.Id; } } await DeteleAppDetailQuotesByDetailQuotesId(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); List <AppTemplateConversionUnit> template = await _unitOfWork.AppTemplateConversionUnitRepository.GetTemplateByUnits(appDetailQuotesConversionUnitCreateDto.AppUnitIdSince, appDetailQuotesConversionUnitCreateDto.AppUnitIdUntil); var listDetailQuotesConversion = await CreateListFromTemplate(template, (int)appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); foreach (var item in listDetailQuotesConversion) { var variable = appDetailQuotesConversionUnitCreateDto.AppTemplateConversionUnitGetDto.Where(x => x.AppVariableId == item.AppVariableId).FirstOrDefault(); if (variable != null && item.Formula == "") { item.Value = variable.Value; } await Insert(item); } await CalculateAppDetailQuotesByDetailQuotesId(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); var totalValue = _unitOfWork.AppDetailQuotesConversionUnitRepository.TotalValue(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); var cantidadPorUnidadProduccion = _unitOfWork.AppDetailQuotesConversionUnitRepository.GetCantidadPorUnidadProduccion(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); var detailQuote = await _unitOfWork.AppDetailQuotesRepository.GetById(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); if (detailQuote != null) { detailQuote.ValorConvertido = totalValue; detailQuote.CantidadPorUnidadProduccion = cantidadPorUnidadProduccion; detailQuote.UnitPriceBaseProduction = detailQuote.IdProductoNavigation.UnitPrice; if (detailQuote.UnitPriceBaseProduction > 0) { detailQuote.UnitPriceConverted = detailQuote.UnitPriceBaseProduction * detailQuote.ValorConvertido; } else { detailQuote.UnitPriceConverted = 0; } detailQuote.IdUnidad = appDetailQuotesConversionUnitCreateDto.AppUnitIdSince; _unitOfWork.AppDetailQuotesRepository.Update(detailQuote); await _unitOfWork.SaveChangesAsync(); } resultDto = await _unitOfWork.AppDetailQuotesConversionUnitRepository.GetByAppDetailQuotesId(appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId); response.Meta = metadata; response.Data = resultDto; return(response); } catch (Exception ex) { metadata.IsValid = false; metadata.Message = ex.InnerException.Message; response.Meta = metadata; response.Data = resultDto; return(response); } }
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); } }