Unit FTARIFAS;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, StdCtrls, Buttons, ExtCtrls, Menus, Mask, db, DBTables,
  OleCtrls, Grids, DBGrids,variants,tiposdefinidos, ActnList, ImgList,
  ComCtrls, ToolWin,STRUTILS,FORDEN, ExtDlgs,MATH;

type
  TTARIFAS = class(TForm)
    Panel1: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label23: TLabel;
    Label25: TLabel;
    Menu: TMainMenu;
    TARIFAS1: TMenuItem;
    ALTAS1: TMenuItem;
    BAJAS1: TMenuItem;
    CONSULTAS1: TMenuItem;
    MODIFICACIONES1: TMenuItem;
    N4: TMenuItem;
    IMPRIMIR1: TMenuItem;
    N1: TMenuItem;
    SALIR1: TMenuItem;
    REGISTRO1: TMenuItem;
    PRIMERO1: TMenuItem;
    ANTERIOR1: TMenuItem;
    SIGUIENTE1: TMenuItem;
    DSTARIFAS: TDataSource;
    ToolBar1: TToolBar;
    baltas: TToolButton;
    bbajas: TToolButton;
    bconsultas: TToolButton;
    bmodificaciones: TToolButton;
    ToolButton5: TToolButton;
    DBNavigator2: TDBNavigator;
    ToolButton7: TToolButton;
    bsalir: TToolButton;
    ActionList1: TActionList;
    AAltas: TAction;
    ABajas: TAction;
    AConsultas: TAction;
    AModificaciones: TAction;
    ASalir: TAction;
    Label1: TLabel;
    ImageList1: TImageList;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton6: TToolButton;
    OpenPictureDialog1: TOpenPictureDialog;
    Label12: TLabel;
    Label2: TLabel;
    ToolButton4: TToolButton;
    ToolButton8: TToolButton;
    Label13: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    DBGrid1: TDBGrid;
    BLISTADO: TToolButton;
    ALISTADO: TAction;
    Panel2: TPanel;
    Panel5: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    ToolButton9: TToolButton;
    ABUSQUEDA: TAction;
    AORDEN: TAction;
    APASAR: TAction;
    ToolButton10: TToolButton;
    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 DSTARIFASStateChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure REGISTRO1Click(Sender: TObject);
    procedure PRIMERO1Click(Sender: TObject);
    procedure ANTERIOR1Click(Sender: TObject);
    procedure SIGUIENTE1Click(Sender: TObject);
    procedure TARIFAS1Click(Sender: TObject);
    procedure BListadoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure DBGrid1ColExit(Sender: TObject);
    procedure DSTARIFASDataChange(Sender: TObject; Field: TField);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure BEANClick(Sender: TObject);
    procedure DBImage1DblClick(Sender: TObject);
    procedure bpvpfijoClick(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ToolButton10Click(Sender: TObject);

  private
    { Private declarations }
    F1ENTRA :BOOLEAN;
    SORDEN:STRING;
    CADENA:STRING;
//    MAYUSCULA :BOOLEAN;
//    REGISTRO : TBOOKMARK;
    procedure EstadoBotones;
    procedure buscar;
    PROCEDURE COMPROBARCOLORES;
    PROCEDURE COMPROBARPROVEEDOR;
    PROCEDURE PRIVATEINSERTARARTICULOS;

  public
    { Public declarations }
    ver: string;
    ARORDEN : TORDEN;
    pvpfijo:boolean;
    BENEFICIO:DOUBLE;
    TRANSPORTE:DOUBLE;
    FAMILIA:STRING;

  end;

var
  TARIFAS: TTARIFAS;

implementation

uses FDLGCLIENTE, RUTINAS, UDMgs, fdlgTARIFAS,
  FDLGFAMILIASAUX, menu, DLGCOLORESAUX, FEAN, FLISTADOS, fprevio,
  fdlgPROVEEDORaux, FDLGARTICULOSAUX, FESPERA, FARTICULOS,
  FGRUPO;

{$R *.DFM}



procedure TTARIFAS.BListadoClick(Sender: TObject);
var bookmark:tbookmark;
begin
    bookmark:=dmgs.cdsq_tarifas.GetBookmark ;
    DSTARIFAS.DataSet := NIL; // HACE FALTA
    LISTADOS := tLISTADOS.Create(nil);
    PREVIO := TPREVIO.Create(NIL);
    LISTADOS.FRDB.DataSet := DMGS.CDSQ_TARIFAS;
 //   Path := ExtractFilePath(ParamStr(0));
    IF NOT FMENU.VISTACLIENTE THEN
        LISTADOS.frReport1.LoadFromFile(dmgs.Path + 'LISTADOS\TARIFAS.frf');
//    ELSE
//        LISTADOS.frReport1.LoadFromFile(dmgs.Path + 'LISTADOS\TARIFAS1.frf');

    LISTADOS.frReport1.Preview := PREVIO.frPreview1;
    LISTADOS.frReport1.ShowReport;
    PREVIO.ShowModal;
    DSTARIFAS.DataSet := DMGS.CDSQ_TARIFAS;
    LISTADOS.Free;
    LISTADOS := NIL;
    PREVIO.FREE;
    PREVIO := NIL;
    dmgs.cdsq_tarifas.GotoBookmark(bookmark);
    dmgs.cdsq_tarifas.FreeBookmark (bookmark); 
end;

//*******************************************************************//
//*******************************************************************//

procedure TTARIFAS.FormCreate(Sender: TObject);
begin
  DMGS.CDSQ_TARIFAS.CLOSE;
  ARORDEN := TORDEN.Create(NIL);
  ARORDEN.CDS := DMGS.CDSQ_TARIFAS;
  ARORDEN.nombre  := 'CDSQ_TARIFAS';
  dmgs.RTARIFAS.BUSCANDO := false;
  CADENA := '';
  pvpfijo := false;
{  IF arorden.sORDEN = '' THEN
     arorden.SORDEN := ordenTARIFAS;
  WITH DMGS.CDSQ_TARIFAS  DO
  BEGIN
    DMGS.TABGRIDPROVEEDOR := '%';
    DMGS.TABGRorden:= ARORDEN.SORDEN;//' ORDER BY ID_ARTICULO';
    dmgs.TAbgrtipo := '1';
    OPEN;
  END;
}
end;
procedure TTARIFAS.FormDestroy(Sender: TObject);
begin
   DMGS.CDSQ_TARIFAS.close;
   ARORDEN.FREE;
   ARORDEN := NIL;
end;

procedure TTARIFAS.FormShow(Sender: TObject);
begin
    EstadoBotones;
    F1ENTRA := FALSE;
    IF DMGS.CDSQ_TARIFAS.Active THEN
       fmenu.StatusBar1.SimpleText  := dmgs.cdsq_tarifasnombre.AsString ;
end;

procedure TTARIFAS.BConsultasClick(Sender: TObject);
var posaux:TBookmark;
    codigo:tcodigotar;
begin
    DSTARIFAS.DataSet := NIL;
    dlgTARIFAS:=tdlgTARIFAS.create(nil);
    dlgTARIFAS.ORDEN :=  ARORDEN.SORDEN;
    DLGTARIFAS.CERRARDATASET := FALSE;
    dlgTARIFAS.Showmodal;
    dlgTARIFAS.Free;
    dlgTARIFAS := NIL;
//    IF NOT DMGS.CDSQ_TARIFAS.ACTIVE THEN
       ESTADOBOTONES;
// UTILIZO LOS DATASETS ABIERTOS QUE VIENEN DE FDLGTARIFAS.
    dsTARIFAS.DataSet := DMGS.CDSQ_TARIFAS ;
end;

procedure TTARIFAS.FormKeyPress(Sender: TObject; var Key: Char);
VAR AUXI:INTEGER;
    Save_Cursor:TCursor;
begin
    if (ActiveControl=nil) and (key=#13) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
   if (key = #13) and not (DMGS.CDSQ_TARIFAS.State in [dsedit,dsinsert]) then
    begin
//       if dbgrid1.Focused then
      IF (ACTIVECONTROL IS TDBGRID) THEN
       begin
        if dbgrid1.SelectedIndex = (dbgrid1.FieldCount - 1) then
        begin
          DMGS.CDSQ_TARIFAS.next;
          IF DMGS.CDSQ_TARIFAS.EOF THEN
             BALTAS.Click;
          dbgrid1.selectedindex := 0;
        end
        else
           dbgrid1.SelectedIndex := dbgrid1.SelectedIndex + 1;
       end
       else
           Perform(WM_NextDLGCtl, 0, 0);
       key:=#0;
    end;

//    if not (activeControl is TDBEdit) then
    IF (( NOT (DMGS.CDSQ_TARIFAS.State IN [DSEDIT,DSINSERT]))) THEN
    begin
    // LO QUITO PQ LE DEJO BUSCAR POR DESCRIPCION CUANDO
    // PULSAS TECLAS EN EL DBGRID
{       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;
}
       if ( key <> #27 )
       AND (NOT (DMGS.CDSQ_TARIFAS.ACTIVE)) then
           key:=#0;
    end;
{
    if (key = #27) and not (DMGS.CDSQ_TARIFAS.state in [dsedit,dsinsert])
     then close;

    if (key = #27) and not (ActiveControl is TButton) then
        if DMGS.CDSQ_TARIFAS.state in [dsedit,dsinsert]
        then DMGS.CDSQ_TARIFAS.post;
}
   IF ((NOT (DMGS.CDSQ_TARIFAS.State IN [DSEDIT,DSINSERT]))
      AND (DMGS.CDSQ_TARIFAS.ACTIVE)) THEN
   BEGIN
       AUXI := ORD(KEY);
       IF AUXI > 20 THEN
          CADENA := CADENA + KEY;
       LABEL8.Caption := CADENA;
       IF CADENA <> '' THEN
       BEGIN
        Save_Cursor := Screen.Cursor;
        Screen.Cursor := crHourGlass;
        WHILE (NOT (DMGS.CDSQ_TARIFAS.Locate('NOMBRE',CADENA,[loPartialKey])))
           AND (NOT(DMGS.CDSQ_TARIFAS.EOF))
        DO
        BEGIN
         DMGS.CDSQ_TARIFAS.LAST;
         IF DMGS.CDSQ_TARIFAS.Eof THEN
          try // para evitar el error de memoria bloqueada en el server.
            DMGS.CDSQ_TARIFAS.GetNextPacket ;
          except
          end;
        END;
        // LO PONGO AQUI PQ ME HACE RUIDO
        // ESTA LINEA NO ESTA EN ARTICULOS.
//        IF NOT (DMGS.CDSQ_TARIFAS.Locate('NOMBRE',CADENA,[loPartialKey])) THEN
        KEY := #0;
        Screen.Cursor := Save_Cursor;  { Always restore to normal }
       END;

   END
   ELSE
       CADENA:='';


end;
procedure TTARIFAS.BSalirClick(Sender: TObject);
begin
    close;
    SELF.ModalResult:=mrOk;
end;
procedure TTARIFAS.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=38 then CambiarControl(self,false);
    if key=40 then CambiarControl(self,true);
    IF NOT ( DMGS.CDSQ_TARIFAS.STATE IN [DSEDIT,DSINSERT]) THEN
    BEGIN
       IF (KEY = 8) THEN
        BEGIN
           IF LENGTH(CADENA) > 0 THEN
             CADENA := COPY(CADENA,1,LENGTH(CADENA)-1);
           LABEL8.Caption := CADENA;
        END;
    END;
    IF KEY=16 THEN
    BEGIN
//       MAYUSCULA:=TRUE;
    END;
    if (ActiveControl is tdbedit)
    and ((activecontrol as tdbedit).field.DataSet.State in [dsedit,dsinsert])
    then
    begin
     if ((activecontrol as tdbedit).Field.DataType IN [FTDATE,ftTimeStamp]) OR
     ((activecontrol as tdbedit).Field.DataType = FTDATE)
     then
     begin
        if trim((activecontrol as tdbedit).Text) = '/  /' then
           (activecontrol as tdbedit).Field.Clear;
     end;
    end;
end;
procedure TTARIFAS.REGISTRO1Click(Sender: TObject);
begin
   if DMGS.CDSQ_TARIFAS.state in [dsedit,dsinsert] then
   begin
      primero1.enabled:=false;
      anterior1.enabled:=false;
      siguiente1.enabled:=false;
   end
   else
   begin
       primero1.enabled:=DMGS.CDSQ_TARIFAS.bof=false;
       anterior1.enabled:=primero1.enabled;
       siguiente1.enabled:=DMGS.CDSQ_TARIFAS.eof=false;
   end;
end;
procedure TTARIFAS.PRIMERO1Click(Sender: TObject);
begin
   DMGS.CDSQ_TARIFAS.first;
end;

procedure TTARIFAS.ANTERIOR1Click(Sender: TObject);
begin
    DMGS.CDSQ_TARIFAS.Prior;
end;

procedure TTARIFAS.SIGUIENTE1Click(Sender: TObject);
begin
    DMGS.CDSQ_TARIFAS.next;
end;


procedure TTARIFAS.BAltasClick(Sender: TObject);
begin
    WITH DMGS.CDSQ_TARIFAS  DO
    BEGIN
     IF NOT Active THEN
     BEGIN
        DMGS.VTARIFAS.ID := '-115487';
        DMGS.VTARIFAS.ORDEN:= ARORDEN.SORDEN;//' ORDER BY ID_ARTICULO';
        dmgs.VTARIFAS.TIPO := '1';
        OPEN;
     END;
     APPEND;
    END;
    DMGS.CDSQ_TARIFASID_PROVEEDOR.FocusControl ;
//    dbedit1.setfocus;
end;
procedure TTARIFAS.BBajasClick(Sender: TObject);
begin
    if (DMGS.CDSQ_TARIFAS.recordcount>0) then
    begin
      DMGS.CDSQ_TARIFAS.delete;
      DMGS.CDSQ_TARIFASafterpost(dmGS.CDSQ_TARIFAS);
    end;
end;
procedure TTARIFAS.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    if (DMGS.CDSQ_TARIFAS.State in [dsedit,dsinsert]) AND
      (NOT DMGS.RTARIFAS.BUSCANDO) then
       DMGS.CDSQ_TARIFAS.Post;
    Action := caFree;
end;
procedure TTARIFAS.BModificacionesClick(Sender: TObject);
begin
    if DMGS.CDSQ_TARIFAS.recordcount>0 then
    begin
        DMGS.CDSQ_TARIFAS.edit;
        DMGS.CDSQ_TARIFASID_PROVEEDOR.FocusControl ;
    end;
end;
procedure TTARIFAS.TARIFAS1Click(Sender: TObject);
begin
    altas1.enabled:=baltas.enabled;
    bajas1.enabled:=bbajas.enabled;
    consultas1.enabled:=bconsultas.enabled;
    modificaciones1.enabled:=bmodificaciones.enabled;
//    IMPRIMIR1.enabled:=blistado.enabled;

    // ¿Se ha hecho la carga?
end;
procedure TTARIFAS.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  IF DMGS.CDSQ_TARIFAS.Eof THEN
  try // para evitar el error de memoria bloqueada en el server.
     DMGS.CDSQ_TARIFAS.GetNextPacket ;
  except
  end;
end;

procedure TTARIFAS.DSTARIFASStateChange(Sender: TObject);
begin
    EstadoBotones;
    CADENA := '';
end;
procedure TTARIFAS.EstadoBotones;
begin
    BAltas.enabled:=DMGS.CDSQ_TARIFAS.state IN [dsbrowse,DSINACTIVE];
//    BLISTADO.Enabled :=DMGS.CDSQ_TARIFAS.state IN [dsbrowse,DSINACTIVE];
    BConsultas.enabled:=DMGS.CDSQ_TARIFAS.state IN [dsbrowse,DSINACTIVE];
    BModificaciones.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse]) and (DMGS.CDSQ_TARIFAS.recordcount>0);
    BBajas.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse]) and (DMGS.CDSQ_TARIFAS.recordcount>0);
    BLISTADO.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse]) and (DMGS.CDSQ_TARIFAS.recordcount>0);    
