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.
|
|
||||||
|
|
||||||
| |||||||