예제 #1
0
        public async Task <CobGeneralCobranza> InsertGeneralCobranza(CobGeneralCobranza generalCobranza)
        {
            SegUsuario user = await _unitOfWork.SegUsuarioRepository.GetUser(generalCobranza.UsuarioRegistro);

            if (user == null)
            {
                throw new Exception("usuario no existe");
            }

            CobGeneralCobranza existenDocumentosPendientes = await _unitOfWork.GeneralCobranzaRepository.ExisteCobranzaPendienteEnviar(generalCobranza);

            if (existenDocumentosPendientes != null)
            {
                throw new BusinessException("Este cliente ya tiene un RC abierto pendiente por enviar N° " + existenDocumentosPendientes.Documento.ToString() + ".Agregue la cobranza a este RC.Si es necesario grabar otro RC a este cliente, envíe el que está pendiente a la administradora.");
            }
            MtrCliente cliente = await _mtrClienteService.GetByIdAsync(generalCobranza.IdCliente);

            MtrVendedor vendedor = await _mtrVendedorService.GetByIdAsync(cliente.Vendedor1);

            string vIn  = cliente.OficinaVenta;
            short  vOut = Convert.ToInt16(vIn);

            MtrOficina mtrOficina = await _mtrOficinaService.GetOficina(vOut);

            generalCobranza.SearchText   = generalCobranza.IdCliente + "-" + cliente.Nombre + "-" + vendedor.Nombre + "-" + generalCobranza.Documento.ToString() + "-" + mtrOficina.NomOficina.Trim();
            generalCobranza.OficinaVenta = cliente.OficinaVenta;
            await _unitOfWork.GeneralCobranzaRepository.Add(generalCobranza);

            await _unitOfWork.SaveChangesAsync();


            CobGeneralCobranza result = await UpdateGeneralCobranza(generalCobranza);

            return(result);
        }
        public async Task <IActionResult> GetEstadoCuenta(CobEstadoCuentaQueryFilter filters)
        {
            List <CobEstadoCuentaDto> result = new List <CobEstadoCuentaDto>();
            Metadata metadata = new Metadata
            {
                IsValid = false,
                Message = ""
            };
            ApiResponse <IEnumerable <CobEstadoCuentaDto> > response = new ApiResponse <IEnumerable <CobEstadoCuentaDto> >(result);

            string userSap     = _paginationOptions.UserSap;
            string passwordSap = _paginationOptions.PasswordSap;


            var meta = await _sapClient.GetToken(userSap, passwordSap);

            if (!meta.IsValid)
            {
                metadata.IsValid = false;
                metadata.Message = "No tenemos conexion a SAP.....Intente mas tarde(Validando Conexion. CobEstadoCuentaController line 84)";

                response.Data = result;
                response.Meta = metadata;


                return(Ok(response));
            }



            PagedList <CobEstadoDeCuenta> listEstadoCuenta;

            listEstadoCuenta = await _cobEstadoCuentaService.GetEstadoCuenta(filters);

            if (listEstadoCuenta == null)
            {
                response.Meta = metadata;
                return(Ok(response));
            }



            IEnumerable <CobEstadoCuentaDto> listEstadoCuentaDto = _mapper.Map <IEnumerable <CobEstadoCuentaDto> >(listEstadoCuenta);


            foreach (var item in listEstadoCuentaDto)
            {
                var cliente = await _mtrClienteService.GetByIdAsync(item.IdCliente);



                item.Saldo = item.Rpaap;
                decimal decimalValue = (decimal)item.Saldo;
                item.SaldoString         = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.Iva;
                item.IvaString           = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.MontoOriginal;
                item.MontoOriginalString = string.Format("{0:N}", decimalValue); // 1,234,567.00
                decimalValue             = (decimal)item.BaseImponible;
                item.BaseImponibleString = string.Format("{0:N}", decimalValue); // 1,234,567.00


                item.searchText = item.Rpdct + "-" + item.Rpdoc.ToString() + "- Cliente: " + cliente.Nombre.Trim() + "- Saldo: " + item.SaldoString;
                result.Add(item);
            }


            metadata.IsValid         = true;
            metadata.Message         = "";
            metadata.TotalCount      = listEstadoCuenta.TotalCount;
            metadata.PageSize        = listEstadoCuenta.PageSize;
            metadata.CurrentPage     = listEstadoCuenta.CurrentPage;
            metadata.TotalPage       = listEstadoCuenta.TotalPage;
            metadata.HasNextPage     = listEstadoCuenta.HasNextPage;
            metadata.HasPreviousPage = listEstadoCuenta.HasPreviousPage;
            metadata.NextPageUrl     = "";   // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),
            metadata.PreviousPageUrl = "";   // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),


            response.Data = result;
            response.Meta = metadata;


            return(Ok(response));
        }
