Example #1
0
        public async Task <IActionResult> InsertGeneralQuotes(AppGeneralQuotesCreateDto appGeneralQuotesCreateDto)
        {
            Metadata metadata = new Metadata
            {
                IsValid    = false,
                Message    = "",
                TotalCount = 0
            };


            try
            {
                var generalQuotes = await _appGeneralQuotesService.InsertGeneralQuotes(appGeneralQuotesCreateDto);

                return(Ok(generalQuotes));
            }
            catch (Exception e)
            {
                metadata.IsValid = false;
                metadata.Message = e.InnerException.Message;
                var responseError = new ApiResponse <AppGeneralQuotesGetDto>(null)
                {
                    Meta = metadata
                };


                return(Ok(responseError));
            }
        }
Example #2
0
        public async Task <ApiResponse <AppGeneralQuotesGetDto> > InsertGeneralQuotes(AppGeneralQuotesCreateDto appGeneralQuotesCreateDto)
        {
            AppGeneralQuotesGetDto resultDto = new AppGeneralQuotesGetDto();

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

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

            try
            {
                MtrCliente cliente = await _mtrClienteService.GetByIdAsync(appGeneralQuotesCreateDto.IdCliente);

                if (cliente == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Cliente No Existe!!! " + appGeneralQuotesCreateDto.IdCliente;
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }
                MtrDirecciones direccionEntregarValidate = await _unitOfWork.MtrDireccionesRepository.GetById(appGeneralQuotesCreateDto.IdDireccionEntregar);

                if (direccionEntregarValidate == null && appGeneralQuotesCreateDto.IdCliente != "000000")
                {
                    metadata.IsValid = false;
                    metadata.Message = "Direccion Entregar No Existe!!! " + appGeneralQuotesCreateDto.IdCliente;
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }

                MtrContactos mtrContactosValidate = await _unitOfWork.MtrContactosRepository.GetById(appGeneralQuotesCreateDto.IdContacto);

                if (mtrContactosValidate == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Contacto No Existe!!! ";
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }

                MtrCondicionPago condicionPagoValidate = await _unitOfWork.MtrCondicionPagoRepository.GetById(appGeneralQuotesCreateDto.IdCondPago);

                if (condicionPagoValidate == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Condicion de Pago No Existe!!! ";
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }


                MtrTipoMoneda mtrTipoMonedaFind = await _unitOfWork.MtrTipoMonedaRepository.GetById(appGeneralQuotesCreateDto.IdMtrTipoMoneda);

                if (mtrTipoMonedaFind == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Moneda No Existe!!! ";
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }

                if (appGeneralQuotesCreateDto.OrdenCompra.Length > 16)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Longitud Maxima de Orden de Compra es 16 !!! ";
                    response.Meta    = metadata;
                    response.Data    = resultDto;
                    return(response);
                }


                appGeneralQuotesCreateDto.Fecha = DateTime.Now;

                if (appGeneralQuotesCreateDto.IdCliente != "000000")
                {
                    appGeneralQuotesCreateDto.Rif         = cliente.NoRegTribut;
                    appGeneralQuotesCreateDto.RazonSocial = cliente.Nombre;
                    appGeneralQuotesCreateDto.Direccion   = cliente.Direccion + " " + cliente.Direccion1;
                }


                AppGeneralQuotes appGeneralQuotes = _mapper.Map <AppGeneralQuotes>(appGeneralQuotesCreateDto);

                if (appGeneralQuotesCreateDto.IdCliente != "000000")
                {
                    appGeneralQuotes.IdVendedor = cliente.Vendedor1.Trim();
                }
                else
                {
                    appGeneralQuotes.IdVendedor = appGeneralQuotesCreateDto.UsuarioActualiza;
                }


                if (appGeneralQuotesCreateDto.IdCliente == "000000")
                {
                    appGeneralQuotes.IdMunicipio = appGeneralQuotesCreateDto.IdMunicipio;
                    var municipio = await _unitOfWork.Winy243Repository.GetById(appGeneralQuotesCreateDto.IdMunicipio);

                    if (municipio != null)
                    {
                        appGeneralQuotes.DescripcionMunicipio = municipio.DescMunicipio;
                    }
                }
                else
                {
                    var municipio = await _unitOfWork.Winy243Repository.GetByEstadoMunicipio(direccionEntregarValidate.Estado, direccionEntregarValidate.Municipio);

                    if (municipio != null)
                    {
                        appGeneralQuotes.IdMunicipio          = municipio.Recnum;
                        appGeneralQuotes.DescripcionMunicipio = municipio.DescMunicipio;
                    }
                }

                appGeneralQuotes.Cotizacion           = _unitOfWork.CotizacionRepository.ProximaCotizacion(appGeneralQuotes.IdVendedor);
                appGeneralQuotes.IdEstatus            = 1;
                appGeneralQuotes.CreatedAt            = DateTime.Now;
                appGeneralQuotes.FechaActualiza       = DateTime.Now;
                appGeneralQuotes.FechaCaducidad       = DateTime.Now.AddDays(1);
                appGeneralQuotes.DiasVigencia         = 1;
                appGeneralQuotes.ObservacionPostergar = "";
                appGeneralQuotes.IdDireccionFacturar  = (decimal)cliente.IdDireccion;
                appGeneralQuotes.UsuarioActualiza     = appGeneralQuotesCreateDto.UsuarioActualiza;
                appGeneralQuotes.UserCreate           = appGeneralQuotesCreateDto.UsuarioActualiza;
                appGeneralQuotes.Proximo       = 0;
                appGeneralQuotes.FijarPrecioBs = appGeneralQuotesCreateDto.FijarPrecioBs;
                if (appGeneralQuotes.ObservacionPostergar == null)
                {
                    appGeneralQuotes.ObservacionPostergar = "";
                }

                AppStatusQuote appStatusQuote = await _unitOfWork.AppStatusQuoteRepository.GetById(appGeneralQuotes.IdEstatus);


                MtrVendedor vendedor = _unitOfWork.MtrVendedorRepository.GetById(appGeneralQuotes.IdVendedor);

                if (appGeneralQuotesCreateDto.IdCliente != "000000")
                {
                    appGeneralQuotes.SearchText = $"{appGeneralQuotes.Cotizacion}-{appGeneralQuotes.IdVendedor}-{vendedor.Nombre.Trim()}-{appGeneralQuotes.IdCliente}-{cliente.Nombre.Trim()}-{appGeneralQuotes.IdVendedor}-{vendedor.Nombre.Trim()}-{appGeneralQuotes.IdCliente}-{appGeneralQuotes.RazonSocial.Trim()}-{appStatusQuote.Descripcion.Trim()}";
                }
                else
                {
                    appGeneralQuotes.SearchText          = $"{appGeneralQuotes.Cotizacion}-{appGeneralQuotes.IdVendedor}-{vendedor.Nombre.Trim()}-{appStatusQuote.Descripcion.Trim()}";
                    appGeneralQuotes.IdDireccionEntregar = 1;
                    appGeneralQuotes.IdDireccionFacturar = 1;
                }

                AppGeneralQuotes AppGeneralQuotesInserted = await Insert(appGeneralQuotes);

                await _cotizacionService.IntegrarCotizacion(AppGeneralQuotesInserted.Id);

                if (AppGeneralQuotesInserted != null)
                {
                    resultDto = _mapper.Map <AppGeneralQuotesGetDto>(AppGeneralQuotesInserted);

                    MtrVendedor mtrVendedor = _unitOfWork.MtrVendedorRepository.GetById(resultDto.IdVendedor);
                    if (mtrVendedor != null)
                    {
                        MtrVendedorDto mtrVendedorDto = _mapper.Map <MtrVendedorDto>(mtrVendedor);
                        resultDto.MtrVendedorDto = mtrVendedorDto;
                    }



                    MtrCliente mtrCliente = _unitOfWork.MtrClienteRepository.GetById(resultDto.IdCliente);
                    if (mtrCliente != null)
                    {
                        MtrClienteDto mtrClienteDto = _mapper.Map <MtrClienteDto>(mtrCliente);
                        resultDto.MtrClienteDto = mtrClienteDto;
                    }

                    MtrContactos mtrContactos = await _unitOfWork.MtrContactosRepository.GetById(resultDto.IdContacto);

                    if (mtrContactos != null)
                    {
                        MtrContactosDto mtrContactosDto = _mapper.Map <MtrContactosDto>(mtrContactos);
                        resultDto.MtrContactosDto = mtrContactosDto;
                    }



                    MtrDirecciones direccionEntregar = await _unitOfWork.MtrDireccionesRepository.GetById(resultDto.IdDireccionEntregar);

                    if (direccionEntregar != null)
                    {
                        MtrDireccionesDto direccionEntregarDto = _mapper.Map <MtrDireccionesDto>(direccionEntregar);
                        resultDto.MtrDireccionesEntregarDto = direccionEntregarDto;
                    }



                    MtrDirecciones direccionFacturar = await _unitOfWork.MtrDireccionesRepository.GetById(resultDto.IdDireccionFacturar);

                    if (direccionFacturar != null)
                    {
                        MtrDireccionesDto direccionFacturarDto = _mapper.Map <MtrDireccionesDto>(direccionFacturar);
                        resultDto.MtrDireccionesFacturarDto = direccionFacturarDto;
                    }

                    MtrCondicionPago condicionPago = await _unitOfWork.MtrCondicionPagoRepository.GetById(resultDto.IdCondPago);

                    if (condicionPago != null)
                    {
                        CondicionPagoDto condicionPagoDto = _mapper.Map <CondicionPagoDto>(condicionPago);
                        resultDto.CondicionPagoDto = condicionPagoDto;
                    }

                    MtrTipoMoneda mtrTipoMoneda = await _unitOfWork.MtrTipoMonedaRepository.GetById(resultDto.IdMtrTipoMoneda);

                    if (mtrTipoMoneda != null)
                    {
                        MtrTipoMonedaDto mtrTipoMonedaDto = _mapper.Map <MtrTipoMonedaDto>(mtrTipoMoneda);
                        resultDto.MtrTipoMonedaDto = mtrTipoMonedaDto;
                    }


                    metadata.IsValid = true;
                    metadata.Message = $"Cotizacion: {resultDto.Cotizacion} creada Satisfactoriamente!!";
                }
                else
                {
                    metadata.IsValid = false;

                    metadata.Message = "Registro No actualizado";
                }


                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);
            }
        }