ernesto logo
Torna al Magazine
Installazione di impianto sonoro: come trovare impiantisti
consigli
Installazione di impianto sonoro: come trovare impiantisti

Trovare un Impiantista per l'Installazione di un Impianto Sonoro.

Ricerca di un Tecnico per l'Installazione di un Impianto Audio.

Scopri come scegliere il giusto impiantista per l'installazione di un impianto sonoro. In questo articolo, esploreremo i fattori chiave da considerare, le migliori pratiche per garantire un'installazione di successo e come Ernesto.it può aiutarti con servizi di ristrutturazione e progettazione edilizia per ottimizzare il tuo spazio.

Trova professionisti vicino a te

Trova professionisti
package com.helmet.application.agy; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.sql.Date; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.util.MessageResources; import org.apache.struts.validator.DynaValidatorForm; import org.slf4j.ext.XLogger; import org.slf4j.ext.XLoggerFactory; import com.helmet.api.AgyService; import com.helmet.api.ServiceFactory; import com.helmet.application.FileHandler; import com.helmet.application.agy.abztract.AgyAction; import com.helmet.bean.Client; import com.helmet.bean.ClientUser; import com.helmet.bean.Location; import com.helmet.bean.NhsBookingUser; import com.helmet.bean.Order; import com.helmet.bean.OrderLine; import com.helmet.bean.SubcontractInvoiceItem; import com.helmet.bean.SubcontractInvoiceUser; import com.helmet.bean.SubcontractInvoiceUserEntity; public class SubcontractInvoiceCreateSubmitProcess extends AgyAction { protected transient XLogger logger = XLoggerFactory.getXLogger(getClass()); public String doExecute(DynaValidatorForm dynaForm, HttpServletRequest request, HttpServletResponse response) { if (isCancelled(request)) { dynaForm.set("page", (String)dynaForm.get("page")); return "success"; } Order order = (Order)dynaForm.get("order"); Location location = (Location)dynaForm.get("location"); Client client = (Client)dynaForm.get("client"); ClientUser clientUser = (ClientUser)dynaForm.get("clientUser"); NhsBookingUser nhsBookingUser = (NhsBookingUser)dynaForm.get("nhsBookingUser"); // List listSubcontractInvoiceUser = (List)dynaForm.get("listSubcontractInvoiceUser"); List listSubcontractInvoiceUserToSave = new ArrayList(); BigDecimal totalInvoiceValue = BigDecimal.ZERO; for (SubcontractInvoiceUser subcontractInvoiceUser : listSubcontractInvoiceUser) { BigDecimal invoiceValue = BigDecimal.ZERO; List listSubcontractInvoiceUserEntity = subcontractInvoiceUser.getListSubcontractInvoiceUserEntity(); List listSubcontractInvoiceUserEntityToSave = new ArrayList(); for (SubcontractInvoiceUserEntity subcontractInvoiceUserEntity : listSubcontractInvoiceUserEntity) { BigDecimal invoiceValueEntity = BigDecimal.ZERO; List listSubcontractInvoiceItem = subcontractInvoiceUserEntity.getListSubcontractInvoiceItem(); List listSubcontractInvoiceItemToSave = new ArrayList(); for (SubcontractInvoiceItem subcontractInvoiceItem : listSubcontractInvoiceItem) { if (subcontractInvoiceItem.getQuantity() != null && subcontractInvoiceItem.getRate() != null) { BigDecimal invoiceValueItem = subcontractInvoiceItem.getQuantity().multiply(subcontractInvoiceItem.getRate()); subcontractInvoiceItem.setInvoiceValue(invoiceValueItem); listSubcontractInvoiceItemToSave.add(subcontractInvoiceItem); invoiceValueEntity = invoiceValueEntity.add(invoiceValueItem); } } subcontractInvoiceUserEntity.setListSubcontractInvoiceItem(listSubcontractInvoiceItemToSave); subcontractInvoiceUserEntity.setInvoiceValue(invoiceValueEntity); invoiceValue = invoiceValue.add(invoiceValueEntity); listSubcontractInvoiceUserEntityToSave.add(subcontractInvoiceUserEntity); } subcontractInvoiceUser.setListSubcontractInvoiceUserEntity(listSubcontractInvoiceUserEntityToSave); subcontractInvoiceUser.setInvoiceValue(invoiceValue); totalInvoiceValue = totalInvoiceValue.add(invoiceValue); listSubcontractInvoiceUserToSave.add(subcontractInvoiceUser); } dynaForm.set("listSubcontractInvoiceUser", listSubcontractInvoiceUserToSave); dynaForm.set("totalInvoiceValue", totalInvoiceValue); // MessageResources messageResources = getResources(request); ActionMessages errors = new ActionMessages(); if (totalInvoiceValue.compareTo(BigDecimal.ZERO) != 1) { errors.add("subcontractInvoice", new ActionMessage("errors.subcontractInvoice.invoiceValueZero")); } if (!errors.isEmpty()) { saveErrors(request, errors); return "error"; } String fileName = FileHandler.getInstance().getNhsBackingReportFileName(messageResources, order, location, client, clientUser, nhsBookingUser); File file = new File(fileName); try { FileOutputStream outputStream = new FileOutputStream(file); writeSubcontractInvoiceReport(messageResources, order, location, client, clientUser, nhsBookingUser, listSubcontractInvoiceUser, outputStream); outputStream.close(); outputStream = null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // AgyService agyService = ServiceFactory.getInstance().getAgyService(); int rowCount = agyService.insertSubcontractInvoice(order, location, client, clientUser, nhsBookingUser, listSubcontractInvoiceUser, getConsultantLoggedIn().getConsultantId()); if (rowCount == 0) { errors.add("subcontractInvoice", new ActionMessage("errors.subcontractInvoice.notCreated")); saveErrors(request, errors); return "error"; } return "success"; } protected void writeSubcontractInvoiceReport(MessageResources messageResources, Order order, Location location, Client client, ClientUser clientUser, NhsBookingUser nhsBookingUser, List listSubcontractInvoiceUser, FileOutputStream outputStream) throws IOException { StringBuffer sb = new StringBuffer(); sb.append(StringUtils.rightPad("Subcontract Invoice", 100, '=') + "\n"); sb.append(StringUtils.rightPad("Order: " + order.getOrderNumber(), 100, ' ') + "\n"); sb.append(StringUtils.rightPad("Location: " + location.getName(), 100, ' ') + "\n"); sb.append(StringUtils.rightPad("Client: " + client.getName(), 100, ' ') + "\n"); sb.append(StringUtils.rightPad("Client User: " + clientUser.getName(), 100, ' ') + "\n"); sb.append(StringUtils.rightPad("NHS Booking User: " + nhsBookingUser.getName(), 100, ' ') + "\n"); sb.append(StringUtils.rightPad("Invoice Date: " + new Date(System.currentTimeMillis()), 100, ' ') + "\n"); sb.append("\n"); sb.append(StringUtils.rightPad("SITE DETAILS", 100, '-') + "\n"); sb.append(StringUtils.rightPad("Order Line", 51, ' ') + StringUtils.rightPad("Quantity", 16, ' ') + StringUtils.rightPad("Rate", 16, ' ') + StringUtils.rightPad("Value", 16, ' ') + "\n"); List listOrderLine = order.getListOrderLine(); for (OrderLine orderLine : listOrderLine) { sb.append(StringUtils.rightPad(orderLine.getOrderLineNumber(), 51, ' ') + StringUtils.rightPad("1", 16, ' ') + StringUtils.rightPad("1", 16, ' ') + StringUtils.rightPad("1", 16, ' ') + "\n"); } sb.append("\n"); sb.append(StringUtils.rightPad("SITE STAFF DETAILS", 100, '-') + "\n"); for (SubcontractInvoiceUser subcontractInvoiceUser : listSubcontractInvoiceUser) { sb.append(StringUtils.rightPad("Name: " + subcontractInvoiceUser.getNhsBookingUser().getName(), 100, ' ') + "\n"); sb.append("\n"); List listSubcontractInvoiceUserEntity = subcontractInvoiceUser.getListSubcontractInvoiceUserEntity(); sb.append(StringUtils.rightPad("ROLE DETAILS", 100, '-') + "\n"); sb.append(StringUtils.rightPad("Role", 51, ' ') + StringUtils.rightPad("Quantity", 16, ' ') + StringUtils.rightPad("Rate", 16, ' ') + StringUtils.rightPad("Value", 16, ' ') + "\n"); for (SubcontractInvoiceUserEntity subcontractInvoiceUserEntity : listSubcontractInvoiceUserEntity) { sb.append(StringUtils.rightPad(messageResources.getMessage("label.role." + subcontractInvoiceUserEntity.getRoleId()), 51, ' ') + StringUtils.rightPad("1", 16, ' ') + StringUtils.rightPad("1", 16, ' ') + StringUtils.rightPad("1", 16, ' ') + "\n"); } sb.append("\n"); sb.append(StringUtils.rightPad("ENTITY DETAILS", 100, '-') + "\n"); sb.append(StringUtils.rightPad("Entity", 51, ' ') + StringUtils.rightPad("Quantity", 16, ' ') + StringUtils.rightPad("Rate", 16, ' ') + StringUtils.rightPad("Value", 16, ' ') + "\n"); for (SubcontractInvoiceUserEntity subcontractInvoiceUserEntity : listSubcontractInvoiceUserEntity) { List listSubcontractInvoiceItem = subcontractInvoiceUserEntity.getListSubcontractInvoiceItem(); for (SubcontractInvoiceItem subcontractInvoiceItem : listSubcontractInvoiceItem) { sb.append(StringUtils.rightPad(messageResources.getMessage("label.entity." + subcontractInvoiceItem.getEntityId()), 51, ' ') + StringUtils.rightPad(subcontractInvoiceItem.getQuantity().toString(), 16, ' ') + StringUtils.rightPad(subcontractInvoiceItem.getRate().toString(), 16, ' ') + StringUtils.rightPad(subcontractInvoiceItem.getInvoiceValue().toString(), 16, ' ') + "\n"); } } sb.append("\n"); } sb.append(StringUtils.rightPad("Invoice Value: " + order.getTotalInvoiceValue().toString(), 100, ' ') + "\n"); outputStream.write(sb.toString().getBytes()); } }
Ultimo aggiornamento
30 Mar 2025
Riccardo de Bernardinis
Riccardo de Bernardinis

Riccardo de Bernardinis è imprenditore digitale e fondatore di Ernesto.it, il marketplace italiano che connette clienti con professionisti per oltre 1.000 servizi in tutta Italia. Con un background in tecnologia, SEO e marketplace, Riccardo ha pubblicato migliaia di articoli focalizzati su prezzi dei servizi, lavori domestici, ristrutturazioni e consigli per risparmiare. Scrive attivamente su Ernesto.it dal 2016, con l’obiettivo di rendere il mondo dei servizi professionali più accessibile, trasparente e digitale.