Repaso del paso de pedido de cliente a albarán de cliente.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@34 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
ba59a11005
commit
c6100549bb
@ -170,8 +170,7 @@
|
|||||||
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
|
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
|
||||||
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||||
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
|
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
|
||||||
</VersionInfoKeys>
|
</VersionInfoKeys> <Excluded_Packages>
|
||||||
<Excluded_Packages>
|
|
||||||
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_IDE_D10.bpl">RemObjects Data Abstract - IDE Package</Excluded_Packages>
|
<Excluded_Packages Name="C:\Archivos de programa\RemObjects Software\Data Abstract for Delphi\Dcu\D10\DataAbstract_IDE_D10.bpl">RemObjects Data Abstract - IDE Package</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMImportD2006.bpl">SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005</Excluded_Packages>
|
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMImportD2006.bpl">SMImport suite: data importing into dataset. Scalabium/Mike Shkolnik, 2000-2005</Excluded_Packages>
|
||||||
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMExportD2006.bpl">SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004.</Excluded_Packages>
|
<Excluded_Packages Name="C:\Documents and Settings\David\Mis documentos\Borland Studio Projects\Bpl\SMExportD2006.bpl">SMExport suite: data export from dataset. Written by Mike Shkolnik/Scalabium, 1998-2004.</Excluded_Packages>
|
||||||
|
|||||||
Binary file not shown.
@ -73,7 +73,10 @@ type
|
|||||||
property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros;
|
property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros;
|
||||||
|
|
||||||
function esSeleccionCeldaDatos: Boolean;
|
function esSeleccionCeldaDatos: Boolean;
|
||||||
end;
|
|
||||||
|
function Locate(const AItemIndex: Integer; const AValue: String;
|
||||||
|
const APartialCompare: Boolean = False) : Boolean;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
TfrViewGridBase = class(TfrViewBase, IViewGridBase)
|
TfrViewGridBase = class(TfrViewBase, IViewGridBase)
|
||||||
@ -130,6 +133,9 @@ type
|
|||||||
procedure StoreToRegistry (const Path : String); virtual;
|
procedure StoreToRegistry (const Path : String); virtual;
|
||||||
procedure RestoreFromRegistry (const Path : String); virtual;
|
procedure RestoreFromRegistry (const Path : String); virtual;
|
||||||
|
|
||||||
|
function Locate(const AItemIndex: Integer; const AValue: String;
|
||||||
|
const APartialCompare: Boolean = False) : Boolean;
|
||||||
|
|
||||||
property Filter: string read GetFilter write SetFilter;
|
property Filter: string read GetFilter write SetFilter;
|
||||||
property Filtered : Boolean read GetFiltered;
|
property Filtered : Boolean read GetFiltered;
|
||||||
|
|
||||||
@ -243,6 +249,13 @@ begin
|
|||||||
Result := (_FocusedView.ViewData.RowCount < 1);
|
Result := (_FocusedView.ViewData.RowCount < 1);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TfrViewGridBase.Locate(const AItemIndex: Integer; const AValue: String;
|
||||||
|
const APartialCompare: Boolean): Boolean;
|
||||||
|
begin
|
||||||
|
{ if Assigned(_FocusedView) then
|
||||||
|
Result := _FocusedView.DataController.FindRecordIndexByText(0, AItemIndex, AText, APartialCompare, True, True)}
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TfrViewGridBase.Preview;
|
procedure TfrViewGridBase.Preview;
|
||||||
begin
|
begin
|
||||||
//
|
//
|
||||||
@ -291,22 +304,19 @@ end;
|
|||||||
|
|
||||||
procedure TfrViewGridBase.SetFilter(const Value: string);
|
procedure TfrViewGridBase.SetFilter(const Value: string);
|
||||||
begin
|
begin
|
||||||
// if FFilter <> Value then
|
FFilter := Value;
|
||||||
// begin
|
|
||||||
FFilter := Value;
|
|
||||||
|
|
||||||
//Así tendremos el mismo valor en el filtro simple que en el filtro en detalle
|
//Así tendremos el mismo valor en el filtro simple que en el filtro en detalle
|
||||||
if Assigned(ViewFiltros) then
|
if Assigned(ViewFiltros) then
|
||||||
ViewFiltros.Texto := FFilter;
|
ViewFiltros.Texto := FFilter;
|
||||||
|
|
||||||
FiltrarGrid(FFilter);
|
FiltrarGrid(FFilter);
|
||||||
|
|
||||||
//Obliga a generar todos los filtros de las vista hija
|
//Obliga a generar todos los filtros de las vista hija
|
||||||
AnadirOtrosFiltros;
|
AnadirOtrosFiltros;
|
||||||
|
|
||||||
if Assigned(FOnFilterChanged) then
|
if Assigned(FOnFilterChanged) then
|
||||||
FOnFilterChanged(Self);
|
FOnFilterChanged(Self);
|
||||||
// end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean);
|
procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean);
|
||||||
|
|||||||
@ -285,8 +285,8 @@ end;
|
|||||||
procedure TfEditorAlbaranesCliente.NuevoInterno;
|
procedure TfEditorAlbaranesCliente.NuevoInterno;
|
||||||
var
|
var
|
||||||
Respuesta : Integer;
|
Respuesta : Integer;
|
||||||
FPedidosClienteController : IPedidosClienteController;
|
AAlbaran : IBizAlbaranCliente;
|
||||||
APedido : IBizPedidoCliente;
|
IDAlbaranAux: Integer;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
|
||||||
@ -296,15 +296,8 @@ begin
|
|||||||
begin
|
begin
|
||||||
case JsNuevoAlbaranDialog.CustomButtonResult of
|
case JsNuevoAlbaranDialog.CustomButtonResult of
|
||||||
200 : begin // Utilizar un pedido
|
200 : begin // Utilizar un pedido
|
||||||
FPedidosClienteController := TPedidosClienteController.Create;
|
if ElegirPedidoYGenerarAlbaranCli(IDAlbaranAux) then
|
||||||
try
|
actRefrescar.Execute;
|
||||||
APedido := FPedidosClienteController.ElegirPedidos(FPedidosClienteController.BuscarPendientes,
|
|
||||||
'Elija el pedido de cliente que desea utilizar para dar de alta el albarán.', False);
|
|
||||||
if Assigned(APedido) then
|
|
||||||
GenerarAlbaranCli(APedido); // El proceso de generación ya pregunta si el usuario quiere ver o no el albarán generado.
|
|
||||||
finally
|
|
||||||
FPedidosClienteController := NIL;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
100 : begin // Albaran nuevo vacio
|
100 : begin // Albaran nuevo vacio
|
||||||
if FController.Anadir(Albaranes) then
|
if FController.Anadir(Albaranes) then
|
||||||
|
|||||||
@ -20,7 +20,8 @@
|
|||||||
<Projects Name="PedidosCliente_data.bpl">Data\PedidosCliente_data.bdsproj</Projects>
|
<Projects Name="PedidosCliente_data.bpl">Data\PedidosCliente_data.bdsproj</Projects>
|
||||||
<Projects Name="PedidosCliente_controller.bpl">Controller\PedidosCliente_controller.bdsproj</Projects>
|
<Projects Name="PedidosCliente_controller.bpl">Controller\PedidosCliente_controller.bdsproj</Projects>
|
||||||
<Projects Name="PedidosCliente_view.bpl">Views\PedidosCliente_view.bdsproj</Projects>
|
<Projects Name="PedidosCliente_view.bpl">Views\PedidosCliente_view.bdsproj</Projects>
|
||||||
<Projects Name="Targets">Base.bpl ControllerBase.bpl GUIBase.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl PedidosCliente_view.bpl</Projects>
|
<Projects Name="PedidosCliente_plugin.bpl">Plugin\PedidosCliente_plugin.bdsproj</Projects>
|
||||||
|
<Projects Name="Targets">Base.bpl ControllerBase.bpl GUIBase.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl PedidosCliente_view.bpl PedidosCliente_plugin.bpl</Projects>
|
||||||
</Projects>
|
</Projects>
|
||||||
<Dependencies/>
|
<Dependencies/>
|
||||||
</Default.Personality>
|
</Default.Personality>
|
||||||
|
|||||||
@ -2,7 +2,6 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente
|
|||||||
Caption = 'Lista de pedidos de cliente'
|
Caption = 'Lista de pedidos de cliente'
|
||||||
ClientWidth = 674
|
ClientWidth = 674
|
||||||
ExplicitWidth = 682
|
ExplicitWidth = 682
|
||||||
ExplicitHeight = 240
|
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
inherited JvNavPanelHeader: TJvNavPanelHeader
|
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||||
|
|||||||
@ -92,9 +92,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorPedidosCliente.actGenerarAlbaranCliExecute(Sender: TObject);
|
procedure TfEditorPedidosCliente.actGenerarAlbaranCliExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
IDAlbaranAux : Integer;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
GenerarAlbaranCli(FPedidos);
|
GenerarAlbaranCli(FPedidos.ID, IDAlbaranAux);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorPedidosCliente.actGenerarExecute(Sender: TObject);
|
procedure TfEditorPedidosCliente.actGenerarExecute(Sender: TObject);
|
||||||
|
|||||||
@ -3,16 +3,17 @@ unit uGenerarAlbaranesCliUtils;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Windows, SysUtils, Classes, uBizPedidosCliente, pngimage, JSDialog;
|
Windows, SysUtils, Classes, pngimage, JSDialog,
|
||||||
|
uBizPedidosCliente, uBizAlbaranesCliente;
|
||||||
|
|
||||||
type
|
type
|
||||||
TdmGenerarAlbaranesCli = class(TDataModule)
|
TdmGenerarAlbaranesCli = class(TDataModule)
|
||||||
JsListaAlbaranesGenerados: TJSDialog;
|
JsListaAlbaranesGenerados: TJSDialog;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GenerarAlbaranCli(const IDPedido : Integer) : Boolean; overload;
|
function GenerarAlbaranCli(const IDPedido : Integer; var IDAlbaran: Integer) : Boolean; overload;
|
||||||
function GenerarAlbaranCli(APedido : IBizPedidoCliente) : Boolean; overload;
|
function GenerarAlbaranCli(APedido : IBizPedidoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload;
|
||||||
function GenerarAlbaranCli : Boolean; overload;
|
function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -20,9 +21,9 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
uDialogUtils, uBizDetallesPedidoCliente, uBizDetallesAlbaranCliente,
|
uDialogUtils, uBizDetallesPedidoCliente, uBizDetallesAlbaranCliente,
|
||||||
uPedidosClienteController, uAlbaranesClienteController, uClientesController,
|
uPedidosClienteController, uAlbaranesClienteController, uClientesController,
|
||||||
uDetallesAlbaranClienteController, uControllerDetallesBase,
|
uDetallesAlbaranClienteController, uControllerDetallesBase,
|
||||||
uBizAlbaranesCliente, uBizContactos, schPedidosClienteClient_Intf,
|
uBizContactos, schPedidosClienteClient_Intf,
|
||||||
schAlbaranesClienteClient_Intf;
|
schAlbaranesClienteClient_Intf;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -140,32 +141,40 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
function GenerarAlbaranCli(const IDPedido : Integer) : Boolean; overload;
|
function GenerarAlbaranCli(const IDPedido : Integer;
|
||||||
|
var IDAlbaran: Integer) : Boolean; overload;
|
||||||
var
|
var
|
||||||
APedido : IBizPedidoCliente;
|
APedido : IBizPedidoCliente;
|
||||||
|
AAlbaran : IBizAlbaranCliente;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
IDAlbaran := -1;
|
||||||
|
|
||||||
try
|
try
|
||||||
if not Assigned(APedidosClienteController) then
|
if not Assigned(APedidosClienteController) then
|
||||||
Inicializar;
|
Inicializar;
|
||||||
|
|
||||||
APedido := APedidosClienteController.Buscar(IDPedido);
|
APedido := APedidosClienteController.Buscar(IDPedido);
|
||||||
if Assigned(APedido) then
|
if Assigned(APedido) then
|
||||||
Result := GenerarAlbaranCli(APedido);
|
begin
|
||||||
|
Result := GenerarAlbaranCli(APedido, AAlbaran);
|
||||||
|
if Result then
|
||||||
|
IDAlbaran := AAlbaran.ID;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
if Assigned(APedidosClienteController) then
|
if Assigned(APedidosClienteController) then
|
||||||
Finalizar;
|
Finalizar;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GenerarAlbaranCli(APedido : IBizPedidoCliente) : Boolean; overload;
|
function GenerarAlbaranCli(APedido : IBizPedidoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload;
|
||||||
var
|
var
|
||||||
ARespuesta : Integer;
|
ARespuesta : Integer;
|
||||||
AAlbaran : IBizAlbaranCliente;
|
AuxAlbaran : IBizAlbaranCliente;
|
||||||
AArticulosPendientes: IBizPedidoClienteArticulosPend;
|
AArticulosPendientes: IBizPedidoClienteArticulosPend;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
AAlbaran := NIL;
|
||||||
|
|
||||||
if not Assigned(APedido) then
|
if not Assigned(APedido) then
|
||||||
raise Exception.Create('Pedido de cliente no asignado (GenerarAlbaranCli)');
|
raise Exception.Create('Pedido de cliente no asignado (GenerarAlbaranCli)');
|
||||||
@ -185,34 +194,30 @@ begin
|
|||||||
if AArticulosPendientes.DataTable.RecordCount = 0 then
|
if AArticulosPendientes.DataTable.RecordCount = 0 then
|
||||||
begin
|
begin
|
||||||
ShowWarningMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido');
|
ShowWarningMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido');
|
||||||
// ARespuesta := ShowConfirmMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente.' +
|
|
||||||
// #10#13 + '¿Desea generar de todas formas otro albarán para este pedido?');
|
|
||||||
// if (ARespuesta = IDNO) then
|
|
||||||
Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir.
|
Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir.
|
||||||
end;
|
end;
|
||||||
|
|
||||||
AAlbaran := AAlbaranesClienteController.Nuevo;
|
AuxAlbaran := AAlbaranesClienteController.Nuevo;
|
||||||
CopiarPedidoAAlbaran(APedido, AAlbaran);
|
CopiarPedidoAAlbaran(APedido, AuxAlbaran);
|
||||||
CopiarArticulosPendAAlbaran(APedido, AAlbaran, AArticulosPendientes);
|
CopiarArticulosPendAAlbaran(APedido, AuxAlbaran, AArticulosPendientes);
|
||||||
|
|
||||||
//Sustituir por if de guardar
|
//Sustituir por if de guardar
|
||||||
if AAlbaranesClienteController.Guardar(AAlbaran) then
|
if AAlbaranesClienteController.Guardar(AuxAlbaran) then
|
||||||
begin
|
begin
|
||||||
// ShowWarningMessage('Todos los artículos que contiene el pedido no están en el catálogo, y por lo tanto no se puede generar el albarán');
|
AAlbaran := AuxAlbaran;
|
||||||
|
|
||||||
with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do
|
with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do
|
||||||
begin
|
begin
|
||||||
Instruction.Text := 'Se ha generado el albarán';
|
Instruction.Text := 'Se ha generado el albarán';
|
||||||
|
|
||||||
Content.Clear;
|
Content.Clear;
|
||||||
Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AAlbaran.REFERENCIA]));
|
Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AuxAlbaran.REFERENCIA]));
|
||||||
Execute;
|
Execute;
|
||||||
|
|
||||||
ARespuesta := CustomButtonResult;
|
ARespuesta := CustomButtonResult;
|
||||||
case ARespuesta of
|
case ARespuesta of
|
||||||
100 : begin
|
100 : begin
|
||||||
// Ver el albarán
|
// Ver el albarán
|
||||||
AAlbaranesClienteController.Ver(AAlbaran);
|
AAlbaranesClienteController.Ver(AuxAlbaran);
|
||||||
end;
|
end;
|
||||||
200 : // Continuar;
|
200 : // Continuar;
|
||||||
end;
|
end;
|
||||||
@ -227,24 +232,32 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GenerarAlbaranCli : Boolean; overload;
|
function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload;
|
||||||
var
|
var
|
||||||
APedido : IBizPedidoCliente;
|
APedido : IBizPedidoCliente;
|
||||||
|
AAlbaran : IBizAlbaranCliente;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
IDAlbaran := -1;
|
||||||
|
|
||||||
|
AAlbaran := NIL;
|
||||||
try
|
try
|
||||||
if not Assigned(APedidosClienteController) then
|
if not Assigned(APedidosClienteController) then
|
||||||
Inicializar;
|
Inicializar;
|
||||||
|
|
||||||
APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes,
|
APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes,
|
||||||
'Elija el pedido de cliente que desea utilizar para dar de alta el albarán de cliente.'
|
'Elija el pedido de cliente que desea utilizar para dar de alta el albarán de cliente.'
|
||||||
, False);
|
, False);
|
||||||
|
|
||||||
if Assigned(APedido) then
|
if Assigned(APedido) then
|
||||||
Result := GenerarAlbaranCli(APedido);
|
begin
|
||||||
|
Result := GenerarAlbaranCli(APedido, AAlbaran);
|
||||||
|
if Result then
|
||||||
|
IDAlbaran := AAlbaran.ID;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
if Assigned(APedidosClienteController) then
|
if Assigned(APedidosClienteController) then
|
||||||
Finalizar;
|
Finalizar;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user