1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
//------------------------------------------------------------------------------
procedure TfmMainColisage.edColisEsclaveKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Edit: TCustomEdit absolute Sender;
LColisFound: Boolean;
LNumColis, LNatureChute: Integer;
LMagasin, LTransporteur, LMarque, LFournisseur: string;
begin
if Key <> 13 then
Exit;
LColisFound := ((Sender = edColisEsclave) and ColisageBusiness.ExtractNumeroColis(edColisEsclave.Text, LNumColis))
or ((Sender = edColisEsclaveByNumTransp) and ColisageBusiness.ExtractNumeroColisByNumTransp(edColisEsclaveByNumTransp.Text, LNumColis));
if not LColisFound then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('N° de colis incorrect'), mtInformation, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
if LNumColis = FColisMaitre then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('Vous ne pouvez ajouter un colis dans lui-même.'), mtInformation, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
if ColisageBusiness.ColisDejaAjoute(LNumColis) then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('Ce colis a déjà été ajouté.'), mtWarning, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
if not ColisageBusiness.MagasinTransporteurOuMarqueDuColis(LNumColis, LMagasin, LTransporteur, LMarque, LFournisseur, LNatureChute) then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('Ce colis n''existe pas.'), mtInformation, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
if ColisageBusiness.ColisEsclaveDejaConsolide(FColisMaitre) then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('Ce colis fait déjà partie d''un autre colis maître.'), mtInformation, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
if (LMagasin = '') and (LFournisseur = '') and not (LNatureChute in [4,5]) then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(_('Ce colis n''a pas de destination. Impossible de l''ajouter.'), mtWarning, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
// Ccolisage tri magasin
if LMagasin <> '' then
begin
if LMagasin <> edMagasin.Text then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(Format(_('Ce colis a une destination (%s) différente de celle du colis maître. Impossible de l''ajouter.'), [LMagasin]), mtWarning, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
// Les Colis Inter-Magasin (RE) partent d'un magasin A vers un magasin B, il est possible que le transporteur soit différent !
if (LTransporteur <> uDeclarationHO.TRANSPORTEUR_NEUTRE ) and
(edTransport.Text <> uDeclarationHO.TRANSPORTEUR_NEUTRE ) and
(LTransporteur <> uDeclarationHO.TRANSPORTEUR_ECOM_REA ) and
(LTransporteur <> edTransport.Text) then
begin
TXxxxFormFlasher.Flash(Self, clWebOrange);
if TXxxxMessageDlg.Show(Format(_('Ce colis a un transporteur (%s) différent de celui du colis maître. Ignorer l''erreur et forcer l''ajout ?'), [LTransporteur]),
mtWarning, [mbCancel, mbIgnore],
[_('Annuler l''ajout'), _('Ignorer l''erreur et forcer l''ajout')]) <> mrIgnore then
begin
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
end;
end
// Colisage tri tiers (vers un fournisseur)
else
begin
if LFournisseur <> edCodeFournisseur.Text then
begin
TXxxxFormFlasher.Flash(Self, clRouge);
TXxxxMessageDlg.Show(Format(_('Ce colis est pour le fournisseur %s %s différent de celui du colis maître. Impossible de l''ajouter.'), [LFournisseur, ColisageBusiness.qVerifColisExiste.FieldByName('f_ch_nom').AsString]), mtWarning, [mbOk], mbCancel);
Edit.SetFocus();
Edit.SelectAll();
Exit;
end;
end;
TXxxxFormFlasher.Flash(Self, clVert);
ColisageBusiness.AjouteColisEsclave(FColisMaitre);
btnChangerColisMaitre.Enabled := False;
btnAnnulerColisMaitre.Enabled := True;
btnValiderColisMaitre.Enabled := True;
edColisEsclave.Text := '';
edColisEsclaveByNumTransp.Text := '';
Edit.SetFocus();
end; |
Partager