2008-03-28 15:10:28 +00:00
|
|
|
|
unit uEditorDetallesSinAlbaran;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
|
|
|
|
uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item,
|
|
|
|
|
|
TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane,
|
|
|
|
|
|
uViewDetallesSinAlbaran, Menus, DB, uDADataTable, ComCtrls, uViewGrid,
|
|
|
|
|
|
uDAScriptingProvider, uDACDSDataTable, JvAppStorage,
|
|
|
|
|
|
JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView,
|
|
|
|
|
|
uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase,
|
|
|
|
|
|
uIEditorDetallesSinAlbaran, uBizInventario, uViewGridBase,
|
2008-05-29 13:58:49 +00:00
|
|
|
|
JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uInventarioController,
|
|
|
|
|
|
uBizAlmacenes;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
|
|
|
|
TfEditorDetallesSinAlbaran = class(TfEditorGridBase, IEditorDetallesSinAlbaran)
|
|
|
|
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|
|
|
|
|
actExpandir: TAction;
|
|
|
|
|
|
actContraer: TAction;
|
|
|
|
|
|
frViewDetallesSinAlbaran1: TfrViewDetallesSinAlbaran;
|
|
|
|
|
|
TBXItem38: TTBXItem;
|
2008-04-21 07:35:55 +00:00
|
|
|
|
actAlbaranar: TAction;
|
2008-05-29 13:58:49 +00:00
|
|
|
|
JvNavPanelHeader1: TJvNavPanelHeader;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
|
|
|
|
|
|
procedure FormShow(Sender: TObject);
|
2008-04-21 07:35:55 +00:00
|
|
|
|
procedure actAlbaranarExecute(Sender: TObject);
|
2008-03-28 15:10:28 +00:00
|
|
|
|
|
|
|
|
|
|
private
|
2008-05-29 13:58:49 +00:00
|
|
|
|
FAlmacen: IBizAlmacen;
|
|
|
|
|
|
function GetAlmacen: Integer;
|
|
|
|
|
|
procedure SetAlmacen(const Value: Integer);
|
2008-03-28 15:10:28 +00:00
|
|
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
FDetalles: IBizDetalleSinAlbaran;
|
|
|
|
|
|
FController : IInventarioController;
|
|
|
|
|
|
|
|
|
|
|
|
// function GetArticulo: IBizInventario;
|
|
|
|
|
|
// procedure SetArticulo(const Value: IBizInventario);
|
|
|
|
|
|
function GetDetalles: IBizDetalleSinAlbaran;
|
|
|
|
|
|
procedure SetDetalles(const Value: IBizDetalleSinAlbaran);
|
|
|
|
|
|
|
|
|
|
|
|
{ procedure SetMultiSelect (AValue : Boolean);
|
|
|
|
|
|
function GetMultiSelect : Boolean;
|
|
|
|
|
|
function GetArticulosSeleccionados: IBizDetallesSinAlbaran;
|
|
|
|
|
|
}
|
|
|
|
|
|
function GetController : IInventarioController;
|
|
|
|
|
|
procedure SetController (const Value : IInventarioController);
|
|
|
|
|
|
|
|
|
|
|
|
procedure ImprimirInterno; override;
|
|
|
|
|
|
procedure PrevisualizarInterno; override;
|
|
|
|
|
|
|
|
|
|
|
|
public
|
2008-05-29 13:58:49 +00:00
|
|
|
|
property Almacen: Integer read GetAlmacen write SetAlmacen;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
property DetallesSinAlbaran: IBizDetalleSinAlbaran read GetDetalles write SetDetalles;
|
|
|
|
|
|
property Controller : IInventarioController read GetController write SetController;
|
|
|
|
|
|
|
|
|
|
|
|
// property ArticulosSeleccionados: IBizDetallesSinAlbaran read GetArticulosSeleccionados;
|
|
|
|
|
|
// property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
|
|
|
|
|
|
|
|
|
|
|
|
constructor Create(AOwner: TComponent); override;
|
|
|
|
|
|
destructor Destroy; override;
|
|
|
|
|
|
procedure PonerTitulos(const ATitulo: string = ''); override;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
{$R *.DFM}
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios,
|
|
|
|
|
|
uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView,
|
2008-05-29 13:58:49 +00:00
|
|
|
|
uAlmacenesController, uGenerarAlbaranesProvUtils,
|
2008-04-21 07:35:55 +00:00
|
|
|
|
schInventarioClient_Intf, uDialogUtils, uBizAlbaranesCliente, uGenerarAlbaranesCliUtils;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
|
|
|
|
|
|
{, uDBSelectionList, uDataModulePedidosProveedor,
|
|
|
|
|
|
uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ TfEditorDetallesSinAlbaran }
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
***************************** TfEditorDetallesSinAlbaran *****************************
|
|
|
|
|
|
}
|
2008-04-21 07:35:55 +00:00
|
|
|
|
procedure TfEditorDetallesSinAlbaran.actAlbaranarExecute(Sender: TObject);
|
|
|
|
|
|
var
|
|
|
|
|
|
ArticulosSeleccionados: IBizDetalleSinAlbaran;
|
|
|
|
|
|
AlbaranesCliente: IBizAlbaranCliente;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
try
|
|
|
|
|
|
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (DetallesSinAlbaran as ISeleccionable).SelectedRecords);
|
|
|
|
|
|
// En SelectedRecords tengo los ID de las filas seleccionadas del grid
|
|
|
|
|
|
ArticulosSeleccionados := (Controller as IInventarioController).ExtraerSeleccionados(DetallesSinAlbaran) as IBizDetalleSinAlbaran;
|
|
|
|
|
|
|
|
|
|
|
|
if (ArticulosSeleccionados.DataTable.RecordCount > 0) then
|
2008-05-29 13:58:49 +00:00
|
|
|
|
begin
|
|
|
|
|
|
GenerarAlbaranesCli(ArticulosSeleccionados, AlbaranesCliente, Almacen);
|
|
|
|
|
|
RefrescarInterno;
|
|
|
|
|
|
end
|
2008-04-21 07:35:55 +00:00
|
|
|
|
else
|
|
|
|
|
|
ShowWarningMessage('Debe seleccionar los art<72>culos que desea albaranar');
|
|
|
|
|
|
finally
|
|
|
|
|
|
ArticulosSeleccionados:= Nil;
|
|
|
|
|
|
AlbaranesCliente:= Nil;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2008-03-28 15:10:28 +00:00
|
|
|
|
constructor TfEditorDetallesSinAlbaran.Create(AOwner: TComponent);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
2008-05-29 13:58:49 +00:00
|
|
|
|
FAlmacen := Nil;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
ViewGrid := frViewDetallesSinAlbaran1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.DarIDAlmacenSeleccionado(Descripcion: String): Integer;
|
|
|
|
|
|
var
|
|
|
|
|
|
AAlmacenes : IBizAlmacen;
|
|
|
|
|
|
AAlmacenesController : IAlmacenesController;
|
|
|
|
|
|
Respuesta : integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (ViewGrid._Grid.ActiveLevel.Tag = -1) then
|
|
|
|
|
|
Result := SeleccionarAlmacen(Descripcion)
|
|
|
|
|
|
else
|
|
|
|
|
|
Result := ViewGrid._Grid.ActiveLevel.Tag;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
destructor TfEditorDetallesSinAlbaran.Destroy;
|
|
|
|
|
|
begin
|
|
|
|
|
|
FDetalles := NIL;
|
2008-05-29 13:58:49 +00:00
|
|
|
|
FAlmacen := NIL;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.FormShow(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
|
|
|
|
|
if not Assigned(ViewGrid) then
|
|
|
|
|
|
raise Exception.Create('No hay ninguna vista asignada');
|
|
|
|
|
|
|
|
|
|
|
|
if not Assigned(DetallesSinAlbaran) then
|
|
|
|
|
|
raise Exception.Create('No hay ning<6E>n DetallesSinAlbaran asignado');
|
|
|
|
|
|
|
|
|
|
|
|
DetallesSinAlbaran.DataTable.Active := True;
|
|
|
|
|
|
ViewGrid.GotoFirst;
|
|
|
|
|
|
end;
|
|
|
|
|
|
{
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.GetArticulosSeleccionados: IBizDetallesSinAlbaran;
|
|
|
|
|
|
begin
|
|
|
|
|
|
SeleccionarFilasDesdeGrid((ViewGrid as IViewDetallesSinAlbaran)._FocusedView, (DetallesSinAlbaran as ISeleccionable).SelectedRecords);
|
|
|
|
|
|
// En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid
|
|
|
|
|
|
Result := Controller.ExtraerSeleccionados(DetallesSinAlbaran);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.GetController: IDetallesSinAlbaranController;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FController;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.GetArticulo: IBizInventario;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FArticulo;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2008-05-29 13:58:49 +00:00
|
|
|
|
function TfEditorDetallesSinAlbaran.GetAlmacen: Integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Assigned(FAlmacen) then
|
|
|
|
|
|
Result := FAlmacen.ID
|
|
|
|
|
|
else
|
|
|
|
|
|
Result := -1;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2008-03-28 15:10:28 +00:00
|
|
|
|
function TfEditorDetallesSinAlbaran.GetController: IInventarioController;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FController;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.GetDetalles: IBizDetalleSinAlbaran;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FDetalles;
|
|
|
|
|
|
end;
|
|
|
|
|
|
{
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.GetMultiSelect: Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := ViewGrid.MultiSelect;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.ImprimirInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.PonerTitulos(const ATitulo: string);
|
|
|
|
|
|
var
|
|
|
|
|
|
FTitulo : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
FTitulo := 'Detalle de art<72>culos sin albaranar - ' + dmUsuarios.EmpresaActual.NOMBRE;
|
|
|
|
|
|
inherited PonerTitulos(FTitulo);
|
2008-05-29 13:58:49 +00:00
|
|
|
|
JvNavPanelHeader1.Caption := 'Almac<61>n de salida: ' + FAlmacen.NOMBRE;
|
2008-03-28 15:10:28 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.PrevisualizarInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
end;
|
|
|
|
|
|
{
|
|
|
|
|
|
function TfEditorDetallesSinAlbaran.SeleccionarAlmacen(Descripcion: String): Integer;
|
|
|
|
|
|
var
|
|
|
|
|
|
AAlmacenes : IBizAlmacen;
|
|
|
|
|
|
Respuesta : integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := -1;
|
|
|
|
|
|
{
|
|
|
|
|
|
JsElegirAlmacenDialog.Instruction.Text := Descripcion;
|
|
|
|
|
|
with JsElegirAlmacenDialog.RadioButtons do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Clear;
|
|
|
|
|
|
AAlmacenes := (ViewGrid as IViewDetallesSinAlbaran).Almacenes;
|
|
|
|
|
|
AAlmacenes.First;
|
|
|
|
|
|
while not AAlmacenes.EOF do
|
|
|
|
|
|
begin
|
|
|
|
|
|
with Add do
|
|
|
|
|
|
begin
|
|
|
|
|
|
Caption := AAlmacenes.NOMBRE;
|
|
|
|
|
|
Value := 1000 + AAlmacenes.ID;
|
|
|
|
|
|
end;
|
|
|
|
|
|
//Asi sabemos que solo va a intentar chequear el primero si hemos a<>adido al menos un item
|
|
|
|
|
|
Items[0].Checked := True;
|
|
|
|
|
|
AAlmacenes.Next;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//Sacar la pantalla de selecci<63>n y devolver el almac<61>n seleccionado.
|
|
|
|
|
|
Respuesta := JsElegirAlmacenDialog.Execute;
|
|
|
|
|
|
if Respuesta <> IDCANCEL then
|
|
|
|
|
|
Result := JsElegirAlmacenDialog.RadioResult - 1000;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetController(const Value: IDetallesSinAlbaranController);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FController := Value;
|
|
|
|
|
|
|
|
|
|
|
|
if Assigned(FController) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Assigned(ViewGrid) then
|
|
|
|
|
|
(ViewGrid as IViewDetallesSinAlbaran).Almacenes := FController.AlmacenesController.BuscarTodos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
{
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetArticulo(const Value: IBizInventario);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FArticulo := Value;
|
|
|
|
|
|
if Assigned(FArticulo) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
tbxEditFiltro.Text := FArticulo.REFERENCIA;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
2008-05-29 13:58:49 +00:00
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetAlmacen(const Value: Integer);
|
|
|
|
|
|
var
|
|
|
|
|
|
AAlmacenesController : IAlmacenesController;
|
|
|
|
|
|
begin
|
|
|
|
|
|
AAlmacenesController := TAlmacenesController.Create;
|
|
|
|
|
|
try
|
|
|
|
|
|
FAlmacen := AAlmacenesController.Buscar(Value);
|
|
|
|
|
|
FAlmacen.DataTable.Active := True;
|
|
|
|
|
|
finally
|
|
|
|
|
|
AAlmacenesController := NIL;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2008-03-28 15:10:28 +00:00
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetController(const Value: IInventarioController);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FController := Value;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetDetalles(const Value: IBizDetalleSinAlbaran);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FDetalles := Value;
|
|
|
|
|
|
dsDataTable.DataTable := FDetalles.DataTable;
|
|
|
|
|
|
|
|
|
|
|
|
if Assigned(ViewGrid) then
|
|
|
|
|
|
(ViewGrid as IViewDetalleSinAlbaran).Detalles := FDetalles;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
procedure TfEditorDetallesSinAlbaran.SetMultiSelect(AValue: Boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
ViewGrid.MultiSelect := AValue;
|
|
|
|
|
|
end;
|
|
|
|
|
|
}
|
|
|
|
|
|
end.
|
|
|
|
|
|
|
2008-05-29 13:58:49 +00:00
|
|
|
|
|