This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Montajes/Cliente/uEditorMontaje.pas

243 lines
7.5 KiB
ObjectPascal
Raw Blame History

unit uEditorMontaje;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
uViewMontaje, uBizMontajes, JvNavigationPane, ActnList,
uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList,
TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize,
uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls,
TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, uViewMensaje,
JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
uViewMontajes, Grids, DBGrids, uViewGrid,
uBizPedidosMontaje, uViewPedidosMontaje,
uBizArticulosMontaje, uViewArticulosMontaje, uViewFichaBeneficiosMontaje,
JvComponentBase;
type
IEditorMontaje = interface(IEditorDBItem)
['{FDE5A2F2-8C68-49CA-917B-C97E618CF9E9}']
function GetMontaje: IBizMontaje;
procedure SetMontaje(const Value: IBizMontaje);
property Montaje: IBizMontaje read GetMontaje write SetMontaje;
end;
TfEditorMontaje = class(TfEditorDBItem, IEditorMontaje)
pagPedidos: TTabSheet;
frViewPedidosMontaje: TfrViewPedidosMontaje;
pagArticulos: TTabSheet;
frViewArticulosMontaje: TfrViewArticulosMontaje;
pagFichaBeneficios: TTabSheet;
frViewFichaBeneficiosMontaje: TfrViewFichaBeneficiosMontaje;
frViewMontaje1: TfrViewMontaje;
TBXSeparatorItem14: TTBXSeparatorItem;
TBXItem7: TTBXItem;
actEtiquetas: TAction;
procedure FormShow(Sender: TObject);
procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
Sender: TObject);
procedure frViewPedidosMontajeactRecibirPedidoExecute(Sender: TObject);
procedure frViewPedidosMontajeactRecibirPedidoUpdate(Sender: TObject);
procedure actEtiquetasExecute(Sender: TObject);
procedure actEliminarExecute(Sender: TObject);
private
FMontaje: IBizMontaje;
FViewMontaje : IViewMontaje;
FPedidosMontaje : IBizPedidosMontaje;
FArticulosMontaje : IBizArticulosMontaje;
FFichaBeneficiosMontaje : IBizFichaBeneficiosMontaje;
protected
function GetModified: Boolean; override;
function GetMontaje: IBizMontaje; virtual;
procedure SetMontaje(const Value: IBizMontaje); virtual;
function GetViewMontaje: IViewMontaje;
procedure SetViewMontaje(const Value: IViewMontaje);
property ViewMontaje: IViewMontaje read GetViewMontaje write
SetViewMontaje;
public
property Montaje: IBizMontaje read GetMontaje write SetMontaje;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses
uCustomEditor, uDataModuleMontajes, uDataModuleBase, uEditorUtils,
uBizPedidosProveedor, uDataTableUtils, uAsistenteEtiquetasMontajes;
function ShowEditorMontaje (ABizObject : TDADataTableRules): TModalResult;
var
AEditor: TfEditorMontaje;
begin
AEditor := TfEditorMontaje.Create(Application);
try
AEditor.Montaje := (ABizObject as IBizMontaje);
Result := AEditor.ShowModal;
finally
AEditor.Release;
end;
end;
{
******************************* TfEditorMontaje *******************************
}
function TfEditorMontaje.GetMontaje: IBizMontaje;
begin
Result := FMontaje;
end;
function TfEditorMontaje.GetViewMontaje: IViewMontaje;
begin
Result := FViewMontaje;
end;
procedure TfEditorMontaje.SetMontaje(const Value: IBizMontaje);
begin
FMontaje := Value;
dsDataTable.DataTable := FMontaje.DataTable;
if Assigned(FViewMontaje) and Assigned(Montaje) then
begin
FViewMontaje.Montaje := Montaje;
frViewFichaBeneficiosMontaje.FichaBeneficiosMontaje := Montaje.FichaBeneficios;
end;
FPedidosMontaje := DarPedidosMontaje(FMontaje.CODIGO);
FPedidosMontaje.DataTable.Active := True;
frViewPedidosMontaje.CodigoMontaje := FMontaje.CODIGO;
frViewPedidosMontaje.PedidosMontaje := FPedidosMontaje;
FArticulosMontaje := DarArticulosMontaje(FMontaje.CODIGO);
FArticulosMontaje.DataTable.Active := True;
frViewArticulosMontaje.CodigoMontaje := FMontaje.CODIGO;
frViewArticulosMontaje.ArticulosMontaje := FArticulosMontaje;
// FFichaBeneficiosMontaje := dmMontajes.GetFichaBeneficios(FMontaje.CODIGO);
// FFichaBeneficiosMontaje.DataTable.Active := True;
// frViewFichaBeneficiosMontaje.FichaBeneficiosMontaje := FFichaBeneficiosMontaje;
end;
procedure TfEditorMontaje.SetViewMontaje(const Value: IViewMontaje);
begin
FViewMontaje := Value;
if Assigned(FViewMontaje) and Assigned(Montaje) then
FViewMontaje.Montaje := Montaje;
end;
procedure TfEditorMontaje.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(FViewMontaje) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Montaje) then
raise Exception.Create('No hay ning<6E>n almac<61>n asignado');
Montaje.DataTable.Active := True;
{ FViewMontaje.ShowEmbedded(pagGeneral);
FViewMontaje.SetFocus;}
end;
destructor TfEditorMontaje.Destroy;
begin
FViewMontaje := NIL;
FMontaje := NIL;
FPedidosMontaje := NIL;
FArticulosMontaje := NIL;
// FFichaBeneficiosMontaje := NIL;
inherited;
end;
constructor TfEditorMontaje.Create(AOwner: TComponent);
begin
inherited;
// ViewMontaje := CreateView(TfrViewMontaje) as IViewMontaje;
ViewMontaje := frViewMontaje1;
end;
procedure TfEditorMontaje.frViewDatosYSeleccionContactoedtlNombrePropertiesChange(
Sender: TObject);
begin
inherited;
if Length(frViewMontaje1.frViewDatosYSeleccionContacto.edtlNombre.Text) = 0 then
JvNavPanelHeader.Caption := 'Nuevo montaje'
else
JvNavPanelHeader.Caption := 'Montaje para ' +
frViewMontaje1.frViewDatosYSeleccionContacto.edtlNombre.Text;
Caption := JvNavPanelHeader.Caption;
end;
procedure TfEditorMontaje.frViewPedidosMontajeactRecibirPedidoExecute(Sender: TObject);
var
APedido: IBizPedidosMontaje;
begin
inherited;
(frViewPedidosMontaje as IViewPedidosMontaje).SyncFocusedRecordsFromGrid;
if FPedidosMontaje.SITUACION = SITUACION_RECIBIDO then
begin
showmessage('El pedido seleccionado ya esta totalmente recibido');
exit;
end;
try
FArticulosMontaje.RecibirArticulos(FPedidosMontaje, 0);
finally
(frViewPedidosMontaje as IViewPedidosMontaje).RefreshGrid;
(frViewPedidosMontaje as IViewPedidosMontaje).SyncFocusedRecordsFromDataSet;
end;
end;
procedure TfEditorMontaje.frViewPedidosMontajeactRecibirPedidoUpdate(Sender: TObject);
begin
inherited;
if Assigned(FPedidosMontaje.DataTable) then
(Sender as TAction).Enabled := (not FPedidosMontaje.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
function TfEditorMontaje.GetModified: Boolean;
var
bCambiado : Boolean;
begin
bCambiado := inherited GetModified;
if not bCambiado then
begin
bCambiado := (frViewFichaBeneficiosMontaje.DADataSource.DataTable.State = dsEdit) or
DeltaValuesAreDifferent(frViewFichaBeneficiosMontaje.DADataSource.DataTable.Delta);
end;
Result := bCambiado;
end;
procedure TfEditorMontaje.actEtiquetasExecute(Sender: TObject);
begin
inherited;
VerAsistenteEtiquetasMontajes(FMontaje);
end;
procedure TfEditorMontaje.actEliminarExecute(Sender: TObject);
begin
if (Application.MessageBox('<27>Desea borrar este montaje?', 'Atenci<63>n', MB_YESNO) = IDYES) then
inherited;
end;
initialization
RegisterEditor(IBizMontaje, ShowEditorMontaje, etItem);
end.