use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class AfipServiceImpl method autorizarFacturaVenta.
@Override
public FacturaVenta autorizarFacturaVenta(FacturaVenta factura) {
if (configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(factura.getEmpresa()).isFacturaElectronicaHabilitada() == false) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_cds_fe_habilitada"));
}
if (factura.getTipoComprobante() != TipoDeComprobante.FACTURA_A && factura.getTipoComprobante() != TipoDeComprobante.FACTURA_B && factura.getTipoComprobante() != TipoDeComprobante.FACTURA_C) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_tipo_no_valido"));
}
if (factura.getCAE() != 0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_ya_autorizada"));
}
AfipWSAACredencial afipCredencial = this.getAfipWSAACredencial("wsfe", factura.getEmpresa());
FEAuthRequest feAuthRequest = new FEAuthRequest();
feAuthRequest.setCuit(afipCredencial.getCuit());
feAuthRequest.setSign(afipCredencial.getSign());
feAuthRequest.setToken(afipCredencial.getToken());
FECAESolicitar fecaeSolicitud = new FECAESolicitar();
fecaeSolicitud.setAuth(feAuthRequest);
int nroPuntoDeVentaAfip = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(factura.getEmpresa()).getNroPuntoDeVentaAfip();
int siguienteNroComprobante = this.getSiguienteNroComprobante(feAuthRequest, factura.getTipoComprobante(), nroPuntoDeVentaAfip);
fecaeSolicitud.setFeCAEReq(this.transformFacturaVentaToFECAERequest(factura, siguienteNroComprobante, nroPuntoDeVentaAfip));
try {
FECAEResponse response = afipWebServiceSOAPClient.FECAESolicitar(fecaeSolicitud);
String msjError = "";
// errores generales de la request
if (response.getErrors() != null) {
msjError = response.getErrors().getErr().get(0).getCode() + "-" + response.getErrors().getErr().get(0).getMsg();
LOGGER.error(msjError);
if (!msjError.isEmpty()) {
throw new BusinessServiceException(msjError);
}
}
// errores particulares de cada comprobante
if (response.getFeDetResp().getFECAEDetResponse().get(0).getResultado().equals("R")) {
msjError += response.getFeDetResp().getFECAEDetResponse().get(0).getObservaciones().getObs().get(0).getMsg();
LOGGER.error(msjError);
throw new BusinessServiceException(msjError);
}
long cae = Long.valueOf(response.getFeDetResp().getFECAEDetResponse().get(0).getCAE());
factura.setCAE(cae);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
factura.setVencimientoCAE(formatter.parse(response.getFeDetResp().getFECAEDetResponse().get(0).getCAEFchVto()));
factura.setNumSerieAfip(nroPuntoDeVentaAfip);
factura.setNumFacturaAfip(siguienteNroComprobante);
return factura;
} catch (WebServiceClientException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_autorizacion_error"));
} catch (ParseException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_procesando_fecha"));
}
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class AfipWebServiceSOAPClient method crearTicketRequerimientoAcceso.
public String crearTicketRequerimientoAcceso(String service, long ticketTime) {
Date now = new Date();
GregorianCalendar genenerationTime = new GregorianCalendar();
GregorianCalendar expirationTime = new GregorianCalendar();
DatatypeFactory datatypeFactory = null;
String uniqueId = Long.toString(now.getTime() / 1000);
expirationTime.setTime(new Date(now.getTime() + ticketTime));
try {
datatypeFactory = DatatypeFactory.newInstance();
} catch (DatatypeConfigurationException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_xml_factory"));
}
XMLGregorianCalendar XMLGenTime = datatypeFactory.newXMLGregorianCalendar(genenerationTime);
XMLGregorianCalendar XMLExpTime = datatypeFactory.newXMLGregorianCalendar(expirationTime);
String LoginTicketRequest_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + "<loginTicketRequest version=\"1.0\">" + "<header>" + "<uniqueId>" + uniqueId + "</uniqueId>" + "<generationTime>" + XMLGenTime + "</generationTime>" + "<expirationTime>" + XMLExpTime + "</expirationTime>" + "</header>" + "<service>" + service + "</service>" + "</loginTicketRequest>";
return LoginTicketRequest_xml;
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class CajaServiceImpl method getCajasCriteria.
@Override
public List<Caja> getCajasCriteria(BusquedaCajaCriteria criteria) {
//Empresa
if (criteria.getEmpresa() == null) {
throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
}
//Fecha
if (criteria.isBuscaPorFecha() == true && (criteria.getFechaDesde() == null || criteria.getFechaHasta() == null)) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_caja_fechas_invalidas"));
}
if (criteria.isBuscaPorFecha() == true) {
Calendar cal = new GregorianCalendar();
cal.setTime(criteria.getFechaDesde());
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
criteria.setFechaDesde(cal.getTime());
cal.setTime(criteria.getFechaHasta());
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
criteria.setFechaHasta(cal.getTime());
}
if (criteria.getEmpresa() == null) {
throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
}
QCaja qcaja = QCaja.caja;
BooleanBuilder builder = new BooleanBuilder();
builder.and(qcaja.empresa.eq(criteria.getEmpresa()).and(qcaja.eliminada.eq(false)));
if (criteria.isBuscaPorUsuario() == true) {
builder.and(qcaja.usuarioCierraCaja.eq(criteria.getUsuario()));
}
if (criteria.isBuscaPorFecha() == true) {
FormatterFechaHora formateadorFecha = new FormatterFechaHora(FormatterFechaHora.FORMATO_FECHAHORA_INTERNACIONAL);
DateExpression<Date> fDesde = Expressions.dateTemplate(Date.class, "convert({0}, datetime)", formateadorFecha.format(criteria.getFechaDesde()));
DateExpression<Date> fHasta = Expressions.dateTemplate(Date.class, "convert({0}, datetime)", formateadorFecha.format(criteria.getFechaHasta()));
builder.and(qcaja.fechaApertura.between(fDesde, fHasta));
}
List<Caja> cajas = new ArrayList<>();
cajaRepository.findAll(builder, new Sort(Sort.Direction.DESC, "fechaApertura")).iterator().forEachRemaining(cajas::add);
return cajas;
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class EmpresaServiceImpl method validarOperacion.
private void validarOperacion(TipoDeOperacion operacion, Empresa empresa) {
//Entrada de Datos
if (!Validator.esEmailValido(empresa.getEmail())) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_email_invalido"));
}
//Requeridos
if (Validator.esVacio(empresa.getNombre())) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_vacio_nombre"));
}
if (Validator.esVacio(empresa.getDireccion())) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_vacio_direccion"));
}
if (empresa.getCondicionIVA() == null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_vacio_condicionIVA"));
}
if (empresa.getLocalidad() == null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_vacio_localidad"));
}
//Duplicados
//Nombre
Empresa empresaDuplicada = this.getEmpresaPorNombre(empresa.getNombre());
if (operacion.equals(TipoDeOperacion.ALTA) && empresaDuplicada != null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_duplicado_nombre"));
}
if (operacion.equals(TipoDeOperacion.ACTUALIZACION)) {
if (empresaDuplicada != null && empresaDuplicada.getId_Empresa() != empresa.getId_Empresa()) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_duplicado_nombre"));
}
}
//CUIP
empresaDuplicada = this.getEmpresaPorCUIP(empresa.getCuip());
if (operacion.equals(TipoDeOperacion.ALTA) && empresaDuplicada != null && empresa.getCuip() != 0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_duplicado_cuip"));
}
if (operacion.equals(TipoDeOperacion.ACTUALIZACION)) {
if (empresaDuplicada != null && empresaDuplicada.getId_Empresa() != empresa.getId_Empresa() && empresa.getCuip() != 0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_duplicado_cuip"));
}
}
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class FacturaServiceImpl method buscarFacturaCompra.
@Override
public List<FacturaCompra> buscarFacturaCompra(BusquedaFacturaCompraCriteria criteria) {
//Empresa
if (criteria.getEmpresa() == null) {
throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
}
//Fecha de Factura
if (criteria.isBuscaPorFecha() == true & (criteria.getFechaDesde() == null | criteria.getFechaHasta() == null)) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_fechas_busqueda_invalidas"));
}
if (criteria.isBuscaPorFecha() == true) {
Calendar cal = new GregorianCalendar();
cal.setTime(criteria.getFechaDesde());
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
criteria.setFechaDesde(cal.getTime());
cal.setTime(criteria.getFechaHasta());
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
criteria.setFechaHasta(cal.getTime());
}
//Proveedor
if (criteria.isBuscaPorProveedor() == true && criteria.getProveedor() == null) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_factura_proveedor_vacio"));
}
return facturaRepository.buscarFacturasCompra(criteria);
}
Aggregations