AbetoDesign_FactuGES2/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas

139 lines
5.2 KiB
ObjectPascal
Raw Permalink Blame History

unit uViewDetallesAlbaranCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
uControllerDetallesArticulos, uBizAlbaranesCliente, cxDropDownEdit,
cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uDAInterfaces, cxMemo;
type
IViewDetallesAlbaranCliente = interface(IViewDetallesArticulos)
['{9326E1A0-BD5E-4BE1-BB3B-6A52C3394118}']
function GetAlbaran: IBizAlbaranCliente;
procedure SetAlbaran(const Value: IBizAlbaranCliente);
property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran;
end;
TfrViewDetallesAlbaranCliente = class(TfrViewDetallesArticulos, IViewDetallesAlbaranCliente)
cxRichEdit1: TcxRichEdit;
BAnadirCapitulo: TTBXSubmenuItem;
TBXItem14: TTBXItem;
actCapituloVarios: TAction;
procedure cxGridViewDESCRIPCIONGetPropertiesForEdit(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
procedure actCapituloVariosExecute(Sender: TObject);
private
procedure AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean = false);
protected
FAlbaran: IBizAlbaranCliente;
function GetAlbaran: IBizAlbaranCliente;
procedure SetAlbaran(const Value: IBizAlbaranCliente);
procedure AnadirArticulosInterno; override;
procedure RellenarArticulosInterno; override;
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
public
property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran;
end;
implementation
{$R *.dfm}
uses uDetallesAlbaranClienteController, uViewDetallesBase;
{ TfrViewDetallesAlbaranProveedor }
procedure TfrViewDetallesAlbaranCliente.actCapituloVariosExecute(
Sender: TObject);
begin
inherited;
// AnadirCapitulo(TIPO_CAPITULO_V, 'VARIOS ');
end;
function TfrViewDetallesAlbaranCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, -1)
else
Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID);
end;
procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno;
begin
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, -1)
else
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente);
end;
procedure TfrViewDetallesAlbaranCliente.AnadirCapitulo(const Tipo, Descripcion: String; const Descuento: Boolean);
var
bEsMultiSelect : Boolean;
begin
{
// Debo quitar el multiselect porque provoca que se quede seleccionado
// el registro actual y no el nuevo registro que voy a a<>adir
bEsMultiSelect := _FocusedView.OptionsSelection.MultiSelect;
if bEsMultiSelect then
_FocusedView.OptionsSelection.MultiSelect := False;
ShowHourglassCursor;
_FocusedView.BeginUpdate;
try
if _FocusedView.Controller.EditingController.IsEditing then
_FocusedView.Controller.EditingController.Edit.PostEditValue;
if Assigned(Controller) and Assigned(Detalles) then
(Controller as IDetallesContratoClienteController).AnadirCapitulo(Tipo, Descripcion, Descuento, Detalles)
finally
_FocusedView.EndUpdate;
HideHourglassCursor;
// Dejo la propiedad MultiSelect como estaba
if bEsMultiSelect then
_FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect;
end;
}
end;
procedure TfrViewDetallesAlbaranCliente.cxGridViewDESCRIPCIONGetPropertiesForEdit(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
begin
inherited;
AProperties := cxRichEdit1.Properties;
end;
function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente;
begin
Result := FAlbaran;
end;
procedure TfrViewDetallesAlbaranCliente.RellenarArticulosInterno;
begin
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, -1)
else
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False);
end;
procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente);
begin
FAlbaran := Value;
end;
end.