This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/BaseDatos/TablaVendedores.pas

409 lines
12 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 01-12-2002
Versi<EFBFBD>n actual: 1.0.0
Fecha versi<EFBFBD>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<65>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.