Search in sources :

Example 6 with BusinessServiceException

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"));
    }
}
Also used : AfipWSAACredencial(sic.modelo.AfipWSAACredencial) FECAEResponse(afip.wsfe.wsdl.FECAEResponse) BusinessServiceException(sic.service.BusinessServiceException) FEAuthRequest(afip.wsfe.wsdl.FEAuthRequest) WebServiceClientException(org.springframework.ws.client.WebServiceClientException) FECAESolicitar(afip.wsfe.wsdl.FECAESolicitar) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat)

Example 7 with BusinessServiceException

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;
}
Also used : DatatypeConfigurationException(javax.xml.datatype.DatatypeConfigurationException) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) BusinessServiceException(sic.service.BusinessServiceException) DatatypeFactory(javax.xml.datatype.DatatypeFactory) GregorianCalendar(java.util.GregorianCalendar) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) Date(java.util.Date)

Example 8 with BusinessServiceException

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;
}
Also used : FormatterFechaHora(sic.util.FormatterFechaHora) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) GregorianCalendar(java.util.GregorianCalendar) ArrayList(java.util.ArrayList) Caja(sic.modelo.Caja) QCaja(sic.modelo.QCaja) EstadoCaja(sic.modelo.EstadoCaja) EntityNotFoundException(javax.persistence.EntityNotFoundException) Date(java.util.Date) LocalDate(java.time.LocalDate) BusinessServiceException(sic.service.BusinessServiceException) QCaja(sic.modelo.QCaja) BooleanBuilder(com.querydsl.core.BooleanBuilder) Sort(org.springframework.data.domain.Sort)

Example 9 with BusinessServiceException

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"));
        }
    }
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) Empresa(sic.modelo.Empresa)

Example 10 with BusinessServiceException

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);
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) GregorianCalendar(java.util.GregorianCalendar) EntityNotFoundException(javax.persistence.EntityNotFoundException)

Aggregations

BusinessServiceException (sic.service.BusinessServiceException)23 GregorianCalendar (java.util.GregorianCalendar)12 Calendar (java.util.Calendar)11 EntityNotFoundException (javax.persistence.EntityNotFoundException)11 ArrayList (java.util.ArrayList)6 Date (java.util.Date)5 Transactional (org.springframework.transaction.annotation.Transactional)5 BooleanBuilder (com.querydsl.core.BooleanBuilder)3 WebServiceClientException (org.springframework.ws.client.WebServiceClientException)3 QProducto (sic.modelo.QProducto)3 Sort (org.springframework.data.domain.Sort)2 AfipWSAACredencial (sic.modelo.AfipWSAACredencial)2 Factura (sic.modelo.Factura)2 Producto (sic.modelo.Producto)2 RenglonFactura (sic.modelo.RenglonFactura)2 FormatterFechaHora (sic.util.FormatterFechaHora)2 LoginCms (afip.wsaa.wsdl.LoginCms)1 AlicIva (afip.wsfe.wsdl.AlicIva)1 ArrayOfAlicIva (afip.wsfe.wsdl.ArrayOfAlicIva)1 ArrayOfFECAEDetRequest (afip.wsfe.wsdl.ArrayOfFECAEDetRequest)1