//    BIMAGEN.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse,DSEDIT,DSINSERT]) and (DMGS.CDSQ_TARIFAS.recordcount>0);
//    BBORRARIMAGEN.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse,DSEDIT,DSINSERT]) and (DMGS.CDSQ_TARIFAS.recordcount>0);
//    BEAN.enabled:=(DMGS.CDSQ_TARIFAS.state IN [dsbrowse]) and (DMGS.CDSQ_TARIFAS.recordcount>0);
end;



procedure TTARIFAS.DBGrid1KeyPress(Sender: TObject; var Key: Char);
BEGIN
   KEY := UPCASE(KEY);
   if (key = #46) then // 46 -> .
     if (dmgs.cdsq_TARIFAS.state in [dsedit,dsinsert]) then
       if (dbgrid1.SelectedField.DataType in [ftfloat,ftfmtbcd,ftbcd])
       THEN
          key := #44 ;  //44->  ,


   if (key <> #27) then
       DMgs.RTARIFAS.ESCAPECDS := false;
   if (key = #13) and not (DMGS.CDSQ_TARIFAS.State in [dsedit,dsinsert]) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
   if (key = #13) and (DMGS.CDSQ_TARIFAS.State in [dsedit,dsinsert]) then
   begin
        if dbgrid1.SelectedIndex = (dbgrid1.FieldCount - 1) then
        begin
           if DMGS.RTARIFAS.BUSCANDO then
              buscar
           ELSE
           BEGIN
              DMGS.CDSQ_TARIFAS.Post;
              DBGRID1.SELECTEDINDEX := 0;
           END
        end
        else
           dbgrid1.SelectedIndex := dbgrid1.SelectedIndex + 1;
        key:=#0;
   end;
     if (key = #27) and not (DMGS.CDSQ_TARIFAS.state in [dsedit,dsinsert])
     then
       close;
     if (key = #27) and not (ActiveControl is TButton) then
        DMgs.RTARIFAS.ESCAPECDS:= true;

END;

procedure TTARIFAS.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  IF (DMGS.CDSQ_TARIFAS.STATE IN [DSEDIT,DSINSERT]) THEN
   BEGIN
   IF KEY=27 THEN
     DMGS.RTARIFAS.ESCAPECDS := TRUE;
   if key=112 then
    begin
{      if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='COD_FAMILIA' then
      begin
        DMGS.CDSQ_FAMILIASAUX.Close;
        DLGFAMILIASAUX := TDLGFAMILIASAUX.Create(NIL);
        if DLGFAMILIASAUX.Showmodal=mrok then
        begin
            F1ENTRA:= TRUE;
            DBGRID1.SelectedField.AsString  :=DLGFAMILIASAUX.codigo ;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
            DMGS.CDSQ_TARIFASPROFUNDIDAD.Value := DMGS.CDSQ_FAMILIASPROFUNDIDAD.VALUE;
        end;
        DLGFAMILIASAUX.Free;
        DLGFAMILIASAUX := nil;
      end;
}
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_COLOR' then
      BEGIN
        DMGS.CDSQ_COLORESaux.Close;
        FDLGCOLORESaux := tFdlgCOLORESaux.Create(nil);
        if FDLGCOLORESaux.Showmodal=mrok then
        begin
            DBGRID1.SelectedField.AsString:=FDLGCOLORESaux.COLOR;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
        end;
        FDLGCOLORESAUX.Free;
        FDLGCOLORESAUX := nil;
      END;
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_PROVEEDOR' then
      BEGIN
        DMGS.cdsq_PROVEEDOR_ACREEDORaux.Close;
        dlgPROVEEDORAUX := tdlgPROVEEDORAUX.Create(NIL);
        if dlgPROVEEDORAUX.Showmodal=mrok then
        begin
            DBGRID1.SelectedField.AsString:=dlgPROVEEDORaux.codigo;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
        end;
        dlgPROVEEDORaux.Free;
        dlgPROVEEDORaux := nil;
      END;
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_ARTICULO' then
      begin
          DLGARTICULOSAUX := TDLGARTICULOSAUX.CREATE(NIL);
          IF DLGARTICULOSAUX.Showmodal=mrOk then
          begin
             dmgs.CDSQ_TARIFASID_ARTICULO.asstring:=DLGARTICULOSAUX.codigo;
             DMGS.CDSQ_TARIFASNOMBRE.ASSTRING:= DLGARTICULOSAUX.DESCRIPCION;
             dbgrid1.selectedindex:=dbgrid1.selectedindex+1;
          end;
          DLGARTICULOSAUX.Free;
          DLGARTICULOSAUX := NIL;
      END;

     END;
   END;
    IF (KEY = 40) THEN
     begin
        if dmgs.RTARIFAS.BUSCANDO then
        begin
          buscar;
          key:=0;
        end;
//        if dmgs.CDSQ_TARIFAS.RecordCount  = dmgs.CDSQ_TARIFAS.RecNo then
//           key:=0;
     END;
     if (key = 9) then
       if (dmgs.RTARIFAS.BUSCANDO) and ((dbgrid1.selectedindex) = (dbgrid1.FieldCount -1))then
        begin
           buscar;
           key:=0
        end;

end;

procedure TTARIFAS.DBGrid1ColEnter(Sender: TObject);
begin
IF (DMGS.CDSQ_TARIFAS.STATE IN [DSEDIT,DSINSERT]) THEN
 F1ENTRA:=FALSE;
END;
procedure TTARIFAS.DBGrid1ColExit(Sender: TObject);
 VAR AUX:TDATETIME;
     AUX1:STRING;
     PVP : DOUBLE;
begin
 IF (DMGS.CDSQ_TARIFAS.STATE IN [DSEDIT,DSINSERT]) THEN
 BEGIN
      IF NOT DMGS.RTARIFAS.BUSCANDO THEN
        IF (DMGS.CDSQ_TARIFASDESCUENTO.VALUE <> 0)
         THEN
            DMGS.CDSQ_TARIFASNETO.ascurrency := ROUNDTO(DMGS.CDSQ_TARIFASPRECIO.ascurrency-(DMGS.CDSQ_TARIFASPRECIO.ascurrency*(DMGS.CDSQ_TARIFASDESCUENTO.asfloat/100)),DMGS.DECIMALES);


{   if (UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='COD_FAMILIA') AND
   (NOT F1ENTRA) AND
   (TRIM(DMGS.CDSQ_TARIFASCOD_FAMILIA.AsString)<>'' )
    then
    BEGIN
     WITH DMGS.CDSQ_FAMILIASAUX DO
     BEGIN
       CLOSE;
       DMGS.FAABGRID := DMGS.CDSQ_TARIFASCOD_FAMILIA.ASSTRING;
       DMGS.FAABGRTIPO := '1';
       OPEN;
       WHILE (NOT LOCATE('COD_FAMILIA',DBGRID1.SelectedField.Value,[LOCASEINSENSITIVE])) AND
             (NOT EOF) DO
       BEGIN
          LAST;
          IF DMGS.CDSQ_TARIFAS.Eof THEN
            try // para evitar el error de memoria bloqueada en el server.
               DMGS.CDSQ_TARIFAS.GetNextPacket ;
            except
            end;
       END;
       IF EOF THEN
       BEGIN
         SHOWMESSAGE('LA FAMILIA NO EXISTE');
         DMGS.CDSQ_FAMILIASAUX.CLOSE;
         abort;
       END
       ELSE
       BEGIN
         DMGS.CDSQ_TARIFASPROFUNDIDAD.Value := DMGS.CDSQ_FAMILIASAUXPROFUNDIDAD.VALUE;
       END;
       DMGS.CDSQ_FAMILIASAUX.CLOSE;
     END;

   end;
 }
{      IF NOT DMGS.BUSCANDOTAR THEN
      BEGIN
         IF (DMGS.CDSQ_TARIFASPVPCAT.VALUE <> 0)
         AND (NOT PVPFIJO)
         THEN
         BEGIN
            DMGS.CDSQ_TARIFASPRECIO_COSTE.VALUE := ROUNDTO(DMGS.CDSQ_TARIFASPVPCAT.Value-(DMGS.CDSQ_TARIFASPVPCAT.Value*DMGS.CDSQ_TARIFASDESCUENTO.Value/100),-4);
            DMGS.CDSQ_TARIFASBENEFICIO.VALUE := ROUNDTO((ROUNDTO((DMGS.CDSQ_TARIFASPVPCAT.Value/DMGS.CDSQ_TARIFASPRECIO_COSTE.Value),-5)-1)*100,-2);
            PVP:= DMGS.CDSQ_TARIFASPVPCAT.VALUE;
            DMGS.CDSQ_TARIFASPRECIO_VENTA.Value := ROUNDTO(PVP * ((DMGS.CDSQ_TARIFASIVA.Value /100)+1),-5);
         END
         ELSE
         BEGIN
          if pvpfijo then
          begin
            IF DMGS.CDSQ_TARIFASPRECIO_VENTA.Value <> 0 THEN
            BEGIN
              DMGS.CDSQ_TARIFASPVPCAT.Value := 0;
              DMGS.CDSQ_TARIFASDESCUENTO.Value := 0;
              IF DMGS.CDSQ_TARIFASPRECIO_COSTE.Value <> 0 THEN
                dmgs.cdsq_TARIFASbeneficio.Value  := roundto((((DMGS.CDSQ_TARIFASPRECIO_VENTA.VALUE/(1+dmgs.cdsq_TARIFASiva.Value/100)) / (dmgs.cdsq_TARIFASprecio_coste.Value))-1)*100,-2);
            END;
          end
          ELSE
              IF DMGS.CDSQ_TARIFASPRECIO_COSTE.Value <> 0 THEN
              BEGIN
                PVP:=ROUNDTO(DMGS.CDSQ_TARIFASPRECIO_COSTE.Value * ((DMGS.CDSQ_TARIFASBENEFICIO.Value /100)+1),-5);
                DMGS.CDSQ_TARIFASPRECIO_VENTA.Value := ROUNDTO( PVP * ((DMGS.CDSQ_TARIFASIVA.Value /100)+1),-5);
          END
         END;
      END;
}
 END;

 F1ENTRA := FALSE;
end;

procedure TTARIFAS.DSTARIFASDataChange(Sender: TObject;
  Field: TField);
begin
    COMPROBARCOLORES;
    COMPROBARPROVEEDOR;
    IF ((DMGS.CDSQ_TARIFAS.Eof)   AND (NOT (DMGS.CDSQ_TARIFAS.STATE IN [DSEDIT,DSINSERT]))) THEN
    BEGIN
      try // para evitar el error de memoria bloqueada en el server.
        DMGS.CDSQ_TARIFAS.GetNextPacket ;
      except
      end;
    ESTADOBOTONES;
    END;
    fmenu.StatusBar1.SimpleText  := dmgs.cdsq_tarifasnombre.AsString ;
end;

procedure TTARIFAS.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
   const
   azul = TColor($FFFFEE);//C1   0000ff rojo  ; 00ff00 verde feo ; $ff0000 azul
   azul2 = TColor($FFFF0F);
   otro = TColor($999999);
//   otro = TColor($2492FF);
   NEGRO = TCOLOR($000000);
 begin
       if ((DMGS.CDSQ_TARIFAS.RecNo   mod 2 )= 0)then
       BEGIN
           If (gdFocused in State)
           OR (DBGRID1.SelectedRows.CurrentRowSelected )
             then
             BEGIN
                dbgrid1.canvas.brush.color := OTRO;//clblue
                DBGRID1.Canvas.Font.Color := CLYELLOW;
             END
             else
             BEGIN
                dbgrid1.canvas.brush.color := azul//clPaleGreen;
             END
       END
       ELSE
           If (gdFocused in State)
             then dbgrid1.canvas.brush.color := otro;//clblue
//             else dbgrid1.canvas.brush.color := azul2;//clPaleGreen;

     dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State)

 end;
procedure TTARIFAS.ToolButton1Click(Sender: TObject);
begin
  dbgrid1.DataSource.DataSet.Close;
  DMGS.RTARIFAS.BUSCANDO := true;
  WITH DMGS.CDSQ_TARIFAS  DO
  BEGIN
    DMGS.VTARIFAS.ID := '-115487';
    DMGS.VTARIFAS.ORDEN := ARORDEN.SORDEN;//' ORDER BY ID_ARTICULO';
    dmgs.VTARIFAS.TIPO := '1';
    OPEN;
    APPEND;
  END;
  DMGS.CDSQ_TARIFASID_PROVEEDOR.FocusControl
end;
procedure tTARIFAS.buscar;
var aux,AUX1:string;
    i,AUX2,AUX3:integer;
begin
  DMGS.BUSCARDBGRID(DBGRID1,DMGS.CDSQ_TARIFAS,DMGS.RTARIFAS,DMGS.VTARIFAS,ARORDEN.SORDEN,ORDENTARIFAS,' ','CDSQ_TARIFAS',' ');
//  dmgs.BUSCARDBGRID(dbgrid1,dmgs.CDSQ_TARIFAS,dmgs.rtarifas,DMGS.vtarifas,orden.SORDEN,ordentarifas,' ','CDSQ_TARIFAS');
{  i:= 0;
  aux := '';
  while i < dbgrid1.FieldCount do
  begin
    AUX1:=dbgrid1.Fields[i].Name;
    if (NOT dbgrid1.Fields [i].ISNULL) AND
       (NOT (TRIM(DBGRID1.Fields [I].AsString) = '')) then
      if aux <> '' then
        aux := aux + ' AND ' + RIGHTSTR(AUX1,LENGTH(AUX1)-LENGTH('CDSQ_TARIFAS'))  +' Like ('''+ dbgrid1.Fields[i].AsString+'%'') '
      else
        aux := RIGHTSTR(AUX1,LENGTH(AUX1)-LENGTH('CDSQ_TARIFAS')) +' like ('''+ dbgrid1.Fields[i].AsString+'%'') ';
    i:= i+1;
  end;
  dmgs.cdsq_TARIFAS.close;
  DMGS.RTARIFAS.BUSCANDO:=false;
  if aux <> '' then
  begin
     IF TRIM(ARORDEN.SORDEN) = '' THEN
       AUX := AUX + ORDENTARIFAS
     ELSE
       aux := aux + ARORDEN.SORDEN;
     with dmgs.cdsq_TARIFAS do
     begin
       dmgs.VTARIFAS.ID := ' where '+ aux;
       dmgs.VTARIFAS.TIPO := '2';
//       dmgs.ARBGRORDEN := '';
       open;
     end
  end;
}
end;
procedure TTARIFAS.ToolButton3Click(Sender: TObject);
BEGIN
  ARORDEN.ShowModal;
end;


procedure TTARIFAS.BEANClick(Sender: TObject);
begin
{  ean := Tean.create(nil);
  WITH DMGS.CDSQ_EAN DO
  BEGIN
     CLOSE;
     DMGS.EABGRID := DMGS.CDSQ_TARIFASID_ARTICULO.AsString;
     OPEN;
  END;
  EAN.ShowModal;
  ean.free;
  ean := nil;
  DMGS.CDSQ_EAN.CLOSE;
}
end;

procedure TTARIFAS.DBImage1DblClick(Sender: TObject);
begin
{ if (dmgs.cdsq_TARIFAS.state in [dsedit,dsinsert]) then
  IF OPENPICTUREDIALOG1.EXECUTE THEN
  TRY
    dbimage1.Picture.LoadFromFile (OPENPICTUREDIALOG1.FILENAME);
  EXCEPT
    MessageDlg('NO SE PUEDE CARGAR ESE TIPO DE IMAGEN.', mtWarning,[mbOK], 0);
    DBIMAGE1.SetFocus;
  END;
}
end;

PROCEDURE TTARIFAS.COMPROBARCOLORES;
VAR AUX:STRING;
BEGIN
     if ((not (DMGS.CDSQ_TARIFASID_COLOR.IsNull)) AND (TRIM(DMGS.CDSQ_TARIFASID_COLOR.ASSTRING)<>'')) then
     begin
        if (TRIM(LABEL12.CAPTION) <> '') then
           begin
           if not (TRIM(LABEL12.CAPTION) = trim(DMGS.CDSQ_TARIFASID_COLOR.asstring))
           then
             begin
               DMGS.CDSQ_COLORESAUX.close;
               DMGS.CRABGRID  :=trim(DMGS.CDSQ_TARIFASID_COLOR.asstring);
               DMGS.CRABGRTIPO :='2';
               DMGS.CDSQ_COLORESAUX.OPEN;
             end;
           end
           else
             begin
               DMGS.CDSQ_COLORESAUX.close;
               DMGS.CRABGRID  :=trim(DMGS.CDSQ_TARIFASID_COLOR.asstring);
               DMGS.CRABGRTIPO :='2';
               DMGS.CDSQ_COLORESAUX.OPEN;
             end;
    end
    else
    begin
       DMGS.CDSQ_COLORESAUX.close;
       LABEL12.CAPTION := '';
       label1.Caption := '';
    end;

    IF DMGS.CDSQ_COLORESAUX.Active THEN
    BEGIN
      LABEL12.CAPTION := DMGS.CDSQ_COLORESAUXID_COLOR.ASSTRING;
      label1.Caption := DMGS.CDSQ_COLORESAUXDESCRIPCION.ASSTRING;
    END ;
    DMGS.CDSQ_COLORESAUX.close;
END;
PROCEDURE TTARIFAS.COMPROBARPROVEEDOR;
BEGIN
    if ((not (DMGS.CDSQ_TARIFASID_PROVEEDOR.IsNull)) AND (TRIM(DMGS.CDSQ_TARIFASID_PROVEEDOR.ASSTRING)<>'')) then
     begin
        if (TRIM(LABEL12.CAPTION) <> '') then
           begin
           if not (TRIM(LABEL12.CAPTION) = trim(DMGS.CDSQ_TARIFASID_PROVEEDOR.asstring))
           then
             begin
               DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;
               DMGS.VPROVEEDORACAUX.ID :=trim(DMGS.CDSQ_TARIFASID_PROVEEDOR.asstring);
               DMGS.VPROVEEDORACAUX.BORRADO :='0';
               DMGS.VPROVEEDORACAUX.TIPO := '2';
               DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.OPEN;
             end;
           end
           else
             begin
               DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;
               DMGS.VPROVEEDORACAUX.ID  :=trim(DMGS.CDSQ_TARIFASID_PROVEEDOR.asstring);
               DMGS.VPROVEEDORACAUX.BORRADO :='0';
               DMGS.VPROVEEDORACAUX.TIPO := '2';
               DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.OPEN;
             end;
    end
    else
    begin
       DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;
       LABEL12.CAPTION := '';
       label5.Caption := '';
    end;

    IF DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.Active THEN
    BEGIN
      LABEL12.CAPTION := DMGS.CDSQ_PROVEEDOR_ACREEDORAUXID_PROVEEDOR.ASSTRING;
      label5.Caption := DMGS.CDSQ_PROVEEDOR_ACREEDORAUXNOMBRE.ASSTRING;
    END ;
    DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;

{     if ((not(dmgs.cdsq_TARIFASprofundidad.isnull)) and
     (not (DMGS.CDSQ_TARIFASCOD_FAMILIA.IsNull)) AND (TRIM(DMGS.CDSQ_TARIFASCOD_FAMILIA.ASSTRING)<>'')) then
     begin
        if (TRIM(LABEL13.CAPTION) <> '') then
           begin
           if not (TRIM(LABEL13.CAPTION) = trim(DMGS.CDSQ_TARIFASCOD_FAMILIA.asstring))
           then
             begin
               DMGS.CDSQ_FAMILIASAUX.close;
               DMGS.FAABGRID  :=trim(DMGS.CDSQ_TARIFASCOD_FAMILIA.asstring);
               DMGS.FAABGRTIPO :='2';
               DMGS.FAABGRPROF := DMGS.CDSQ_TARIFASPROFUNDIDAD.AsString;
               DMGS.CDSQ_FAMILIASAUX.OPEN;
             end;
           end
           else
             begin
               DMGS.CDSQ_FAMILIASAUX.close;
               DMGS.FAABGRID  :=trim(DMGS.CDSQ_TARIFASCOD_FAMILIA.asstring);
               DMGS.FAABGRTIPO :='2';
               DMGS.FAABGRPROF := DMGS.CDSQ_TARIFASPROFUNDIDAD.AsString;
               DMGS.CDSQ_FAMILIASAUX.OPEN;
             end;
    end
    else
    begin
       DMGS.CDSQ_FAMILIASAUX.close;
       LABEL13.CAPTION := '';
       LABEL5.Caption := '';
    end;

    IF DMGS.CDSQ_FAMILIASAUX.Active THEN
    BEGIN
      LABEL13.CAPTION := DMGS.CDSQ_FAMILIASAUXCOD_FAMILIA.ASSTRING;
      LABEL5.Caption := DMGS.CDSQ_FAMILIASAUXDESCRIPCION.ASSTRING;
    END ;
    DMGS.CDSQ_FAMILIASAUX.close;
}
END;



procedure TTARIFAS.bpvpfijoClick(Sender: TObject);
begin
{   if pvpfijo then
      pvpfijo:= false
   else
      pvpfijo := true;
}
end;

procedure TTARIFAS.DBGrid1DblClick(Sender: TObject);
begin
  IF (DMGS.CDSQ_TARIFAS.State IN [DSEDIT,DSINSERT]) THEN
    begin
{      if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='COD_FAMILIA' then
      begin
        DMGS.CDSQ_FAMILIASAUX.Close;
        DLGFAMILIASAUX := TDLGFAMILIASAUX.Create(NIL);
        if DLGFAMILIASAUX.Showmodal=mrok then
        begin
            F1ENTRA:= TRUE;
            DBGRID1.SelectedField.AsString  :=DLGFAMILIASAUX.codigo ;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
            DMGS.CDSQ_TARIFASPROFUNDIDAD.Value := DMGS.CDSQ_FAMILIASPROFUNDIDAD.VALUE;
        end;
        DLGFAMILIASAUX.Free;
        DLGFAMILIASAUX := nil;
      end;
}
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_COLOR' then
      BEGIN
        DMGS.CDSQ_COLORESaux.Close;
        FDLGCOLORESaux := tFdlgCOLORESaux.Create(nil);
        if FDLGCOLORESaux.Showmodal=mrok then
        begin
            DBGRID1.SelectedField.AsString:=FDLGCOLORESaux.COLOR;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
        end;
        FDLGCOLORESAUX.Free;
        FDLGCOLORESAUX := nil;
      END;
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_PROVEEDOR' then
      BEGIN
        DMGS.cdsq_PROVEEDOR_ACREEDORaux.Close;
        dlgPROVEEDORAUX := tdlgPROVEEDORAUX.Create(NIL);
        if dlgPROVEEDORAUX.Showmodal=mrok then
        begin
            DBGRID1.SelectedField.AsString:=dlgPROVEEDORaux.codigo;
            dbgrid1.SelectedIndex  := dbgrid1.SelectedIndex  + 1;
        end;
        dlgPROVEEDORaux.Free;
        dlgPROVEEDORaux := nil;
      END;
    if UPPERCASE(TRIM(dbgrid1.SelectedField.FieldName)) ='ID_ARTICULO' then
      begin
          DLGARTICULOSAUX := TDLGARTICULOSAUX.CREATE(NIL);
          IF DLGARTICULOSAUX.Showmodal=mrOk then
          begin
             dmgs.CDSQ_TARIFASID_ARTICULO.asstring:=DLGARTICULOSAUX.codigo;
             DMGS.CDSQ_TARIFASNOMBRE.ASSTRING:= DLGARTICULOSAUX.DESCRIPCION;
             dbgrid1.selectedindex:=dbgrid1.selectedindex+1;
          end;
          DLGARTICULOSAUX.Free;
          DLGARTICULOSAUX := NIL;
      END;


  END;
end;

procedure TTARIFAS.ToolButton9Click(Sender: TObject);
begin
  if DBGRID1.SelectedRows.Count > 0 then
  begin
   GRUPO := TGRUPO.CREATE(NIL);
  IF (GRUPO.SHOWMODAL=MROK) and
//  (grupo.BENEFICIO <> 0) and
  (grupo.GRUPO <> '')
  THEN
   BEGIN
      BENEFICIO:= GRUPO.BENEFICIO;
      FAMILIA:= GRUPO.GRUPO;
      TRANSPORTE:= GRUPO.TRANSPORTE ;
      PRIVATEINSERTARARTICULOS;
   END;
   GRUPO.FREE;
   GRUPO := NIL;
  end
  else
    MessageDlg('Debe seleccionar uno o más articulos.', mtWarning,[mbOK], 0);
end;

PROCEDURE TTARIFAS.PRIVATEINSERTARARTICULOS;
 VAR Save_Cursor:TCursor;
     I,J:INTEGER;
     AUX1,AUX2:ARRAY OF TBOOKMARK;
begin
  DMGS.PRIVATEINSERTARARTICULOS (DBGRID1,1,FAMILIA,BENEFICIO,TRANSPORTE);

 {  FMENU.CERRARHIJA(TARTICULOS);
   IF DMGS.CDSQ_ARTICULOS.Active THEN
      DMGS.CDSQ_ARTICULOS.CLOSE;
   I:= DBGRID1.SelectedRows.Count;
   if DBGrid1.SelectedRows.Count>0 then
   BEGIN
//    DSTARIFAS.DataSet := NIl;
   try
    ESPERA:= TESPERA.CREATE(NIL);
    Save_Cursor := Screen.Cursor;
    Screen.Cursor := crHourGlass;
    ESPERA.LONGITUD(DBGrid1.SELECTEDROWS.Count);
    ESPERA.SHOW;
    ESPERA.Repaint;
    SETLENGTH(AUX1,DBGRID1.SELECTEDROWS.COUNT);
    SETLENGTH(AUX2,DBGRID1.SELECTEDROWS.COUNT);

      WITH DMGS.CDSQ_ARTICULOS  DO
      BEGIN
          DMGS.VARTICULOS.ID := '-11';
          DMGS.VARTICULOS.ORDEN:= ordenarticulos;//' ORDER BY ID_ARTICULO';
          dmgs.VARTICULOS.TIPO := '1';
          OPEN;
       END;
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        DMGS.CDSQ_TARIFAS.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        IF TRIM(DMGS.CDSQ_TARIFASID_ARTICULO.AsString) = '' THEN
        BEGIN
               DMGS.CDSQ_ARTICULOS.Append;
               dmgs.CDSQ_ARTICULOSCOD_FAMILIA.AsString := familia;
               dmgs.cdsq_articulosmarca.AsString := dmgs.cdsq_tarifasmarca.AsString ;
               dmgs.cdsq_articulosdescripcion.AsString := dmgs.cdsq_tarifasNOMBRE.AsString ;
               IF DMGS.CDSQ_TARIFASBRAZOS.Value = 0 THEN
                  DMGS.CDSQ_ARTICULOSBRAZOS.Clear
               ELSE
                  dmgs.cdsq_articulosbrazos.VALUE := dmgs.cdsq_tarifasBRAZOS.VALUE ;
               dmgs.cdsq_articulosid_color.AsString := dmgs.cdsq_tarifasID_COLOR.AsString ;
//               dmgs.cdsq_articulospvpcat.VALUE := 0;//dmgs.cdsq_tarifas.AsString ;
//               dmgs.cdsq_articulosdescuento.VALUE := dmgs.cdsq_tarifasDESCUENTO.VALUE ;
//               dmgs.cdsq_articulosbeneficio.value := beneficio ;
//               dmgs.cdsq_articulosprecio_coste.VALUE := dmgs.cdsq_tarifasPRECIO.VALUE ;
               IF DMGS.CDSQ_TARIFASIVA.VALUE <>0 THEN
                  Dmgs.cdsq_articulosiva.VALUE := dmgs.cdsq_tarifasIVA.VALUE
               ELSE
                  Dmgs.cdsq_articulosiva.VALUE := 16;
               if dmgs.cdsq_tarifaspvpcat.value <> 0 then
               begin
                  dmgs.cdsq_articulospvpcat.Value := dmgs.cdsq_tarifaspvpcat.Value;
                  dmgs.CDSQ_ARTICULOSPRECIO_COSTE.value := dmgs.cdsq_tarifaspvpcat.value;
                  dmgs.CDSQ_ARTICULOSPRECIO_VENTA.Value := dmgs.cdsq_tarifaspvpcat.Value;
               end
               else
               begin
                  dmgs.cdsq_ARTICULOSbeneficio.value := beneficio ;
                  dmgs.cdsq_ARTICULOSprecio_coste.VALUE := dmgs.cdsq_tarifasPRECIO.VALUE ;
                  dmgs.cdsq_ARTICULOSprecio_venta.VALUE := dmgs.cdsq_tarifasPRECIO.VALUE * (1+ DMGS.CDSQ_ARTICULOSIVA.VALUE/100)* (1+BENEFICIO/100) * (1+DMGS.CDSQ_ARTICULOSTRANS.VALUE/100);
               end;
//               dmgs.cdsq_articulosprecio_venta.VALUE := dmgs.cdsq_tarifasPRECIO.VALUE * (1+ DMGS.CDSQ_ARTICULOSIVA.VALUE/100)* (1+BENEFICIO/100);
               dmgs.RARTICULOS.PREGUNTA  := false;
               dmgs.CDSQ_ARTICULOS.Post;
//               AUX1[I] := DMGS.CDSQ_ARTICULOS.GetBookmark ;
//               aux2[i] := dmgs.cdsq_tarifas.GetBookmark;
              dmgs.cdsq_tarifas.Edit;
              dmgs.cdsq_tarifasid_articulo.AsString := dmgs.cdsq_articulosid_articulo.asstring;
              dmgs.RTARIFAS.PREGUNTA  := false;
              dmgs.cdsq_tarifas.Post;
        END
        ELSE
        BEGIN
        END;
        ESPERA.INCREMENTARBARRA(FALSE);
      end;
   finally
    ESPERA.INCREMENTARBARRA(TRUE);
    ESPERA.Free;
    ESPERA := NIL;
    dmgs.cdsq_articulos.Close;
      Screen.Cursor := Save_Cursor;  //Always restore to normal
   end;
  END;
}
END;



procedure TTARIFAS.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
// MAYUSCULA:= FALSE
end;

procedure TTARIFAS.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  VAR  REGISTROAUX:INTEGER;
begin
{  IF MAYUSCULA THEN
  BEGIN
     REGISTROAUX := DMGS.CDSQ_TARIFAS.RecNo;
     DBGRID1.SelectedRows.CurrentRowSelected := FALSE;
     DBGRID1.SelectedField
  END;
}
//HOLA
end;

procedure TTARIFAS.ToolButton10Click(Sender: TObject);
begin
  IF DBGRID1.Columns[6].Visible THEN
  BEGIN
    DBGRID1.Columns[6].Visible := FALSE;
    DBGRID1.Columns[8].Visible := FALSE;
    DBGRID1.Columns[9].Visible := FALSE;
  END
  ELSE
  BEGIN
    DBGRID1.Columns[6].Visible := TRUE;
    DBGRID1.Columns[8].Visible := TRUE;
    DBGRID1.Columns[9].Visible := TRUE;
  END;

end;

end.

