limpieza
git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@107 f33bb606-9f5c-448d-9c99-757f00063c96
This commit is contained in:
parent
42fc97b1a9
commit
fb07b2bf83
@ -1,387 +0,0 @@
|
||||
unit uEditorAlbaranCliente;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
uEditorDBItem, DB, uDADataTable, JvAppStorage,
|
||||
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
|
||||
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
|
||||
TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
|
||||
uCustomView, uViewBase, JvComponentBase,
|
||||
StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit,
|
||||
uViewIncidencias, uAlbaranesClienteController, uViewDetallesBase, uViewDetallesAlbaranCliente,
|
||||
dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales,
|
||||
uIEditorAlbaranCliente, uBizAlbaranesCliente, uViewAlbaranCliente,
|
||||
uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces,
|
||||
uViewDetallesArticulosParaVenta, cxLabel;
|
||||
|
||||
type
|
||||
TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente)
|
||||
pagContenido: TTabSheet;
|
||||
pagInicidencias: TTabSheet;
|
||||
frViewIncidenciasCli: TfrViewIncidencias;
|
||||
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
||||
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
||||
frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente;
|
||||
frViewTotales1: TfrViewTotales;
|
||||
actEnviarEMail: TAction;
|
||||
TBXSubmenuItem2: TTBXSubmenuItem;
|
||||
TBXItem7: TTBXItem;
|
||||
TBXItem33: TTBXItem;
|
||||
TBXSeparatorItem6: TTBXSeparatorItem;
|
||||
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
procedure frViewTotales1ePortePropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure actEnviarEMailExecute(Sender: TObject);
|
||||
procedure actEnviarEMailUpdate(Sender: TObject);
|
||||
private
|
||||
procedure RecalcularPortePorUnidad;
|
||||
|
||||
protected
|
||||
FAlbaran: IBizAlbaranCliente;
|
||||
FViewAlbaran: IViewAlbaranCliente;
|
||||
FController : IAlbaranesClienteController;
|
||||
|
||||
function GetController : IAlbaranesClienteController;
|
||||
procedure SetController (const Value : IAlbaranesClienteController); virtual;
|
||||
|
||||
function GetAlbaran: IBizAlbaranCliente;
|
||||
procedure SetAlbaran(const Value: IBizAlbaranCliente); virtual;
|
||||
|
||||
function GetViewAlbaran: IViewAlbaranCliente;
|
||||
procedure SetViewAlbaran(const Value: IViewAlbaranCliente);
|
||||
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
procedure GuardarInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
|
||||
property ViewAlbaran: IViewAlbaranCliente read GetViewAlbaran write SetViewAlbaran;
|
||||
|
||||
procedure OnClienteChanged(Sender : TObject);
|
||||
|
||||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||||
//sobreescribir este metodo
|
||||
procedure AsignarVista; virtual;
|
||||
|
||||
public
|
||||
procedure PonerTitulos(const ATitulo: string = ''); override;
|
||||
property Controller : IAlbaranesClienteController read GetController write SetController;
|
||||
property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController,
|
||||
uBizDireccionesContacto, schAlbaranesClienteClient_Intf, uDialogUtils,
|
||||
uEditorDBBase, uDataTableUtils, uFactuGES_App;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
{ TfEditorAlbaranCliente }
|
||||
|
||||
{
|
||||
**************************** TfEditorAlbaranCliente ****************************
|
||||
}
|
||||
procedure TfEditorAlbaranCliente.actEnviarEMailExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
FController.EnviarAlbaranPorEMail(FAlbaran);
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.actEnviarEMailUpdate(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
(Sender as TAction).Enabled := HayDatos;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.AsignarVista;
|
||||
var
|
||||
AViewAlbaranCliente: TfrViewAlbaranCliente;
|
||||
begin
|
||||
AViewAlbaranCliente := TfrViewAlbaranCliente.create(Self);
|
||||
with AViewAlbaranCliente do
|
||||
begin
|
||||
Parent := pagGeneral;
|
||||
Align := alClient;
|
||||
dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1;
|
||||
end;
|
||||
ViewAlbaran := AViewAlbaranCliente;
|
||||
end;
|
||||
|
||||
constructor TfEditorAlbaranCliente.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
pgPaginas.ActivePageIndex := 0;
|
||||
|
||||
AsignarVista;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.CustomEditorClose(Sender: TObject;
|
||||
var Action: TCloseAction);
|
||||
begin
|
||||
inherited;
|
||||
FViewAlbaran := NIL;
|
||||
FAlbaran := NIL;
|
||||
end;
|
||||
|
||||
destructor TfEditorAlbaranCliente.Destroy;
|
||||
begin
|
||||
// Utilizar mejor OnClose;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.EliminarInterno;
|
||||
begin
|
||||
if (ShowConfirmMessage('¿Desea borrar este albarán de cliente?', '') = IDYES) then
|
||||
begin
|
||||
FController.Eliminar(FAlbaran);
|
||||
inherited
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.FormShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if not Assigned(FViewAlbaran) then
|
||||
raise Exception.Create('No hay ninguna vista asignada');
|
||||
|
||||
if not Assigned(Albaran) then
|
||||
raise Exception.Create('No hay ningún Albaran asignado');
|
||||
|
||||
Albaran.DataTable.Active := True;
|
||||
pgPaginas.ActivePage := pagGeneral;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.frViewTotales1edtDescuentoPropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
FAlbaran.DESCUENTO := DisplayValue;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.frViewTotales1edtIVAPropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
FAlbaran.IVA := DisplayValue;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.frViewTotales1ePortePropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not VarIsNull(DisplayValue)) and (Length(DisplayValue) > 0) then
|
||||
FAlbaran.IMPORTE_PORTE := DisplayValue
|
||||
else
|
||||
FAlbaran.IMPORTE_PORTE := 0;
|
||||
|
||||
// RecalcularPortePorUnidad; En los documentos de cliente no se desglosa el porte por articulo
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranCliente.GetController: IAlbaranesClienteController;
|
||||
begin
|
||||
Result := FController;
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranCliente.GetAlbaran: IBizAlbaranCliente;
|
||||
begin
|
||||
Result := FAlbaran;
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranCliente.GetViewAlbaran: IViewAlbaranCliente;
|
||||
begin
|
||||
Result := FViewAlbaran;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.GuardarInterno;
|
||||
var
|
||||
bEsNuevo : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ShowHourglassCursor;
|
||||
// frViewDetallesPedidoCliente1.SaveGridStatus;
|
||||
frViewDetallesAlbaranCliente1.BeginUpdate;
|
||||
try
|
||||
bEsNuevo := FAlbaran.EsNuevo;
|
||||
FController.Guardar(FAlbaran);
|
||||
finally
|
||||
frViewDetallesAlbaranCliente1.EndUpdate;
|
||||
// frViewDetallesPedidoCliente1.RestoreGridStatus;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
if bEsNuevo then
|
||||
if FAlbaran.TIPO = CTE_TIPO_ALBARAN then
|
||||
ShowInfoMessage('El albarán se ha dado de alta con el código ' + FAlbaran.REFERENCIA)
|
||||
else
|
||||
ShowInfoMessage('La orden de devolución se ha dado de alta con el código ' + FAlbaran.REFERENCIA);
|
||||
Modified := False;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.ImprimirInterno;
|
||||
begin
|
||||
inherited;
|
||||
FController.Print(FAlbaran);
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.OnClienteChanged(Sender: TObject);
|
||||
var
|
||||
ADireccion : IBizDireccionesContacto;
|
||||
begin
|
||||
if Assigned(FAlbaran) then
|
||||
begin
|
||||
FAlbaran.Cliente := ViewAlbaran.ViewClienteAlbaran.Cliente;
|
||||
|
||||
// Avisar si no hay datos bancarios
|
||||
{if not AClientesController.TieneDatosBancarios(FAlbaran.Cliente) then
|
||||
ShowWarningMessage('Este cliente no tiene datos bancarios en su ficha');}
|
||||
|
||||
// Elegir la dirección de envio
|
||||
{ case FAlbaran.Cliente.Direcciones.RecordCount of
|
||||
0 : begin
|
||||
ADireccion := NIL;
|
||||
//ShowWarningMessage('Este cliente no tiene ninguna dirección de envío en su ficha');
|
||||
end;
|
||||
1 : begin
|
||||
ADireccion := FAlbaran.Cliente.Direcciones;
|
||||
end
|
||||
end;
|
||||
|
||||
// Si hay dirección de envio, copiarla al albarán y poner el coste del porte
|
||||
if Assigned(ADireccion) then
|
||||
begin
|
||||
try
|
||||
FAlbaran.Edit;
|
||||
FAlbaran.IMPORTE_PORTE := ADireccion.PORTE;
|
||||
FController.CopiarDireccionEnvio(ADireccion, FAlbaran);
|
||||
finally
|
||||
ADireccion := NIL;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
FController.QuitarDireccionEnvio(FAlbaran);
|
||||
FAlbaran.Edit;
|
||||
FAlbaran.IMPORTE_PORTE := 0;
|
||||
end;
|
||||
}
|
||||
// Si el pedido tiene detalles hay que mirar si los descuentos
|
||||
// para los artículos hay que cambiarlos.
|
||||
if (FAlbaran.Detalles.RecordCount > 0) then
|
||||
FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Cliente);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not Assigned(FAlbaran)) or (FAlbaran.ID_CLIENTE = 0) then
|
||||
begin
|
||||
ShowWarningMessage('Antes de introducir conceptos debe elegir un cliente para este albarán');
|
||||
AllowChange := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
begin
|
||||
FTitulo := ATitulo;
|
||||
if (FTitulo = '') and Assigned(FAlbaran) then
|
||||
begin
|
||||
if FAlbaran.EsNuevo then
|
||||
FTitulo := 'Nuevo albarán de cliente'
|
||||
else
|
||||
FTitulo := 'Albarán de cliente' + ' - ' + FAlbaran.Cliente.Nombre + ' - ' + FAlbaran.SITUACION;
|
||||
end;
|
||||
|
||||
inherited PonerTitulos(FTitulo);
|
||||
|
||||
FTitulo := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')';
|
||||
Self.Caption := FTitulo;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.PrevisualizarInterno;
|
||||
begin
|
||||
inherited;
|
||||
FController.Preview(FAlbaran);
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.RecalcularPortePorUnidad;
|
||||
begin
|
||||
//Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento
|
||||
//no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor.
|
||||
if Assigned(Controller)
|
||||
and Assigned(Controller.DetallesController) then
|
||||
Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles)
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.SetController(const Value: IAlbaranesClienteController);
|
||||
begin
|
||||
FController := Value;
|
||||
|
||||
if Assigned(FController) then
|
||||
frViewDetallesAlbaranCliente1.Controller := Controller.DetallesController;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente);
|
||||
begin
|
||||
FAlbaran := Value;
|
||||
|
||||
if Assigned(FAlbaran) then
|
||||
begin
|
||||
dsDataTable.DataTable := FAlbaran.DataTable;
|
||||
frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
|
||||
if Assigned(FViewAlbaran) then
|
||||
begin
|
||||
ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := NIL;
|
||||
try
|
||||
FViewAlbaran.Albaran := FAlbaran;
|
||||
frViewDetallesAlbaranCliente1.Detalles := FAlbaran.Detalles;
|
||||
frViewDetallesAlbaranCliente1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el cliente seleccionado
|
||||
finally
|
||||
ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := OnClienteChanged;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
dsDataTable.DataTable := NIL;
|
||||
frViewIncidenciasCli.DADataSource.DataTable := NIL;
|
||||
frViewTotales1.DADataSource.DataTable := NIL;
|
||||
|
||||
if Assigned(FViewAlbaran) then
|
||||
begin
|
||||
FViewAlbaran.Albaran := NIL;
|
||||
ViewAlbaran.ViewClienteAlbaran.OnClienteChanged := NIL;
|
||||
frViewDetallesAlbaranCliente1.Detalles := NIL;
|
||||
frViewDetallesAlbaranCliente1.Albaran := NIL;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranCliente.SetViewAlbaran(const Value: IViewAlbaranCliente);
|
||||
begin
|
||||
FViewAlbaran := Value;
|
||||
|
||||
if Assigned(FViewAlbaran) and Assigned(Albaran) then
|
||||
FViewAlbaran.Albaran := Albaran;
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1,330 +0,0 @@
|
||||
unit uEditorAlbaranProveedor;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
|
||||
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
|
||||
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
|
||||
TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
|
||||
uCustomView, uViewBase, JvComponentBase,
|
||||
StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit,
|
||||
uViewIncidencias,
|
||||
uAlbaranesProveedorController,
|
||||
uViewDetallesBase, uViewDetallesAlbaranProveedor,
|
||||
dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales,
|
||||
uIEditorAlbaranProveedor, uBizAlbaranesProveedor, uViewAlbaranProveedor,
|
||||
uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces, cxLabel;
|
||||
|
||||
type
|
||||
TfEditorAlbaranProveedor = class(TfEditorDBItem, IEditorAlbaranProveedor)
|
||||
pagContenido: TTabSheet;
|
||||
pagInicidencias: TTabSheet;
|
||||
frViewIncidenciasCli: TfrViewIncidencias;
|
||||
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
||||
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
||||
frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor;
|
||||
frViewTotales1: TfrViewTotales;
|
||||
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure frViewTotales1ePortePropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
|
||||
// procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(Sender: TObject);
|
||||
private
|
||||
procedure RecalcularPortePorUnidad;
|
||||
|
||||
protected
|
||||
FAlbaran: IBizAlbaranProveedor;
|
||||
FViewAlbaran: IViewAlbaranProveedor;
|
||||
FController : IAlbaranesProveedorController;
|
||||
|
||||
function GetController : IAlbaranesProveedorController;
|
||||
procedure SetController (const Value : IAlbaranesProveedorController); virtual;
|
||||
|
||||
function GetAlbaran: IBizAlbaranProveedor;
|
||||
procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual;
|
||||
|
||||
function GetViewAlbaran: IViewAlbaranProveedor;
|
||||
procedure SetViewAlbaran(const Value: IViewAlbaranProveedor);
|
||||
|
||||
procedure GuardarInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
|
||||
property ViewAlbaran: IViewAlbaranProveedor read GetViewAlbaran write SetViewAlbaran;
|
||||
|
||||
procedure OnProveedorChanged(Sender : TObject);
|
||||
|
||||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||||
//sobreescribir este metodo
|
||||
procedure AsignarVista; virtual;
|
||||
|
||||
public
|
||||
procedure PonerTitulos(const ATitulo: string = ''); override;
|
||||
property Controller : IAlbaranesProveedorController read GetController write SetController;
|
||||
property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uViewDatosYSeleccionProveedor, uDataModuleUsuarios, uProveedoresController,
|
||||
uBizDireccionesContacto, uDialogUtils, uDataTableUtils, uFactuGES_App;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
{ TfEditorAlbaranProveedor }
|
||||
|
||||
{
|
||||
**************************** TfEditorAlbaranProveedor ****************************
|
||||
}
|
||||
procedure TfEditorAlbaranProveedor.AsignarVista;
|
||||
var
|
||||
AViewAlbaranProveedor: TfrViewAlbaranProveedor;
|
||||
|
||||
begin
|
||||
AViewAlbaranProveedor := TfrViewAlbaranProveedor.create(Self);
|
||||
with AViewAlbaranProveedor do
|
||||
begin
|
||||
Parent := pagGeneral;
|
||||
Align := alClient;
|
||||
dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1;
|
||||
end;
|
||||
ViewAlbaran := AViewAlbaranProveedor;
|
||||
end;
|
||||
|
||||
constructor TfEditorAlbaranProveedor.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
AsignarVista;
|
||||
pgPaginas.ActivePageIndex := 0;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.CustomEditorClose(Sender: TObject;
|
||||
var Action: TCloseAction);
|
||||
begin
|
||||
inherited;
|
||||
FViewAlbaran := NIL;
|
||||
FAlbaran := NIL;
|
||||
end;
|
||||
|
||||
destructor TfEditorAlbaranProveedor.Destroy;
|
||||
begin
|
||||
// Utilizar mejor OnClose;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.EliminarInterno;
|
||||
begin
|
||||
if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then
|
||||
begin
|
||||
FController.Eliminar(FAlbaran);
|
||||
inherited
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.FormShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if not Assigned(FViewAlbaran) then
|
||||
raise Exception.Create('No hay ninguna vista asignada');
|
||||
|
||||
if not Assigned(Albaran) then
|
||||
raise Exception.Create('No hay ningún Albaran asignado');
|
||||
|
||||
Albaran.DataTable.Active := True;
|
||||
pgPaginas.ActivePage := pagGeneral;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.frViewTotales1edtDescuentoPropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
FAlbaran.DESCUENTO := DisplayValue;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.frViewTotales1edtIVAPropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
FAlbaran.IVA := DisplayValue;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.frViewTotales1ePortePropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not VarIsNull(DisplayValue)) and (length(DisplayValue) > 0) then
|
||||
FAlbaran.IMPORTE_PORTE := DisplayValue
|
||||
else
|
||||
FAlbaran.IMPORTE_PORTE := 0;
|
||||
|
||||
RecalcularPortePorUnidad;
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranProveedor.GetController: IAlbaranesProveedorController;
|
||||
begin
|
||||
Result := FController;
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor;
|
||||
begin
|
||||
Result := FAlbaran;
|
||||
end;
|
||||
|
||||
function TfEditorAlbaranProveedor.GetViewAlbaran: IViewAlbaranProveedor;
|
||||
begin
|
||||
Result := FViewAlbaran;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.GuardarInterno;
|
||||
var
|
||||
bEsNuevo : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ShowHourglassCursor;
|
||||
// frViewDetallesAlbaranProveedor1.SaveGridStatus;
|
||||
frViewDetallesAlbaranProveedor1.BeginUpdate;
|
||||
try
|
||||
bEsNuevo := FAlbaran.EsNuevo;
|
||||
FController.Guardar(FAlbaran);
|
||||
finally
|
||||
frViewDetallesAlbaranProveedor1.EndUpdate;
|
||||
// frViewDetallesAlbaranProveedor1.RestoreGridStatus;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
if bEsNuevo then
|
||||
ShowInfoMessage('El albarán se ha dado de alta con el código ' + FAlbaran.REFERENCIA);
|
||||
|
||||
Modified := False;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.ImprimirInterno;
|
||||
var
|
||||
AllItems: Boolean;
|
||||
begin
|
||||
inherited;
|
||||
AllItems := False;
|
||||
FController.Print(FAlbaran, AllItems);
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.OnProveedorChanged(Sender: TObject);
|
||||
begin
|
||||
if Assigned(FAlbaran) then
|
||||
begin
|
||||
FAlbaran.Proveedor := ViewAlbaran.ViewProveedorAlbaran.Proveedor;
|
||||
|
||||
// Si el pedido tiene detalles hay que mirar si los descuentos
|
||||
// para los artículos hay que cambiarlos.
|
||||
if (FAlbaran.Detalles.RecordCount > 0) then
|
||||
begin
|
||||
FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Proveedor);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not Assigned(FAlbaran))
|
||||
or (FAlbaran.ID_PROVEEDOR = 0) then
|
||||
begin
|
||||
ShowWarningMessage('Antes de introducir conceptos debe elegir un proveedor para este albarán');
|
||||
AllowChange := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
begin
|
||||
FTitulo := ATitulo;
|
||||
if (FTitulo = '') and Assigned(FAlbaran) then
|
||||
begin
|
||||
if FAlbaran.EsNuevo then
|
||||
FTitulo := 'Nuevo albarán de proveedor'
|
||||
else
|
||||
FTitulo := 'Albarán de proveedor' + ' - ' + FAlbaran.Proveedor.Nombre
|
||||
end;
|
||||
|
||||
inherited PonerTitulos(FTitulo);
|
||||
Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')';
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.PrevisualizarInterno;
|
||||
var
|
||||
AllItems: Boolean;
|
||||
begin
|
||||
inherited;
|
||||
AllItems := False;
|
||||
FController.Preview(FAlbaran, AllItems);
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.RecalcularPortePorUnidad;
|
||||
begin
|
||||
//Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento
|
||||
//no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor.
|
||||
if Assigned(Controller)
|
||||
and Assigned(Controller.DetallesController) then
|
||||
Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles)
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.SetController(const Value: IAlbaranesProveedorController);
|
||||
begin
|
||||
FController := Value;
|
||||
|
||||
if Assigned(FController) then
|
||||
begin
|
||||
frViewDetallesAlbaranProveedor1.Controller := Controller.DetallesController;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.SetAlbaran(const Value: IBizAlbaranProveedor);
|
||||
begin
|
||||
FAlbaran := Value;
|
||||
|
||||
if Assigned(FAlbaran) then
|
||||
begin
|
||||
dsDataTable.DataTable := FAlbaran.DataTable;
|
||||
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
frViewIncidenciasCli.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
|
||||
if Assigned(FViewAlbaran) then
|
||||
begin
|
||||
ViewAlbaran.ViewProveedorAlbaran.OnProveedorChanged := NIL;
|
||||
try
|
||||
FViewAlbaran.Albaran := FAlbaran;
|
||||
frViewDetallesAlbaranProveedor1.Detalles := FAlbaran.Detalles;
|
||||
frViewDetallesAlbaranProveedor1.Albaran := FAlbaran; //Para poder sacar los descuento del articulos segun el proveedor seleccionado
|
||||
finally
|
||||
ViewAlbaran.ViewProveedorAlbaran.OnProveedorChanged := OnProveedorChanged;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorAlbaranProveedor.SetViewAlbaran(const Value: IViewAlbaranProveedor);
|
||||
begin
|
||||
FViewAlbaran := Value;
|
||||
|
||||
if Assigned(FViewAlbaran) and Assigned(Albaran) then
|
||||
FViewAlbaran.Albaran := Albaran;
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1,350 +0,0 @@
|
||||
unit uEditorPedidoProveedor;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage,
|
||||
JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList,
|
||||
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
|
||||
TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane,
|
||||
uViewPedidoProveedor, uCustomView, uViewBase, JvComponentBase,
|
||||
StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit,
|
||||
uViewIncidencias,
|
||||
uBizPedidosProveedor, uIEditorPedidoProveedor, uPedidosProveedorController,
|
||||
uViewDetallesBase, uViewDetallesPedidoProveedor,
|
||||
dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales,
|
||||
uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces, cxLabel;
|
||||
|
||||
type
|
||||
TfEditorPedidoProveedor = class(TfEditorDBItem, IEditorPedidoProveedor)
|
||||
pagContenido: TTabSheet;
|
||||
pagInicidencias: TTabSheet;
|
||||
frViewIncidenciasProv: TfrViewIncidencias;
|
||||
frViewDetallesPedidoProveedor1: TfrViewDetallesPedidoProveedor;
|
||||
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
||||
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
||||
frViewTotales1: TfrViewTotales;
|
||||
TBXSubmenuItem2: TTBXSubmenuItem;
|
||||
TBXItem7: TTBXItem;
|
||||
actEnviarEMail: TAction;
|
||||
TBXSeparatorItem6: TTBXSeparatorItem;
|
||||
TBXItem33: TTBXItem;
|
||||
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
procedure frViewTotales1ePortePropertiesValidate(Sender: TObject;
|
||||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||||
procedure actEnviarEMailUpdate(Sender: TObject);
|
||||
procedure actEnviarEMailExecute(Sender: TObject);
|
||||
private
|
||||
procedure RecalcularPortePorUnidad;
|
||||
|
||||
protected
|
||||
FPedido: IBizPedidoProveedor;
|
||||
FViewPedido: IViewPedidoProveedor;
|
||||
FController : IPedidosProveedorController;
|
||||
|
||||
function GetController : IPedidosProveedorController;
|
||||
procedure SetController (const Value : IPedidosProveedorController); virtual;
|
||||
|
||||
function GetPedido: IBizPedidoProveedor;
|
||||
procedure SetPedido(const Value: IBizPedidoProveedor); virtual;
|
||||
|
||||
function GetViewPedido: IViewPedidoProveedor;
|
||||
procedure SetViewPedido(const Value: IViewPedidoProveedor);
|
||||
|
||||
procedure GuardarInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
|
||||
procedure OnProveedorChanged(Sender : TObject);
|
||||
function PuedoImprimir: Boolean; override;
|
||||
|
||||
//Si queremos crear otra vista para el editor heredado solo tendriamos que
|
||||
//sobreescribir este metodo
|
||||
procedure AsignarVista; virtual;
|
||||
|
||||
property ViewPedido: IViewPedidoProveedor read GetViewPedido write SetViewPedido;
|
||||
|
||||
public
|
||||
procedure PonerTitulos(const ATitulo: string = ''); override;
|
||||
property Controller : IPedidosProveedorController read GetController write SetController;
|
||||
property Pedido: IBizPedidoProveedor read GetPedido write SetPedido;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uViewDatosYSeleccionProveedor, uDataModuleUsuarios, uGridStatusUtils, uDialogUtils,
|
||||
uFactuGES_App, uDialogOpcionesImpresionPedidosProveedor;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
{ TfEditorPedidoProveedor }
|
||||
|
||||
{
|
||||
**************************** TfEditorPedidoProveedor ****************************
|
||||
}
|
||||
|
||||
procedure TfEditorPedidoProveedor.actEnviarEMailExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
FController.EnviarPedidoPorEMail(Pedido);
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.actEnviarEMailUpdate(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
(Sender as TAction).Enabled := HayDatos;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.AsignarVista;
|
||||
var
|
||||
AViewPedidoProveedor: TfrViewPedidoProveedor;
|
||||
|
||||
begin
|
||||
AViewPedidoProveedor := TfrViewPedidoProveedor.Create(Self);
|
||||
with AViewPedidoProveedor do
|
||||
begin
|
||||
Parent := pagGeneral;
|
||||
Align := alClient;
|
||||
dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1;
|
||||
end;
|
||||
ViewPedido := AViewPedidoProveedor;
|
||||
end;
|
||||
|
||||
constructor TfEditorPedidoProveedor.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
pgPaginas.ActivePageIndex := 0;
|
||||
|
||||
AsignarVista;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.CustomEditorClose(Sender: TObject;
|
||||
var Action: TCloseAction);
|
||||
begin
|
||||
inherited;
|
||||
FViewPedido := NIL;
|
||||
FPedido := NIL;
|
||||
end;
|
||||
|
||||
destructor TfEditorPedidoProveedor.Destroy;
|
||||
begin
|
||||
// Utilizar mejor OnClose;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.EliminarInterno;
|
||||
begin
|
||||
if (Application.MessageBox('¿Desea borrar este pedido a proveedor?', 'Atención', MB_YESNO) = IDYES) then
|
||||
begin
|
||||
FController.Eliminar(FPedido);
|
||||
inherited
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.FormShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if not Assigned(FViewPedido) then
|
||||
raise Exception.Create('No hay ninguna vista asignada');
|
||||
|
||||
if not Assigned(Pedido) then
|
||||
raise Exception.Create('No hay ningún pedido asignado');
|
||||
|
||||
Pedido.DataTable.Active := True;
|
||||
pgPaginas.ActivePage := pagGeneral;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.frViewTotales1ePortePropertiesValidate(
|
||||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||||
var Error: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not VarIsNull(DisplayValue)) and (length(DisplayValue) > 0) then
|
||||
FPedido.IMPORTE_PORTE := DisplayValue
|
||||
else
|
||||
FPedido.IMPORTE_PORTE := 0;
|
||||
|
||||
RecalcularPortePorUnidad;
|
||||
end;
|
||||
|
||||
function TfEditorPedidoProveedor.GetController: IPedidosProveedorController;
|
||||
begin
|
||||
Result := FController;
|
||||
end;
|
||||
|
||||
function TfEditorPedidoProveedor.GetPedido: IBizPedidoProveedor;
|
||||
begin
|
||||
Result := FPedido;
|
||||
end;
|
||||
|
||||
function TfEditorPedidoProveedor.GetViewPedido: IViewPedidoProveedor;
|
||||
begin
|
||||
Result := FViewPedido;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.GuardarInterno;
|
||||
var
|
||||
bEsNuevo : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ShowHourglassCursor;
|
||||
// frViewDetallesPedidoProveedor1.SaveGridStatus; // Para guardar estado del grid
|
||||
frViewDetallesPedidoProveedor1.BeginUpdate; // Para que no se mueva el foco
|
||||
try
|
||||
bEsNuevo := FPedido.EsNuevo;
|
||||
FController.Guardar(FPedido);
|
||||
finally
|
||||
frViewDetallesPedidoProveedor1.EndUpdate;
|
||||
// frViewDetallesPedidoProveedor1.RestoreGridStatus;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
|
||||
if bEsNuevo then
|
||||
ShowInfoMessage('El pedido se ha dado de alta con el código ' + FPedido.REFERENCIA);
|
||||
|
||||
Modified := False;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.ImprimirInterno;
|
||||
var
|
||||
AllItems: Boolean;
|
||||
FImprimirPrecios : Boolean;
|
||||
FImprimirRefProveedor : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
AllItems := False;
|
||||
FImprimirPrecios := True;
|
||||
FImprimirRefProveedor := True;
|
||||
|
||||
if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then
|
||||
FController.Print(FPedido, AllItems, FImprimirPrecios, FImprimirRefProveedor);
|
||||
end;
|
||||
|
||||
function TfEditorPedidoProveedor.PuedoImprimir: Boolean;
|
||||
begin
|
||||
Result := inherited PuedoImprimir and (not Pedido.Cliente.IDIsNull);
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.OnProveedorChanged(Sender: TObject);
|
||||
begin
|
||||
if Assigned(FPedido) then
|
||||
begin
|
||||
FPedido.Proveedor := ViewPedido.ViewProveedorPedido.Proveedor;
|
||||
|
||||
// Si el pedido tiene detalles hay que mirar si los descuentos y otros campos
|
||||
// para los artículos hay que cambiarlos.
|
||||
if (FPedido.Detalles.RecordCount > 0) then
|
||||
FController.DetallesController.ActualizarDetalles(FPedido.Detalles, FPedido.Proveedor);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.pgPaginasChanging(Sender: TObject; var AllowChange: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
if (not Assigned(FPedido))
|
||||
or (FPedido.ID_PROVEEDOR = 0) then
|
||||
begin
|
||||
ShowWarningMessage('Antes de introducir conceptos debe elegir un proveedor para este pedido');
|
||||
AllowChange := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
begin
|
||||
FTitulo := ATitulo;
|
||||
if (FTitulo = '') and Assigned(FPedido) then
|
||||
begin
|
||||
if FPedido.EsNuevo then
|
||||
FTitulo := 'Nuevo pedido a proveedor'
|
||||
else
|
||||
FTitulo := 'Pedido a proveedor' + ' - ' + FPedido.Proveedor.Nombre + ' - (' + FPedido.SITUACION + ')';
|
||||
end;
|
||||
|
||||
inherited PonerTitulos(FTitulo);
|
||||
|
||||
Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')';
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.PrevisualizarInterno;
|
||||
var
|
||||
AllItems: Boolean;
|
||||
FImprimirPrecios : Boolean;
|
||||
FImprimirRefProveedor : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
AllItems := False;
|
||||
FImprimirPrecios := True;
|
||||
FImprimirRefProveedor := True;
|
||||
|
||||
if ElegirOpcionesImpresionPedidoProveedor(FImprimirPrecios, FImprimirRefProveedor) then
|
||||
FController.Preview(FPedido, AllItems, FImprimirPrecios, FImprimirRefProveedor);
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.RecalcularPortePorUnidad;
|
||||
begin
|
||||
//Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento
|
||||
//no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor.
|
||||
if Assigned(Controller)
|
||||
and Assigned(Controller.DetallesController) then
|
||||
Controller.DetallesController.DesglosarPorteDetalles(FPedido.IMPORTE_PORTE, FPedido.Detalles)
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.SetController(const Value: IPedidosProveedorController);
|
||||
begin
|
||||
FController := Value;
|
||||
|
||||
if Assigned(FController) then
|
||||
begin
|
||||
if Assigned(FViewPedido) then
|
||||
FViewPedido.Controller := Controller;
|
||||
|
||||
frViewDetallesPedidoProveedor1.Controller := Controller.DetallesController;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor);
|
||||
begin
|
||||
FPedido := Value;
|
||||
|
||||
if Assigned(FPedido) then
|
||||
begin
|
||||
dsDataTable.DataTable := FPedido.DataTable;
|
||||
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
frViewIncidenciasProv.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
|
||||
if Assigned(FViewPedido) then
|
||||
begin
|
||||
ViewPedido.ViewProveedorPedido.OnProveedorChanged := NIL;
|
||||
try
|
||||
FViewPedido.Pedido := FPedido;
|
||||
frViewDetallesPedidoProveedor1.Detalles := FPedido.Detalles;
|
||||
frViewDetallesPedidoProveedor1.Pedido := FPedido; //Para poder sacar los articulos del proveedor seleccionado
|
||||
finally
|
||||
ViewPedido.ViewProveedorPedido.OnProveedorChanged := OnProveedorChanged;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidoProveedor.SetViewPedido(const Value: IViewPedidoProveedor);
|
||||
begin
|
||||
FViewPedido := Value;
|
||||
|
||||
if Assigned(FViewPedido) and Assigned(Pedido) then
|
||||
FViewPedido.Pedido := Pedido;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -1,612 +0,0 @@
|
||||
object DataModulePedidosCliente: TDataModulePedidosCliente
|
||||
Left = 0
|
||||
Top = 0
|
||||
ClientHeight = 362
|
||||
ClientWidth = 805
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = True
|
||||
OnCreate = DAClientDataModuleCreate
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object RORemoteService: TRORemoteService
|
||||
Message = dmConexion.ROMessage
|
||||
Channel = dmConexion.ROChannel
|
||||
ServiceName = 'srvPedidosCliente'
|
||||
Left = 40
|
||||
Top = 24
|
||||
end
|
||||
object tbl_PedidosCliente: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datAutoInc
|
||||
GeneratorName = 'GEN_PEDIDOS_CLI_ID'
|
||||
DictionaryEntry = 'PedidosCliente_ID'
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_EMPRESA'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_ID_EMPRESA'
|
||||
end
|
||||
item
|
||||
Name = 'ID_CLIENTE'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_ID_CLIENTE'
|
||||
end
|
||||
item
|
||||
Name = 'NOMBRE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Nombre del cliente'
|
||||
DictionaryEntry = 'PedidosCliente_NOMBRE'
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Referencia'
|
||||
DictionaryEntry = 'PedidosCliente_REFERENCIA'
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_CLIENTE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'PedidosCliente_REFERENCIA_CLIENTE'
|
||||
DictionaryEntry = 'PedidosCliente_REFERENCIA_CLIENTE'
|
||||
end
|
||||
item
|
||||
Name = 'SITUACION'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Situaci'#243'n'
|
||||
DictionaryEntry = 'PedidosCliente_SITUACION'
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_PEDIDO'
|
||||
DataType = datDateTime
|
||||
DisplayLabel = 'Fecha pedido'
|
||||
DictionaryEntry = 'PedidosCliente_FECHA_PEDIDO'
|
||||
end
|
||||
item
|
||||
Name = 'ID_DIRECCION'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'PedidosCliente_ID_DIRECCION'
|
||||
DictionaryEntry = 'PedidosCliente_ID_DIRECCION'
|
||||
end
|
||||
item
|
||||
Name = 'CALLE'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Calle'
|
||||
DictionaryEntry = 'PedidosCliente_CALLE'
|
||||
end
|
||||
item
|
||||
Name = 'CODIGO_POSTAL'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
DisplayLabel = 'C'#243'd. postal'
|
||||
DictionaryEntry = 'PedidosCliente_CODIGO_POSTAL'
|
||||
end
|
||||
item
|
||||
Name = 'POBLACION'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Poblaci'#243'n'
|
||||
DictionaryEntry = 'PedidosCliente_POBLACION'
|
||||
end
|
||||
item
|
||||
Name = 'PROVINCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Provincia'
|
||||
DictionaryEntry = 'PedidosCliente_PROVINCIA'
|
||||
end
|
||||
item
|
||||
Name = 'PERSONA_CONTACTO'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Persona de contacto'
|
||||
DictionaryEntry = 'PedidosCliente_PERSONA_CONTACTO'
|
||||
end
|
||||
item
|
||||
Name = 'TELEFONO'
|
||||
DataType = datString
|
||||
Size = 25
|
||||
DisplayLabel = 'Tel'#233'fono'
|
||||
DictionaryEntry = 'PedidosCliente_TELEFONO'
|
||||
end
|
||||
item
|
||||
Name = 'OBSERVACIONES'
|
||||
DataType = datMemo
|
||||
DisplayLabel = 'Observaciones'
|
||||
DictionaryEntry = 'PedidosCliente_OBSERVACIONES'
|
||||
end
|
||||
item
|
||||
Name = 'INCIDENCIAS'
|
||||
DataType = datMemo
|
||||
DictionaryEntry = 'PedidosCliente_INCIDENCIAS'
|
||||
end
|
||||
item
|
||||
Name = 'INCIDENCIAS_ACTIVAS'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_INCIDENCIAS_ACTIVAS'
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_ALTA'
|
||||
DataType = datDateTime
|
||||
DictionaryEntry = 'PedidosCliente_FECHA_ALTA'
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_MODIFICACION'
|
||||
DataType = datDateTime
|
||||
DictionaryEntry = 'PedidosCliente_FECHA_MODIFICACION'
|
||||
end
|
||||
item
|
||||
Name = 'USUARIO'
|
||||
DataType = datString
|
||||
Size = 20
|
||||
DictionaryEntry = 'PedidosCliente_USUARIO'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_NETO'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe neto'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_NETO'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe del porte'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_PORTE'
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
DisplayLabel = 'Descuento'
|
||||
DisplayFormat = ',0.00 %;-,0.00 %'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_DESCUENTO'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_DESCUENTO'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe dto.'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_DESCUENTO'
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO2'
|
||||
DataType = datFloat
|
||||
DictionaryEntry = 'PedidosCliente_DESCUENTO2'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_DESCUENTO2'
|
||||
DataType = datCurrency
|
||||
DecimalPrecision = 11
|
||||
DecimalScale = 2
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_DESCUENTO2'
|
||||
end
|
||||
item
|
||||
Name = 'BASE_IMPONIBLE'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Base imponible'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_BASE_IMPONIBLE'
|
||||
end
|
||||
item
|
||||
Name = 'IVA'
|
||||
DataType = datFloat
|
||||
DisplayFormat = ',0.00 %;-,0.00 %'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IVA'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_IVA'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe IVA'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_IVA'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe total'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
Name = 'ID_FORMA_PAGO'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_ID_FORMA_PAGO'
|
||||
end
|
||||
item
|
||||
Name = 'FORMA_PAGO'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'PedidosCliente_FORMA_PAGO'
|
||||
DictionaryEntry = 'PedidosCliente_FORMA_PAGO'
|
||||
end
|
||||
item
|
||||
Name = 'REF_TIENDA_WEB'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_REF_TIENDA_WEB'
|
||||
end
|
||||
item
|
||||
Name = 'FECHA_PREVISTA_ENVIO'
|
||||
DataType = datDateTime
|
||||
DisplayLabel = 'Fecha de entrega prevista'
|
||||
DictionaryEntry = 'PedidosCliente_FECHA_PREVISTA_ENVIO'
|
||||
end
|
||||
item
|
||||
Name = 'DATOS_BANCARIOS'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'PedidosCliente_DATOS_BANCARIOS'
|
||||
DictionaryEntry = 'PedidosCliente_DATOS_BANCARIOS'
|
||||
end>
|
||||
Params = <>
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteDataAdapter = rda_PedidosCliente
|
||||
LogicalName = 'PedidosCliente'
|
||||
IndexDefs = <>
|
||||
Left = 208
|
||||
Top = 104
|
||||
end
|
||||
object ds_PedidosCliente: TDADataSource
|
||||
DataSet = tbl_PedidosCliente.Dataset
|
||||
DataTable = tbl_PedidosCliente
|
||||
Left = 208
|
||||
Top = 48
|
||||
end
|
||||
object tbl_PedidosCliente_Detalles: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datAutoInc
|
||||
GeneratorName = 'GEN_PEDIDOS_CLI_DETALLES_ID'
|
||||
Required = True
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_ID'
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_ID_PEDIDO'
|
||||
end
|
||||
item
|
||||
Name = 'POSICION'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'POSICIONCONCEPTO'
|
||||
end
|
||||
item
|
||||
Name = 'TIPO_DETALLE'
|
||||
DataType = datString
|
||||
Size = 10
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_TIPO_DETALLE'
|
||||
end
|
||||
item
|
||||
Name = 'ID_ARTICULO'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_ID_ARTICULO'
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Referencia'
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA'
|
||||
end
|
||||
item
|
||||
Name = 'REFERENCIA_PROVEEDOR'
|
||||
DataType = datString
|
||||
Size = 255
|
||||
DisplayLabel = 'Ref. proveedor'
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_REFERENCIA_PROVEEDOR'
|
||||
end
|
||||
item
|
||||
Name = 'CONCEPTO'
|
||||
DataType = datString
|
||||
Size = 2000
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_CONCEPTO'
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD'
|
||||
DataType = datFloat
|
||||
DisplayLabel = 'PedidosCliente_Detalles_CANTIDAD'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_CANTIDAD'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_UNIDAD'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe unidad'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_UNIDAD'
|
||||
end
|
||||
item
|
||||
Name = 'UNIDAD_MEDIDA'
|
||||
DataType = datString
|
||||
DisplayLabel = 'PedidosCliente_Detalles_UNIDAD_MEDIDA'
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_UNIDAD_MEDIDA'
|
||||
end
|
||||
item
|
||||
Name = 'DESCUENTO'
|
||||
DataType = datFloat
|
||||
DisplayLabel = 'Descuento'
|
||||
DisplayFormat = ',0.00 %;-,0.00 %'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_DESCUENTO'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_PORTE'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe porte'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_PORTE'
|
||||
end
|
||||
item
|
||||
Name = 'IMPORTE_TOTAL'
|
||||
DataType = datCurrency
|
||||
DisplayLabel = 'Importe total'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_IMPORTE_TOTAL'
|
||||
end
|
||||
item
|
||||
Name = 'VISIBLE'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_VISIBLE'
|
||||
end>
|
||||
Params = <>
|
||||
MasterMappingMode = mmWhere
|
||||
MasterParamsMappings.Strings = (
|
||||
'ID_PEDIDO=ID')
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteDataAdapter = rda_PedidosCliente
|
||||
MasterSource = ds_PedidosCliente
|
||||
MasterFields = 'ID'
|
||||
DetailFields = 'ID_PEDIDO'
|
||||
LogicalName = 'PedidosCliente_Detalles'
|
||||
IndexDefs = <>
|
||||
Left = 329
|
||||
Top = 104
|
||||
end
|
||||
object ds_PedidosCliente_Detalles: TDADataSource
|
||||
DataSet = tbl_PedidosCliente_Detalles.Dataset
|
||||
DataTable = tbl_PedidosCliente_Detalles
|
||||
Left = 329
|
||||
Top = 48
|
||||
end
|
||||
object tbl_PedidoCliente_Articulos_Pendientes: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID_ARTICULO'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_ID_ARTICULO'
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD_PED'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cantidad en pedido'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PED'
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD_ALB'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cantidad en albaranes'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_ALB'
|
||||
end
|
||||
item
|
||||
Name = 'CANTIDAD_PENDIENTE'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cantidad pendiente'
|
||||
Alignment = taRightJustify
|
||||
DictionaryEntry = 'PedidoCliente_Articulos_Pendientes_CANTIDAD_PENDIENTE'
|
||||
end>
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
DataType = datInteger
|
||||
Value = ''
|
||||
ParamType = daptInput
|
||||
end>
|
||||
MasterMappingMode = mmDataRequest
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
LogicalName = 'PedidoCliente_Articulos_Pendientes'
|
||||
IndexDefs = <>
|
||||
Left = 208
|
||||
Top = 192
|
||||
end
|
||||
object ds_PedidoCliente_Articulos_Pendientes: TDADataSource
|
||||
DataSet = tbl_PedidoCliente_Articulos_Pendientes.Dataset
|
||||
DataTable = tbl_PedidoCliente_Articulos_Pendientes
|
||||
Left = 208
|
||||
Top = 256
|
||||
end
|
||||
object tbl_PedidoCliente_ArticulosPendientesPedirAProv: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
DataType = datAutoInc
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PEDIDO'
|
||||
end
|
||||
item
|
||||
Name = 'ID_ARTICULO'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_ARTICULO'
|
||||
end
|
||||
item
|
||||
Name = 'CANT_PEDIDA_CLIENTE'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cant. pedida por cliente'
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_CLIENTE'
|
||||
end
|
||||
item
|
||||
Name = 'ID_PROVEEDOR'
|
||||
DataType = datInteger
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_ID_PROVEEDOR'
|
||||
end
|
||||
item
|
||||
Name = 'CANT_PEDIDA_PROVEEDOR'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cant. pedida a proveedor'
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PEDIDA_PROVEEDOR'
|
||||
end
|
||||
item
|
||||
Name = 'CANT_PENDIENTE_PEDIR'
|
||||
DataType = datInteger
|
||||
DisplayLabel = 'Cant. pendiente pedir'
|
||||
DictionaryEntry = 'DarArticulosPendientesPedirAProv_CANT_PENDIENTE_PEDIR'
|
||||
end>
|
||||
Params = <
|
||||
item
|
||||
Name = 'ID_PEDIDO'
|
||||
Value = ''
|
||||
ParamType = daptInput
|
||||
end>
|
||||
MasterMappingMode = mmDataRequest
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
LogicalName = 'PedidoCliente_ArticulosPendientesPedirAProv'
|
||||
IndexDefs = <>
|
||||
Left = 440
|
||||
Top = 192
|
||||
end
|
||||
object ds_PedidoCliente_ArticulosPendientesPedirAProv: TDADataSource
|
||||
DataSet = tbl_PedidoCliente_ArticulosPendientesPedirAProv.Dataset
|
||||
DataTable = tbl_PedidoCliente_ArticulosPendientesPedirAProv
|
||||
Left = 440
|
||||
Top = 256
|
||||
end
|
||||
object tbl_ListaAnosPedidos: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ANO'
|
||||
DataType = datString
|
||||
Size = 254
|
||||
end>
|
||||
Params = <>
|
||||
MasterMappingMode = mmDataRequest
|
||||
StreamingOptions = [soDisableEventsWhileStreaming]
|
||||
RemoteDataAdapter = rda_PedidosCliente
|
||||
LogicalName = 'ListaAnosPedidos'
|
||||
IndexDefs = <>
|
||||
Left = 632
|
||||
Top = 264
|
||||
end
|
||||
object ds_ListaAnosPedidos: TDADataSource
|
||||
DataSet = tbl_ListaAnosPedidos.Dataset
|
||||
DataTable = tbl_ListaAnosPedidos
|
||||
Left = 624
|
||||
Top = 200
|
||||
end
|
||||
object Bin2DataStreamer: TDABin2DataStreamer
|
||||
Left = 40
|
||||
Top = 76
|
||||
end
|
||||
object rda_PedidosCliente: TDARemoteDataAdapter
|
||||
GetSchemaCall.RemoteService = RORemoteService
|
||||
GetDataCall.RemoteService = RORemoteService
|
||||
UpdateDataCall.RemoteService = RORemoteService
|
||||
GetScriptsCall.RemoteService = RORemoteService
|
||||
RemoteService = RORemoteService
|
||||
DataStreamer = Bin2DataStreamer
|
||||
Left = 43
|
||||
Top = 143
|
||||
end
|
||||
object tbl_PedidosCliente_Detalle_Color: TDAMemDataTable
|
||||
RemoteUpdatesOptions = []
|
||||
Fields = <
|
||||
item
|
||||
Name = 'ID'
|
||||
DataType = datAutoInc
|
||||
GeneratorName = 'GEN_PEDIDOS_CLI_DETALLES_ID'
|
||||
Required = True
|
||||
DictionaryEntry = 'PedidosCliente_Detalles_ID'
|
||||
InPrimaryKey = True
|
||||
end
|
||||
item
|
||||
Name = 'ID_DETALLE'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR1'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR2'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR3'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR4'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR5'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR6'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR7'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR8'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR9'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR10'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR11'
|
||||
DataType = datInteger
|
||||
end
|
||||
item
|
||||
Name = 'COLOR12'
|
||||
DataType = datInteger
|
||||
end>
|
||||
Params = <>
|
||||
MasterMappingMode = mmWhere
|
||||
StreamingOptions = [soDisableEventsWhileStreaming, soDisableFiltering]
|
||||
RemoteDataAdapter = rda_PedidosCliente
|
||||
MasterSource = ds_PedidosCliente_Detalles
|
||||
MasterFields = 'ID'
|
||||
DetailFields = 'ID_DETALLE'
|
||||
LogicalName = 'PedidosCliente_Detalle_Color'
|
||||
IndexDefs = <>
|
||||
Left = 472
|
||||
Top = 104
|
||||
end
|
||||
object ds_PedidosCliente_Detalle_Color: TDADataSource
|
||||
DataSet = tbl_PedidosCliente_Detalle_Color.Dataset
|
||||
DataTable = tbl_PedidosCliente_Detalle_Color
|
||||
Left = 472
|
||||
Top = 48
|
||||
end
|
||||
end
|
||||
@ -1,14 +0,0 @@
|
||||
/* VER180
|
||||
Generated by the Borland Delphi Pascal Compiler
|
||||
because -GD or --drc was supplied to the compiler.
|
||||
|
||||
This file contains compiler-generated resources that
|
||||
were bound to the executable.
|
||||
If this file is empty, then no compiler-generated
|
||||
resources were bound to the produced executable.
|
||||
*/
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
END
|
||||
|
||||
@ -1,343 +0,0 @@
|
||||
unit uEditorRemesaProveedor;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent,
|
||||
uBizRemesasProveedor, 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,
|
||||
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase,
|
||||
cxCustomData,
|
||||
uViewRemesasProveedor, uIEditorRemesaProveedor, uRemesasProveedorController, JvExComCtrls,
|
||||
JvStatusBar, dxLayoutLookAndFeels, uViewGridBase, uViewGrid,
|
||||
uViewRecibosRemesaProveedor, uViewTotales, uViewDetallesGenerico,
|
||||
uViewRemesaProveedor, uDAInterfaces, cxControls, cxContainer, cxEdit, cxLabel;
|
||||
|
||||
type
|
||||
TfEditorRemesaProveedor = class(TfEditorDBItem, IEditorRemesaProveedor)
|
||||
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
||||
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
||||
frViewTotales1: TfrViewTotales;
|
||||
actVolcarDisco: TAction;
|
||||
TBXSubmenuItem2: TTBXSubmenuItem;
|
||||
TBXItem7: TTBXItem;
|
||||
TBXItem33: TTBXItem;
|
||||
TBXSeparatorItem6: TTBXSeparatorItem;
|
||||
frViewRecibosRemesaProveedor1: TfrViewRecibosRemesaProveedor;
|
||||
frViewRemesaProveedor1: TfrViewRemesaProveedor;
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
|
||||
|
||||
procedure actAnadirRecibosExecute(Sender: TObject);
|
||||
procedure actEliminarReciboExecute(Sender: TObject);
|
||||
procedure JvFormStorageRestorePlacement(Sender: TObject);
|
||||
procedure JvFormStorageSavePlacement(Sender: TObject);
|
||||
procedure frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary(
|
||||
ASender: TcxDataSummary);
|
||||
procedure actVolcarDiscoUpdate(Sender: TObject);
|
||||
procedure actVolcarDiscoExecute(Sender: TObject);
|
||||
private
|
||||
procedure OnRecibosChanged(Sender: TObject);
|
||||
protected
|
||||
FController : IRemesasProveedorController;
|
||||
FRemesaProveedor: IBizRemesaProveedor;
|
||||
FViewRemesaProveedor : IViewRemesaProveedor;
|
||||
|
||||
function GetController : IRemesasProveedorController;
|
||||
procedure SetController (const Value : IRemesasProveedorController); virtual;
|
||||
function GetRemesaProveedor: IBizRemesaProveedor; virtual;
|
||||
procedure SetRemesaProveedor(const Value: IBizRemesaProveedor); virtual;
|
||||
function GetViewRemesaProveedor: IViewRemesaProveedor;
|
||||
procedure SetViewRemesaProveedor(const Value: IViewRemesaProveedor);
|
||||
property ViewRemesaProveedor: IViewRemesaProveedor read GetViewRemesaProveedor write SetViewRemesaProveedor;
|
||||
|
||||
procedure GuardarInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
procedure PrevisualizarInterno; override;
|
||||
procedure ImprimirInterno; override;
|
||||
procedure CerrarInterno; override;
|
||||
|
||||
procedure PonerTitulos(const ATitulo: string = ''); override;
|
||||
function GetModified: Boolean; override;
|
||||
|
||||
public
|
||||
property RemesaProveedor: IBizRemesaProveedor read GetRemesaProveedor write SetRemesaProveedor;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uDataTableUtils, uDataModuleUsuarios, uDialogUtils, uCustomEditor,
|
||||
uDataModuleRemesasProveedor, uDataModuleBase, uBizFamilias, uFamiliasController,
|
||||
uFactuGES_App;
|
||||
// uBancaElectronicaController;
|
||||
|
||||
{
|
||||
******************************* TfEditorRemesaProveedor *******************************
|
||||
}
|
||||
function TfEditorRemesaProveedor.GetRemesaProveedor: IBizRemesaProveedor;
|
||||
begin
|
||||
Result := FRemesaProveedor;
|
||||
end;
|
||||
|
||||
function TfEditorRemesaProveedor.GetController: IRemesasProveedorController;
|
||||
begin
|
||||
Result := FController;
|
||||
end;
|
||||
|
||||
function TfEditorRemesaProveedor.GetModified: Boolean;
|
||||
var
|
||||
bCambiado : Boolean;
|
||||
begin
|
||||
bCambiado := inherited GetModified;
|
||||
//Si no hay cambios miramos que no los halla en la lista de recibos
|
||||
if not bCambiado then
|
||||
bCambiado := frViewRecibosRemesaProveedor1.Modified;
|
||||
Result := bCambiado;
|
||||
end;
|
||||
|
||||
function TfEditorRemesaProveedor.GetViewRemesaProveedor: IViewRemesaProveedor;
|
||||
begin
|
||||
Result := FViewRemesaProveedor;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.GuardarInterno;
|
||||
var
|
||||
bEsNuevo : Boolean;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ShowHourglassCursor;
|
||||
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
|
||||
//frViewDetallesFacturaProveedor1.SaveGridStatus; // Para guardar estado del grid
|
||||
// frViewDetallesFacturaProveedor1.BeginUpdate; // Para que no se mueva el foco
|
||||
try
|
||||
bEsNuevo := FRemesaProveedor.EsNuevo;
|
||||
FController.Guardar(FRemesaProveedor);
|
||||
|
||||
finally
|
||||
// frViewDetallesFacturaProveedor1.EndUpdate;
|
||||
// frViewDetallesFacturaProveedor1.RestoreGridStatus;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
|
||||
if bEsNuevo then
|
||||
ShowInfoMessage('La remesa de pago se ha dado de alta con el código ' + FRemesaProveedor.REFERENCIA);
|
||||
Modified := False;
|
||||
frViewRecibosRemesaProveedor1.Modified := False;
|
||||
frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.ImprimirInterno;
|
||||
begin
|
||||
inherited;
|
||||
FController.Print(FRemesaProveedor);
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.JvFormStorageRestorePlacement(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
//frViewRecibosRemesaProveedor1.RestoreFromRegistry(JvAppRegistryStorage.Root);
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.JvFormStorageSavePlacement(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
//frViewRecibosRemesaProveedor1.StoreToRegistry(JvAppRegistryStorage.Root);
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.OnRecibosChanged(Sender: TObject);
|
||||
begin
|
||||
ActualizarEstadoEditor;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.PonerTitulos(const ATitulo: string);
|
||||
var
|
||||
FTitulo : String;
|
||||
begin
|
||||
FTitulo := ATitulo;
|
||||
if (FTitulo = '') and Assigned(RemesaProveedor) then
|
||||
begin
|
||||
if RemesaProveedor.EsNuevo then
|
||||
FTitulo := 'Nueva remesa de pago'
|
||||
else
|
||||
FTitulo := 'Remesa de pago';
|
||||
end;
|
||||
|
||||
inherited PonerTitulos(FTitulo);
|
||||
|
||||
Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')';
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.PrevisualizarInterno;
|
||||
begin
|
||||
inherited;
|
||||
FController.Preview(FRemesaProveedor);
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.SetRemesaProveedor(const Value: IBizRemesaProveedor);
|
||||
begin
|
||||
FRemesaProveedor := Value;
|
||||
if Assigned(FRemesaProveedor) then
|
||||
begin
|
||||
dsDataTable.DataTable := FRemesaProveedor.DataTable;
|
||||
frViewRecibosRemesaProveedor1.RemesaProveedor := FRemesaProveedor;
|
||||
frViewRecibosRemesaProveedor1.OnViewModified := OnRecibosChanged;
|
||||
end
|
||||
else
|
||||
begin
|
||||
dsDataTable.DataTable := Nil;
|
||||
frViewRecibosRemesaProveedor1.RemesaProveedor := Nil;
|
||||
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
|
||||
end;
|
||||
|
||||
if Assigned(FViewRemesaProveedor) then
|
||||
FViewRemesaProveedor.RemesaProveedor := FRemesaProveedor;
|
||||
|
||||
frViewTotales1.DADataSource.DataTable := dsDataTable.DataTable;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.SetController(const Value: IRemesasProveedorController);
|
||||
begin
|
||||
FController := Value;
|
||||
if Assigned(FController) then
|
||||
begin
|
||||
(ViewRemesaProveedor as IViewRemesaProveedor).Controller := (FController as IRemesasProveedorController);
|
||||
frViewRecibosRemesaProveedor1.Controller := (FController as IRemesasProveedorController);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.SetViewRemesaProveedor(const Value: IViewRemesaProveedor);
|
||||
begin
|
||||
FViewRemesaProveedor := Value;
|
||||
|
||||
if Assigned(FViewRemesaProveedor) and Assigned(RemesaProveedor) then
|
||||
begin
|
||||
FViewRemesaProveedor.RemesaProveedor := RemesaProveedor;
|
||||
FViewRemesaProveedor.Controller := (FController as IRemesasProveedorController);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.FormShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if not Assigned(FViewRemesaProveedor) then
|
||||
raise Exception.Create('No hay ninguna vista asignada');
|
||||
|
||||
if not Assigned(RemesaProveedor) then
|
||||
raise Exception.Create('No hay ningún almacén asignado');
|
||||
|
||||
RemesaProveedor.DataTable.Active := True;
|
||||
|
||||
//Falla si lo hacemos por dfm
|
||||
frViewRecibosRemesaProveedor1.cxGridView.OptionsSelection.MultiSelect := False;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.frViewRecibosRemesaProveedor1cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary);
|
||||
Var
|
||||
AImporteTotal: Currency;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if VarIsNull(ASender.FooterSummaryValues[0]) then
|
||||
AImporteTotal := 0
|
||||
else
|
||||
AImporteTotal := ASender.FooterSummaryValues[0];
|
||||
|
||||
if Assigned(RemesaProveedor) then
|
||||
begin
|
||||
if (RemesaProveedor.IMPORTE_TOTAL <> AImporteTotal) then
|
||||
begin
|
||||
if not RemesaProveedor.DataTable.Editing then
|
||||
begin
|
||||
RemesaProveedor.Edit;
|
||||
RemesaProveedor.IMPORTE_TOTAL := AImporteTotal;
|
||||
RemesaProveedor.Post;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
destructor TfEditorRemesaProveedor.Destroy;
|
||||
begin
|
||||
// Utilizar mejor OnClose;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.actAnadirRecibosExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
// HayCambios := FController.ElegirRecibosProveedor(RemesaProveedor) OR HayCambios;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.actEliminarReciboExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
// FController.EliminarReciboProveedor(RemesaProveedor);
|
||||
// HayCambios := True;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.actVolcarDiscoExecute(Sender: TObject);
|
||||
//var
|
||||
// ABancaController : IBancaElectronicaController;
|
||||
begin
|
||||
{
|
||||
inherited;
|
||||
ABancaController := TBancaElectronicaController.Create;
|
||||
try
|
||||
ABancaController.GenerarFicheroNorma19(FRemesaProveedor.ID);
|
||||
finally
|
||||
ABancaController := NIL;
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.actVolcarDiscoUpdate(Sender: TObject);
|
||||
begin
|
||||
// (Sender as TAction).Enabled := HayDatos and (not FRemesaProveedor.EsNuevo);
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.CerrarInterno;
|
||||
begin
|
||||
frViewRecibosRemesaProveedor1.OnViewModified := Nil;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
constructor TfEditorRemesaProveedor.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
pgPaginas.ActivePageIndex := 0;
|
||||
FViewRemesaProveedor := frViewRemesaProveedor1;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.CustomEditorClose(Sender: TObject;
|
||||
var Action: TCloseAction);
|
||||
begin
|
||||
inherited;
|
||||
dsDataTable.DataTable := NIL;
|
||||
FViewRemesaProveedor := NIL;
|
||||
FRemesaProveedor := NIL;
|
||||
end;
|
||||
|
||||
procedure TfEditorRemesaProveedor.EliminarInterno;
|
||||
begin
|
||||
if (Application.MessageBox('¿Desea borrar esta remesa de pago?', 'Atención', MB_YESNO) = IDYES) then
|
||||
begin
|
||||
inherited;
|
||||
if not FController.Eliminar(FRemesaProveedor) then
|
||||
actRefrescar.Execute;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
| ||||