unit uBizPedidosMontaje; interface uses uBizPedidosProveedor; type IBizPedidosMontaje = interface(IBizPedidosProveedor) ['{B2C82F22-C9E6-4965-AB7C-B6E6851051F4}'] procedure Show; procedure Delete; procedure AnadirPedido(CodigoMontaje: Integer); end; TBizPedidosMontaje = class(TBizPedidosProveedor, IBizPedidosMontaje) public procedure Show; override; procedure Delete; procedure AnadirPedido(CodigoMontaje: Integer); end; function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje; implementation uses uDataModulePedidosProveedor, uDADataTable, uDAInterfaces, SysUtils, uDACDSDataTable, uDataTableUtils, Dialogs, Controls, schPedidosProveedorClient_Intf; function DarPedidosMontaje(CodigoMontaje : Integer) : IBizPedidosMontaje; var dtPedidos: TDACDSDataTable; begin dtPedidos := dmPedidos.GetDataTableItems('BizPedidosMontaje'); with dtPedidos do begin if not Where.Empty then Where.AddOperator(opAND); Where.AddText('(CODIGOMONTAJE = ' + IntToStr(CodigoMontaje) + ')'); end; Result := (dtPedidos as IBizPedidosMontaje); end; { TBizPedidosMontaje } procedure TBizPedidosMontaje.AnadirPedido(CodigoMontaje: Integer); var APedido: IBizPedidosProveedor; begin try APedido := dmPedidos.GetItem(0); if not APedido.DataTable.Active then APedido.DataTable.Active := True; APedido.Insert; APedido.CODIGOMONTAJE := CodigoMontaje; APedido.Montaje := APedido.Montaje; APedido.Show; //Refrescamos la lista de pedidos del montaje Self.DataTable.Refresh; finally APedido := Nil; end; end; procedure TBizPedidosMontaje.Delete; begin if (MessageDlg('¿Desea borrar este pedido?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin Self.DataTable.Delete; end; end; procedure TBizPedidosMontaje.Show; var APedido: IBizPedidosProveedor; begin try APedido := dmPedidos.GetItem(CODIGO); if not APedido.DataTable.Active then APedido.DataTable.Active := True; APedido.Show; //Refrescamos la lista de pedidos del montaje Self.DataTable.Refresh; finally APedido := Nil; end; end; initialization RegisterDataTableRules('BizPedidosMontaje', TBizPedidosMontaje); finalization end.