use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class ProductoServiceImpl method eliminarMultiplesProductos.
@Override
@Transactional
public void eliminarMultiplesProductos(long[] idProducto) {
if (Validator.tieneDuplicados(idProducto)) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_ids_duplicados"));
}
List<Producto> productos = new ArrayList<>();
for (Long i : idProducto) {
Producto producto = this.getProductoPorId(i);
if (producto == null) {
throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_no_existente"));
}
producto.setEliminado(true);
productos.add(producto);
}
productoRepository.save(productos);
}
use of sic.service.BusinessServiceException in project sic by belluccifranco.
the class AfipServiceImpl method getAfipWSAACredencial.
@Override
public AfipWSAACredencial getAfipWSAACredencial(String afipNombreServicio, Empresa empresa) {
AfipWSAACredencial afipCredencial = new AfipWSAACredencial();
String loginTicketResponse = "";
byte[] p12file = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(empresa).getCertificadoAfip();
if (p12file.length == 0) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_cds_certificado_vacio"));
}
String p12signer = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(empresa).getFirmanteCertificadoAfip();
String p12pass = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(empresa).getPasswordCertificadoAfip();
//siempre devuelve por 12hs
long ticketTime = 3600000L;
byte[] loginTicketRequest_xml_cms = afipWebServiceSOAPClient.crearCMS(p12file, p12pass, p12signer, afipNombreServicio, ticketTime);
LoginCms loginCms = new LoginCms();
loginCms.setIn0(Base64.getEncoder().encodeToString(loginTicketRequest_xml_cms));
try {
loginTicketResponse = afipWebServiceSOAPClient.loginCMS(loginCms);
} catch (WebServiceClientException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_token_wsaa_error"));
}
try {
Reader tokenReader = new StringReader(loginTicketResponse);
Document tokenDoc = new SAXReader(false).read(tokenReader);
afipCredencial.setToken(tokenDoc.valueOf("/loginTicketResponse/credentials/token"));
afipCredencial.setSign(tokenDoc.valueOf("/loginTicketResponse/credentials/sign"));
afipCredencial.setCuit(empresa.getCuip());
} catch (DocumentException ex) {
LOGGER.error(ex.getMessage());
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_procesando_xml"));
}
return afipCredencial;
}
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 GastoServiceImpl method eliminar.
@Override
@Transactional
public void eliminar(long idGasto) {
Gasto gastoParaEliminar = this.getGastoPorId(idGasto);
if (this.cajaService.getUltimaCaja(gastoParaEliminar.getEmpresa().getId_Empresa()).getEstado().equals(EstadoCaja.CERRADA)) {
throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_gasto_caja_cerrada"));
}
gastoParaEliminar.setEliminado(true);
gastoRepository.save(gastoParaEliminar);
}
Aggregations