Advertisement
filhotecmail

Ttread do Metroscience

Apr 1st, 2018
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 72.22 KB | None | 0 0
  1. MetroScience, [01.04.18 19:19]
  2. [In reply to Carlos Dias Da silva Delphi Developer]
  3. myThread := TThread.CreateAnonymousThread( procedure
  4.   var order: string[50];
  5.       concluidas,naoconcluidas,codigoprorietario,I,xAnexo, iIndice, Ia:Integer;
  6.       origem,destino,laudos,CORPODOEMAIL,ASSUNTOEMAIL,AJ,emailassociacao:string;
  7.       SR: TSearchRec;
  8.       ok,incompativeis, Samostra:Boolean;
  9.       zero,temLaudo:Boolean;
  10.       StringGrid1: TStringGrid;
  11.     begin
  12.       try
  13. //------------------------------------------------------------------------------
  14.         StringGrid1:= TStringGrid.Create(Nil);
  15.         XlsToStringGrid(StringGrid1,ListBox0.Items.Strings[0]);
  16.         lstamostras.Items.Clear;
  17.         qryfbs_amostra_dna.Close;
  18.         qryfbs_amostra_dna.SQL:=qryAjuda.SQL;
  19.         qryfbs_amostra_dna.SQL.Add(' and ((fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,2]+')');
  20.  
  21.         qryfbs_param_esp_assoc_racas.SQL.Add(' and ((fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,2]+')');
  22.  
  23.         fbs_amostra_dna0.SQL.Add(' and ((fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,2]+')');
  24.         qryGET_LAUDO.close;
  25.         qryGET_LAUDO.SQL:=qryLaudoIntervalo.SQL;
  26.         qryGET_LAUDO.SQL.Add(' ((a.amostra_dna_i_amostra='+StringGrid1.Cells[1,2]+')');
  27.  
  28.         for xAnexo := 0 to ListBox0.Items.Count-1 do
  29.           begin
  30.   //------— Filtrar por Planilha de Importação
  31.             StringGrid1.FreeOnRelease;
  32.             XlsToStringGrid(StringGrid1,ListBox0.Items.Strings[xAnexo]);
  33.             For iIndice := 3 to StringGrid1.RowCount -2 do
  34.             begin
  35.               Samostra:=false;
  36.               for Ia :=0 to lstamostras.Items.Count -1 do
  37.                 begin
  38.                   if (lstamostras.Items.Strings[Ia] = StringGrid1.Cells[1,iIndice]) then
  39.                     begin
  40.                       Samostra:=True;
  41.                     end;
  42.                 end;
  43.               if (Samostra=False) then
  44.                 begin
  45.                   TThread.Synchronize(myThread, procedure
  46.                     begin
  47.                      lstamostras.Items.Add(StringGrid1.Cells[1,iIndice]);
  48.                     end);
  49.                   qryfbs_amostra_dna.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,iIndice]+')');
  50.                   qryfbs_param_esp_assoc_racas.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,iIndice]+')');
  51.  
  52.                   fbs_amostra_dna0.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+StringGrid1.Cells[1,iIndice]+')');
  53.                   qryGET_LAUDO.SQL.Add(' or (a.amostra_dna_i_amostra='+StringGrid1.Cells[1,iIndice]+')');
  54.                   qryFilhos.close;
  55.                   qryFilhos.ParamByName('amostra').AsInteger:=StrToInt(StringGrid1.Cells[1,iIndice]);
  56.                   qryFilhos.ParamByName('especie').AsInteger:=qryFBS_ESPECIE0ESPECIE_I_COD.AsInteger;
  57.                   qryFilhos.Open;
  58.                   while not qryFilhos.Eof do
  59.                     begin
  60.                       Samostra:=false;
  61.                       for Ia :=0 to lstamostras.Items.Count -1 do
  62.                         begin
  63.                           if (lstamostras.Items.Strings[Ia] = qryFilhosAMOSTRASAIDA.AsString) then
  64.                             begin
  65.                               Samostra:=True;
  66.                             end;
  67.                         end;
  68.                       if (Samostra=False) then
  69.                         begin
  70.                           TThread.Synchronize(myThread, procedure
  71.                             begin
  72.                               lstamostras.Items.Add(qryFilhosAMOSTRASAIDA.AsString);
  73.                             end);
  74.                           qryfbs_amostra_dna.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryFilhosAMOSTRASAIDA.AsString+')');
  75.                           qryGET_LAUDO.SQL.Add(' or (a.amostra_dna_i_amostra='+qryFilhosAMOSTRASAIDA.AsString+')');
  76.                         end
  77.                       else
  78.                         begin
  79.  
  80.                         end;
  81.                       qryFilhos.Next;
  82.                     end;
  83.                 end
  84.               else
  85.                 begin
  86.  
  87.                 end;
  88.  
  89. MetroScience, [01.04.18 19:19]
  90. [In reply to Carlos Dias Da silva Delphi Developer]
  91. qryFilhos.close;
  92.               qryFilhos.ParamByName('amostra').AsInteger:=StrToInt(StringGrid1.Cells[1,iIndice]);
  93.               qryFilhos.ParamByName('especie').AsInteger:=qryFBS_ESPECIE0ESPECIE_I_COD.AsInteger;
  94.               qryFilhos.Open;
  95.               while not qryFilhos.Eof do
  96.                 begin
  97.                   Samostra:=false;
  98.                   for Ia :=0 to lstamostras.Items.Count -1 do
  99.                     begin
  100.                       if (lstamostras.Items.Strings[Ia] = qryFilhosAMOSTRASAIDA.AsString) then
  101.                         begin
  102.                           Samostra:=True;
  103.                         end;
  104.                     end;
  105.                   if (Samostra=False) then
  106.                     begin
  107.                       TThread.Synchronize(myThread, procedure
  108.                         begin
  109.                           lstamostras.Items.Add(qryFilhosAMOSTRASAIDA.AsString);
  110.                         end);
  111.                       qryfbs_amostra_dna.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryFilhosAMOSTRASAIDA.AsString+')');
  112.                       qryGET_LAUDO.SQL.Add(' or (a.amostra_dna_i_amostra='+qryFilhosAMOSTRASAIDA.AsString+')');
  113.                     end
  114.                   else
  115.                     begin
  116.  
  117.                     end;
  118.                   qryFilhos.Next;
  119.                 end;
  120.             end;
  121.   //------— Filtrar por Planilha de Importação
  122.           end;
  123.           qryfbs_amostra_dna.SQL.Add(') and (fbs_animal.cli_i_cod_p<>0) and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_PROPRIETARIO='+QuotedStr('N')+') and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_ABCZ='+QuotedStr('N')+')');
  124.  
  125.           qryfbs_param_esp_assoc_racas.SQL.Add(') and (fbs_animal.cli_i_cod_p<>0) and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_PROPRIETARIO='+QuotedStr('N')+') and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_ABCZ='+QuotedStr('N')+')');
  126.  
  127.           qryabqm.SQL.Add(' and (fbs_animal.cli_i_cod_p<>0) and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_PROPRIETARIO='+QuotedStr('N')+') and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_ABCZ='+QuotedStr('N')+')');
  128.           fbs_amostra_dna0.SQL.Add(') and (fbs_amostra_dna.amostra_a_concluido='+QuotedStr('N')+')');
  129.  
  130. //ESPECIE
  131.           qryfbs_amostra_dna.SQL.Add(' and (fbs_animal.especie_i_cod='+qryFBS_ESPECIE0ESPECIE_I_COD.AsString+')');
  132.  
  133.           qryfbs_amostra_dna.SQL.Add(' and not((fbs_animal.animal_a_status='+quotedstr('A')+') and (fbs_animal.animal_n_valor=0))');
  134.           qryfbs_amostra_dna.SQL.Text:=qryfbs_amostra_dna.SQL.Text+qryAjuda2.SQL.text;
  135.           qryfbs_amostra_dna.SQL.Add('order by fbs_clientes.cli_a_rsoc, fbs_animal.cli_i_cod_p, fbs_amostra_dna.amostra_dna_i_amostra');
  136.  
  137.  
  138.           qryfbs_param_esp_assoc_racas.SQL.Add(' and (fbs_animal.especie_i_cod='+qryFBS_ESPECIE0ESPECIE_I_COD.AsString+')');
  139.           qryfbs_param_esp_assoc_racas.Open;
  140.           zero:=false;
  141.           if (qryfbs_param_esp_assoc_racas.RecordCount>0) then
  142.             begin
  143.               qryabqm.SQL.Add(' and ((fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_param_esp_assoc_racasAMOSTRA_DNA_I_AMOSTRA.AsString+')');
  144.               qryfbs_param_esp_assoc_racas.Next;
  145.               while not qryfbs_param_esp_assoc_racas.eof do
  146.                 begin
  147.                   qryabqm.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_param_esp_assoc_racasAMOSTRA_DNA_I_AMOSTRA.AsString+')');
  148.                   qryfbs_param_esp_assoc_racas.Next;
  149.                 end;
  150.                 zero:=True;
  151.             end;
  152.  
  153. MetroScience, [01.04.18 19:19]
  154. [In reply to Carlos Dias Da silva Delphi Developer]
  155. fbs_amostra_dna0.SQL.Add('order by fbs_clientes.cli_a_rsoc, fbs_animal.cli_i_cod_p, fbs_amostra_dna.amostra_dna_i_amostra');
  156.           fbs_amostra_dna0.SQL.Add('WHERE (fbs_animal.especie_i_cod=:especie)');
  157. //          fbs_amostra_dna0.CmdSelect:=fbs_amostra_dna0.SQL.Text;
  158. //ESPECIE
  159.           qryGET_LAUDO.SQL.Add(') and (b.especie_i_cod='+qryFBS_ESPECIE0ESPECIE_I_COD.AsString+')');
  160.           qryGET_LAUDO.SQL.Add(' and not((fbs_animal.animal_a_status='+quotedstr('A')+') and (fbs_animal.animal_n_valor=0))');
  161.           qryGET_LAUDO.SQL.Add(' order by a.amostra_dna_i_amostra');
  162. //          qryfbs_amostra_dna.CmdSelect:=qryfbs_amostra_dna.SQL.Text;
  163.  
  164.           fbs_amostra_dna0.ParamByName('especie').AsInteger:=qryFBS_ESPECIE0ESPECIE_I_COD.AsInteger;
  165.  
  166. //          Memo1.Lines.Text:=qryfbs_amostra_dna.SQL.Text;
  167.  
  168.           qryfbs_amostra_dna.Prepare;
  169.  
  170.           filhos:=false;
  171.           qryfbs_amostra_dna.open();
  172.  
  173. //------------------------------------------------------------------------------
  174.         sqlabqmenviado:=false;
  175.         if (especie=0) then
  176.           especie:=qryfbs_amostra_dnaESPECIE_I_COD.asinteger;
  177.         qryFBS_PARAM_ESPECIE_ASSOCIACAO.close;
  178.         qryFBS_PARAM_ESPECIE_ASSOCIACAO.ParamByName('especie').asinteger:=qryfbs_amostra_dnaESPECIE_I_COD.asinteger;
  179.         qryFBS_PARAM_ESPECIE_ASSOCIACAO.open;
  180.         qryfbs_email_saida.Close;
  181.         qryfbs_email_saida.Open;
  182.         qryfbs_param_email_laudos.CLOSE;
  183.         qryfbs_param_email_laudos.Open;
  184.  
  185.         qryfbs_unidade.CLOSE;
  186.         qryfbs_unidade.ParamByName('Unidade').AsInteger:=1;
  187.         qryfbs_unidade.Open;
  188.  
  189.         Cabecalho_Linha1.Expression:='';
  190.         for i:=1 to Length(qryfbs_unidadeUNID_A_CABECALHO_LINHA1.AsString) do
  191.           begin
  192.             if (Copy(qryfbs_unidadeUNID_A_CABECALHO_LINHA1.AsString,I,1)<>'"') then
  193.               Cabecalho_Linha1.Expression:=Cabecalho_Linha1.Expression+copy(qryfbs_unidadeUNID_A_CABECALHO_LINHA1.AsString,I,1)
  194.             else
  195.               Cabecalho_Linha1.Expression:=Cabecalho_Linha1.Expression+'''';
  196.           end;
  197.  
  198.         Cabecalho_Linha2.Expression:='';
  199.         for i:=1 to Length(qryfbs_unidadeUNID_A_CABECALHO_LINHA2.AsString) do
  200.           begin
  201.             if (Copy(qryfbs_unidadeUNID_A_CABECALHO_LINHA2.AsString,I,1)<>'"') then
  202.               Cabecalho_Linha2.Expression:=Cabecalho_Linha2.Expression+copy(qryfbs_unidadeUNID_A_CABECALHO_LINHA2.AsString,I,1)
  203.             else
  204.               Cabecalho_Linha2.Expression:=Cabecalho_Linha2.Expression+'''';
  205.           end;
  206.  
  207.  
  208.         qryEMAIL.Close;
  209.         qryEMAIL.Open;
  210.  
  211.         qryQTDFBS_PARAM_ESPECIE_ASSOCIACAO.close;
  212.         qryQTDFBS_PARAM_ESPECIE_ASSOCIACAO.ParamByName('especie').AsInteger:=especie;
  213.         qryQTDFBS_PARAM_ESPECIE_ASSOCIACAO.ParamByName('unidade').AsInteger:=qryfbs_amostra_dnaUNID_I_COD.AsInteger;
  214.         qryQTDFBS_PARAM_ESPECIE_ASSOCIACAO.open;
  215.  
  216.         qryfbs_amostra_dna.First;
  217.         qryabqm.sql.clear;
  218.         qryabqm.SQL.Text:=sqlabqm.Text;
  219.         qryabqm.SQL.Add(' and ((fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+')');
  220.         qryfbs_amostra_dna.Next;
  221.         zero:=false;
  222.         while not qryfbs_amostra_dna.eof do
  223.           begin
  224.             qryabqm.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+')');
  225.             qryfbs_amostra_dna.Next;
  226.             zero:=true;
  227.           end;
  228.  
  229.         qryabqm.SQL.Add(') and (fbs_animal.cli_i_cod_p<>0) ');
  230.         qryabqm.SQL.Add(' and (fbs_animal.especie_i_cod='+inttostr(especie)+')');
  231.         qryabqm.SQL.Add(' and (AMOSTRA_A_CONCLUIDO='+QuotedStr('S')+')');
  232.  
  233.   //      if(zero) then
  234.   //        begin
  235.   //          qryabqn.SQL.Add(') and (fbs_animal.cli_i_cod_p<>0) ');
  236.   //          qryabqn.SQL.Add(' and (fbs_animal.especie_i_cod='+inttostr(especie)+')');
  237.   //        end
  238.   //      else
  239.   //        begin
  240.   //          qryabqn.SQL.Add(' and (fbs_animal.cli_i_cod_p<>0) ');
  241.   //          qryabqn.SQL.Add(' and (fbs_animal.especie_i_cod='+inttostr(especie)+'))');
  242.   //        end;
  243.  
  244. MetroScience, [01.04.18 19:19]
  245. [In reply to Carlos Dias Da silva Delphi Developer]
  246. qryGET_LAUDO.close;
  247.                             qryGET_LAUDO.SQL:=qryLaudo.SQL;
  248.                             qryGET_LAUDO.ParamByName('panimal_i_cod').DataType:=ftInteger;
  249.                             qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_INI').DataType:=ftInteger;
  250.                             qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_FIN').DataType:=ftInteger;
  251.                             qryGET_LAUDO.ParamByName('pamostra_dna_d_entrada').DataType:=ftDate;
  252.                             qryGET_LAUDO.ParamByName('pamostra_i_cod').DataType:=ftInteger;
  253.                             qryGET_LAUDO.ParamByName('pdna_status_i_cod').DataType:=ftInteger;
  254.                             qryGET_LAUDO.ParamByName('pdna_status_det_i_cod').DataType:=ftInteger;
  255.                             qryGET_LAUDO.ParamByName('pamostra_dna_d_saida').DataType:=ftDate;
  256.                             qryGET_LAUDO.ParamByName('panimal_d_nasc').DataType:=ftDate;
  257.                             qryGET_LAUDO.ParamByName('panimal_a_sexo').DataType:=ftString;
  258.                             qryGET_LAUDO.ParamByName('pespecie_i_cod').DataType:=ftInteger;
  259.                             qryGET_LAUDO.ParamByName('praca_i_cod').DataType:=ftInteger;
  260.                             qryGET_LAUDO.ParamByName('ptouro_animal_i_cod').DataType:=ftInteger;
  261.                             qryGET_LAUDO.ParamByName('pvaca_animal_i_cod').DataType:=ftInteger;
  262.                             qryGET_LAUDO.ParamByName('pcli_i_cod_p').DataType:=ftInteger;
  263.                             qryGET_LAUDO.ParamByName('pcid_i_cod').DataType:=ftInteger;
  264.                             qryGET_LAUDO.ParamByName('pamostra_a_entregue').DataType:=ftString;
  265.                             qryGET_LAUDO.ParamByName('pcli_i_cod_p2').DataType:=ftInteger;
  266.                             qryGET_LAUDO.ParamByName('panimal_i_codpai').DataType:=ftInteger;
  267.                             qryGET_LAUDO.ParamByName('panimal_i_codmae').DataType:=ftInteger;
  268.                             qryGET_LAUDO.ParamByName('STATUS').DataType:=ftString;
  269.                             qryGET_LAUDO.ParamByName('concluido').DataType:=ftString;
  270.  
  271. MetroScience, [01.04.18 19:19]
  272. [In reply to Carlos Dias Da silva Delphi Developer]
  273. I := FindFirst(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\*.*', faAnyFile, SR);
  274.         while I = 0 do
  275.           begin
  276.             if (SR.Attr and faDirectory) <> faDirectory then
  277.               if not DeleteFile(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\' + SR.Name) then
  278.                  TThread.Synchronize(myThread, procedure
  279.                    begin
  280.                      ShowMessage('Não foi possível excluir '+qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\' + SR.Name);
  281.                    end);
  282.             I := FindNext(SR);
  283.           end;
  284.         laudos:='';
  285.  
  286.  
  287.   //      frmConsultaAmostrasGeral.chkIntervalo.Checked:=True;
  288.   //      frmConsultaAmostrasGeral.edtInicio.Text:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString;
  289.  
  290.         qryfbs_resultconclui_abcz.Close;
  291.         qryfbs_resultconclui_abcz.Open;
  292.         qryfbs_resultconclui_laudo.close;
  293.         qryfbs_resultconclui_laudo.Open;
  294.         temLaudo:=False;
  295.         while not qryfbs_amostra_dna.Eof do
  296.           begin
  297.             TThread.Synchronize(myThread, procedure
  298.               begin
  299.                 lblinformacao.Caption:='Lendo Tabela de Amostras';
  300.               end);
  301.  
  302.             if ((qryfbs_amostra_dnaAMOSTRA_A_CONCLUIDO.AsString='S') and
  303.                (qryfbs_amostra_dnaAMOSTRA_A_ENVIADO_PROPRIETARIO.AsString<>'S') and
  304.                (qryfbs_amostra_dnaAMOSTRA_A_ENVIADO_ABCZ.AsString<>'S')) then
  305.               begin
  306.                 RGANIMAL:='';
  307.                 for i:=1 TO Length(qryfbs_amostra_dnaANIMAL_A_RG.AsString) do
  308.                   begin
  309.                     if (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'/') and
  310.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'\') and
  311.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'.') and
  312.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>',') and
  313.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>':') and
  314.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'*') and
  315.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'<') and
  316.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'>') and
  317.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'?') and
  318.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'|') and
  319.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'"') and
  320.                        (Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)<>'''') then
  321.                       RGANIMAL := RGANIMAL + Copy(qryfbs_amostra_dnaANIMAL_A_RG.AsString,I,1)
  322.                     else
  323.                       RGANIMAL := RGANIMAL + ' ';
  324.                   end;
  325.   //---------------—
  326.  
  327.                 qryEmailCliente.ParamByName('unid').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOUNID.AsInteger;
  328.                 qryEmailCliente.ParamByName('cod').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  329.                 qryEmailCliente.ParamByName('especie').AsInteger:=qryfbs_amostra_dnaESPECIE_I_COD.AsInteger;
  330.                 qryEmailCliente.ParamByName('raca').AsInteger:=qryfbs_amostra_dnaRACA_I_COD.AsInteger;
  331.  
  332. MetroScience, [01.04.18 19:19]
  333. [In reply to Carlos Dias Da silva Delphi Developer]
  334. qryAtualizaExterno.ParamByName('animal').AsInteger:=qryfbs_amostra_dnaANIMAL_I_COD.AsInteger;
  335.                             qryAtualizaExterno.ParamByName('amostra').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  336.                             try
  337.                               qryAtualizaExterno.ExecSQL;
  338.                             except
  339.                               sair:=True;
  340.                               TThread.Synchronize(myThread, procedure
  341.                                 begin
  342.                                   ShowMessage('Erro ao atualizar Amostra externa...');
  343.                                 end);
  344.                             end;
  345.  
  346.                             if not (FileExists(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf'))) then
  347.                               begin
  348.                                 //          laudos:=laudos+qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+qryfbs_amostra_dnaANIMAL_A_RG.AsString+'.pdf';
  349.                                   qryGET_LAUDO.close;
  350.                                   qryGET_LAUDO.SQL:=qryLaudo.SQL;
  351.                                   qryGET_LAUDO.ParamByName('panimal_i_cod').DataType:=ftInteger;
  352.                                   qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_INI').DataType:=ftInteger;
  353.                                   qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_FIN').DataType:=ftInteger;
  354.                                   qryGET_LAUDO.ParamByName('pamostra_dna_d_entrada').DataType:=ftDate;
  355.                                   qryGET_LAUDO.ParamByName('pamostra_i_cod').DataType:=ftInteger;
  356.                                   qryGET_LAUDO.ParamByName('pdna_status_i_cod').DataType:=ftInteger;
  357.                                   qryGET_LAUDO.ParamByName('pdna_status_det_i_cod').DataType:=ftInteger;
  358.                                   qryGET_LAUDO.ParamByName('pamostra_dna_d_saida').DataType:=ftDate;
  359.                                   qryGET_LAUDO.ParamByName('panimal_d_nasc').DataType:=ftDate;
  360.                                   qryGET_LAUDO.ParamByName('panimal_a_sexo').DataType:=ftString;
  361.                                   qryGET_LAUDO.ParamByName('pespecie_i_cod').DataType:=ftInteger;
  362.                                   qryGET_LAUDO.ParamByName('praca_i_cod').DataType:=ftInteger;
  363.                                   qryGET_LAUDO.ParamByName('ptouro_animal_i_cod').DataType:=ftInteger;
  364.                                   qryGET_LAUDO.ParamByName('pvaca_animal_i_cod').DataType:=ftInteger;
  365.                                   qryGET_LAUDO.ParamByName('pcli_i_cod_p').DataType:=ftInteger;
  366.                                   qryGET_LAUDO.ParamByName('pcid_i_cod').DataType:=ftInteger;
  367.                                   qryGET_LAUDO.ParamByName('pamostra_a_entregue').DataType:=ftString;
  368.                                   qryGET_LAUDO.ParamByName('pcli_i_cod_p2').DataType:=ftInteger;
  369.                                   qryGET_LAUDO.ParamByName('panimal_i_codpai').DataType:=ftInteger;
  370.                                   qryGET_LAUDO.ParamByName('panimal_i_codmae').DataType:=ftInteger;
  371.                                   qryGET_LAUDO.ParamByName('STATUS').DataType:=ftString;
  372.                                   qryGET_LAUDO.ParamByName('concluido').DataType:=ftString;
  373.  
  374. MetroScience, [01.04.18 19:19]
  375. [In reply to Carlos Dias Da silva Delphi Developer]
  376. qryfbs_resultconclui_abcz.First;
  377.                 ok:=False;
  378.                 caminhoqrp:='1';
  379.                 while not qryfbs_resultconclui_abcz.eof do
  380.                   begin
  381.                     if (qryfbs_resultconclui_abczRESULT_I_COD.AsInteger = qryfbs_amostra_dnaRESULT_I_COD.AsInteger) then
  382.                       begin
  383.                         if (FileExists(Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'.pdf'))) then
  384.                           begin
  385.                             origem  := Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'.pdf');
  386.                             destino := Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf');
  387.                             if not FileExists(destino) then
  388.                               if not CopyFile(PChar(Origem), PChar(Destino), true) then
  389.                                  TThread.Synchronize(myThread, procedure
  390.                                    begin
  391.                                      mmoEroosEmail.Lines.Add('Erro ao copiar ' + Origem + ' —> '+ Destino);
  392.                                     end);
  393.                           end
  394.                         else
  395.                           begin
  396.                             qryAtualizaExterno.ParamByName('unid').AsInteger:=qryfbs_amostra_dnaUNID_I_COD.AsInteger;
  397.                             qryAtualizaExterno.ParamByName('animal').AsInteger:=qryfbs_amostra_dnaANIMAL_I_COD.AsInteger;
  398.                             qryAtualizaExterno.ParamByName('amostra').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  399.  
  400.                             if (caminhoqrp='1') then
  401.                               caminhoqrp:=Trim(qrycnti_parametrosPAR_A_CAMINHOQRP.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'_'+tiraacento(datetostr(Date))+'.qrp');
  402.  
  403.                             qryInsereQrpLaudo.ParamByName('unid').AsInteger:=qryfbs_amostra_dnaUNID_I_COD.AsInteger;
  404.                             qryInsereQrpLaudo.ParamByName('animal').AsInteger:=qryfbs_amostra_dnaANIMAL_I_COD.AsInteger;
  405.                             qryInsereQrpLaudo.ParamByName('amostra').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  406.                             qryInsereQrpLaudo.ParamByName('data').AsDate:=Date;
  407.                             qryInsereQrpLaudo.ParamByName('usuario').AsString:='usuario';//_vLogin;
  408.                             qryInsereQrpLaudo.ParamByName('qrp').AsString:=caminhoqrp;
  409.  
  410.                             try
  411.                               if (caminhoqrp<>'1') and (caminhoqrp<>'') then
  412.                                 qryInsereQrpLaudo.ExecSQL;
  413.                               caminhoqrp:='';
  414.                             except
  415.                               TThread.Synchronize(myThread, procedure
  416.                                 begin
  417.                                   sair:=True;
  418.                                   ShowMessage('Erro ao atualizar qrp na amostra...');
  419.                                 end);
  420.                             end;
  421.  
  422.                             try
  423.                               qryAtualizaExterno.ExecSQL;
  424.                             except
  425.                               sair:=True;
  426.                               TThread.Synchronize(myThread, procedure
  427.                                 begin
  428.                                   ShowMessage('Erro ao atualizar Amostra externa...');
  429.                                 end);
  430.                             end;
  431.  
  432. MetroScience, [01.04.18 19:19]
  433. [In reply to Carlos Dias Da silva Delphi Developer]
  434. qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_INI').Value:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  435.                             qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_FIN').Value:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  436.                             qryGET_LAUDO.ParamByName('pespecie_i_cod').Value:=qryfbs_amostra_dnaESPECIE_I_COD.Value;
  437.                             qryGET_LAUDO.Open;
  438.                             qrpLaudo_Paterindade_Multiplos.DataSet:=qryGET_LAUDO;
  439. //                            TThread.Synchronize(myThread, procedure
  440. //                             begin
  441. //                                QRQRBarcode.BarcodeText:=MD5String(qryGET_LAUDORESPECIE_ANIMAL.AsString+qryGET_LAUDORRG_ANIMAL.AsString+
  442. //                                                                   qryGET_LAUDORNOME_ANIMAL.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString);
  443.                                 QRQRBarcode.BarcodeText:=THashSHA2.GetHashString(qryGET_LAUDORESPECIE_ANIMAL.AsString+qryGET_LAUDORRG_ANIMAL.AsString+
  444.                                                                    qryGET_LAUDORNOME_ANIMAL.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString, SHA256);
  445.                                 QRQRBarcode.Refresh;
  446.                                 qrpLaudo_Paterindade_Multiplos.Prepare;
  447.                                 qrpLaudo_Paterindade_Multiplos.ExportToFilter(TQRPDFDocumentFilter.Create(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf')));
  448. //                             end);
  449.                             caminhoqrp:=Trim(qrycnti_parametrosPAR_A_CAMINHOQRP.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString+'_'+qryGET_LAUDORRG_ANIMAL.AsString+'_'+tiraacento(datetostr(Date))+'.qrp');
  450.                           //  qrpLaudo_Paterindade_Multiplos.Print.Save(caminhoqrp);
  451.  
  452.                           end;
  453.                        TThread.Synchronize(myThread, procedure
  454.                          begin
  455.                            ListBoxAssociacao.Items.Add(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf'));
  456.                          end);
  457.                         ok:=True;
  458.                       end;
  459.                     qryfbs_resultconclui_abcz.Next;
  460.                   end;
  461.                 qryfbs_resultconclui_laudo.First;
  462.                 while not qryfbs_resultconclui_laudo.eof do
  463.                   begin
  464.                     if (qryfbs_resultconclui_laudoRESULT_I_COD.AsInteger = qryfbs_amostra_dnaRESULT_I_COD.AsInteger) then
  465.                       begin
  466.                         if (FileExists(Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'.pdf'))) then
  467.                           begin
  468.                             origem  := Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'.pdf');
  469.                             destino := Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf');
  470.                             if not FileExists(destino) then
  471.                               if not CopyFile(PChar(Origem), PChar(Destino), true) then
  472.                                 TThread.Synchronize(myThread, procedure
  473.                                   begin
  474.                                     mmoEroosEmail.Lines.Add('Erro ao copiar ' + Origem + ' —> '+ Destino);
  475.                                   end);
  476.                           end
  477.                         else
  478.                           begin
  479.                             qryAtualizaExterno.ParamByName('unid').AsInteger:=qryfbs_amostra_dnaUNID_I_COD.AsInteger;
  480.  
  481. MetroScience, [01.04.18 19:19]
  482. [In reply to Carlos Dias Da silva Delphi Developer]
  483. //      qryabqn.SQL.Add(' and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_PROPRIETARIO='+QuotedStr('N')+') and (fbs_amostra_dna.AMOSTRA_A_ENVIADO_ABCZ='+QuotedStr('N')+')');
  484.  
  485.         qryabqm.SQL.Add('order by fbs_clientes.cli_a_rsoc, fbs_animal.cli_i_cod_p, fbs_amostra_dna.amostra_dna_i_amostra');
  486.  
  487.   //
  488.   //                    memo1.text:=qryabqn.SQL.Text;
  489.   //                    pnlinformacoes.Visible:=True;
  490.   //                    Memo1.Lines.clear;
  491.   //                    Memo1.Lines.Text:=qryabqn.SQL.Text;
  492.   //
  493.  
  494.         if (qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOCOUNT.AsInteger=1) then
  495.           begin
  496.   //          mmo1.Lines.Text:=qryabqn.SQL.Text;
  497.             try
  498.               qryabqm.Open;
  499.             except
  500.               sair:=True;
  501.               TThread.Synchronize(myThread, procedure
  502.                 begin
  503.                   ShowMessage('Erro ao abrir qryabqm...');
  504.                 end);
  505.               Abort;
  506.             end;
  507.             nomearquivoxls:=qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOPAR_A_CAMINHO_REL_AMOSTRAS.AsString+qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOUNID_A_NOME.AsString+'_'+TiraAcento(DateToStr(date))+'_'+TiraAcento(TimeToStr(Time))+'.xlsx';
  508.             GerarExcel(nomearquivoxls,qryabqm);
  509.           end;
  510.         TThread.Synchronize(myThread, procedure
  511.           begin
  512.             ListBox1.Items.Clear;
  513.             ListBoxAssociacao.Items.Clear;
  514.             lblinformacao.Caption:='Ordenando Tabelas';
  515.             lblinformacao.Caption:='Abrindo Consulta Amostra Geral';
  516.             Gauge1.Progress:=0;
  517.             Gauge1.MaxValue:=qryfbs_amostra_dna.RecordCount;
  518.             lblcontador.Caption:=IntToStr(Gauge1.Progress)+' / '+IntToStr(Gauge1.MaxValue);
  519.           end);
  520.  
  521.   //      order:=qryfbs_amostra_dna.OrderBy;
  522.         concluidas:=0;
  523.         naoconcluidas:=0;
  524.  
  525.   //      frmMain.actfrmConsultaAmostrasGeral.Execute;
  526.   //      frmConsultaAmostrasGeral.WindowState:=wsMinimized;
  527.   //      Application.ProcessMessages;
  528.         qryfbs_amostra_dnaX.close;
  529.         qryfbs_amostra_dnaX.SQL.Clear;
  530.   //      qryfbs_amostra_dnaX.CmdSelect:='';
  531.         qryfbs_amostra_dnaX.SQL:=qrytmpConsultaLaudoGeral.SQL;
  532.   //      qryfbs_amostra_dnaX.SQL.Add('where (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  533.         qryfbs_amostra_dna.First;
  534.         if (qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger<>0) then
  535.           begin
  536.              qryfbs_amostra_dnaX.SQL.Add('where (fbs_animal.especie_i_cod=' + IntToStr(especie) + ') and (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  537.           end
  538.         else
  539.           begin
  540.             if not qryfbs_amostra_dna.IsEmpty then
  541.               repeat
  542.                 qryfbs_amostra_dna.Next;
  543.                 TThread.Synchronize(myThread, procedure
  544.                   begin
  545.                     Gauge1.Progress:=Gauge1.Progress+1;
  546.                     lblcontador.Caption:=IntToStr(Gauge1.Progress)+' / '+IntToStr(Gauge1.MaxValue);
  547.                   end);
  548.                 if (qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger<>0) then
  549.                   begin
  550.                     qryfbs_amostra_dnaX.SQL.Add('where  (fbs_animal.especie_i_cod=' + IntToStr(especie) + ') and (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  551.                   end;
  552.     //            else
  553.     //              qryfbs_amostra_dnaX.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  554.               until (qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger<>0);
  555.           end;
  556.         codigoprorietario:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  557.         qrycnti_parametros.Close;
  558.         qrycnti_parametros.Open;
  559.         TThread.Synchronize(myThread, procedure
  560.           begin
  561.             lblinformacao.Caption:='Apagando arquivos temporários';
  562.           end);
  563.  
  564. MetroScience, [01.04.18 19:19]
  565. [In reply to Carlos Dias Da silva Delphi Developer]
  566. QRQRBarcode.Refresh;
  567.                                      qrpLaudo_Paterindade_Multiplos.Prepare;
  568.                                      qrpLaudo_Paterindade_Multiplos.ExportToFilter(TQRPDFDocumentFilter.Create(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf')));
  569. //                                   end);
  570.                                   caminhoqrp:=Trim(qrycnti_parametrosPAR_A_CAMINHOQRP.AsString+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString+'_'+qryGET_LAUDORRG_ANIMAL.AsString+'_'+tiraacento(datetostr(Date))+'.qrp');
  571.                                 //  qrpLaudo_Paterindade_Multiplos.Print.Save(caminhoqrp);
  572.  
  573.                               end;
  574.  
  575.                           end;
  576.  
  577.                         if (qryfbs_param_email_laudosMATRIZ_ZERO_ARQUIVO_ENVIA.AsString='N') then
  578.                           if (qryfbs_amostra_dnaANIMAL_A_STATUS.AsString='A') and (qryfbs_amostra_dnaSEXO.AsString='F') and (qryfbs_amostra_dnaANIMAL_N_VALOR.AsFloat=0) then
  579.  
  580.                           else
  581.                            TThread.Synchronize(myThread, procedure
  582.                              begin
  583.                                ListBox1.Items.Add(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf'));
  584.                              end)
  585.                         else
  586.                            TThread.Synchronize(myThread, procedure
  587.                              begin
  588.                                ListBox1.Items.Add(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+'_'+RGANIMAL+'.pdf'));
  589.                              end);
  590.  
  591.  
  592.                         temLaudo:=true;
  593.                       end;
  594.                     qryfbs_resultconclui_laudo.Next;
  595.                   end;
  596.                TThread.Synchronize(myThread, procedure
  597.                  begin
  598.                    SendMessage(ListBox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
  599.                   end);
  600.  
  601.   //              qryfbs_amostra_dnaX.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  602.   //              frmConsultaAmostrasGeral.edtFim.Text:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString;
  603.  
  604. MetroScience, [01.04.18 19:19]
  605. [In reply to Carlos Dias Da silva Delphi Developer]
  606. //  qryGET_LAUDO.ParamByName('panimal_i_cod').Value:=NULL;//qryfbs_amostra_dnaANIMAL_I_COD.Value;
  607.                                   qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_INI').Value:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  608.                                   qryGET_LAUDO.ParamByName('PAMOSTRA_DNA_I_AMOSTRA_FIN').Value:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsInteger;
  609.                                 //  qryGET_LAUDO.ParamByName('pamostra_dna_d_entrada').Value:=NULL;//qryfbs_amostra_dnaENTRADA.value;
  610.                                 //  qryGET_LAUDO.ParamByName('pamostra_i_cod').Value:=NULL;//qryfbs_amostra_dnaAMOSTRA_I_COD.Value;
  611.                                 //  qryGET_LAUDO.ParamByName('pdna_status_i_cod').Value:=NULL;//qryfbs_amostra_dnaDNA_STATUS_I_COD.Value;
  612.                                 //  qryGET_LAUDO.ParamByName('pdna_status_det_i_cod').Value:=NULL;//qryfbs_amostra_dnaDNA_STATUS_DET_I_COD.Value;
  613.                                 //  qryGET_LAUDO.ParamByName('pamostra_dna_d_saida').Value:=NULL;//qryfbs_amostra_dnaCONCLUSAO.Value;
  614.                                 //  qryGET_LAUDO.ParamByName('panimal_d_nasc').Value:=NULL;//qryfbs_amostra_dnaANIMAL_D_NASC.Value;
  615.                                 //  qryGET_LAUDO.ParamByName('panimal_a_sexo').Value:=NULL;//qryfbs_amostra_dnaSEXO.Value;
  616.                                   qryGET_LAUDO.ParamByName('pespecie_i_cod').Value:=qryfbs_amostra_dnaESPECIE_I_COD.Value;
  617.                                 //  qryGET_LAUDO.ParamByName('praca_i_cod').Value:=NULL;//qryfbs_amostra_dnaRACA_I_COD.Value;
  618.                                 //  qryGET_LAUDO.ParamByName('ptouro_animal_i_cod').Value:=NULL;//qryfbs_amostra_dnaTOURO_ANIMAL_I_COD.Value;
  619.                                 //  qryGET_LAUDO.ParamByName('pvaca_animal_i_cod').Value:=NULL;//qryfbs_amostra_dnaVACA_ANIMAL_I_COD.Value;
  620.                                 //  qryGET_LAUDO.ParamByName('pcli_i_cod_p').Value:=NULL;//qryfbs_amostra_dnaPROPRIETARIOCOD.Value;
  621.                                 //  qryGET_LAUDO.ParamByName('pcid_i_cod').Value:=NULL;//qryfbs_amostra_dnaCIDADECOD.Value;
  622.                                 //  qryGET_LAUDO.ParamByName('pamostra_a_entregue').Value:=NULL;//qryfbs_amostra_dnaAMOSTRA_A_ENTREGUE.Value;
  623.                                 //  qryGET_LAUDO.ParamByName('pcli_i_cod_p2').Value:=NULL;//qryfbs_amostra_dnaCLI_I_COD_P2.Value;
  624.                                 //  qryGET_LAUDO.ParamByName('panimal_i_codpai').Value:=NULL;//qryfbs_amostra_dnaANIMAL_I_CODPAI.Value;
  625.                                 //  qryGET_LAUDO.ParamByName('panimal_i_codmae').Value:=NULL;//qryfbs_amostra_dnaANIMAL_I_CODMAE.Value;
  626.                                 //  qryGET_LAUDO.ParamByName('STATUS').value:=null;
  627.                                 //  qryGET_LAUDO.ParamByName('concluido').value:=null;
  628.  
  629.                                   qryGET_LAUDO.Open;
  630.                                 //---------------—
  631.  
  632.                                   qrpLaudo_Paterindade_Multiplos.DataSet:=qryGET_LAUDO;
  633. //                                  TThread.Synchronize(myThread, procedure
  634. //                                   begin
  635. //                                     QRQRBarcode.BarcodeText:=MD5String(qryGET_LAUDORESPECIE_ANIMAL.AsString+qryGET_LAUDORRG_ANIMAL.AsString+
  636. //                                                                   qryGET_LAUDORNOME_ANIMAL.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString);
  637.                                        QRQRBarcode.BarcodeText:=THashSHA2.GetHashString(qryGET_LAUDORESPECIE_ANIMAL.AsString+qryGET_LAUDORRG_ANIMAL.AsString+
  638.                                                                    qryGET_LAUDORNOME_ANIMAL.AsString+qryGET_LAUDORAMOSTRA_ANIMAL.AsString, SHA256);
  639.  
  640. MetroScience, [01.04.18 19:19]
  641. [In reply to Carlos Dias Da silva Delphi Developer]
  642. qryfbs_amostra_dnaX.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  643.                 qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOUNID.AsInteger;
  644.                 qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  645.                 qryAmostra_Enviada_ABCZ.ParamByName('AMOSTRA').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.ASINTEGER;
  646.                 qryAmostra_Enviada_PROPRIETARIO.ParamByName('AMOSTRA').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.ASINTEGER;
  647.   //              frmSeleciona_Envia_Placas.fbs_amostra_dna.Filtered:=False;
  648.   //              frmSelexciona_Envia_Placas.fbs_amostra_dna.Filter:='cli_i_cod_p='+qryfbs_amostra_dnaPROPRIETARIOCOD.AsString;
  649.                 if (qryfbs_amostra_dnaAMOSTRA_A_CONCLUIDO.AsString='S') then
  650.                   begin
  651.                     inc(concluidas);
  652.                     TThread.Synchronize(myThread, procedure
  653.                       begin
  654.                         mmoLaudosConcluidos.Lines.Add(qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString);
  655.                         lblconcluidas.Caption:=inttostr(concluidas)+'  Amostras concluidas.';
  656.                       end);
  657.                   end
  658.                 else
  659.                   begin
  660.                     inc(naoconcluidas);
  661.                     TThread.Synchronize(myThread, procedure
  662.                       begin
  663.                         mmoLaudosNaoConcluidos.Lines.Add(qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString);
  664.                         lblnaoconcluidas.Caption:=inttostr(naoconcluidas)+'  Amostras não concluidas.';
  665.                       end);
  666.                   end;
  667.               end
  668.             else
  669.               begin
  670.                 qryfbs_amostra_dnaX.SQL.Add(' or (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  671.                 qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOUNID.AsInteger;
  672.                 qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  673.                 qryAmostra_Enviada_PROPRIETARIO.ParamByName('AMOSTRA').AsInteger:=qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.ASINTEGER;
  674.                 qryEmailCliente.ParamByName('unid').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOUNID.AsInteger;
  675.                 qryEmailCliente.ParamByName('cod').AsInteger:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  676.                 qryEmailCliente.ParamByName('especie').AsInteger:=qryfbs_amostra_dnaESPECIE_I_COD.AsInteger;
  677.                 qryEmailCliente.ParamByName('raca').AsInteger:=qryfbs_amostra_dnaRACA_I_COD.AsInteger;
  678.                 if (qryfbs_amostra_dnaAMOSTRA_A_CONCLUIDO.AsString='S') then
  679.                   begin
  680.                     inc(concluidas);
  681.                     TThread.Synchronize(myThread, procedure
  682.                       begin
  683.                         mmoLaudosConcluidos.Lines.Add(qryfbs_amostra_dnaESPECIE_A_SIGLA.AsString+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString);
  684.                         lblconcluidas.Caption:=inttostr(concluidas)+'  Amostras concluidas.';
  685.                       end);
  686.                   end
  687.                 else
  688.                   begin
  689.                     inc(naoconcluidas);
  690.                     TThread.Synchronize(myThread, procedure
  691.                       begin
  692.                         mmoLaudosNaoConcluidos.Lines.Add(qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString);
  693.                         lblnaoconcluidas.Caption:=inttostr(naoconcluidas)+'  Amostras não concluidas.';
  694.                       end);
  695.                   end;
  696.               end;
  697.   //---------------------------------—
  698.             qryfbs_amostra_dna.Next;
  699.             TThread.Synchronize(myThread, procedure
  700.               begin
  701.                 Gauge1.Progress:=Gauge1.Progress+1;
  702.  
  703. MetroScience, [01.04.18 19:19]
  704. [In reply to Carlos Dias Da silva Delphi Developer]
  705. lblcontador.Caption:=IntToStr(Gauge1.Progress)+' / '+IntToStr(Gauge1.MaxValue);
  706.               end);
  707.   //---------------------------------—
  708.             IF (codigoprorietario<>qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger) and (ListBox1.Items.Text<>'') THEN // and (qryfbs_amostra_dnaANIMAL_A_CONCLUIDO.AsString='S') then
  709.               begin                                        //    7z a -t7z back.7z C:\*
  710.                 qryfbs_amostra_dnaX.SQL.Add(' and (fbs_amostra_dna.especie_i_cod='+qryFBS_ESPECIE0ESPECIE_I_COD.AsString+') ');
  711.                 qryfbs_amostra_dnaX.SQL.Add('order by  fbs_clientes.cli_a_rsoc, fbs_amostra_dna.amostra_dna_i_amostra, fbs_amostra_dna.AMOSTRA_A_ENTREGUE');
  712.                 qryfbs_amostra_dnaX.Prepare;
  713.                 qryfbs_amostra_dnaX.open();
  714.                 NomeRelatorio:=Trim('Rel_'+qryEmailCliente.parambyname('cod').AsString+'_'+TiraAcento(datetostr(Date))+'_'+TiraAcento(timetostr(Time))+'.pdf');
  715. //                TThread.Synchronize(myThread, procedure
  716. //                 begin
  717.                     qrpSimples.Prepare;
  718.                     qrpSimples.ExportToFilter(TQRPDFDocumentFilter.Create(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+NomeRelatorio)));
  719. //                 end);
  720.  
  721.                 incompativeis:=false;
  722.                 qryfbs_amostra_dnaX.First;
  723.                 while not qryfbs_amostra_dnaX.Eof do
  724.                   begin
  725.                     if (qryfbs_amostra_dnaXRESULT_I_COD.AsInteger=2) then
  726.                       incompativeis:=true;
  727.  
  728.                     qryfbs_amostra_dnaX.Next;
  729.                   end;
  730.                 qryfbs_amostra_dnaX.close;
  731.                 codigoprorietario:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  732.                 qryEmailCliente.close;
  733.                 qryEmailCliente.open;
  734.                 if (Trim(qryEmailClienteDNA_A_EMAIL_RACA.Text) = '') then
  735.                   emailassociacao:=qryEmailClienteDNA_A_EMAIL.AsString
  736.                 else
  737.                   emailassociacao:=qryEmailClienteDNA_A_EMAIL_RACA.AsString;
  738.  
  739.                 TThread.Synchronize(myThread, procedure
  740.                   begin
  741.                     lblinformacao.Caption:='Enviando Email para a Associação.';
  742.                    end);
  743.  
  744.   //---------— INICIO EMAIL PARA ABCZ
  745.                 qryCORPOEMAILABCZ.Open;
  746.                 CORPODOEMAIL:='';
  747.                 FOR I:=1 to Length(qryCORPOEMAILABCZCORPO_EMAIL_ABCZ.AsString) do
  748.                   begin
  749.                     IF (COPY(qryCORPOEMAILABCZCORPO_EMAIL_ABCZ.AsString,I,1)<>'#') then
  750.                       CORPODOEMAIL:=CORPODOEMAIL+COPY(qryCORPOEMAILABCZCORPO_EMAIL_ABCZ.AsString,i,1)
  751.                     else
  752.                       CORPODOEMAIL:=CORPODOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  753.                   end;
  754.                 qryCORPOEMAILABCZ.Close;
  755.                 ASSUNTOEMAIL:='';
  756.                 FOR I:=1 to Length(qryfbs_param_email_laudosASSUNTO_A_ABCZ.AsString) do
  757.                   begin
  758.                     IF (COPY(qryfbs_param_email_laudosASSUNTO_A_ABCZ.AsString,I,1)<>'#') then
  759.                       ASSUNTOEMAIL:=ASSUNTOEMAIL+COPY(qryfbs_param_email_laudosASSUNTO_A_ABCZ.AsString,i,1)
  760.                     else
  761.                       ASSUNTOEMAIL:=ASSUNTOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  762.                   end;
  763.  
  764. MetroScience, [01.04.18 19:19]
  765. [In reply to Carlos Dias Da silva Delphi Developer]
  766. if (ListBoxAssociacao.Items.Text<>'')  then
  767.                   if (qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOCOUNT.AsInteger=1) and (sqlabqmenviado=False) then
  768.                     begin
  769.                       sqlabqmenviado:=true;
  770.                     TThread.Synchronize(myThread, procedure
  771.                       begin
  772.                         ListBoxAssociacao.Items.Add(nomearquivoxls);
  773.                         lstXML.Items.Clear;
  774.                         lstXML.Items.Add(nomearquivoxls);
  775.                       end);
  776.                       ASSUNTOEMAIL:=qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOASSUNTOEMAIL.AsString;
  777.                       CORPODOEMAIL:=qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOCORPODOEMAIL.AsString;
  778. //------------------------------------------------—
  779.                       if (qryfbs_amostra_dnaENVIA_LAUDO_PDF.AsString='S') then
  780.                         begin
  781.                           if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  782.                                             qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEMAIL_A_EMAIL.AsString,
  783.                                             qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  784.                                             qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEMAIL_A_CC.AsString, '', ListBoxAssociacao)=false) then
  785.                             TThread.Synchronize(myThread, procedure
  786.                               begin
  787.                                 ShowMessage('Erro ao inserir email...');
  788.                               end);
  789.                         end
  790.                       else
  791.                         if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  792.                                           qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEMAIL_A_EMAIL.AsString,
  793.                                           qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  794.                                           qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEMAIL_A_CC.AsString, '', lstXML)=false) then
  795.                             TThread.Synchronize(myThread, procedure
  796.                               begin
  797.                                 ShowMessage('Erro ao inserir email...');
  798.                               end)
  799.                         else
  800.                           begin
  801.                             if (ListBoxAssociacao.Items.Count>0) then
  802.                               for xAnexo := 0 to ListBoxAssociacao.Items.Count-2 do
  803.                                 begin
  804.                                   aj:='';
  805.                                   I:=4;
  806.                                   repeat
  807.                                     aj:=aj+Copy(ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]),I,1);
  808.                                     Inc(I);
  809.                                   until (Copy(ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]),I,1)='_');
  810.                                   try
  811.                                     qryAmostra_Enviada_ABCZ.ParamByName('AMOSTRA').AsInteger:=StrToInt(AJ);
  812.                                   except
  813.                                     qryAmostra_Enviada_ABCZ.ParamByName('AMOSTRA').AsInteger:=StrToInt(Copy(AJ,4,Length(AJ)-3));
  814.                                   end;
  815.  
  816.                                   qryAmostra_Enviada_ABCZ.EXECSQL;
  817.                                 end
  818.                             else
  819.                               begin
  820.  
  821. MetroScience, [01.04.18 19:19]
  822. [In reply to Carlos Dias Da silva Delphi Developer]
  823. end;
  824.                             qrysp_gen_fbs_email_enviado_id.close;
  825.                             qrysp_gen_fbs_email_enviado_id.Open;
  826.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger:=qrysp_gen_fbs_email_enviado_idID.AsInteger;
  827.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSOC_PROPRI').AsString:='A';
  828.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_D_DATAENVIO').AsDate:=Date;
  829.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILDEENVIO').AsString:=qryEMAILEM_EMAIL.AsString;
  830.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILENVIADO').AsString:=qryQTDFBS_PARAM_ESPECIE_ASSOCIACAOEMAIL_A_EMAIL.AsString;
  831.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSUNTO').AsString:=ASSUNTOEMAIL;
  832.                             qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_CORPODOEMAIL').AsBlob:=CORPODOEMAIL;
  833.                             try
  834.                              qryINCLUI_FBS_EMAIL_ENVIADO.ExecSQL;
  835.                             except
  836.                               sair:=True;
  837.                               TThread.Synchronize(myThread, procedure
  838.                                 begin
  839.                                   ShowMessage('Erro ao Cadastrar Email em Tabela.');
  840.                                 end);
  841.                             end;
  842.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('UNID_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger;
  843.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('CLI_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger;
  844.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger;
  845.                             for xAnexo := 0 to ListBoxAssociacao.Items.Count-1 do
  846.                               begin
  847.                                 qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_A_NOME').AsString:=ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]);
  848.                                 try
  849.                                   qryINLCUI_FBS_EMAIL_ENVIADO_DET.ExecSQL;
  850.                                 except
  851.                                 end;
  852.                               end;
  853.                           end;
  854.                     end
  855.                   else
  856.                     if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  857.                                       qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, emailassociacao,
  858.                                       qryEMAILEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  859.                                       '', '', ListBoxAssociacao)=false) then
  860.                       TThread.Synchronize(myThread, procedure
  861.                         begin
  862.                           ShowMessage('Erro ao inserir email...');
  863.                         end)
  864.                   else
  865.                     begin
  866.                       for xAnexo := 0 to ListBoxAssociacao.Items.Count-1 do
  867.                         begin
  868.                           aj:='';
  869.                           I:=4;
  870.                           repeat
  871.                             aj:=aj+Copy(ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]),I,1);
  872.                             Inc(I);
  873.                           until (Copy(ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]),I,1)='_');
  874.  
  875.                           try
  876.                             qryAmostra_Enviada_ABCZ.ParamByName('AMOSTRA').AsInteger:=StrToInt(AJ);
  877.                           except
  878.                             qryAmostra_Enviada_ABCZ.ParamByName('AMOSTRA').AsInteger:=StrToInt(Copy(AJ,4,Length(AJ)-3));
  879.                           end;
  880.  
  881. MetroScience, [01.04.18 19:19]
  882. [In reply to Carlos Dias Da silva Delphi Developer]
  883. qryAmostra_Enviada_ABCZ.EXECSQL;
  884.                           origem:=ListBoxAssociacao.Items.Strings[xAnexo];
  885.                           destino:=Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+Copy(ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]),1,3)+ExtractFileName(aj)+'.pdf');
  886.                         end;
  887.                       qrysp_gen_fbs_email_enviado_id.close;
  888.                       qrysp_gen_fbs_email_enviado_id.Open;
  889.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger:=qrysp_gen_fbs_email_enviado_idID.AsInteger;
  890.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSOC_PROPRI').AsString:='A';
  891.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_D_DATAENVIO').AsDate:=Date;
  892.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILDEENVIO').AsString:=qryEMAILEM_EMAIL.AsString;
  893.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILENVIADO').AsString:=emailassociacao;
  894.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSUNTO').AsString:=ASSUNTOEMAIL;
  895.                       qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_CORPODOEMAIL').AsBlob:=CORPODOEMAIL;
  896.                       try
  897.                        qryINCLUI_FBS_EMAIL_ENVIADO.ExecSQL;
  898.                       except
  899.                        sair:=True;
  900.                         TThread.Synchronize(myThread, procedure
  901.                           begin
  902.                             ShowMessage('Erro ao Cadastrar Email em Tabela.');
  903.                           end);
  904.                       end;
  905.                       qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('UNID_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger;
  906.                       qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('CLI_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger;
  907.                       qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger;
  908.                       for xAnexo := 0 to ListBoxAssociacao.Items.Count-1 do
  909.                         begin
  910.                           qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_A_NOME').AsString:=ExtractFileName(ListBoxAssociacao.Items.Strings[xAnexo]);
  911.                           try
  912.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ExecSQL;
  913.                           except
  914.   //                          ShowMessage('Erro ao Cadastrar Anexo(s).');
  915.                           end;
  916.                         end;
  917.                     end;
  918.   //---------— TÉRMINO EMAIL PARA ABCZ
  919.                 ASSUNTOEMAIL:='';
  920.                 FOR I:=1 to Length(qryfbs_param_email_laudosASSUNTO_A_CLIENTE.AsString) do
  921.                   begin
  922.                     IF (COPY(qryfbs_param_email_laudosASSUNTO_A_CLIENTE.AsString,I,1)<>'#') then
  923.                       ASSUNTOEMAIL:=ASSUNTOEMAIL+COPY(qryfbs_param_email_laudosASSUNTO_A_CLIENTE.AsString,i,1)
  924.                     else
  925.                       ASSUNTOEMAIL:=ASSUNTOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  926.                   end;
  927.                 qryCORPOEMAIL.Open;
  928.                 CORPODOEMAIL:='';
  929.                 if (incompativeis=True) then
  930.                   FOR I:=1 to Length(qryCORPOEMAILCORPO_EMAIL_INCOMPATIVEIS.AsString) do
  931.                     begin
  932.                       IF (COPY(qryCORPOEMAILCORPO_EMAIL_INCOMPATIVEIS.AsString,I,1)<>'#') then
  933.                         CORPODOEMAIL:=CORPODOEMAIL+COPY(qryCORPOEMAILCORPO_EMAIL_INCOMPATIVEIS.AsString,i,1)
  934.                       else
  935.                         CORPODOEMAIL:=CORPODOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  936.                     end
  937.                 else
  938.                 if (temLaudo=false) then
  939.                   begin
  940.                     FOR I:=1 to Length(qryCORPOEMAILCORPO_EMAIL_RELATORIO.AsString) do
  941.                       begin
  942.                         IF (COPY(qryCORPOEMAILCORPO_EMAIL_RELATORIO.AsString,I,1)<>'#') then
  943.  
  944. MetroScience, [01.04.18 19:19]
  945. [In reply to Carlos Dias Da silva Delphi Developer]
  946. qryAmostra_Enviada_Proprietario.EXECSQL;
  947.                               end;
  948.                             origem:=ListBox1.Items.Strings[xAnexo];
  949.                             if not FileExists(destino) then
  950.                               if not CopyFile(PChar(Origem), PChar(Destino), true) then
  951.                                 TThread.Synchronize(myThread, procedure
  952.                                   begin
  953.                                     mmoEroosEmail.Lines.Add('Erro ao copiar ' + Origem + ' —> '+ Destino);
  954.                                   end)
  955.                               else
  956.                                 begin
  957.  
  958.                                 end;
  959.                           end;
  960.                         qrysp_gen_fbs_email_enviado_id.close;
  961.                         qrysp_gen_fbs_email_enviado_id.Open;
  962.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger:=qrysp_gen_fbs_email_enviado_idID.AsInteger;
  963.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSOC_PROPRI').AsString:='P';
  964.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_D_DATAENVIO').AsDate:=Date;
  965.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILDEENVIO').AsString:=qryEMAILEM_EMAIL.AsString;
  966.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILENVIADO').AsString:=qryEmailClienteCLI_A_EMAIL3.AsString;
  967.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSUNTO').AsString:=ASSUNTOEMAIL+'';
  968.                         qryCORPOEMAIL.Open;
  969.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_CORPODOEMAIL').AsBlob:=CORPODOEMAIL;
  970.                         qryCORPOEMAIL.CLOSE;
  971.                         try
  972.                          qryINCLUI_FBS_EMAIL_ENVIADO.ExecSQL;
  973.                         except
  974.                           sair:=True;
  975.                           TThread.Synchronize(myThread, procedure
  976.                             begin
  977.                               ShowMessage('Erro ao Cadastrar Email em Tabela.');
  978.                             end);
  979.                         end;
  980.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('UNID_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger;
  981.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('CLI_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger;
  982.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger;
  983.                         for xAnexo := 0 to ListBox1.Items.Count-1 do
  984.                           begin
  985.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_A_NOME').AsString:=ExtractFileName(ListBox1.Items.Strings[xAnexo]);
  986.       //                      qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_B_ARQUIVO').Value:=null; // LoadFromFile(ListBox1.Items.Strings[xAnexo],ftTypedBinary);  //LoadFromFile (ListBox1.Items.Strings[xAnexo],ftBlob);   //AsBlob:=TFileName(ListBoxAssociacao.Items.Strings[xAnexo]);
  987.  
  988.       //                      qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_B_ARQUIVO').Asblob:='X';  //LoadFromFile(ListBox1.Items.Strings[xAnexo],); //TFileName(ListBox1.Items.Strings[xAnexo]);
  989.                             try
  990.                               qryINLCUI_FBS_EMAIL_ENVIADO_DET.ExecSQL;
  991.                             except
  992.       //                        ShowMessage('Erro ao Cadastrar Anexo(s).');
  993.                             end;
  994.                           end;
  995.                       end;
  996.  
  997. MetroScience, [01.04.18 19:19]
  998. [In reply to Carlos Dias Da silva Delphi Developer]
  999. CORPODOEMAIL:=CORPODOEMAIL+COPY(qryCORPOEMAILCORPO_EMAIL_RELATORIO.AsString,i,1)
  1000.                         else
  1001.                           CORPODOEMAIL:=CORPODOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  1002.                       end
  1003.                   end
  1004.                 else
  1005.                   FOR I:=1 to Length(qryCORPOEMAILCORPO_EMAIL.AsString) do
  1006.                     begin
  1007.                       IF (COPY(qryCORPOEMAILCORPO_EMAIL.AsString,I,1)<>'#') then
  1008.                         CORPODOEMAIL:=CORPODOEMAIL+COPY(qryCORPOEMAILCORPO_EMAIL.AsString,i,1)
  1009.                       else
  1010.                         CORPODOEMAIL:=CORPODOEMAIL+qryEmailClienteCLI_A_RSOC.AsString;
  1011.                     end;
  1012.                 if (Copy(ExtractFileName(listbox1.Items.Strings[0]),1,3)='Rel') then
  1013.                 else
  1014.                 if (Trim(qryfbs_email_saidaLAUDOS_MAPA_A_EMAIL.AsString)<>'') then
  1015.                   if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  1016.                                     qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, qryfbs_email_saidaLAUDOS_MAPA_A_EMAIL.AsString,
  1017.                                     qryEMAILEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  1018.                                     '', '', ListBox1)=false) then
  1019.                     TThread.Synchronize(myThread, procedure
  1020.                       begin
  1021.                         ShowMessage('Erro ao inserir email...');
  1022.                       end);
  1023.  
  1024.                 TThread.Synchronize(myThread, procedure
  1025.                   begin
  1026.                     lblinformacao.Caption:='Enviando Email para o Proprietário.';
  1027.                     ListBox1.Items.Add(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+NomeRelatorio);
  1028.                   end);
  1029.   //---------— INICIO EMAIL PARA O PROPRIETÁRIO
  1030.  
  1031.                 qryCORPOEMAIL.Close;
  1032.                 if (ListBox1.Items.Text<>'') then
  1033.                   begin
  1034.                     if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  1035.                                       qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, qryEmailClienteCLI_A_EMAIL3.AsString,
  1036.                                       qryEMAILEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  1037.                                       '', '', ListBox1)=false) then
  1038.                       TThread.Synchronize(myThread, procedure
  1039.                         begin
  1040.                           ShowMessage('Erro ao inserir email...');
  1041.                         end)
  1042.                     else
  1043.                       begin
  1044.                         for xAnexo := 0 to ListBox1.Items.Count-1 do
  1045.                           begin
  1046.                             if (ListBox1.Items.Strings[xAnexo]=qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+NomeRelatorio) then
  1047.                               begin
  1048.                                 destino:=qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+NomeRelatorio;
  1049.                               end
  1050.                             else
  1051.                               begin
  1052.                                 aj:='';
  1053.                                 I:=4;
  1054.                                 repeat
  1055.                                   aj:=aj+Copy(ExtractFileName(ListBox1.Items.Strings[xAnexo]),I,1);
  1056.                                   Inc(I);
  1057.                                 until (Copy(ExtractFileName(ListBox1.Items.Strings[xAnexo]),I,1)='_');
  1058.                                 destino:=Trim(qrycnti_parametrosPAR_A_CAMINHO_LAUDOS.AsString+Copy(ExtractFileName(ListBox1.Items.Strings[xAnexo]),1,3)+ExtractFileName(aj)+'.pdf');
  1059.                                 try
  1060.                                   qryAmostra_Enviada_PROPRIETARIO.ParamByName('AMOSTRA').AsInteger:=StrToInt(AJ);
  1061.                                 except
  1062.                                   qryAmostra_Enviada_Proprietario.ParamByName('AMOSTRA').AsInteger:=StrToInt(Copy(AJ,4,Length(AJ)-3));
  1063.                                 end;
  1064.  
  1065. MetroScience, [01.04.18 19:19]
  1066. [In reply to Carlos Dias Da silva Delphi Developer]
  1067. end;
  1068.   //---------— TÉRMINO EMAIL PARA O PROPRIETÁRIO
  1069.                 TThread.Synchronize(myThread, procedure
  1070.                   begin
  1071.                     ListBox1.Items.Clear;
  1072.                     ListBoxAssociacao.Items.Clear;
  1073.                    end);
  1074.                 laudos:='';
  1075.                 qryfbs_amostra_dnaX.close;
  1076.                 qryfbs_amostra_dnaX.SQL.Clear;
  1077.                 qryfbs_amostra_dnaX.SQL:=qrytmpConsultaLaudoGeral.SQL;
  1078.                 qryfbs_amostra_dnaX.SQL.Add('where (fbs_animal.especie_i_cod=' + IntToStr(especie) + ') and  (fbs_amostra_dna.amostra_dna_i_amostra='+qryfbs_amostra_dnaAMOSTRA_DNA_I_AMOSTRA.AsString+') ');
  1079.                 codigoprorietario:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  1080.               end
  1081.             else
  1082.               IF (codigoprorietario<>qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger) then
  1083.                 begin
  1084.                 if (frmSeleciona_Envia_Placas <> nil) then
  1085.                   begin
  1086.                     qryfbs_amostra_dnaX.SQL.Add(' and (fbs_amostra_dna.especie_i_cod='+qryFBS_ESPECIE0ESPECIE_I_COD.AsString+') ');
  1087.                   end
  1088.                 else
  1089.                   begin
  1090.                     qryfbs_amostra_dnaX.SQL.Add(' and (fbs_amostra_dna.especie_i_cod='+qryfbs_amostra_dnaESPECIE_I_COD.AsString+') ');
  1091.                   end;
  1092.                   qryfbs_amostra_dnaX.SQL.Add('order by  fbs_clientes.cli_a_rsoc, fbs_amostra_dna.amostra_dna_i_amostra, fbs_amostra_dna.AMOSTRA_A_ENTREGUE');
  1093.                   qryfbs_amostra_dnaX.Prepare;
  1094.                   qryfbs_amostra_dnaX.open();
  1095.                   NomeRelatorio:=Trim('Rel_'+qryEmailCliente.parambyname('cod').AsString+'_'+TiraAcento(datetostr(Date))+'_'+TiraAcento(timetostr(Time))+'.pdf');
  1096. //                  TThread.Synchronize(myThread, procedure
  1097. //                   begin
  1098.                       qrpSimples.Prepare;
  1099.                       qrpSimples.ExportToFilter(TQRPDFDocumentFilter.Create(Trim(qrycnti_parametrosPAR_A_SER.AsString+'LaudoTmp\'+NomeRelatorio)));
  1100. //                   end);
  1101.                   incompativeis:=false;
  1102.                   qryfbs_amostra_dnaX.First;
  1103.                   while not qryfbs_amostra_dnaX.Eof do
  1104.                     begin
  1105.                       if (qryfbs_amostra_dnaXRESULT_I_COD.AsInteger=2) then
  1106.                         incompativeis:=true;
  1107.  
  1108.                       qryfbs_amostra_dnaX.Next;
  1109.                     end;
  1110.                   qryfbs_amostra_dnaX.close;
  1111.                   codigoprorietario:=qryfbs_amostra_dnaPROPRIETARIOCOD.AsInteger;
  1112.  
  1113.                   qryEmailCliente.close;
  1114.                   qryEmailCliente.open;
  1115.                   if (Trim(qryEmailClienteDNA_A_EMAIL_RACA.Text) = '') then
  1116.                     emailassociacao:=qryEmailClienteDNA_A_EMAIL.AsString
  1117.                   else
  1118.                     emailassociacao:=qryEmailClienteDNA_A_EMAIL_RACA.AsString;
  1119.  
  1120. MetroScience, [01.04.18 19:19]
  1121. [In reply to Carlos Dias Da silva Delphi Developer]
  1122. //---------— INICIO EMAIL PARA O PROPRIETÁRIO
  1123.                   qryCORPOEMAIL.Close;
  1124.                   if (ListBox1.Items.Text<>'') then
  1125.                   begin
  1126.                     if (RegistraEmail(qryfbs_email_saidaEM_PORT.AsInteger, qryfbs_email_saidaEM_HOST.AsString, qryfbs_email_saidaEM_USERID.AsString,
  1127.                                       qryfbs_email_saidaEM_A_SENHA.AsString, qryfbs_email_saidaEM_EMAIL.AsString, qryEmailClienteCLI_A_EMAIL3.AsString,
  1128.                                       qryEMAILEM_EMAIL.AsString, ASSUNTOEMAIL, CORPODOEMAIL,
  1129.                                       '', '', ListBox1)=false) then
  1130.                       TThread.Synchronize(myThread, procedure
  1131.                         begin
  1132.                           ShowMessage('Erro ao inserir email...')
  1133.                         end)
  1134.                     else
  1135.                       begin
  1136.                         qrysp_gen_fbs_email_enviado_id.close;
  1137.                         qrysp_gen_fbs_email_enviado_id.Open;
  1138.  
  1139.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger:=qrysp_gen_fbs_email_enviado_idID.AsInteger;
  1140.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSOC_PROPRI').AsString:='P';
  1141.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_D_DATAENVIO').AsDate:=Date;
  1142.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILDEENVIO').AsString:=qryEMAILEM_EMAIL.AsString;
  1143.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_EMAILENVIADO').AsString:=qryEmailClienteCLI_A_EMAIL3.AsString;
  1144.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_ASSUNTO').AsString:=ASSUNTOEMAIL+'';
  1145.                         qryCORPOEMAIL.Open;
  1146.                         qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_A_CORPODOEMAIL').AsBlob:=CORPODOEMAIL;
  1147.                         qryCORPOEMAIL.Close;
  1148.                         try
  1149.                          qryINCLUI_FBS_EMAIL_ENVIADO.ExecSQL;
  1150.                         except
  1151.                          sair:=True;
  1152.                          TThread.Synchronize(myThread, procedure
  1153.                            begin
  1154.                              ShowMessage('Erro ao Cadastrar Email em Tabela.');
  1155.                            end);
  1156.                         end;
  1157.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('UNID_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('UNID_I_COD').AsInteger;
  1158.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('CLI_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('CLI_I_COD').AsInteger;
  1159.                         qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_I_COD').AsInteger:=qryINCLUI_FBS_EMAIL_ENVIADO.ParamByName('EMAIL_I_COD').AsInteger;
  1160.                         for xAnexo := 0 to ListBox1.Items.Count-1 do
  1161.                           begin
  1162.                             qryINLCUI_FBS_EMAIL_ENVIADO_DET.ParamByName('EMAIL_DET_A_NOME').AsString:=ExtractFileName(ListBox1.Items.Strings[xAnexo]);
  1163.                             try
  1164.                               qryINLCUI_FBS_EMAIL_ENVIADO_DET.ExecSQL;
  1165.                             except
  1166.                                sair:=True;
  1167.                                TThread.Synchronize(myThread, procedure
  1168.                                  begin
  1169.                                    ShowMessage('Erro ao Cadastrar Anexo(s).');
  1170.                                  end);
  1171.                             end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement