unit fclientesCOMPUESTO;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, StdCtrls, Buttons, ExtCtrls, Menus, Mask, db,TIPOSDEFINIDOS,
  ActnList, ImgList, ComCtrls, ToolWin,DBCLIENT, DC, NIF,forden,dateutils,ucclientes,
  mydbedit,Grids, DBGrids, ExtendedGrid,UCPRESUPUESTOS,UCALBARANES,UCFACTURAS ;

type
  Tclientescompuesto = class(TForm)
    MMenu: TMainMenu;
    CLIENTES1: TMenuItem;
    PDatos: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    DSCLIENTE: TDataSource;
    ALTAS1: TMenuItem;
    BAJAS1: TMenuItem;
    CONSULTAS1: TMenuItem;
    MODIFICACIONES1: TMenuItem;
    LISTADO1: TMenuItem;
    N1: TMenuItem;
    SALIR1: TMenuItem;
    REGISTRO1: TMenuItem;
    PRIMERO1: TMenuItem;
    ANTERIOR1: TMenuItem;
    SIGUIENTE1: TMenuItem;
    VER1: TMenuItem;
    ODOS1: TMenuItem;
    NOBORRADOS1: TMenuItem;
    Label4: TLabel;
    ToolBar1: TToolBar;
    BALTAS: TToolButton;
    BBAJAS: TToolButton;
    BCONSULTAS: TToolButton;
    BMODIFICACIONES: TToolButton;
    BLISTADO: TToolButton;
    ToolButton6: TToolButton;
    DBNavigator2: TDBNavigator;
    ToolButton7: TToolButton;
    BSALIR: TToolButton;
    ActionList1: TActionList;
    AAltas: TAction;
    ABajas: TAction;
    AConsultas: TAction;
    AModificaciones: TAction;
    ASalir: TAction;
    ALISTADO: TAction;
    ImageList1: TImageList;
    Label7: TLabel;
    Label13: TLabel;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    Label14: TLabel;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    abusqueda: TAction;
    aorden: TAction;
    NIF1: TNIF;
    DC1: TDC;
    MyDBEdit1: TMyDBEdit;
    MyDBEdit6: TMyDBEdit;
    MyDBEdit8: TMyDBEdit;
    MyDBEdit18: TMyDBEdit;
    TSCONTENEDOR: TPageControl;
    TSPRESUPUESTO: TTabSheet;
    TSALBARANES: TTabSheet;
    DSPRESUPUESTO: TDataSource;
    ExtendedGrid1: TExtendedGrid;
    Panel1: TPanel;
    Label11: TLabel;
    Edit2: TEdit;
    MyDBEdit2: TMyDBEdit;
    Label3: TLabel;
    ExtendedGrid2: TExtendedGrid;
    DSALBARANES: TDataSource;
    MyDBEdit3: TMyDBEdit;
    TSFACTURAS: TTabSheet;
    DSFACTURAS: TDataSource;
    ExtendedGrid3: TExtendedGrid;
    MyDBEdit4: TMyDBEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure BAltasClick(Sender: TObject);
    procedure BConsultasClick(Sender: TObject);
    procedure BBajasClick(Sender: TObject);
    procedure BModificacionesClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure BSalirClick(Sender: TObject);
    procedure DSCLIENTEStateChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BListadoClick(Sender: TObject);
    procedure REGISTRO1Click(Sender: TObject);
    procedure PRIMERO1Click(Sender: TObject);
    procedure ANTERIOR1Click(Sender: TObject);
    procedure SIGUIENTE1Click(Sender: TObject);
    procedure CLIENTES1Click(Sender: TObject);
    procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit6Exit(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure DSCLIENTEDataChange(Sender: TObject; Field: TField);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure ODOS1Click(Sender: TObject);
    procedure NOBORRADOS1Click(Sender: TObject);
    procedure DBEdit8Exit(Sender: TObject);
//    procedure FormResize(Sender: TObject);
    procedure abusquedaExecute(Sender: TObject);
    procedure aordenExecute(Sender: TObject);
    procedure TSCONTENEDORChange(Sender: TObject);
    procedure ExtendedGrid1DblClick(Sender: TObject);
    procedure ExtendedGrid2DblClick(Sender: TObject);
    procedure ExtendedGrid3DblClick(Sender: TObject);
//    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
    PAUX :STRING;
    ancho : integer;
    procedure EstadoBotones;
    function GetCLIENTE:string;
    PROCEDURE VER_PRESUPUESTO;
    PROCEDURE VER_ALBARANES;
    PROCEDURE VER_FACTURAS;
  public
    { Public declarations }
     VER : STRING;
     ARORDEN:TORDEN;
     CPRESUPUESTOS:TCPRESUPUESTOS;
     CALBARANES:TCALBARANES;
     CFACTURAS:TCFACTURAS;
     property codigo:string read GetCLIENTE;// write SetCONDUCTOR;
     procedure buscar;
  end;

var
  clientescompuesto: Tclientescompuesto;
  cclientes:tcclientes;


implementation

uses RUTINAS,  fdlgCLIENTE,  fprevio,
  FLISTADOS, FDLGEMPRESAAUX, menu, FPRESUPUESTO, FALBARAN, FFACTURA;

{$R *.DFM}


//********************    FALTA POR HACER EL LISTADO

procedure Tclientescompuesto.BListadoClick(Sender: TObject);
VAR PATH:STRING;
    bookmark:tbookmark;
begin
    bookmark:= cclientes.cdsq_cliente.GetBookmark ;
    DSCLIENTE.DataSet := NIL; // HACE FALTA
    LISTADOS := tLISTADOS.Create(nil);
    PREVIO := TPREVIO.Create(NIL);
    LISTADOS.FRDB.DataSet := cclientes.CDSQ_CLIENTE;
 //   Path := ExtractFilePath(ParamStr(0));
    LISTADOS.frReport1.LoadFromFile(fmenu.path + 'LISTADOS\CLIENTE.frf');
    LISTADOS.frReport1.Preview := PREVIO.frPreview1;
    LISTADOS.frReport1.ShowReport;
    PREVIO.ShowModal;
    DSCLIENTE.DataSet := cclientes.CDSQ_CLIENTE;
    LISTADOS.Free;
    LISTADOS := NIL;
    PREVIO.FREE;
    PREVIO := NIL;
    cclientes.cdsq_cliente.GotoBookmark(bookmark);
    cclientes.cdsq_cliente.FreeBookmark (bookmark);
end;


//***********************************************************
function Tclientescompuesto.GetCLIENTE:string;
begin
    result:=cclientes.CDSQ_CLIENTEnif.asstring;
end;


procedure Tclientescompuesto.FormDestroy(Sender: TObject);
begin


  try
    EXTENDEDGRID1.Columns.SAVETOfile(FMENU.PATHDBGRID +'\'+SELF.Name+'1');
  except
  end;
  try
    EXTENDEDGRID2.Columns.SAVETOfile(FMENU.PATHDBGRID +'\'+SELF.Name+'2');
  except
  end;
  try
    EXTENDEDGRID3.Columns.SAVETOfile(FMENU.PATHDBGRID +'\'+SELF.Name+'3');
  except
  end;


 if cclientes.CDSQ_CLIENTE.active then
     cclientes.CDSQ_CLIENTE.close;

 cclientes.CDSQ_MAXIMO.CLOSE;
 CCLIENTES.Destroy;
 ARORDEN.FREE;
 ARORDEN := NIL;

 CPRESUPUESTOS.CDSQ_PRESUPUESTOS.CLOSE;
 CPRESUPUESTOS.CDSQ_PRESUPUESTOS.AggregatesActive := FALSE;
 CPRESUPUESTOS.CDSQ_PRESUPUESTOSAGTOTALPRESUPUESTOS.Active := FALSE;
 CPRESUPUESTOS.CDSQ_PRESUPUESTOSAGTOTALPRESUPUESTOS.Visible := FALSE;

 CALBARANES.CDSQ_ALBARANES.CLOSE;
 CALBARANES.CDSQ_ALBARANES.AggregatesActive := FALSE;
 CALBARANES.CDSQ_ALBARANESAGTOTALALBARANES.Active := FALSE;
 CALBARANES.CDSQ_ALBARANESAGTOTALALBARANES.Visible := FALSE;

 CFACTURAS.CDSQ_FACTURAS.CLOSE;
 CFACTURAS.CDSQ_FACTURAS.AggregatesActive := FALSE;
 CFACTURAS.CDSQ_FACTURASAGTOTALFACTURAS.Active := FALSE;
 CFACTURAS.CDSQ_FACTURASAGTOTALFACTURAS.Visible := FALSE;


 CPRESUPUESTOS.Destroy;
 CALBARANES.DESTROY;

end;
procedure Tclientescompuesto.FormCreate(Sender: TObject);
begin
// if cclientes.CDSQ_CLIENTE.active then
//     cclientes.CDSQ_CLIENTE.close;


  try
    EXTENDEDgrid1.Columns.loadfromfile(FMENU.PATHDBGRID +'\'+SELF.Name+'1');
  except
  end;
  try
    EXTENDEDgrid2.Columns.loadfromfile(FMENU.PATHDBGRID +'\'+SELF.Name+'2');
  except
  end;
  try
    EXTENDEDgrid3.Columns.loadfromfile(FMENU.PATHDBGRID +'\'+SELF.Name+'3');
  except
  end;


  CPRESUPUESTOS := UCPRESUPUESTOS.TcPresupuestos.Create(SELF);
  CPRESUPUESTOS.CDSQ_PRESUPUESTOS.AggregatesActive := TRUE;
  CPRESUPUESTOS.CDSQ_PRESUPUESTOSAGTOTALPRESUPUESTOS.Active := TRUE;
  CPRESUPUESTOS.CDSQ_PRESUPUESTOSAGTOTALPRESUPUESTOS.Visible := TRUE;


  CALBARANES := UCALBARANES.TcALBARANES.Create(SELF);
  CALBARANES.CDSQ_ALBARANES.AggregatesActive := TRUE;
  CALBARANES.CDSQ_ALBARANESAGTOTALALBARANES.Active := TRUE;
  CALBARANES.CDSQ_ALBARANESAGTOTALALBARANES.Visible := TRUE;

  CFACTURAS := UCFACTURAS.TcFACTURAS.Create(SELF);
  CFACTURAS.CDSQ_FACTURAS.AggregatesActive := TRUE;
  CFACTURAS.CDSQ_FACTURASAGTOTALFACTURAS.Active := TRUE;
  CFACTURAS.CDSQ_FACTURASAGTOTALFACTURAS.Visible := TRUE;


  dscliente.dataset := nil;
  Cclientes := UCclientes.Tcclientes.Create(SELF);
  dscliente.DataSet := Cclientes.cdsq_CLIENTE;

 VER := '0';
 ancho := Width ;
 ARORDEN := TORDEN.Create(NIL);
 ARORDEN.CDS := cclientes.cdsq_CLIENTE;
 ARORDEN.nombre  := 'CDSQ_CLIENTE';
 cclientes.v.BUSCANDO  := false;
 IF arorden.sORDEN = '' THEN
     arorden.SORDEN := ORDENCLIENTE;


//  application.CreateForm(tccproveedoress,ccproveedores);

  with cclientes do
  BEGIN
    cclientes.cdsq_cliente.close;
    cclientes.v.ID :='%';
    cclientes.v.BORRADO := '0';
    cclientes.v.TIPO := '1';
    cclientes.cdsq_cliente.open;
  END;
  EDIT2.TEXT := FMENU.ANYO;

end;
procedure Tclientescompuesto.FormShow(Sender: TObject);
begin
    EstadoBotones;
end;
procedure Tclientescompuesto.BConsultasClick(Sender: TObject);
begin

    dsCLIENTE.DataSet := nil;
    dlgCLIENTE:=tdlgCLIENTE.create(nil);

    cclientes.V.BORRADO := ver;
    dlgcliente.VER:=VER;
      IF CCLIENTES.cdsq_cliente.ACTIVE
  AND (CCLIENTES.cdsq_cliente.RECORDCOUNT > 0) THEN
    dlgcliente.cclientes.igual(cclientes);

    IF TRIM(ARORDEN.SORDEN) = '' THEN
        DLGCLIENTE.ORDEN:=ORDENCLIENTE
    ELSE
        DLGCLIENTE.ORDEN :=  ARORDEN.SORDEN;

//    dlgCLIENTE.CerrarDataset := false;
//    dlgCLIENTE.VER := VER;
   if dlgcliente.Showmodal =mrok   then
       cclientes.igual(dlgcliente.cclientes);


    dlgCLIENTE.Free;
    dlgCLIENTE := nil;

    IF NOT cclientes.CDSQ_CLIENTE.ACTIVE THEN
       ESTADOBOTONES;
    dsCLIENTE.dataset := cclientes.CDSQ_CLIENTE;
end;

procedure Tclientescompuesto.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if (ActiveControl=nil) and (key=#13) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
   if (key = #13) and not (ActiveControl is TButton) then
    begin
        PAUX:='';
        if uppercase(activecontrol.name)='MYDBEDIT19'
          then
           if cclientes.v.BUSCANDO then
            buscar
           else
            cclientes.CDSQ_CLIENTE.post;
        IF  cclientes.CDSQ_CLIENTE.STATE IN [DSEDIT,DSINSERT] THEN
            PAUX:=Uppercase(activecontrol.name);
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0 ;
        IF UPPERCASE(PAUX)='MYDBEDIT6' THEN
             MYDBEDIT8.SetFocus ;

    end;

    if not (activeControl is TDBEdit) then
    begin
       if uppercase(key)='A' then if BAltas.enabled then BAltas.click;
       if uppercase(key)='B' then if BBajas.enabled then BBajas.click;
       if uppercase(key)='C' then if BConsultas.enabled then BConsultas.click;
       if uppercase(key)='M' then if BModificaciones.enabled then BModificaciones.click;
       if uppercase(key)='L' then if BListado.enabled then BListado.click;
    end;

    if (key = #27) and not (cclientes.CDSQ_CLIENTE.state in [dsedit,dsinsert])
     then
      if not cclientes.v.BUSCANDO then
        close
      else
        cclientes.v.buscando := false;

    if (key = #27) and not (ActiveControl is TButton) then
        if cclientes.CDSQ_CLIENTE.state in [dsedit,dsinsert]
          then
           if cclientes.v.buscando then
            buscar
           else
            cclientes.CDSQ_CLIENTE.post;

end;

procedure Tclientescompuesto.BSalirClick(Sender: TObject);
begin
    close;
    modalresult := mrOk;
end;
procedure Tclientescompuesto.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=38 then CambiarControl(self,false);
    if key=40 then CambiarControl(self,true);
end;
procedure Tclientescompuesto.REGISTRO1Click(Sender: TObject);
begin
   if (cclientes.CDSQ_CLIENTE.state in [dsedit,dsinsert]) then
   begin
      primero1.enabled:=false;
      anterior1.enabled:=false;
      siguiente1.enabled:=false;
   end
   else
   begin
    primero1.enabled:=cclientes.CDSQ_CLIENTE.bof=false;
    anterior1.enabled:=primero1.enabled;
    siguiente1.enabled:=cclientes.CDSQ_CLIENTE.eof=false;
   end;
end;

procedure Tclientescompuesto.PRIMERO1Click(Sender: TObject);
begin
   cclientes.CDSQ_CLIENTE.first;
end;

procedure Tclientescompuesto.ANTERIOR1Click(Sender: TObject);
begin
    cclientes.CDSQ_CLIENTE.Prior;
end;

procedure Tclientescompuesto.SIGUIENTE1Click(Sender: TObject);
begin
    cclientes.CDSQ_CLIENTE.next;
end;

procedure Tclientescompuesto.EstadoBotones;
begin
    PDatos.enabled:=cclientes.CDSQ_CLIENTE.state in [dsedit,dsinsert];
    BAltas.enabled:=(cclientes.CDSQ_CLIENTE.state=dsbrowse) or (cclientes.CDSQ_CLIENTE.state=dsinactive);
    BListado.enabled:=(cclientes.CDSQ_CLIENTE.state=dsbrowse) and (cclientes.CDSQ_CLIENTE.RecordCount >0 ) AND (cclientes.CDSQ_CLIENTEBORRADO.VALUE = 0);
    BConsultas.enabled:=(cclientes.CDSQ_CLIENTE.state=dsbrowse) or (cclientes.CDSQ_CLIENTE.state=dsinactive);
    BModificaciones.enabled:=(cclientes.CDSQ_CLIENTE.state=dsbrowse)  and (cclientes.CDSQ_CLIENTE.RecordCount >0 );//AND (cclientes.CDSQ_CLIENTEBORRADO.VALUE = 0);
    BBajas.enabled:=(cclientes.CDSQ_CLIENTE.state=dsbrowse) and (cclientes.CDSQ_CLIENTE.RecordCount >0 ) AND (cclientes.CDSQ_CLIENTEBORRADO.VALUE = 0);
end;

procedure Tclientescompuesto.BAltasClick(Sender: TObject);
begin
 WITH cclientes.CDSQ_CLIENTE DO
  BEGIN
    IF NOT cclientes.CDSQ_CLIENTE.ACTIVE THEN
    BEGIN
    cclientes.v.ID :='-125478';
    cclientes.v.BORRADO := '-1';
    cclientes.v.TIPO := '1';
        cclientes.v.ORDEN := ARORDEN.SORDEN;
     OPEN;
    END;
     APPEND;
  END;
  MYdbedit1.setfocus;
end;
procedure Tclientescompuesto.BBajasClick(Sender: TObject);
VAR AUX:STRING;
begin
    if (cclientes.CDSQ_CLIENTE.recordcount>0)// or (cclientes.CDSQ_CLIENTE.state in [dsedit,dsinsert])
      then
        begin
          case cclientes.v.PedirConfirmacion('¿Confirma que desea borrar este Cliente?',true,true,false) of
               mrno:EXIT;
          end;
          WITH cclientes.CDSQ_CLIENTE DO
          BEGIN
           EDIT;
           cclientes.CDSQ_CLIENTEBORRADO.Value := 1;
           cclientes.v.PREGUNTA  := FALSE;
           POST;
          END;
      end;

end;
procedure Tclientescompuesto.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if (cclientes.CDSQ_CLIENTE.State in [dsedit,dsinsert])
  and (not cclientes.v.BUSCANDO) then
      cclientes.CDSQ_CLIENTE.post;
  ACTION := CAFREE;
end;
procedure Tclientescompuesto.BModificacionesClick(Sender: TObject);
begin
    if cclientes.CDSQ_CLIENTE.recordcount>0 then
    begin
        cclientes.CDSQ_CLIENTE.edit;
        IF cclientes.CDSQ_CLIENTEBORRADO.VALUE = 1 THEN
           cclientes.CDSQ_CLIENTEBORRADO.VALUE := 0;
        MYdbedit1.setfocus;
    end;
end;
procedure Tclientescompuesto.DSCLIENTEStateChange(Sender: TObject);
begin
    IF NOT MYDBEDIT6.Enabled THEN
       MYDBEDIT6.Enabled := TRUE;
    EstadoBotones;
end;
procedure Tclientescompuesto.CLIENTES1Click(Sender: TObject);
begin
    altas1.enabled:=baltas.enabled;
    bajas1.enabled:=bbajas.enabled;
    consultas1.enabled:=bconsultas.enabled;
    modificaciones1.enabled:=bmodificaciones.enabled;
    listado1.enabled:=blistado.enabled;
end;
//******* PONERLO EN RUTINAS ES DIFERENTE DE LA FUNCION DE CLIENTES
//******* VER CON JJ PARA HACER UNA PARA LOS DOS.
procedure Tclientescompuesto.DBEdit6Exit(Sender: TObject);
VAR CIF:STRING;
    ultimo,valido:boolean;
begin

if (MYdbedit6.text = '') and (cclientes.CDSQ_CLIENTE.State in [dsedit,dsinsert]) then
 begin
  showmessage('El NIF introducido es erroneo, introduzcalo correctamente');
  valido:=false;
//  dbedit6.setfocus;/
// LO QUITO PORQUE ESTA EN BLANCO

//  cclientes.esta(MYdbedit6.text);

  PAUX:='';
  EXIT;
 end
 else
 if (cclientes.CDSQ_CLIENTE.State in [dsedit,dsinsert]) then
 begin
    nif1.CADENA := MYdbedit6.Text;
    if not nif1.VALIDO then
    begin
      valido:=false;
//      dbedit6.setfocus;
      cclientes.esta(MYdbedit6.text);
      PAUX:='';
      EXIT;
    end
    ELSE
    BEGIN
      cclientes.esta(MYdbedit6.text);

{      WITH cclientes.CDSQ_FCLIENTE DO // COMPRUEBO SI HAY ALGUN proveedor BORRADO CON ESE NIF
      BEGIN
         CLOSE;
         cclientes.FCBGRNIF := NIF1.CADENA;
         cclientes.FCBGRBORRADO :='1';
         OPEN;
         IF RECORDCOUNT > 0 THEN
         BEGIN
            SHOWMESSAGE('EL NIF CORRESPONDE CON UN CLIENTE YA BORRADO. SE MUESTRA EL REGISTRO');
            cclientes.CDSQ_CLIENTE.UndoLastChange(TRUE);
            cclientes.CDSQ_CLIENTE.CLOSE;
            cclientes.v.ID :=NIF.CADENA;
            cclientes.v.BORRADO := '1';
            cclientes.v.TIPO := '2';
            cclientes.v.ORDEN := ORDENCLIENTE;
            cclientes.CDSQ_CLIENTE.OPEN;
            cclientes.CDSQ_CLIENTE.Edit;
            cclientes.CDSQ_CLIENTEBORRADO.Value := 0;
            DBEDIT6.Enabled := FALSE;
          END;
         CLOSE;
      END;
}
    END;
 END;
//  DBEDIT8.SETFOCUS;
end;
procedure Tclientescompuesto.DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
{IF   ((key>='0') and (key<='9')) or (key =#13) or ((key>='A') and (key<='Z')) and (key <>#8)  then
  begin
     if (key =#13) and not (Activecontrol is TButton) then
     begin
 //         Perform(WM_NEXTDLGCTL,0,0);
 //          key:=#0;
     end;
  end
  else key:=#0;
}

end;



procedure Tclientescompuesto.DSCLIENTEDataChange(Sender: TObject;
  Field: TField);
begin
  IF (cclientes.CDSQ_CLIENTE.EOF) AND (NOT(cclientes.CDSQ_CLIENTE.STATE IN [DSEDIT,DSINSERT])) THEN
  try // para evitar el error de memoria bloqueada en el server.
    cclientes.CDSQ_CLIENTE.GetNextPacket;
  except
  end;
  IF cclientes.CDSQ_CLIENTEBORRADO.Value = 1 THEN
     LABEL4.Visible := TRUE
  ELSE
     LABEL4.Visible := FALSE;
  ESTADOBOTONES;

  VER_PRESUPUESTO;
  VER_ALBARANES;
  VER_FACTURAS;

end;

procedure Tclientescompuesto.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  IF cclientes.CDSQ_CLIENTE.EOF  THEN
  try // para evitar el error de memoria bloqueada en el server.
    cclientes.CDSQ_CLIENTE.GetNextPacket;
  except
  end;
end;

procedure Tclientescompuesto.ODOS1Click(Sender: TObject);
begin
   ODOS1.Checked := TRUE;
   NOBORRADOS1.Checked := FALSE;
   if ver <> '%' then
   begin
      ver := '%';
      bconsultasclick(sender);
   end;
end;

procedure Tclientescompuesto.NOBORRADOS1Click(Sender: TObject);
begin
   ODOS1.Checked := FALSE;
   NOBORRADOS1.Checked := TRUE;
   if ver <> '0' then
   begin
     ver := '0';
     bconsultasclick(sender);
   end;
end;



procedure Tclientescompuesto.DBEdit8Exit(Sender: TObject);
begin
  IF cclientes.CDSQ_CLIENTE.State = DSINSERT THEN
   cclientes.CDSQ_CLIENTENOMBRE_COMERCIAL.ASSTRING  := cclientes.CDSQ_CLIENTENOMBRE.AsString;
end;


{procedure Tclientescompuesto.FormResize(Sender: TObject);
begin
   pdatos.Left := 10 + (ClientWidth - ancho ) div 2 ;
end;
}
procedure Tclientescompuesto.abusquedaExecute(Sender: TObject);
begin
  WITH cclientes.cdsq_cliente DO
  BEGIN
     CLOSE;
     cclientes.v.ID :='-1897456';
     cclientes.v.BORRADO := '-1';
     cclientes.v.ORDEN := ARORDEN.SORDEN;
     cclientes.v.TIPO :='1';
     cclientes.v.EMPRESA := FMENU.ID_EMPRESA;
     cclientes.v.BUSCANDO  := TRUE;
     OPEN;
     APPEND;
  END;
  cclientes.cdsq_clienteid_cliente.FocusControl
end;

procedure Tclientescompuesto.aordenExecute(Sender: TObject);
begin
   ARORDEN.ShowModal;
end;

procedure tclientescompuesto.buscar;
var aux,AUX1,fecha:STRING;
    i,AUX2,AUX3,J:integer;
    auxfecha:tdatetime;
begin
  i:= 0;
  aux := '';
  WHILE I < SELF.ComponentCount DO
  begin
    IF (SELF.Components[I] IS TDBEDIT) THEN
    BEGIN
      AUX1:=(SELF.Components[I] AS TDBEDIT).DataField ;
      if (NOT (TRIM(cclientes.cdsq_cliente.FieldByName(AUX1).ASSTRING) ='')) AND
         (NOT ( cclientes.cdsq_cliente.FieldByName(AUX1).FieldKIND IN  [fkCalculated,fkInternalCalc]))
      then
      BEGIN
//         if pos('FECHA',uppercase(aux1)) <> 0 then
         IF ((cclientes.cdsq_cliente.FieldByName(AUX1).DataType IN [FTDATE,ftTimeStamp]) OR
         (cclientes.cdsq_cliente.FieldByName(AUX1).DataType = FTDATE)) AND
         ( POS(':',UPPERCASE(AUX1)) = 0)
         THEN
         begin
            auxfecha :=cclientes.cdsq_cliente.FieldByName(AUX1).AsDateTime ;
            fecha := inttostr(yearof(auxfecha))+'-'+inttostr(monthof(auxfecha))+'-'+inttostr(dayof(auxfecha));
            if aux <> '' then
               aux := aux + ' AND ' + AUX1  +' = '''+ fecha+''' '
            else
               aux := AUX1 +' = '''+ fecha+''' ';
         end
         else
         begin
            if aux <> '' then
               aux := aux + ' AND char(' + AUX1  +') Like ('''+ cclientes.cdsq_cliente.FieldByName(AUX1).ASSTRING+'%'') '
            else
               aux := 'char('+AUX1 +') like ('''+ TRIM(cclientes.cdsq_cliente.FieldByName(AUX1).ASSTRING)+'%'') ';
         end;
      END;
      end;
      IF (SELF.Components[I] IS TDBCHECKBOX) THEN
      begin
            AUX1:=(SELF.Components[I] AS TDBCHECKBOX).DataField ;
            IF (TRIM(AUX1)<>'MISMA_DIRECCION')
            // EXCLUYO EL DBCHECKBOX MISMA_DIRECCION
            THEN
            BEGIN
             J:=0;
             IF (SELF.Components[I] AS TDBCHECKBOX).Checked THEN
                 J:=1;
             if aux <> '' then
                aux := aux + ' AND ' + AUX1  +'= '+INTTOSTR(J)
             else
                aux := AUX1  +'= '+INTTOSTR(J);
            END;
      end;
      i:= i+1;
    END;
  cclientes.cdsq_cliente.close;
  cclientes.v.BUSCANDO :=false;
  if aux <> '' then
  begin
//     cclientes.v.EMPRESA  := '';
     cclientes.v.ANYO := '';
     IF TRIM(ARORDEN.SORDEN)<> '' THEN
        cclientes.v.ORDEN := ARORDEN.SORDEN
     ELSE
        cclientes.v.ORDEN := ordencliente;
     cclientes.v.ID  :=' where '+ aux;
     cclientes.v.borrado := ver;
     cclientes.v.TIPO := '3';
     cclientes.cdsq_cliente.Open ;
  end;
end;
{
procedure Tclientescompuesto.FormPaint(Sender: TObject);
begin
 pdatos.Left := 10 + (ClientWidth - ancho ) div 2 ;
end;
}


procedure Tclientescompuesto.VER_PRESUPUESTO;
VAR ANYO:STRING;
begin

  IF EDIT2.TEXT <> '' THEN
    TRY
      STRTOINT(EDIT2.TEXT);
      ANYO := EDIT2.TEXT;
    EXCEPT
    END
  ELSE
    ANYO := FMENU.ANYO;

  with CPRESUPUESTOS.CDSQ_PRESUPUESTOS do
  BEGIN
//    CPRESUPUESTOS.CDSQ_LINEAPRESUPUESTOS.Close;
    Close;
    CPRESUPUESTOS.V.ID :=' WHERE PR.ID_CLIENTE=' +CCLIENTES.cdsq_clienteID_CLIENTE.AsString+' AND PR.ID_EMPRESA='+FMENU.ID_EMPRESA+' AND PR.ANYO='+ANYO;
    CPRESUPUESTOS.V.TIPO := '2';
    CPRESUPUESTOS.V.ORDEN := ' ORDER BY ID_EMPRESA,ANYO,FECHA ';// ' ORDER BY ID_CLIENTE, FECHA,ID_PRESUPUESTO ';
    CPRESUPUESTOS.V.ORDENLINEA := ordenlinpresupuesto;
    Open;
  END;
  dspresupuesto.DataSet := cpresupuestos.CDSQ_PRESUPUESTOS

end;

procedure Tclientescompuesto.VER_ALBARANES;
VAR ANYO:STRING;
begin

  IF EDIT2.TEXT <> '' THEN
    TRY
      STRTOINT(EDIT2.TEXT);
      ANYO := EDIT2.TEXT;
    EXCEPT
    END
  ELSE
    ANYO := FMENU.ANYO;

  with CALBARANES.CDSQ_ALBARANES do
  BEGIN
//    CALBARANES.CDSQ_LINEAALBARANES.Close;
    Close;
    CALBARANES.V.ID :=' WHERE AL.ID_CLIENTE=' +CCLIENTES.cdsq_clienteID_CLIENTE.AsString+' AND AL.ID_EMPRESA='+FMENU.ID_EMPRESA+' AND AL.ANYO='+ANYO;
    CALBARANES.V.TIPO := '2';
    CALBARANES.V.ORDEN := ' ORDER BY ID_EMPRESA,ANYO,FECHA ';// ' ORDER BY ID_CLIENTE, FECHA,ID_PRESUPUESTO ';
    CALBARANES.V.ORDENLINEA := ordenlineaalbaran;
    Open;
  END;
  DSALBARANES.DataSet := cALBARANES.CDSQ_ALBARANES

end;

procedure Tclientescompuesto.TSCONTENEDORChange(Sender: TObject);
begin
  CASE (TSCONTENEDOR.ActivePageIndex) OF
      0:
      BEGIN
         MYDBEDIT2.VISIBLE := TRUE;
         MYDBEDIT3.VISIBLE:= FALSE;
         MYDBEDIT4.VISIBLE:= FALSE;
      END;
      1:
      BEGIN
         MYDBEDIT2.VISIBLE := FALSE;
         MYDBEDIT3.VISIBLE:= TRUE;
         MYDBEDIT4.VISIBLE:= FALSE;
      END;
      2:
      BEGIN
         MYDBEDIT2.VISIBLE := FALSE;
         MYDBEDIT3.VISIBLE:= FALSE;
         MYDBEDIT4.VISIBLE:= TRUE;
      END;

  END;
end;

procedure Tclientescompuesto.VER_FACTURAS;
VAR ANYO:STRING;
begin

  IF EDIT2.TEXT <> '' THEN
    TRY
      STRTOINT(EDIT2.TEXT);
      ANYO := EDIT2.TEXT;
    EXCEPT
    END
  ELSE
    ANYO := FMENU.ANYO;

  with CFACTURAS.CDSQ_FACTURAS do
  BEGIN
//    CFACTURAS.CDSQ_LINEAFACTURAS.Close;
    Close;
    CFACTURAS.V.ID :=' WHERE FA.ID_CLIENTE=' +CCLIENTES.cdsq_clienteID_CLIENTE.AsString+' AND FA.ID_EMPRESA='+FMENU.ID_EMPRESA+' AND FA.ANYO='+ANYO;
    CFACTURAS.V.TIPO := '2';
    CFACTURAS.V.ORDEN := ' ORDER BY ID_EMPRESA,ANYO,FECHA ';// ' ORDER BY ID_CLIENTE, FECHA,ID_PRESUPUESTO ';
    CFACTURAS.V.ORDENLINEA := ordenlinEAFACTURA;
    Open;
  END;
  DSFACTURAS.DataSet := cFACTURAS.CDSQ_FACTURAS

end;

procedure Tclientescompuesto.ExtendedGrid1DblClick(Sender: TObject);
begin
    IF CPRESUPUESTOS.CDSQ_PRESUPUESTOSID_PRESUPUESTO.AsString <> '' THEN
    BEGIN
       FMENU.PRESUPUESTO1Click(SENDER);
       PRESUPUESTO.DESDE_FUERA(' WHERE ID_PRESUPUESTO='+ CPRESUPUESTOS.CDSQ_PRESUPUESTOSID_PRESUPUESTO.AsString + ' AND ANYO='+CPRESUPUESTOS.CDSQ_PRESUPUESTOSANYO.AsString+' AND ID_EMPRESA='+CPRESUPUESTOS.CDSQ_PRESUPUESTOSID_EMPRESA.AsString);
    END;
end;

procedure Tclientescompuesto.ExtendedGrid2DblClick(Sender: TObject);
begin
    IF CALBARANES.CDSQ_ALBARANESID_ALBARAN.AsString <> '' THEN
    BEGIN
       FMENU.bAlbaranClick(SENDER);
       ALBARAN.DESDE_FUERA(' WHERE ID_ALBARAN='+ CALBARANES.CDSQ_ALBARANESID_ALBARAN.AsString + ' AND ANYO='+CALBARANES.CDSQ_ALBARANESANYO.AsString+' AND ID_EMPRESA='+CALBARANES.CDSQ_ALBARANESID_EMPRESA.AsString);
    END;
end;

procedure Tclientescompuesto.ExtendedGrid3DblClick(Sender: TObject);
begin
    IF Cfacturas.CDSQ_facturasID_factura.AsString <> '' THEN
    BEGIN
       FMENU.bfacturaClick(SENDER);
       factura.DESDE_FUERA(' WHERE ID_factura='+ Cfacturas.CDSQ_facturasID_factura.AsString + ' AND ANYO='+Cfacturas.CDSQ_facturasANYO.AsString+' AND ID_EMPRESA='+Cfacturas.CDSQ_facturasID_EMPRESA.AsString);
    END;
end;



end.
