Tecsitel_FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas
2015-07-09 17:26:48 +00:00

281 lines
9.9 KiB
ObjectPascal
Raw Blame History

unit uViewPedidoProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizPedidosProveedor, DB, uDADataTable, uCustomView,
AppEvnts, StdCtrls, Mask, DBCtrls,
uViewObservaciones,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaPedidoProv, cxLookupEdit, cxDBLookupEdit,
// uBizPedidosCliente, uPedidosClienteController,
cxDBLookupComboBox, uFormasPagoController, ActnList, uDAInterfaces, uBizFormasPago,
uViewProveedorPedido, uViewObraReserva, uObrasController,
uPedidosProveedorController, uViewDatosYSeleccionProveedorPedido, cxCheckBox;
type
IViewPedidoProveedor = interface(IViewBase)
['{6FF2FC16-307F-4B8B-A46A-3FEA270ED568}']
function GetPedido: IBizPedidoProveedor;
procedure SetPedido(const Value: IBizPedidoProveedor);
property Pedido: IBizPedidoProveedor read GetPedido write SetPedido;
function GetController : IPedidosProveedorController;
procedure SetController (const Value : IPedidosProveedorController);
property Controller : IPedidosProveedorController read GetController write SetController;
function GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido;
property ViewProveedorPedido: IViewDatosYSeleccionProveedorPedido read GetViewProveedorPedido;
end;
TfrViewPedidoProveedor = class(TfrViewBase, IViewPedidoProveedor)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaPedido: TcxDBDateEdit;
dxLayoutControl1Item4: TdxLayoutItem;
edtFechaConfirmacion: TcxDBDateEdit;
dxLayoutControl1Item5: TdxLayoutItem;
edtFechaEntrega: TcxDBDateEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
memObservaciones: TcxDBMemo;
dxLayoutControl1Item3: TdxLayoutItem;
eReferencia: TcxDBTextEdit;
dxLayoutControl1Group5: TdxLayoutGroup;
dxLayoutControl1Group6: TdxLayoutGroup;
dxLayoutControl1Group7: TdxLayoutGroup;
dxLayoutControl1Group8: TdxLayoutGroup;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item8: TdxLayoutItem;
frViewDireccionEntregaPedidoProv1: TfrViewDireccionEntregaPedidoProv;
dxLayoutControl1Item9: TdxLayoutItem;
cbFormaPago: TcxDBLookupComboBox;
dxLayoutControl1Item10: TdxLayoutItem;
bFormasPago: TButton;
dxLayoutControl1Group4: TdxLayoutGroup;
dsFormaPago: TDADataSource;
dxLayoutControl1Item7: TdxLayoutItem;
edtFechaEnvio: TcxDBDateEdit;
dxLayoutControl1Item11: TdxLayoutItem;
eReferenciaPedidoCli: TcxTextEdit;
dxLayoutControl1Item12: TdxLayoutItem;
bVerPedidoCliente: TButton;
dxLayoutControl1Group9: TdxLayoutGroup;
dxLayoutControl1Group10: TdxLayoutGroup;
ActionList1: TActionList;
actVerPedidoCli: TAction;
dxLayoutControl1Item13: TdxLayoutItem;
frViewObraReserva1: TfrViewObraReserva;
dxLayoutControl1Group11: TdxLayoutGroup;
frViewDatosYSeleccionProveedorPedido1: TfrViewDatosYSeleccionProveedorPedido;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item14: TdxLayoutItem;
ePedidoWeb: TcxDBCheckBox;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
procedure actVerPedidoCliExecute(Sender: TObject);
procedure actVerPedidoCliUpdate(Sender: TObject);
procedure frViewProveedorPedidoButton1Click(Sender: TObject);
procedure frViewProveedorPedidoButton2Click(Sender: TObject);
procedure ObraReservaEditValueChanged(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
protected
FPedido : IBizPedidoProveedor;
FController : IPedidosProveedorController;
FViewProveedorPedido : IViewDatosYSeleccionProveedorPedido;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
FObras: TStringList;
FObrasController : IObrasController;
// FPedidoCliAsociado : IBizPedidoCliente;
// FPedidoCliController : IPedidosClienteController;
function GetPedido: IBizPedidoProveedor;
procedure SetPedido(const Value: IBizPedidoProveedor); virtual;
function GetController : IPedidosProveedorController;
procedure SetController (const Value : IPedidosProveedorController);
function GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido;
public
property Pedido: IBizPedidoProveedor read GetPedido write SetPedido;
property Controller : IPedidosProveedorController read GetController write SetController;
property ViewProveedorPedido: IViewDatosYSeleccionProveedorPedido read GetViewProveedorPedido;
end;
implementation
{$R *.dfm}
uses uStringsUtils;
{ TfrViewPedidoProveedor }
procedure TfrViewPedidoProveedor.actVerPedidoCliExecute(Sender: TObject);
begin
inherited;
// FPedidoCliController.Ver(FPedidoCliAsociado);
end;
procedure TfrViewPedidoProveedor.actVerPedidoCliUpdate(Sender: TObject);
begin
inherited;
// if (Sender as TAction).Enabled then
// (Sender as TAction).Enabled := Assigned(FPedidoCliAsociado)
end;
procedure TfrViewPedidoProveedor.bFormasPagoClick(Sender: TObject);
begin
inherited;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewPedidoProveedor.CustomViewCreate(Sender: TObject);
begin
inherited;
FFormasPago := Nil;
FFormasPagoController := TFormasPagoController.Create;
FObrasController := TObrasController.Create;
FObras := FObrasController.DarListaObras;
FViewProveedorPedido := frViewDatosYSeleccionProveedorPedido1;
eReferencia.Enabled := False;
end;
procedure TfrViewPedidoProveedor.CustomViewDestroy(Sender: TObject);
begin
FViewProveedorPedido := Nil;
FController := Nil;
FFormasPago := Nil;
FFormasPagoController := NIL;
FObrasController := Nil;
FreeAndNil(FObras)
end;
procedure TfrViewPedidoProveedor.CustomViewShow(Sender: TObject);
begin
inherited;
if not FPedido.ID_OBRAISNull then
begin
frViewObraReserva1.ActivarObra(FPedido.ID_OBRA);
frViewDireccionEntregaPedidoProv1.lblObra.Caption := FPedido.NOMBRE_OBRA;
end;
frViewObraReserva1.cbObraReserva.Properties.OnEditValueChanged := ObraReservaEditValueChanged;
end;
procedure TfrViewPedidoProveedor.ObraReservaEditValueChanged(Sender: TObject);
var
IDObra: String;
begin
inherited;
IDObra := frViewObraReserva1.DarIDObraSeleccionada;
Controller.AsignarIDObra(FPedido, IDObra);
if EsCadenaVacia(IDObra) then
begin
frViewDireccionEntregaPedidoProv1.actListaObras.Enabled := False;
frViewDireccionEntregaPedidoProv1.lblObra.Caption := frViewObraReserva1.cbObraReserva.Text;
frViewDireccionEntregaPedidoProv1.actListaAlmacenes.Execute
end
else
begin
frViewDireccionEntregaPedidoProv1.actListaObras.Enabled := true;
frViewDireccionEntregaPedidoProv1.actListaObras.Execute;
frViewDireccionEntregaPedidoProv1.lblObra.Caption := frViewObraReserva1.cbObraReserva.Text;
end;
end;
procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton1Click(Sender: TObject);
begin
if Assigned(Pedido) and Assigned(Pedido.Proveedor) and
Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos del pedido actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
FViewProveedorPedido.ElegirProveedor;
end;
procedure TfrViewPedidoProveedor.frViewProveedorPedidoButton2Click(Sender: TObject);
begin
if Assigned(Pedido) and Assigned(Pedido.Proveedor) and
Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos del pedido actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
FViewProveedorPedido.AnadirNuevoProveedor;
end;
function TfrViewPedidoProveedor.GetController: IPedidosProveedorController;
begin
Result := FController;
end;
function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor;
begin
Result := FPedido;
end;
function TfrViewPedidoProveedor.GetViewProveedorPedido: IViewDatosYSeleccionProveedorPedido;
begin
Result := FViewProveedorPedido;
end;
procedure TfrViewPedidoProveedor.SetController(const Value: IPedidosProveedorController);
begin
FController := Value;
end;
procedure TfrViewPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor);
begin
FPedido := Value;
if Assigned(FPedido) then
begin
DADataSource.DataTable := FPedido.DataTable;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
// FPedidoCliAsociado := NIL;
// if (FPedido.ID_PEDIDO_CLIENTE > 0) then
// begin
// FPedidoCliAsociado := FPedidoCliController.Buscar(FPedido.ID_PEDIDO_CLIENTE);
// if Assigned(FPedidoCliAsociado) then
// begin
// FPedidoCliAsociado.DataTable.Active := True;
// eReferenciaPedidoCli.Text := FPedidoCliAsociado.REFERENCIA
// end
// else
// eReferenciaPedidoCli.Text := '';
// end
// else
// eReferenciaPedidoCli.Text := 'No hay pedido asociado';
FViewProveedorPedido.Pedido := FPedido;
frViewDireccionEntregaPedidoProv1.PedidoProveedor := FPedido;
frViewObraReserva1.Obras := FObras;
frViewObraReserva1.ObrasController := FObrasController;
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
// FPedidoCliAsociado := NIL;
FViewProveedorPedido.Pedido := NIL;
end;
end;
end.