예제 #3
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);
            }
        }
예제 #4
0
        public async Task <IActionResult> GetAllGrabacionCobranza(CobGrabacionCobranzasQueryFilter filters)
        {
            PagedList <CobGrabacionCobranzas> listaCobGrabacionCobranzas;

            listaCobGrabacionCobranzas = _cobGrabacionCobranzasService.GetCobGrabacionCobranzas(filters);

            IEnumerable <CobGrabacionCobranzaDto> listaCobGrabacionCobranzasDto = _mapper.Map <IEnumerable <CobGrabacionCobranzaDto> >(listaCobGrabacionCobranzas);

            foreach (CobGrabacionCobranzaDto item in listaCobGrabacionCobranzasDto)
            {
                if (item.Transaccion == "RU")
                {
                    item.DocAfectaMostrar = item.Cotizacion;
                }
                else
                {
                    item.DocAfectaMostrar = item.DocAfectaSap;
                }

                decimal decimalValue = (decimal)item.Monto;
                item.MontoMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00

                CobEstadoDeCuenta cobEstadoDeCuenta = await _cobEstadoCuentaService.GetEstadoCuentaById(item.DocAfecta);

                if (cobEstadoDeCuenta != null)
                {
                    decimalValue              = (decimal)cobEstadoDeCuenta.BaseImponible;
                    item.BaseImponible        = (decimal)cobEstadoDeCuenta.BaseImponible;
                    item.BaseImponibleMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    decimalValue              = (decimal)cobEstadoDeCuenta.Iva;
                    item.Iva        = (decimal)cobEstadoDeCuenta.Iva;
                    item.IvaMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    decimalValue    = (decimal)cobEstadoDeCuenta.MontoOriginal;

                    item.MontoOriginalMostrar = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    item.FechaDocumento       = cobEstadoDeCuenta.FechaDocumento;
                    DateTime fechaDocumento = (DateTime)cobEstadoDeCuenta.FechaDocumento;
                    item.FechaDocumentoString = fechaDocumento.ToShortDateString();

                    CobEstadoCuentaDto estadoCuentaDto = _mapper.Map <CobEstadoCuentaDto>(cobEstadoDeCuenta);

                    MtrCliente cliente = await _mtrClienteService.GetByIdAsync(estadoCuentaDto.IdCliente);



                    estadoCuentaDto.Saldo               = estadoCuentaDto.Rpaap;
                    decimalValue                        = (decimal)estadoCuentaDto.Saldo;
                    estadoCuentaDto.SaldoString         = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    decimalValue                        = (decimal)estadoCuentaDto.Iva;
                    estadoCuentaDto.IvaString           = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    decimalValue                        = (decimal)estadoCuentaDto.MontoOriginal;
                    estadoCuentaDto.MontoOriginalString = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    decimalValue                        = (decimal)estadoCuentaDto.BaseImponible;
                    estadoCuentaDto.BaseImponibleString = string.Format("{0:N}", decimalValue); // 1,234,567.00
                    estadoCuentaDto.searchText          = estadoCuentaDto.Rpdct + "-" + estadoCuentaDto.Rpdoc.ToString() + "- Cliente: " + cliente.Nombre.Trim() + "- Saldo: " + estadoCuentaDto.SaldoString;


                    item.CobEstadoCuentaDto = estadoCuentaDto;
                }
            }



            Metadata metadata = new Metadata
            {
                TotalCount      = listaCobGrabacionCobranzas.TotalCount,
                PageSize        = listaCobGrabacionCobranzas.PageSize,
                CurrentPage     = listaCobGrabacionCobranzas.CurrentPage,
                TotalPage       = listaCobGrabacionCobranzas.TotalPage,
                HasNextPage     = listaCobGrabacionCobranzas.HasNextPage,
                HasPreviousPage = listaCobGrabacionCobranzas.HasPreviousPage,
                NextPageUrl     = "",   // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),
                PreviousPageUrl = ""    // _uriService.GetGeneralCobranzaPaginationUri(filters, "").ToString(),
            };

            ApiResponse <IEnumerable <CobGrabacionCobranzaDto> > response = new ApiResponse <IEnumerable <CobGrabacionCobranzaDto> >(listaCobGrabacionCobranzasDto)
            {
                Meta = metadata
            };

            return(Ok(response));
        }