```mermaid
graph TD
a((Inicio))
z((Fim))
a --> selectCDT[Selecionar CDT]
selectCDT --> selectPrinter[Selecionar Posto/Impressora]
selectPrinter --> submitPrint[Submeter Impressão]
submitPrint --> isLabelFree{Cód.Barras<br>é<br>label Free ?}
isLabelFree -- sim --> isIntegrado{GARTH<br>LabelFree<br>dbo.Services.ApiServiceWasIntegrated==1<br>Serviço Integrado?}
isLabelFree -- não --> reprintVolume{T_DIST_ServiceVolume<br>.reprintLabel = 1 ?}
reprintVolume -- sim --> dateChanged{T_DIST_Service<br>.TrackMyParcelWasDateChanged = 1}
dateChanged --> não --> alertaSchedulleService[Notificar :<br>'Serviço com alteração de data.<br>Por favor reserve o serviço até DD/MM/YYYY']
alertaSchedulleService --> addressChanged{T_DIST_Service<br>.TrackMyParcelWasAddressChanged = 1}
addressChanged -- sim --> printNewLabel{Solicitar ao utilizador :<br>Imprimir nova Etiqueta ?}
printNewLabel -- sim --> forcePrintLabel[Forçar impressão de etiqueta]
forcePrintLabel --> z
isIntegrado -- sim --> printLabel[Imprimir<br>etiqueta]
printLabel --> successMessage[Mostrar mensagem de sucesso<br>'Impressão efetuada com sucesso']
successMessage --> z
isIntegrado -- não --> alertNotIntegrated[Mostrar alerta :<br>'Dados não integrados. Por favor reserve']
alertNotIntegrated --> z
```
```sql=
-- GARTH.LOG_IN_DMS
--Definir Serviços como FreeLabel
INSERT INTO LabelFree.dbo.Services(ServiceId,KiosLabelBarCode,Rma,CreateUser,CreateDate,UpdateDate,ApiServiceWasIntegrated) VALUES(4174192,'TESTE','TESTE','teste',GETDATE(),GETDATE(),1) --Integrado
INSERT INTO LabelFree.dbo.Services(ServiceId,KiosLabelBarCode,Rma,CreateUser,CreateDate,UpdateDate) VALUES(4174193,'TESTE','TESTE','teste',GETDATE(),GETDATE()) --Não Integrado
--Lista dos serviços a testar :
SELECT s.ServiceID,s.CreatedDate,sv.VolumeBarCode, lfs.ApiServiceWasIntegrated
FROM dbo.T_DIST_Service (NOLOCK) s
JOIN dbo.T_DIST_ServiceVolume (NOLOCK) sv ON sv.ServiceID = s.ServiceID
LEFT JOIN LabelFree.dbo.Services lfs (NOLOCK) ON lfs.ServiceId = s.ServiceID
WHERE s.ServiceId IN (4174322,4174193,4174192)
```
submitPrint --> disablePrint{Desativar Impressão ?}
disablePrint -- não --> printLabel[Imprimir]
printLabel --> z
disablePrint -- sim --> z