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 <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 <IActionResult> CreateAppDetailQuotesConversionUnit(AppDetailQuotesConversionUnitCreateDto appDetailQuotesConversionUnitCreateDto) { Metadata metadata = new Metadata { IsValid = false, Message = "", TotalCount = 0 }; try { //var detailQuotesConversionUnit = await _appDetailQuotesConversionUnitService.CreateAppDetailQuotesConversionUnit(appDetailQuotesConversionUnitCreateDto); //return Ok(detailQuotesConversionUnit); var detailQuotesConversionUnit = await _appDetailQuotesConversionUnitService.CreateAppDetailQuotesConversionUnit(appDetailQuotesConversionUnitCreateDto); return(Ok(detailQuotesConversionUnit)); //if (appDetailQuotesConversionUnitCreateDto.AppDetailQuotesId >0) //{ // var detailQuotesConversionUnit = await _appDetailQuotesConversionUnitService.CreateAppDetailQuotesConversionUnit(appDetailQuotesConversionUnitCreateDto); // return Ok(detailQuotesConversionUnit); //} //else //{ // AppConversionUnitGenericCreateDto dto = new AppConversionUnitGenericCreateDto(); // dto.AppProductId = appDetailQuotesConversionUnitCreateDto.AppProductId; // dto.AppUnitIdSince = appDetailQuotesConversionUnitCreateDto.AppUnitIdSince; // dto.AppUnitIdUntil = appDetailQuotesConversionUnitCreateDto.AppUnitIdUntil; // List<AppTemplateConversionGenericUnitGetDto> newList = new List<AppTemplateConversionGenericUnitGetDto>(); // if (appDetailQuotesConversionUnitCreateDto.AppTemplateConversionUnitGetDto != null) // { // foreach (var item in appDetailQuotesConversionUnitCreateDto.AppTemplateConversionUnitGetDto) // { // AppTemplateConversionGenericUnitGetDto newItem = new AppTemplateConversionGenericUnitGetDto(); // newItem.AppVariableId = item.AppVariableId; // newItem.Description = item.Description; // newItem.Value = item.Value; // newList.Add(newItem); // } // dto.AppTemplateConversionGenericUnitGetDto = newList; // } // var detailQuotesConversionUnit = await _appDetailQuotesConversionUnitService.ConversionUnitGeneric(dto); // return Ok(detailQuotesConversionUnit); //} } catch (Exception e) { metadata.IsValid = false; metadata.Message = e.InnerException.Message; var responseError = new ApiResponse <AppDetailQuotesGetDto>(null) { Meta = metadata }; return(Ok(responseError)); } }