Segue o voucher por anexo que deverá ser apresentado no momento da realização do serviço.
" + + "Qualquer informação pode ser obtida diretamente com o profissional, através do contato disponibilizado na plataforma.
" + + ""+ + "Atenciosamente,
" + + "Equipe ServiceBook.
" + + ""; + + String textProfessional = "" + + "Segue o voucher por anexo que deverá ser apresentado pelo cliente no momento da realização do serviço.
" + + "Serviço solicitado por: "+ oUser.get().getName() +".
" + + "Ele está disponível no seguinte link:
" + + ""+ + "Atenciosamente,
" + + "Equipe ServiceBook.
" + + ""; + + try { + + emailSenderService.sendHTMLEmail(email1, "Service Book - Comprovante de Pagamento", text); + emailSenderService.sendHTMLEmail(email1, "Service Book - Comprovante de Pagamento", textProfessional); + + } catch (MessagingException e) { + System.out.println(e.getMessage()); + } + } + + public byte[] generatePDF(String code, String service, String date, String professional, String client) throws JobExecutionException { + // criar PDF + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + PdfWriter pdfWriter = new PdfWriter(outputStream); + PdfDocument pdfDocument = new PdfDocument(pdfWriter); + Document document = new Document(pdfDocument); + + Text titleText = new Text("Comprovante de Pagamento\n\n") + .setFontSize(20) + .setBold(); + Paragraph titleParagraph = new Paragraph(titleText) + .setTextAlignment(TextAlignment.CENTER); + document.add(titleParagraph); + + Paragraph contentParagraph = new Paragraph() + .add(new Text("Voucher: ").setBold()) + .add(new Text(code)) + .add("\n") + .add(new Text("Serviço: ").setBold()) + .add(new Text(service)) + .add("\n") + .add(new Text("Data de Validade: ").setBold()) + .add(new Text(date)) + .add("\n\n") + .add(new Text("Profissional: : ").setBold()) + .add(new Text(professional)) + .add("\n\n") + .add(new Text("Cliente: ").setBold()) + .add(new Text(client)) + .add("\n\n"); + document.add(contentParagraph); + + document.close(); + return outputStream.toByteArray(); + } +} diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/ClientMinDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/ClientMinDTO.java index 395bfc48..5feafebc 100644 --- a/src/main/java/br/edu/utfpr/servicebook/model/dto/ClientMinDTO.java +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/ClientMinDTO.java @@ -1,5 +1,6 @@ package br.edu.utfpr.servicebook.model.dto; +import br.edu.utfpr.servicebook.util.IWizardDTO; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,9 +10,9 @@ @Data @NoArgsConstructor @AllArgsConstructor -public class ClientMinDTO implements Serializable { +public class ClientMinDTO extends UserDTO implements IWizardDTO, Serializable{ private String name; - private AddressMinDTO address; +// private AddressMinDTO address; } diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/JobRequestMinDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/JobRequestMinDTO.java index 8e40a8fc..095225cb 100644 --- a/src/main/java/br/edu/utfpr/servicebook/model/dto/JobRequestMinDTO.java +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/JobRequestMinDTO.java @@ -19,6 +19,8 @@ public class JobRequestMinDTO implements Serializable { private ExpertiseDTO expertiseDTO; + private ClientDTO clientDTO; + private String dateCreated; private String dateTarget; diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentDTO.java new file mode 100644 index 00000000..be5a0cdb --- /dev/null +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentDTO.java @@ -0,0 +1,18 @@ +package br.edu.utfpr.servicebook.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PaymentDTO { + @NotEmpty(message = "O identificador do pagamento é obrigatório") + private Integer paymentId; + + @NotEmpty(message = "O status do pagamento é obrigatório") + private String status; +} diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentJobDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentJobDTO.java new file mode 100644 index 00000000..673cb931 --- /dev/null +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentJobDTO.java @@ -0,0 +1,14 @@ +package br.edu.utfpr.servicebook.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PaymentJobDTO { + private Long id; + private Long jobRequestId; + private Long paymentId; +} diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentVoucherDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentVoucherDTO.java new file mode 100644 index 00000000..43ce8d81 --- /dev/null +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/PaymentVoucherDTO.java @@ -0,0 +1,22 @@ +package br.edu.utfpr.servicebook.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class PaymentVoucherDTO implements Serializable { + private Long id; + private Long paymentId; + private Long clientId; + private Long professionalId; + private Long jobRequestId; + + private String code; +} diff --git a/src/main/java/br/edu/utfpr/servicebook/model/dto/ProfessionalServiceOfferingDTO.java b/src/main/java/br/edu/utfpr/servicebook/model/dto/ProfessionalServiceOfferingDTO.java index 01c3d995..ba995c5f 100644 --- a/src/main/java/br/edu/utfpr/servicebook/model/dto/ProfessionalServiceOfferingDTO.java +++ b/src/main/java/br/edu/utfpr/servicebook/model/dto/ProfessionalServiceOfferingDTO.java @@ -1,11 +1,13 @@ package br.edu.utfpr.servicebook.model.dto; +import br.edu.utfpr.servicebook.model.entity.ProfessionalServicePackageOffering; import br.edu.utfpr.servicebook.model.entity.Service; import br.edu.utfpr.servicebook.model.entity.User; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; +import java.util.Set; /** * Classe que representa um serviço adicionado por um profissional ao seu portfólio. @@ -19,6 +21,13 @@ public class ProfessionalServiceOfferingDTO { private Long id; + public enum Type { + INDIVIDUAL, + COMBINED_PACKAGE, + SIMPLE_PACKAGE + } + + private Type type; /** * Nome do serviço. * O profissional pode customizar o nome do serviço cadastrado pelo administrador de várias maneiras, dependendo @@ -34,6 +43,17 @@ public class ProfessionalServiceOfferingDTO { * Caso ele não especifique a descrição do serviço, a descrição do serviço cadastrado pelo administrador será usada. */ private String description; + private Set