unit FPEDIDOSPENDIENTES;

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
  TPEDIDOSPENDIENTES = class(TForm)
    Panel1: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label23: TLabel;
    Label25: TLabel;
    Menu: TMainMenu;
    PENDIENTES1: 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;
    DSPENDIENTES: TDataSource;
    ToolBar1: TToolBar;
    baltas: TToolButton;
    bbajas: TToolButton;
    bconsultas: TToolButton;
    bmodificaciones: TToolButton;
    ToolButton5: TToolButton;
    DBNavigator2: TDBNavigator;
    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;
    Panel2: TPanel;
    Panel7: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label13: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    BLISTADO: TToolButton;
    ALISTADO: TAction;
    ToolButton7: TToolButton;
    ACANTIDAD: TAction;
    DBGrid2: TDBGrid;
    AIMPRIMIR: TAction;
    ToolButton9: 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 DSPENDIENTESStateChange(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 PENDIENTES1Click(Sender: TObject);
    procedure BListadoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
    procedure DBGRID2KeyPress(Sender: TObject; var Key: Char);
    procedure DBGRID2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGRID2ColEnter(Sender: TObject);
    procedure DBGRID2ColExit(Sender: TObject);
    procedure DSPENDIENTESDataChange(Sender: TObject; Field: TField);
    procedure DBGRID2DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormActivate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure DBGRID2DblClick(Sender: TObject);
    procedure ACANTIDADExecute(Sender: TObject);
    procedure AIMPRIMIRExecute(Sender: TObject);

  private
    { Private declarations }
    F1ENTRA :BOOLEAN;
    SORDEN:STRING;
    CADENA:STRING;
    procedure EstadoBotones;
    procedure buscar;
    PROCEDURE COMPROBARCOLORES;
    PROCEDURE COMPROBARPROVEEDOR;



  public
    { Public declarations }
    ver: string;
    ARORDEN : TORDEN;
    pvpfijo:boolean;

    PROCEDURE IDARTICULO;
    PROCEDURE IDPROVEEDOR;
    procedure IDCOLOR;
    PROCEDURE IDCLIENTE;

  end;

var
  PEDIDOSPENDIENTES: TPEDIDOSPENDIENTES;

implementation

uses FDLGCLIENTE, RUTINAS, UDMgs, FDLGPENDIENTES,
  FDLGFAMILIASAUX, menu, DLGCOLORESAUX, FEAN, FLISTADOS, fprevio, FCANTIDAD,
  FDLGARTICULOSAUX, FPROVEEDOR, FDLGTARIFASAUX, FDLGCLIENTEAUX,
  FLISTADOOPCIONESPENDIENTES;

{$R *.DFM}



procedure TPEDIDOSPENDIENTES.BListadoClick(Sender: TObject);
var bookmark:tbookmark;
begin
    bookmark:= dmgs.CDSQ_PEDIDOSPENDIENTES.GetBookmark ;
    DSPENDIENTES.DataSet := NIL; // HACE FALTA
    LISTADOS := tLISTADOS.Create(nil);
    PREVIO := TPREVIO.Create(NIL);
    LISTADOS.FRDB.DataSet := DMGS.CDSQ_PEDIDOSPENDIENTES;
 //   Path := ExtractFilePath(ParamStr(0));
    IF NOT FMENU.VISTACLIENTE THEN
        LISTADOS.frReport1.LoadFromFile(dmgs.Path + 'LISTADOS\PENDIENTES.frf')
    ELSE
        LISTADOS.frReport1.LoadFromFile(dmgs.Path + 'LISTADOS\PENDIENTES1.frf');

    LISTADOS.frReport1.Preview := PREVIO.frPreview1;
    LISTADOS.frReport1.ShowReport;
    PREVIO.ShowModal;
    DSPENDIENTES.DataSet := DMGS.CDSQ_PEDIDOSPENDIENTES;
    LISTADOS.Free;
    LISTADOS := NIL;
    PREVIO.FREE;
    PREVIO := NIL;
    dmgs.cdsq_pedidospendientes.GotoBookmark(bookmark);
    dmgs.cdsq_pedidospendientes.FreeBookmark (bookmark);
end;

//*******************************************************************//
//*******************************************************************//

procedure TPEDIDOSPENDIENTES.FormCreate(Sender: TObject);
begin
  DMGS.CDSQ_PEDIDOSPENDIENTES.CLOSE;
  ARORDEN := TORDEN.Create(NIL);
  ARORDEN.CDS := DMGS.CDSQ_PEDIDOSPENDIENTES;
  ARORDEN.nombre  := 'CDSQ_PEDIDOSPENDIENTES';
  dmgs.buscandoPEN := false;
  CADENA := '';
  pvpfijo := false;
  // PARA QUE MUESTRE PENDIENTES CUANDO ENTRA EN LA PANTALLA DE
  // PENDIENTES
  IF arorden.sORDEN = '' THEN
//     arorden.sORDEN := ' ORDER BY DESCRIPCION';
     arorden.SORDEN := ordenPENDIENTES;
  WITH DMGS.CDSQ_PEDIDOSPENDIENTES  DO
  BEGIN
    DMGS.PNBGRBUSCAR:=' WHERE ID_EMPRESA='+FMENU.ID_EMPRESA+' AND char(LINEA) LIKE (''%'') ';
    DMGS.PNbgrtipo:='2';
    DMGS.PNBGRORDEN:=ARORDEN.SORDEN;
    OPEN;
  END;
end;
procedure TPEDIDOSPENDIENTES.FormDestroy(Sender: TObject);
begin
   DMGS.CDSQ_PEDIDOSPENDIENTES.close;
   ARORDEN.FREE;
   ARORDEN := NIL;
end;

procedure TPEDIDOSPENDIENTES.FormShow(Sender: TObject);
begin
    EstadoBotones;
    F1ENTRA := FALSE;
    IF DMGS.cdsq_pedidospendientes.Active THEN
       fmenu.StatusBar1.SimpleText  := dmgs.cdsq_pedidospendientesdescripcion.AsString ;

end;

procedure TPEDIDOSPENDIENTES.BConsultasClick(Sender: TObject);
var posaux:TBookmark;
    codigo:tcodigotar;
begin
    DSPENDIENTES.DataSet := NIL;

    dlgPENDIENTES:=tdlgPENDIENTES.create(nil);
    IF TRIM(ARORDEN.SORDEN) = '' THEN
      DLGPENDIENTES.ORDEN:= ORDENPENDIENTES
    ELSE
      dlgPENDIENTES.ORDEN :=  ARORDEN.SORDEN;
    DLGPENDIENTES.CERRARDATASET := FALSE;
    dlgPENDIENTES.Showmodal;
    dlgPENDIENTES.Free;
    dlgPENDIENTES := NIL;
//    IF NOT DMGS.CDSQ_PEDIDOSPENDIENTES.ACTIVE THEN
       ESTADOBOTONES;
// UTILIZO LOS DATASETS ABIERTOS QUE VIENEN DE FDLGTARIFAS.
    dsPENDIENTES.DataSet := DMGS.CDSQ_PEDIDOSPENDIENTES ;
end;

procedure TPEDIDOSPENDIENTES.FormKeyPress(Sender: TObject; var Key: Char);
VAR AUXI:INTEGER;
begin
    if (ActiveControl=nil) and (key=#13) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
   if (key = #13) and not (DMGS.CDSQ_PEDIDOSPENDIENTES.State in [dsedit,dsinsert]) then
    begin
//       if DBGRID2.Focused then
      IF (ACTIVECONTROL IS TDBGRID) THEN
       begin
        if DBGRID2.SelectedIndex = (DBGRID2.FieldCount - 1) then
        begin
          DMGS.CDSQ_PEDIDOSPENDIENTES.next;
          IF DMGS.CDSQ_PEDIDOSPENDIENTES.EOF THEN
             BALTAS.Click;
          DBGRID2.selectedindex := 0;
        end
        else
           DBGRID2.SelectedIndex := DBGRID2.SelectedIndex + 1;
       end
       else
           Perform(WM_NextDLGCtl, 0, 0);
       key:=#0;
    end;

//    if not (activeControl is TDBEdit) then
    IF (( NOT (DMGS.CDSQ_PEDIDOSPENDIENTES.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_PEDIDOSPENDIENTES.ACTIVE)) then
           key:=#0;
    end;
{
    if (key = #27) and not (DMGS.CDSQ_PEDIDOSPENDIENTES.state in [dsedit,dsinsert])
     then close;

    if (key = #27) and not (ActiveControl is TButton) then
        if DMGS.CDSQ_PEDIDOSPENDIENTES.state in [dsedit,dsinsert]
        then DMGS.CDSQ_PEDIDOSPENDIENTES.post;
}
   IF ((NOT (DMGS.CDSQ_PEDIDOSPENDIENTES.State IN [DSEDIT,DSINSERT]))
      AND (DMGS.CDSQ_PEDIDOSPENDIENTES.ACTIVE)) THEN
   BEGIN
       AUXI := ORD(KEY);
       IF AUXI > 20 THEN
          CADENA := CADENA + KEY;
       IF CADENA <> '' THEN
       BEGIN
        WHILE (NOT (DMGS.CDSQ_PEDIDOSPENDIENTES.Locate('DESCRIPCION',CADENA,[loPartialKey])))
           AND (NOT(DMGS.CDSQ_PEDIDOSPENDIENTES.EOF))
        DO
        BEGIN
         DMGS.CDSQ_PEDIDOSPENDIENTES.LAST;
         IF DMGS.CDSQ_PEDIDOSPENDIENTES.Eof THEN
          try // para evitar el error de memoria bloqueada en el server.
            DMGS.CDSQ_PEDIDOSPENDIENTES.GetNextPacket ;
          except
          end;
        END;
       END;

   END
   ELSE
       CADENA:='';
   LABEL8.Caption := CADENA;

end;
procedure TPEDIDOSPENDIENTES.BSalirClick(Sender: TObject);
begin
    close;
    SELF.ModalResult:=mrOk;
end;
procedure TPEDIDOSPENDIENTES.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_PEDIDOSPENDIENTES.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 (ActiveControl is tdbedit)
    and ((activecontrol as tdbedit).field.DataSet.State in [dsedit,dsinsert])
    then
    begin
     if (activecontrol as tdbedit).Field.DataType IN [FTDATE,ftTimeStamp]
     then
     begin
        if trim((activecontrol as tdbedit).Text) = '/  /' then
           (activecontrol as tdbedit).Field.Clear;
     end;
    end;
end;
procedure TPEDIDOSPENDIENTES.REGISTRO1Click(Sender: TObject);
begin
   if DMGS.CDSQ_PEDIDOSPENDIENTES.state in [dsedit,dsinsert] then
   begin
      primero1.enabled:=false;
      anterior1.enabled:=false;
      siguiente1.enabled:=false;
   end
   else
   begin
       primero1.enabled:=DMGS.CDSQ_PEDIDOSPENDIENTES.bof=false;
       anterior1.enabled:=primero1.enabled;
       siguiente1.enabled:=DMGS.CDSQ_PEDIDOSPENDIENTES.eof=false;
   end;
end;
procedure TPEDIDOSPENDIENTES.PRIMERO1Click(Sender: TObject);
begin
   DMGS.CDSQ_PEDIDOSPENDIENTES.first;
end;

procedure TPEDIDOSPENDIENTES.ANTERIOR1Click(Sender: TObject);
begin
    DMGS.CDSQ_PEDIDOSPENDIENTES.Prior;
end;

procedure TPEDIDOSPENDIENTES.SIGUIENTE1Click(Sender: TObject);
begin
    DMGS.CDSQ_PEDIDOSPENDIENTES.next;
end;


procedure TPEDIDOSPENDIENTES.BAltasClick(Sender: TObject);
begin
    WITH DMGS.CDSQ_PEDIDOSPENDIENTES  DO
    BEGIN
     IF NOT Active THEN
     BEGIN
        DMGS.PNBGRBUSCAR:='-154871';
        DMGS.PNbgrtipo:='1';
        DMGS.PNBGRORDEN:=ARORDEN.SORDEN;
        OPEN;
     END;
     APPEND;
    END;
    DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.FocusControl ;
//    dbedit1.setfocus;
end;
procedure TPEDIDOSPENDIENTES.BBajasClick(Sender: TObject);
begin
    if (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0) then
    begin
      DMGS.CDSQ_PEDIDOSPENDIENTES.delete;
      DMGS.CDSQ_PEDIDOSPENDIENTESafterpost(dmGS.CDSQ_PEDIDOSPENDIENTES);
    end;
end;
procedure TPEDIDOSPENDIENTES.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    if (DMGS.CDSQ_PEDIDOSPENDIENTES.State in [dsedit,dsinsert]) AND
      (NOT DMGS.BUSCANDOPEN) then
       DMGS.CDSQ_PEDIDOSPENDIENTES.Post;
    Action := caFree;
end;
procedure TPEDIDOSPENDIENTES.BModificacionesClick(Sender: TObject);
begin
    if DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0 then
    begin
        DMGS.CDSQ_PEDIDOSPENDIENTES.edit;
        DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.FocusControl ;
    end;
end;
procedure TPEDIDOSPENDIENTES.PENDIENTES1Click(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 TPEDIDOSPENDIENTES.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
  IF DMGS.CDSQ_PEDIDOSPENDIENTES.Eof THEN
  try // para evitar el error de memoria bloqueada en el server.
     DMGS.CDSQ_PEDIDOSPENDIENTES.GetNextPacket ;
  except
  end;
end;

procedure TPEDIDOSPENDIENTES.DSPENDIENTESStateChange(Sender: TObject);
begin
    EstadoBotones;
    CADENA := '';
end;
procedure TPEDIDOSPENDIENTES.EstadoBotones;
begin
    BAltas.enabled:=DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse,DSINACTIVE];
//    BLISTADO.Enabled :=DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse,DSINACTIVE];
    BConsultas.enabled:=DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse,DSINACTIVE];
    BModificaciones.enabled:=(DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse]) and (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0);
    BBajas.enabled:=(DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse]) and (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0);
    BLISTADO.enabled:=(DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse]) and (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0);    
//    BIMAGEN.enabled:=(DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse,DSEDIT,DSINSERT]) and (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0);
//    BBORRARIMAGEN.enabled:=(DMGS.CDSQ_PEDIDOSPENDIENTES.state IN [dsbrowse,DSEDIT,DSINSERT]) and (DMGS.CDSQ_PEDIDOSPENDIENTES.recordcount>0);
end;



procedure TPEDIDOSPENDIENTES.DBGRID2KeyPress(Sender: TObject; var Key: Char);
BEGIN

   if (key = #46) then // 46 -> .
     if (dmgs.CDSQ_PEDIDOSPENDIENTES.state in [dsedit,dsinsert]) then
       if (dbgrid2.SelectedField.DataType in [ftfloat,ftfmtbcd,ftbcd]) then
          key := #44 ;  //44->  ,


   if (key <> #27) then
       DMgs.ESCAPePENDIENTES := false;
   if (key = #13) and not (DMGS.CDSQ_PEDIDOSPENDIENTES.State in [dsedit,dsinsert]) then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;
   if (key = #13) and (DMGS.CDSQ_PEDIDOSPENDIENTES.State in [dsedit,dsinsert]) then
   begin
        if DBGRID2.SelectedIndex = (DBGRID2.FieldCount - 1) then
        begin
           if DMGS.buscandoPEN then
              buscar
           ELSE
           BEGIN
              DMGS.CDSQ_PEDIDOSPENDIENTES.Post;
              DBGRID2.SELECTEDINDEX := 0;
           END
        end
        else
           DBGRID2.SelectedIndex := DBGRID2.SelectedIndex + 1;
        key:=#0;
   end;
     if (key = #27) and not (DMGS.CDSQ_PEDIDOSPENDIENTES.state in [dsedit,dsinsert])
     then
       close;
     if (key = #27) and not (ActiveControl is TButton) then
        DMgs.ESCAPEPENDIENTES:= true;

END;

procedure TPEDIDOSPENDIENTES.DBGRID2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  IF (DMGS.CDSQ_PEDIDOSPENDIENTES.STATE IN [DSEDIT,DSINSERT]) THEN
   BEGIN
   IF KEY=27 THEN
     DMGS.ESCAPEPENDIENTES := TRUE;
   if key=112 then
    begin
    if UPPERCASE(TRIM(dbgrid2.SelectedField.FieldName)) ='ID_ARTICULO' then
       IDARTICULO;
    if UPPERCASE(TRIM(dbgrid2.SelectedField.FieldName)) ='ID_PROVEEDOR' then
       IDPROVEEDOR;
    if UPPERCASE(TRIM(DBGRID2.SelectedField.FieldName)) ='ID_COLOR' then
       IDCOLOR;
    if UPPERCASE(TRIM(DBGRID2.SelectedField.FieldName)) ='ID_CLIENTE' then
       IDCLIENTE;
    END;
   END;
    IF (KEY = 40) THEN
     begin
        if dmgs.buscandoPEN then
        begin
          buscar;
          key:=0;
        end;
//        if dmgs.CDSQ_PEDIDOSPENDIENTES.RecordCount  = dmgs.CDSQ_PEDIDOSPENDIENTES.RecNo then
//           key:=0;
     END;
     if (key = 9) then
       if (dmgs.buscandoPEN) and ((DBGRID2.selectedindex) = (DBGRID2.FieldCount -1))then
        begin
           buscar;
           key:=0
        end;
end;

procedure TPEDIDOSPENDIENTES.DBGRID2ColEnter(Sender: TObject);
begin
IF (DMGS.CDSQ_PEDIDOSPENDIENTES.STATE IN [DSEDIT,DSINSERT]) THEN
 F1ENTRA:=FALSE;
END;
procedure TPEDIDOSPENDIENTES.DBGRID2ColExit(Sender: TObject);
 VAR AUX:TDATETIME;
     AUX1:STRING;
     PVP : DOUBLE;
begin
 F1ENTRA := FALSE;
end;

procedure TPEDIDOSPENDIENTES.DSPENDIENTESDataChange(Sender: TObject;
  Field: TField);
begin
    COMPROBARCOLORES;
    COMPROBARPROVEEDOR;
    IF ((DMGS.CDSQ_PEDIDOSPENDIENTES.Eof)   AND (NOT (DMGS.CDSQ_PEDIDOSPENDIENTES.STATE IN [DSEDIT,DSINSERT]))) THEN
    BEGIN
      try // para evitar el error de memoria bloqueada en el server.
        DMGS.CDSQ_PEDIDOSPENDIENTES.GetNextPacket ;
      except
      end;
    ESTADOBOTONES;
    END;
    fmenu.StatusBar1.SimpleText  := dmgs.cdsq_pedidospendientesdescripcion.AsString ;
end;

procedure TPEDIDOSPENDIENTES.DBGRID2DrawColumnCell(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($2492FF);
 begin
       if ((DMGS.CDSQ_PEDIDOSPENDIENTES.RecNo   mod 2 )= 0)then
           If (gdFocused in State)
             then DBGRID2.canvas.brush.color := otro//clblue
             else DBGRID2.canvas.brush.color := azul//clPaleGreen;
       ELSE
           If (gdFocused in State)
             then DBGRID2.canvas.brush.color := otro;//clblue
 //            else DBGRID2.canvas.brush.color := azul2;//clPaleGreen;

     DBGRID2.DefaultDrawColumnCell(rect,DataCol,Column,State)

 end;

procedure TPEDIDOSPENDIENTES.FormActivate(Sender: TObject);
begin
{  IF FMENU.VISTACLIENTE THEN
  BEGIN
    DBGRID2.Columns[7].Visible := FALSE;
    DBGRID2.Columns[8].Visible := FALSE;
    DBGRID2.Columns[9].Visible := FALSE;
    DBGRID2.Columns[10].Visible := FALSE;
    DBGRID2.Columns[11].Visible := FALSE;
    // 6 -> BENEFICIO
    // 7 -> PRECIO COSTE
    // 8 -> IVA
  END
  ELSE
  BEGIN
    PANEL5.Visible := TRUE;
    DBGRID2.Columns[7].Visible := TRUE;
    DBGRID2.Columns[8].Visible := TRUE;
    DBGRID2.Columns[9].Visible := TRUE;
    DBGRID2.Columns[10].Visible := TRUE;
    DBGRID2.Columns[11].Visible := TRUE;
  END;
}
end;

procedure TPEDIDOSPENDIENTES.ToolButton1Click(Sender: TObject);
begin
  DBGRID2.DataSource.DataSet.Close;
  DMGS.buscandoPEN := true;
  WITH DMGS.CDSQ_PEDIDOSPENDIENTES  DO
  BEGIN
    DMGS.PNBGRBUSCAR:='-115487';
    DMGS.PNbgrtipo:='1';
    DMGS.PNBGRORDEN:=ARORDEN.SORDEN;
    OPEN;
    APPEND;
  END;
  dmgs.CDSQ_PEDIDOSPENDIENTESid_articulo.asstring := '';
  DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.FocusControl
end;
procedure tPEDIDOSPENDIENTES.buscar;
var aux,AUX1:string;
    i,AUX2,AUX3:integer;
begin
  i:= 0;
  aux := '';
  while i < DBGRID2.FieldCount do
  begin
    AUX1:=DBGRID2.Fields[i].Name;
    if (NOT DBGRID2.Fields [i].ISNULL) AND
       (NOT (TRIM(DBGRID2.Fields [I].AsString) = '')) then
      if aux <> '' then
        aux := aux + ' AND char(' + RIGHTSTR(AUX1,LENGTH(AUX1)-LENGTH('CDSQ_PEDIDOSPENDIENTES'))  +') Like ('''+ DBGRID2.Fields[i].AsString+''') ' // VER 3.0 %
      else
        aux := 'char('+RIGHTSTR(AUX1,LENGTH(AUX1)-LENGTH('CDSQ_PEDIDOSPENDIENTES')) +') like ('''+ DBGRID2.Fields[i].AsString+''') '; // VER 3.0 %
    i:= i+1;
  end;
  dmgs.CDSQ_PEDIDOSPENDIENTES.close;
  DMGS.buscandoPEN:=false;
  if aux <> '' then
  begin

     IF TRIM(ARORDEN.SORDEN)<> '' THEN
        aux := aux + ARORDEN.SORDEN
     ELSE
        AUX := AUX + ordenPENDIENTES;

     with dmgs.CDSQ_PEDIDOSPENDIENTES do
     begin
        DMGS.PNBGRBUSCAR:=' WHERE '+ AUX;
        DMGS.PNbgrtipo:='2';
        DMGS.PNBGRORDEN:='';
       open;
     end
  end;
end;
procedure TPEDIDOSPENDIENTES.ToolButton3Click(Sender: TObject);
BEGIN
  ARORDEN.ShowModal;
end;


PROCEDURE TPEDIDOSPENDIENTES.COMPROBARCOLORES;
VAR AUX:STRING;
BEGIN
     if ((not (DMGS.CDSQ_PEDIDOSPENDIENTESID_COLOR.IsNull)) AND (TRIM(DMGS.CDSQ_PEDIDOSPENDIENTESID_COLOR.ASSTRING)<>'')) then
     begin
        if (TRIM(LABEL12.CAPTION) <> '') then
           begin
           if not (TRIM(LABEL12.CAPTION) = trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_COLOR.asstring))
           then
             begin
               DMGS.CDSQ_COLORESAUX.close;
               DMGS.CRABGRID  :=trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_COLOR.asstring);
               DMGS.CRABGRTIPO :='2';
               DMGS.CDSQ_COLORESAUX.OPEN;
             end;
           end
           else
             begin
               DMGS.CDSQ_COLORESAUX.close;
               DMGS.CRABGRID  :=trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_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 TPEDIDOSPENDIENTES.COMPROBARPROVEEDOR;
BEGIN
if ((not (DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.IsNull)) AND (TRIM(DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.ASSTRING)<>''))
then
BEGIN
   if (TRIM(LABEL13.CAPTION) <> '') then
    begin
      if not (TRIM(LABEL13.CAPTION) = trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.asstring))
      then
      begin
        with DMGS.cdsq_proveedor_acreedoraux do
          BEGIN
                Close;
                DMGS.VPROVEEDORACAUX.ID :=trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.asstring);
                DMGS.VPROVEEDORACAUX.BORRADO := '0';
                DMGS.VPROVEEDORACAUX.TIPO := '2';
                Open;
          END;
      END;
      end
      else
        with DMGS.cdsq_proveedor_acreedoraux do
        BEGIN
             Close;
               DMGS.VPROVEEDORACAUX.ID :=trim(DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.asstring);
               DMGS.VPROVEEDORACAUX.BORRADO := '0';
               DMGS.VPROVEEDORACAUX.TIPO := '2';
               Open;
        END;
  end
  else
    begin
       DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;
       LABEL13.CAPTION := '';
       LABEL5.Caption := '';
    end;

    IF DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.Active THEN
    BEGIN
      LABEL13.CAPTION := DMGS.CDSQ_PROVEEDOR_ACREEDORAUXID_PROVEEDOR.ASSTRING;
      LABEL5.Caption := DMGS.CDSQ_PROVEEDOR_ACREEDORAUXNOMBRE.ASSTRING;
    END ;
    DMGS.CDSQ_PROVEEDOR_ACREEDORAUX.close;
END;



procedure TPEDIDOSPENDIENTES.DBGRID2DblClick(Sender: TObject);
begin
  IF (DMGS.CDSQ_PEDIDOSPENDIENTES.State IN [DSEDIT,DSINSERT]) THEN
  BEGIN
    if UPPERCASE(TRIM(dbgrid2.SelectedField.FieldName)) ='ID_ARTICULO' then
         IDARTICULO;
    if UPPERCASE(TRIM(dbgrid2.SelectedField.FieldName)) ='ID_PROVEEDOR' then
         IDPROVEEDOR;
    if UPPERCASE(TRIM(DBGRID2.SelectedField.FieldName)) ='ID_COLOR' then
         IDCOLOR;
    if UPPERCASE(TRIM(DBGRID2.SelectedField.FieldName)) ='ID_CLIENTE' then
         IDCLIENTE;
  END;
 end;

procedure TPEDIDOSPENDIENTES.ACANTIDADExecute(Sender: TObject);
begin
  IF DMGS.CDSQ_PEDIDOSPENDIENTES.ACTIVE
  AND (TRIM(DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.ASSTRING )<> '')
  THEN
     CANTIDAD := TCANTIDAD.Create(NIL);
     WITH DMGS.CDSQ_ALMACENAUX DO
     BEGIN
       CLOSE;
       dmgs.almAbgrtipo := '2';
       DMGS.almABGRorden:= ORDENALMACEN;
       DMGS.almABGRID := ' WHERE ID_ARTICULO='''+DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.AsString+''' AND ID_EMPRESA='+FMENU.ID_EMPRESA ;
       OPEN;
     END;
     IF DMGS.CDSQ_ALMACENAUX.RecordCount > 0 THEN
        CANTIDAD.Showmodal;
     CANTIDAD.Free;
     CANTIDAD := nil;
end;
PROCEDURE TPEDIDOSPENDIENTES.IDARTICULO;
BEGIN
     DLGARTICULOSAUX := TDLGARTICULOSAUX.CREATE(NIL);
     IF DLGARTICULOSAUX.Showmodal=mrOk then
     begin
         F1ENTRA := TRUE;
         DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.ASSTRING := DMGS.CDSQ_ARTICULOSAUXID_ARTICULO.AsString;
         DMGS.CDSQ_PEDIDOSPENDIENTESDESCRIPCION.VALUE:= DMGS.CDSQ_ARTICULOSAUXDESCRIPCION.VALUE;
         DMGS.CDSQ_PEDIDOSPENDIENTESMARCA.VALUE:= DMGS.CDSQ_ARTICULOSAUXMARCA.VALUE;
         DMGS.CDSQ_PEDIDOSPENDIENTESID_COLOR.VALUE:= DMGS.CDSQ_ARTICULOSAUXID_COLOR.VALUE;
         DMGS.CDSQ_PEDIDOSPENDIENTESBRAZOS.VALUE:= DMGS.CDSQ_ARTICULOSAUXBRAZOS.VALUE;
         dbgrid2.selectedindex:=dbgrid2.selectedindex+1;
     end;
     DLGARTICULOSAUX.Free;
     DLGARTICULOSAUX := NIL;
END;
PROCEDURE TPEDIDOSPENDIENTES.IDPROVEEDOR;
BEGIN
     DLGTARIFASAUX := TDLGTARIFASAUX.CREATE(NIL);
     IF TRIM(DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.ASSTRING) <> '' THEN
       DLGTARIFASAUX.ARTICULO :=TRIM(DMGS.CDSQ_PEDIDOSPENDIENTESID_ARTICULO.ASSTRING);
     IF DLGTARIFASAUX.Showmodal=mrOk then
     begin
         F1ENTRA := TRUE;
         DMGS.CDSQ_PEDIDOSPENDIENTESID_PROVEEDOR.ASSTRING := DMGS.CDSQ_TARIFASAUXID_PROVEEDOR.AsString;
         DMGS.CDSQ_PEDIDOSPENDIENTESART_PROVEEDOR.VALUE:= DMGS.CDSQ_TARIFASAUXART_PROVEEDOR.VALUE;
         dbgrid2.selectedindex:=dbgrid2.selectedindex+1;
     end;
     DLGTARIFASAUX.Free;
     DLGTARIFASAUX := NIL;
END;
PROCEDURE TPEDIDOSPENDIENTES.IDCOLOR;
BEGIN
        DMGS.CDSQ_COLORESaux.Close;
        FDLGCOLORESaux := tFdlgCOLORESaux.Create(nil);
        if FDLGCOLORESaux.Showmodal=mrok then
        begin
            DBGRID2.SelectedField.AsString:=FDLGCOLORESaux.COLOR;
            DBGRID2.SelectedIndex  := DBGRID2.SelectedIndex  + 1;
        end;
        FDLGCOLORESAUX.Free;
        FDLGCOLORESAUX := nil;
END;
PROCEDURE TPEDIDOSPENDIENTES.IDCLIENTE ;
BEGIN
        DMGS.cdsq_clienteaux.Close;
        dlgclienteAUX := tdlgclienteAUX.Create(NIL);
        if dlgclienteAUX.Showmodal=mrok then
        begin
            F1ENTRA:= TRUE;
            DMGS.CDSQ_PEDIDOSPENDIENTESid_cliente.ASSTRING := dlgclienteaux.codigo;
            DMGS.CDSQ_PEDIDOSPENDIENTESNOMBRE_CONTACTO.ASSTRING := DMGS.CDSQ_CLIENTEAUXNOMBRE.ASSTRING;
        end;
        dlgclienteaux.Free;
        dlgclienteaux := nil;
END;

procedure TPEDIDOSPENDIENTES.AIMPRIMIRExecute(Sender: TObject);
var cadena:string;
begin
   LISTADOOPCIONESPENDIENTES := tLISTADOOPCIONESPENDIENTES.create(nil);
   if LISTADOOPCIONESPENDIENTES.ShowModal = mrok then
   begin
    cadena := LISTADOOPCIONESPENDIENTES.cadena;
    LISTADOS := tLISTADOS.Create(nil);
    PREVIO := TPREVIO.Create(NIL);
    with DMGS.CDSQ_PEDIDOSPENDIENTES do
    BEGIN
       CLOSE;
       IF TRIM(CADENA) <> '' THEN
       BEGIN
         DMGS.PNABGRBUSCAR:=' WHERE '+CADENA;
         DMGS.PNAbgrtipo:='2';
       END
       ELSE
       BEGIN
         DMGS.PNABGRBUSCAR:='%';
         DMGS.PNAbgrtipo:='1';
       END;
       IF TRIM(ARORDEN.SORDEN) <> '' THEN
           DMGS.PNABGRORDEN:=ARORDEN.SORDEN
       ELSE
           DMGS.PNABGRORDEN := ORDENPENDIENTES;
       OPEN;
    END;
    LISTADOS.FRDB.DataSet := DMGS.CDSQ_PEDIDOSPENDIENTESAUX;
 //   Path := ExtractFilePath(ParamStr(0));
    LISTADOS.frReport1.LoadFromFile(dmgs.Path + 'LISTADOS\PENDIENTES.frf');
    LISTADOS.frReport1.Preview := PREVIO.frPreview1;
    LISTADOS.frReport1.ShowReport;
    PREVIO.ShowModal;
    LISTADOS.Free;
    LISTADOS := NIL;
    PREVIO.FREE;
    PREVIO := NIL;
    DMGS.CDSQ_PEDIDOSPENDIENTESAUX.CLOSE;
   END;
   LISTADOOPCIONESPENDIENTES.free;
   LISTADOOPCIONESPENDIENTES := nil;
end;
end.

