El problema que se me presenta ahora es que tengo un negocio con 3 sucursales, entonces tengo un webservice en lan en cada sucursal por si se corta internet, es decir la conexion a un webservice central(que tambien modele).
Ahora bien, si hay internet por ejemplo, y se produce una compra debo registrar la misma en el servidor central y en el de la sucursal. Primero como es sabido se deben instanciar las clases TRemotable, he creado 2 clases iguales para el ticket dado que son los mismos datos, en tablas iguales (para esto tengo una parte de la base de datos: articulos clientes y tickets, distribuida o copiada).
delphi
procedure TForm3.Button4Click(Sender: TObject); var ticket:Isucursales1.Tticket; venta:Isucursales1.Tventa; comprador:Isucursales1.Tcliticket; filas:integer; x:integer; begin ticket:=Isucursales1.Tticket.Create; venta:=Isucursales1.Tventa.Create; comprador:=Isucursales1.Tcliticket.Create; with ticket do begin importe:=Grillaticket.DataSource.DataSet['total']; fechae:=FormatDateTime('yyyy/mm/dd',now()); horae:=FormatDateTime('hh:mm:ss', now); idsucursal:=1; end; GetIsucursales.hacerticket(ticket); // GetIferreteria.hacerticket(ticket); filas:=Grillaticket.DataSource.DataSet.RecordCount; with Grillaticket.DataSource.DataSet do begin First; for x := 1 to filas do begin with venta do begin idproducto:=Grillaticket.DataSource.DataSet['idproducto']; cantidad:=Grillaticket.DataSource.DataSet['cantidad']; end; GetIsucursales.ventas(venta); Next; end; end; if Form3.dsfactura.FieldByName('idcliente').AsInteger <> null then begin comprador.idc:=Form3.dsfactura.FieldByName('idcliente').AsInteger; GetIsucursales.asociarcliente(comprador); end; Grillaticket.DataSource.DataSet.Delete; end;
Como veran comente la linea // GetIferreteria.hacerticket(ticket);
Es correcto hacer esto? porque podria hacer que al registrar un nuevo ticket en "local" registrarlo en el "servicio central", pero como puedo saber en el central cuando se registra el ticket? Para esto ultimo incluiria el fichero wsdl del central en la aplicacion servidor local.
Espero haber sido claro...
Saludos