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 127 128 129 130
|
procedure TFormPrestaShop.btnValiderClick(Sender: TObject);
var
Result: Boolean;
msg: String;
Rsql: Integer;
AQuery : TFDQuery;
SQL : String;
function Lignes(saison: String; cmde: Integer; var msg: String): Boolean;
var
i: word;
Rsql: Integer;
begin
Result := False;
RD.FDMemLcmdcli.First;
while not RD.FDMemLcmdcli.EOF do
begin
try
Aquery.SQL.Text:='INSERT INTO LCMDCLI (SAISON_CMDE,NUM_CMDE,LIGNE,MODELE,ASSORTIMENT,'
+ 'PRENDRE_STOCK,MARQUE,QUINZ_LIV,DATE_LIV,' +
'PT_1,PT_2,PT_3,PT_4,PT_5,PT_6,PT_7,PT_8,PT_9,PT_10,PT_11,PT_12,PT_13,PT_14,'
+ 'PT_15,PT_16,PT_17,PT_18,PT_19,PT_20,PT_21,PT_22,PT_23,PT_24,' +
'QTECDE1,QTECDE2,QTECDE3,QTECDE4,QTECDE5,QTECDE6,QTECDE7,QTECDE8,' +
'QTECDE9,QTECDE10,QTECDE11,QTECDE12,QTECDE13,QTECDE14,QTECDE15,QTECDE16,'
+ 'QTECDE17,QTECDE18,QTECDE19,QTECDE20,QTECDE21,QTECDE22,QTECDE23,QTECDE24,'
+ 'PRIX_UNITE,MODIFICATIONS,PARTICULARITE,ETAT_LIGNE,NOMENCLATURE,LAST_UTIL,'
+ 'LAST_MODIF,NOMEN_DOUANE,REMISE) VALUES (?,?,?,?,?,?,?,?,?,' +
'?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,' +
'?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,' +
'?,?,NULL,NULL,?,CURRENT_TIMESTAMP,?,0.00)';
AQuery.Params[0].AsString:=saison;
// ......
Rsql:=AQuery.ExecSQL('');
// Rsql := Datas.ConnexionBase.ExecSQL
// ('INSERT INTO LCMDCLI (SAISON_CMDE,NUM_CMDE,LIGNE,MODELE,ASSORTIMENT,' .....
Result := Rsql = 1;
except
on E: Exception do
begin
msg := E.Message;
break;
end;
end;
RD.FDMemLcmdcli.Next;
end;
end;
begin
AQuery:=TFDQuery.Create(Self);
try
AQuery.Connection:=Datas.ConnexionBase;
try
Datas.ConnexionBase.StartTransaction;
NumeroCmde := Datas.GetNumeroCommande(edtSaison.Text);
AQuery.SQl.Text:='INSERT INTO ECMDCLI (SAISON_CMDE,NUM_CMDE,DATE_CMDE,NUM_CLIENT,NOM_1,' +
'ADRESSE_1,ADRESSE_2,ADRESSE_3,CODE_POSTAL,VILLE,PAYS,PROVENANCE,' +
'REPRESENTANT,COMMISSION,TYPE_VENTE,CODE_TVA,MODE_PAIEMENT,REMISE,' +
'ESCOMPTE,DOMICILIATION,PORT,TRANSPORTEUR,ETAT_CMDE,REFERENCE,' +
'LAST_UTIL,LAST_MODIF ,TYPE_PORT,COMPTE,SWIFT,IBAN,DATE_LIV,TEL_LIV,DEVISE,'
+ 'IDCLIENTB2C,TAUX_TVA,OBSERVATIONS) ' +
' VALUES (:SC,:NC,:DC,:C,:N,:A1,:A2,:A3,:CDP,:V,:P,:PRO,:REP,:COM,:TV,:TVA,:MP,'
+ ' :REM,:ESC,:DOM,:PORT,:TRSPT,:EC,:REF,:LU,CURRENT_TIMESTAMP,:TP,:CPT,:SW,:IB,:DL,'
+ ':TEL,:D,:ID,:TAUX,:OBS)';
AQuery.Params[0].AsString:=RD.fdMemECmdcliSaison.AsString;
...
try
Rsql:= AQuery.ExecSQL('');
// Rsql := Datas.ConnexionBase.ExecSQL
// ('INSERT INTO ECMDCLI (SAISON_CMDE,NUM_CMDE,DATE_CMDE,NUM_CLIENT,NOM_1,' +.....
Result := Rsql = 1;
except
on e:Exception do
begin
result:=false;
showmessage(e.Message);
end;
end;
if Result then
Result := Result AND Lignes(RD.fdMemECmdcliSaison.AsString,NumeroCmde, msg);
if not Result then showmessage(msg);
except
on E: Exception do
begin
msg := E.Message;
Result := False;
end;
end;
if Result then
begin
Aquery.SQL.Text:='INSERT INTO CMDE_PRESTASHOP ' +
'(IDPRESTASHOP, SAISON, NUMERO, DATE_PEC) ' +
' VALUES (:I,:S,:N,CURRENT_TIMESTAMP)';
AQuery.Params[0].AsInteger:=RD.FDOrders.FieldByName('ID').AsInteger;
AQuery.Params[1].AsString:=edtSaison.Text;
AQuery.Params[2].AsInteger:=NumeroCmde;
// Datas.ConnexionBase.ExecSQL('INSERT INTO CMDE_PRESTASHOP ' + .....
try
rsql:=AQuery.ExecSQL('');
except
on e:Exception do
begin
result:=false;
showmessage(e.Message);
end;
end;
result:=result and (rsql=1);
end;
if result then
begin
Datas.ConnexionBase.Commit;
Datas.MessageService.MessageDialogSync
(Format('Cette commande a été crée sous le numéro %s-%d',
[edtSaison.Text, NumeroCmde]), TmsgDlgType.mtInformation,
[TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0);
CommandesRestantes;
TabControl1.ActiveTab := Commandes;
end
else
begin
Datas.ConnexionBase.Rollback;
TabControl1.Previous();
end;
finally
AQuery.Free;
end; |