git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
409 lines
12 KiB
ObjectPascal
409 lines
12 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2002. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 01-12-2002
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 01-12-2002
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit TablaVendedores;
|
|
|
|
interface
|
|
|
|
uses
|
|
//Generales
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
//Particulares
|
|
|
|
//Aplicacion
|
|
Framework, StrFunc, Entidades, Constantes, BaseDatos;
|
|
|
|
|
|
type
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//TDatosVendedor
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
TDatosVendedor = class(TPersistent)
|
|
public
|
|
Codigo : String;
|
|
Nombre : String;
|
|
NIFCIF : String;
|
|
Calle : String;
|
|
Numero : String;
|
|
Piso : String;
|
|
CodigoPostal : String;
|
|
Poblacion : String;
|
|
Provincia : String;
|
|
Telefono1 : String;
|
|
Telefono2 : String;
|
|
Movil1 : String;
|
|
Movil2 : String;
|
|
Porcentaje : String;
|
|
Observaciones : String;
|
|
end;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//TdmTablaVendedores
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
TdmTablaVendedores = class(TDataModule)
|
|
private
|
|
procedure IniciarSQL;
|
|
procedure IniciarSQLGrids;
|
|
public
|
|
sqlInsertar : TStrings;
|
|
sqlModificar : TStrings;
|
|
sqlConsultar : TStrings;
|
|
sqlEliminar : TStrings;
|
|
sqlGrid : TStrings;
|
|
sqlConsultarGridVendedoresComisiones : TStrings;
|
|
|
|
//Metodos que llamaran a contador
|
|
function DarNuevoCodigo : String;
|
|
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
|
|
function ExisteCodigo(CodigoVendedor : String) : Boolean;
|
|
function DarDatosVendedor(var Datos: TDatosVendedor): Boolean;
|
|
|
|
procedure InicializarGridVendedores(var vGrid: TcxGridDBTableView);
|
|
procedure InicializarGridVendedoresComisiones(var Grid: TcxGridDBTableView);
|
|
procedure InicializarTablaVendedores(Tabla: TPTabla);
|
|
end;
|
|
|
|
var
|
|
dmTablaVendedores: TdmTablaVendedores;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//TdmTablaVendedores
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
constructor TdmTablaVendedores.Create (AOwner : TComponent);
|
|
begin
|
|
inherited;
|
|
sqlInsertar := TStringList.Create;
|
|
sqlModificar := TStringList.Create;
|
|
sqlConsultar := TStringList.Create;
|
|
sqlEliminar := TStringList.Create;
|
|
sqlGrid := TStringList.Create;
|
|
sqlConsultarGridVendedoresComisiones := TStringList.Create;
|
|
|
|
IniciarSQL;
|
|
IniciarSQLGrids;
|
|
end;
|
|
|
|
destructor TdmTablaVendedores.Destroy;
|
|
begin
|
|
sqlInsertar.Free;
|
|
sqlModificar.Free;
|
|
sqlConsultar.Free;
|
|
sqlEliminar.Free;
|
|
sqlGrid.Free;
|
|
sqlConsultarGridVendedoresComisiones.Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TdmTablaVendedores.IniciarSQL;
|
|
begin
|
|
with sqlInsertar do
|
|
begin
|
|
Add('INSERT INTO VENDEDORES (');
|
|
Add('CODIGO, NOMBRE, NIFCIF, CALLE, NUMERO, PISO, CODIGOPOSTAL, ');
|
|
Add('POBLACION, PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, ');
|
|
Add('PORCENTAJE, OBSERVACIONES, FECHAALTA, USUARIO) ');
|
|
Add('values (:CODIGO, :NOMBRE, :NIFCIF, :CALLE, :NUMERO, :PISO, :CODIGOPOSTAL, ');
|
|
Add(':POBLACION, :PROVINCIA, :TELEFONO1, :TELEFONO2, :MOVIL1, :MOVIL2, ');
|
|
Add(':PORCENTAJE, :OBSERVACIONES, :FECHAALTA, :USUARIO)');
|
|
end;
|
|
|
|
with sqlModificar do
|
|
begin
|
|
Add('UPDATE VENDEDORES SET ');
|
|
Add('NOMBRE = :NOMBRE, ');
|
|
Add('NIFCIF = :NIFCIF, ');
|
|
Add('CALLE = :CALLE, ');
|
|
Add('NUMERO = :NUMERO, ');
|
|
Add('PISO = :PISO, ');
|
|
Add('CODIGOPOSTAL = :CODIGOPOSTAL, ');
|
|
Add('POBLACION = :POBLACION, ');
|
|
Add('PROVINCIA = :PROVINCIA, ');
|
|
Add('TELEFONO1 = :TELEFONO1, ');
|
|
Add('TELEFONO2 = :TELEFONO2, ');
|
|
Add('MOVIL1 = :MOVIL1, ');
|
|
Add('MOVIL2 = :MOVIL2, ');
|
|
Add('PORCENTAJE = :PORCENTAJE, ');
|
|
Add('OBSERVACIONES = :OBSERVACIONES ');
|
|
Add('WHERE (CODIGO = :CODIGO)');
|
|
end;
|
|
|
|
with sqlEliminar do
|
|
begin
|
|
Add('delete from VENDEDORES ');
|
|
Add('where CODIGO = :CODIGO');
|
|
end;
|
|
|
|
with sqlConsultar do
|
|
begin
|
|
Add('select * from VENDEDORES ');
|
|
Add('where CODIGO = :CODIGO');
|
|
end;
|
|
|
|
end;
|
|
|
|
function TdmTablaVendedores.darNuevoCodigo : String;
|
|
var
|
|
oSQL : TIBSQL;
|
|
begin
|
|
Result := '0';
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select max(CODIGO) + 1 ');
|
|
SQL.Add('from VENDEDORES ');
|
|
try
|
|
Prepare;
|
|
ExecQuery;
|
|
if not esCadenaVacia(Fields[0].AsString) then
|
|
Result := Fields[0].AsString;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TdmTablaVendedores.ExisteCodigo(CodigoVendedor: String): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
Codigo : String;
|
|
begin
|
|
Result := False;
|
|
|
|
if Length(Trim(CodigoVendedor)) = 0 then
|
|
Exit;
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select CODIGO ');
|
|
SQL.Add('from VENDEDORES ');
|
|
SQL.Add('where CODIGO = :CODIGO ');
|
|
|
|
try
|
|
ParamByName('CODIGO').AsString := CodigoVendedor;
|
|
Prepare;
|
|
ExecQuery;
|
|
|
|
Codigo := FieldByName('CODIGO').AsString;
|
|
Result := (CodigoVendedor = Codigo);
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TdmTablaVendedores.DarDatosVendedor(var Datos: TDatosVendedor): Boolean;
|
|
var
|
|
oSQL : TIBSQL;
|
|
begin
|
|
Result := False;
|
|
|
|
if EsCadenaVacia(Datos.Codigo) then
|
|
Exit;
|
|
|
|
oSQL := TIBSQL.Create(Self);
|
|
with oSQL do
|
|
begin
|
|
Database := dmBaseDatos.BD;
|
|
Transaction := dmBaseDatos.Transaccion;
|
|
SQL.Add('select * from VENDEDORES ');
|
|
SQL.Add('where CODIGO = :CODIGO');
|
|
|
|
try
|
|
ParamByName('CODIGO').AsString := Datos.Codigo;
|
|
Prepare;
|
|
ExecQuery;
|
|
|
|
if (RecordCount > 0) then
|
|
begin
|
|
with Datos do
|
|
begin
|
|
NifCif := FieldByName('NIFCIF').AsString;
|
|
Nombre := FieldByName('NOMBRE').AsString;
|
|
Calle := FieldByName('CALLE').AsString;
|
|
Numero := FieldByName('NUMERO').AsString;
|
|
Piso := FieldByName('PISO').AsString;
|
|
CodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
|
|
Poblacion := FieldByName('POBLACION').AsString;
|
|
Provincia := FieldByName('PROVINCIA').AsString;
|
|
Telefono1 := FieldByName('TELEFONO1').AsString;
|
|
Telefono2 := FieldByName('TELEFONO2').AsString;
|
|
Movil1 := FieldByName('MOVIL1').AsString;
|
|
Movil2 := FieldByName('MOVIL2').AsString;
|
|
Porcentaje := FieldByName('PORCENTAJE').AsString;
|
|
Observaciones := FieldByName('OBSERVACIONES').AsString;
|
|
Result := True;
|
|
end;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaVendedores.InicializarGridVendedores(var vGrid: TcxGridDBTableView);
|
|
var
|
|
Columna : TcxGridDBColumn;
|
|
begin
|
|
with vGrid do begin
|
|
OptionsView.Footer := True;
|
|
|
|
{Columna CODIGO}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'CODIGO';
|
|
Columna.Caption := 'Código';
|
|
Columna.Width := tamColCodigo;
|
|
Columna.Options.Filtering := False;
|
|
|
|
with TcxGridDBTableSummaryItem(DataController.Summary.FooterSummaryItems.Add) do
|
|
try
|
|
try
|
|
BeginUpdate;
|
|
Column := Columna;
|
|
FieldName := Columna.DataBinding.FieldName;
|
|
Format := 'Total: 0 vendedores';
|
|
Kind := skCount;
|
|
finally
|
|
EndUpdate;
|
|
end;
|
|
except
|
|
DataController.Summary.FooterSummaryItems.Delete(DataController.Summary.FooterSummaryItems.Count-1);
|
|
end;
|
|
|
|
{Columna NIFCIF}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'NIFCIF';
|
|
Columna.Caption := 'NIF/CIF';
|
|
Columna.Width := tamColNIFCIF;
|
|
Columna.Options.Filtering := False;
|
|
{Columna NOMBRE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
Columna.Caption := 'Nombre';
|
|
Columna.Width := tamColNombre;
|
|
Columna.Options.Filtering := False;
|
|
Columna.SortOrder := soAscending;
|
|
{Columna TELEFONO 1}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'TELEFONO1';
|
|
Columna.Caption := 'Teléfono 1';
|
|
Columna.Width := tamColTelefono;
|
|
Columna.Options.Filtering := False;
|
|
{Columna MOVIL1}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'MOVIL1';
|
|
Columna.Caption := 'Móvil 1';
|
|
Columna.Width := tamColTelefono;
|
|
Columna.Options.Filtering := False; end;
|
|
end;
|
|
|
|
procedure TdmTablaVendedores.IniciarSQLGrids;
|
|
begin
|
|
with sqlGrid do
|
|
begin
|
|
Add('select CODIGO, NOMBRE, NIFCIF, TELEFONO1, MOVIL1 ');
|
|
Add('from VENDEDORES ');
|
|
Add('order by NOMBRE');
|
|
end;
|
|
|
|
with sqlConsultarGridVendedoresComisiones do
|
|
begin
|
|
Add('select NOMBRE, PORCENTAJE, CAST ((0) as float) as IMPORTE');
|
|
Add('from VENDEDORES ');
|
|
Add('order by NOMBRE ');
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaVendedores.InicializarGridVendedoresComisiones(var Grid: TcxGridDBTableView);
|
|
var
|
|
Columna : TcxGridDBColumn;
|
|
begin
|
|
with Grid do begin
|
|
{Columna NOMBRE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'NOMBRE';
|
|
Columna.Caption := 'Nombre del vendedor';
|
|
Columna.Width := tamColNombre;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Editing := False;
|
|
{Columna PORCENTAJE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'PORCENTAJE';
|
|
Columna.Caption := 'Porcentaje';
|
|
Columna.Width := tamColPorcentaje;
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Editing := False;
|
|
{Columna IMPORTE}
|
|
Columna := CreateColumn;
|
|
Columna.DataBinding.FieldName := 'IMPORTE';
|
|
Columna.Caption := 'Importe';
|
|
Columna.HeaderAlignmentHorz := taRightJustify;
|
|
Columna.Width := tamColImporte;
|
|
Columna.Options.Filtering := False;
|
|
Columna.Options.Editing := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TdmTablaVendedores.InicializarTablaVendedores(Tabla: TPTabla);
|
|
begin
|
|
with Tabla^.Fields do
|
|
begin
|
|
if FindField('PORCENTAJE') <> NIL then
|
|
with (FieldByName('PORCENTAJE') as TFloatField) do begin
|
|
DisplayFormat := DISPLAY_DTO;
|
|
EditFormat := EDIT_DTO;
|
|
end;
|
|
end;
|
|
with Tabla^.Fields do
|
|
begin
|
|
if FindField('IMPORTE') <> NIL then
|
|
with (FieldByName('IMPORTE') as TFloatField) do begin
|
|
DisplayFormat := DISPLAY_EUROS2;
|
|
EditFormat := EDIT_EUROS2;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|