diff --git a/BaseDatos/TablaFacturasProveedor.pas b/BaseDatos/TablaFacturasProveedor.pas index 8b25e67..19eb8e6 100644 --- a/BaseDatos/TablaFacturasProveedor.pas +++ b/BaseDatos/TablaFacturasProveedor.pas @@ -20,6 +20,7 @@ --------------------------------------------------------------------------- 02-02-2004 Se ha eliminado el atributo SERIE (P8 MULTIEMPRESA) Se ha adaptado a los nuevos contadores + =============================================================================== } @@ -154,6 +155,7 @@ type function DarTiposOpDesTrimestral(var ListaCodigos: TStrings): TStrings; function ComprobarTrimestreFactura(CodigoFactura: String): Boolean; function AsignarTrimestre(CodigoFactura: String; CodigoTrimestre: String): Boolean; + function ModificarSituacionFacturas(Codigos: TStrings; Situacion: String): Boolean; end; var @@ -296,7 +298,7 @@ var begin with Grid do begin - ClearItems; + ClearItems; OptionsView.Footer := True; {Columna CODIGOEMPRESA} Columna := CreateColumn; @@ -1195,6 +1197,47 @@ begin end; end; +function TdmTablaFacturasProveedor.ModificarSituacionFacturas(Codigos: TStrings; Situacion: String): Boolean; +var + oSQL : TIBSQL; + Indice : Integer; + Cadena : String; +begin + Result := False; + if Codigos.Count = 0 then + Exit; + + //Formateamos los códigos para optimizar la sentencia SQL + for Indice:=0 to Codigos.Count-1 do + begin + if (Indice <> 0) then + Cadena := Cadena + ','; + Cadena := Cadena + '''' + Codigos.Strings[Indice] + ''''; + end; + + oSQL := TIBSQL.Create(Self); + with oSQL do + begin + Database := dmBaseDatos.BD; + Transaction := dmBaseDatos.Transaccion; + SQL.Add('update FACTURASPROVEEDOR '); + SQL.Add('set SITUACION = :SITUACION '); + SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA '); + SQL.Add('and CODIGO IN (' + Cadena + ')'); + ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; + ParamByName('SITUACION').AsString := Situacion; + try + Prepare; + ExecQuery; + Result := True; + finally + Close; + Transaction := NIL; + Free; + end; + end; +end; + { TDatosFacturaProveedor } procedure TDatosFacturaProveedor.AssignTo(Dest: TPersistent); diff --git a/Clientes/CambiarSituacionFacturas.dfm b/Clientes/CambiarSituacionFacturas.dfm index f6e7afe..affa55a 100644 --- a/Clientes/CambiarSituacionFacturas.dfm +++ b/Clientes/CambiarSituacionFacturas.dfm @@ -84,13 +84,12 @@ object frCambiarSituacionFacturas: TfrCambiarSituacionFacturas object cbxSituacion: TcxComboBox Left = 96 Top = 19 - Width = 169 - Height = 21 ParentFont = False Properties.DropDownListStyle = lsFixedList Properties.ReadOnly = False Style.StyleController = dmConfiguracion.cxEstiloEditoresFondoClaro TabOrder = 0 + Width = 169 end end object brDoble: TRdxBarraInferior diff --git a/Clientes/CambiarSituacionFacturas.pas b/Clientes/CambiarSituacionFacturas.pas index 85b6d2e..63a0d7f 100644 --- a/Clientes/CambiarSituacionFacturas.pas +++ b/Clientes/CambiarSituacionFacturas.pas @@ -29,7 +29,7 @@ uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, StdCtrls, RdxBotones, RdxBarras, ExtCtrls, - RdxPaneles, TablaTrimestres; + RdxPaneles, TablaTrimestres, cxGraphics, Entidades; type TfrCambiarSituacionFacturas = class(TForm) @@ -46,12 +46,14 @@ type procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private + FEntidad: TRdxEntidad; FCodigosFacturas : TStringList; FSituacion : String; procedure SetSituacion(Value : String); public property CodigosFacturas : TStringList read FCodigosFacturas write FCodigosFacturas; property Situacion : String read FSituacion write SetSituacion; + property Entidad: TRdxEntidad read FEntidad Write FEntidad; end; var @@ -60,16 +62,22 @@ var implementation uses - Mensajes, Literales, BaseDatos, Configuracion, Entidades, RdxEmpresaActiva, - TablaFacturasCliente, StrFunc; + Mensajes, Literales, BaseDatos, Configuracion, RdxEmpresaActiva, + TablaFacturasCliente, TablaFacturasProveedor, StrFunc, Math; {$R *.dfm} procedure TfrCambiarSituacionFacturas.bAceptarClick(Sender: TObject); var Indice :Integer; + Resultado: Boolean; begin - if not dmTablaFacturasCliente.ModificarSituacionFacturas(CodigosFacturas, cbxSituacion.Text) then + if Entidad = entFacturaProveedor then + Resultado := dmTablaFacturasProveedor.ModificarSituacionFacturas(CodigosFacturas, cbxSituacion.Text) + else + Resultado := dmTablaFacturasCliente.ModificarSituacionFacturas(CodigosFacturas, cbxSituacion.Text); + + if not Resultado then begin dmBaseDatos.Rollback; exit; @@ -81,6 +89,7 @@ end; procedure TfrCambiarSituacionFacturas.FormCreate(Sender: TObject); begin inherited; + FEntidad := entFacturaCliente; //Por defecto tratara los documentos de facturas de cliente FCodigosFacturas := TStringList.Create; cbxSituacion.Properties.Items := dmTablaFacturasCliente.DarSituaciones; cbxSituacion.ItemIndex := 0; diff --git a/Clientes/FacturasClientes.pas b/Clientes/FacturasClientes.pas index d905f01..b96fea1 100644 --- a/Clientes/FacturasClientes.pas +++ b/Clientes/FacturasClientes.pas @@ -468,6 +468,7 @@ var begin fCambiarSituacionFacturas := TfrCambiarSituacionFacturas.Create(Self); + fCambiarSituacionFacturas.Entidad := entFacturaCliente; //Rellenamos la propiedad de la unidad CambiarSituacion con los códigos seleccionados IndiceCol1 := gridFacturasDBTableView1.GetColumnByFieldName('CODIGO').Index; diff --git a/Proveedores/FacturasProveedores.dfm b/Proveedores/FacturasProveedores.dfm index 6b591f3..8c6efee 100644 Binary files a/Proveedores/FacturasProveedores.dfm and b/Proveedores/FacturasProveedores.dfm differ diff --git a/Proveedores/FacturasProveedores.pas b/Proveedores/FacturasProveedores.pas index a474f4b..1c6762d 100644 --- a/Proveedores/FacturasProveedores.pas +++ b/Proveedores/FacturasProveedores.pas @@ -83,6 +83,8 @@ type eNombre: TLabel; Buscar: TcxTextEdit; bLimpiar: TRdxBoton; + bFacturar: TRdxBoton; + actCambiarSituacion: TAction; procedure RdxFrameFacturasProveedorShow(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); @@ -101,6 +103,7 @@ type procedure actRefrescarDatosExecute(Sender: TObject); procedure BuscarPropertiesChange(Sender: TObject); procedure bLimpiarClick(Sender: TObject); + procedure actCambiarSituacionExecute(Sender: TObject); private procedure ActualizarBotones; protected @@ -123,7 +126,7 @@ implementation { TfrFacturasProveedores } uses - BaseDatos, TablaFacturasProveedor, IBDatabase, + BaseDatos, TablaFacturasProveedor, IBDatabase, CambiarSituacionFacturas, IBCustomDataSet, Mensajes, Entidades, Variants, FacturaProveedor, Constantes, FacturasProveedorPendientes, TablaEmpresas, Configuracion; @@ -222,7 +225,7 @@ end; procedure TfrFacturasProveedores.RdxFrameFacturasProveedorShow( Sender: TObject); begin - gridFacturas.SetFocus; + gridFacturas.SetFocus end; procedure TfrFacturasProveedores.actAnadirExecute(Sender: TObject); @@ -332,4 +335,27 @@ begin Buscar.Text := ''; end; +procedure TfrFacturasProveedores.actCambiarSituacionExecute(Sender: TObject); +var + IndiceCol1 : Integer; + IndiceSel : Integer; + fCambiarSituacionFacturas : TfrCambiarSituacionFacturas; + +begin + fCambiarSituacionFacturas := TfrCambiarSituacionFacturas.Create(Self); + fCambiarSituacionFacturas.Entidad := entFacturaProveedor; + + //Rellenamos la propiedad de la unidad CambiarSituacion con los códigos seleccionados + IndiceCol1 := gridFacturasDBTableView1.GetColumnByFieldName('CODIGO').Index; + for IndiceSel:=0 to gridFacturasDBTableView1.Controller.SelectedRowCount-1 do + fCambiarSituacionFacturas.CodigosFacturas.Append(gridFacturasDBTableView1.Controller.SelectedRows[IndiceSel].Values[IndiceCol1]); + + try + fCambiarSituacionFacturas.ShowModal; + finally + fCambiarSituacionFacturas.Free; + bRefrescar.Click; + end; +end; + end. diff --git a/Temp/FACTUGES.INI b/Temp/FACTUGES.INI index d1370d6..104d8a2 100644 --- a/Temp/FACTUGES.INI +++ b/Temp/FACTUGES.INI @@ -1,7 +1,7 @@ [BD] MIGUELO RIVAS=david:D:\Proyectos\FactuGES (Miguelo)\Codigo\bd\miguelo.gdb ACANA DAVID=david:D:\Proyectos\FactuGES 2000 v2 (Acana)\Codigo\bd\acana.gdb -MIGUELO ROBERTO=roberto:E:\Miguelo\bd\miguelo.gdb +MIGUELO ROBERTO=roberto:T:\Miguelo\bd\miguelo.gdb