git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@5 9a1d36f3-7752-2d40-8ccb-50eb49674c68
162 lines
4.3 KiB
ObjectPascal
162 lines
4.3 KiB
ObjectPascal
unit uBizAlmacenes;
|
||
|
||
interface
|
||
|
||
uses
|
||
uDAInterfaces, uDADataTable, schAlmacenesClient_Intf, Classes,
|
||
DBGrids, uDBSelectionList, DB, uExceptions, Controls;
|
||
|
||
type
|
||
|
||
IBizAlmacen = interface(IALMACENES)
|
||
['{D9479C4B-52EA-4DB6-9F8F-4B8B758EF80A}']
|
||
procedure Show;
|
||
procedure ShowAll;
|
||
procedure Preview;
|
||
function ShowForSelect : TModalResult;
|
||
end;
|
||
|
||
TBizAlmacenDataTableRules = class(TALMACENESDataTableRules, IBizAlmacen,
|
||
IApplyUpdateFailedException, ISelectedRowList)
|
||
private
|
||
FSelectedRows : TSelectedRowList;
|
||
procedure ShowToSelect;
|
||
procedure BeforeApplyUpdates(Sender: TDADataTable; const Delta: IDADelta);
|
||
procedure OnPostError(DataTable: TDADataTable; Error: EDatabaseError;
|
||
var Action: TDataAction); override;
|
||
protected
|
||
procedure OnNewRecord(Sender: TDADataTable); override;
|
||
function GetSelectedRows : TSelectedRowList; virtual;
|
||
procedure ShowApplyUpdateFailed (const Error: EDAApplyUpdateFailed); virtual;
|
||
procedure BeforeDelete(Sender: TDADataTable); override;
|
||
public
|
||
constructor Create(aDataTable: TDADataTable); override;
|
||
destructor Destroy; override;
|
||
procedure Show; virtual;
|
||
procedure ShowAll; virtual;
|
||
procedure Preview; virtual;
|
||
function ShowForSelect : TModalResult; virtual;
|
||
property SelectedRows : TSelectedRowList read GetSelectedRows;
|
||
end;
|
||
|
||
procedure ValidarAlmacen (const AAlmacen : IBizAlmacen);
|
||
|
||
implementation
|
||
|
||
uses
|
||
Windows, Dialogs, uDACDSDataTable, SysUtils, uDataModuleBase, uDataModuleUsuarios,
|
||
uEditorUtils, uDataModuleAlmacenes, Variants;
|
||
|
||
|
||
procedure ValidarAlmacen (const AAlmacen : IBizAlmacen);
|
||
begin
|
||
//
|
||
end;
|
||
|
||
|
||
{ TBizAlmacenDataTableRules }
|
||
|
||
{
|
||
************************** TBizAlmacenDataTableRules **************************
|
||
}
|
||
|
||
procedure TBizAlmacenDataTableRules.OnNewRecord(Sender: TDADataTable);
|
||
begin
|
||
inherited;
|
||
CODIGOEMPRESA := dmBase.CodigoEmpresa;
|
||
USUARIO := dmUsuarios.LoginInfo.UserID;
|
||
FECHAALTA := Date;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.Show;
|
||
begin
|
||
ShowEditor(IBizAlmacen, Self, etItem);
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.Preview;
|
||
begin
|
||
// dmContactos.Preview;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.ShowApplyUpdateFailed(
|
||
const Error: EDAApplyUpdateFailed);
|
||
begin
|
||
if (Pos(AUF_FKVIOLATION, Error.Message) > 0) then
|
||
MessageBox(0, 'No se puede borrar este almac<61>n porque tiene articulos o est<73> asociado al destino de alg<6C>n pedido', 'Atenci<63>n', MB_ICONWARNING or MB_OK);
|
||
end;
|
||
|
||
function TBizAlmacenDataTableRules.GetSelectedRows: TSelectedRowList;
|
||
begin
|
||
Result := FSelectedRows;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.ShowToSelect;
|
||
begin
|
||
//
|
||
end;
|
||
|
||
constructor TBizAlmacenDataTableRules.Create(aDataTable: TDADataTable);
|
||
begin
|
||
inherited;
|
||
FSelectedRows := TSelectedRowList.Create(aDataTable);
|
||
aDataTable.OnBeforeApplyUpdates := BeforeApplyUpdates;
|
||
end;
|
||
|
||
destructor TBizAlmacenDataTableRules.Destroy;
|
||
begin
|
||
FSelectedRows.Free;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.ShowAll;
|
||
begin
|
||
// ShowEditor(IBizProveedor, Self, etItems);
|
||
end;
|
||
|
||
function TBizAlmacenDataTableRules.ShowForSelect: TModalResult;
|
||
begin
|
||
Result := ShowEditor(IBizAlmacen, Self, etItems);
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.BeforeApplyUpdates(
|
||
Sender: TDADataTable; const Delta: IDADelta);
|
||
var
|
||
i: Integer;
|
||
begin
|
||
for i := 0 to Delta.Count - 1 do
|
||
case Delta.Changes[i].ChangeType of
|
||
ctInsert, ctUpdate : ValidarAlmacen(Self);
|
||
// ctDelete :
|
||
end;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.OnPostError(DataTable: TDADataTable;
|
||
Error: EDatabaseError; var Action: TDataAction);
|
||
begin
|
||
inherited;
|
||
Action := daAbort;
|
||
if (Pos(AUF_HAVEVALUE, Error.Message) > 0) then
|
||
begin
|
||
if (Pos('Nombre', Error.Message) > 0) then
|
||
MessageBox(0, 'Debe indicar al menos el nombre', 'Atenci<63>n', MB_ICONWARNING or MB_OK)
|
||
else
|
||
raise Error;
|
||
end
|
||
else
|
||
raise Error;
|
||
end;
|
||
|
||
procedure TBizAlmacenDataTableRules.BeforeDelete(Sender: TDADataTable);
|
||
begin
|
||
inherited;
|
||
if not dmAlmacenes.PuedoEliminarAlmacen(CODIGO) then
|
||
raise Exception.Create('No se puede borrar este almac<61>n porque tiene articulos o est<73> asociado al destino de alg<6C>n pedido');
|
||
end;
|
||
|
||
initialization
|
||
RegisterDataTableRules('BizAlmacen', TBizAlmacenDataTableRules);
|
||
|
||
finalization
|
||
|
||
end.
|