public async Task <CobGrabacionCobranzas> Insert(CobGrabacionCobranzas cobGrabacionCobranzas) { var docAfecta = await _unitOfWork.CobEstadoDeCuentaRepository.GetById(cobGrabacionCobranzas.DocAfecta); if (docAfecta != null) { cobGrabacionCobranzas.Rpdoc = docAfecta.Rpdoc; cobGrabacionCobranzas.Rpdct = docAfecta.Rpdct; cobGrabacionCobranzas.Rpkco = docAfecta.Rpkco; cobGrabacionCobranzas.Rpsfx = docAfecta.Rpsfx; cobGrabacionCobranzas.DocAfectaSap = docAfecta.DocumentoSap; } if (cobGrabacionCobranzas.DocumentoSap == null) { cobGrabacionCobranzas.DocumentoSap = ""; } if (cobGrabacionCobranzas.EjercicioDocumentoSap == null) { cobGrabacionCobranzas.EjercicioDocumentoSap = ""; } await _unitOfWork.CobGrabacionCobranzasRepository.Add(cobGrabacionCobranzas); await _unitOfWork.SaveChangesAsync(); var generalCobranza = await _unitOfWork.GeneralCobranzaRepository.GetGeneralCobranzaDocumento((long)cobGrabacionCobranzas.Documento); generalCobranza.TotalDetalleCobrado = generalCobranza.MontoTransaccion - TotalDetalleRecibo((long)cobGrabacionCobranzas.Documento); await _unitOfWork.GeneralCobranzaRepository.Update(generalCobranza); await _unitOfWork.SaveChangesAsync(); return(cobGrabacionCobranzas); }
public async Task <Metadata> ValidaUpdateCobranza(CobGeneralCobranza generalCobranza) { Metadata metadata = new Metadata { IsValid = true, Message = "" }; CobGrabacionCobranzas cambiaRcRu = await _unitOfWork.GeneralCobranzaRepository.RCRUYaTieneCobranzaGrabada(generalCobranza.Documento); if (cambiaRcRu != null && generalCobranza.IdTipoTransaccion == "RET") { //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."); metadata.IsValid = false; metadata.Message = "Este recibo ya tiene cobranza registrada, para cambiarlo a retención debe eliminarla."; } CobGrabacionCobranzas cambiaRet = await _unitOfWork.GeneralCobranzaRepository.RETYaTieneCobranzaGrabada(generalCobranza.Documento); if (cambiaRet != null && generalCobranza.IdTipoTransaccion != "RET") { //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."); metadata.IsValid = false; metadata.Message = "Este recibo ya tiene retenciones registradas, para cambiarla a cobranza debe eliminarla."; } return(metadata); }
public async Task <IActionResult> Delete(CobGrabacionCobranzaDto cobGrabacionCobranzaDto) { CobGrabacionCobranzaDto resultDto = new CobGrabacionCobranzaDto(); Metadata metadata = new Metadata { IsValid = true, Message = "" }; CobGrabacionCobranzas cobGrabacionCobranza = _mapper.Map <CobGrabacionCobranzas>(cobGrabacionCobranzaDto); bool cobranza = await _cobGrabacionCobranzasService.Delete(cobGrabacionCobranza.Id); if (cobranza) { metadata.IsValid = true; metadata.Message = "Actualizado Satisfactoriamente"; } else { metadata.IsValid = false; metadata.Message = "Registro No actualizado"; } ApiResponse <CobGrabacionCobranzaDto> response = new ApiResponse <CobGrabacionCobranzaDto>(resultDto) { Meta = metadata, }; return(Ok(response)); }
public async Task <CobGrabacionCobranzas> Update(CobGrabacionCobranzas cobGrabacionCobranzas) { var cobranza = await GetById(cobGrabacionCobranzas.Id); if (cobranza == null) { throw new Exception("Documento No existe"); } cobranza.Monto = cobGrabacionCobranzas.Monto; cobranza.Transaccion = cobGrabacionCobranzas.Transaccion; cobranza.Cotizacion = cobGrabacionCobranzas.Cotizacion; cobranza.DocAfecta = cobGrabacionCobranzas.DocAfecta; var docAfecta = await _unitOfWork.CobEstadoDeCuentaRepository.GetById(cobGrabacionCobranzas.DocAfecta); if (docAfecta != null) { cobranza.Rpdoc = docAfecta.Rpdoc; cobranza.Rpdct = docAfecta.Rpdct; cobranza.Rpkco = docAfecta.Rpkco; cobranza.Rpsfx = docAfecta.Rpsfx; cobranza.DocAfectaSap = docAfecta.DocumentoSap; } if (cobGrabacionCobranzas.DocumentoSap == null) { cobGrabacionCobranzas.DocumentoSap = ""; } if (cobGrabacionCobranzas.EjercicioDocumentoSap == null) { cobGrabacionCobranzas.EjercicioDocumentoSap = ""; } await _unitOfWork.CobGrabacionCobranzasRepository.Update(cobranza); await _unitOfWork.SaveChangesAsync(); var generalCobranza = await _unitOfWork.GeneralCobranzaRepository.GetGeneralCobranzaDocumento((long)cobGrabacionCobranzas.Documento); generalCobranza.TotalDetalleCobrado = generalCobranza.MontoTransaccion - TotalDetalleRecibo((long)cobGrabacionCobranzas.Documento); await _unitOfWork.GeneralCobranzaRepository.Update(generalCobranza); await _unitOfWork.SaveChangesAsync(); return(await GetById(cobGrabacionCobranzas.Id)); }
public async Task Delete(long id) { CobGrabacionCobranzas entity = await GetById(id); _context.CobGrabacionCobranzas.Remove(entity); }
public async Task Update(CobGrabacionCobranzas entity) { _context.CobGrabacionCobranzas.Update(entity); }
public async Task Add(CobGrabacionCobranzas entity) { await _context.CobGrabacionCobranzas.AddAsync(entity); }
public async Task <CobGrabacionCobranzas> RETYaTieneCobranzaGrabada(long documento) { CobGrabacionCobranzas row = await _context.CobGrabacionCobranzas.Where(x => x.Documento == documento && x.Transaccion == "RE").FirstOrDefaultAsync(); return(row); }
public async Task <IActionResult> Update(CobGrabacionCobranzaDto cobGrabacionCobranzaDto) { CobGrabacionCobranzaDto resultDto = new CobGrabacionCobranzaDto(); Metadata metadata = new Metadata { IsValid = true, Message = "" }; ApiResponse <CobGrabacionCobranzaDto> response = new ApiResponse <CobGrabacionCobranzaDto>(resultDto); CobGrabacionCobranzas cobGrabacionCobranza = _mapper.Map <CobGrabacionCobranzas>(cobGrabacionCobranzaDto); CobGeneralCobranza generalCobranza = await _generalCobranzaService.GetGeneralCobranzaPorDocumento((long)cobGrabacionCobranza.Documento); MtrTipoMoneda tipomoneda = await _mtrTipoMonedaService.GetById((long)generalCobranza.IdMtrTipoMoneda); CobEstadoDeCuenta estadoCuenta = await _cobEstadoCuentaService.GetEstadoCuentaById(cobGrabacionCobranzaDto.DocAfecta); if (estadoCuenta != null) { CobGrabacionCobranzas grabacionActual = await _cobGrabacionCobranzasService.GetById(cobGrabacionCobranzaDto.Id); if (cobGrabacionCobranzaDto.Transaccion != "RU") { if (generalCobranza.IdTipoTransaccion != "RET") { bool existeMonedaDocumentoMonedaPago = await _cobMatrixMonedaValidaPagoService.ExisteMonedaDocumentoMonedaPago(estadoCuenta.Moneda, tipomoneda.Descripcion); if (!existeMonedaDocumentoMonedaPago) { metadata.IsValid = false; metadata.Message = "Esta intentando grabar cobro en moneda no valida a el Recibo"; response.Meta = metadata; return(Ok(response)); } } decimal totalAfectadoDocumento = _cobGrabacionCobranzasService.TotalAfectadoDocumento((long)cobGrabacionCobranzaDto.Documento, cobGrabacionCobranzaDto.DocAfecta); decimal totalAfectadoDocumentoResta = totalAfectadoDocumento - (decimal)grabacionActual.Monto; if (totalAfectadoDocumentoResta + (decimal)cobGrabacionCobranzaDto.Monto > (decimal)estadoCuenta.Rpaap) { metadata.IsValid = false; metadata.Message = "Esta intentando grabar monto superior al saldo del documento:" + "Total registrado en recibo: " + totalAfectadoDocumento.ToString() + "Saldo documento: " + estadoCuenta.Rpaap.ToString(); response.Meta = metadata; return(Ok(response)); } } } CobGrabacionCobranzas grabacionCobranzaActual = await _cobGrabacionCobranzasService.GetById(cobGrabacionCobranzaDto.Id); if (grabacionCobranzaActual.DocumentoSap.Length > 1) { metadata.IsValid = false; metadata.Message = "Esta intentando modificar un cobro ya contabilizado"; response.Meta = metadata; return(Ok(response)); } CobGrabacionCobranzas cobranza = await _cobGrabacionCobranzasService.Update(cobGrabacionCobranza); if (cobranza != null) { resultDto = _mapper.Map <CobGrabacionCobranzaDto>(cobranza); metadata.IsValid = true; metadata.Message = "Actualizado Satisfactoriamente"; } else { metadata.IsValid = false; metadata.Message = "Registro No actualizado"; } //ApiResponse<CobGrabacionCobranzaDto> response = new ApiResponse<CobGrabacionCobranzaDto>(resultDto) //{ // Meta = metadata, //}; response.Meta = metadata; response.Data = resultDto; return(Ok(response)); }
public async Task <IActionResult> Insert(CobGrabacionCobranzaDto cobGrabacionCobranzaDto) { CobGrabacionCobranzaDto resultDto = new CobGrabacionCobranzaDto(); Metadata metadata = new Metadata { IsValid = true, Message = "" }; ApiResponse <CobGrabacionCobranzaDto> response = new ApiResponse <CobGrabacionCobranzaDto>(resultDto); try { CobGeneralCobranza generalCobranza = await _generalCobranzaService.GetGeneralCobranzaPorDocumento((long)cobGrabacionCobranzaDto.Documento); if (cobGrabacionCobranzaDto.Transaccion == "RU" && generalCobranza.FlagPagoMas != true) { OfdCotizacion cotizacion = new OfdCotizacion(); cotizacion = await _ofdCotizacionService.GetCotizacion(cobGrabacionCobranzaDto.Cotizacion); if (cotizacion != null) { if (cotizacion.IdCliente == generalCobranza.IdCliente) { metadata.IsValid = true; metadata.Message = ""; } else { metadata.IsValid = false; metadata.Message = "Cotizacion no pertenece a este cliente!!! " + generalCobranza.IdCliente; response.Meta = metadata; response.Data = resultDto; return(Ok(response)); } } else { metadata.IsValid = false; metadata.Message = "Cotizacion no existe!!!"; response.Meta = metadata; response.Data = resultDto; return(Ok(response)); } } CobGrabacionCobranzas cobGrabacionCobranza = _mapper.Map <CobGrabacionCobranzas>(cobGrabacionCobranzaDto); MtrTipoMoneda tipomoneda = await _mtrTipoMonedaService.GetById((long)generalCobranza.IdMtrTipoMoneda); bool dividirPagoImpuesto = false; CobEstadoDeCuenta estadoCuenta = await _cobEstadoCuentaService.GetEstadoCuentaById(cobGrabacionCobranzaDto.DocAfecta); if (estadoCuenta != null) { if (cobGrabacionCobranzaDto.Transaccion != "RU") { if (generalCobranza.IdTipoTransaccion != "RET") { bool existeMonedaDocumentoMonedaPago = await _cobMatrixMonedaValidaPagoService.ExisteMonedaDocumentoMonedaPago(estadoCuenta.Moneda, tipomoneda.Descripcion); if (!existeMonedaDocumentoMonedaPago) { metadata.IsValid = false; metadata.Message = "Esta intentando grabar cobro en moneda no valida a el Recibo"; response.Meta = metadata; return(Ok(response)); } decimal totalAfectadoDocumento = _cobGrabacionCobranzasService.TotalAfectadoDocumento((long)cobGrabacionCobranzaDto.Documento, cobGrabacionCobranzaDto.DocAfecta); if (totalAfectadoDocumento + (decimal)cobGrabacionCobranzaDto.Monto > (decimal)estadoCuenta.Rpaap) { metadata.IsValid = false; metadata.Message = "Esta intentando grabar monto superior al saldo del documento:" + "Total registrado en recibo: " + totalAfectadoDocumento.ToString() + "Saldo documento: " + estadoCuenta.Rpaap.ToString(); return(Ok(response)); } } } if (cobGrabacionCobranzaDto.Monto > estadoCuenta.BaseImponible && cobGrabacionCobranzaDto.Transaccion != "RE" && tipomoneda.Descripcion == estadoCuenta.Moneda) { dividirPagoImpuesto = true; } } if (!dividirPagoImpuesto) { cobGrabacionCobranza.PagoCorrespondeIva = false; CobGrabacionCobranzas cobranza = await _cobGrabacionCobranzasService.Insert(cobGrabacionCobranza); if (cobranza != null) { resultDto = _mapper.Map <CobGrabacionCobranzaDto>(cobranza); metadata.IsValid = true; metadata.Message = "Creado Satisfactoriamente"; } else { metadata.IsValid = false; metadata.Message = "Registro No actualizado"; } } else { CobGrabacionCobranzas cobGrabacionCobranzaImpuesto = _mapper.Map <CobGrabacionCobranzas>(cobGrabacionCobranzaDto); decimal?montoGrabado = cobGrabacionCobranza.Monto; cobGrabacionCobranza.Monto = estadoCuenta.BaseImponible; cobGrabacionCobranza.PagoCorrespondeIva = false; CobGrabacionCobranzas cobranza = await _cobGrabacionCobranzasService.Insert(cobGrabacionCobranza); cobGrabacionCobranzaImpuesto.Monto = montoGrabado - estadoCuenta.BaseImponible; cobGrabacionCobranzaImpuesto.PagoCorrespondeIva = true; CobGrabacionCobranzas cobranzaImpuesto = await _cobGrabacionCobranzasService.Insert(cobGrabacionCobranzaImpuesto); if (cobranza != null) { resultDto = _mapper.Map <CobGrabacionCobranzaDto>(cobranza); metadata.IsValid = true; metadata.Message = "Creado Satisfactoriamente"; } else { metadata.IsValid = false; metadata.Message = "Registro No actualizado"; } } //ApiResponse<CobGrabacionCobranzaDto> response = new ApiResponse<CobGrabacionCobranzaDto>(resultDto) //{ // Meta = metadata, //}; response.Meta = metadata; response.Data = resultDto; return(Ok(response)); } catch (Exception ex) { metadata.IsValid = false; metadata.Message = ex.InnerException.Message; response.Meta = metadata; response.Data = resultDto; //ApiResponse<CobGrabacionCobranzaDto> response = new ApiResponse<CobGrabacionCobranzaDto>(resultDto) //{ // Meta = metadata, //}; return(Ok(response)); } }